next 16.1.1-canary.7 → 16.1.1-canary.9

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 (80) hide show
  1. package/dist/bin/next +2 -2
  2. package/dist/build/index.js +4 -4
  3. package/dist/build/index.js.map +1 -1
  4. package/dist/build/swc/index.js +1 -1
  5. package/dist/build/type-check.js +2 -2
  6. package/dist/build/type-check.js.map +1 -1
  7. package/dist/build/webpack-config.js +3 -3
  8. package/dist/bundle-analyzer/404.html +2 -2
  9. package/dist/bundle-analyzer/__next.__PAGE__.txt +1 -1
  10. package/dist/bundle-analyzer/__next._full.txt +1 -1
  11. package/dist/bundle-analyzer/__next._head.txt +1 -1
  12. package/dist/bundle-analyzer/__next._index.txt +1 -1
  13. package/dist/bundle-analyzer/__next._tree.txt +1 -1
  14. package/dist/bundle-analyzer/_not-found/__next._full.txt +1 -1
  15. package/dist/bundle-analyzer/_not-found/__next._head.txt +1 -1
  16. package/dist/bundle-analyzer/_not-found/__next._index.txt +1 -1
  17. package/dist/bundle-analyzer/_not-found/__next._not-found.__PAGE__.txt +1 -1
  18. package/dist/bundle-analyzer/_not-found/__next._not-found.txt +1 -1
  19. package/dist/bundle-analyzer/_not-found/__next._tree.txt +1 -1
  20. package/dist/bundle-analyzer/_not-found.html +2 -2
  21. package/dist/bundle-analyzer/_not-found.txt +1 -1
  22. package/dist/bundle-analyzer/index.html +2 -2
  23. package/dist/bundle-analyzer/index.txt +1 -1
  24. package/dist/cli/next-typegen.js +1 -1
  25. package/dist/cli/next-typegen.js.map +1 -1
  26. package/dist/client/app-bootstrap.js +1 -1
  27. package/dist/client/index.js +1 -1
  28. package/dist/esm/build/index.js +4 -4
  29. package/dist/esm/build/index.js.map +1 -1
  30. package/dist/esm/build/swc/index.js +1 -1
  31. package/dist/esm/build/type-check.js +2 -2
  32. package/dist/esm/build/type-check.js.map +1 -1
  33. package/dist/esm/build/webpack-config.js +3 -3
  34. package/dist/esm/client/app-bootstrap.js +1 -1
  35. package/dist/esm/client/index.js +1 -1
  36. package/dist/esm/server/config-schema.js +1 -0
  37. package/dist/esm/server/config-schema.js.map +1 -1
  38. package/dist/esm/server/config-shared.js +1 -0
  39. package/dist/esm/server/config-shared.js.map +1 -1
  40. package/dist/esm/server/config.js +8 -0
  41. package/dist/esm/server/config.js.map +1 -1
  42. package/dist/esm/server/dev/hot-reloader-turbopack.js +1 -1
  43. package/dist/esm/server/dev/hot-reloader-webpack.js +1 -1
  44. package/dist/esm/server/lib/app-info-log.js +1 -1
  45. package/dist/esm/server/lib/router-utils/route-types-utils.js +4 -4
  46. package/dist/esm/server/lib/router-utils/route-types-utils.js.map +1 -1
  47. package/dist/esm/server/lib/router-utils/setup-dev-bundler.js +1 -1
  48. package/dist/esm/server/lib/router-utils/setup-dev-bundler.js.map +1 -1
  49. package/dist/esm/server/lib/router-utils/typegen.js +241 -0
  50. package/dist/esm/server/lib/router-utils/typegen.js.map +1 -1
  51. package/dist/esm/server/lib/start-server.js +1 -1
  52. package/dist/esm/shared/lib/errors/canary-only-config-error.js +1 -1
  53. package/dist/server/config-schema.d.ts +1 -0
  54. package/dist/server/config-schema.js +1 -0
  55. package/dist/server/config-schema.js.map +1 -1
  56. package/dist/server/config-shared.d.ts +6 -0
  57. package/dist/server/config-shared.js +1 -0
  58. package/dist/server/config-shared.js.map +1 -1
  59. package/dist/server/config.js +8 -0
  60. package/dist/server/config.js.map +1 -1
  61. package/dist/server/dev/hot-reloader-turbopack.js +1 -1
  62. package/dist/server/dev/hot-reloader-webpack.js +1 -1
  63. package/dist/server/lib/app-info-log.js +1 -1
  64. package/dist/server/lib/router-utils/route-types-utils.d.ts +1 -1
  65. package/dist/server/lib/router-utils/route-types-utils.js +3 -3
  66. package/dist/server/lib/router-utils/route-types-utils.js.map +1 -1
  67. package/dist/server/lib/router-utils/setup-dev-bundler.js +1 -1
  68. package/dist/server/lib/router-utils/setup-dev-bundler.js.map +1 -1
  69. package/dist/server/lib/router-utils/typegen.d.ts +2 -0
  70. package/dist/server/lib/router-utils/typegen.js +250 -1
  71. package/dist/server/lib/router-utils/typegen.js.map +1 -1
  72. package/dist/server/lib/start-server.js +1 -1
  73. package/dist/shared/lib/errors/canary-only-config-error.js +1 -1
  74. package/dist/telemetry/anonymous-meta.js +1 -1
  75. package/dist/telemetry/events/session-stopped.js +2 -2
  76. package/dist/telemetry/events/version.js +2 -2
  77. package/package.json +15 -15
  78. /package/dist/bundle-analyzer/_next/static/{AWFBEwiCWAUXxcVF_VRLZ → fi5lojzHC7sFferP3DyUz}/_buildManifest.js +0 -0
  79. /package/dist/bundle-analyzer/_next/static/{AWFBEwiCWAUXxcVF_VRLZ → fi5lojzHC7sFferP3DyUz}/_clientMiddlewareManifest.json +0 -0
  80. /package/dist/bundle-analyzer/_next/static/{AWFBEwiCWAUXxcVF_VRLZ → fi5lojzHC7sFferP3DyUz}/_ssgManifest.js +0 -0
