@runderworld/next.js-patches 16.2.4 → 16.3.0-canary.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/dist.patch +5 -5
  2. package/package.json +2 -2
package/dist.patch CHANGED
@@ -1,8 +1,8 @@
1
1
  diff --git a/node_modules/next/dist/cli/next-dev.js b/node_modules/next/dist/cli/next-dev.js
2
- index 3a8678e..56165a1 100644
2
+ index fa1f1c7..d4eff1a 100644
3
3
  --- a/node_modules/next/dist/cli/next-dev.js
4
4
  +++ b/node_modules/next/dist/cli/next-dev.js
5
- @@ -227,27 +227,27 @@ const nextDev = async (options, portSource, directory)=>{
5
+ @@ -267,27 +267,27 @@ const nextDev = async (options, portSource, directory)=>{
6
6
  const totalMem = _os.default.totalmem();
7
7
  const totalMemInMB = Math.floor(totalMem / 1024 / 1024);
8
8
  maxOldSpaceSize = Math.floor(totalMemInMB * 0.5).toString();
@@ -41,13 +41,13 @@ index 3a8678e..56165a1 100644
41
41
  const { nodeOptions: formattedNodeOptions, execArgv } = (0, _utils.formatNodeOptions)(nodeOptions);
42
42
  child = (0, _child_process.fork)(startServerPath, {
43
43
  diff --git a/node_modules/next/dist/cli/next-dev.js.map b/node_modules/next/dist/cli/next-dev.js.map
44
- index e54f239..1d2c5d6 100644
44
+ index 93a4a21..37bf5dd 100644
45
45
  --- a/node_modules/next/dist/cli/next-dev.js.map
46
46
  +++ b/node_modules/next/dist/cli/next-dev.js.map
47
47
  @@ -1 +1 @@
48
- -{"version":3,"sources":["../../src/cli/next-dev.ts"],"sourcesContent":["#!/usr/bin/env node\n\nimport '../server/lib/cpu-profile'\nimport { saveCpuProfile } from '../server/lib/cpu-profile'\nimport type { StartServerOptions } from '../server/lib/start-server'\nimport {\n RESTART_EXIT_CODE,\n getNodeDebugType,\n getParsedDebugAddress,\n getMaxOldSpaceSize,\n printAndExit,\n formatNodeOptions,\n formatDebugAddress,\n getParsedNodeOptions,\n type DebugAddress,\n} from '../server/lib/utils'\nimport * as Log from '../build/output/log'\nimport { getProjectDir } from '../lib/get-project-dir'\nimport path from 'path'\nimport { traceGlobals } from '../trace/shared'\nimport { Telemetry } from '../telemetry/storage'\nimport { findPagesDir } from '../lib/find-pages-dir'\nimport { fileExists, FileType } from '../lib/file-exists'\nimport { getNpxCommand } from '../lib/helpers/get-npx-command'\nimport { createSelfSignedCertificate } from '../lib/mkcert'\nimport type { SelfSignedCertificate } from '../lib/mkcert'\nimport uploadTrace from '../trace/upload-trace'\nimport { initialEnv } from '@next/env'\nimport { fork } from 'child_process'\nimport type { ChildProcess } from 'child_process'\nimport {\n getReservedPortExplanation,\n isPortIsReserved,\n} from '../lib/helpers/get-reserved-port'\nimport os from 'os'\nimport { once } from 'node:events'\nimport { clearTimeout } from 'timers'\nimport { trace, initializeTraceState, exportTraceState } from '../trace'\nimport { traceId } from '../trace/shared'\nimport { Bundler, parseBundlerArgs } from '../lib/bundler'\n\nexport type NextDevOptions = {\n disableSourceMaps: boolean\n // Commander is not putting `--inspect` through the arg parser\n inspect?: DebugAddress | true\n turbo?: boolean\n turbopack?: boolean\n webpack?: boolean\n port: number\n hostname?: string\n experimentalHttps?: boolean\n experimentalHttpsKey?: string\n experimentalHttpsCert?: string\n experimentalHttpsCa?: string\n experimentalUploadTrace?: string\n experimentalNextConfigStripTypes?: boolean\n experimentalCpuProf?: boolean\n serverFastRefresh?: boolean\n}\n\ntype PortSource = 'cli' | 'default' | 'env'\n\nlet dir: string\nlet child: undefined | ChildProcess\n// distDir is received from the child process via IPC, used for telemetry and trace.\nlet distDir: string | undefined\nlet isTurbopack: boolean\nlet traceUploadUrl: string\nlet sessionStopHandled = false\nconst sessionStarted = Date.now()\nconst sessionSpan = trace('next-dev')\n\n// How long should we wait for the child to cleanly exit after sending\n// SIGINT/SIGTERM to the child process before sending SIGKILL?\nconst CHILD_EXIT_TIMEOUT_MS = parseInt(\n process.env.NEXT_EXIT_TIMEOUT_MS ?? '100',\n 10\n)\n\nconst handleSessionStop = async (signal: NodeJS.Signals | number | null) => {\n if (signal != null && child?.pid) child.kill(signal)\n if (sessionStopHandled) return\n sessionStopHandled = true\n\n // Capture the child's exit code if it has already exited and caused the\n // session stop (via the 'exit' event), otherwise assume success (0).\n const exitCode = child?.exitCode || 0\n\n if (\n signal != null &&\n child?.pid &&\n child.exitCode === null &&\n child.signalCode === null\n ) {\n let exitTimeout = setTimeout(() => {\n child?.kill('SIGKILL')\n }, CHILD_EXIT_TIMEOUT_MS)\n await once(child, 'exit').catch(() => {})\n clearTimeout(exitTimeout)\n }\n\n sessionSpan.stop()\n\n try {\n const { eventCliSessionStopped } =\n require('../telemetry/events/session-stopped') as typeof import('../telemetry/events/session-stopped')\n\n let pagesDir: boolean = !!traceGlobals.get('pagesDir')\n let appDir: boolean = !!traceGlobals.get('appDir')\n\n if (\n typeof traceGlobals.get('pagesDir') === 'undefined' ||\n typeof traceGlobals.get('appDir') === 'undefined'\n ) {\n const pagesResult = findPagesDir(dir)\n appDir = !!pagesResult.appDir\n pagesDir = !!pagesResult.pagesDir\n }\n\n let telemetry =\n (traceGlobals.get('telemetry') as InstanceType<\n typeof import('../telemetry/storage').Telemetry\n >) ||\n new Telemetry({\n distDir: path.join(dir, distDir || '.next'),\n })\n\n telemetry.record(\n eventCliSessionStopped({\n cliCommand: 'dev',\n turboFlag: isTurbopack,\n durationMilliseconds: Date.now() - sessionStarted,\n pagesDir,\n appDir,\n }),\n true\n )\n telemetry.flushDetached('dev', dir)\n } catch (_) {\n // errors here aren't actionable so don't add\n // noise to the output\n }\n\n if (traceUploadUrl && distDir) {\n uploadTrace({\n traceUploadUrl,\n mode: 'dev',\n projectDir: dir,\n distDir,\n isTurboSession: isTurbopack,\n })\n }\n\n // Save CPU profile if it was enabled (before exiting)\n saveCpuProfile()\n\n // ensure we re-enable the terminal cursor before exiting\n // the program, or the cursor could remain hidden\n process.stdout.write('\\x1B[?25h')\n process.stdout.write('\\n')\n process.exit(exitCode)\n}\n\nprocess.on('SIGINT', () => handleSessionStop('SIGINT'))\nprocess.on('SIGTERM', () => handleSessionStop('SIGTERM'))\n\n// exit event must be synchronous\nprocess.on('exit', () => child?.kill('SIGKILL'))\n\nconst nextDev = async (\n options: NextDevOptions,\n portSource: PortSource,\n directory?: string\n) => {\n // Note: parseBundlerArgs can only decide on Turbopack or webpack.\n // Rspack can be configured via next.config.js but next.config.js is not loaded in the main process, only in the child process.\n isTurbopack = parseBundlerArgs(options) === Bundler.Turbopack\n\n dir = getProjectDir(process.env.NEXT_PRIVATE_DEV_DIR || directory)\n\n // Check if pages dir exists and warn if not\n if (!(await fileExists(dir, FileType.Directory))) {\n printAndExit(`> No such directory exists as the project root: ${dir}`)\n }\n\n if (options.experimentalCpuProf) {\n Log.info(\n `CPU profiling enabled. Profile will be saved to .next/cpu-profiles/ on exit (Ctrl+C).`\n )\n }\n\n async function preflight(skipOnReboot: boolean) {\n const { getPackageVersion, getDependencies } = (await Promise.resolve(\n require('../lib/get-package-version') as typeof import('../lib/get-package-version')\n )) as typeof import('../lib/get-package-version')\n\n const [sassVersion, nodeSassVersion] = await Promise.all([\n getPackageVersion({ cwd: dir, name: 'sass' }),\n getPackageVersion({ cwd: dir, name: 'node-sass' }),\n ])\n if (sassVersion && nodeSassVersion) {\n Log.warn(\n 'Your project has both `sass` and `node-sass` installed as dependencies, but should only use one or the other. ' +\n 'Please remove the `node-sass` dependency from your project. ' +\n ' Read more: https://nextjs.org/docs/messages/duplicate-sass'\n )\n }\n\n if (!skipOnReboot) {\n const { dependencies, devDependencies } = await getDependencies({\n cwd: dir,\n })\n\n // Warn if @next/font is installed as a dependency. Ignore `workspace:*` to not warn in the Next.js monorepo.\n if (\n dependencies['@next/font'] ||\n (devDependencies['@next/font'] &&\n devDependencies['@next/font'] !== 'workspace:*')\n ) {\n const command = getNpxCommand(dir)\n Log.warn(\n 'Your project has `@next/font` installed as a dependency, please use the built-in `next/font` instead. ' +\n 'The `@next/font` package will be removed in Next.js 14. ' +\n `You can migrate by running \\`${command} @next/codemod@latest built-in-next-font .\\`. Read more: https://nextjs.org/docs/messages/built-in-next-font`\n )\n }\n }\n }\n\n let port = options.port\n\n if (isPortIsReserved(port)) {\n printAndExit(getReservedPortExplanation(port), 1)\n }\n\n // If neither --port nor PORT were specified, it's okay to retry new ports.\n const allowRetry = portSource === 'default'\n\n // We do not set a default host value here to prevent breaking\n // some set-ups that rely on listening on other interfaces\n const host = options.hostname\n\n if (\n options.experimentalUploadTrace &&\n !process.env.NEXT_TRACE_UPLOAD_DISABLED\n ) {\n traceUploadUrl = options.experimentalUploadTrace\n }\n\n const enabledFeatures = Object.fromEntries(\n Object.entries({\n serverFastRefreshDisabled: options.serverFastRefresh === false,\n experimentalCpuProf: options.experimentalCpuProf,\n }).filter(([_, value]) => value)\n )\n\n for (const [key, value] of Object.entries(enabledFeatures)) {\n sessionSpan.setAttribute(`feature.${key}`, value)\n }\n\n initializeTraceState({\n ...exportTraceState(),\n defaultParentSpanId: sessionSpan.getId(),\n })\n\n const devServerOptions: StartServerOptions = {\n dir,\n port,\n allowRetry,\n isDev: true,\n hostname: host,\n serverFastRefresh: options.serverFastRefresh,\n }\n\n const startServerPath = require.resolve('../server/lib/start-server')\n\n async function startServer(startServerOptions: StartServerOptions) {\n return new Promise<void>((resolve) => {\n let resolved = false\n const defaultEnv = (initialEnv || process.env) as typeof process.env\n\n const nodeOptions = getParsedNodeOptions()\n\n let maxOldSpaceSize: string | number | undefined = getMaxOldSpaceSize()\n if (!maxOldSpaceSize && !process.env.NEXT_DISABLE_MEM_OVERRIDE) {\n const totalMem = os.totalmem()\n const totalMemInMB = Math.floor(totalMem / 1024 / 1024)\n maxOldSpaceSize = Math.floor(totalMemInMB * 0.5).toString()\n\n nodeOptions['max-old-space-size'] = maxOldSpaceSize\n\n // Ensure the max_old_space_size is not also set.\n delete nodeOptions['max_old_space_size']\n }\n\n if (options.disableSourceMaps) {\n delete nodeOptions['enable-source-maps']\n } else {\n nodeOptions['enable-source-maps'] = true\n }\n\n const nodeDebugType = getNodeDebugType(nodeOptions)\n const originalAddress =\n nodeDebugType === undefined ? undefined : nodeOptions[nodeDebugType]\n delete nodeOptions.inspect\n delete nodeOptions['inspect-brk']\n delete nodeOptions['inspect_brk']\n if (nodeDebugType !== undefined) {\n const address = getParsedDebugAddress(originalAddress)\n address.port = address.port === 0 ? 0 : address.port + 1\n nodeOptions[nodeDebugType] = formatDebugAddress(address)\n } else if (options.inspect) {\n const address: DebugAddress =\n options.inspect === true\n ? getParsedDebugAddress(true)\n : options.inspect\n nodeOptions.inspect = formatDebugAddress(address)\n }\n\n const { nodeOptions: formattedNodeOptions, execArgv } =\n formatNodeOptions(nodeOptions)\n\n child = fork(startServerPath, {\n stdio: 'inherit',\n execArgv,\n env: {\n ...defaultEnv,\n ...(isTurbopack ? { TURBOPACK: process.env.TURBOPACK } : undefined),\n __NEXT_DEV_SERVER: '1',\n NEXT_PRIVATE_START_TIME: process.env.NEXT_PRIVATE_START_TIME,\n NEXT_PRIVATE_WORKER: '1',\n NEXT_PRIVATE_TRACE_ID: traceId,\n NEXT_PRIVATE_ENABLED_FEATURES: JSON.stringify(enabledFeatures),\n NODE_EXTRA_CA_CERTS: startServerOptions.selfSignedCertificate\n ? startServerOptions.selfSignedCertificate.rootCA\n : defaultEnv.NODE_EXTRA_CA_CERTS,\n NODE_OPTIONS: formattedNodeOptions,\n // There is a node.js bug on MacOS which causes closing file watchers to be really slow.\n // This limits the number of watchers to mitigate the issue.\n // https://github.com/nodejs/node/issues/29949\n WATCHPACK_WATCHER_LIMIT:\n os.platform() === 'darwin' ? '20' : undefined,\n // Enable CPU profiling if requested\n ...(options.experimentalCpuProf\n ? {\n NEXT_CPU_PROF: '1',\n NEXT_CPU_PROF_DIR: path.join(dir, '.next', 'cpu-profiles'),\n __NEXT_PRIVATE_CPU_PROFILE: 'dev-server',\n }\n : undefined),\n },\n })\n\n child.on('message', (msg: any) => {\n if (msg && typeof msg === 'object') {\n if (msg.nextWorkerReady) {\n child?.send({ nextWorkerOptions: startServerOptions })\n } else if (msg.nextServerReady && !resolved) {\n if (msg.port) {\n // Store the used port in case a random one was selected, so that\n // it can be re-used on automatic dev server restarts.\n port = parseInt(msg.port, 10)\n }\n if (msg.distDir) {\n // Store the distDir from the child process for telemetry and trace uploads.\n distDir = msg.distDir\n }\n\n resolved = true\n resolve()\n }\n }\n })\n\n child.on('exit', async (code, signal) => {\n if (sessionStopHandled || signal) {\n return\n }\n if (code === RESTART_EXIT_CODE) {\n // Starting the dev server will overwrite the `.next/trace` file, so we\n // must upload the existing contents before restarting the server to\n // preserve the metrics.\n if (traceUploadUrl && distDir) {\n uploadTrace({\n traceUploadUrl,\n mode: 'dev',\n projectDir: dir,\n distDir,\n isTurboSession: isTurbopack,\n sync: true,\n })\n }\n\n // Reset the start time so \"Ready in X\" reflects the restart\n // duration, not time since the original process started.\n process.env.NEXT_PRIVATE_START_TIME = Date.now().toString()\n\n return startServer({ ...startServerOptions, port })\n }\n // Call handler (e.g. upload telemetry). Don't try to send a signal to\n // the child, as it has already exited.\n await handleSessionStop(/* signal */ null)\n })\n })\n }\n\n const runDevServer = async (reboot: boolean) => {\n try {\n if (!!options.experimentalHttps) {\n Log.warn(\n 'Self-signed certificates are currently an experimental feature, use with caution.'\n )\n\n let certificate: SelfSignedCertificate | undefined\n\n const key = options.experimentalHttpsKey\n const cert = options.experimentalHttpsCert\n const rootCA = options.experimentalHttpsCa\n\n if (key && cert) {\n certificate = {\n key: path.resolve(key),\n cert: path.resolve(cert),\n rootCA: rootCA ? path.resolve(rootCA) : undefined,\n }\n } else {\n certificate = await createSelfSignedCertificate(host)\n }\n\n await startServer({\n ...devServerOptions,\n selfSignedCertificate: certificate,\n })\n } else {\n await startServer(devServerOptions)\n }\n\n await preflight(reboot)\n } catch (err) {\n console.error(err)\n process.exit(1)\n }\n }\n\n await runDevServer(false)\n}\n\nexport { nextDev }\n"],"names":["nextDev","dir","child","distDir","isTurbopack","traceUploadUrl","sessionStopHandled","sessionStarted","Date","now","sessionSpan","trace","CHILD_EXIT_TIMEOUT_MS","parseInt","process","env","NEXT_EXIT_TIMEOUT_MS","handleSessionStop","signal","pid","kill","exitCode","signalCode","exitTimeout","setTimeout","once","catch","clearTimeout","stop","eventCliSessionStopped","require","pagesDir","traceGlobals","get","appDir","pagesResult","findPagesDir","telemetry","Telemetry","path","join","record","cliCommand","turboFlag","durationMilliseconds","flushDetached","_","uploadTrace","mode","projectDir","isTurboSession","saveCpuProfile","stdout","write","exit","on","options","portSource","directory","parseBundlerArgs","Bundler","Turbopack","getProjectDir","NEXT_PRIVATE_DEV_DIR","fileExists","FileType","Directory","printAndExit","experimentalCpuProf","Log","info","preflight","skipOnReboot","getPackageVersion","getDependencies","Promise","resolve","sassVersion","nodeSassVersion","all","cwd","name","warn","dependencies","devDependencies","command","getNpxCommand","port","isPortIsReserved","getReservedPortExplanation","allowRetry","host","hostname","experimentalUploadTrace","NEXT_TRACE_UPLOAD_DISABLED","enabledFeatures","Object","fromEntries","entries","serverFastRefreshDisabled","serverFastRefresh","filter","value","key","setAttribute","initializeTraceState","exportTraceState","defaultParentSpanId","getId","devServerOptions","isDev","startServerPath","startServer","startServerOptions","resolved","defaultEnv","initialEnv","nodeOptions","getParsedNodeOptions","maxOldSpaceSize","getMaxOldSpaceSize","NEXT_DISABLE_MEM_OVERRIDE","totalMem","os","totalmem","totalMemInMB","Math","floor","toString","disableSourceMaps","nodeDebugType","getNodeDebugType","originalAddress","undefined","inspect","address","getParsedDebugAddress","formatDebugAddress","formattedNodeOptions","execArgv","formatNodeOptions","fork","stdio","TURBOPACK","__NEXT_DEV_SERVER","NEXT_PRIVATE_START_TIME","NEXT_PRIVATE_WORKER","NEXT_PRIVATE_TRACE_ID","traceId","NEXT_PRIVATE_ENABLED_FEATURES","JSON","stringify","NODE_EXTRA_CA_CERTS","selfSignedCertificate","rootCA","NODE_OPTIONS","WATCHPACK_WATCHER_LIMIT","platform","NEXT_CPU_PROF","NEXT_CPU_PROF_DIR","__NEXT_PRIVATE_CPU_PROFILE","msg","nextWorkerReady","send","nextWorkerOptions","nextServerReady","code","RESTART_EXIT_CODE","sync","runDevServer","reboot","experimentalHttps","certificate","experimentalHttpsKey","cert","experimentalHttpsCert","experimentalHttpsCa","createSelfSignedCertificate","err","console","error"],"mappings":"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","ignoreList":[0]}
48
+ -{"version":3,"sources":["../../src/cli/next-dev.ts"],"sourcesContent":["#!/usr/bin/env node\n\nimport '../server/lib/cpu-profile'\nimport { saveCpuProfile } from '../server/lib/cpu-profile'\nimport type { StartServerOptions } from '../server/lib/start-server'\nimport {\n RESTART_EXIT_CODE,\n getNodeDebugType,\n getParsedDebugAddress,\n getMaxOldSpaceSize,\n printAndExit,\n formatNodeOptions,\n formatDebugAddress,\n getParsedNodeOptions,\n type DebugAddress,\n} from '../server/lib/utils'\nimport * as Log from '../build/output/log'\nimport { getProjectDir } from '../lib/get-project-dir'\nimport path from 'path'\nimport { traceGlobals } from '../trace/shared'\nimport { Telemetry } from '../telemetry/storage'\nimport { findPagesDir } from '../lib/find-pages-dir'\nimport { fileExists, FileType } from '../lib/file-exists'\nimport { getNpxCommand } from '../lib/helpers/get-npx-command'\nimport { createSelfSignedCertificate } from '../lib/mkcert'\nimport type { SelfSignedCertificate } from '../lib/mkcert'\nimport uploadTrace from '../trace/upload-trace'\nimport { initialEnv } from '@next/env'\nimport { fork } from 'child_process'\nimport type { ChildProcess } from 'child_process'\nimport {\n getReservedPortExplanation,\n isPortIsReserved,\n} from '../lib/helpers/get-reserved-port'\nimport { getCacheDirectory } from '../lib/helpers/get-cache-directory'\nimport os from 'os'\nimport fs from 'node:fs'\nimport { once } from 'node:events'\nimport { clearTimeout } from 'timers'\nimport { trace, initializeTraceState, exportTraceState } from '../trace'\nimport { traceId } from '../trace/shared'\nimport { Bundler, parseBundlerArgs } from '../lib/bundler'\n\nexport type NextDevOptions = {\n disableSourceMaps: boolean\n // Commander is not putting `--inspect` through the arg parser\n inspect?: DebugAddress | true\n turbo?: boolean\n turbopack?: boolean\n webpack?: boolean\n port: number\n hostname?: string\n experimentalHttps?: boolean\n experimentalHttpsKey?: string\n experimentalHttpsCert?: string\n experimentalHttpsCa?: string\n experimentalUploadTrace?: string\n experimentalNextConfigStripTypes?: boolean\n experimentalCpuProf?: boolean\n serverFastRefresh?: boolean\n internalTrace?: string | boolean\n}\n\ntype PortSource = 'cli' | 'default' | 'env'\n\nlet dir: string\nlet child: undefined | ChildProcess\n// distDir is received from the child process via IPC, used for telemetry and trace.\nlet distDir: string | undefined\nlet isTurbopack: boolean\nlet traceUploadUrl: string\nlet sessionStopHandled = false\nlet devSpanAttrs: { 'rage-restart': boolean; 'missing-next-dir': boolean } = {\n 'rage-restart': false,\n 'missing-next-dir': false,\n}\nconst sessionStarted = Date.now()\nconst sessionSpan = trace('next-dev')\n\n// If the user restarts the dev server within this window we count it as a \"rage restart\".\nconst RAGE_RESTART_THRESHOLD_MS = 120_000\n\n// Single shared file for all projects — keyed by project directory path.\nconst DEV_STATE_FILE = path.join(\n getCacheDirectory('nextjs-nodejs'),\n 'dev-state.json'\n)\n\n// How long should we wait for the child to cleanly exit after sending\n// SIGINT/SIGTERM to the child process before sending SIGKILL?\nconst CHILD_EXIT_TIMEOUT_MS = parseInt(\n process.env.NEXT_EXIT_TIMEOUT_MS ?? '100',\n 10\n)\n\nconst handleSessionStop = async (signal: NodeJS.Signals | number | null) => {\n if (signal != null && child?.pid) child.kill(signal)\n if (sessionStopHandled) return\n sessionStopHandled = true\n\n // Capture the child's exit code if it has already exited and caused the\n // session stop (via the 'exit' event), otherwise assume success (0).\n const exitCode = child?.exitCode || 0\n\n if (\n signal != null &&\n child?.pid &&\n child.exitCode === null &&\n child.signalCode === null\n ) {\n let exitTimeout = setTimeout(() => {\n child?.kill('SIGKILL')\n }, CHILD_EXIT_TIMEOUT_MS)\n await once(child, 'exit').catch(() => {})\n clearTimeout(exitTimeout)\n }\n\n sessionSpan.stop()\n\n try {\n const { eventCliSessionStopped } =\n require('../telemetry/events/session-stopped') as typeof import('../telemetry/events/session-stopped')\n\n let pagesDir: boolean = !!traceGlobals.get('pagesDir')\n let appDir: boolean = !!traceGlobals.get('appDir')\n\n if (\n typeof traceGlobals.get('pagesDir') === 'undefined' ||\n typeof traceGlobals.get('appDir') === 'undefined'\n ) {\n const pagesResult = findPagesDir(dir)\n appDir = !!pagesResult.appDir\n pagesDir = !!pagesResult.pagesDir\n }\n\n const telemetry =\n (traceGlobals.get('telemetry') as InstanceType<\n typeof import('../telemetry/storage').Telemetry\n >) ||\n new Telemetry({\n distDir: path.join(dir, distDir || '.next'),\n })\n\n telemetry.record(\n eventCliSessionStopped({\n cliCommand: 'dev',\n turboFlag: isTurbopack,\n durationMilliseconds: Date.now() - sessionStarted,\n pagesDir,\n appDir,\n }),\n true\n )\n telemetry.flushDetached('dev', dir)\n } catch (_) {\n // errors here aren't actionable so don't add\n // noise to the output\n }\n\n if (traceUploadUrl && distDir) {\n uploadTrace({\n traceUploadUrl,\n mode: 'dev',\n projectDir: dir,\n distDir,\n isTurboSession: isTurbopack,\n })\n\n writeDevState()\n }\n\n // Save CPU profile if it was enabled (before exiting)\n saveCpuProfile()\n\n // ensure we re-enable the terminal cursor before exiting\n // the program, or the cursor could remain hidden\n process.stdout.write('\\x1B[?25h')\n process.stdout.write('\\n')\n process.exit(exitCode)\n}\n\nprocess.on('SIGINT', () => handleSessionStop('SIGINT'))\nprocess.on('SIGTERM', () => handleSessionStop('SIGTERM'))\n\n// exit event must be synchronous\nprocess.on('exit', () => {\n child?.kill('SIGKILL')\n // Catch aggressive kills (e.g. OOM, unhandled exception) that bypass handleSessionStop.\n // SIGKILL of the parent cannot be caught; for all other exits this ensures state is written.\n if (!sessionStopHandled) {\n writeDevState()\n }\n})\n\nconst nextDev = async (\n options: NextDevOptions,\n portSource: PortSource,\n directory?: string\n) => {\n // Note: parseBundlerArgs can only decide on Turbopack or webpack.\n // Rspack can be configured via next.config.js but next.config.js is not loaded in the main process, only in the child process.\n isTurbopack = parseBundlerArgs(options) === Bundler.Turbopack\n\n dir = getProjectDir(process.env.NEXT_PRIVATE_DEV_DIR || directory)\n\n // Check if pages dir exists and warn if not\n if (!(await fileExists(dir, FileType.Directory))) {\n printAndExit(`> No such directory exists as the project root: ${dir}`)\n }\n\n if (options.experimentalCpuProf) {\n Log.info(\n `CPU profiling enabled. Profile will be saved to .next-profiles/ on exit (Ctrl+C).`\n )\n }\n\n async function preflight(skipOnReboot: boolean) {\n const { getPackageVersion, getDependencies } = (await Promise.resolve(\n require('../lib/get-package-version') as typeof import('../lib/get-package-version')\n )) as typeof import('../lib/get-package-version')\n\n const [sassVersion, nodeSassVersion] = await Promise.all([\n getPackageVersion({ cwd: dir, name: 'sass' }),\n getPackageVersion({ cwd: dir, name: 'node-sass' }),\n ])\n if (sassVersion && nodeSassVersion) {\n Log.warn(\n 'Your project has both `sass` and `node-sass` installed as dependencies, but should only use one or the other. ' +\n 'Please remove the `node-sass` dependency from your project. ' +\n ' Read more: https://nextjs.org/docs/messages/duplicate-sass'\n )\n }\n\n if (!skipOnReboot) {\n const { dependencies, devDependencies } = await getDependencies({\n cwd: dir,\n })\n\n // Warn if @next/font is installed as a dependency. Ignore `workspace:*` to not warn in the Next.js monorepo.\n if (\n dependencies['@next/font'] ||\n (devDependencies['@next/font'] &&\n devDependencies['@next/font'] !== 'workspace:*')\n ) {\n const command = getNpxCommand(dir)\n Log.warn(\n 'Your project has `@next/font` installed as a dependency, please use the built-in `next/font` instead. ' +\n 'The `@next/font` package will be removed in Next.js 14. ' +\n `You can migrate by running \\`${command} @next/codemod@latest built-in-next-font .\\`. Read more: https://nextjs.org/docs/messages/built-in-next-font`\n )\n }\n }\n }\n\n let port = options.port\n\n if (isPortIsReserved(port)) {\n printAndExit(getReservedPortExplanation(port), 1)\n }\n\n // If neither --port nor PORT were specified, it's okay to retry new ports.\n const allowRetry = portSource === 'default'\n\n // We do not set a default host value here to prevent breaking\n // some set-ups that rely on listening on other interfaces\n const host = options.hostname\n\n if (\n options.experimentalUploadTrace &&\n !process.env.NEXT_TRACE_UPLOAD_DISABLED\n ) {\n traceUploadUrl = options.experimentalUploadTrace\n }\n\n if (traceUploadUrl) {\n let isRageRestart = false\n let distDirCleared = false\n try {\n if (fs.existsSync(DEV_STATE_FILE)) {\n const allState = JSON.parse(\n fs.readFileSync(DEV_STATE_FILE, 'utf8')\n ) as Record<string, { stopTime?: number; distDirPath?: string }>\n const state = allState[dir]\n if (\n state?.stopTime &&\n Date.now() - state.stopTime < RAGE_RESTART_THRESHOLD_MS\n ) {\n isRageRestart = true\n }\n if (state?.distDirPath && !fs.existsSync(state.distDirPath)) {\n distDirCleared = true\n }\n }\n } catch {\n // Corrupt file — leave both flags false\n }\n devSpanAttrs = {\n 'rage-restart': isRageRestart,\n 'missing-next-dir': distDirCleared,\n }\n }\n\n const enabledFeatures = Object.fromEntries(\n Object.entries({\n serverFastRefreshDisabled: options.serverFastRefresh === false,\n experimentalCpuProf: options.experimentalCpuProf,\n }).filter(([_, value]) => value)\n )\n\n for (const [key, value] of Object.entries(enabledFeatures)) {\n sessionSpan.setAttribute(`feature.${key}`, value)\n }\n\n initializeTraceState({\n ...exportTraceState(),\n defaultParentSpanId: sessionSpan.getId(),\n })\n\n const devServerOptions: StartServerOptions = {\n dir,\n port,\n allowRetry,\n isDev: true,\n hostname: host,\n serverFastRefresh: options.serverFastRefresh,\n }\n\n const startServerPath = require.resolve('../server/lib/start-server')\n\n async function startServer(startServerOptions: StartServerOptions) {\n return new Promise<void>((resolve) => {\n let resolved = false\n const defaultEnv = (initialEnv || process.env) as typeof process.env\n\n const nodeOptions = getParsedNodeOptions()\n\n let maxOldSpaceSize: string | number | undefined = getMaxOldSpaceSize()\n if (!maxOldSpaceSize && !process.env.NEXT_DISABLE_MEM_OVERRIDE) {\n const totalMem = os.totalmem()\n const totalMemInMB = Math.floor(totalMem / 1024 / 1024)\n maxOldSpaceSize = Math.floor(totalMemInMB * 0.5).toString()\n\n nodeOptions['max-old-space-size'] = maxOldSpaceSize\n\n // Ensure the max_old_space_size is not also set.\n delete nodeOptions['max_old_space_size']\n }\n\n if (options.disableSourceMaps) {\n delete nodeOptions['enable-source-maps']\n } else {\n nodeOptions['enable-source-maps'] = true\n }\n\n const nodeDebugType = getNodeDebugType(nodeOptions)\n const originalAddress =\n nodeDebugType === undefined ? undefined : nodeOptions[nodeDebugType]\n delete nodeOptions.inspect\n delete nodeOptions['inspect-brk']\n delete nodeOptions['inspect_brk']\n if (nodeDebugType !== undefined) {\n const address = getParsedDebugAddress(originalAddress)\n address.port = address.port === 0 ? 0 : address.port + 1\n nodeOptions[nodeDebugType] = formatDebugAddress(address)\n } else if (options.inspect) {\n const address: DebugAddress =\n options.inspect === true\n ? getParsedDebugAddress(true)\n : options.inspect\n nodeOptions.inspect = formatDebugAddress(address)\n }\n\n const { nodeOptions: formattedNodeOptions, execArgv } =\n formatNodeOptions(nodeOptions)\n\n child = fork(startServerPath, {\n stdio: 'inherit',\n execArgv,\n env: {\n ...defaultEnv,\n ...(isTurbopack ? { TURBOPACK: process.env.TURBOPACK } : undefined),\n __NEXT_DEV_SERVER: '1',\n NEXT_PRIVATE_START_TIME: process.env.NEXT_PRIVATE_START_TIME,\n NEXT_PRIVATE_WORKER: '1',\n NEXT_PRIVATE_TRACE_ID: traceId,\n NEXT_PRIVATE_ENABLED_FEATURES: JSON.stringify(enabledFeatures),\n NEXT_PRIVATE_DEV_SPAN_ATTRS: JSON.stringify(devSpanAttrs),\n NODE_EXTRA_CA_CERTS: startServerOptions.selfSignedCertificate\n ? startServerOptions.selfSignedCertificate.rootCA\n : defaultEnv.NODE_EXTRA_CA_CERTS,\n NODE_OPTIONS: formattedNodeOptions,\n // There is a node.js bug on MacOS which causes closing file watchers to be really slow.\n // This limits the number of watchers x mitigate the issue.\n // https://github.com/nodejs/node/issues/29949\n WATCHPACK_WATCHER_LIMIT:\n os.platform() === 'darwin' ? '20' : undefined,\n // Enable CPU profiling if requested\n ...(options.experimentalCpuProf\n ? {\n NEXT_CPU_PROF: '1',\n NEXT_CPU_PROF_DIR: path.join(dir, '.next-profiles'),\n __NEXT_PRIVATE_CPU_PROFILE: 'dev-server',\n }\n : undefined),\n ...(process.env.NEXT_TURBOPACK_TRACING\n ? { NEXT_TURBOPACK_TRACING: process.env.NEXT_TURBOPACK_TRACING }\n : undefined),\n },\n })\n\n child.on('message', (msg: any) => {\n if (msg && typeof msg === 'object') {\n if (msg.nextWorkerReady) {\n child?.send({ nextWorkerOptions: startServerOptions })\n } else if (msg.nextServerReady && !resolved) {\n if (msg.port) {\n // Store the used port in case a random one was selected, so that\n // it can be re-used on automatic dev server restarts.\n port = parseInt(msg.port, 10)\n }\n if (msg.distDir) {\n // Store the distDir from the child process for telemetry and trace uploads.\n distDir = msg.distDir\n }\n\n resolved = true\n resolve()\n }\n }\n })\n\n child.on('exit', async (code, signal) => {\n if (sessionStopHandled || signal) {\n return\n }\n if (code === RESTART_EXIT_CODE) {\n // Starting the dev server will overwrite the `.next/trace` file, so we\n // must upload the existing contents before restarting the server to\n // preserve the metrics.\n if (traceUploadUrl && distDir) {\n uploadTrace({\n traceUploadUrl,\n mode: 'dev',\n projectDir: dir,\n distDir,\n isTurboSession: isTurbopack,\n sync: true,\n })\n }\n\n // Reset the start time so \"Ready in X\" reflects the restart\n // duration, not time since the original process started.\n process.env.NEXT_PRIVATE_START_TIME = Date.now().toString()\n\n return startServer({ ...startServerOptions, port })\n }\n // Call handler (e.g. upload telemetry). Don't try to send a signal to\n // the child, as it has already exited.\n await handleSessionStop(/* signal */ null)\n })\n })\n }\n\n const runDevServer = async (reboot: boolean) => {\n try {\n if (!!options.experimentalHttps) {\n Log.warn(\n 'Self-signed certificates are currently an experimental feature, use with caution.'\n )\n\n let certificate: SelfSignedCertificate | undefined\n\n const key = options.experimentalHttpsKey\n const cert = options.experimentalHttpsCert\n const rootCA = options.experimentalHttpsCa\n\n if (key && cert) {\n certificate = {\n key: path.resolve(key),\n cert: path.resolve(cert),\n rootCA: rootCA ? path.resolve(rootCA) : undefined,\n }\n } else {\n certificate = await createSelfSignedCertificate(host)\n }\n\n await startServer({\n ...devServerOptions,\n selfSignedCertificate: certificate,\n })\n } else {\n await startServer(devServerOptions)\n }\n\n await preflight(reboot)\n } catch (err) {\n console.error(err)\n process.exit(1)\n }\n }\n\n await runDevServer(false)\n}\n\nfunction writeDevState(): void {\n if (!traceUploadUrl || !dir) return\n try {\n fs.mkdirSync(path.dirname(DEV_STATE_FILE), { recursive: true })\n\n let state: Record<string, { stopTime: number; distDirPath: string }> = {}\n try {\n state = JSON.parse(fs.readFileSync(DEV_STATE_FILE, 'utf8'))\n } catch {\n // File missing or corrupt — start with empty state\n }\n\n // Eagerly remove entries that are stale (older than threshold) or invalid\n // (future timestamps from clock skew or corruption).\n const now = Date.now()\n const cutoff = now - RAGE_RESTART_THRESHOLD_MS\n for (const key of Object.keys(state)) {\n const t = state[key]?.stopTime\n if (!t || t < cutoff || t > now) {\n delete state[key]\n }\n }\n\n // Update current project\n state[dir] = {\n stopTime: Date.now(),\n distDirPath: path.join(dir, distDir ?? '.next'),\n }\n\n const { sync: writeFileAtomicSync } =\n require('next/dist/compiled/write-file-atomic') as typeof import('next/dist/compiled/write-file-atomic')\n writeFileAtomicSync(DEV_STATE_FILE, JSON.stringify(state))\n } catch {\n // Best effort — don't interfere with shutdown\n }\n}\n\nexport { nextDev }\n"],"names":["nextDev","dir","child","distDir","isTurbopack","traceUploadUrl","sessionStopHandled","devSpanAttrs","sessionStarted","Date","now","sessionSpan","trace","RAGE_RESTART_THRESHOLD_MS","DEV_STATE_FILE","path","join","getCacheDirectory","CHILD_EXIT_TIMEOUT_MS","parseInt","process","env","NEXT_EXIT_TIMEOUT_MS","handleSessionStop","signal","pid","kill","exitCode","signalCode","exitTimeout","setTimeout","once","catch","clearTimeout","stop","eventCliSessionStopped","require","pagesDir","traceGlobals","get","appDir","pagesResult","findPagesDir","telemetry","Telemetry","record","cliCommand","turboFlag","durationMilliseconds","flushDetached","_","uploadTrace","mode","projectDir","isTurboSession","writeDevState","saveCpuProfile","stdout","write","exit","on","options","portSource","directory","parseBundlerArgs","Bundler","Turbopack","getProjectDir","NEXT_PRIVATE_DEV_DIR","fileExists","FileType","Directory","printAndExit","experimentalCpuProf","Log","info","preflight","skipOnReboot","getPackageVersion","getDependencies","Promise","resolve","sassVersion","nodeSassVersion","all","cwd","name","warn","dependencies","devDependencies","command","getNpxCommand","port","isPortIsReserved","getReservedPortExplanation","allowRetry","host","hostname","experimentalUploadTrace","NEXT_TRACE_UPLOAD_DISABLED","isRageRestart","distDirCleared","fs","existsSync","allState","JSON","parse","readFileSync","state","stopTime","distDirPath","enabledFeatures","Object","fromEntries","entries","serverFastRefreshDisabled","serverFastRefresh","filter","value","key","setAttribute","initializeTraceState","exportTraceState","defaultParentSpanId","getId","devServerOptions","isDev","startServerPath","startServer","startServerOptions","resolved","defaultEnv","initialEnv","nodeOptions","getParsedNodeOptions","maxOldSpaceSize","getMaxOldSpaceSize","NEXT_DISABLE_MEM_OVERRIDE","totalMem","os","totalmem","totalMemInMB","Math","floor","toString","disableSourceMaps","nodeDebugType","getNodeDebugType","originalAddress","undefined","inspect","address","getParsedDebugAddress","formatDebugAddress","formattedNodeOptions","execArgv","formatNodeOptions","fork","stdio","TURBOPACK","__NEXT_DEV_SERVER","NEXT_PRIVATE_START_TIME","NEXT_PRIVATE_WORKER","NEXT_PRIVATE_TRACE_ID","traceId","NEXT_PRIVATE_ENABLED_FEATURES","stringify","NEXT_PRIVATE_DEV_SPAN_ATTRS","NODE_EXTRA_CA_CERTS","selfSignedCertificate","rootCA","NODE_OPTIONS","WATCHPACK_WATCHER_LIMIT","platform","NEXT_CPU_PROF","NEXT_CPU_PROF_DIR","__NEXT_PRIVATE_CPU_PROFILE","NEXT_TURBOPACK_TRACING","msg","nextWorkerReady","send","nextWorkerOptions","nextServerReady","code","RESTART_EXIT_CODE","sync","runDevServer","reboot","experimentalHttps","certificate","experimentalHttpsKey","cert","experimentalHttpsCert","experimentalHttpsCa","createSelfSignedCertificate","err","console","error","mkdirSync","dirname","recursive","cutoff","keys","t","writeFileAtomicSync"],"mappings":"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","ignoreList":[0]}
49
49
 
50
- +{"version":3,"sources":["../../src/cli/next-dev.ts"],"sourcesContent":["#!/usr/bin/env node\n\nimport '../server/lib/cpu-profile'\nimport { saveCpuProfile } from '../server/lib/cpu-profile'\nimport type { StartServerOptions } from '../server/lib/start-server'\nimport {\n RESTART_EXIT_CODE,\n getNodeDebugType,\n getParsedDebugAddress,\n getMaxOldSpaceSize,\n printAndExit,\n formatNodeOptions,\n formatDebugAddress,\n getParsedNodeOptions,\n type DebugAddress,\n} from '../server/lib/utils'\nimport * as Log from '../build/output/log'\nimport { getProjectDir } from '../lib/get-project-dir'\nimport path from 'path'\nimport { traceGlobals } from '../trace/shared'\nimport { Telemetry } from '../telemetry/storage'\nimport { findPagesDir } from '../lib/find-pages-dir'\nimport { fileExists, FileType } from '../lib/file-exists'\nimport { getNpxCommand } from '../lib/helpers/get-npx-command'\nimport { createSelfSignedCertificate } from '../lib/mkcert'\nimport type { SelfSignedCertificate } from '../lib/mkcert'\nimport uploadTrace from '../trace/upload-trace'\nimport { initialEnv } from '@next/env'\nimport { fork } from 'child_process'\nimport type { ChildProcess } from 'child_process'\nimport {\n getReservedPortExplanation,\n isPortIsReserved,\n} from '../lib/helpers/get-reserved-port'\nimport os from 'os'\nimport { once } from 'node:events'\nimport { clearTimeout } from 'timers'\nimport { trace, initializeTraceState, exportTraceState } from '../trace'\nimport { traceId } from '../trace/shared'\nimport { Bundler, parseBundlerArgs } from '../lib/bundler'\n\nexport type NextDevOptions = {\n disableSourceMaps: boolean\n // Commander is not putting `--inspect` through the arg parser\n inspect?: DebugAddress | true\n turbo?: boolean\n turbopack?: boolean\n webpack?: boolean\n port: number\n hostname?: string\n experimentalHttps?: boolean\n experimentalHttpsKey?: string\n experimentalHttpsCert?: string\n experimentalHttpsCa?: string\n experimentalUploadTrace?: string\n experimentalNextConfigStripTypes?: boolean\n experimentalCpuProf?: boolean\n serverFastRefresh?: boolean\n}\n\ntype PortSource = 'cli' | 'default' | 'env'\n\nlet dir: string\nlet child: undefined | ChildProcess\n// distDir is received from the child process via IPC, used for telemetry and trace.\nlet distDir: string | undefined\nlet isTurbopack: boolean\nlet traceUploadUrl: string\nlet sessionStopHandled = false\nconst sessionStarted = Date.now()\nconst sessionSpan = trace('next-dev')\n\n// How long should we wait for the child to cleanly exit after sending\n// SIGINT/SIGTERM to the child process before sending SIGKILL?\nconst CHILD_EXIT_TIMEOUT_MS = parseInt(\n process.env.NEXT_EXIT_TIMEOUT_MS ?? '100',\n 10\n)\n\nconst handleSessionStop = async (signal: NodeJS.Signals | number | null) => {\n if (signal != null && child?.pid) child.kill(signal)\n if (sessionStopHandled) return\n sessionStopHandled = true\n\n // Capture the child's exit code if it has already exited and caused the\n // session stop (via the 'exit' event), otherwise assume success (0).\n const exitCode = child?.exitCode || 0\n\n if (\n signal != null &&\n child?.pid &&\n child.exitCode === null &&\n child.signalCode === null\n ) {\n let exitTimeout = setTimeout(() => {\n child?.kill('SIGKILL')\n }, CHILD_EXIT_TIMEOUT_MS)\n await once(child, 'exit').catch(() => {})\n clearTimeout(exitTimeout)\n }\n\n sessionSpan.stop()\n\n try {\n const { eventCliSessionStopped } =\n require('../telemetry/events/session-stopped') as typeof import('../telemetry/events/session-stopped')\n\n let pagesDir: boolean = !!traceGlobals.get('pagesDir')\n let appDir: boolean = !!traceGlobals.get('appDir')\n\n if (\n typeof traceGlobals.get('pagesDir') === 'undefined' ||\n typeof traceGlobals.get('appDir') === 'undefined'\n ) {\n const pagesResult = findPagesDir(dir)\n appDir = !!pagesResult.appDir\n pagesDir = !!pagesResult.pagesDir\n }\n\n let telemetry =\n (traceGlobals.get('telemetry') as InstanceType<\n typeof import('../telemetry/storage').Telemetry\n >) ||\n new Telemetry({\n distDir: path.join(dir, distDir || '.next'),\n })\n\n telemetry.record(\n eventCliSessionStopped({\n cliCommand: 'dev',\n turboFlag: isTurbopack,\n durationMilliseconds: Date.now() - sessionStarted,\n pagesDir,\n appDir,\n }),\n true\n )\n telemetry.flushDetached('dev', dir)\n } catch (_) {\n // errors here aren't actionable so don't add\n // noise to the output\n }\n\n if (traceUploadUrl && distDir) {\n uploadTrace({\n traceUploadUrl,\n mode: 'dev',\n projectDir: dir,\n distDir,\n isTurboSession: isTurbopack,\n })\n }\n\n // Save CPU profile if it was enabled (before exiting)\n saveCpuProfile()\n\n // ensure we re-enable the terminal cursor before exiting\n // the program, or the cursor could remain hidden\n process.stdout.write('\\x1B[?25h')\n process.stdout.write('\\n')\n process.exit(exitCode)\n}\n\nprocess.on('SIGINT', () => handleSessionStop('SIGINT'))\nprocess.on('SIGTERM', () => handleSessionStop('SIGTERM'))\n\n// exit event must be synchronous\nprocess.on('exit', () => child?.kill('SIGKILL'))\n\nconst nextDev = async (\n options: NextDevOptions,\n portSource: PortSource,\n directory?: string\n) => {\n // Note: parseBundlerArgs can only decide on Turbopack or webpack.\n // Rspack can be configured via next.config.js but next.config.js is not loaded in the main process, only in the child process.\n isTurbopack = parseBundlerArgs(options) === Bundler.Turbopack\n\n dir = getProjectDir(process.env.NEXT_PRIVATE_DEV_DIR || directory)\n\n // Check if pages dir exists and warn if not\n if (!(await fileExists(dir, FileType.Directory))) {\n printAndExit(`> No such directory exists as the project root: ${dir}`)\n }\n\n if (options.experimentalCpuProf) {\n Log.info(\n `CPU profiling enabled. Profile will be saved to .next/cpu-profiles/ on exit (Ctrl+C).`\n )\n }\n\n async function preflight(skipOnReboot: boolean) {\n const { getPackageVersion, getDependencies } = (await Promise.resolve(\n require('../lib/get-package-version') as typeof import('../lib/get-package-version')\n )) as typeof import('../lib/get-package-version')\n\n const [sassVersion, nodeSassVersion] = await Promise.all([\n getPackageVersion({ cwd: dir, name: 'sass' }),\n getPackageVersion({ cwd: dir, name: 'node-sass' }),\n ])\n if (sassVersion && nodeSassVersion) {\n Log.warn(\n 'Your project has both `sass` and `node-sass` installed as dependencies, but should only use one or the other. ' +\n 'Please remove the `node-sass` dependency from your project. ' +\n ' Read more: https://nextjs.org/docs/messages/duplicate-sass'\n )\n }\n\n if (!skipOnReboot) {\n const { dependencies, devDependencies } = await getDependencies({\n cwd: dir,\n })\n\n // Warn if @next/font is installed as a dependency. Ignore `workspace:*` to not warn in the Next.js monorepo.\n if (\n dependencies['@next/font'] ||\n (devDependencies['@next/font'] &&\n devDependencies['@next/font'] !== 'workspace:*')\n ) {\n const command = getNpxCommand(dir)\n Log.warn(\n 'Your project has `@next/font` installed as a dependency, please use the built-in `next/font` instead. ' +\n 'The `@next/font` package will be removed in Next.js 14. ' +\n `You can migrate by running \\`${command} @next/codemod@latest built-in-next-font .\\`. Read more: https://nextjs.org/docs/messages/built-in-next-font`\n )\n }\n }\n }\n\n let port = options.port\n\n if (isPortIsReserved(port)) {\n printAndExit(getReservedPortExplanation(port), 1)\n }\n\n // If neither --port nor PORT were specified, it's okay to retry new ports.\n const allowRetry = portSource === 'default'\n\n // We do not set a default host value here to prevent breaking\n // some set-ups that rely on listening on other interfaces\n const host = options.hostname\n\n if (\n options.experimentalUploadTrace &&\n !process.env.NEXT_TRACE_UPLOAD_DISABLED\n ) {\n traceUploadUrl = options.experimentalUploadTrace\n }\n\n const enabledFeatures = Object.fromEntries(\n Object.entries({\n serverFastRefreshDisabled: options.serverFastRefresh === false,\n experimentalCpuProf: options.experimentalCpuProf,\n }).filter(([_, value]) => value)\n )\n\n for (const [key, value] of Object.entries(enabledFeatures)) {\n sessionSpan.setAttribute(`feature.${key}`, value)\n }\n\n initializeTraceState({\n ...exportTraceState(),\n defaultParentSpanId: sessionSpan.getId(),\n })\n\n const devServerOptions: StartServerOptions = {\n dir,\n port,\n allowRetry,\n isDev: true,\n hostname: host,\n serverFastRefresh: options.serverFastRefresh,\n }\n\n const startServerPath = require.resolve('../server/lib/start-server')\n\n async function startServer(startServerOptions: StartServerOptions) {\n return new Promise<void>((resolve) => {\n let resolved = false\n const defaultEnv = (initialEnv || process.env) as typeof process.env\n\n const nodeOptions = getParsedNodeOptions()\n\n let maxOldSpaceSize: string | number | undefined = getMaxOldSpaceSize()\n if (!maxOldSpaceSize && !process.env.NEXT_DISABLE_MEM_OVERRIDE) {\n const totalMem = os.totalmem()\n const totalMemInMB = Math.floor(totalMem / 1024 / 1024)\n maxOldSpaceSize = Math.floor(totalMemInMB * 0.5).toString()\n\n nodeOptions.set('max-old-space-size', maxOldSpaceSize)\n\n // Ensure the max_old_space_size is not also set.\n nodeOptions.delete('max_old_space_size')\n }\n\n if (options.disableSourceMaps) {\n nodeOptions.delete('enable-source-maps')\n } else {\n nodeOptions.set('enable-source-maps', true)\n }\n\n const nodeDebugType = getNodeDebugType(nodeOptions)\n const originalAddress =\n nodeDebugType === undefined ? undefined : nodeOptions.get(nodeDebugType)\n nodeOptions.delete('inspect')\n nodeOptions.delete('inspect-brk')\n nodeOptions.delete('inspect_brk')\n if (nodeDebugType !== undefined) {\n const address = getParsedDebugAddress(originalAddress)\n address.port = address.port === 0 ? 0 : address.port + 1\n nodeOptions.set(nodeDebugType, formatDebugAddress(address))\n } else if (options.inspect) {\n const address: DebugAddress =\n options.inspect === true\n ? getParsedDebugAddress(true)\n : options.inspect\n nodeOptions.set('inspect', formatDebugAddress(address))\n }\n\n const { nodeOptions: formattedNodeOptions, execArgv } =\n formatNodeOptions(nodeOptions)\n\n child = fork(startServerPath, {\n stdio: 'inherit',\n execArgv,\n env: {\n ...defaultEnv,\n ...(isTurbopack ? { TURBOPACK: process.env.TURBOPACK } : undefined),\n __NEXT_DEV_SERVER: '1',\n NEXT_PRIVATE_START_TIME: process.env.NEXT_PRIVATE_START_TIME,\n NEXT_PRIVATE_WORKER: '1',\n NEXT_PRIVATE_TRACE_ID: traceId,\n NEXT_PRIVATE_ENABLED_FEATURES: JSON.stringify(enabledFeatures),\n NODE_EXTRA_CA_CERTS: startServerOptions.selfSignedCertificate\n ? startServerOptions.selfSignedCertificate.rootCA\n : defaultEnv.NODE_EXTRA_CA_CERTS,\n NODE_OPTIONS: formattedNodeOptions,\n // There is a node.js bug on MacOS which causes closing file watchers to be really slow.\n // This limits the number of watchers to mitigate the issue.\n // https://github.com/nodejs/node/issues/29949\n WATCHPACK_WATCHER_LIMIT:\n os.platform() === 'darwin' ? '20' : undefined,\n // Enable CPU profiling if requested\n ...(options.experimentalCpuProf\n ? {\n NEXT_CPU_PROF: '1',\n NEXT_CPU_PROF_DIR: path.join(dir, '.next', 'cpu-profiles'),\n __NEXT_PRIVATE_CPU_PROFILE: 'dev-server',\n }\n : undefined),\n },\n })\n\n child.on('message', (msg: any) => {\n if (msg && typeof msg === 'object') {\n if (msg.nextWorkerReady) {\n child?.send({ nextWorkerOptions: startServerOptions })\n } else if (msg.nextServerReady && !resolved) {\n if (msg.port) {\n // Store the used port in case a random one was selected, so that\n // it can be re-used on automatic dev server restarts.\n port = parseInt(msg.port, 10)\n }\n if (msg.distDir) {\n // Store the distDir from the child process for telemetry and trace uploads.\n distDir = msg.distDir\n }\n\n resolved = true\n resolve()\n }\n }\n })\n\n child.on('exit', async (code, signal) => {\n if (sessionStopHandled || signal) {\n return\n }\n if (code === RESTART_EXIT_CODE) {\n // Starting the dev server will overwrite the `.next/trace` file, so we\n // must upload the existing contents before restarting the server to\n // preserve the metrics.\n if (traceUploadUrl && distDir) {\n uploadTrace({\n traceUploadUrl,\n mode: 'dev',\n projectDir: dir,\n distDir,\n isTurboSession: isTurbopack,\n sync: true,\n })\n }\n\n // Reset the start time so \"Ready in X\" reflects the restart\n // duration, not time since the original process started.\n process.env.NEXT_PRIVATE_START_TIME = Date.now().toString()\n\n return startServer({ ...startServerOptions, port })\n }\n // Call handler (e.g. upload telemetry). Don't try to send a signal to\n // the child, as it has already exited.\n await handleSessionStop(/* signal */ null)\n })\n })\n }\n\n const runDevServer = async (reboot: boolean) => {\n try {\n if (!!options.experimentalHttps) {\n Log.warn(\n 'Self-signed certificates are currently an experimental feature, use with caution.'\n )\n\n let certificate: SelfSignedCertificate | undefined\n\n const key = options.experimentalHttpsKey\n const cert = options.experimentalHttpsCert\n const rootCA = options.experimentalHttpsCa\n\n if (key && cert) {\n certificate = {\n key: path.resolve(key),\n cert: path.resolve(cert),\n rootCA: rootCA ? path.resolve(rootCA) : undefined,\n }\n } else {\n certificate = await createSelfSignedCertificate(host)\n }\n\n await startServer({\n ...devServerOptions,\n selfSignedCertificate: certificate,\n })\n } else {\n await startServer(devServerOptions)\n }\n\n await preflight(reboot)\n } catch (err) {\n console.error(err)\n process.exit(1)\n }\n }\n\n await runDevServer(false)\n}\n\nexport { nextDev }\n"],"names":["nextDev","dir","child","distDir","isTurbopack","traceUploadUrl","sessionStopHandled","sessionStarted","Date","now","sessionSpan","trace","CHILD_EXIT_TIMEOUT_MS","parseInt","process","env","NEXT_EXIT_TIMEOUT_MS","handleSessionStop","signal","pid","kill","exitCode","signalCode","exitTimeout","setTimeout","once","catch","clearTimeout","stop","eventCliSessionStopped","require","pagesDir","traceGlobals","get","appDir","pagesResult","findPagesDir","telemetry","Telemetry","path","join","record","cliCommand","turboFlag","durationMilliseconds","flushDetached","_","uploadTrace","mode","projectDir","isTurboSession","saveCpuProfile","stdout","write","exit","on","options","portSource","directory","parseBundlerArgs","Bundler","Turbopack","getProjectDir","NEXT_PRIVATE_DEV_DIR","fileExists","FileType","Directory","printAndExit","experimentalCpuProf","Log","info","preflight","skipOnReboot","getPackageVersion","getDependencies","Promise","resolve","sassVersion","nodeSassVersion","all","cwd","name","warn","dependencies","devDependencies","command","getNpxCommand","port","isPortIsReserved","getReservedPortExplanation","allowRetry","host","hostname","experimentalUploadTrace","NEXT_TRACE_UPLOAD_DISABLED","enabledFeatures","Object","fromEntries","entries","serverFastRefreshDisabled","serverFastRefresh","filter","value","key","setAttribute","initializeTraceState","exportTraceState","defaultParentSpanId","getId","devServerOptions","isDev","startServerPath","startServer","startServerOptions","resolved","defaultEnv","initialEnv","nodeOptions","getParsedNodeOptions","maxOldSpaceSize","getMaxOldSpaceSize","NEXT_DISABLE_MEM_OVERRIDE","totalMem","os","totalmem","totalMemInMB","Math","floor","toString","set","delete","disableSourceMaps","nodeDebugType","getNodeDebugType","originalAddress","undefined","address","getParsedDebugAddress","formatDebugAddress","inspect","formattedNodeOptions","execArgv","formatNodeOptions","fork","stdio","TURBOPACK","__NEXT_DEV_SERVER","NEXT_PRIVATE_START_TIME","NEXT_PRIVATE_WORKER","NEXT_PRIVATE_TRACE_ID","traceId","NEXT_PRIVATE_ENABLED_FEATURES","JSON","stringify","NODE_EXTRA_CA_CERTS","selfSignedCertificate","rootCA","NODE_OPTIONS","WATCHPACK_WATCHER_LIMIT","platform","NEXT_CPU_PROF","NEXT_CPU_PROF_DIR","__NEXT_PRIVATE_CPU_PROFILE","msg","nextWorkerReady","send","nextWorkerOptions","nextServerReady","code","RESTART_EXIT_CODE","sync","runDevServer","reboot","experimentalHttps","certificate","experimentalHttpsKey","cert","experimentalHttpsCert","experimentalHttpsCa","createSelfSignedCertificate","err","console","error"],"mappings":"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","ignoreList":[0]}
50
+ +{"version":3,"sources":["../../src/cli/next-dev.ts"],"sourcesContent":["#!/usr/bin/env node\n\nimport '../server/lib/cpu-profile'\nimport { saveCpuProfile } from '../server/lib/cpu-profile'\nimport type { StartServerOptions } from '../server/lib/start-server'\nimport {\n RESTART_EXIT_CODE,\n getNodeDebugType,\n getParsedDebugAddress,\n getMaxOldSpaceSize,\n printAndExit,\n formatNodeOptions,\n formatDebugAddress,\n getParsedNodeOptions,\n type DebugAddress,\n} from '../server/lib/utils'\nimport * as Log from '../build/output/log'\nimport { getProjectDir } from '../lib/get-project-dir'\nimport path from 'path'\nimport { traceGlobals } from '../trace/shared'\nimport { Telemetry } from '../telemetry/storage'\nimport { findPagesDir } from '../lib/find-pages-dir'\nimport { fileExists, FileType } from '../lib/file-exists'\nimport { getNpxCommand } from '../lib/helpers/get-npx-command'\nimport { createSelfSignedCertificate } from '../lib/mkcert'\nimport type { SelfSignedCertificate } from '../lib/mkcert'\nimport uploadTrace from '../trace/upload-trace'\nimport { initialEnv } from '@next/env'\nimport { fork } from 'child_process'\nimport type { ChildProcess } from 'child_process'\nimport {\n getReservedPortExplanation,\n isPortIsReserved,\n} from '../lib/helpers/get-reserved-port'\nimport { getCacheDirectory } from '../lib/helpers/get-cache-directory'\nimport os from 'os'\nimport fs from 'node:fs'\nimport { once } from 'node:events'\nimport { clearTimeout } from 'timers'\nimport { trace, initializeTraceState, exportTraceState } from '../trace'\nimport { traceId } from '../trace/shared'\nimport { Bundler, parseBundlerArgs } from '../lib/bundler'\n\nexport type NextDevOptions = {\n disableSourceMaps: boolean\n // Commander is not putting `--inspect` through the arg parser\n inspect?: DebugAddress | true\n turbo?: boolean\n turbopack?: boolean\n webpack?: boolean\n port: number\n hostname?: string\n experimentalHttps?: boolean\n experimentalHttpsKey?: string\n experimentalHttpsCert?: string\n experimentalHttpsCa?: string\n experimentalUploadTrace?: string\n experimentalNextConfigStripTypes?: boolean\n experimentalCpuProf?: boolean\n serverFastRefresh?: boolean\n internalTrace?: string | boolean\n}\n\ntype PortSource = 'cli' | 'default' | 'env'\n\nlet dir: string\nlet child: undefined | ChildProcess\n// distDir is received from the child process via IPC, used for telemetry and trace.\nlet distDir: string | undefined\nlet isTurbopack: boolean\nlet traceUploadUrl: string\nlet sessionStopHandled = false\nlet devSpanAttrs: { 'rage-restart': boolean; 'missing-next-dir': boolean } = {\n 'rage-restart': false,\n 'missing-next-dir': false,\n}\nconst sessionStarted = Date.now()\nconst sessionSpan = trace('next-dev')\n\n// If the user restarts the dev server within this window we count it as a \"rage restart\".\nconst RAGE_RESTART_THRESHOLD_MS = 120_000\n\n// Single shared file for all projects — keyed by project directory path.\nconst DEV_STATE_FILE = path.join(\n getCacheDirectory('nextjs-nodejs'),\n 'dev-state.json'\n)\n\n// How long should we wait for the child to cleanly exit after sending\n// SIGINT/SIGTERM to the child process before sending SIGKILL?\nconst CHILD_EXIT_TIMEOUT_MS = parseInt(\n process.env.NEXT_EXIT_TIMEOUT_MS ?? '100',\n 10\n)\n\nconst handleSessionStop = async (signal: NodeJS.Signals | number | null) => {\n if (signal != null && child?.pid) child.kill(signal)\n if (sessionStopHandled) return\n sessionStopHandled = true\n\n // Capture the child's exit code if it has already exited and caused the\n // session stop (via the 'exit' event), otherwise assume success (0).\n const exitCode = child?.exitCode || 0\n\n if (\n signal != null &&\n child?.pid &&\n child.exitCode === null &&\n child.signalCode === null\n ) {\n let exitTimeout = setTimeout(() => {\n child?.kill('SIGKILL')\n }, CHILD_EXIT_TIMEOUT_MS)\n await once(child, 'exit').catch(() => {})\n clearTimeout(exitTimeout)\n }\n\n sessionSpan.stop()\n\n try {\n const { eventCliSessionStopped } =\n require('../telemetry/events/session-stopped') as typeof import('../telemetry/events/session-stopped')\n\n let pagesDir: boolean = !!traceGlobals.get('pagesDir')\n let appDir: boolean = !!traceGlobals.get('appDir')\n\n if (\n typeof traceGlobals.get('pagesDir') === 'undefined' ||\n typeof traceGlobals.get('appDir') === 'undefined'\n ) {\n const pagesResult = findPagesDir(dir)\n appDir = !!pagesResult.appDir\n pagesDir = !!pagesResult.pagesDir\n }\n\n const telemetry =\n (traceGlobals.get('telemetry') as InstanceType<\n typeof import('../telemetry/storage').Telemetry\n >) ||\n new Telemetry({\n distDir: path.join(dir, distDir || '.next'),\n })\n\n telemetry.record(\n eventCliSessionStopped({\n cliCommand: 'dev',\n turboFlag: isTurbopack,\n durationMilliseconds: Date.now() - sessionStarted,\n pagesDir,\n appDir,\n }),\n true\n )\n telemetry.flushDetached('dev', dir)\n } catch (_) {\n // errors here aren't actionable so don't add\n // noise to the output\n }\n\n if (traceUploadUrl && distDir) {\n uploadTrace({\n traceUploadUrl,\n mode: 'dev',\n projectDir: dir,\n distDir,\n isTurboSession: isTurbopack,\n })\n\n writeDevState()\n }\n\n // Save CPU profile if it was enabled (before exiting)\n saveCpuProfile()\n\n // ensure we re-enable the terminal cursor before exiting\n // the program, or the cursor could remain hidden\n process.stdout.write('\\x1B[?25h')\n process.stdout.write('\\n')\n process.exit(exitCode)\n}\n\nprocess.on('SIGINT', () => handleSessionStop('SIGINT'))\nprocess.on('SIGTERM', () => handleSessionStop('SIGTERM'))\n\n// exit event must be synchronous\nprocess.on('exit', () => {\n child?.kill('SIGKILL')\n // Catch aggressive kills (e.g. OOM, unhandled exception) that bypass handleSessionStop.\n // SIGKILL of the parent cannot be caught; for all other exits this ensures state is written.\n if (!sessionStopHandled) {\n writeDevState()\n }\n})\n\nconst nextDev = async (\n options: NextDevOptions,\n portSource: PortSource,\n directory?: string\n) => {\n // Note: parseBundlerArgs can only decide on Turbopack or webpack.\n // Rspack can be configured via next.config.js but next.config.js is not loaded in the main process, only in the child process.\n isTurbopack = parseBundlerArgs(options) === Bundler.Turbopack\n\n dir = getProjectDir(process.env.NEXT_PRIVATE_DEV_DIR || directory)\n\n // Check if pages dir exists and warn if not\n if (!(await fileExists(dir, FileType.Directory))) {\n printAndExit(`> No such directory exists as the project root: ${dir}`)\n }\n\n if (options.experimentalCpuProf) {\n Log.info(\n `CPU profiling enabled. Profile will be saved to .next-profiles/ on exit (Ctrl+C).`\n )\n }\n\n async function preflight(skipOnReboot: boolean) {\n const { getPackageVersion, getDependencies } = (await Promise.resolve(\n require('../lib/get-package-version') as typeof import('../lib/get-package-version')\n )) as typeof import('../lib/get-package-version')\n\n const [sassVersion, nodeSassVersion] = await Promise.all([\n getPackageVersion({ cwd: dir, name: 'sass' }),\n getPackageVersion({ cwd: dir, name: 'node-sass' }),\n ])\n if (sassVersion && nodeSassVersion) {\n Log.warn(\n 'Your project has both `sass` and `node-sass` installed as dependencies, but should only use one or the other. ' +\n 'Please remove the `node-sass` dependency from your project. ' +\n ' Read more: https://nextjs.org/docs/messages/duplicate-sass'\n )\n }\n\n if (!skipOnReboot) {\n const { dependencies, devDependencies } = await getDependencies({\n cwd: dir,\n })\n\n // Warn if @next/font is installed as a dependency. Ignore `workspace:*` to not warn in the Next.js monorepo.\n if (\n dependencies['@next/font'] ||\n (devDependencies['@next/font'] &&\n devDependencies['@next/font'] !== 'workspace:*')\n ) {\n const command = getNpxCommand(dir)\n Log.warn(\n 'Your project has `@next/font` installed as a dependency, please use the built-in `next/font` instead. ' +\n 'The `@next/font` package will be removed in Next.js 14. ' +\n `You can migrate by running \\`${command} @next/codemod@latest built-in-next-font .\\`. Read more: https://nextjs.org/docs/messages/built-in-next-font`\n )\n }\n }\n }\n\n let port = options.port\n\n if (isPortIsReserved(port)) {\n printAndExit(getReservedPortExplanation(port), 1)\n }\n\n // If neither --port nor PORT were specified, it's okay to retry new ports.\n const allowRetry = portSource === 'default'\n\n // We do not set a default host value here to prevent breaking\n // some set-ups that rely on listening on other interfaces\n const host = options.hostname\n\n if (\n options.experimentalUploadTrace &&\n !process.env.NEXT_TRACE_UPLOAD_DISABLED\n ) {\n traceUploadUrl = options.experimentalUploadTrace\n }\n\n if (traceUploadUrl) {\n let isRageRestart = false\n let distDirCleared = false\n try {\n if (fs.existsSync(DEV_STATE_FILE)) {\n const allState = JSON.parse(\n fs.readFileSync(DEV_STATE_FILE, 'utf8')\n ) as Record<string, { stopTime?: number; distDirPath?: string }>\n const state = allState[dir]\n if (\n state?.stopTime &&\n Date.now() - state.stopTime < RAGE_RESTART_THRESHOLD_MS\n ) {\n isRageRestart = true\n }\n if (state?.distDirPath && !fs.existsSync(state.distDirPath)) {\n distDirCleared = true\n }\n }\n } catch {\n // Corrupt file — leave both flags false\n }\n devSpanAttrs = {\n 'rage-restart': isRageRestart,\n 'missing-next-dir': distDirCleared,\n }\n }\n\n const enabledFeatures = Object.fromEntries(\n Object.entries({\n serverFastRefreshDisabled: options.serverFastRefresh === false,\n experimentalCpuProf: options.experimentalCpuProf,\n }).filter(([_, value]) => value)\n )\n\n for (const [key, value] of Object.entries(enabledFeatures)) {\n sessionSpan.setAttribute(`feature.${key}`, value)\n }\n\n initializeTraceState({\n ...exportTraceState(),\n defaultParentSpanId: sessionSpan.getId(),\n })\n\n const devServerOptions: StartServerOptions = {\n dir,\n port,\n allowRetry,\n isDev: true,\n hostname: host,\n serverFastRefresh: options.serverFastRefresh,\n }\n\n const startServerPath = require.resolve('../server/lib/start-server')\n\n async function startServer(startServerOptions: StartServerOptions) {\n return new Promise<void>((resolve) => {\n let resolved = false\n const defaultEnv = (initialEnv || process.env) as typeof process.env\n\n const nodeOptions = getParsedNodeOptions()\n\n let maxOldSpaceSize: string | number | undefined = getMaxOldSpaceSize()\n if (!maxOldSpaceSize && !process.env.NEXT_DISABLE_MEM_OVERRIDE) {\n const totalMem = os.totalmem()\n const totalMemInMB = Math.floor(totalMem / 1024 / 1024)\n maxOldSpaceSize = Math.floor(totalMemInMB * 0.5).toString()\n\n nodeOptions.set('max-old-space-size', maxOldSpaceSize)\n\n // Ensure the max_old_space_size is not also set.\n nodeOptions.delete('max_old_space_size')\n }\n\n if (options.disableSourceMaps) {\n nodeOptions.delete('enable-source-maps')\n } else {\n nodeOptions.set('enable-source-maps', true)\n }\n\n const nodeDebugType = getNodeDebugType(nodeOptions)\n const originalAddress =\n nodeDebugType === undefined ? undefined : nodeOptions.get(nodeDebugType)\n nodeOptions.delete('inspect')\n nodeOptions.delete('inspect-brk')\n nodeOptions.delete('inspect_brk')\n if (nodeDebugType !== undefined) {\n const address = getParsedDebugAddress(originalAddress)\n address.port = address.port === 0 ? 0 : address.port + 1\n nodeOptions.set(nodeDebugType, formatDebugAddress(address))\n } else if (options.inspect) {\n const address: DebugAddress =\n options.inspect === true\n ? getParsedDebugAddress(true)\n : options.inspect\n nodeOptions.set('inspect', formatDebugAddress(address))\n }\n\n const { nodeOptions: formattedNodeOptions, execArgv } =\n formatNodeOptions(nodeOptions)\n\n child = fork(startServerPath, {\n stdio: 'inherit',\n execArgv,\n env: {\n ...defaultEnv,\n ...(isTurbopack ? { TURBOPACK: process.env.TURBOPACK } : undefined),\n __NEXT_DEV_SERVER: '1',\n NEXT_PRIVATE_START_TIME: process.env.NEXT_PRIVATE_START_TIME,\n NEXT_PRIVATE_WORKER: '1',\n NEXT_PRIVATE_TRACE_ID: traceId,\n NEXT_PRIVATE_ENABLED_FEATURES: JSON.stringify(enabledFeatures),\n NEXT_PRIVATE_DEV_SPAN_ATTRS: JSON.stringify(devSpanAttrs),\n NODE_EXTRA_CA_CERTS: startServerOptions.selfSignedCertificate\n ? startServerOptions.selfSignedCertificate.rootCA\n : defaultEnv.NODE_EXTRA_CA_CERTS,\n NODE_OPTIONS: formattedNodeOptions,\n // There is a node.js bug on MacOS which causes closing file watchers to be really slow.\n // This limits the number of watchers x mitigate the issue.\n // https://github.com/nodejs/node/issues/29949\n WATCHPACK_WATCHER_LIMIT:\n os.platform() === 'darwin' ? '20' : undefined,\n // Enable CPU profiling if requested\n ...(options.experimentalCpuProf\n ? {\n NEXT_CPU_PROF: '1',\n NEXT_CPU_PROF_DIR: path.join(dir, '.next-profiles'),\n __NEXT_PRIVATE_CPU_PROFILE: 'dev-server',\n }\n : undefined),\n ...(process.env.NEXT_TURBOPACK_TRACING\n ? { NEXT_TURBOPACK_TRACING: process.env.NEXT_TURBOPACK_TRACING }\n : undefined),\n },\n })\n\n child.on('message', (msg: any) => {\n if (msg && typeof msg === 'object') {\n if (msg.nextWorkerReady) {\n child?.send({ nextWorkerOptions: startServerOptions })\n } else if (msg.nextServerReady && !resolved) {\n if (msg.port) {\n // Store the used port in case a random one was selected, so that\n // it can be re-used on automatic dev server restarts.\n port = parseInt(msg.port, 10)\n }\n if (msg.distDir) {\n // Store the distDir from the child process for telemetry and trace uploads.\n distDir = msg.distDir\n }\n\n resolved = true\n resolve()\n }\n }\n })\n\n child.on('exit', async (code, signal) => {\n if (sessionStopHandled || signal) {\n return\n }\n if (code === RESTART_EXIT_CODE) {\n // Starting the dev server will overwrite the `.next/trace` file, so we\n // must upload the existing contents before restarting the server to\n // preserve the metrics.\n if (traceUploadUrl && distDir) {\n uploadTrace({\n traceUploadUrl,\n mode: 'dev',\n projectDir: dir,\n distDir,\n isTurboSession: isTurbopack,\n sync: true,\n })\n }\n\n // Reset the start time so \"Ready in X\" reflects the restart\n // duration, not time since the original process started.\n process.env.NEXT_PRIVATE_START_TIME = Date.now().toString()\n\n return startServer({ ...startServerOptions, port })\n }\n // Call handler (e.g. upload telemetry). Don't try to send a signal to\n // the child, as it has already exited.\n await handleSessionStop(/* signal */ null)\n })\n })\n }\n\n const runDevServer = async (reboot: boolean) => {\n try {\n if (!!options.experimentalHttps) {\n Log.warn(\n 'Self-signed certificates are currently an experimental feature, use with caution.'\n )\n\n let certificate: SelfSignedCertificate | undefined\n\n const key = options.experimentalHttpsKey\n const cert = options.experimentalHttpsCert\n const rootCA = options.experimentalHttpsCa\n\n if (key && cert) {\n certificate = {\n key: path.resolve(key),\n cert: path.resolve(cert),\n rootCA: rootCA ? path.resolve(rootCA) : undefined,\n }\n } else {\n certificate = await createSelfSignedCertificate(host)\n }\n\n await startServer({\n ...devServerOptions,\n selfSignedCertificate: certificate,\n })\n } else {\n await startServer(devServerOptions)\n }\n\n await preflight(reboot)\n } catch (err) {\n console.error(err)\n process.exit(1)\n }\n }\n\n await runDevServer(false)\n}\n\nfunction writeDevState(): void {\n if (!traceUploadUrl || !dir) return\n try {\n fs.mkdirSync(path.dirname(DEV_STATE_FILE), { recursive: true })\n\n let state: Record<string, { stopTime: number; distDirPath: string }> = {}\n try {\n state = JSON.parse(fs.readFileSync(DEV_STATE_FILE, 'utf8'))\n } catch {\n // File missing or corrupt — start with empty state\n }\n\n // Eagerly remove entries that are stale (older than threshold) or invalid\n // (future timestamps from clock skew or corruption).\n const now = Date.now()\n const cutoff = now - RAGE_RESTART_THRESHOLD_MS\n for (const key of Object.keys(state)) {\n const t = state[key]?.stopTime\n if (!t || t < cutoff || t > now) {\n delete state[key]\n }\n }\n\n // Update current project\n state[dir] = {\n stopTime: Date.now(),\n distDirPath: path.join(dir, distDir ?? '.next'),\n }\n\n const { sync: writeFileAtomicSync } =\n require('next/dist/compiled/write-file-atomic') as typeof import('next/dist/compiled/write-file-atomic')\n writeFileAtomicSync(DEV_STATE_FILE, JSON.stringify(state))\n } catch {\n // Best effort — don't interfere with shutdown\n }\n}\n\nexport { nextDev }\n"],"names":["nextDev","dir","child","distDir","isTurbopack","traceUploadUrl","sessionStopHandled","devSpanAttrs","sessionStarted","Date","now","sessionSpan","trace","RAGE_RESTART_THRESHOLD_MS","DEV_STATE_FILE","path","join","getCacheDirectory","CHILD_EXIT_TIMEOUT_MS","parseInt","process","env","NEXT_EXIT_TIMEOUT_MS","handleSessionStop","signal","pid","kill","exitCode","signalCode","exitTimeout","setTimeout","once","catch","clearTimeout","stop","eventCliSessionStopped","require","pagesDir","traceGlobals","get","appDir","pagesResult","findPagesDir","telemetry","Telemetry","record","cliCommand","turboFlag","durationMilliseconds","flushDetached","_","uploadTrace","mode","projectDir","isTurboSession","writeDevState","saveCpuProfile","stdout","write","exit","on","options","portSource","directory","parseBundlerArgs","Bundler","Turbopack","getProjectDir","NEXT_PRIVATE_DEV_DIR","fileExists","FileType","Directory","printAndExit","experimentalCpuProf","Log","info","preflight","skipOnReboot","getPackageVersion","getDependencies","Promise","resolve","sassVersion","nodeSassVersion","all","cwd","name","warn","dependencies","devDependencies","command","getNpxCommand","port","isPortIsReserved","getReservedPortExplanation","allowRetry","host","hostname","experimentalUploadTrace","NEXT_TRACE_UPLOAD_DISABLED","isRageRestart","distDirCleared","fs","existsSync","allState","JSON","parse","readFileSync","state","stopTime","distDirPath","enabledFeatures","Object","fromEntries","entries","serverFastRefreshDisabled","serverFastRefresh","filter","value","key","setAttribute","initializeTraceState","exportTraceState","defaultParentSpanId","getId","devServerOptions","isDev","startServerPath","startServer","startServerOptions","resolved","defaultEnv","initialEnv","nodeOptions","getParsedNodeOptions","maxOldSpaceSize","getMaxOldSpaceSize","NEXT_DISABLE_MEM_OVERRIDE","totalMem","os","totalmem","totalMemInMB","Math","floor","toString","set","delete","disableSourceMaps","nodeDebugType","getNodeDebugType","originalAddress","undefined","address","getParsedDebugAddress","formatDebugAddress","inspect","formattedNodeOptions","execArgv","formatNodeOptions","fork","stdio","TURBOPACK","__NEXT_DEV_SERVER","NEXT_PRIVATE_START_TIME","NEXT_PRIVATE_WORKER","NEXT_PRIVATE_TRACE_ID","traceId","NEXT_PRIVATE_ENABLED_FEATURES","stringify","NEXT_PRIVATE_DEV_SPAN_ATTRS","NODE_EXTRA_CA_CERTS","selfSignedCertificate","rootCA","NODE_OPTIONS","WATCHPACK_WATCHER_LIMIT","platform","NEXT_CPU_PROF","NEXT_CPU_PROF_DIR","__NEXT_PRIVATE_CPU_PROFILE","NEXT_TURBOPACK_TRACING","msg","nextWorkerReady","send","nextWorkerOptions","nextServerReady","code","RESTART_EXIT_CODE","sync","runDevServer","reboot","experimentalHttps","certificate","experimentalHttpsKey","cert","experimentalHttpsCert","experimentalHttpsCa","createSelfSignedCertificate","err","console","error","mkdirSync","dirname","recursive","cutoff","keys","t","writeFileAtomicSync"],"mappings":"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","ignoreList":[0]}
51
51
 
52
52
  diff --git a/node_modules/next/dist/esm/lib/worker.js b/node_modules/next/dist/esm/lib/worker.js
53
53
  index da147e8..005159a 100644
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@runderworld/next.js-patches",
3
- "version": "16.2.4",
4
- "description": "Dist patch overlay for Next.js v16.2.4 with fix-node-options-v16-2",
3
+ "version": "16.3.0-canary.1",
4
+ "description": "Dist patch overlay for Next.js v16.3.0-canary.1 with fix-node-options-v16-2",
5
5
  "main": "dist.patch",
6
6
  "files": ["dist.patch"],
7
7
  "keywords": ["next.js", "patch", "dist", "overlay", "enterprise"],