next 15.5.1-canary.33 → 15.5.1-canary.34

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 (58) hide show
  1. package/dist/bin/next +1 -1
  2. package/dist/build/index.js +2 -2
  3. package/dist/build/load-jsconfig.js +1 -1
  4. package/dist/build/load-jsconfig.js.map +1 -1
  5. package/dist/build/next-config-ts/transpile-config.js +2 -1
  6. package/dist/build/next-config-ts/transpile-config.js.map +1 -1
  7. package/dist/build/swc/index.js +1 -1
  8. package/dist/build/webpack-config.js +2 -2
  9. package/dist/cli/next-test.js +1 -1
  10. package/dist/cli/next-test.js.map +1 -1
  11. package/dist/client/app-bootstrap.js +1 -1
  12. package/dist/client/index.js +1 -1
  13. package/dist/compiled/next-server/pages-api.runtime.prod.js +1 -1
  14. package/dist/compiled/next-server/pages-api.runtime.prod.js.map +1 -1
  15. package/dist/compiled/next-server/pages.runtime.prod.js +1 -1
  16. package/dist/compiled/next-server/pages.runtime.prod.js.map +1 -1
  17. package/dist/esm/build/index.js +2 -2
  18. package/dist/esm/build/load-jsconfig.js +1 -1
  19. package/dist/esm/build/load-jsconfig.js.map +1 -1
  20. package/dist/esm/build/next-config-ts/transpile-config.js +2 -1
  21. package/dist/esm/build/next-config-ts/transpile-config.js.map +1 -1
  22. package/dist/esm/build/swc/index.js +1 -1
  23. package/dist/esm/build/webpack-config.js +2 -2
  24. package/dist/esm/client/app-bootstrap.js +1 -1
  25. package/dist/esm/client/index.js +1 -1
  26. package/dist/esm/lib/eslint/runLintCheck.js +1 -1
  27. package/dist/esm/lib/eslint/runLintCheck.js.map +1 -1
  28. package/dist/esm/lib/has-necessary-dependencies.js +9 -7
  29. package/dist/esm/lib/has-necessary-dependencies.js.map +1 -1
  30. package/dist/esm/lib/verify-partytown-setup.js +1 -1
  31. package/dist/esm/lib/verify-partytown-setup.js.map +1 -1
  32. package/dist/esm/lib/verify-typescript-setup.js +2 -2
  33. package/dist/esm/lib/verify-typescript-setup.js.map +1 -1
  34. package/dist/esm/server/dev/hot-reloader-turbopack.js +13 -3
  35. package/dist/esm/server/dev/hot-reloader-turbopack.js.map +1 -1
  36. package/dist/esm/server/dev/hot-reloader-webpack.js +1 -1
  37. package/dist/esm/server/lib/app-info-log.js +1 -1
  38. package/dist/esm/server/lib/start-server.js +1 -1
  39. package/dist/esm/shared/lib/canary-only.js +1 -1
  40. package/dist/lib/eslint/runLintCheck.js +1 -1
  41. package/dist/lib/eslint/runLintCheck.js.map +1 -1
  42. package/dist/lib/has-necessary-dependencies.d.ts +1 -1
  43. package/dist/lib/has-necessary-dependencies.js +8 -6
  44. package/dist/lib/has-necessary-dependencies.js.map +1 -1
  45. package/dist/lib/verify-partytown-setup.js +1 -1
  46. package/dist/lib/verify-partytown-setup.js.map +1 -1
  47. package/dist/lib/verify-typescript-setup.js +2 -2
  48. package/dist/lib/verify-typescript-setup.js.map +1 -1
  49. package/dist/server/dev/hot-reloader-turbopack.js +13 -3
  50. package/dist/server/dev/hot-reloader-turbopack.js.map +1 -1
  51. package/dist/server/dev/hot-reloader-webpack.js +1 -1
  52. package/dist/server/lib/app-info-log.js +1 -1
  53. package/dist/server/lib/start-server.js +1 -1
  54. package/dist/shared/lib/canary-only.js +1 -1
  55. package/dist/telemetry/anonymous-meta.js +1 -1
  56. package/dist/telemetry/events/session-stopped.js +2 -2
  57. package/dist/telemetry/events/version.js +2 -2
  58. package/package.json +15 -15
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/lib/has-necessary-dependencies.ts"],"sourcesContent":["import { existsSync, promises as fs } from 'fs'\nimport { resolveFrom } from './resolve-from'\nimport { dirname, join, relative } from 'path'\n\nexport interface MissingDependency {\n file: string\n /**\n * The package's package.json (e.g. require(`${pkg}/package.json`)) MUST resolve.\n * If `exportsRestrict` is false, `${file}` MUST also resolve.\n */\n pkg: string\n /**\n * If true, the pkg's package.json needs to be resolvable.\n * If true, will resolve `file` relative to the real path of the package.json.\n *\n * For example, `{ file: '@types/react/index.d.ts', pkg: '@types/react', exportsRestrict: true }`\n * will try to resolve '@types/react/package.json' first and then assume `@types/react/index.d.ts`\n * resolves to `path.join(dirname(resolvedPackageJsonPath), 'index.d.ts')`.\n *\n * If false, will resolve `file` relative to the baseDir.\n * ForFor example, `{ file: '@types/react/index.d.ts', pkg: '@types/react', exportsRestrict: true }`\n * will try to resolve `@types/react/index.d.ts` directly.\n */\n exportsRestrict: boolean\n}\n\nexport type NecessaryDependencies = {\n resolved: Map<string, string>\n missing: MissingDependency[]\n}\n\nexport async function hasNecessaryDependencies(\n baseDir: string,\n requiredPackages: MissingDependency[]\n): Promise<NecessaryDependencies> {\n let resolutions = new Map<string, string>()\n const missingPackages: MissingDependency[] = []\n\n await Promise.all(\n requiredPackages.map(async (p) => {\n try {\n const pkgPath = await fs.realpath(\n resolveFrom(baseDir, `${p.pkg}/package.json`)\n )\n const pkgDir = dirname(pkgPath)\n\n if (p.exportsRestrict) {\n const fileNameToVerify = relative(p.pkg, p.file)\n if (fileNameToVerify) {\n const fileToVerify = join(pkgDir, fileNameToVerify)\n if (existsSync(fileToVerify)) {\n resolutions.set(p.pkg, fileToVerify)\n } else {\n return missingPackages.push(p)\n }\n } else {\n resolutions.set(p.pkg, pkgPath)\n }\n } else {\n resolutions.set(p.pkg, resolveFrom(baseDir, p.file))\n }\n } catch (_) {\n return missingPackages.push(p)\n }\n })\n )\n\n return {\n resolved: resolutions,\n missing: missingPackages,\n }\n}\n"],"names":["hasNecessaryDependencies","baseDir","requiredPackages","resolutions","Map","missingPackages","Promise","all","map","p","pkgPath","fs","realpath","resolveFrom","pkg","pkgDir","dirname","exportsRestrict","fileNameToVerify","relative","file","fileToVerify","join","existsSync","set","push","_","resolved","missing"],"mappings":";;;;+BA+BsBA;;;eAAAA;;;oBA/BqB;6BACf;sBACY;AA6BjC,eAAeA,yBACpBC,OAAe,EACfC,gBAAqC;IAErC,IAAIC,cAAc,IAAIC;IACtB,MAAMC,kBAAuC,EAAE;IAE/C,MAAMC,QAAQC,GAAG,CACfL,iBAAiBM,GAAG,CAAC,OAAOC;QAC1B,IAAI;YACF,MAAMC,UAAU,MAAMC,YAAE,CAACC,QAAQ,CAC/BC,IAAAA,wBAAW,EAACZ,SAAS,GAAGQ,EAAEK,GAAG,CAAC,aAAa,CAAC;YAE9C,MAAMC,SAASC,IAAAA,aAAO,EAACN;YAEvB,IAAID,EAAEQ,eAAe,EAAE;gBACrB,MAAMC,mBAAmBC,IAAAA,cAAQ,EAACV,EAAEK,GAAG,EAAEL,EAAEW,IAAI;gBAC/C,IAAIF,kBAAkB;oBACpB,MAAMG,eAAeC,IAAAA,UAAI,EAACP,QAAQG;oBAClC,IAAIK,IAAAA,cAAU,EAACF,eAAe;wBAC5BlB,YAAYqB,GAAG,CAACf,EAAEK,GAAG,EAAEO;oBACzB,OAAO;wBACL,OAAOhB,gBAAgBoB,IAAI,CAAChB;oBAC9B;gBACF,OAAO;oBACLN,YAAYqB,GAAG,CAACf,EAAEK,GAAG,EAAEJ;gBACzB;YACF,OAAO;gBACLP,YAAYqB,GAAG,CAACf,EAAEK,GAAG,EAAED,IAAAA,wBAAW,EAACZ,SAASQ,EAAEW,IAAI;YACpD;QACF,EAAE,OAAOM,GAAG;YACV,OAAOrB,gBAAgBoB,IAAI,CAAChB;QAC9B;IACF;IAGF,OAAO;QACLkB,UAAUxB;QACVyB,SAASvB;IACX;AACF","ignoreList":[0]}
1
+ {"version":3,"sources":["../../src/lib/has-necessary-dependencies.ts"],"sourcesContent":["import { existsSync, realpathSync } from 'fs'\nimport { resolveFrom } from './resolve-from'\nimport { dirname, join, relative } from 'path'\n\nexport interface MissingDependency {\n file: string\n /**\n * The package's package.json (e.g. require(`${pkg}/package.json`)) MUST resolve.\n * If `exportsRestrict` is false, `${file}` MUST also resolve.\n */\n pkg: string\n /**\n * If true, the pkg's package.json needs to be resolvable.\n * If true, will resolve `file` relative to the real path of the package.json.\n *\n * For example, `{ file: '@types/react/index.d.ts', pkg: '@types/react', exportsRestrict: true }`\n * will try to resolve '@types/react/package.json' first and then assume `@types/react/index.d.ts`\n * resolves to `path.join(dirname(resolvedPackageJsonPath), 'index.d.ts')`.\n *\n * If false, will resolve `file` relative to the baseDir.\n * ForFor example, `{ file: '@types/react/index.d.ts', pkg: '@types/react', exportsRestrict: true }`\n * will try to resolve `@types/react/index.d.ts` directly.\n */\n exportsRestrict: boolean\n}\n\nexport type NecessaryDependencies = {\n resolved: Map<string, string>\n missing: MissingDependency[]\n}\n\nexport function hasNecessaryDependencies(\n baseDir: string,\n requiredPackages: MissingDependency[]\n): NecessaryDependencies {\n let resolutions = new Map<string, string>()\n const missingPackages: MissingDependency[] = []\n\n for (const p of requiredPackages) {\n try {\n const pkgPath = realpathSync(\n resolveFrom(baseDir, `${p.pkg}/package.json`)\n )\n const pkgDir = dirname(pkgPath)\n\n if (p.exportsRestrict) {\n const fileNameToVerify = relative(p.pkg, p.file)\n if (fileNameToVerify) {\n const fileToVerify = join(pkgDir, fileNameToVerify)\n if (existsSync(fileToVerify)) {\n resolutions.set(p.pkg, fileToVerify)\n } else {\n missingPackages.push(p)\n continue\n }\n } else {\n resolutions.set(p.pkg, pkgPath)\n }\n } else {\n resolutions.set(p.pkg, resolveFrom(baseDir, p.file))\n }\n } catch (_) {\n missingPackages.push(p)\n continue\n }\n }\n\n return {\n resolved: resolutions,\n missing: missingPackages,\n }\n}\n"],"names":["hasNecessaryDependencies","baseDir","requiredPackages","resolutions","Map","missingPackages","p","pkgPath","realpathSync","resolveFrom","pkg","pkgDir","dirname","exportsRestrict","fileNameToVerify","relative","file","fileToVerify","join","existsSync","set","push","_","resolved","missing"],"mappings":";;;;+BA+BgBA;;;eAAAA;;;oBA/ByB;6BACb;sBACY;AA6BjC,SAASA,yBACdC,OAAe,EACfC,gBAAqC;IAErC,IAAIC,cAAc,IAAIC;IACtB,MAAMC,kBAAuC,EAAE;IAE/C,KAAK,MAAMC,KAAKJ,iBAAkB;QAChC,IAAI;YACF,MAAMK,UAAUC,IAAAA,gBAAY,EAC1BC,IAAAA,wBAAW,EAACR,SAAS,GAAGK,EAAEI,GAAG,CAAC,aAAa,CAAC;YAE9C,MAAMC,SAASC,IAAAA,aAAO,EAACL;YAEvB,IAAID,EAAEO,eAAe,EAAE;gBACrB,MAAMC,mBAAmBC,IAAAA,cAAQ,EAACT,EAAEI,GAAG,EAAEJ,EAAEU,IAAI;gBAC/C,IAAIF,kBAAkB;oBACpB,MAAMG,eAAeC,IAAAA,UAAI,EAACP,QAAQG;oBAClC,IAAIK,IAAAA,cAAU,EAACF,eAAe;wBAC5Bd,YAAYiB,GAAG,CAACd,EAAEI,GAAG,EAAEO;oBACzB,OAAO;wBACLZ,gBAAgBgB,IAAI,CAACf;wBACrB;oBACF;gBACF,OAAO;oBACLH,YAAYiB,GAAG,CAACd,EAAEI,GAAG,EAAEH;gBACzB;YACF,OAAO;gBACLJ,YAAYiB,GAAG,CAACd,EAAEI,GAAG,EAAED,IAAAA,wBAAW,EAACR,SAASK,EAAEU,IAAI;YACpD;QACF,EAAE,OAAOM,GAAG;YACVjB,gBAAgBgB,IAAI,CAACf;YACrB;QACF;IACF;IAEA,OAAO;QACLiB,UAAUpB;QACVqB,SAASnB;IACX;AACF","ignoreList":[0]}
@@ -85,7 +85,7 @@ async function copyPartytownStaticFiles(deps, staticDir) {
85
85
  async function verifyPartytownSetup(dir, targetDir) {
86
86
  try {
87
87
  var _partytownDeps_missing;
88
- const partytownDeps = await (0, _hasnecessarydependencies.hasNecessaryDependencies)(dir, [
88
+ const partytownDeps = (0, _hasnecessarydependencies.hasNecessaryDependencies)(dir, [
89
89
  {
90
90
  file: '@builder.io/partytown',
91
91
  pkg: '@builder.io/partytown',
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/lib/verify-partytown-setup.ts"],"sourcesContent":["import { promises } from 'fs'\nimport { bold, cyan, red } from './picocolors'\n\nimport path from 'path'\nimport { hasNecessaryDependencies } from './has-necessary-dependencies'\nimport type { NecessaryDependencies } from './has-necessary-dependencies'\nimport { fileExists, FileType } from './file-exists'\nimport { FatalError } from './fatal-error'\nimport * as Log from '../build/output/log'\nimport { getPkgManager } from './helpers/get-pkg-manager'\n\nasync function missingDependencyError(dir: string) {\n const packageManager = getPkgManager(dir)\n\n throw new FatalError(\n bold(\n red(\n \"It looks like you're trying to use Partytown with next/script but do not have the required package(s) installed.\"\n )\n ) +\n '\\n\\n' +\n bold(`Please install Partytown by running:`) +\n '\\n\\n' +\n `\\t${bold(\n cyan(\n (packageManager === 'yarn'\n ? 'yarn add --dev'\n : packageManager === 'pnpm'\n ? 'pnpm install --save-dev'\n : 'npm install --save-dev') + ' @builder.io/partytown'\n )\n )}` +\n '\\n\\n' +\n bold(\n `If you are not trying to use Partytown, please disable the experimental ${cyan(\n '\"nextScriptWorkers\"'\n )} flag in next.config.js.`\n ) +\n '\\n'\n )\n}\n\nasync function copyPartytownStaticFiles(\n deps: NecessaryDependencies,\n staticDir: string\n) {\n const partytownLibDir = path.join(staticDir, '~partytown')\n const hasPartytownLibDir = await fileExists(\n partytownLibDir,\n FileType.Directory\n )\n\n if (hasPartytownLibDir) {\n await promises.rm(partytownLibDir, { recursive: true, force: true })\n }\n\n const { copyLibFiles } = await Promise.resolve(\n require(path.join(deps.resolved.get('@builder.io/partytown')!, '../utils'))\n )\n\n await copyLibFiles(partytownLibDir)\n}\n\nexport async function verifyPartytownSetup(\n dir: string,\n targetDir: string\n): Promise<void> {\n try {\n const partytownDeps: NecessaryDependencies = await hasNecessaryDependencies(\n dir,\n [\n {\n file: '@builder.io/partytown',\n pkg: '@builder.io/partytown',\n exportsRestrict: false,\n },\n ]\n )\n\n if (partytownDeps.missing?.length > 0) {\n await missingDependencyError(dir)\n } else {\n try {\n await copyPartytownStaticFiles(partytownDeps, targetDir)\n } catch (err) {\n Log.warn(\n `Partytown library files could not be copied to the static directory. Please ensure that ${bold(\n cyan('@builder.io/partytown')\n )} is installed as a dependency.`\n )\n }\n }\n } catch (err) {\n // Don't show a stack trace when there is an error due to missing dependencies\n if (err instanceof FatalError) {\n console.error(err.message)\n process.exit(1)\n }\n throw err\n }\n}\n"],"names":["verifyPartytownSetup","missingDependencyError","dir","packageManager","getPkgManager","FatalError","bold","red","cyan","copyPartytownStaticFiles","deps","staticDir","partytownLibDir","path","join","hasPartytownLibDir","fileExists","FileType","Directory","promises","rm","recursive","force","copyLibFiles","Promise","resolve","require","resolved","get","targetDir","partytownDeps","hasNecessaryDependencies","file","pkg","exportsRestrict","missing","length","err","Log","warn","console","error","message","process","exit"],"mappings":";;;;+BA+DsBA;;;eAAAA;;;oBA/DG;4BACO;6DAEf;0CACwB;4BAEJ;4BACV;6DACN;+BACS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAE9B,eAAeC,uBAAuBC,GAAW;IAC/C,MAAMC,iBAAiBC,IAAAA,4BAAa,EAACF;IAErC,MAAM,qBAyBL,CAzBK,IAAIG,sBAAU,CAClBC,IAAAA,gBAAI,EACFC,IAAAA,eAAG,EACD,uHAGF,SACAD,IAAAA,gBAAI,EAAC,CAAC,oCAAoC,CAAC,IAC3C,SACA,CAAC,EAAE,EAAEA,IAAAA,gBAAI,EACPE,IAAAA,gBAAI,EACF,AAACL,CAAAA,mBAAmB,SAChB,mBACAA,mBAAmB,SACjB,4BACA,wBAAuB,IAAK,4BAEnC,GACH,SACAG,IAAAA,gBAAI,EACF,CAAC,wEAAwE,EAAEE,IAAAA,gBAAI,EAC7E,uBACA,wBAAwB,CAAC,IAE7B,OAxBE,qBAAA;eAAA;oBAAA;sBAAA;IAyBN;AACF;AAEA,eAAeC,yBACbC,IAA2B,EAC3BC,SAAiB;IAEjB,MAAMC,kBAAkBC,aAAI,CAACC,IAAI,CAACH,WAAW;IAC7C,MAAMI,qBAAqB,MAAMC,IAAAA,sBAAU,EACzCJ,iBACAK,oBAAQ,CAACC,SAAS;IAGpB,IAAIH,oBAAoB;QACtB,MAAMI,YAAQ,CAACC,EAAE,CAACR,iBAAiB;YAAES,WAAW;YAAMC,OAAO;QAAK;IACpE;IAEA,MAAM,EAAEC,YAAY,EAAE,GAAG,MAAMC,QAAQC,OAAO,CAC5CC,QAAQb,aAAI,CAACC,IAAI,CAACJ,KAAKiB,QAAQ,CAACC,GAAG,CAAC,0BAA2B;IAGjE,MAAML,aAAaX;AACrB;AAEO,eAAeZ,qBACpBE,GAAW,EACX2B,SAAiB;IAEjB,IAAI;YAYEC;QAXJ,MAAMA,gBAAuC,MAAMC,IAAAA,kDAAwB,EACzE7B,KACA;YACE;gBACE8B,MAAM;gBACNC,KAAK;gBACLC,iBAAiB;YACnB;SACD;QAGH,IAAIJ,EAAAA,yBAAAA,cAAcK,OAAO,qBAArBL,uBAAuBM,MAAM,IAAG,GAAG;YACrC,MAAMnC,uBAAuBC;QAC/B,OAAO;YACL,IAAI;gBACF,MAAMO,yBAAyBqB,eAAeD;YAChD,EAAE,OAAOQ,KAAK;gBACZC,KAAIC,IAAI,CACN,CAAC,wFAAwF,EAAEjC,IAAAA,gBAAI,EAC7FE,IAAAA,gBAAI,EAAC,0BACL,8BAA8B,CAAC;YAErC;QACF;IACF,EAAE,OAAO6B,KAAK;QACZ,8EAA8E;QAC9E,IAAIA,eAAehC,sBAAU,EAAE;YAC7BmC,QAAQC,KAAK,CAACJ,IAAIK,OAAO;YACzBC,QAAQC,IAAI,CAAC;QACf;QACA,MAAMP;IACR;AACF","ignoreList":[0]}
1
+ {"version":3,"sources":["../../src/lib/verify-partytown-setup.ts"],"sourcesContent":["import { promises } from 'fs'\nimport { bold, cyan, red } from './picocolors'\n\nimport path from 'path'\nimport { hasNecessaryDependencies } from './has-necessary-dependencies'\nimport type { NecessaryDependencies } from './has-necessary-dependencies'\nimport { fileExists, FileType } from './file-exists'\nimport { FatalError } from './fatal-error'\nimport * as Log from '../build/output/log'\nimport { getPkgManager } from './helpers/get-pkg-manager'\n\nasync function missingDependencyError(dir: string) {\n const packageManager = getPkgManager(dir)\n\n throw new FatalError(\n bold(\n red(\n \"It looks like you're trying to use Partytown with next/script but do not have the required package(s) installed.\"\n )\n ) +\n '\\n\\n' +\n bold(`Please install Partytown by running:`) +\n '\\n\\n' +\n `\\t${bold(\n cyan(\n (packageManager === 'yarn'\n ? 'yarn add --dev'\n : packageManager === 'pnpm'\n ? 'pnpm install --save-dev'\n : 'npm install --save-dev') + ' @builder.io/partytown'\n )\n )}` +\n '\\n\\n' +\n bold(\n `If you are not trying to use Partytown, please disable the experimental ${cyan(\n '\"nextScriptWorkers\"'\n )} flag in next.config.js.`\n ) +\n '\\n'\n )\n}\n\nasync function copyPartytownStaticFiles(\n deps: NecessaryDependencies,\n staticDir: string\n) {\n const partytownLibDir = path.join(staticDir, '~partytown')\n const hasPartytownLibDir = await fileExists(\n partytownLibDir,\n FileType.Directory\n )\n\n if (hasPartytownLibDir) {\n await promises.rm(partytownLibDir, { recursive: true, force: true })\n }\n\n const { copyLibFiles } = await Promise.resolve(\n require(path.join(deps.resolved.get('@builder.io/partytown')!, '../utils'))\n )\n\n await copyLibFiles(partytownLibDir)\n}\n\nexport async function verifyPartytownSetup(\n dir: string,\n targetDir: string\n): Promise<void> {\n try {\n const partytownDeps: NecessaryDependencies = hasNecessaryDependencies(dir, [\n {\n file: '@builder.io/partytown',\n pkg: '@builder.io/partytown',\n exportsRestrict: false,\n },\n ])\n\n if (partytownDeps.missing?.length > 0) {\n await missingDependencyError(dir)\n } else {\n try {\n await copyPartytownStaticFiles(partytownDeps, targetDir)\n } catch (err) {\n Log.warn(\n `Partytown library files could not be copied to the static directory. Please ensure that ${bold(\n cyan('@builder.io/partytown')\n )} is installed as a dependency.`\n )\n }\n }\n } catch (err) {\n // Don't show a stack trace when there is an error due to missing dependencies\n if (err instanceof FatalError) {\n console.error(err.message)\n process.exit(1)\n }\n throw err\n }\n}\n"],"names":["verifyPartytownSetup","missingDependencyError","dir","packageManager","getPkgManager","FatalError","bold","red","cyan","copyPartytownStaticFiles","deps","staticDir","partytownLibDir","path","join","hasPartytownLibDir","fileExists","FileType","Directory","promises","rm","recursive","force","copyLibFiles","Promise","resolve","require","resolved","get","targetDir","partytownDeps","hasNecessaryDependencies","file","pkg","exportsRestrict","missing","length","err","Log","warn","console","error","message","process","exit"],"mappings":";;;;+BA+DsBA;;;eAAAA;;;oBA/DG;4BACO;6DAEf;0CACwB;4BAEJ;4BACV;6DACN;+BACS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAE9B,eAAeC,uBAAuBC,GAAW;IAC/C,MAAMC,iBAAiBC,IAAAA,4BAAa,EAACF;IAErC,MAAM,qBAyBL,CAzBK,IAAIG,sBAAU,CAClBC,IAAAA,gBAAI,EACFC,IAAAA,eAAG,EACD,uHAGF,SACAD,IAAAA,gBAAI,EAAC,CAAC,oCAAoC,CAAC,IAC3C,SACA,CAAC,EAAE,EAAEA,IAAAA,gBAAI,EACPE,IAAAA,gBAAI,EACF,AAACL,CAAAA,mBAAmB,SAChB,mBACAA,mBAAmB,SACjB,4BACA,wBAAuB,IAAK,4BAEnC,GACH,SACAG,IAAAA,gBAAI,EACF,CAAC,wEAAwE,EAAEE,IAAAA,gBAAI,EAC7E,uBACA,wBAAwB,CAAC,IAE7B,OAxBE,qBAAA;eAAA;oBAAA;sBAAA;IAyBN;AACF;AAEA,eAAeC,yBACbC,IAA2B,EAC3BC,SAAiB;IAEjB,MAAMC,kBAAkBC,aAAI,CAACC,IAAI,CAACH,WAAW;IAC7C,MAAMI,qBAAqB,MAAMC,IAAAA,sBAAU,EACzCJ,iBACAK,oBAAQ,CAACC,SAAS;IAGpB,IAAIH,oBAAoB;QACtB,MAAMI,YAAQ,CAACC,EAAE,CAACR,iBAAiB;YAAES,WAAW;YAAMC,OAAO;QAAK;IACpE;IAEA,MAAM,EAAEC,YAAY,EAAE,GAAG,MAAMC,QAAQC,OAAO,CAC5CC,QAAQb,aAAI,CAACC,IAAI,CAACJ,KAAKiB,QAAQ,CAACC,GAAG,CAAC,0BAA2B;IAGjE,MAAML,aAAaX;AACrB;AAEO,eAAeZ,qBACpBE,GAAW,EACX2B,SAAiB;IAEjB,IAAI;YASEC;QARJ,MAAMA,gBAAuCC,IAAAA,kDAAwB,EAAC7B,KAAK;YACzE;gBACE8B,MAAM;gBACNC,KAAK;gBACLC,iBAAiB;YACnB;SACD;QAED,IAAIJ,EAAAA,yBAAAA,cAAcK,OAAO,qBAArBL,uBAAuBM,MAAM,IAAG,GAAG;YACrC,MAAMnC,uBAAuBC;QAC/B,OAAO;YACL,IAAI;gBACF,MAAMO,yBAAyBqB,eAAeD;YAChD,EAAE,OAAOQ,KAAK;gBACZC,KAAIC,IAAI,CACN,CAAC,wFAAwF,EAAEjC,IAAAA,gBAAI,EAC7FE,IAAAA,gBAAI,EAAC,0BACL,8BAA8B,CAAC;YAErC;QACF;IACF,EAAE,OAAO6B,KAAK;QACZ,8EAA8E;QAC9E,IAAIA,eAAehC,sBAAU,EAAE;YAC7BmC,QAAQC,KAAK,CAACJ,IAAIK,OAAO;YACzBC,QAAQC,IAAI,CAAC;QACf;QACA,MAAMP;IACR;AACF","ignoreList":[0]}
@@ -96,7 +96,7 @@ async function verifyTypeScriptSetup({ dir, distDir, cacheDir, intentDirs, tscon
96
96
  };
97
97
  }
98
98
  // Ensure TypeScript and necessary `@types/*` are installed:
99
- let deps = await (0, _hasnecessarydependencies.hasNecessaryDependencies)(dir, requiredPackages);
99
+ let deps = (0, _hasnecessarydependencies.hasNecessaryDependencies)(dir, requiredPackages);
100
100
  if (((_deps_missing = deps.missing) == null ? void 0 : _deps_missing.length) > 0) {
101
101
  if (_ciinfo.isCI) {
102
102
  // we don't attempt auto install in CI to avoid side-effects
@@ -110,7 +110,7 @@ async function verifyTypeScriptSetup({ dir, distDir, cacheDir, intentDirs, tscon
110
110
  }
111
111
  throw err;
112
112
  });
113
- deps = await (0, _hasnecessarydependencies.hasNecessaryDependencies)(dir, requiredPackages);
113
+ deps = (0, _hasnecessarydependencies.hasNecessaryDependencies)(dir, requiredPackages);
114
114
  }
115
115
  // Load TypeScript after we're sure it exists:
116
116
  const tsPath = deps.resolved.get('typescript');
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/lib/verify-typescript-setup.ts"],"sourcesContent":["import { bold, cyan, red, yellow } from './picocolors'\nimport path from 'path'\n\nimport { hasNecessaryDependencies } from './has-necessary-dependencies'\nimport type { NecessaryDependencies } from './has-necessary-dependencies'\nimport semver from 'next/dist/compiled/semver'\nimport { CompileError } from './compile-error'\nimport * as log from '../build/output/log'\n\nimport { getTypeScriptIntent } from './typescript/getTypeScriptIntent'\nimport type { TypeCheckResult } from './typescript/runTypeCheck'\nimport { writeAppTypeDeclarations } from './typescript/writeAppTypeDeclarations'\nimport { writeConfigurationDefaults } from './typescript/writeConfigurationDefaults'\nimport { installDependencies } from './install-dependencies'\nimport { isCI } from '../server/ci-info'\nimport { missingDepsError } from './typescript/missingDependencyError'\n\nconst requiredPackages = [\n {\n file: 'typescript/lib/typescript.js',\n pkg: 'typescript',\n exportsRestrict: true,\n },\n {\n file: '@types/react/index.d.ts',\n pkg: '@types/react',\n exportsRestrict: true,\n },\n {\n file: '@types/node/index.d.ts',\n pkg: '@types/node',\n exportsRestrict: true,\n },\n]\n\nexport async function verifyTypeScriptSetup({\n dir,\n distDir,\n cacheDir,\n intentDirs,\n tsconfigPath,\n typeCheckPreflight,\n disableStaticImages,\n hasAppDir,\n hasPagesDir,\n}: {\n dir: string\n distDir: string\n cacheDir?: string\n tsconfigPath: string | undefined\n intentDirs: string[]\n typeCheckPreflight: boolean\n disableStaticImages: boolean\n hasAppDir: boolean\n hasPagesDir: boolean\n}): Promise<{ result?: TypeCheckResult; version: string | null }> {\n const tsConfigFileName = tsconfigPath || 'tsconfig.json'\n const resolvedTsConfigPath = path.join(dir, tsConfigFileName)\n\n try {\n // Check if the project uses TypeScript:\n const intent = await getTypeScriptIntent(dir, intentDirs, tsConfigFileName)\n if (!intent) {\n return { version: null }\n }\n\n // Ensure TypeScript and necessary `@types/*` are installed:\n let deps: NecessaryDependencies = await hasNecessaryDependencies(\n dir,\n requiredPackages\n )\n\n if (deps.missing?.length > 0) {\n if (isCI) {\n // we don't attempt auto install in CI to avoid side-effects\n // and instead log the error for installing needed packages\n missingDepsError(dir, deps.missing)\n }\n console.log(\n bold(\n yellow(\n `It looks like you're trying to use TypeScript but do not have the required package(s) installed.`\n )\n ) +\n '\\n' +\n 'Installing dependencies' +\n '\\n\\n' +\n bold(\n 'If you are not trying to use TypeScript, please remove the ' +\n cyan('tsconfig.json') +\n ' file from your package root (and any TypeScript files in your app and pages directories).'\n ) +\n '\\n'\n )\n await installDependencies(dir, deps.missing, true).catch((err) => {\n if (err && typeof err === 'object' && 'command' in err) {\n console.error(\n `Failed to install required TypeScript dependencies, please install them manually to continue:\\n` +\n (err as any).command +\n '\\n'\n )\n }\n throw err\n })\n deps = await hasNecessaryDependencies(dir, requiredPackages)\n }\n\n // Load TypeScript after we're sure it exists:\n const tsPath = deps.resolved.get('typescript')!\n const ts = (await Promise.resolve(\n require(tsPath)\n )) as typeof import('typescript')\n\n if (semver.lt(ts.version, '4.5.2')) {\n log.warn(\n `Minimum recommended TypeScript version is v4.5.2, older versions can potentially be incompatible with Next.js. Detected: ${ts.version}`\n )\n }\n\n // Reconfigure (or create) the user's `tsconfig.json` for them:\n await writeConfigurationDefaults(\n ts,\n resolvedTsConfigPath,\n intent.firstTimeSetup,\n hasAppDir,\n distDir,\n hasPagesDir\n )\n // Write out the necessary `next-env.d.ts` file to correctly register\n // Next.js' types:\n await writeAppTypeDeclarations({\n baseDir: dir,\n distDir,\n imageImportsEnabled: !disableStaticImages,\n hasPagesDir,\n hasAppDir,\n })\n\n let result\n if (typeCheckPreflight) {\n const { runTypeCheck } =\n require('./typescript/runTypeCheck') as typeof import('./typescript/runTypeCheck')\n\n // Verify the project passes type-checking before we go to webpack phase:\n result = await runTypeCheck(\n ts,\n dir,\n distDir,\n resolvedTsConfigPath,\n cacheDir,\n hasAppDir\n )\n }\n return { result, version: ts.version }\n } catch (err) {\n // These are special errors that should not show a stack trace:\n if (err instanceof CompileError) {\n console.error(red('Failed to compile.\\n'))\n console.error(err.message)\n process.exit(1)\n }\n\n /**\n * verifyTypeScriptSetup can be either invoked directly in the main thread (during next dev / next lint)\n * or run in a worker (during next build). In the latter case, we need to print the error message, as the\n * parent process will only receive an `Jest worker encountered 1 child process exceptions, exceeding retry limit`.\n */\n\n // we are in a worker, print the error message and exit the process\n if (process.env.IS_NEXT_WORKER) {\n if (err instanceof Error) {\n console.error(err.message)\n } else {\n console.error(err)\n }\n process.exit(1)\n }\n // we are in the main thread, throw the error and it will be handled by the caller\n throw err\n }\n}\n"],"names":["verifyTypeScriptSetup","requiredPackages","file","pkg","exportsRestrict","dir","distDir","cacheDir","intentDirs","tsconfigPath","typeCheckPreflight","disableStaticImages","hasAppDir","hasPagesDir","tsConfigFileName","resolvedTsConfigPath","path","join","deps","intent","getTypeScriptIntent","version","hasNecessaryDependencies","missing","length","isCI","missingDepsError","console","log","bold","yellow","cyan","installDependencies","catch","err","error","command","tsPath","resolved","get","ts","Promise","resolve","require","semver","lt","warn","writeConfigurationDefaults","firstTimeSetup","writeAppTypeDeclarations","baseDir","imageImportsEnabled","result","runTypeCheck","CompileError","red","message","process","exit","env","IS_NEXT_WORKER","Error"],"mappings":"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","ignoreList":[0]}
1
+ {"version":3,"sources":["../../src/lib/verify-typescript-setup.ts"],"sourcesContent":["import { bold, cyan, red, yellow } from './picocolors'\nimport path from 'path'\n\nimport { hasNecessaryDependencies } from './has-necessary-dependencies'\nimport type { NecessaryDependencies } from './has-necessary-dependencies'\nimport semver from 'next/dist/compiled/semver'\nimport { CompileError } from './compile-error'\nimport * as log from '../build/output/log'\n\nimport { getTypeScriptIntent } from './typescript/getTypeScriptIntent'\nimport type { TypeCheckResult } from './typescript/runTypeCheck'\nimport { writeAppTypeDeclarations } from './typescript/writeAppTypeDeclarations'\nimport { writeConfigurationDefaults } from './typescript/writeConfigurationDefaults'\nimport { installDependencies } from './install-dependencies'\nimport { isCI } from '../server/ci-info'\nimport { missingDepsError } from './typescript/missingDependencyError'\n\nconst requiredPackages = [\n {\n file: 'typescript/lib/typescript.js',\n pkg: 'typescript',\n exportsRestrict: true,\n },\n {\n file: '@types/react/index.d.ts',\n pkg: '@types/react',\n exportsRestrict: true,\n },\n {\n file: '@types/node/index.d.ts',\n pkg: '@types/node',\n exportsRestrict: true,\n },\n]\n\nexport async function verifyTypeScriptSetup({\n dir,\n distDir,\n cacheDir,\n intentDirs,\n tsconfigPath,\n typeCheckPreflight,\n disableStaticImages,\n hasAppDir,\n hasPagesDir,\n}: {\n dir: string\n distDir: string\n cacheDir?: string\n tsconfigPath: string | undefined\n intentDirs: string[]\n typeCheckPreflight: boolean\n disableStaticImages: boolean\n hasAppDir: boolean\n hasPagesDir: boolean\n}): Promise<{ result?: TypeCheckResult; version: string | null }> {\n const tsConfigFileName = tsconfigPath || 'tsconfig.json'\n const resolvedTsConfigPath = path.join(dir, tsConfigFileName)\n\n try {\n // Check if the project uses TypeScript:\n const intent = await getTypeScriptIntent(dir, intentDirs, tsConfigFileName)\n if (!intent) {\n return { version: null }\n }\n\n // Ensure TypeScript and necessary `@types/*` are installed:\n let deps: NecessaryDependencies = hasNecessaryDependencies(\n dir,\n requiredPackages\n )\n\n if (deps.missing?.length > 0) {\n if (isCI) {\n // we don't attempt auto install in CI to avoid side-effects\n // and instead log the error for installing needed packages\n missingDepsError(dir, deps.missing)\n }\n console.log(\n bold(\n yellow(\n `It looks like you're trying to use TypeScript but do not have the required package(s) installed.`\n )\n ) +\n '\\n' +\n 'Installing dependencies' +\n '\\n\\n' +\n bold(\n 'If you are not trying to use TypeScript, please remove the ' +\n cyan('tsconfig.json') +\n ' file from your package root (and any TypeScript files in your app and pages directories).'\n ) +\n '\\n'\n )\n await installDependencies(dir, deps.missing, true).catch((err) => {\n if (err && typeof err === 'object' && 'command' in err) {\n console.error(\n `Failed to install required TypeScript dependencies, please install them manually to continue:\\n` +\n (err as any).command +\n '\\n'\n )\n }\n throw err\n })\n deps = hasNecessaryDependencies(dir, requiredPackages)\n }\n\n // Load TypeScript after we're sure it exists:\n const tsPath = deps.resolved.get('typescript')!\n const ts = (await Promise.resolve(\n require(tsPath)\n )) as typeof import('typescript')\n\n if (semver.lt(ts.version, '4.5.2')) {\n log.warn(\n `Minimum recommended TypeScript version is v4.5.2, older versions can potentially be incompatible with Next.js. Detected: ${ts.version}`\n )\n }\n\n // Reconfigure (or create) the user's `tsconfig.json` for them:\n await writeConfigurationDefaults(\n ts,\n resolvedTsConfigPath,\n intent.firstTimeSetup,\n hasAppDir,\n distDir,\n hasPagesDir\n )\n // Write out the necessary `next-env.d.ts` file to correctly register\n // Next.js' types:\n await writeAppTypeDeclarations({\n baseDir: dir,\n distDir,\n imageImportsEnabled: !disableStaticImages,\n hasPagesDir,\n hasAppDir,\n })\n\n let result\n if (typeCheckPreflight) {\n const { runTypeCheck } =\n require('./typescript/runTypeCheck') as typeof import('./typescript/runTypeCheck')\n\n // Verify the project passes type-checking before we go to webpack phase:\n result = await runTypeCheck(\n ts,\n dir,\n distDir,\n resolvedTsConfigPath,\n cacheDir,\n hasAppDir\n )\n }\n return { result, version: ts.version }\n } catch (err) {\n // These are special errors that should not show a stack trace:\n if (err instanceof CompileError) {\n console.error(red('Failed to compile.\\n'))\n console.error(err.message)\n process.exit(1)\n }\n\n /**\n * verifyTypeScriptSetup can be either invoked directly in the main thread (during next dev / next lint)\n * or run in a worker (during next build). In the latter case, we need to print the error message, as the\n * parent process will only receive an `Jest worker encountered 1 child process exceptions, exceeding retry limit`.\n */\n\n // we are in a worker, print the error message and exit the process\n if (process.env.IS_NEXT_WORKER) {\n if (err instanceof Error) {\n console.error(err.message)\n } else {\n console.error(err)\n }\n process.exit(1)\n }\n // we are in the main thread, throw the error and it will be handled by the caller\n throw err\n }\n}\n"],"names":["verifyTypeScriptSetup","requiredPackages","file","pkg","exportsRestrict","dir","distDir","cacheDir","intentDirs","tsconfigPath","typeCheckPreflight","disableStaticImages","hasAppDir","hasPagesDir","tsConfigFileName","resolvedTsConfigPath","path","join","deps","intent","getTypeScriptIntent","version","hasNecessaryDependencies","missing","length","isCI","missingDepsError","console","log","bold","yellow","cyan","installDependencies","catch","err","error","command","tsPath","resolved","get","ts","Promise","resolve","require","semver","lt","warn","writeConfigurationDefaults","firstTimeSetup","writeAppTypeDeclarations","baseDir","imageImportsEnabled","result","runTypeCheck","CompileError","red","message","process","exit","env","IS_NEXT_WORKER","Error"],"mappings":"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","ignoreList":[0]}
@@ -146,7 +146,7 @@ async function createHotReloaderTurbopack(opts, serverFields, distDir, resetFetc
146
146
  }
147
147
  const hasRewrites = opts.fsChecker.rewrites.afterFiles.length > 0 || opts.fsChecker.rewrites.beforeFiles.length > 0 || opts.fsChecker.rewrites.fallback.length > 0;
148
148
  const hotReloaderSpan = (0, _trace.trace)('hot-reloader', undefined, {
149
- version: "15.5.1-canary.33"
149
+ version: "15.5.1-canary.34"
150
150
  });
151
151
  // Ensure the hotReloaderSpan is flushed immediately as it's the parentSpan for all processing
152
152
  // of the current `next dev` invocation.
@@ -533,7 +533,17 @@ async function createHotReloaderTurbopack(opts, serverFields, distDir, resetFetc
533
533
  }
534
534
  })
535
535
  ];
536
- const versionInfoPromise = (0, _hotreloaderwebpack.getVersionInfo)();
536
+ let versionInfoCached;
537
+ // This fetch, even though not awaited, is not kicked off eagerly because the first `fetch()` in
538
+ // Node.js adds roughly 20ms main-thread blocking to load the SSL certificate cache
539
+ // We don't want that blocking time to be in the hot path for the `ready in` logging.
540
+ // Instead, the fetch is kicked off lazily when the first `getVersionInfoCached()` is called.
541
+ const getVersionInfoCached = ()=>{
542
+ if (!versionInfoCached) {
543
+ versionInfoCached = (0, _hotreloaderwebpack.getVersionInfo)();
544
+ }
545
+ return versionInfoCached;
546
+ };
537
547
  let devtoolsFrontendUrl;
538
548
  const nodeDebugType = (0, _utils2.getNodeDebugType)();
539
549
  if (nodeDebugType) {
@@ -715,7 +725,7 @@ async function createHotReloaderTurbopack(opts, serverFields, distDir, resetFetc
715
725
  }
716
726
  ;
717
727
  (async function() {
718
- const versionInfo = await versionInfoPromise;
728
+ const versionInfo = await getVersionInfoCached();
719
729
  const devToolsConfig = await (0, _devtoolsconfigmiddleware.getDevToolsConfig)(distDir);
720
730
  const syncMessage = {
721
731
  type: _hotreloadertypes.HMR_MESSAGE_SENT_TO_BROWSER.SYNC,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/server/dev/hot-reloader-turbopack.ts"],"sourcesContent":["import type { Socket } from 'net'\nimport { mkdir, writeFile } from 'fs/promises'\nimport { join, extname, relative } from 'path'\nimport { pathToFileURL } from 'url'\n\nimport ws from 'next/dist/compiled/ws'\n\nimport type { OutputState } from '../../build/output/store'\nimport { store as consoleStore } from '../../build/output/store'\nimport type {\n CompilationError,\n HmrMessageSentToBrowser,\n NextJsHotReloaderInterface,\n ReloadPageMessage,\n SyncMessage,\n TurbopackConnectedMessage,\n} from './hot-reloader-types'\nimport { HMR_MESSAGE_SENT_TO_BROWSER } from './hot-reloader-types'\nimport type {\n Update as TurbopackUpdate,\n Endpoint,\n WrittenEndpoint,\n TurbopackResult,\n Project,\n Entrypoints,\n} from '../../build/swc/types'\nimport { createDefineEnv } from '../../build/swc'\nimport * as Log from '../../build/output/log'\nimport {\n getVersionInfo,\n matchNextPageBundleRequest,\n} from './hot-reloader-webpack'\nimport { BLOCKED_PAGES } from '../../shared/lib/constants'\nimport {\n getOverlayMiddleware,\n getSourceMapMiddleware,\n} from './middleware-turbopack'\nimport { PageNotFoundError } from '../../shared/lib/utils'\nimport { debounce } from '../utils'\nimport { deleteCache } from './require-cache'\nimport {\n clearAllModuleContexts,\n clearModuleContext,\n} from '../lib/render-server'\nimport { denormalizePagePath } from '../../shared/lib/page-path/denormalize-page-path'\nimport { trace } from '../../trace'\nimport {\n AssetMapper,\n type ChangeSubscriptions,\n type ClientState,\n handleEntrypoints,\n handlePagesErrorRoute,\n handleRouteType,\n hasEntrypointForKey,\n msToNs,\n type ReadyIds,\n type SendHmr,\n type StartBuilding,\n processTopLevelIssues,\n printNonFatalIssue,\n normalizedPageToTurbopackStructureRoute,\n} from './turbopack-utils'\nimport {\n propagateServerField,\n type ServerFields,\n type SetupOpts,\n} from '../lib/router-utils/setup-dev-bundler'\nimport { TurbopackManifestLoader } from '../../shared/lib/turbopack/manifest-loader'\nimport { findPagePathData } from './on-demand-entry-handler'\nimport type { RouteDefinition } from '../route-definitions/route-definition'\nimport {\n type EntryKey,\n getEntryKey,\n splitEntryKey,\n} from '../../shared/lib/turbopack/entry-key'\nimport {\n createBinaryHmrMessageData,\n FAST_REFRESH_RUNTIME_RELOAD,\n} from './messages'\nimport { generateEncryptionKeyBase64 } from '../app-render/encryption-utils-server'\nimport { isAppPageRouteDefinition } from '../route-definitions/app-page-route-definition'\nimport { normalizeAppPath } from '../../shared/lib/router/utils/app-paths'\nimport type { ModernSourceMapPayload } from '../lib/source-maps'\nimport { getNodeDebugType } from '../lib/utils'\nimport { isMetadataRouteFile } from '../../lib/metadata/is-metadata-route'\nimport { setBundlerFindSourceMapImplementation } from '../patch-error-inspect'\nimport { getNextErrorFeedbackMiddleware } from '../../next-devtools/server/get-next-error-feedback-middleware'\nimport {\n formatIssue,\n isPersistentCachingEnabled,\n isWellKnownError,\n processIssues,\n renderStyledStringToErrorAnsi,\n type EntryIssuesMap,\n type TopLevelIssuesMap,\n} from '../../shared/lib/turbopack/utils'\nimport { getDevOverlayFontMiddleware } from '../../next-devtools/server/font/get-dev-overlay-font-middleware'\nimport { devIndicatorServerState } from './dev-indicator-server-state'\nimport { getDisableDevIndicatorMiddleware } from '../../next-devtools/server/dev-indicator-middleware'\nimport { getRestartDevServerMiddleware } from '../../next-devtools/server/restart-dev-server-middleware'\nimport { backgroundLogCompilationEvents } from '../../shared/lib/turbopack/compilation-events'\nimport { getSupportedBrowsers } from '../../build/utils'\nimport { receiveBrowserLogsTurbopack } from './browser-logs/receive-logs'\nimport { normalizePath } from '../../lib/normalize-path'\nimport {\n devToolsConfigMiddleware,\n getDevToolsConfig,\n} from '../../next-devtools/server/devtools-config-middleware'\nimport {\n connectReactDebugChannel,\n deleteReactDebugChannel,\n setReactDebugChannel,\n} from './debug-channel'\n\nconst wsServer = new ws.Server({ noServer: true })\nconst isTestMode = !!(\n process.env.NEXT_TEST_MODE ||\n process.env.__NEXT_TEST_MODE ||\n process.env.DEBUG\n)\n\nconst sessionId = Math.floor(Number.MAX_SAFE_INTEGER * Math.random())\n\ndeclare const __next__clear_chunk_cache__: (() => void) | null | undefined\n\n/**\n * Replaces turbopack:///[project] with the specified project in the `source` field.\n */\nfunction rewriteTurbopackSources(\n projectRoot: string,\n sourceMap: ModernSourceMapPayload\n): void {\n if ('sections' in sourceMap) {\n for (const section of sourceMap.sections) {\n rewriteTurbopackSources(projectRoot, section.map)\n }\n } else {\n for (let i = 0; i < sourceMap.sources.length; i++) {\n sourceMap.sources[i] = pathToFileURL(\n join(\n projectRoot,\n sourceMap.sources[i].replace(/turbopack:\\/\\/\\/\\[project\\]/, '')\n )\n ).toString()\n }\n }\n}\n\nfunction getSourceMapFromTurbopack(\n project: Project,\n projectRoot: string,\n sourceURL: string\n): ModernSourceMapPayload | undefined {\n let sourceMapJson: string | null = null\n\n try {\n sourceMapJson = project.getSourceMapSync(sourceURL)\n } catch (err) {}\n\n if (sourceMapJson === null) {\n return undefined\n } else {\n const payload: ModernSourceMapPayload = JSON.parse(sourceMapJson)\n // The sourcemap from Turbopack is not yet written to disk so its `sources`\n // are not absolute paths yet. We need to rewrite them to be absolute paths.\n rewriteTurbopackSources(projectRoot, payload)\n return payload\n }\n}\n\nexport async function createHotReloaderTurbopack(\n opts: SetupOpts & { isSrcDir: boolean },\n serverFields: ServerFields,\n distDir: string,\n resetFetch: () => void\n): Promise<NextJsHotReloaderInterface> {\n const dev = true\n const buildId = 'development'\n const { nextConfig, dir: projectPath } = opts\n\n const { loadBindings } =\n require('../../build/swc') as typeof import('../../build/swc')\n\n let bindings = await loadBindings()\n\n // For the debugging purpose, check if createNext or equivalent next instance setup in test cases\n // works correctly. Normally `run-test` hides output so only will be visible when `--debug` flag is used.\n if (isTestMode) {\n ;(require('console') as typeof import('console')).log(\n 'Creating turbopack project',\n {\n dir: projectPath,\n testMode: isTestMode,\n }\n )\n }\n\n const hasRewrites =\n opts.fsChecker.rewrites.afterFiles.length > 0 ||\n opts.fsChecker.rewrites.beforeFiles.length > 0 ||\n opts.fsChecker.rewrites.fallback.length > 0\n\n const 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 hotReloaderSpan.stop()\n\n const encryptionKey = await generateEncryptionKeyBase64({\n isBuild: false,\n distDir,\n })\n\n // TODO: Implement\n let clientRouterFilters: any\n if (nextConfig.experimental.clientRouterFilter) {\n // TODO this need to be set correctly for persistent caching to work\n }\n\n const supportedBrowsers = getSupportedBrowsers(projectPath, dev)\n const currentNodeJsVersion = process.versions.node\n\n const rootPath =\n opts.nextConfig.turbopack?.root ||\n opts.nextConfig.outputFileTracingRoot ||\n projectPath\n const project = await bindings.turbo.createProject(\n {\n rootPath,\n projectPath: normalizePath(relative(rootPath, projectPath) || '.'),\n distDir,\n nextConfig: opts.nextConfig,\n watch: {\n enable: dev,\n pollIntervalMs: nextConfig.watchOptions?.pollIntervalMs,\n },\n dev,\n env: process.env as Record<string, string>,\n defineEnv: createDefineEnv({\n isTurbopack: true,\n clientRouterFilters,\n config: nextConfig,\n dev,\n distDir,\n projectPath,\n fetchCacheKeyPrefix: opts.nextConfig.experimental.fetchCacheKeyPrefix,\n hasRewrites,\n // TODO: Implement\n middlewareMatchers: undefined,\n rewrites: opts.fsChecker.rewrites,\n }),\n buildId,\n encryptionKey,\n previewProps: opts.fsChecker.prerenderManifest.preview,\n browserslistQuery: supportedBrowsers.join(', '),\n noMangling: false,\n currentNodeJsVersion,\n },\n {\n persistentCaching: isPersistentCachingEnabled(opts.nextConfig),\n memoryLimit: opts.nextConfig.experimental?.turbopackMemoryLimit,\n isShortSession: false,\n }\n )\n backgroundLogCompilationEvents(project, {\n eventTypes: ['StartupCacheInvalidationEvent', 'TimingEvent'],\n })\n setBundlerFindSourceMapImplementation(\n getSourceMapFromTurbopack.bind(null, project, projectPath)\n )\n opts.onDevServerCleanup?.(async () => {\n setBundlerFindSourceMapImplementation(() => undefined)\n await project.onExit()\n })\n const entrypointsSubscription = project.entrypointsSubscribe()\n\n const currentWrittenEntrypoints: Map<EntryKey, WrittenEndpoint> = new Map()\n const currentEntrypoints: Entrypoints = {\n global: {\n app: undefined,\n document: undefined,\n error: undefined,\n\n middleware: undefined,\n instrumentation: undefined,\n },\n\n page: new Map(),\n app: new Map(),\n }\n\n const currentTopLevelIssues: TopLevelIssuesMap = new Map()\n const currentEntryIssues: EntryIssuesMap = new Map()\n\n const manifestLoader = new TurbopackManifestLoader({\n buildId,\n distDir,\n encryptionKey,\n })\n\n // Dev specific\n const changeSubscriptions: ChangeSubscriptions = new Map()\n const serverPathState = new Map<string, string>()\n const readyIds: ReadyIds = new Set()\n let currentEntriesHandlingResolve: ((value?: unknown) => void) | undefined\n let currentEntriesHandling = new Promise(\n (resolve) => (currentEntriesHandlingResolve = resolve)\n )\n\n const assetMapper = new AssetMapper()\n\n function clearRequireCache(\n key: EntryKey,\n writtenEndpoint: WrittenEndpoint,\n {\n force,\n }: {\n // Always clear the cache, don't check if files have changed\n force?: boolean\n } = {}\n ): boolean {\n if (force) {\n for (const { path, contentHash } of writtenEndpoint.serverPaths) {\n // We ignore source maps\n if (path.endsWith('.map')) continue\n const localKey = `${key}:${path}`\n serverPathState.set(localKey, contentHash)\n serverPathState.set(path, contentHash)\n }\n } else {\n // Figure out if the server files have changed\n let hasChange = false\n for (const { path, contentHash } of writtenEndpoint.serverPaths) {\n // We ignore source maps\n if (path.endsWith('.map')) continue\n const localKey = `${key}:${path}`\n const localHash = serverPathState.get(localKey)\n const globalHash = serverPathState.get(path)\n if (\n (localHash && localHash !== contentHash) ||\n (globalHash && globalHash !== contentHash)\n ) {\n hasChange = true\n serverPathState.set(localKey, contentHash)\n serverPathState.set(path, contentHash)\n } else {\n if (!localHash) {\n serverPathState.set(localKey, contentHash)\n }\n if (!globalHash) {\n serverPathState.set(path, contentHash)\n }\n }\n }\n\n if (!hasChange) {\n return false\n }\n }\n\n resetFetch()\n\n // Not available in:\n // - Pages Router (no server-side HMR)\n // - Edge Runtime (uses browser runtime which already disposes chunks individually)\n if (typeof __next__clear_chunk_cache__ === 'function') {\n __next__clear_chunk_cache__()\n }\n\n const serverPaths = writtenEndpoint.serverPaths.map(({ path: p }) =>\n join(distDir, p)\n )\n\n for (const file of serverPaths) {\n clearModuleContext(file)\n deleteCache(file)\n }\n\n return true\n }\n\n const buildingIds = new Set()\n\n const startBuilding: StartBuilding = (id, requestUrl, forceRebuild) => {\n if (!forceRebuild && readyIds.has(id)) {\n return () => {}\n }\n if (buildingIds.size === 0) {\n consoleStore.setState(\n {\n loading: true,\n trigger: id,\n url: requestUrl,\n } as OutputState,\n true\n )\n }\n buildingIds.add(id)\n return function finishBuilding() {\n if (buildingIds.size === 0) {\n return\n }\n readyIds.add(id)\n buildingIds.delete(id)\n if (buildingIds.size === 0) {\n hmrEventHappened = false\n consoleStore.setState(\n {\n loading: false,\n } as OutputState,\n true\n )\n }\n }\n }\n\n let hmrEventHappened = false\n let hmrHash = 0\n\n const clients = new Set<ws>()\n const clientsByRequestId = new Map<string, ws>()\n const clientStates = new WeakMap<ws, ClientState>()\n\n function sendToClient(client: ws, message: HmrMessageSentToBrowser) {\n const data =\n typeof message.type === 'number'\n ? createBinaryHmrMessageData(message)\n : JSON.stringify(message)\n\n client.send(data)\n }\n\n function sendEnqueuedMessages() {\n for (const [, issueMap] of currentEntryIssues) {\n if (\n [...issueMap.values()].filter((i) => i.severity !== 'warning').length >\n 0\n ) {\n // During compilation errors we want to delay the HMR events until errors are fixed\n return\n }\n }\n\n for (const client of clients) {\n const state = clientStates.get(client)\n if (!state) {\n continue\n }\n\n for (const [, issueMap] of state.clientIssues) {\n if (\n [...issueMap.values()].filter((i) => i.severity !== 'warning')\n .length > 0\n ) {\n // During compilation errors we want to delay the HMR events until errors are fixed\n return\n }\n }\n\n for (const message of state.messages.values()) {\n sendToClient(client, message)\n }\n state.messages.clear()\n\n if (state.turbopackUpdates.length > 0) {\n sendToClient(client, {\n type: HMR_MESSAGE_SENT_TO_BROWSER.TURBOPACK_MESSAGE,\n data: state.turbopackUpdates,\n })\n state.turbopackUpdates.length = 0\n }\n }\n }\n const sendEnqueuedMessagesDebounce = debounce(sendEnqueuedMessages, 2)\n\n const sendHmr: SendHmr = (id: string, message: HmrMessageSentToBrowser) => {\n for (const client of clients) {\n clientStates.get(client)?.messages.set(id, message)\n }\n\n hmrEventHappened = true\n sendEnqueuedMessagesDebounce()\n }\n\n function sendTurbopackMessage(payload: TurbopackUpdate) {\n // TODO(PACK-2049): For some reason we end up emitting hundreds of issues messages on bigger apps,\n // a lot of which are duplicates.\n // They are currently not handled on the client at all, so might as well not send them for now.\n payload.diagnostics = []\n payload.issues = []\n\n for (const client of clients) {\n clientStates.get(client)?.turbopackUpdates.push(payload)\n }\n\n hmrEventHappened = true\n sendEnqueuedMessagesDebounce()\n }\n\n async function subscribeToChanges(\n key: EntryKey,\n includeIssues: boolean,\n endpoint: Endpoint,\n createMessage: (\n change: TurbopackResult,\n hash: string\n ) => Promise<HmrMessageSentToBrowser> | HmrMessageSentToBrowser | void,\n onError?: (\n error: Error\n ) => Promise<HmrMessageSentToBrowser> | HmrMessageSentToBrowser | void\n ) {\n if (changeSubscriptions.has(key)) {\n return\n }\n\n const { side } = splitEntryKey(key)\n\n const changedPromise = endpoint[`${side}Changed`](includeIssues)\n changeSubscriptions.set(key, changedPromise)\n try {\n const changed = await changedPromise\n\n for await (const change of changed) {\n processIssues(currentEntryIssues, key, change, false, true)\n // TODO: Get an actual content hash from Turbopack.\n const message = await createMessage(change, String(++hmrHash))\n if (message) {\n sendHmr(key, message)\n }\n }\n } catch (e) {\n changeSubscriptions.delete(key)\n const payload = await onError?.(e as Error)\n if (payload) {\n sendHmr(key, payload)\n }\n return\n }\n changeSubscriptions.delete(key)\n }\n\n async function unsubscribeFromChanges(key: EntryKey) {\n const subscription = await changeSubscriptions.get(key)\n if (subscription) {\n await subscription.return?.()\n changeSubscriptions.delete(key)\n }\n currentEntryIssues.delete(key)\n }\n\n async function subscribeToHmrEvents(client: ws, id: string) {\n const key = getEntryKey('assets', 'client', id)\n if (!hasEntrypointForKey(currentEntrypoints, key, assetMapper)) {\n // maybe throw an error / force the client to reload?\n return\n }\n\n const state = clientStates.get(client)\n if (!state || state.subscriptions.has(id)) {\n return\n }\n\n const subscription = project!.hmrEvents(id)\n state.subscriptions.set(id, subscription)\n\n // The subscription will always emit once, which is the initial\n // computation. This is not a change, so swallow it.\n try {\n await subscription.next()\n\n for await (const data of subscription) {\n processIssues(state.clientIssues, key, data, false, true)\n if (data.type !== 'issues') {\n sendTurbopackMessage(data)\n }\n }\n } catch (e) {\n // The client might be using an HMR session from a previous server, tell them\n // to fully reload the page to resolve the issue. We can't use\n // `hotReloader.send` since that would force every connected client to\n // reload, only this client is out of date.\n const reloadMessage: ReloadPageMessage = {\n type: HMR_MESSAGE_SENT_TO_BROWSER.RELOAD_PAGE,\n data: `error in HMR event subscription for ${id}: ${e}`,\n }\n sendToClient(client, reloadMessage)\n client.close()\n return\n }\n }\n\n function unsubscribeFromHmrEvents(client: ws, id: string) {\n const state = clientStates.get(client)\n if (!state) {\n return\n }\n\n const subscription = state.subscriptions.get(id)\n subscription?.return!()\n\n const key = getEntryKey('assets', 'client', id)\n state.clientIssues.delete(key)\n }\n\n async function handleEntrypointsSubscription() {\n for await (const entrypoints of entrypointsSubscription) {\n if (!currentEntriesHandlingResolve) {\n currentEntriesHandling = new Promise(\n // eslint-disable-next-line no-loop-func\n (resolve) => (currentEntriesHandlingResolve = resolve)\n )\n }\n\n processTopLevelIssues(currentTopLevelIssues, entrypoints)\n\n await handleEntrypoints({\n entrypoints,\n\n currentEntrypoints,\n\n currentEntryIssues,\n manifestLoader,\n devRewrites: opts.fsChecker.rewrites,\n productionRewrites: undefined,\n logErrors: true,\n\n dev: {\n assetMapper,\n changeSubscriptions,\n clients,\n clientStates,\n serverFields,\n\n hooks: {\n handleWrittenEndpoint: (id, result, forceDeleteCache) => {\n currentWrittenEntrypoints.set(id, result)\n return clearRequireCache(id, result, { force: forceDeleteCache })\n },\n propagateServerField: propagateServerField.bind(null, opts),\n sendHmr,\n startBuilding,\n subscribeToChanges,\n unsubscribeFromChanges,\n unsubscribeFromHmrEvents,\n },\n },\n })\n\n currentEntriesHandlingResolve!()\n currentEntriesHandlingResolve = undefined\n }\n }\n\n await mkdir(join(distDir, 'server'), { recursive: true })\n await mkdir(join(distDir, 'static', buildId), { recursive: true })\n await writeFile(\n join(distDir, 'package.json'),\n JSON.stringify(\n {\n type: 'commonjs',\n },\n null,\n 2\n )\n )\n\n const middlewares = [\n getOverlayMiddleware({\n project,\n projectPath,\n isSrcDir: opts.isSrcDir,\n }),\n getSourceMapMiddleware(project),\n getNextErrorFeedbackMiddleware(opts.telemetry),\n getDevOverlayFontMiddleware(),\n getDisableDevIndicatorMiddleware(),\n getRestartDevServerMiddleware({\n telemetry: opts.telemetry,\n turbopackProject: project,\n }),\n devToolsConfigMiddleware({\n distDir,\n sendUpdateSignal: (data) => {\n hotReloader.send({\n type: HMR_MESSAGE_SENT_TO_BROWSER.DEVTOOLS_CONFIG,\n data,\n })\n },\n }),\n ]\n\n const versionInfoPromise = getVersionInfo()\n\n let devtoolsFrontendUrl: string | undefined\n const nodeDebugType = getNodeDebugType()\n if (nodeDebugType) {\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 debugInfo = debugInfoList[0]\n } catch {}\n if (debugInfo) {\n devtoolsFrontendUrl = debugInfo.devtoolsFrontendUrl\n }\n }\n\n const hotReloader: NextJsHotReloaderInterface = {\n turbopackProject: project,\n activeWebpackConfigs: undefined,\n serverStats: null,\n edgeServerStats: null,\n async run(req, res, _parsedUrl) {\n // intercept page chunks request and ensure them with turbopack\n if (req.url?.startsWith('/_next/static/chunks/pages/')) {\n const params = matchNextPageBundleRequest(req.url)\n\n if (params) {\n const decodedPagePath = `/${params.path\n .map((param: string) => decodeURIComponent(param))\n .join('/')}`\n\n const denormalizedPagePath = denormalizePagePath(decodedPagePath)\n\n await hotReloader\n .ensurePage({\n page: denormalizedPagePath,\n clientOnly: false,\n definition: undefined,\n url: req.url,\n })\n .catch(console.error)\n }\n }\n\n for (const middleware of 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 // Request was not finished.\n return { finished: undefined }\n },\n\n // TODO: Figure out if socket type can match the NextJsHotReloaderInterface\n onHMR(req, socket: Socket, head, onUpgrade) {\n wsServer.handleUpgrade(req, socket, head, (client) => {\n onUpgrade(client)\n const clientIssues: EntryIssuesMap = new Map()\n const subscriptions: Map<string, AsyncIterator<any>> = new Map()\n\n clients.add(client)\n\n const requestId = req.url\n ? new URL(req.url, 'http://n').searchParams.get('id')\n : null\n\n if (requestId) {\n clientsByRequestId.set(requestId, client)\n }\n\n clientStates.set(client, {\n clientIssues,\n messages: new Map(),\n turbopackUpdates: [],\n subscriptions,\n })\n\n client.on('close', () => {\n // Remove active subscriptions\n for (const subscription of subscriptions.values()) {\n subscription.return?.()\n }\n clientStates.delete(client)\n clients.delete(client)\n\n if (requestId) {\n clientsByRequestId.delete(requestId)\n deleteReactDebugChannel(requestId)\n }\n })\n\n client.addEventListener('message', async ({ data }) => {\n const parsedData = JSON.parse(\n typeof data !== 'string' ? data.toString() : data\n )\n\n // Next.js messages\n switch (parsedData.event) {\n case 'span-end': {\n hotReloaderSpan.manualTraceChild(\n parsedData.spanName,\n msToNs(parsedData.startTime),\n msToNs(parsedData.endTime),\n parsedData.attributes\n )\n break\n }\n case 'client-hmr-latency': // { id, startTime, endTime, page, updatedModules, isPageHidden }\n hotReloaderSpan.manualTraceChild(\n parsedData.event,\n msToNs(parsedData.startTime),\n msToNs(parsedData.endTime),\n {\n updatedModules: parsedData.updatedModules,\n page: parsedData.page,\n isPageHidden: parsedData.isPageHidden,\n }\n )\n break\n\n case 'client-error': // { errorCount, clientId }\n case 'client-warning': // { warningCount, clientId }\n case 'client-success': // { clientId }\n case 'server-component-reload-page': // { clientId }\n case 'client-reload-page': // { clientId }\n case 'client-removed-page': // { page }\n case 'client-full-reload': // { stackTrace, hadRuntimeError }\n const { hadRuntimeError, dependencyChain } = parsedData\n if (hadRuntimeError) {\n Log.warn(FAST_REFRESH_RUNTIME_RELOAD)\n }\n if (\n Array.isArray(dependencyChain) &&\n typeof dependencyChain[0] === 'string'\n ) {\n const cleanedModulePath = dependencyChain[0]\n .replace(/^\\[project\\]/, '.')\n .replace(/ \\[.*\\] \\(.*\\)$/, '')\n Log.warn(\n `Fast Refresh had to perform a full reload when ${cleanedModulePath} changed. Read more: https://nextjs.org/docs/messages/fast-refresh-reload`\n )\n }\n break\n case 'client-added-page':\n // TODO\n break\n case 'browser-logs': {\n if (nextConfig.experimental.browserDebugInfoInTerminal) {\n await receiveBrowserLogsTurbopack({\n entries: parsedData.entries,\n router: parsedData.router,\n sourceType: parsedData.sourceType,\n project,\n projectPath,\n distDir,\n config: nextConfig.experimental.browserDebugInfoInTerminal,\n })\n }\n break\n }\n\n default:\n // Might be a Turbopack message...\n if (!parsedData.type) {\n throw new Error(`unrecognized HMR message \"${data}\"`)\n }\n }\n\n // Turbopack messages\n switch (parsedData.type) {\n case 'turbopack-subscribe':\n subscribeToHmrEvents(client, parsedData.path)\n break\n\n case 'turbopack-unsubscribe':\n unsubscribeFromHmrEvents(client, parsedData.path)\n break\n\n default:\n if (!parsedData.event) {\n throw new Error(`unrecognized Turbopack HMR message \"${data}\"`)\n }\n }\n })\n\n const turbopackConnectedMessage: TurbopackConnectedMessage = {\n type: HMR_MESSAGE_SENT_TO_BROWSER.TURBOPACK_CONNECTED,\n data: { sessionId },\n }\n sendToClient(client, turbopackConnectedMessage)\n\n const errors: CompilationError[] = []\n\n for (const entryIssues of currentEntryIssues.values()) {\n for (const issue of entryIssues.values()) {\n if (issue.severity !== 'warning') {\n errors.push({\n message: formatIssue(issue),\n })\n } else {\n printNonFatalIssue(issue)\n }\n }\n }\n\n if (devIndicatorServerState.disabledUntil < Date.now()) {\n devIndicatorServerState.disabledUntil = 0\n }\n\n ;(async function () {\n const versionInfo = await versionInfoPromise\n const devToolsConfig = await getDevToolsConfig(distDir)\n\n const syncMessage: SyncMessage = {\n type: HMR_MESSAGE_SENT_TO_BROWSER.SYNC,\n errors,\n warnings: [],\n hash: '',\n versionInfo,\n debug: {\n devtoolsFrontendUrl,\n },\n devIndicator: devIndicatorServerState,\n devToolsConfig,\n }\n\n sendToClient(client, syncMessage)\n\n if (requestId) {\n connectReactDebugChannel(requestId, sendToClient.bind(null, client))\n }\n })()\n })\n },\n\n send(action) {\n const payload = JSON.stringify(action)\n\n for (const client of clients) {\n client.send(payload)\n }\n },\n\n setReactDebugChannel(debugChannel, htmlRequestId, requestId) {\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\n // immediately. Otherwise, we'll do that when the client connects.\n const client = clientsByRequestId.get(htmlRequestId)\n\n if (client) {\n connectReactDebugChannel(requestId, sendToClient.bind(null, client))\n }\n },\n\n setHmrServerError(_error) {\n // Not implemented yet.\n },\n clearHmrServerError() {\n // Not implemented yet.\n },\n async start() {},\n async getCompilationErrors(page) {\n const appEntryKey = getEntryKey('app', 'server', page)\n const pagesEntryKey = getEntryKey('pages', 'server', page)\n\n const topLevelIssues = currentTopLevelIssues.values()\n\n const thisEntryIssues =\n currentEntryIssues.get(appEntryKey) ??\n currentEntryIssues.get(pagesEntryKey)\n\n if (thisEntryIssues !== undefined && thisEntryIssues.size > 0) {\n // If there is an error related to the requesting page we display it instead of the first error\n return [...topLevelIssues, ...thisEntryIssues.values()]\n .map((issue) => {\n const formattedIssue = formatIssue(issue)\n if (issue.severity === 'warning') {\n printNonFatalIssue(issue)\n return null\n } else if (isWellKnownError(issue)) {\n Log.error(formattedIssue)\n }\n\n return new Error(formattedIssue)\n })\n .filter((error) => error !== null)\n }\n\n // Otherwise, return all errors across pages\n const errors = []\n for (const issue of topLevelIssues) {\n if (issue.severity !== 'warning') {\n errors.push(new Error(formatIssue(issue)))\n }\n }\n for (const entryIssues of currentEntryIssues.values()) {\n for (const issue of entryIssues.values()) {\n if (issue.severity !== 'warning') {\n const message = formatIssue(issue)\n errors.push(new Error(message))\n } else {\n printNonFatalIssue(issue)\n }\n }\n }\n return errors\n },\n async invalidate({\n // .env files or tsconfig/jsconfig change\n reloadAfterInvalidation,\n }) {\n if (reloadAfterInvalidation) {\n for (const [key, entrypoint] of currentWrittenEntrypoints) {\n clearRequireCache(key, entrypoint, { force: true })\n }\n\n await clearAllModuleContexts()\n this.send({\n type: HMR_MESSAGE_SENT_TO_BROWSER.SERVER_COMPONENT_CHANGES,\n hash: String(++hmrHash),\n })\n }\n },\n async buildFallbackError() {\n // Not implemented yet.\n },\n async ensurePage({\n page: inputPage,\n // Unused parameters\n // clientOnly,\n appPaths,\n definition,\n isApp,\n url: requestUrl,\n }) {\n // When there is no route definition this is an internal file not a route the user added.\n // Middleware and instrumentation are handled in turbpack-utils.ts handleEntrypoints instead.\n if (!definition) {\n if (inputPage === '/middleware') return\n if (inputPage === '/src/middleware') return\n if (inputPage === '/instrumentation') return\n if (inputPage === '/src/instrumentation') return\n }\n\n return hotReloaderSpan\n .traceChild('ensure-page', {\n inputPage,\n })\n .traceAsyncFn(async () => {\n if (BLOCKED_PAGES.includes(inputPage) && inputPage !== '/_error') {\n return\n }\n\n await currentEntriesHandling\n\n // TODO We shouldn't look into the filesystem again. This should use the information from entrypoints\n let routeDef: Pick<\n RouteDefinition,\n 'filename' | 'bundlePath' | 'page'\n > =\n definition ??\n (await findPagePathData(\n projectPath,\n inputPage,\n nextConfig.pageExtensions,\n opts.pagesDir,\n opts.appDir,\n !!nextConfig.experimental.globalNotFound\n ))\n\n // If the route is actually an app page route, then we should have access\n // to the app route definition, and therefore, the appPaths from it.\n if (!appPaths && definition && isAppPageRouteDefinition(definition)) {\n appPaths = definition.appPaths\n }\n\n let page = routeDef.page\n if (appPaths) {\n const normalizedPage = normalizeAppPath(page)\n\n // filter out paths that are not exact matches (e.g. catchall)\n const matchingAppPaths = appPaths.filter(\n (path) => normalizeAppPath(path) === normalizedPage\n )\n\n // the last item in the array is the root page, if there are parallel routes\n page = matchingAppPaths[matchingAppPaths.length - 1]\n }\n\n const pathname = definition?.pathname ?? inputPage\n\n if (page === '/_error') {\n let finishBuilding = startBuilding(pathname, requestUrl, false)\n try {\n await handlePagesErrorRoute({\n currentEntryIssues,\n entrypoints: currentEntrypoints,\n manifestLoader,\n devRewrites: opts.fsChecker.rewrites,\n productionRewrites: undefined,\n logErrors: true,\n hooks: {\n subscribeToChanges,\n handleWrittenEndpoint: (id, result, forceDeleteCache) => {\n currentWrittenEntrypoints.set(id, result)\n assetMapper.setPathsForKey(id, result.clientPaths)\n return clearRequireCache(id, result, {\n force: forceDeleteCache,\n })\n },\n },\n })\n } finally {\n finishBuilding()\n }\n return\n }\n\n const isInsideAppDir = routeDef.bundlePath.startsWith('app/')\n const isEntryMetadataRouteFile = isMetadataRouteFile(\n routeDef.filename.replace(opts.appDir || '', ''),\n nextConfig.pageExtensions,\n true\n )\n const normalizedAppPage = isEntryMetadataRouteFile\n ? normalizedPageToTurbopackStructureRoute(\n page,\n extname(routeDef.filename)\n )\n : page\n\n const route = isInsideAppDir\n ? currentEntrypoints.app.get(normalizedAppPage)\n : currentEntrypoints.page.get(page)\n\n if (!route) {\n // TODO: why is this entry missing in turbopack?\n if (page === '/middleware') return\n if (page === '/src/middleware') return\n if (page === '/instrumentation') return\n if (page === '/src/instrumentation') return\n\n throw new PageNotFoundError(`route not found ${page}`)\n }\n\n // We don't throw on ensureOpts.isApp === true for page-api\n // since this can happen when app pages make\n // api requests to page API routes.\n if (isApp && route.type === 'page') {\n throw new Error(`mis-matched route type: isApp && page for ${page}`)\n }\n\n const finishBuilding = startBuilding(pathname, requestUrl, false)\n try {\n await handleRouteType({\n dev,\n page,\n pathname,\n route,\n currentEntryIssues,\n entrypoints: currentEntrypoints,\n manifestLoader,\n readyIds,\n devRewrites: opts.fsChecker.rewrites,\n productionRewrites: undefined,\n logErrors: true,\n\n hooks: {\n subscribeToChanges,\n handleWrittenEndpoint: (id, result, forceDeleteCache) => {\n currentWrittenEntrypoints.set(id, result)\n assetMapper.setPathsForKey(id, result.clientPaths)\n return clearRequireCache(id, result, {\n force: forceDeleteCache,\n })\n },\n },\n })\n } finally {\n finishBuilding()\n }\n })\n },\n close() {\n for (const wsClient of clients) {\n // it's okay to not cleanly close these websocket connections, this is dev\n wsClient.terminate()\n }\n clients.clear()\n clientsByRequestId.clear()\n },\n }\n\n handleEntrypointsSubscription().catch((err) => {\n console.error(err)\n process.exit(1)\n })\n\n // Write empty manifests\n await currentEntriesHandling\n await manifestLoader.writeManifests({\n devRewrites: opts.fsChecker.rewrites,\n productionRewrites: undefined,\n entrypoints: currentEntrypoints,\n })\n\n async function handleProjectUpdates() {\n for await (const updateMessage of project.updateInfoSubscribe(30)) {\n switch (updateMessage.updateType) {\n case 'start': {\n hotReloader.send({ type: HMR_MESSAGE_SENT_TO_BROWSER.BUILDING })\n break\n }\n case 'end': {\n sendEnqueuedMessages()\n\n function addErrors(\n errorsMap: Map<string, CompilationError>,\n issues: EntryIssuesMap\n ) {\n for (const issueMap of issues.values()) {\n for (const [key, issue] of issueMap) {\n if (issue.severity === 'warning') continue\n if (errorsMap.has(key)) continue\n\n const message = formatIssue(issue)\n\n errorsMap.set(key, {\n message,\n details: issue.detail\n ? renderStyledStringToErrorAnsi(issue.detail)\n : undefined,\n })\n }\n }\n }\n\n const errors = new Map<string, CompilationError>()\n addErrors(errors, currentEntryIssues)\n\n for (const client of clients) {\n const state = clientStates.get(client)\n if (!state) {\n continue\n }\n\n const clientErrors = new Map(errors)\n addErrors(clientErrors, state.clientIssues)\n\n sendToClient(client, {\n type: HMR_MESSAGE_SENT_TO_BROWSER.BUILT,\n hash: String(++hmrHash),\n errors: [...clientErrors.values()],\n warnings: [],\n })\n }\n\n if (hmrEventHappened) {\n const time = updateMessage.value.duration\n const timeMessage =\n time > 2000 ? `${Math.round(time / 100) / 10}s` : `${time}ms`\n Log.event(`Compiled in ${timeMessage}`)\n hmrEventHappened = false\n }\n break\n }\n default:\n }\n }\n }\n\n handleProjectUpdates().catch((err) => {\n console.error(err)\n process.exit(1)\n })\n\n return hotReloader\n}\n"],"names":["createHotReloaderTurbopack","wsServer","ws","Server","noServer","isTestMode","process","env","NEXT_TEST_MODE","__NEXT_TEST_MODE","DEBUG","sessionId","Math","floor","Number","MAX_SAFE_INTEGER","random","rewriteTurbopackSources","projectRoot","sourceMap","section","sections","map","i","sources","length","pathToFileURL","join","replace","toString","getSourceMapFromTurbopack","project","sourceURL","sourceMapJson","getSourceMapSync","err","undefined","payload","JSON","parse","opts","serverFields","distDir","resetFetch","nextConfig","dev","buildId","dir","projectPath","loadBindings","require","bindings","log","testMode","hasRewrites","fsChecker","rewrites","afterFiles","beforeFiles","fallback","hotReloaderSpan","trace","version","__NEXT_VERSION","stop","encryptionKey","generateEncryptionKeyBase64","isBuild","clientRouterFilters","experimental","clientRouterFilter","supportedBrowsers","getSupportedBrowsers","currentNodeJsVersion","versions","node","rootPath","turbopack","root","outputFileTracingRoot","turbo","createProject","normalizePath","relative","watch","enable","pollIntervalMs","watchOptions","defineEnv","createDefineEnv","isTurbopack","config","fetchCacheKeyPrefix","middlewareMatchers","previewProps","prerenderManifest","preview","browserslistQuery","noMangling","persistentCaching","isPersistentCachingEnabled","memoryLimit","turbopackMemoryLimit","isShortSession","backgroundLogCompilationEvents","eventTypes","setBundlerFindSourceMapImplementation","bind","onDevServerCleanup","onExit","entrypointsSubscription","entrypointsSubscribe","currentWrittenEntrypoints","Map","currentEntrypoints","global","app","document","error","middleware","instrumentation","page","currentTopLevelIssues","currentEntryIssues","manifestLoader","TurbopackManifestLoader","changeSubscriptions","serverPathState","readyIds","Set","currentEntriesHandlingResolve","currentEntriesHandling","Promise","resolve","assetMapper","AssetMapper","clearRequireCache","key","writtenEndpoint","force","path","contentHash","serverPaths","endsWith","localKey","set","hasChange","localHash","get","globalHash","__next__clear_chunk_cache__","p","file","clearModuleContext","deleteCache","buildingIds","startBuilding","id","requestUrl","forceRebuild","has","size","consoleStore","setState","loading","trigger","url","add","finishBuilding","delete","hmrEventHappened","hmrHash","clients","clientsByRequestId","clientStates","WeakMap","sendToClient","client","message","data","type","createBinaryHmrMessageData","stringify","send","sendEnqueuedMessages","issueMap","values","filter","severity","state","clientIssues","messages","clear","turbopackUpdates","HMR_MESSAGE_SENT_TO_BROWSER","TURBOPACK_MESSAGE","sendEnqueuedMessagesDebounce","debounce","sendHmr","sendTurbopackMessage","diagnostics","issues","push","subscribeToChanges","includeIssues","endpoint","createMessage","onError","side","splitEntryKey","changedPromise","changed","change","processIssues","String","e","unsubscribeFromChanges","subscription","return","subscribeToHmrEvents","getEntryKey","hasEntrypointForKey","subscriptions","hmrEvents","next","reloadMessage","RELOAD_PAGE","close","unsubscribeFromHmrEvents","handleEntrypointsSubscription","entrypoints","processTopLevelIssues","handleEntrypoints","devRewrites","productionRewrites","logErrors","hooks","handleWrittenEndpoint","result","forceDeleteCache","propagateServerField","mkdir","recursive","writeFile","middlewares","getOverlayMiddleware","isSrcDir","getSourceMapMiddleware","getNextErrorFeedbackMiddleware","telemetry","getDevOverlayFontMiddleware","getDisableDevIndicatorMiddleware","getRestartDevServerMiddleware","turbopackProject","devToolsConfigMiddleware","sendUpdateSignal","hotReloader","DEVTOOLS_CONFIG","versionInfoPromise","getVersionInfo","devtoolsFrontendUrl","nodeDebugType","getNodeDebugType","debugPort","debugInfo","debugInfoList","fetch","then","res","json","activeWebpackConfigs","serverStats","edgeServerStats","run","req","_parsedUrl","startsWith","params","matchNextPageBundleRequest","decodedPagePath","param","decodeURIComponent","denormalizedPagePath","denormalizePagePath","ensurePage","clientOnly","definition","catch","console","calledNext","finished","onHMR","socket","head","onUpgrade","handleUpgrade","requestId","URL","searchParams","on","deleteReactDebugChannel","addEventListener","parsedData","event","manualTraceChild","spanName","msToNs","startTime","endTime","attributes","updatedModules","isPageHidden","hadRuntimeError","dependencyChain","Log","warn","FAST_REFRESH_RUNTIME_RELOAD","Array","isArray","cleanedModulePath","browserDebugInfoInTerminal","receiveBrowserLogsTurbopack","entries","router","sourceType","Error","turbopackConnectedMessage","TURBOPACK_CONNECTED","errors","entryIssues","issue","formatIssue","printNonFatalIssue","devIndicatorServerState","disabledUntil","Date","now","versionInfo","devToolsConfig","getDevToolsConfig","syncMessage","SYNC","warnings","hash","debug","devIndicator","connectReactDebugChannel","action","setReactDebugChannel","debugChannel","htmlRequestId","setHmrServerError","_error","clearHmrServerError","start","getCompilationErrors","appEntryKey","pagesEntryKey","topLevelIssues","thisEntryIssues","formattedIssue","isWellKnownError","invalidate","reloadAfterInvalidation","entrypoint","clearAllModuleContexts","SERVER_COMPONENT_CHANGES","buildFallbackError","inputPage","appPaths","isApp","traceChild","traceAsyncFn","BLOCKED_PAGES","includes","routeDef","findPagePathData","pageExtensions","pagesDir","appDir","globalNotFound","isAppPageRouteDefinition","normalizedPage","normalizeAppPath","matchingAppPaths","pathname","handlePagesErrorRoute","setPathsForKey","clientPaths","isInsideAppDir","bundlePath","isEntryMetadataRouteFile","isMetadataRouteFile","filename","normalizedAppPage","normalizedPageToTurbopackStructureRoute","extname","route","PageNotFoundError","handleRouteType","wsClient","terminate","exit","writeManifests","handleProjectUpdates","updateMessage","updateInfoSubscribe","updateType","BUILDING","addErrors","errorsMap","details","detail","renderStyledStringToErrorAnsi","clientErrors","BUILT","time","value","duration","timeMessage","round"],"mappings":"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","ignoreList":[0]}
1
+ {"version":3,"sources":["../../../src/server/dev/hot-reloader-turbopack.ts"],"sourcesContent":["import type { Socket } from 'net'\nimport { mkdir, writeFile } from 'fs/promises'\nimport { join, extname, relative } from 'path'\nimport { pathToFileURL } from 'url'\n\nimport ws from 'next/dist/compiled/ws'\n\nimport type { OutputState } from '../../build/output/store'\nimport { store as consoleStore } from '../../build/output/store'\nimport type {\n CompilationError,\n HmrMessageSentToBrowser,\n NextJsHotReloaderInterface,\n ReloadPageMessage,\n SyncMessage,\n TurbopackConnectedMessage,\n} from './hot-reloader-types'\nimport { HMR_MESSAGE_SENT_TO_BROWSER } from './hot-reloader-types'\nimport type {\n Update as TurbopackUpdate,\n Endpoint,\n WrittenEndpoint,\n TurbopackResult,\n Project,\n Entrypoints,\n} from '../../build/swc/types'\nimport { createDefineEnv } from '../../build/swc'\nimport * as Log from '../../build/output/log'\nimport {\n getVersionInfo,\n matchNextPageBundleRequest,\n} from './hot-reloader-webpack'\nimport { BLOCKED_PAGES } from '../../shared/lib/constants'\nimport {\n getOverlayMiddleware,\n getSourceMapMiddleware,\n} from './middleware-turbopack'\nimport { PageNotFoundError } from '../../shared/lib/utils'\nimport { debounce } from '../utils'\nimport { deleteCache } from './require-cache'\nimport {\n clearAllModuleContexts,\n clearModuleContext,\n} from '../lib/render-server'\nimport { denormalizePagePath } from '../../shared/lib/page-path/denormalize-page-path'\nimport { trace } from '../../trace'\nimport {\n AssetMapper,\n type ChangeSubscriptions,\n type ClientState,\n handleEntrypoints,\n handlePagesErrorRoute,\n handleRouteType,\n hasEntrypointForKey,\n msToNs,\n type ReadyIds,\n type SendHmr,\n type StartBuilding,\n processTopLevelIssues,\n printNonFatalIssue,\n normalizedPageToTurbopackStructureRoute,\n} from './turbopack-utils'\nimport {\n propagateServerField,\n type ServerFields,\n type SetupOpts,\n} from '../lib/router-utils/setup-dev-bundler'\nimport { TurbopackManifestLoader } from '../../shared/lib/turbopack/manifest-loader'\nimport { findPagePathData } from './on-demand-entry-handler'\nimport type { RouteDefinition } from '../route-definitions/route-definition'\nimport {\n type EntryKey,\n getEntryKey,\n splitEntryKey,\n} from '../../shared/lib/turbopack/entry-key'\nimport {\n createBinaryHmrMessageData,\n FAST_REFRESH_RUNTIME_RELOAD,\n} from './messages'\nimport { generateEncryptionKeyBase64 } from '../app-render/encryption-utils-server'\nimport { isAppPageRouteDefinition } from '../route-definitions/app-page-route-definition'\nimport { normalizeAppPath } from '../../shared/lib/router/utils/app-paths'\nimport type { ModernSourceMapPayload } from '../lib/source-maps'\nimport { getNodeDebugType } from '../lib/utils'\nimport { isMetadataRouteFile } from '../../lib/metadata/is-metadata-route'\nimport { setBundlerFindSourceMapImplementation } from '../patch-error-inspect'\nimport { getNextErrorFeedbackMiddleware } from '../../next-devtools/server/get-next-error-feedback-middleware'\nimport {\n formatIssue,\n isPersistentCachingEnabled,\n isWellKnownError,\n processIssues,\n renderStyledStringToErrorAnsi,\n type EntryIssuesMap,\n type TopLevelIssuesMap,\n} from '../../shared/lib/turbopack/utils'\nimport { getDevOverlayFontMiddleware } from '../../next-devtools/server/font/get-dev-overlay-font-middleware'\nimport { devIndicatorServerState } from './dev-indicator-server-state'\nimport { getDisableDevIndicatorMiddleware } from '../../next-devtools/server/dev-indicator-middleware'\nimport { getRestartDevServerMiddleware } from '../../next-devtools/server/restart-dev-server-middleware'\nimport { backgroundLogCompilationEvents } from '../../shared/lib/turbopack/compilation-events'\nimport { getSupportedBrowsers } from '../../build/utils'\nimport { receiveBrowserLogsTurbopack } from './browser-logs/receive-logs'\nimport { normalizePath } from '../../lib/normalize-path'\nimport {\n devToolsConfigMiddleware,\n getDevToolsConfig,\n} from '../../next-devtools/server/devtools-config-middleware'\nimport {\n connectReactDebugChannel,\n deleteReactDebugChannel,\n setReactDebugChannel,\n} from './debug-channel'\n\nconst wsServer = new ws.Server({ noServer: true })\nconst isTestMode = !!(\n process.env.NEXT_TEST_MODE ||\n process.env.__NEXT_TEST_MODE ||\n process.env.DEBUG\n)\n\nconst sessionId = Math.floor(Number.MAX_SAFE_INTEGER * Math.random())\n\ndeclare const __next__clear_chunk_cache__: (() => void) | null | undefined\n\n/**\n * Replaces turbopack:///[project] with the specified project in the `source` field.\n */\nfunction rewriteTurbopackSources(\n projectRoot: string,\n sourceMap: ModernSourceMapPayload\n): void {\n if ('sections' in sourceMap) {\n for (const section of sourceMap.sections) {\n rewriteTurbopackSources(projectRoot, section.map)\n }\n } else {\n for (let i = 0; i < sourceMap.sources.length; i++) {\n sourceMap.sources[i] = pathToFileURL(\n join(\n projectRoot,\n sourceMap.sources[i].replace(/turbopack:\\/\\/\\/\\[project\\]/, '')\n )\n ).toString()\n }\n }\n}\n\nfunction getSourceMapFromTurbopack(\n project: Project,\n projectRoot: string,\n sourceURL: string\n): ModernSourceMapPayload | undefined {\n let sourceMapJson: string | null = null\n\n try {\n sourceMapJson = project.getSourceMapSync(sourceURL)\n } catch (err) {}\n\n if (sourceMapJson === null) {\n return undefined\n } else {\n const payload: ModernSourceMapPayload = JSON.parse(sourceMapJson)\n // The sourcemap from Turbopack is not yet written to disk so its `sources`\n // are not absolute paths yet. We need to rewrite them to be absolute paths.\n rewriteTurbopackSources(projectRoot, payload)\n return payload\n }\n}\n\nexport async function createHotReloaderTurbopack(\n opts: SetupOpts & { isSrcDir: boolean },\n serverFields: ServerFields,\n distDir: string,\n resetFetch: () => void\n): Promise<NextJsHotReloaderInterface> {\n const dev = true\n const buildId = 'development'\n const { nextConfig, dir: projectPath } = opts\n\n const { loadBindings } =\n require('../../build/swc') as typeof import('../../build/swc')\n\n let bindings = await loadBindings()\n\n // For the debugging purpose, check if createNext or equivalent next instance setup in test cases\n // works correctly. Normally `run-test` hides output so only will be visible when `--debug` flag is used.\n if (isTestMode) {\n ;(require('console') as typeof import('console')).log(\n 'Creating turbopack project',\n {\n dir: projectPath,\n testMode: isTestMode,\n }\n )\n }\n\n const hasRewrites =\n opts.fsChecker.rewrites.afterFiles.length > 0 ||\n opts.fsChecker.rewrites.beforeFiles.length > 0 ||\n opts.fsChecker.rewrites.fallback.length > 0\n\n const 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 hotReloaderSpan.stop()\n\n const encryptionKey = await generateEncryptionKeyBase64({\n isBuild: false,\n distDir,\n })\n\n // TODO: Implement\n let clientRouterFilters: any\n if (nextConfig.experimental.clientRouterFilter) {\n // TODO this need to be set correctly for persistent caching to work\n }\n\n const supportedBrowsers = getSupportedBrowsers(projectPath, dev)\n const currentNodeJsVersion = process.versions.node\n\n const rootPath =\n opts.nextConfig.turbopack?.root ||\n opts.nextConfig.outputFileTracingRoot ||\n projectPath\n const project = await bindings.turbo.createProject(\n {\n rootPath,\n projectPath: normalizePath(relative(rootPath, projectPath) || '.'),\n distDir,\n nextConfig: opts.nextConfig,\n watch: {\n enable: dev,\n pollIntervalMs: nextConfig.watchOptions?.pollIntervalMs,\n },\n dev,\n env: process.env as Record<string, string>,\n defineEnv: createDefineEnv({\n isTurbopack: true,\n clientRouterFilters,\n config: nextConfig,\n dev,\n distDir,\n projectPath,\n fetchCacheKeyPrefix: opts.nextConfig.experimental.fetchCacheKeyPrefix,\n hasRewrites,\n // TODO: Implement\n middlewareMatchers: undefined,\n rewrites: opts.fsChecker.rewrites,\n }),\n buildId,\n encryptionKey,\n previewProps: opts.fsChecker.prerenderManifest.preview,\n browserslistQuery: supportedBrowsers.join(', '),\n noMangling: false,\n currentNodeJsVersion,\n },\n {\n persistentCaching: isPersistentCachingEnabled(opts.nextConfig),\n memoryLimit: opts.nextConfig.experimental?.turbopackMemoryLimit,\n isShortSession: false,\n }\n )\n backgroundLogCompilationEvents(project, {\n eventTypes: ['StartupCacheInvalidationEvent', 'TimingEvent'],\n })\n setBundlerFindSourceMapImplementation(\n getSourceMapFromTurbopack.bind(null, project, projectPath)\n )\n opts.onDevServerCleanup?.(async () => {\n setBundlerFindSourceMapImplementation(() => undefined)\n await project.onExit()\n })\n const entrypointsSubscription = project.entrypointsSubscribe()\n\n const currentWrittenEntrypoints: Map<EntryKey, WrittenEndpoint> = new Map()\n const currentEntrypoints: Entrypoints = {\n global: {\n app: undefined,\n document: undefined,\n error: undefined,\n\n middleware: undefined,\n instrumentation: undefined,\n },\n\n page: new Map(),\n app: new Map(),\n }\n\n const currentTopLevelIssues: TopLevelIssuesMap = new Map()\n const currentEntryIssues: EntryIssuesMap = new Map()\n\n const manifestLoader = new TurbopackManifestLoader({\n buildId,\n distDir,\n encryptionKey,\n })\n\n // Dev specific\n const changeSubscriptions: ChangeSubscriptions = new Map()\n const serverPathState = new Map<string, string>()\n const readyIds: ReadyIds = new Set()\n let currentEntriesHandlingResolve: ((value?: unknown) => void) | undefined\n let currentEntriesHandling = new Promise(\n (resolve) => (currentEntriesHandlingResolve = resolve)\n )\n\n const assetMapper = new AssetMapper()\n\n function clearRequireCache(\n key: EntryKey,\n writtenEndpoint: WrittenEndpoint,\n {\n force,\n }: {\n // Always clear the cache, don't check if files have changed\n force?: boolean\n } = {}\n ): boolean {\n if (force) {\n for (const { path, contentHash } of writtenEndpoint.serverPaths) {\n // We ignore source maps\n if (path.endsWith('.map')) continue\n const localKey = `${key}:${path}`\n serverPathState.set(localKey, contentHash)\n serverPathState.set(path, contentHash)\n }\n } else {\n // Figure out if the server files have changed\n let hasChange = false\n for (const { path, contentHash } of writtenEndpoint.serverPaths) {\n // We ignore source maps\n if (path.endsWith('.map')) continue\n const localKey = `${key}:${path}`\n const localHash = serverPathState.get(localKey)\n const globalHash = serverPathState.get(path)\n if (\n (localHash && localHash !== contentHash) ||\n (globalHash && globalHash !== contentHash)\n ) {\n hasChange = true\n serverPathState.set(localKey, contentHash)\n serverPathState.set(path, contentHash)\n } else {\n if (!localHash) {\n serverPathState.set(localKey, contentHash)\n }\n if (!globalHash) {\n serverPathState.set(path, contentHash)\n }\n }\n }\n\n if (!hasChange) {\n return false\n }\n }\n\n resetFetch()\n\n // Not available in:\n // - Pages Router (no server-side HMR)\n // - Edge Runtime (uses browser runtime which already disposes chunks individually)\n if (typeof __next__clear_chunk_cache__ === 'function') {\n __next__clear_chunk_cache__()\n }\n\n const serverPaths = writtenEndpoint.serverPaths.map(({ path: p }) =>\n join(distDir, p)\n )\n\n for (const file of serverPaths) {\n clearModuleContext(file)\n deleteCache(file)\n }\n\n return true\n }\n\n const buildingIds = new Set()\n\n const startBuilding: StartBuilding = (id, requestUrl, forceRebuild) => {\n if (!forceRebuild && readyIds.has(id)) {\n return () => {}\n }\n if (buildingIds.size === 0) {\n consoleStore.setState(\n {\n loading: true,\n trigger: id,\n url: requestUrl,\n } as OutputState,\n true\n )\n }\n buildingIds.add(id)\n return function finishBuilding() {\n if (buildingIds.size === 0) {\n return\n }\n readyIds.add(id)\n buildingIds.delete(id)\n if (buildingIds.size === 0) {\n hmrEventHappened = false\n consoleStore.setState(\n {\n loading: false,\n } as OutputState,\n true\n )\n }\n }\n }\n\n let hmrEventHappened = false\n let hmrHash = 0\n\n const clients = new Set<ws>()\n const clientsByRequestId = new Map<string, ws>()\n const clientStates = new WeakMap<ws, ClientState>()\n\n function sendToClient(client: ws, message: HmrMessageSentToBrowser) {\n const data =\n typeof message.type === 'number'\n ? createBinaryHmrMessageData(message)\n : JSON.stringify(message)\n\n client.send(data)\n }\n\n function sendEnqueuedMessages() {\n for (const [, issueMap] of currentEntryIssues) {\n if (\n [...issueMap.values()].filter((i) => i.severity !== 'warning').length >\n 0\n ) {\n // During compilation errors we want to delay the HMR events until errors are fixed\n return\n }\n }\n\n for (const client of clients) {\n const state = clientStates.get(client)\n if (!state) {\n continue\n }\n\n for (const [, issueMap] of state.clientIssues) {\n if (\n [...issueMap.values()].filter((i) => i.severity !== 'warning')\n .length > 0\n ) {\n // During compilation errors we want to delay the HMR events until errors are fixed\n return\n }\n }\n\n for (const message of state.messages.values()) {\n sendToClient(client, message)\n }\n state.messages.clear()\n\n if (state.turbopackUpdates.length > 0) {\n sendToClient(client, {\n type: HMR_MESSAGE_SENT_TO_BROWSER.TURBOPACK_MESSAGE,\n data: state.turbopackUpdates,\n })\n state.turbopackUpdates.length = 0\n }\n }\n }\n const sendEnqueuedMessagesDebounce = debounce(sendEnqueuedMessages, 2)\n\n const sendHmr: SendHmr = (id: string, message: HmrMessageSentToBrowser) => {\n for (const client of clients) {\n clientStates.get(client)?.messages.set(id, message)\n }\n\n hmrEventHappened = true\n sendEnqueuedMessagesDebounce()\n }\n\n function sendTurbopackMessage(payload: TurbopackUpdate) {\n // TODO(PACK-2049): For some reason we end up emitting hundreds of issues messages on bigger apps,\n // a lot of which are duplicates.\n // They are currently not handled on the client at all, so might as well not send them for now.\n payload.diagnostics = []\n payload.issues = []\n\n for (const client of clients) {\n clientStates.get(client)?.turbopackUpdates.push(payload)\n }\n\n hmrEventHappened = true\n sendEnqueuedMessagesDebounce()\n }\n\n async function subscribeToChanges(\n key: EntryKey,\n includeIssues: boolean,\n endpoint: Endpoint,\n createMessage: (\n change: TurbopackResult,\n hash: string\n ) => Promise<HmrMessageSentToBrowser> | HmrMessageSentToBrowser | void,\n onError?: (\n error: Error\n ) => Promise<HmrMessageSentToBrowser> | HmrMessageSentToBrowser | void\n ) {\n if (changeSubscriptions.has(key)) {\n return\n }\n\n const { side } = splitEntryKey(key)\n\n const changedPromise = endpoint[`${side}Changed`](includeIssues)\n changeSubscriptions.set(key, changedPromise)\n try {\n const changed = await changedPromise\n\n for await (const change of changed) {\n processIssues(currentEntryIssues, key, change, false, true)\n // TODO: Get an actual content hash from Turbopack.\n const message = await createMessage(change, String(++hmrHash))\n if (message) {\n sendHmr(key, message)\n }\n }\n } catch (e) {\n changeSubscriptions.delete(key)\n const payload = await onError?.(e as Error)\n if (payload) {\n sendHmr(key, payload)\n }\n return\n }\n changeSubscriptions.delete(key)\n }\n\n async function unsubscribeFromChanges(key: EntryKey) {\n const subscription = await changeSubscriptions.get(key)\n if (subscription) {\n await subscription.return?.()\n changeSubscriptions.delete(key)\n }\n currentEntryIssues.delete(key)\n }\n\n async function subscribeToHmrEvents(client: ws, id: string) {\n const key = getEntryKey('assets', 'client', id)\n if (!hasEntrypointForKey(currentEntrypoints, key, assetMapper)) {\n // maybe throw an error / force the client to reload?\n return\n }\n\n const state = clientStates.get(client)\n if (!state || state.subscriptions.has(id)) {\n return\n }\n\n const subscription = project!.hmrEvents(id)\n state.subscriptions.set(id, subscription)\n\n // The subscription will always emit once, which is the initial\n // computation. This is not a change, so swallow it.\n try {\n await subscription.next()\n\n for await (const data of subscription) {\n processIssues(state.clientIssues, key, data, false, true)\n if (data.type !== 'issues') {\n sendTurbopackMessage(data)\n }\n }\n } catch (e) {\n // The client might be using an HMR session from a previous server, tell them\n // to fully reload the page to resolve the issue. We can't use\n // `hotReloader.send` since that would force every connected client to\n // reload, only this client is out of date.\n const reloadMessage: ReloadPageMessage = {\n type: HMR_MESSAGE_SENT_TO_BROWSER.RELOAD_PAGE,\n data: `error in HMR event subscription for ${id}: ${e}`,\n }\n sendToClient(client, reloadMessage)\n client.close()\n return\n }\n }\n\n function unsubscribeFromHmrEvents(client: ws, id: string) {\n const state = clientStates.get(client)\n if (!state) {\n return\n }\n\n const subscription = state.subscriptions.get(id)\n subscription?.return!()\n\n const key = getEntryKey('assets', 'client', id)\n state.clientIssues.delete(key)\n }\n\n async function handleEntrypointsSubscription() {\n for await (const entrypoints of entrypointsSubscription) {\n if (!currentEntriesHandlingResolve) {\n currentEntriesHandling = new Promise(\n // eslint-disable-next-line no-loop-func\n (resolve) => (currentEntriesHandlingResolve = resolve)\n )\n }\n\n processTopLevelIssues(currentTopLevelIssues, entrypoints)\n\n await handleEntrypoints({\n entrypoints,\n\n currentEntrypoints,\n\n currentEntryIssues,\n manifestLoader,\n devRewrites: opts.fsChecker.rewrites,\n productionRewrites: undefined,\n logErrors: true,\n\n dev: {\n assetMapper,\n changeSubscriptions,\n clients,\n clientStates,\n serverFields,\n\n hooks: {\n handleWrittenEndpoint: (id, result, forceDeleteCache) => {\n currentWrittenEntrypoints.set(id, result)\n return clearRequireCache(id, result, { force: forceDeleteCache })\n },\n propagateServerField: propagateServerField.bind(null, opts),\n sendHmr,\n startBuilding,\n subscribeToChanges,\n unsubscribeFromChanges,\n unsubscribeFromHmrEvents,\n },\n },\n })\n\n currentEntriesHandlingResolve!()\n currentEntriesHandlingResolve = undefined\n }\n }\n\n await mkdir(join(distDir, 'server'), { recursive: true })\n await mkdir(join(distDir, 'static', buildId), { recursive: true })\n await writeFile(\n join(distDir, 'package.json'),\n JSON.stringify(\n {\n type: 'commonjs',\n },\n null,\n 2\n )\n )\n\n const middlewares = [\n getOverlayMiddleware({\n project,\n projectPath,\n isSrcDir: opts.isSrcDir,\n }),\n getSourceMapMiddleware(project),\n getNextErrorFeedbackMiddleware(opts.telemetry),\n getDevOverlayFontMiddleware(),\n getDisableDevIndicatorMiddleware(),\n getRestartDevServerMiddleware({\n telemetry: opts.telemetry,\n turbopackProject: project,\n }),\n devToolsConfigMiddleware({\n distDir,\n sendUpdateSignal: (data) => {\n hotReloader.send({\n type: HMR_MESSAGE_SENT_TO_BROWSER.DEVTOOLS_CONFIG,\n data,\n })\n },\n }),\n ]\n\n let versionInfoCached: ReturnType<typeof getVersionInfo> | undefined\n // This fetch, even though not awaited, is not kicked off eagerly because the first `fetch()` in\n // Node.js adds roughly 20ms main-thread blocking to load the SSL certificate cache\n // We don't want that blocking time to be in the hot path for the `ready in` logging.\n // Instead, the fetch is kicked off lazily when the first `getVersionInfoCached()` is called.\n const getVersionInfoCached = (): ReturnType<typeof getVersionInfo> => {\n if (!versionInfoCached) {\n versionInfoCached = getVersionInfo()\n }\n return versionInfoCached\n }\n\n let devtoolsFrontendUrl: string | undefined\n const nodeDebugType = getNodeDebugType()\n if (nodeDebugType) {\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 debugInfo = debugInfoList[0]\n } catch {}\n if (debugInfo) {\n devtoolsFrontendUrl = debugInfo.devtoolsFrontendUrl\n }\n }\n\n const hotReloader: NextJsHotReloaderInterface = {\n turbopackProject: project,\n activeWebpackConfigs: undefined,\n serverStats: null,\n edgeServerStats: null,\n async run(req, res, _parsedUrl) {\n // intercept page chunks request and ensure them with turbopack\n if (req.url?.startsWith('/_next/static/chunks/pages/')) {\n const params = matchNextPageBundleRequest(req.url)\n\n if (params) {\n const decodedPagePath = `/${params.path\n .map((param: string) => decodeURIComponent(param))\n .join('/')}`\n\n const denormalizedPagePath = denormalizePagePath(decodedPagePath)\n\n await hotReloader\n .ensurePage({\n page: denormalizedPagePath,\n clientOnly: false,\n definition: undefined,\n url: req.url,\n })\n .catch(console.error)\n }\n }\n\n for (const middleware of 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 // Request was not finished.\n return { finished: undefined }\n },\n\n // TODO: Figure out if socket type can match the NextJsHotReloaderInterface\n onHMR(req, socket: Socket, head, onUpgrade) {\n wsServer.handleUpgrade(req, socket, head, (client) => {\n onUpgrade(client)\n const clientIssues: EntryIssuesMap = new Map()\n const subscriptions: Map<string, AsyncIterator<any>> = new Map()\n\n clients.add(client)\n\n const requestId = req.url\n ? new URL(req.url, 'http://n').searchParams.get('id')\n : null\n\n if (requestId) {\n clientsByRequestId.set(requestId, client)\n }\n\n clientStates.set(client, {\n clientIssues,\n messages: new Map(),\n turbopackUpdates: [],\n subscriptions,\n })\n\n client.on('close', () => {\n // Remove active subscriptions\n for (const subscription of subscriptions.values()) {\n subscription.return?.()\n }\n clientStates.delete(client)\n clients.delete(client)\n\n if (requestId) {\n clientsByRequestId.delete(requestId)\n deleteReactDebugChannel(requestId)\n }\n })\n\n client.addEventListener('message', async ({ data }) => {\n const parsedData = JSON.parse(\n typeof data !== 'string' ? data.toString() : data\n )\n\n // Next.js messages\n switch (parsedData.event) {\n case 'span-end': {\n hotReloaderSpan.manualTraceChild(\n parsedData.spanName,\n msToNs(parsedData.startTime),\n msToNs(parsedData.endTime),\n parsedData.attributes\n )\n break\n }\n case 'client-hmr-latency': // { id, startTime, endTime, page, updatedModules, isPageHidden }\n hotReloaderSpan.manualTraceChild(\n parsedData.event,\n msToNs(parsedData.startTime),\n msToNs(parsedData.endTime),\n {\n updatedModules: parsedData.updatedModules,\n page: parsedData.page,\n isPageHidden: parsedData.isPageHidden,\n }\n )\n break\n\n case 'client-error': // { errorCount, clientId }\n case 'client-warning': // { warningCount, clientId }\n case 'client-success': // { clientId }\n case 'server-component-reload-page': // { clientId }\n case 'client-reload-page': // { clientId }\n case 'client-removed-page': // { page }\n case 'client-full-reload': // { stackTrace, hadRuntimeError }\n const { hadRuntimeError, dependencyChain } = parsedData\n if (hadRuntimeError) {\n Log.warn(FAST_REFRESH_RUNTIME_RELOAD)\n }\n if (\n Array.isArray(dependencyChain) &&\n typeof dependencyChain[0] === 'string'\n ) {\n const cleanedModulePath = dependencyChain[0]\n .replace(/^\\[project\\]/, '.')\n .replace(/ \\[.*\\] \\(.*\\)$/, '')\n Log.warn(\n `Fast Refresh had to perform a full reload when ${cleanedModulePath} changed. Read more: https://nextjs.org/docs/messages/fast-refresh-reload`\n )\n }\n break\n case 'client-added-page':\n // TODO\n break\n case 'browser-logs': {\n if (nextConfig.experimental.browserDebugInfoInTerminal) {\n await receiveBrowserLogsTurbopack({\n entries: parsedData.entries,\n router: parsedData.router,\n sourceType: parsedData.sourceType,\n project,\n projectPath,\n distDir,\n config: nextConfig.experimental.browserDebugInfoInTerminal,\n })\n }\n break\n }\n\n default:\n // Might be a Turbopack message...\n if (!parsedData.type) {\n throw new Error(`unrecognized HMR message \"${data}\"`)\n }\n }\n\n // Turbopack messages\n switch (parsedData.type) {\n case 'turbopack-subscribe':\n subscribeToHmrEvents(client, parsedData.path)\n break\n\n case 'turbopack-unsubscribe':\n unsubscribeFromHmrEvents(client, parsedData.path)\n break\n\n default:\n if (!parsedData.event) {\n throw new Error(`unrecognized Turbopack HMR message \"${data}\"`)\n }\n }\n })\n\n const turbopackConnectedMessage: TurbopackConnectedMessage = {\n type: HMR_MESSAGE_SENT_TO_BROWSER.TURBOPACK_CONNECTED,\n data: { sessionId },\n }\n sendToClient(client, turbopackConnectedMessage)\n\n const errors: CompilationError[] = []\n\n for (const entryIssues of currentEntryIssues.values()) {\n for (const issue of entryIssues.values()) {\n if (issue.severity !== 'warning') {\n errors.push({\n message: formatIssue(issue),\n })\n } else {\n printNonFatalIssue(issue)\n }\n }\n }\n\n if (devIndicatorServerState.disabledUntil < Date.now()) {\n devIndicatorServerState.disabledUntil = 0\n }\n\n ;(async function () {\n const versionInfo = await getVersionInfoCached()\n const devToolsConfig = await getDevToolsConfig(distDir)\n\n const syncMessage: SyncMessage = {\n type: HMR_MESSAGE_SENT_TO_BROWSER.SYNC,\n errors,\n warnings: [],\n hash: '',\n versionInfo,\n debug: {\n devtoolsFrontendUrl,\n },\n devIndicator: devIndicatorServerState,\n devToolsConfig,\n }\n\n sendToClient(client, syncMessage)\n\n if (requestId) {\n connectReactDebugChannel(requestId, sendToClient.bind(null, client))\n }\n })()\n })\n },\n\n send(action) {\n const payload = JSON.stringify(action)\n\n for (const client of clients) {\n client.send(payload)\n }\n },\n\n setReactDebugChannel(debugChannel, htmlRequestId, requestId) {\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\n // immediately. Otherwise, we'll do that when the client connects.\n const client = clientsByRequestId.get(htmlRequestId)\n\n if (client) {\n connectReactDebugChannel(requestId, sendToClient.bind(null, client))\n }\n },\n\n setHmrServerError(_error) {\n // Not implemented yet.\n },\n clearHmrServerError() {\n // Not implemented yet.\n },\n async start() {},\n async getCompilationErrors(page) {\n const appEntryKey = getEntryKey('app', 'server', page)\n const pagesEntryKey = getEntryKey('pages', 'server', page)\n\n const topLevelIssues = currentTopLevelIssues.values()\n\n const thisEntryIssues =\n currentEntryIssues.get(appEntryKey) ??\n currentEntryIssues.get(pagesEntryKey)\n\n if (thisEntryIssues !== undefined && thisEntryIssues.size > 0) {\n // If there is an error related to the requesting page we display it instead of the first error\n return [...topLevelIssues, ...thisEntryIssues.values()]\n .map((issue) => {\n const formattedIssue = formatIssue(issue)\n if (issue.severity === 'warning') {\n printNonFatalIssue(issue)\n return null\n } else if (isWellKnownError(issue)) {\n Log.error(formattedIssue)\n }\n\n return new Error(formattedIssue)\n })\n .filter((error) => error !== null)\n }\n\n // Otherwise, return all errors across pages\n const errors = []\n for (const issue of topLevelIssues) {\n if (issue.severity !== 'warning') {\n errors.push(new Error(formatIssue(issue)))\n }\n }\n for (const entryIssues of currentEntryIssues.values()) {\n for (const issue of entryIssues.values()) {\n if (issue.severity !== 'warning') {\n const message = formatIssue(issue)\n errors.push(new Error(message))\n } else {\n printNonFatalIssue(issue)\n }\n }\n }\n return errors\n },\n async invalidate({\n // .env files or tsconfig/jsconfig change\n reloadAfterInvalidation,\n }) {\n if (reloadAfterInvalidation) {\n for (const [key, entrypoint] of currentWrittenEntrypoints) {\n clearRequireCache(key, entrypoint, { force: true })\n }\n\n await clearAllModuleContexts()\n this.send({\n type: HMR_MESSAGE_SENT_TO_BROWSER.SERVER_COMPONENT_CHANGES,\n hash: String(++hmrHash),\n })\n }\n },\n async buildFallbackError() {\n // Not implemented yet.\n },\n async ensurePage({\n page: inputPage,\n // Unused parameters\n // clientOnly,\n appPaths,\n definition,\n isApp,\n url: requestUrl,\n }) {\n // When there is no route definition this is an internal file not a route the user added.\n // Middleware and instrumentation are handled in turbpack-utils.ts handleEntrypoints instead.\n if (!definition) {\n if (inputPage === '/middleware') return\n if (inputPage === '/src/middleware') return\n if (inputPage === '/instrumentation') return\n if (inputPage === '/src/instrumentation') return\n }\n\n return hotReloaderSpan\n .traceChild('ensure-page', {\n inputPage,\n })\n .traceAsyncFn(async () => {\n if (BLOCKED_PAGES.includes(inputPage) && inputPage !== '/_error') {\n return\n }\n\n await currentEntriesHandling\n\n // TODO We shouldn't look into the filesystem again. This should use the information from entrypoints\n let routeDef: Pick<\n RouteDefinition,\n 'filename' | 'bundlePath' | 'page'\n > =\n definition ??\n (await findPagePathData(\n projectPath,\n inputPage,\n nextConfig.pageExtensions,\n opts.pagesDir,\n opts.appDir,\n !!nextConfig.experimental.globalNotFound\n ))\n\n // If the route is actually an app page route, then we should have access\n // to the app route definition, and therefore, the appPaths from it.\n if (!appPaths && definition && isAppPageRouteDefinition(definition)) {\n appPaths = definition.appPaths\n }\n\n let page = routeDef.page\n if (appPaths) {\n const normalizedPage = normalizeAppPath(page)\n\n // filter out paths that are not exact matches (e.g. catchall)\n const matchingAppPaths = appPaths.filter(\n (path) => normalizeAppPath(path) === normalizedPage\n )\n\n // the last item in the array is the root page, if there are parallel routes\n page = matchingAppPaths[matchingAppPaths.length - 1]\n }\n\n const pathname = definition?.pathname ?? inputPage\n\n if (page === '/_error') {\n let finishBuilding = startBuilding(pathname, requestUrl, false)\n try {\n await handlePagesErrorRoute({\n currentEntryIssues,\n entrypoints: currentEntrypoints,\n manifestLoader,\n devRewrites: opts.fsChecker.rewrites,\n productionRewrites: undefined,\n logErrors: true,\n hooks: {\n subscribeToChanges,\n handleWrittenEndpoint: (id, result, forceDeleteCache) => {\n currentWrittenEntrypoints.set(id, result)\n assetMapper.setPathsForKey(id, result.clientPaths)\n return clearRequireCache(id, result, {\n force: forceDeleteCache,\n })\n },\n },\n })\n } finally {\n finishBuilding()\n }\n return\n }\n\n const isInsideAppDir = routeDef.bundlePath.startsWith('app/')\n const isEntryMetadataRouteFile = isMetadataRouteFile(\n routeDef.filename.replace(opts.appDir || '', ''),\n nextConfig.pageExtensions,\n true\n )\n const normalizedAppPage = isEntryMetadataRouteFile\n ? normalizedPageToTurbopackStructureRoute(\n page,\n extname(routeDef.filename)\n )\n : page\n\n const route = isInsideAppDir\n ? currentEntrypoints.app.get(normalizedAppPage)\n : currentEntrypoints.page.get(page)\n\n if (!route) {\n // TODO: why is this entry missing in turbopack?\n if (page === '/middleware') return\n if (page === '/src/middleware') return\n if (page === '/instrumentation') return\n if (page === '/src/instrumentation') return\n\n throw new PageNotFoundError(`route not found ${page}`)\n }\n\n // We don't throw on ensureOpts.isApp === true for page-api\n // since this can happen when app pages make\n // api requests to page API routes.\n if (isApp && route.type === 'page') {\n throw new Error(`mis-matched route type: isApp && page for ${page}`)\n }\n\n const finishBuilding = startBuilding(pathname, requestUrl, false)\n try {\n await handleRouteType({\n dev,\n page,\n pathname,\n route,\n currentEntryIssues,\n entrypoints: currentEntrypoints,\n manifestLoader,\n readyIds,\n devRewrites: opts.fsChecker.rewrites,\n productionRewrites: undefined,\n logErrors: true,\n\n hooks: {\n subscribeToChanges,\n handleWrittenEndpoint: (id, result, forceDeleteCache) => {\n currentWrittenEntrypoints.set(id, result)\n assetMapper.setPathsForKey(id, result.clientPaths)\n return clearRequireCache(id, result, {\n force: forceDeleteCache,\n })\n },\n },\n })\n } finally {\n finishBuilding()\n }\n })\n },\n close() {\n for (const wsClient of clients) {\n // it's okay to not cleanly close these websocket connections, this is dev\n wsClient.terminate()\n }\n clients.clear()\n clientsByRequestId.clear()\n },\n }\n\n handleEntrypointsSubscription().catch((err) => {\n console.error(err)\n process.exit(1)\n })\n\n // Write empty manifests\n await currentEntriesHandling\n await manifestLoader.writeManifests({\n devRewrites: opts.fsChecker.rewrites,\n productionRewrites: undefined,\n entrypoints: currentEntrypoints,\n })\n\n async function handleProjectUpdates() {\n for await (const updateMessage of project.updateInfoSubscribe(30)) {\n switch (updateMessage.updateType) {\n case 'start': {\n hotReloader.send({ type: HMR_MESSAGE_SENT_TO_BROWSER.BUILDING })\n break\n }\n case 'end': {\n sendEnqueuedMessages()\n\n function addErrors(\n errorsMap: Map<string, CompilationError>,\n issues: EntryIssuesMap\n ) {\n for (const issueMap of issues.values()) {\n for (const [key, issue] of issueMap) {\n if (issue.severity === 'warning') continue\n if (errorsMap.has(key)) continue\n\n const message = formatIssue(issue)\n\n errorsMap.set(key, {\n message,\n details: issue.detail\n ? renderStyledStringToErrorAnsi(issue.detail)\n : undefined,\n })\n }\n }\n }\n\n const errors = new Map<string, CompilationError>()\n addErrors(errors, currentEntryIssues)\n\n for (const client of clients) {\n const state = clientStates.get(client)\n if (!state) {\n continue\n }\n\n const clientErrors = new Map(errors)\n addErrors(clientErrors, state.clientIssues)\n\n sendToClient(client, {\n type: HMR_MESSAGE_SENT_TO_BROWSER.BUILT,\n hash: String(++hmrHash),\n errors: [...clientErrors.values()],\n warnings: [],\n })\n }\n\n if (hmrEventHappened) {\n const time = updateMessage.value.duration\n const timeMessage =\n time > 2000 ? `${Math.round(time / 100) / 10}s` : `${time}ms`\n Log.event(`Compiled in ${timeMessage}`)\n hmrEventHappened = false\n }\n break\n }\n default:\n }\n }\n }\n\n handleProjectUpdates().catch((err) => {\n console.error(err)\n process.exit(1)\n })\n\n return hotReloader\n}\n"],"names":["createHotReloaderTurbopack","wsServer","ws","Server","noServer","isTestMode","process","env","NEXT_TEST_MODE","__NEXT_TEST_MODE","DEBUG","sessionId","Math","floor","Number","MAX_SAFE_INTEGER","random","rewriteTurbopackSources","projectRoot","sourceMap","section","sections","map","i","sources","length","pathToFileURL","join","replace","toString","getSourceMapFromTurbopack","project","sourceURL","sourceMapJson","getSourceMapSync","err","undefined","payload","JSON","parse","opts","serverFields","distDir","resetFetch","nextConfig","dev","buildId","dir","projectPath","loadBindings","require","bindings","log","testMode","hasRewrites","fsChecker","rewrites","afterFiles","beforeFiles","fallback","hotReloaderSpan","trace","version","__NEXT_VERSION","stop","encryptionKey","generateEncryptionKeyBase64","isBuild","clientRouterFilters","experimental","clientRouterFilter","supportedBrowsers","getSupportedBrowsers","currentNodeJsVersion","versions","node","rootPath","turbopack","root","outputFileTracingRoot","turbo","createProject","normalizePath","relative","watch","enable","pollIntervalMs","watchOptions","defineEnv","createDefineEnv","isTurbopack","config","fetchCacheKeyPrefix","middlewareMatchers","previewProps","prerenderManifest","preview","browserslistQuery","noMangling","persistentCaching","isPersistentCachingEnabled","memoryLimit","turbopackMemoryLimit","isShortSession","backgroundLogCompilationEvents","eventTypes","setBundlerFindSourceMapImplementation","bind","onDevServerCleanup","onExit","entrypointsSubscription","entrypointsSubscribe","currentWrittenEntrypoints","Map","currentEntrypoints","global","app","document","error","middleware","instrumentation","page","currentTopLevelIssues","currentEntryIssues","manifestLoader","TurbopackManifestLoader","changeSubscriptions","serverPathState","readyIds","Set","currentEntriesHandlingResolve","currentEntriesHandling","Promise","resolve","assetMapper","AssetMapper","clearRequireCache","key","writtenEndpoint","force","path","contentHash","serverPaths","endsWith","localKey","set","hasChange","localHash","get","globalHash","__next__clear_chunk_cache__","p","file","clearModuleContext","deleteCache","buildingIds","startBuilding","id","requestUrl","forceRebuild","has","size","consoleStore","setState","loading","trigger","url","add","finishBuilding","delete","hmrEventHappened","hmrHash","clients","clientsByRequestId","clientStates","WeakMap","sendToClient","client","message","data","type","createBinaryHmrMessageData","stringify","send","sendEnqueuedMessages","issueMap","values","filter","severity","state","clientIssues","messages","clear","turbopackUpdates","HMR_MESSAGE_SENT_TO_BROWSER","TURBOPACK_MESSAGE","sendEnqueuedMessagesDebounce","debounce","sendHmr","sendTurbopackMessage","diagnostics","issues","push","subscribeToChanges","includeIssues","endpoint","createMessage","onError","side","splitEntryKey","changedPromise","changed","change","processIssues","String","e","unsubscribeFromChanges","subscription","return","subscribeToHmrEvents","getEntryKey","hasEntrypointForKey","subscriptions","hmrEvents","next","reloadMessage","RELOAD_PAGE","close","unsubscribeFromHmrEvents","handleEntrypointsSubscription","entrypoints","processTopLevelIssues","handleEntrypoints","devRewrites","productionRewrites","logErrors","hooks","handleWrittenEndpoint","result","forceDeleteCache","propagateServerField","mkdir","recursive","writeFile","middlewares","getOverlayMiddleware","isSrcDir","getSourceMapMiddleware","getNextErrorFeedbackMiddleware","telemetry","getDevOverlayFontMiddleware","getDisableDevIndicatorMiddleware","getRestartDevServerMiddleware","turbopackProject","devToolsConfigMiddleware","sendUpdateSignal","hotReloader","DEVTOOLS_CONFIG","versionInfoCached","getVersionInfoCached","getVersionInfo","devtoolsFrontendUrl","nodeDebugType","getNodeDebugType","debugPort","debugInfo","debugInfoList","fetch","then","res","json","activeWebpackConfigs","serverStats","edgeServerStats","run","req","_parsedUrl","startsWith","params","matchNextPageBundleRequest","decodedPagePath","param","decodeURIComponent","denormalizedPagePath","denormalizePagePath","ensurePage","clientOnly","definition","catch","console","calledNext","finished","onHMR","socket","head","onUpgrade","handleUpgrade","requestId","URL","searchParams","on","deleteReactDebugChannel","addEventListener","parsedData","event","manualTraceChild","spanName","msToNs","startTime","endTime","attributes","updatedModules","isPageHidden","hadRuntimeError","dependencyChain","Log","warn","FAST_REFRESH_RUNTIME_RELOAD","Array","isArray","cleanedModulePath","browserDebugInfoInTerminal","receiveBrowserLogsTurbopack","entries","router","sourceType","Error","turbopackConnectedMessage","TURBOPACK_CONNECTED","errors","entryIssues","issue","formatIssue","printNonFatalIssue","devIndicatorServerState","disabledUntil","Date","now","versionInfo","devToolsConfig","getDevToolsConfig","syncMessage","SYNC","warnings","hash","debug","devIndicator","connectReactDebugChannel","action","setReactDebugChannel","debugChannel","htmlRequestId","setHmrServerError","_error","clearHmrServerError","start","getCompilationErrors","appEntryKey","pagesEntryKey","topLevelIssues","thisEntryIssues","formattedIssue","isWellKnownError","invalidate","reloadAfterInvalidation","entrypoint","clearAllModuleContexts","SERVER_COMPONENT_CHANGES","buildFallbackError","inputPage","appPaths","isApp","traceChild","traceAsyncFn","BLOCKED_PAGES","includes","routeDef","findPagePathData","pageExtensions","pagesDir","appDir","globalNotFound","isAppPageRouteDefinition","normalizedPage","normalizeAppPath","matchingAppPaths","pathname","handlePagesErrorRoute","setPathsForKey","clientPaths","isInsideAppDir","bundlePath","isEntryMetadataRouteFile","isMetadataRouteFile","filename","normalizedAppPage","normalizedPageToTurbopackStructureRoute","extname","route","PageNotFoundError","handleRouteType","wsClient","terminate","exit","writeManifests","handleProjectUpdates","updateMessage","updateInfoSubscribe","updateType","BUILDING","addErrors","errorsMap","details","detail","renderStyledStringToErrorAnsi","clientErrors","BUILT","time","value","duration","timeMessage","round"],"mappings":"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","ignoreList":[0]}
@@ -264,7 +264,7 @@ class HotReloaderWebpack {
264
264
  this.previewProps = previewProps;
265
265
  this.rewrites = rewrites;
266
266
  this.hotReloaderSpan = (0, _trace.trace)('hot-reloader', undefined, {
267
- version: "15.5.1-canary.33"
267
+ version: "15.5.1-canary.34"
268
268
  });
269
269
  // Ensure the hotReloaderSpan is flushed immediately as it's the parentSpan for all processing
270
270
  // of the current `next dev` invocation.
@@ -82,7 +82,7 @@ function logStartInfo({ networkUrl, appUrl, envInfo, experimentalFeatures, logBu
82
82
  bundlerSuffix = ' (webpack)';
83
83
  }
84
84
  }
85
- _log.bootstrap(`${(0, _picocolors.bold)((0, _picocolors.purple)(`${_log.prefixes.ready} Next.js ${"15.5.1-canary.33"}`))}${bundlerSuffix}`);
85
+ _log.bootstrap(`${(0, _picocolors.bold)((0, _picocolors.purple)(`${_log.prefixes.ready} Next.js ${"15.5.1-canary.34"}`))}${bundlerSuffix}`);
86
86
  if (appUrl) {
87
87
  _log.bootstrap(`- Local: ${appUrl}`);
88
88
  }
@@ -179,7 +179,7 @@ async function getRequestHandlers({ dir, port, isDev, onDevServerCleanup, server
179
179
  async function startServer(serverOptions) {
180
180
  const { dir, isDev, hostname, minimalMode, allowRetry, keepAliveTimeout, selfSignedCertificate } = serverOptions;
181
181
  let { port } = serverOptions;
182
- process.title = `next-server (v${"15.5.1-canary.33"})`;
182
+ process.title = `next-server (v${"15.5.1-canary.34"})`;
183
183
  let handlersReady = ()=>{};
184
184
  let handlersError = ()=>{};
185
185
  let handlersPromise = new Promise((resolve, reject)=>{
@@ -22,7 +22,7 @@ _export(exports, {
22
22
  });
23
23
  function isStableBuild() {
24
24
  var _process_env___NEXT_VERSION;
25
- return !((_process_env___NEXT_VERSION = "15.5.1-canary.33") == null ? void 0 : _process_env___NEXT_VERSION.includes('canary')) && !process.env.__NEXT_TEST_MODE && !process.env.NEXT_PRIVATE_LOCAL_DEV;
25
+ return !((_process_env___NEXT_VERSION = "15.5.1-canary.34") == null ? void 0 : _process_env___NEXT_VERSION.includes('canary')) && !process.env.__NEXT_TEST_MODE && !process.env.NEXT_PRIVATE_LOCAL_DEV;
26
26
  }
27
27
  class CanaryOnlyError extends Error {
28
28
  constructor(arg){
@@ -81,7 +81,7 @@ function getAnonymousMeta() {
81
81
  isWsl: _iswsl.default,
82
82
  isCI: _ciinfo.isCI,
83
83
  ciName: _ciinfo.isCI && _ciinfo.name || null,
84
- nextVersion: "15.5.1-canary.33"
84
+ nextVersion: "15.5.1-canary.34"
85
85
  };
86
86
  return traits;
87
87
  }
@@ -11,11 +11,11 @@ Object.defineProperty(exports, "eventCliSessionStopped", {
11
11
  const EVENT_VERSION = 'NEXT_CLI_SESSION_STOPPED';
12
12
  function eventCliSessionStopped(event) {
13
13
  // This should be an invariant, if it fails our build tooling is broken.
14
- if (typeof "15.5.1-canary.33" !== 'string') {
14
+ if (typeof "15.5.1-canary.34" !== 'string') {
15
15
  return [];
16
16
  }
17
17
  const payload = {
18
- nextVersion: "15.5.1-canary.33",
18
+ nextVersion: "15.5.1-canary.34",
19
19
  nodeVersion: process.version,
20
20
  cliCommand: event.cliCommand,
21
21
  durationMilliseconds: event.durationMilliseconds,