@@ -9,7 +9,7 @@ b:I[97372,["/_next/static/chunks/d4897d048d586310.js"],"ViewportBoundary"]
9
9
  d:I[97372,["/_next/static/chunks/d4897d048d586310.js"],"MetadataBoundary"]
10
10
  f:I[36062,["/_next/static/chunks/d4897d048d586310.js"],"default"]
11
11
  :HL["/_next/static/chunks/adecd0ef71a11c8f.css","style"]
12
- 0:{"P":null,"b":"AWFBEwiCWAUXxcVF_VRLZ","c":["",""],"q":"","i":false,"f":[[["",{"children":["__PAGE__",{}]},"$undefined","$undefined",true],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/adecd0ef71a11c8f.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":[["$","head",null,{"children":["$","script",null,{"dangerouslySetInnerHTML":{"__html":"\n (function() {\n const theme = window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';\n document.documentElement.classList.toggle('dark', theme === 'dark');\n\n window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', (e) => {\n document.documentElement.classList.toggle('dark', e.matches);\n });\n })();\n "}}]}],["$","body",null,{"className":"font-sans antialiased","children":["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]]}]]}],{"children":[["$","$1","c",{"children":[["$","$L4",null,{"Component":"$5","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@6","$@7"]}}],[["$","script","script-0",{"src":"/_next/static/chunks/8d91f8a9573cc0bb.js","async":true,"nonce":"$undefined"}]],["$","$L8",null,{"children":["$","$9",null,{"name":"Next.MetadataOutlet","children":"$@a"}]}]]}],{},null,false,false]},null,false,false],["$","$1","h",{"children":[null,["$","$Lb",null,{"children":"$@c"}],["$","div",null,{"hidden":true,"children":["$","$Ld",null,{"children":["$","$9",null,{"name":"Next.Metadata","children":"$@e"}]}]}],null]}],false]],"m":"$undefined","G":["$f",[]],"S":true}
12
+ 0:{"P":null,"b":"fi5lojzHC7sFferP3DyUz","c":["",""],"q":"","i":false,"f":[[["",{"children":["__PAGE__",{}]},"$undefined","$undefined",true],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/adecd0ef71a11c8f.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":[["$","head",null,{"children":["$","script",null,{"dangerouslySetInnerHTML":{"__html":"\n (function() {\n const theme = window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';\n document.documentElement.classList.toggle('dark', theme === 'dark');\n\n window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', (e) => {\n document.documentElement.classList.toggle('dark', e.matches);\n });\n })();\n "}}]}],["$","body",null,{"className":"font-sans antialiased","children":["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]]}]]}],{"children":[["$","$1","c",{"children":[["$","$L4",null,{"Component":"$5","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@6","$@7"]}}],[["$","script","script-0",{"src":"/_next/static/chunks/8d91f8a9573cc0bb.js","async":true,"nonce":"$undefined"}]],["$","$L8",null,{"children":["$","$9",null,{"name":"Next.MetadataOutlet","children":"$@a"}]}]]}],{},null,false,false]},null,false,false],["$","$1","h",{"children":[null,["$","$Lb",null,{"children":"$@c"}],["$","div",null,{"hidden":true,"children":["$","$Ld",null,{"children":["$","$9",null,{"name":"Next.Metadata","children":"$@e"}]}]}],null]}],false]],"m":"$undefined","G":["$f",[]],"S":true}
13
13
  6:{}
14
14
  7:"$0:f:0:1:1:children:0:props:children:0:props:serverProvidedParams:params"
15
15
  c:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]
@@ -160,7 +160,7 @@ const nextTypegen = async (_options, directory)=>{
160
160
  validatorFilePath
161
161
  });
162
162
  await (0, _routetypesutils.writeRouteTypesManifest)(routeTypesManifest, routeTypesFilePath, nextConfig);
163
- await (0, _routetypesutils.writeValidatorFile)(routeTypesManifest, validatorFilePath);
163
+ await (0, _routetypesutils.writeValidatorFile)(routeTypesManifest, validatorFilePath, Boolean(nextConfig.experimental.strictRouteTypes));
164
164
  // Generate cache-life types if cacheLife config exists
165
165
  const cacheLifeFilePath = (0, _path.join)(distDir, 'types', 'cache-life.d.ts');
166
166
  (0, _cachelifetypeutils.writeCacheLifeTypes)(nextConfig.cacheLife, cacheLifeFilePath);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/cli/next-typegen.ts"],"sourcesContent":["#!/usr/bin/env node\n\nimport { existsSync } from 'fs'\nimport path, { join } from 'path'\nimport { mkdir } from 'fs/promises'\n\nimport loadConfig from '../server/config'\nimport { printAndExit } from '../server/lib/utils'\nimport { PHASE_PRODUCTION_BUILD } from '../shared/lib/constants'\nimport { getProjectDir } from '../lib/get-project-dir'\nimport { findPagesDir } from '../lib/find-pages-dir'\nimport { verifyTypeScriptSetup } from '../lib/verify-typescript-setup'\nimport {\n createPagesMapping,\n collectAppFiles,\n collectPagesFiles,\n processPageRoutes,\n processAppRoutes,\n processLayoutRoutes,\n extractSlotsFromAppRoutes,\n extractSlotsFromDefaultFiles,\n combineSlots,\n type RouteInfo,\n type SlotInfo,\n} from '../build/entries'\nimport { PAGE_TYPES } from '../lib/page-types'\n\nimport {\n createRouteTypesManifest,\n writeRouteTypesManifest,\n writeValidatorFile,\n} from '../server/lib/router-utils/route-types-utils'\nimport { writeCacheLifeTypes } from '../server/lib/router-utils/cache-life-type-utils'\nimport { createValidFileMatcher } from '../server/lib/find-page-file'\nimport { installBindings } from '../build/swc/install-bindings'\n\nexport type NextTypegenOptions = {\n dir?: string\n}\n\nconst nextTypegen = async (\n _options: NextTypegenOptions,\n directory?: string\n) => {\n const baseDir = getProjectDir(directory)\n\n // Check if the provided directory exists\n if (!existsSync(baseDir)) {\n printAndExit(`> No such directory exists as the project root: ${baseDir}`)\n }\n\n const nextConfig = await loadConfig(PHASE_PRODUCTION_BUILD, baseDir)\n await installBindings(nextConfig.experimental?.useWasmBinary)\n const distDir = join(baseDir, nextConfig.distDir)\n const { pagesDir, appDir } = findPagesDir(baseDir)\n\n await verifyTypeScriptSetup({\n dir: baseDir,\n distDir: nextConfig.distDir,\n typeCheckPreflight: false,\n tsconfigPath: nextConfig.typescript.tsconfigPath,\n disableStaticImages: nextConfig.images.disableStaticImages,\n hasAppDir: !!appDir,\n hasPagesDir: !!pagesDir,\n isolatedDevBuild: nextConfig.experimental.isolatedDevBuild,\n appDir: appDir || undefined,\n pagesDir: pagesDir || undefined,\n })\n\n console.log('Generating route types...')\n\n const routeTypesFilePath = join(distDir, 'types', 'routes.d.ts')\n const validatorFilePath = join(distDir, 'types', 'validator.ts')\n await mkdir(join(distDir, 'types'), { recursive: true })\n\n let pageRoutes: RouteInfo[] = []\n let appRoutes: RouteInfo[] = []\n let appRouteHandlers: RouteInfo[] = []\n let layoutRoutes: RouteInfo[] = []\n let slots: SlotInfo[] = []\n\n let pageApiRoutes: RouteInfo[] = []\n\n let mappedPages: { [page: string]: string } = {}\n let mappedAppPages: { [page: string]: string } = {}\n let mappedAppLayouts: { [page: string]: string } = {}\n\n // Helper function to reduce createPagesMapping duplication\n const createMapping = (pagePaths: string[], pagesType: any) =>\n createPagesMapping({\n pagePaths,\n isDev: false,\n pagesType,\n pageExtensions: nextConfig.pageExtensions,\n pagesDir,\n appDir,\n appDirOnly: !!appDir && !pagesDir,\n })\n\n const validFileMatcher = createValidFileMatcher(\n nextConfig.pageExtensions,\n appDir\n )\n\n const isSrcDir = path\n .relative(baseDir, pagesDir || appDir || '')\n .startsWith('src')\n\n // Build pages routes\n if (pagesDir) {\n const pagePaths = await collectPagesFiles(pagesDir, validFileMatcher)\n\n mappedPages = await createMapping(pagePaths, PAGE_TYPES.PAGES)\n\n // Process pages routes\n const processedPages = processPageRoutes(mappedPages, baseDir, isSrcDir)\n pageRoutes = processedPages.pageRoutes\n pageApiRoutes = processedPages.pageApiRoutes\n }\n\n // Build app routes\n if (appDir) {\n // Collect app pages, layouts, and default files in a single directory traversal\n const { appPaths, layoutPaths, defaultPaths } = await collectAppFiles(\n appDir,\n validFileMatcher\n )\n\n mappedAppPages = await createMapping(appPaths, PAGE_TYPES.APP)\n mappedAppLayouts = await createMapping(layoutPaths, PAGE_TYPES.APP)\n const mappedDefaultFiles = await createMapping(defaultPaths, PAGE_TYPES.APP)\n\n // Process app routes and extract slots from both pages and default files\n const slotsFromPages = extractSlotsFromAppRoutes(mappedAppPages)\n const slotsFromDefaults = extractSlotsFromDefaultFiles(mappedDefaultFiles)\n\n // Combine slots and deduplicate using Set\n slots = combineSlots(slotsFromPages, slotsFromDefaults)\n\n const result = processAppRoutes(\n mappedAppPages,\n validFileMatcher,\n baseDir,\n isSrcDir\n )\n appRoutes = result.appRoutes\n appRouteHandlers = result.appRouteHandlers\n\n // Process layout routes\n layoutRoutes = processLayoutRoutes(mappedAppLayouts, baseDir, isSrcDir)\n }\n\n const routeTypesManifest = await createRouteTypesManifest({\n dir: baseDir,\n pageRoutes,\n appRoutes,\n appRouteHandlers,\n pageApiRoutes,\n layoutRoutes,\n slots,\n redirects: nextConfig.redirects,\n rewrites: nextConfig.rewrites,\n validatorFilePath,\n })\n\n await writeRouteTypesManifest(\n routeTypesManifest,\n routeTypesFilePath,\n nextConfig\n )\n\n await writeValidatorFile(routeTypesManifest, validatorFilePath)\n\n // Generate cache-life types if cacheLife config exists\n const cacheLifeFilePath = join(distDir, 'types', 'cache-life.d.ts')\n writeCacheLifeTypes(nextConfig.cacheLife, cacheLifeFilePath)\n\n console.log('✓ Types generated successfully')\n}\n\nexport { nextTypegen }\n"],"names":["nextTypegen","_options","directory","nextConfig","baseDir","getProjectDir","existsSync","printAndExit","loadConfig","PHASE_PRODUCTION_BUILD","installBindings","experimental","useWasmBinary","distDir","join","pagesDir","appDir","findPagesDir","verifyTypeScriptSetup","dir","typeCheckPreflight","tsconfigPath","typescript","disableStaticImages","images","hasAppDir","hasPagesDir","isolatedDevBuild","undefined","console","log","routeTypesFilePath","validatorFilePath","mkdir","recursive","pageRoutes","appRoutes","appRouteHandlers","layoutRoutes","slots","pageApiRoutes","mappedPages","mappedAppPages","mappedAppLayouts","createMapping","pagePaths","pagesType","createPagesMapping","isDev","pageExtensions","appDirOnly","validFileMatcher","createValidFileMatcher","isSrcDir","path","relative","startsWith","collectPagesFiles","PAGE_TYPES","PAGES","processedPages","processPageRoutes","appPaths","layoutPaths","defaultPaths","collectAppFiles","APP","mappedDefaultFiles","slotsFromPages","extractSlotsFromAppRoutes","slotsFromDefaults","extractSlotsFromDefaultFiles","combineSlots","result","processAppRoutes","processLayoutRoutes","routeTypesManifest","createRouteTypesManifest","redirects","rewrites","writeRouteTypesManifest","writeValidatorFile","cacheLifeFilePath","writeCacheLifeTypes","cacheLife"],"mappings":"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","ignoreList":[0]}
1
+ {"version":3,"sources":["../../src/cli/next-typegen.ts"],"sourcesContent":["#!/usr/bin/env node\n\nimport { existsSync } from 'fs'\nimport path, { join } from 'path'\nimport { mkdir } from 'fs/promises'\n\nimport loadConfig from '../server/config'\nimport { printAndExit } from '../server/lib/utils'\nimport { PHASE_PRODUCTION_BUILD } from '../shared/lib/constants'\nimport { getProjectDir } from '../lib/get-project-dir'\nimport { findPagesDir } from '../lib/find-pages-dir'\nimport { verifyTypeScriptSetup } from '../lib/verify-typescript-setup'\nimport {\n createPagesMapping,\n collectAppFiles,\n collectPagesFiles,\n processPageRoutes,\n processAppRoutes,\n processLayoutRoutes,\n extractSlotsFromAppRoutes,\n extractSlotsFromDefaultFiles,\n combineSlots,\n type RouteInfo,\n type SlotInfo,\n} from '../build/entries'\nimport { PAGE_TYPES } from '../lib/page-types'\n\nimport {\n createRouteTypesManifest,\n writeRouteTypesManifest,\n writeValidatorFile,\n} from '../server/lib/router-utils/route-types-utils'\nimport { writeCacheLifeTypes } from '../server/lib/router-utils/cache-life-type-utils'\nimport { createValidFileMatcher } from '../server/lib/find-page-file'\nimport { installBindings } from '../build/swc/install-bindings'\n\nexport type NextTypegenOptions = {\n dir?: string\n}\n\nconst nextTypegen = async (\n _options: NextTypegenOptions,\n directory?: string\n) => {\n const baseDir = getProjectDir(directory)\n\n // Check if the provided directory exists\n if (!existsSync(baseDir)) {\n printAndExit(`> No such directory exists as the project root: ${baseDir}`)\n }\n\n const nextConfig = await loadConfig(PHASE_PRODUCTION_BUILD, baseDir)\n await installBindings(nextConfig.experimental?.useWasmBinary)\n const distDir = join(baseDir, nextConfig.distDir)\n const { pagesDir, appDir } = findPagesDir(baseDir)\n\n await verifyTypeScriptSetup({\n dir: baseDir,\n distDir: nextConfig.distDir,\n typeCheckPreflight: false,\n tsconfigPath: nextConfig.typescript.tsconfigPath,\n disableStaticImages: nextConfig.images.disableStaticImages,\n hasAppDir: !!appDir,\n hasPagesDir: !!pagesDir,\n isolatedDevBuild: nextConfig.experimental.isolatedDevBuild,\n appDir: appDir || undefined,\n pagesDir: pagesDir || undefined,\n })\n\n console.log('Generating route types...')\n\n const routeTypesFilePath = join(distDir, 'types', 'routes.d.ts')\n const validatorFilePath = join(distDir, 'types', 'validator.ts')\n await mkdir(join(distDir, 'types'), { recursive: true })\n\n let pageRoutes: RouteInfo[] = []\n let appRoutes: RouteInfo[] = []\n let appRouteHandlers: RouteInfo[] = []\n let layoutRoutes: RouteInfo[] = []\n let slots: SlotInfo[] = []\n\n let pageApiRoutes: RouteInfo[] = []\n\n let mappedPages: { [page: string]: string } = {}\n let mappedAppPages: { [page: string]: string } = {}\n let mappedAppLayouts: { [page: string]: string } = {}\n\n // Helper function to reduce createPagesMapping duplication\n const createMapping = (pagePaths: string[], pagesType: any) =>\n createPagesMapping({\n pagePaths,\n isDev: false,\n pagesType,\n pageExtensions: nextConfig.pageExtensions,\n pagesDir,\n appDir,\n appDirOnly: !!appDir && !pagesDir,\n })\n\n const validFileMatcher = createValidFileMatcher(\n nextConfig.pageExtensions,\n appDir\n )\n\n const isSrcDir = path\n .relative(baseDir, pagesDir || appDir || '')\n .startsWith('src')\n\n // Build pages routes\n if (pagesDir) {\n const pagePaths = await collectPagesFiles(pagesDir, validFileMatcher)\n\n mappedPages = await createMapping(pagePaths, PAGE_TYPES.PAGES)\n\n // Process pages routes\n const processedPages = processPageRoutes(mappedPages, baseDir, isSrcDir)\n pageRoutes = processedPages.pageRoutes\n pageApiRoutes = processedPages.pageApiRoutes\n }\n\n // Build app routes\n if (appDir) {\n // Collect app pages, layouts, and default files in a single directory traversal\n const { appPaths, layoutPaths, defaultPaths } = await collectAppFiles(\n appDir,\n validFileMatcher\n )\n\n mappedAppPages = await createMapping(appPaths, PAGE_TYPES.APP)\n mappedAppLayouts = await createMapping(layoutPaths, PAGE_TYPES.APP)\n const mappedDefaultFiles = await createMapping(defaultPaths, PAGE_TYPES.APP)\n\n // Process app routes and extract slots from both pages and default files\n const slotsFromPages = extractSlotsFromAppRoutes(mappedAppPages)\n const slotsFromDefaults = extractSlotsFromDefaultFiles(mappedDefaultFiles)\n\n // Combine slots and deduplicate using Set\n slots = combineSlots(slotsFromPages, slotsFromDefaults)\n\n const result = processAppRoutes(\n mappedAppPages,\n validFileMatcher,\n baseDir,\n isSrcDir\n )\n appRoutes = result.appRoutes\n appRouteHandlers = result.appRouteHandlers\n\n // Process layout routes\n layoutRoutes = processLayoutRoutes(mappedAppLayouts, baseDir, isSrcDir)\n }\n\n const routeTypesManifest = await createRouteTypesManifest({\n dir: baseDir,\n pageRoutes,\n appRoutes,\n appRouteHandlers,\n pageApiRoutes,\n layoutRoutes,\n slots,\n redirects: nextConfig.redirects,\n rewrites: nextConfig.rewrites,\n validatorFilePath,\n })\n\n await writeRouteTypesManifest(\n routeTypesManifest,\n routeTypesFilePath,\n nextConfig\n )\n\n await writeValidatorFile(\n routeTypesManifest,\n validatorFilePath,\n Boolean(nextConfig.experimental.strictRouteTypes)\n )\n\n // Generate cache-life types if cacheLife config exists\n const cacheLifeFilePath = join(distDir, 'types', 'cache-life.d.ts')\n writeCacheLifeTypes(nextConfig.cacheLife, cacheLifeFilePath)\n\n console.log('✓ Types generated successfully')\n}\n\nexport { nextTypegen }\n"],"names":["nextTypegen","_options","directory","nextConfig","baseDir","getProjectDir","existsSync","printAndExit","loadConfig","PHASE_PRODUCTION_BUILD","installBindings","experimental","useWasmBinary","distDir","join","pagesDir","appDir","findPagesDir","verifyTypeScriptSetup","dir","typeCheckPreflight","tsconfigPath","typescript","disableStaticImages","images","hasAppDir","hasPagesDir","isolatedDevBuild","undefined","console","log","routeTypesFilePath","validatorFilePath","mkdir","recursive","pageRoutes","appRoutes","appRouteHandlers","layoutRoutes","slots","pageApiRoutes","mappedPages","mappedAppPages","mappedAppLayouts","createMapping","pagePaths","pagesType","createPagesMapping","isDev","pageExtensions","appDirOnly","validFileMatcher","createValidFileMatcher","isSrcDir","path","relative","startsWith","collectPagesFiles","PAGE_TYPES","PAGES","processedPages","processPageRoutes","appPaths","layoutPaths","defaultPaths","collectAppFiles","APP","mappedDefaultFiles","slotsFromPages","extractSlotsFromAppRoutes","slotsFromDefaults","extractSlotsFromDefaultFiles","combineSlots","result","processAppRoutes","processLayoutRoutes","routeTypesManifest","createRouteTypesManifest","redirects","rewrites","writeRouteTypesManifest","writeValidatorFile","Boolean","strictRouteTypes","cacheLifeFilePath","writeCacheLifeTypes","cacheLife"],"mappings":"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","ignoreList":[0]}
@@ -15,7 +15,7 @@ Object.defineProperty(exports, "appBootstrap", {
15
15
  });
16
16
  const _assetprefix = require("./asset-prefix");
17
17
  const _setattributesfromprops = require("./set-attributes-from-props");
18
- const version = "16.1.1-canary.7";
18
+ const version = "16.1.1-canary.9";
19
19
  window.next = {
20
20
  version,
21
21
  appDir: true
@@ -60,7 +60,7 @@ const _hooksclientcontextsharedruntime = require("../shared/lib/hooks-client-con
60
60
  const _onrecoverableerror = require("./react-client-callbacks/on-recoverable-error");
61
61
  const _tracer = /*#__PURE__*/ _interop_require_default._(require("./tracing/tracer"));
62
62
  const _isnextroutererror = require("./components/is-next-router-error");
63
- const version = "16.1.1-canary.7";
63
+ const version = "16.1.1-canary.9";
64
64
  let router;
65
65
  const emitter = (0, _mitt.default)();
66
66
  const looseToArray = (input)=>[].slice.call(input);
@@ -305,7 +305,7 @@ export default async function build(dir, experimentalAnalyze = false, reactProdu
305
305
  try {
306
306
  const nextBuildSpan = trace('next-build', undefined, {
307
307
  buildMode: experimentalBuildMode,
308
- version: "16.1.1-canary.7"
308
+ version: "16.1.1-canary.9"
309
309
  });
310
310
  NextBuildContext.nextBuildSpan = nextBuildSpan;
311
311
  NextBuildContext.dir = dir;
@@ -709,7 +709,7 @@ export default async function build(dir, experimentalAnalyze = false, reactProdu
709
709
  validatorFilePath
710
710
  });
711
711
  await writeRouteTypesManifest(routeTypesManifest, routeTypesFilePath, config);
712
- await writeValidatorFile(routeTypesManifest, validatorFilePath);
712
+ await writeValidatorFile(routeTypesManifest, validatorFilePath, Boolean(config.experimental.strictRouteTypes));
713
713
  });
714
714
  // Turbopack already handles conflicting app and page routes.
715
715
  if (bundler !== Bundler.Turbopack) {
@@ -803,7 +803,7 @@ export default async function build(dir, experimentalAnalyze = false, reactProdu
803
803
  // Files outside of the distDir can be "type": "module"
804
804
  await writeFileUtf8(path.join(distDir, 'package.json'), '{"type": "commonjs"}');
805
805
  // These are written to distDir, so they need to come after creating and cleaning distDr.
806
- await recordFrameworkVersion("16.1.1-canary.7");
806
+ await recordFrameworkVersion("16.1.1-canary.9");
807
807
  await updateBuildDiagnostics({
808
808
  buildStage: 'start'
809
809
  });
@@ -2478,7 +2478,7 @@ export default async function build(dir, experimentalAnalyze = false, reactProdu
2478
2478
  configOutDir: path.join(dir, configOutDir),
2479
2479
  staticPages,
2480
2480
  serverPropsPages,
2481
- nextVersion: "16.1.1-canary.7",
2481
+ nextVersion: "16.1.1-canary.9",
2482
2482
  tracingRoot: outputFileTracingRoot,
2483
2483
  hasNodeMiddleware,
2484
2484
  hasInstrumentationHook,