vinext 1.0.0-beta.8 → 1.0.0

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 (813) hide show
  1. package/README.md +158 -84
  2. package/THIRD_PARTY_LICENSES.md +25 -0
  3. package/dist/_virtual/_rolldown/runtime.js +25 -0
  4. package/dist/build/action-owner-manifest.d.ts +8 -9
  5. package/dist/build/action-owner-manifest.js +23 -5
  6. package/dist/build/assets-ignore.d.ts +3 -4
  7. package/dist/build/clean-output.d.ts +2 -3
  8. package/dist/build/client-build-config.d.ts +40 -12
  9. package/dist/build/client-build-config.js +76 -6
  10. package/dist/build/css-url-assets.d.ts +4 -5
  11. package/dist/build/css-url-assets.js +5 -2
  12. package/dist/build/google-fonts/build-url.d.ts +3 -4
  13. package/dist/build/google-fonts/fallback-metrics.d.ts +3 -4
  14. package/dist/build/google-fonts/find-font-files-in-css.d.ts +2 -3
  15. package/dist/build/google-fonts/font-metadata.d.ts +2 -3
  16. package/dist/build/google-fonts/get-axes.d.ts +2 -3
  17. package/dist/build/google-fonts/sort-variants.d.ts +2 -3
  18. package/dist/build/google-fonts/validate.d.ts +2 -3
  19. package/dist/build/google-fonts/validate.js +8 -4
  20. package/dist/build/inject-pregenerated-paths.d.ts +2 -3
  21. package/dist/build/inject-pregenerated-paths.js +16 -14
  22. package/dist/build/inline-css.d.ts +3 -4
  23. package/dist/build/layout-classification-types.d.ts +4 -5
  24. package/dist/build/layout-classification.d.ts +7 -8
  25. package/dist/build/lifecycle.d.ts +42 -0
  26. package/dist/build/lifecycle.js +253 -0
  27. package/dist/build/module-dependency-cache.d.ts +2 -3
  28. package/dist/build/next-client-runtime-manifests.d.ts +4 -5
  29. package/dist/build/nitro-route-rules.d.ts +6 -7
  30. package/dist/build/nitro-route-rules.js +1 -1
  31. package/dist/build/pages-client-assets-module.d.ts +4 -8
  32. package/dist/build/pages-client-assets-module.js +1 -13
  33. package/dist/build/precompress.d.ts +2 -3
  34. package/dist/build/prerender-cloudflare-loader.d.ts +4 -0
  35. package/dist/build/prerender-cloudflare-loader.js +49 -0
  36. package/dist/build/prerender-paths.d.ts +82 -8
  37. package/dist/build/prerender-paths.js +814 -99
  38. package/dist/build/prerender-phase.d.ts +2 -3
  39. package/dist/build/prerender-server-entry.js +11 -3
  40. package/dist/build/prerender-server-pool.d.ts +9 -6
  41. package/dist/build/prerender-server-pool.js +8 -5
  42. package/dist/build/prerender.d.ts +67 -15
  43. package/dist/build/prerender.js +177 -64
  44. package/dist/build/preview-credentials.d.ts +5 -6
  45. package/dist/build/preview-credentials.js +2 -2
  46. package/dist/build/public-dir-conflict.d.ts +5 -6
  47. package/dist/build/public-dir-conflict.js +2 -1
  48. package/dist/build/report.d.ts +38 -19
  49. package/dist/build/report.js +73 -4
  50. package/dist/build/route-classification-injector.d.ts +2 -3
  51. package/dist/build/route-classification-manifest.d.ts +5 -6
  52. package/dist/build/run-prerender.d.ts +11 -9
  53. package/dist/build/run-prerender.js +25 -16
  54. package/dist/build/server-entry.d.ts +4 -0
  55. package/dist/build/server-entry.js +28 -0
  56. package/dist/build/server-manifest.d.ts +8 -3
  57. package/dist/build/server-manifest.js +14 -2
  58. package/dist/build/ssr-manifest.d.ts +5 -6
  59. package/dist/build/standalone.d.ts +2 -3
  60. package/dist/build/standalone.js +2 -2
  61. package/dist/build/static-export.d.ts +7 -8
  62. package/dist/cache/cache-adapters-virtual.d.ts +95 -9
  63. package/dist/cache/cache-adapters-virtual.js +58 -6
  64. package/dist/check.d.ts +11 -10
  65. package/dist/check.js +467 -176
  66. package/dist/cli-args.d.ts +7 -16
  67. package/dist/cli-args.js +2 -45
  68. package/dist/cli-dev-config.d.ts +10 -7
  69. package/dist/cli-dev-config.js +160 -3
  70. package/dist/cli.js +124 -435
  71. package/dist/client/app-nav-failure-handler.d.ts +6 -7
  72. package/dist/client/client-rewrite-matcher.d.ts +2 -3
  73. package/dist/client/client-rewrites.d.ts +4 -5
  74. package/dist/client/dev-error-overlay-store.d.ts +13 -14
  75. package/dist/client/dev-error-overlay.d.ts +15 -15
  76. package/dist/client/dev-error-overlay.js +8 -5
  77. package/dist/client/instrumentation-client-inject.d.ts +3 -4
  78. package/dist/client/instrumentation-client-state.d.ts +5 -6
  79. package/dist/client/instrumentation-client.d.ts +3 -4
  80. package/dist/client/navigation-runtime.d.ts +21 -17
  81. package/dist/client/navigation-runtime.js +2 -1
  82. package/dist/client/pages-router-link-navigation.d.ts +4 -5
  83. package/dist/client/react-instance.d.ts +2 -3
  84. package/dist/client/validate-module-path.d.ts +2 -3
  85. package/dist/client/vinext-next-data.d.ts +7 -8
  86. package/dist/client/window-next.d.ts +4 -5
  87. package/dist/config/config-matchers.d.ts +16 -16
  88. package/dist/config/config-matchers.js +10 -7
  89. package/dist/config/dotenv.d.ts +3 -4
  90. package/dist/config/dotenv.js +2 -1
  91. package/dist/config/next-config.d.ts +31 -27
  92. package/dist/config/next-config.js +163 -16
  93. package/dist/config/prerender.d.ts +20 -16
  94. package/dist/config/prerender.js +10 -4
  95. package/dist/config/request-context.d.ts +5 -6
  96. package/dist/config/server-external-packages.d.ts +14 -3
  97. package/dist/config/server-external-packages.js +37 -3
  98. package/dist/config/tsconfig-paths.d.ts +3 -4
  99. package/dist/deps/.pnpm/ignore@5.3.2/deps/ignore/index.js +189 -0
  100. package/dist/deps/.pnpm/ua-parser-js@1.0.35/deps/ua-parser-js/src/ua-parser.js +1057 -0
  101. package/dist/entries/app-browser-entry.d.ts +5 -6
  102. package/dist/entries/app-browser-entry.js +3 -2
  103. package/dist/entries/app-rsc-entry.d.ts +12 -3
  104. package/dist/entries/app-rsc-entry.js +530 -55
  105. package/dist/entries/app-rsc-manifest.d.ts +4 -3
  106. package/dist/entries/app-rsc-manifest.js +27 -8
  107. package/dist/entries/app-ssr-entry.d.ts +2 -3
  108. package/dist/entries/app-ssr-entry.js +8 -1
  109. package/dist/entries/pages-client-entry.d.ts +3 -3
  110. package/dist/entries/pages-client-entry.js +17 -2
  111. package/dist/entries/pages-server-entry.d.ts +13 -3
  112. package/dist/entries/pages-server-entry.js +237 -33
  113. package/dist/entries/runtime-entry-module.d.ts +4 -5
  114. package/dist/image/image-adapters-virtual.d.ts +4 -5
  115. package/dist/index.d.ts +10 -11
  116. package/dist/index.js +832 -199
  117. package/dist/init-cloudflare.d.ts +27 -16
  118. package/dist/init-cloudflare.js +754 -113
  119. package/dist/init-platform.d.ts +26 -22
  120. package/dist/init-platform.js +85 -29
  121. package/dist/init.d.ts +19 -13
  122. package/dist/init.js +123 -41
  123. package/dist/plugins/action-owner-manifest.d.ts +3 -4
  124. package/dist/plugins/action-owner-manifest.js +10 -3
  125. package/dist/plugins/ast-scope.d.ts +10 -11
  126. package/dist/plugins/ast-scope.js +10 -22
  127. package/dist/plugins/ast-utils.d.ts +16 -29
  128. package/dist/plugins/ast-utils.js +27 -71
  129. package/dist/plugins/async-hooks-stub.d.ts +2 -3
  130. package/dist/plugins/client-reference-dedup.d.ts +4 -5
  131. package/dist/plugins/css-data-url.d.ts +2 -3
  132. package/dist/plugins/css-module-imports.d.ts +3 -4
  133. package/dist/plugins/css-module-imports.js +1 -1
  134. package/dist/plugins/dynamic-preload-metadata.d.ts +3 -4
  135. package/dist/plugins/dynamic-preload-metadata.js +55 -154
  136. package/dist/plugins/environment.d.ts +2 -3
  137. package/dist/plugins/extensionless-dynamic-import.d.ts +2 -3
  138. package/dist/plugins/extensionless-dynamic-import.js +6 -10
  139. package/dist/plugins/fonts.d.ts +10 -11
  140. package/dist/plugins/fonts.js +4 -3
  141. package/dist/plugins/ignore-dynamic-requests.d.ts +3 -4
  142. package/dist/plugins/ignore-dynamic-requests.js +60 -89
  143. package/dist/plugins/import-meta-url.d.ts +6 -7
  144. package/dist/plugins/import-meta-url.js +31 -43
  145. package/dist/plugins/instrumentation-client.d.ts +3 -3
  146. package/dist/plugins/instrumentation-client.js +46 -10
  147. package/dist/plugins/middleware-export-validation.d.ts +3 -4
  148. package/dist/plugins/middleware-export-validation.js +3 -3
  149. package/dist/plugins/middleware-server-only.d.ts +2 -3
  150. package/dist/plugins/og-asset-ownership.d.ts +3 -4
  151. package/dist/plugins/og-assets.d.ts +4 -5
  152. package/dist/plugins/og-assets.js +32 -13
  153. package/dist/plugins/og-harfbuzz.d.ts +24 -0
  154. package/dist/plugins/og-harfbuzz.js +260 -0
  155. package/dist/plugins/optimize-imports.d.ts +7 -7
  156. package/dist/plugins/optimize-imports.js +32 -44
  157. package/dist/plugins/pages-node-externals.d.ts +2 -3
  158. package/dist/plugins/pages-node-externals.js +6 -11
  159. package/dist/plugins/postcss.d.ts +8 -4
  160. package/dist/plugins/postcss.js +1 -1
  161. package/dist/plugins/remove-console.d.ts +2 -3
  162. package/dist/plugins/remove-console.js +0 -1
  163. package/dist/plugins/require-condition-resolution.d.ts +3 -4
  164. package/dist/plugins/require-condition-resolution.js +17 -18
  165. package/dist/plugins/require-context.d.ts +2 -3
  166. package/dist/plugins/require-context.js +13 -21
  167. package/dist/plugins/rsc-client-reference-loaders.d.ts +2 -3
  168. package/dist/plugins/rsc-client-shim-excludes.d.ts +4 -5
  169. package/dist/plugins/rsc-client-shim-excludes.js +1 -0
  170. package/dist/plugins/rsc-reference-validation-normalizer.d.ts +2 -3
  171. package/dist/plugins/sass.d.ts +7 -8
  172. package/dist/plugins/sass.js +7 -4
  173. package/dist/plugins/server-externals-manifest.d.ts +2 -3
  174. package/dist/plugins/strip-server-exports.d.ts +5 -6
  175. package/dist/plugins/strip-server-exports.js +1 -1
  176. package/dist/plugins/styled-jsx.d.ts +2 -3
  177. package/dist/plugins/styled-jsx.js +7 -7
  178. package/dist/plugins/transform-cache.d.ts +2 -3
  179. package/dist/plugins/transform-result.d.ts +3 -4
  180. package/dist/plugins/transitive-externals.d.ts +2 -3
  181. package/dist/plugins/typeof-window.d.ts +6 -7
  182. package/dist/plugins/typeof-window.js +30 -31
  183. package/dist/plugins/use-cache-callable.d.ts +2 -5
  184. package/dist/plugins/use-cache-callable.js +43 -22
  185. package/dist/plugins/wasm-module-import.d.ts +2 -3
  186. package/dist/plugins/worker-image-imports.d.ts +2 -3
  187. package/dist/plugins/worker-image-imports.js +6 -8
  188. package/dist/routing/app-route-graph.d.ts +19 -19
  189. package/dist/routing/app-route-graph.js +3 -2
  190. package/dist/routing/app-router.d.ts +20 -5
  191. package/dist/routing/app-router.js +28 -2
  192. package/dist/routing/file-matcher.d.ts +9 -10
  193. package/dist/routing/pages-router.d.ts +6 -6
  194. package/dist/routing/pages-router.js +1 -1
  195. package/dist/routing/route-matching.d.ts +4 -5
  196. package/dist/routing/route-matching.js +4 -2
  197. package/dist/routing/route-pattern.d.ts +13 -14
  198. package/dist/routing/route-trie.d.ts +5 -6
  199. package/dist/routing/route-validation.d.ts +3 -4
  200. package/dist/routing/route-validation.js +12 -11
  201. package/dist/routing/utils.d.ts +13 -14
  202. package/dist/server/accept-encoding.d.ts +9 -10
  203. package/dist/server/api-handler.d.ts +2 -3
  204. package/dist/server/api-handler.js +9 -6
  205. package/dist/server/app-action-forwarding.d.ts +3 -4
  206. package/dist/server/app-action-forwarding.js +1 -1
  207. package/dist/server/app-action-request.d.ts +2 -3
  208. package/dist/server/app-bfcache-id.d.ts +3 -4
  209. package/dist/server/app-bfcache-identity.d.ts +8 -9
  210. package/dist/server/app-browser-action-result.d.ts +15 -16
  211. package/dist/server/app-browser-client-reuse-manifest.d.ts +2 -3
  212. package/dist/server/app-browser-entry.js +121 -40
  213. package/dist/server/app-browser-error.d.ts +5 -6
  214. package/dist/server/app-browser-error.js +9 -3
  215. package/dist/server/app-browser-history-controller.d.ts +4 -5
  216. package/dist/server/app-browser-hydration.d.ts +16 -6
  217. package/dist/server/app-browser-hydration.js +14 -1
  218. package/dist/server/app-browser-interception-context.d.ts +3 -4
  219. package/dist/server/app-browser-mpa-navigation.d.ts +4 -5
  220. package/dist/server/app-browser-navigation-abort.d.ts +3 -4
  221. package/dist/server/app-browser-navigation-controller.d.ts +8 -8
  222. package/dist/server/app-browser-navigation-controller.js +9 -5
  223. package/dist/server/app-browser-navigation-response.d.ts +2 -3
  224. package/dist/server/app-browser-popstate.d.ts +4 -5
  225. package/dist/server/app-browser-prefetch-response.d.ts +5 -6
  226. package/dist/server/app-browser-rsc-redirect.d.ts +4 -5
  227. package/dist/server/app-browser-server-action-client.d.ts +7 -6
  228. package/dist/server/app-browser-server-action-client.js +9 -5
  229. package/dist/server/app-browser-server-action-navigation.d.ts +2 -3
  230. package/dist/server/app-browser-state.d.ts +17 -17
  231. package/dist/server/app-browser-state.js +7 -3
  232. package/dist/server/app-browser-stream.d.ts +4 -5
  233. package/dist/server/app-browser-stream.js +8 -6
  234. package/dist/server/app-browser-supplemental-refresh.d.ts +11 -12
  235. package/dist/server/app-browser-visible-commit.d.ts +6 -7
  236. package/dist/server/app-browser-visible-commit.js +1 -1
  237. package/dist/server/app-client-reference-preloader.d.ts +2 -3
  238. package/dist/server/app-elements-wire-key.d.ts +25 -0
  239. package/dist/server/app-elements-wire-key.js +69 -0
  240. package/dist/server/app-elements-wire.d.ts +34 -53
  241. package/dist/server/app-elements-wire.js +4 -75
  242. package/dist/server/app-elements.d.ts +5 -5
  243. package/dist/server/app-elements.js +1 -1
  244. package/dist/server/app-fallback-renderer.d.ts +4 -4
  245. package/dist/server/app-fallback-renderer.js +6 -6
  246. package/dist/server/app-fetch-tracing.d.ts +15 -0
  247. package/dist/server/app-fetch-tracing.js +38 -0
  248. package/dist/server/app-history-state.d.ts +26 -27
  249. package/dist/server/app-history-state.js +19 -11
  250. package/dist/server/app-hook-warning-suppression.d.ts +2 -3
  251. package/dist/server/app-hydration-cache-publication.d.ts +3 -4
  252. package/dist/server/app-inline-css-client.d.ts +3 -4
  253. package/dist/server/app-interception-context-header.d.ts +2 -3
  254. package/dist/server/app-layout-param-observation.d.ts +7 -8
  255. package/dist/server/app-metadata-tracing.d.ts +12 -0
  256. package/dist/server/app-metadata-tracing.js +17 -0
  257. package/dist/server/app-middleware.d.ts +15 -7
  258. package/dist/server/app-middleware.js +30 -5
  259. package/dist/server/app-mounted-slots-header.d.ts +2 -3
  260. package/dist/server/app-mounted-slots-header.js +2 -2
  261. package/dist/server/app-optimistic-routing.d.ts +14 -10
  262. package/dist/server/app-optimistic-routing.js +16 -3
  263. package/dist/server/app-page-boundary-render.d.ts +6 -6
  264. package/dist/server/app-page-boundary-render.js +10 -4
  265. package/dist/server/app-page-boundary.d.ts +9 -10
  266. package/dist/server/app-page-boundary.js +2 -1
  267. package/dist/server/app-page-cache-finalizer.d.ts +32 -8
  268. package/dist/server/app-page-cache-finalizer.js +118 -14
  269. package/dist/server/app-page-cache-render.d.ts +8 -5
  270. package/dist/server/app-page-cache-render.js +22 -5
  271. package/dist/server/app-page-cache.d.ts +28 -9
  272. package/dist/server/app-page-cache.js +96 -25
  273. package/dist/server/app-page-dispatch.d.ts +36 -12
  274. package/dist/server/app-page-dispatch.js +188 -63
  275. package/dist/server/app-page-element-builder.d.ts +13 -11
  276. package/dist/server/app-page-element-builder.js +104 -61
  277. package/dist/server/app-page-execution.d.ts +14 -14
  278. package/dist/server/app-page-execution.js +12 -8
  279. package/dist/server/app-page-head.d.ts +19 -16
  280. package/dist/server/app-page-head.js +25 -25
  281. package/dist/server/app-page-http-access-fallback-metadata.d.ts +6 -5
  282. package/dist/server/app-page-http-access-fallback-metadata.js +9 -2
  283. package/dist/server/app-page-method.d.ts +5 -11
  284. package/dist/server/app-page-method.js +2 -9
  285. package/dist/server/app-page-params.d.ts +5 -6
  286. package/dist/server/app-page-ppr-runtime.d.ts +2 -2
  287. package/dist/server/app-page-probe.d.ts +5 -6
  288. package/dist/server/app-page-probe.js +5 -4
  289. package/dist/server/app-page-render-identity.d.ts +4 -5
  290. package/dist/server/app-page-render-observation.d.ts +8 -9
  291. package/dist/server/app-page-render-observation.js +1 -1
  292. package/dist/server/app-page-render.d.ts +42 -6
  293. package/dist/server/app-page-render.js +192 -28
  294. package/dist/server/app-page-request.d.ts +10 -9
  295. package/dist/server/app-page-request.js +16 -12
  296. package/dist/server/app-page-response.d.ts +20 -9
  297. package/dist/server/app-page-response.js +31 -13
  298. package/dist/server/app-page-route-wiring.d.ts +15 -15
  299. package/dist/server/app-page-route-wiring.js +31 -24
  300. package/dist/server/app-page-search-params-observation.d.ts +26 -5
  301. package/dist/server/app-page-search-params-observation.js +42 -6
  302. package/dist/server/app-page-segment-plan.d.ts +2 -3
  303. package/dist/server/app-page-segment-state.d.ts +11 -12
  304. package/dist/server/app-page-stream.d.ts +27 -11
  305. package/dist/server/app-page-stream.js +35 -6
  306. package/dist/server/app-page-tracing.d.ts +33 -0
  307. package/dist/server/app-page-tracing.js +49 -0
  308. package/dist/server/app-pages-bridge.d.ts +6 -6
  309. package/dist/server/app-pages-bridge.js +19 -4
  310. package/dist/server/app-post-middleware-context.d.ts +2 -3
  311. package/dist/server/app-ppr-fallback-shell-render.d.ts +3 -4
  312. package/dist/server/app-ppr-fallback-shell-render.js +3 -2
  313. package/dist/server/app-ppr-fallback-shell.d.ts +6 -7
  314. package/dist/server/app-prerender-endpoints.d.ts +5 -5
  315. package/dist/server/app-prerender-endpoints.js +26 -12
  316. package/dist/server/app-prerender-static-params.d.ts +15 -7
  317. package/dist/server/app-prerender-static-params.js +33 -11
  318. package/dist/server/app-render-dependency.d.ts +14 -13
  319. package/dist/server/app-render-dependency.js +5 -1
  320. package/dist/server/app-request-context.d.ts +3 -4
  321. package/dist/server/app-request-stage-context.d.ts +5 -0
  322. package/dist/server/app-request-stage-context.js +11 -0
  323. package/dist/server/app-request-stage-dispatch.d.ts +25 -0
  324. package/dist/server/app-request-stage-dispatch.js +54 -0
  325. package/dist/server/app-request-stage-independent-entry.d.ts +8 -0
  326. package/dist/server/app-request-stage-independent-entry.js +115 -0
  327. package/dist/server/app-response-header-provenance.d.ts +13 -7
  328. package/dist/server/app-response-header-provenance.js +34 -1
  329. package/dist/server/app-response-stage-entry.d.ts +9 -0
  330. package/dist/server/app-response-stage-entry.js +87 -0
  331. package/dist/server/app-route-handler-cache.d.ts +2 -3
  332. package/dist/server/app-route-handler-cache.js +46 -34
  333. package/dist/server/app-route-handler-dispatch.d.ts +3 -3
  334. package/dist/server/app-route-handler-dispatch.js +75 -57
  335. package/dist/server/app-route-handler-execution.d.ts +18 -13
  336. package/dist/server/app-route-handler-execution.js +189 -25
  337. package/dist/server/app-route-handler-middleware-context.d.ts +8 -0
  338. package/dist/server/app-route-handler-middleware-context.js +15 -0
  339. package/dist/server/app-route-handler-policy.d.ts +22 -10
  340. package/dist/server/app-route-handler-policy.js +19 -4
  341. package/dist/server/app-route-handler-response.d.ts +9 -10
  342. package/dist/server/app-route-handler-response.js +2 -0
  343. package/dist/server/app-route-handler-runtime.d.ts +9 -10
  344. package/dist/server/app-route-handler-runtime.js +20 -16
  345. package/dist/server/app-route-module-loader.d.ts +6 -7
  346. package/dist/server/app-route-request-built-ins.d.ts +3 -4
  347. package/dist/server/app-route-tree-prefetch.d.ts +6 -7
  348. package/dist/server/app-route-tree-prefetch.js +2 -1
  349. package/dist/server/app-router-entry.d.ts +2 -0
  350. package/dist/server/app-router-entry.js +76 -12
  351. package/dist/server/app-rsc-cache-busting.d.ts +47 -22
  352. package/dist/server/app-rsc-cache-busting.js +80 -18
  353. package/dist/server/app-rsc-combined-handler.d.ts +9 -0
  354. package/dist/server/app-rsc-combined-handler.js +11 -0
  355. package/dist/server/app-rsc-embedded-chunks.d.ts +6 -7
  356. package/dist/server/app-rsc-error-handler.d.ts +12 -6
  357. package/dist/server/app-rsc-error-handler.js +15 -6
  358. package/dist/server/app-rsc-errors.d.ts +12 -9
  359. package/dist/server/app-rsc-errors.js +15 -13
  360. package/dist/server/app-rsc-handler.d.ts +33 -6
  361. package/dist/server/app-rsc-handler.js +498 -83
  362. package/dist/server/app-rsc-redirect-flight.d.ts +4 -5
  363. package/dist/server/app-rsc-render-mode.d.ts +8 -9
  364. package/dist/server/app-rsc-request-normalization.d.ts +3 -3
  365. package/dist/server/app-rsc-request-normalization.js +2 -1
  366. package/dist/server/app-rsc-response-finalizer.d.ts +8 -5
  367. package/dist/server/app-rsc-response-finalizer.js +24 -7
  368. package/dist/server/app-rsc-response-stage.d.ts +6 -0
  369. package/dist/server/app-rsc-response-stage.js +251 -0
  370. package/dist/server/app-rsc-route-matching.d.ts +4 -4
  371. package/dist/server/app-rsc-route-matching.js +4 -2
  372. package/dist/server/app-rsc-state-fingerprint.d.ts +3 -4
  373. package/dist/server/app-rsc-vary.d.ts +16 -0
  374. package/dist/server/app-rsc-vary.js +31 -0
  375. package/dist/server/app-segment-config.d.ts +120 -6
  376. package/dist/server/app-segment-config.js +264 -12
  377. package/dist/server/app-server-action-execution.d.ts +16 -12
  378. package/dist/server/app-server-action-execution.js +88 -35
  379. package/dist/server/app-ssr-entry.d.ts +14 -4
  380. package/dist/server/app-ssr-entry.js +64 -17
  381. package/dist/server/app-ssr-error-meta.d.ts +3 -4
  382. package/dist/server/app-ssr-error-meta.js +2 -1
  383. package/dist/server/app-ssr-router-instance.d.ts +2 -3
  384. package/dist/server/app-ssr-search-params-gate.d.ts +20 -0
  385. package/dist/server/app-ssr-search-params-gate.js +54 -0
  386. package/dist/server/app-ssr-stream.d.ts +13 -9
  387. package/dist/server/app-ssr-stream.js +33 -7
  388. package/dist/server/app-static-generation.d.ts +4 -5
  389. package/dist/server/app-visited-response-cache.d.ts +11 -12
  390. package/dist/server/app-visited-response-cache.js +2 -2
  391. package/dist/server/app-worker-stages.d.ts +112 -0
  392. package/dist/server/app-worker-stages.js +105 -0
  393. package/dist/server/artifact-compatibility.d.ts +11 -12
  394. package/dist/server/before-interactive-head.d.ts +2 -3
  395. package/dist/server/bfcache-identity.d.ts +7 -8
  396. package/dist/server/cache-control.d.ts +39 -11
  397. package/dist/server/cache-control.js +104 -7
  398. package/dist/server/cache-headers.d.ts +3 -4
  399. package/dist/server/cache-proof.d.ts +75 -70
  400. package/dist/server/cache-proof.js +9 -1
  401. package/dist/server/cacheability-limits.d.ts +8 -0
  402. package/dist/server/cacheability-limits.js +9 -0
  403. package/dist/server/cacheability-manifest.d.ts +68 -0
  404. package/dist/server/cacheability-manifest.js +241 -0
  405. package/dist/server/cacheability-request.d.ts +49 -0
  406. package/dist/server/cacheability-request.js +559 -0
  407. package/dist/server/client-reuse-manifest.d.ts +17 -18
  408. package/dist/server/client-reuse-manifest.js +2 -2
  409. package/dist/server/client-trace-metadata.d.ts +9 -6
  410. package/dist/server/client-trace-metadata.js +27 -15
  411. package/dist/server/cloudflare-workers-tracing.d.ts +1 -0
  412. package/dist/server/cloudflare-workers-tracing.js +8 -0
  413. package/dist/server/config-headers.d.ts +19 -5
  414. package/dist/server/config-headers.js +39 -5
  415. package/dist/server/cookie-utils.d.ts +2 -3
  416. package/dist/server/csp.d.ts +5 -6
  417. package/dist/server/default-global-error-module.d.ts +2 -3
  418. package/dist/server/default-global-not-found-module.d.ts +2 -3
  419. package/dist/server/default-not-found-module.d.ts +2 -3
  420. package/dist/server/defer-until-stream-consumed.d.ts +2 -3
  421. package/dist/server/defer-until-stream-consumed.js +2 -1
  422. package/dist/server/dev-initial-server-error.d.ts +3 -4
  423. package/dist/server/dev-initial-server-error.js +2 -1
  424. package/dist/server/dev-lockfile.d.ts +7 -8
  425. package/dist/server/dev-lockfile.js +4 -1
  426. package/dist/server/dev-module-runner.d.ts +2 -3
  427. package/dist/server/dev-origin-check.d.ts +5 -6
  428. package/dist/server/dev-route-files.d.ts +2 -3
  429. package/dist/server/dev-server.d.ts +4 -5
  430. package/dist/server/dev-server.js +130 -61
  431. package/dist/server/dev-stack-sourcemap.d.ts +7 -7
  432. package/dist/server/dev-stack-sourcemap.js +1 -1
  433. package/dist/server/document-initial-head.d.ts +3 -4
  434. package/dist/server/edge-api-runtime.d.ts +4 -5
  435. package/dist/server/fetch-handler.d.ts +3 -2
  436. package/dist/server/fetch-handler.js +3 -18
  437. package/dist/server/file-based-metadata.d.ts +2 -3
  438. package/dist/server/framework-tracer.d.ts +46 -0
  439. package/dist/server/framework-tracer.js +125 -0
  440. package/dist/server/fully-buffered-response.d.ts +11 -0
  441. package/dist/server/fully-buffered-response.js +19 -0
  442. package/dist/server/headers.d.ts +62 -56
  443. package/dist/server/headers.js +33 -20
  444. package/dist/server/html.d.ts +6 -27
  445. package/dist/server/html.js +16 -1
  446. package/dist/server/http-conditional.d.ts +5 -6
  447. package/dist/server/http-date.d.ts +2 -3
  448. package/dist/server/http-error-responses.d.ts +9 -10
  449. package/dist/server/http-range.d.ts +4 -5
  450. package/dist/server/hybrid-route-priority.d.ts +4 -5
  451. package/dist/server/image-optimization.d.ts +20 -21
  452. package/dist/server/implicit-tags.d.ts +3 -4
  453. package/dist/server/instrumentation-runtime.d.ts +17 -21
  454. package/dist/server/instrumentation-runtime.js +26 -8
  455. package/dist/server/instrumentation.d.ts +26 -30
  456. package/dist/server/instrumentation.js +18 -23
  457. package/dist/server/isr-cache.d.ts +28 -27
  458. package/dist/server/isr-cache.js +18 -70
  459. package/dist/server/isr-decision.d.ts +4 -4
  460. package/dist/server/metadata-route-build-data.d.ts +4 -5
  461. package/dist/server/metadata-route-cache-policy.d.ts +2 -3
  462. package/dist/server/metadata-route-response.d.ts +7 -7
  463. package/dist/server/metadata-route-response.js +68 -2
  464. package/dist/server/metadata-routes.d.ts +18 -19
  465. package/dist/server/middleware-matcher-pattern.d.ts +6 -7
  466. package/dist/server/middleware-matcher.d.ts +13 -6
  467. package/dist/server/middleware-matcher.js +22 -1
  468. package/dist/server/middleware-path-to-regexp.d.ts +6 -7
  469. package/dist/server/middleware-path-to-regexp.js +11 -9
  470. package/dist/server/middleware-response-headers.d.ts +3 -4
  471. package/dist/server/middleware-runtime.d.ts +13 -8
  472. package/dist/server/middleware-runtime.js +54 -10
  473. package/dist/server/middleware.d.ts +5 -5
  474. package/dist/server/multi-stage.d.ts +141 -0
  475. package/dist/server/multi-stage.js +8 -0
  476. package/dist/server/navigation-planner.d.ts +26 -26
  477. package/dist/server/navigation-trace.d.ts +11 -12
  478. package/dist/server/next-error-digest.d.ts +4 -5
  479. package/dist/server/normalize-path.d.ts +5 -6
  480. package/dist/server/normalize-path.js +1 -1
  481. package/dist/server/open-redirect.d.ts +2 -3
  482. package/dist/server/opentelemetry-api.d.ts +59 -0
  483. package/dist/server/opentelemetry-api.js +53 -0
  484. package/dist/server/opentelemetry-tracing.d.ts +5 -0
  485. package/dist/server/opentelemetry-tracing.js +83 -0
  486. package/dist/server/operation-token.d.ts +11 -12
  487. package/dist/server/otel-tracer-extension.d.ts +7 -9
  488. package/dist/server/otel-tracer-extension.js +37 -36
  489. package/dist/server/pages-api-route.d.ts +5 -4
  490. package/dist/server/pages-api-route.js +21 -8
  491. package/dist/server/pages-asset-tags.d.ts +6 -6
  492. package/dist/server/pages-asset-tags.js +37 -2
  493. package/dist/server/pages-body-parser-config.d.ts +4 -5
  494. package/dist/server/pages-body-parser-config.js +4 -4
  495. package/dist/server/pages-client-assets.d.ts +11 -5
  496. package/dist/server/pages-data-route.d.ts +11 -12
  497. package/dist/server/pages-data-route.js +1 -1
  498. package/dist/server/pages-default-404.d.ts +3 -4
  499. package/dist/server/pages-dev-hydration.d.ts +9 -4
  500. package/dist/server/pages-dev-hydration.js +19 -7
  501. package/dist/server/pages-dev-module-url.d.ts +3 -4
  502. package/dist/server/pages-dev-stylesheets.d.ts +5 -6
  503. package/dist/server/pages-document-asset-props.d.ts +6 -7
  504. package/dist/server/pages-document-initial-props.d.ts +5 -5
  505. package/dist/server/pages-document-initial-props.js +4 -2
  506. package/dist/server/pages-execution-tracing.d.ts +40 -0
  507. package/dist/server/pages-execution-tracing.js +80 -0
  508. package/dist/server/pages-get-initial-props.d.ts +9 -10
  509. package/dist/server/pages-i18n.d.ts +8 -8
  510. package/dist/server/pages-i18n.js +3 -2
  511. package/dist/server/pages-media-type.d.ts +4 -5
  512. package/dist/server/pages-node-compat.d.ts +11 -10
  513. package/dist/server/pages-node-compat.js +12 -4
  514. package/dist/server/pages-page-data.d.ts +18 -19
  515. package/dist/server/pages-page-data.js +11 -10
  516. package/dist/server/pages-page-handler.d.ts +7 -6
  517. package/dist/server/pages-page-handler.js +98 -47
  518. package/dist/server/pages-page-method.d.ts +2 -3
  519. package/dist/server/pages-page-response.d.ts +14 -10
  520. package/dist/server/pages-page-response.js +49 -31
  521. package/dist/server/pages-preview.d.ts +10 -11
  522. package/dist/server/pages-readiness.d.ts +2 -3
  523. package/dist/server/pages-request-pipeline.d.ts +16 -12
  524. package/dist/server/pages-request-pipeline.js +69 -28
  525. package/dist/server/pages-request-stage-entry.d.ts +23 -0
  526. package/dist/server/pages-request-stage-entry.js +314 -0
  527. package/dist/server/pages-response-stage-entry.d.ts +11 -0
  528. package/dist/server/pages-response-stage-entry.js +106 -0
  529. package/dist/server/pages-response-stage.d.ts +31 -0
  530. package/dist/server/pages-response-stage.js +49 -0
  531. package/dist/server/pages-revalidate.d.ts +3 -4
  532. package/dist/server/pages-revalidate.js +9 -4
  533. package/dist/server/pages-route-data-kind.d.ts +18 -0
  534. package/dist/server/pages-route-data-kind.js +11 -0
  535. package/dist/server/pages-router-entry.d.ts +1 -25
  536. package/dist/server/pages-router-entry.js +48 -114
  537. package/dist/server/pages-serializable-props.d.ts +3 -4
  538. package/dist/server/pregenerated-concrete-paths.d.ts +9 -7
  539. package/dist/server/pregenerated-concrete-paths.js +12 -6
  540. package/dist/server/prerender-cache-life-header.d.ts +3 -4
  541. package/dist/server/prerender-manifest.d.ts +11 -11
  542. package/dist/server/prerender-manifest.js +6 -3
  543. package/dist/server/prerender-route-params.d.ts +16 -9
  544. package/dist/server/prerender-route-params.js +18 -2
  545. package/dist/server/prerender-work-unit-setup.d.ts +4 -4
  546. package/dist/server/prerender-work-unit-setup.js +37 -14
  547. package/dist/server/prod-server.d.ts +12 -9
  548. package/dist/server/prod-server.js +129 -36
  549. package/dist/server/proxy-trust.d.ts +5 -6
  550. package/dist/server/request-log.d.ts +3 -4
  551. package/dist/server/request-pipeline.d.ts +17 -21
  552. package/dist/server/request-pipeline.js +8 -10
  553. package/dist/server/request-stage.d.ts +5 -0
  554. package/dist/server/request-stage.js +7 -0
  555. package/dist/server/request-tracing.d.ts +22 -0
  556. package/dist/server/request-tracing.js +180 -0
  557. package/dist/server/response-stage-cacheability.d.ts +37 -0
  558. package/dist/server/response-stage-cacheability.js +55 -0
  559. package/dist/server/response-stage-policy.d.ts +23 -0
  560. package/dist/server/response-stage-policy.js +89 -0
  561. package/dist/server/response-stage.d.ts +5 -0
  562. package/dist/server/response-stage.js +7 -0
  563. package/dist/server/response-start-tracing.d.ts +14 -0
  564. package/dist/server/response-start-tracing.js +80 -0
  565. package/dist/server/revalidation-host.d.ts +2 -3
  566. package/dist/server/revalidation-host.js +2 -1
  567. package/dist/server/revalidation-request.d.ts +8 -0
  568. package/dist/server/revalidation-request.js +37 -0
  569. package/dist/server/rsc-completion-metadata.d.ts +6 -7
  570. package/dist/server/rsc-stream-hints.d.ts +18 -7
  571. package/dist/server/rsc-stream-hints.js +70 -35
  572. package/dist/server/seed-cache.d.ts +2 -3
  573. package/dist/server/seed-cache.js +8 -7
  574. package/dist/server/server-action-not-found.d.ts +5 -6
  575. package/dist/server/server-globals.d.ts +2 -3
  576. package/dist/server/server-globals.js +13 -0
  577. package/dist/server/skip-cache-proof.d.ts +4 -4
  578. package/dist/server/socket-error-backstop.d.ts +5 -6
  579. package/dist/server/socket-error-backstop.js +1 -1
  580. package/dist/server/static-file-cache.d.ts +5 -6
  581. package/dist/server/static-file-cache.js +9 -7
  582. package/dist/server/static-file-signal.d.ts +16 -0
  583. package/dist/server/static-file-signal.js +82 -0
  584. package/dist/server/static-layout-client-reuse-proof.d.ts +4 -5
  585. package/dist/server/streaming-metadata.d.ts +2 -3
  586. package/dist/server/tracer.d.ts +5 -0
  587. package/dist/server/tracer.js +13 -0
  588. package/dist/server/worker-prerender-discovery.d.ts +18 -0
  589. package/dist/server/worker-prerender-discovery.js +55 -0
  590. package/dist/server/worker-revalidation-context.d.ts +2 -3
  591. package/dist/server/worker-revalidation-context.js +5 -5
  592. package/dist/server/worker-stages.d.ts +43 -0
  593. package/dist/server/worker-stages.js +25 -0
  594. package/dist/server/worker-utils.d.ts +5 -6
  595. package/dist/server/worker-utils.js +4 -4
  596. package/dist/server/workers-tracing.d.ts +17 -0
  597. package/dist/server/workers-tracing.js +27 -0
  598. package/dist/shims/amp.d.ts +3 -4
  599. package/dist/shims/app-router-scroll-state.d.ts +9 -10
  600. package/dist/shims/app-router-scroll.d.ts +4 -5
  601. package/dist/shims/app-router-scroll.js +2 -1
  602. package/dist/shims/app.d.ts +5 -6
  603. package/dist/shims/before-interactive-context.d.ts +5 -6
  604. package/dist/shims/cache-callable-runtime.d.ts +44 -4
  605. package/dist/shims/cache-callable-runtime.js +168 -8
  606. package/dist/shims/cache-for-request.d.ts +2 -3
  607. package/dist/shims/cache-handler.d.ts +33 -20
  608. package/dist/shims/cache-handler.js +61 -2
  609. package/dist/shims/cache-request-state.d.ts +28 -29
  610. package/dist/shims/cache-runtime.d.ts +23 -21
  611. package/dist/shims/cache-runtime.js +239 -121
  612. package/dist/shims/cache.d.ts +15 -15
  613. package/dist/shims/cache.js +25 -13
  614. package/dist/shims/cacheability-classification.d.ts +106 -0
  615. package/dist/shims/cacheability-classification.js +161 -0
  616. package/dist/shims/cdn-cache-state.d.ts +13 -0
  617. package/dist/shims/cdn-cache-state.js +23 -0
  618. package/dist/shims/cdn-cache.d.ts +76 -18
  619. package/dist/shims/cdn-cache.js +40 -39
  620. package/dist/shims/client-hook-error.d.ts +3 -4
  621. package/dist/shims/client-locale.d.ts +2 -3
  622. package/dist/shims/client-page-root.d.ts +24 -0
  623. package/dist/shims/client-page-root.js +121 -0
  624. package/dist/shims/compat-router.d.ts +2 -3
  625. package/dist/shims/config.d.ts +3 -4
  626. package/dist/shims/constants.d.ts +73 -74
  627. package/dist/shims/constants.js +1 -1
  628. package/dist/shims/default-not-found.d.ts +2 -3
  629. package/dist/shims/document.d.ts +9 -9
  630. package/dist/shims/dynamic-preload-chunks.d.ts +2 -3
  631. package/dist/shims/dynamic-preload-chunks.js +17 -13
  632. package/dist/shims/dynamic.d.ts +3 -3
  633. package/dist/shims/error-boundary-navigation.d.ts +3 -4
  634. package/dist/shims/error-boundary.d.ts +17 -18
  635. package/dist/shims/error-boundary.js +17 -11
  636. package/dist/shims/error.d.ts +4 -4
  637. package/dist/shims/error.js +1 -1
  638. package/dist/shims/error.react-server.d.ts +3 -4
  639. package/dist/shims/fetch-cache.d.ts +22 -22
  640. package/dist/shims/fetch-cache.js +50 -20
  641. package/dist/shims/font-google-base.d.ts +9 -9
  642. package/dist/shims/font-google-base.js +2 -1
  643. package/dist/shims/font-local.d.ts +3 -3
  644. package/dist/shims/font-local.js +1 -1
  645. package/dist/shims/font-utils.d.ts +14 -15
  646. package/dist/shims/form.d.ts +2 -2
  647. package/dist/shims/form.js +10 -7
  648. package/dist/shims/hash-scroll.d.ts +5 -6
  649. package/dist/shims/head-state.d.ts +4 -5
  650. package/dist/shims/head.d.ts +16 -16
  651. package/dist/shims/head.js +5 -4
  652. package/dist/shims/headers.d.ts +68 -32
  653. package/dist/shims/headers.js +101 -10
  654. package/dist/shims/i18n-context.d.ts +5 -6
  655. package/dist/shims/i18n-state.d.ts +4 -5
  656. package/dist/shims/image-config.d.ts +5 -6
  657. package/dist/shims/image-config.js +2 -0
  658. package/dist/shims/image.d.ts +5 -5
  659. package/dist/shims/image.js +12 -8
  660. package/dist/shims/internal/als-registry.d.ts +4 -5
  661. package/dist/shims/internal/api-utils.d.ts +3 -4
  662. package/dist/shims/internal/app-page-props-cache-key.d.ts +32 -4
  663. package/dist/shims/internal/app-page-props-cache-key.js +53 -1
  664. package/dist/shims/internal/app-prefetch-fetch-queue.d.ts +5 -6
  665. package/dist/shims/internal/app-prefetch-rsc-request.d.ts +13 -0
  666. package/dist/shims/internal/app-prefetch-rsc-request.js +12 -0
  667. package/dist/shims/internal/app-route-detection.d.ts +2 -2
  668. package/dist/shims/internal/app-route-prefetch-policy.d.ts +5 -6
  669. package/dist/shims/internal/app-route-prefetch-policy.js +1 -0
  670. package/dist/shims/internal/app-router-context.d.ts +9 -10
  671. package/dist/shims/internal/cookie-serialize.d.ts +4 -5
  672. package/dist/shims/internal/format-url-object.d.ts +7 -0
  673. package/dist/shims/internal/format-url-object.js +53 -0
  674. package/dist/shims/internal/hybrid-client-route-owner-direct.d.ts +6 -7
  675. package/dist/shims/internal/hybrid-client-route-owner-direct.js +29 -11
  676. package/dist/shims/internal/hybrid-client-route-owner.d.ts +3 -3
  677. package/dist/shims/internal/hybrid-client-route-owner.js +5 -4
  678. package/dist/shims/internal/interpolate-as.d.ts +5 -6
  679. package/dist/shims/internal/interpolate-as.js +4 -2
  680. package/dist/shims/internal/link-status-registry.d.ts +5 -6
  681. package/dist/shims/internal/make-hanging-promise.d.ts +8 -3
  682. package/dist/shims/internal/make-hanging-promise.js +13 -2
  683. package/dist/shims/internal/navigation-untracked.d.ts +2 -3
  684. package/dist/shims/internal/normalize-router-href.d.ts +15 -0
  685. package/dist/shims/internal/normalize-router-href.js +41 -0
  686. package/dist/shims/internal/pages-data-fetch-dedup.d.ts +8 -9
  687. package/dist/shims/internal/pages-data-target.d.ts +8 -6
  688. package/dist/shims/internal/pages-data-target.js +32 -36
  689. package/dist/shims/internal/pages-data-url.d.ts +4 -5
  690. package/dist/shims/internal/pages-data-url.js +2 -1
  691. package/dist/shims/internal/pages-router-accessor.d.ts +3 -4
  692. package/dist/shims/internal/pages-router-components.d.ts +3 -4
  693. package/dist/shims/internal/route-pattern-for-warning.d.ts +5 -6
  694. package/dist/shims/internal/route-pattern-for-warning.js +3 -3
  695. package/dist/shims/internal/router-context.d.ts +2 -3
  696. package/dist/shims/internal/thenable-well-known-properties.d.ts +10 -0
  697. package/dist/shims/internal/thenable-well-known-properties.js +33 -0
  698. package/dist/shims/internal/utils.d.ts +7 -8
  699. package/dist/shims/internal/work-unit-async-storage.d.ts +12 -11
  700. package/dist/shims/layout-segment-context.d.ts +3 -4
  701. package/dist/shims/link-prefetch.d.ts +9 -10
  702. package/dist/shims/link.d.ts +4 -4
  703. package/dist/shims/link.js +67 -116
  704. package/dist/shims/metadata.d.ts +15 -16
  705. package/dist/shims/metadata.js +40 -36
  706. package/dist/shims/navigation-context-accessors.d.ts +9 -0
  707. package/dist/shims/navigation-context-accessors.js +19 -0
  708. package/dist/shims/navigation-context-state.d.ts +27 -18
  709. package/dist/shims/navigation-errors.d.ts +18 -19
  710. package/dist/shims/navigation-state.d.ts +6 -7
  711. package/dist/shims/navigation.d.ts +80 -68
  712. package/dist/shims/navigation.js +45 -17
  713. package/dist/shims/navigation.react-server.d.ts +9 -9
  714. package/dist/shims/navigation.react-server.js +1 -1
  715. package/dist/shims/offline.d.ts +2 -3
  716. package/dist/shims/og.d.ts +2 -2
  717. package/dist/shims/pages-router-runtime.d.ts +4 -5
  718. package/dist/shims/ppr-fallback-shell.d.ts +13 -14
  719. package/dist/shims/readonly-url-search-params.d.ts +2 -3
  720. package/dist/shims/request-context.d.ts +7 -6
  721. package/dist/shims/root-params.d.ts +14 -15
  722. package/dist/shims/router-state.d.ts +5 -6
  723. package/dist/shims/router-state.js +1 -1
  724. package/dist/shims/router.d.ts +22 -21
  725. package/dist/shims/router.js +339 -164
  726. package/dist/shims/script-nonce-context.d.ts +8 -6
  727. package/dist/shims/script-nonce-context.js +15 -6
  728. package/dist/shims/script.d.ts +4 -4
  729. package/dist/shims/script.js +9 -7
  730. package/dist/shims/search-params-gate.d.ts +35 -0
  731. package/dist/shims/search-params-gate.js +32 -0
  732. package/dist/shims/server.d.ts +19 -51
  733. package/dist/shims/server.js +14 -28
  734. package/dist/shims/slot.d.ts +33 -15
  735. package/dist/shims/slot.js +41 -9
  736. package/dist/shims/streamed-icons.d.ts +3 -4
  737. package/dist/shims/thenable-params.d.ts +5 -7
  738. package/dist/shims/thenable-params.js +3 -24
  739. package/dist/shims/unified-request-context.d.ts +34 -31
  740. package/dist/shims/unified-request-context.js +34 -24
  741. package/dist/shims/unrecognized-action-error.d.ts +3 -4
  742. package/dist/shims/url-safety.d.ts +5 -6
  743. package/dist/shims/url-utils.d.ts +18 -12
  744. package/dist/shims/url-utils.js +10 -1
  745. package/dist/shims/use-merged-ref.d.ts +2 -3
  746. package/dist/shims/user-agent.d.ts +31 -0
  747. package/dist/shims/user-agent.js +16 -0
  748. package/dist/shims/web-vitals.d.ts +2 -2
  749. package/dist/typegen.d.ts +3 -4
  750. package/dist/utils/asset-prefix.d.ts +7 -8
  751. package/dist/utils/base-path.d.ts +5 -6
  752. package/dist/utils/built-asset-url.d.ts +2 -3
  753. package/dist/utils/built-asset-url.js +1 -1
  754. package/dist/utils/cache-control-metadata.d.ts +4 -5
  755. package/dist/utils/client-build-manifest.d.ts +6 -7
  756. package/dist/utils/client-build-manifest.js +2 -1
  757. package/dist/utils/client-entry-manifest.d.ts +6 -7
  758. package/dist/utils/client-runtime-metadata.d.ts +8 -3
  759. package/dist/utils/client-runtime-metadata.js +18 -1
  760. package/dist/utils/commonjs-loader.d.ts +4 -5
  761. package/dist/utils/compare.d.ts +2 -3
  762. package/dist/utils/deployment-id.d.ts +6 -7
  763. package/dist/utils/dev-error-recovery-event.d.ts +2 -3
  764. package/dist/utils/dev-stack-sourcemap-endpoint.d.ts +2 -3
  765. package/dist/utils/domain-locale.d.ts +7 -8
  766. package/dist/utils/encode-cache-tag.d.ts +3 -4
  767. package/dist/utils/error-cause.d.ts +2 -3
  768. package/dist/utils/external-url.d.ts +2 -3
  769. package/dist/utils/has-trailing-comma.d.ts +3 -4
  770. package/dist/utils/hash.d.ts +3 -4
  771. package/dist/utils/html-limited-bots.d.ts +3 -4
  772. package/dist/utils/lazy-chunks.d.ts +8 -9
  773. package/dist/utils/lazy-chunks.js +4 -4
  774. package/dist/utils/manifest-paths.d.ts +5 -6
  775. package/dist/utils/mdx-scan.d.ts +11 -4
  776. package/dist/utils/mdx-scan.js +27 -1
  777. package/dist/utils/middleware-request-headers.d.ts +7 -6
  778. package/dist/utils/middleware-request-headers.js +6 -1
  779. package/dist/utils/navigation-signal.d.ts +3 -3
  780. package/dist/utils/navigation-signal.js +16 -1
  781. package/dist/utils/number.d.ts +2 -3
  782. package/dist/utils/package-name.d.ts +3 -4
  783. package/dist/utils/parse-cookie.d.ts +4 -5
  784. package/dist/utils/path.d.ts +8 -9
  785. package/dist/utils/plugin-options.d.ts +2 -3
  786. package/dist/utils/precompressed-variant.d.ts +3 -4
  787. package/dist/utils/prerender-output-paths.d.ts +9 -10
  788. package/dist/utils/prerender-output-paths.js +16 -9
  789. package/dist/utils/project.d.ts +19 -30
  790. package/dist/utils/project.js +20 -29
  791. package/dist/utils/promise.d.ts +2 -3
  792. package/dist/utils/protocol-headers.d.ts +14 -15
  793. package/dist/utils/public-file-path.d.ts +2 -3
  794. package/dist/utils/public-routes.d.ts +2 -3
  795. package/dist/utils/query.d.ts +14 -9
  796. package/dist/utils/query.js +22 -1
  797. package/dist/utils/react-compiler-support.d.ts +6 -7
  798. package/dist/utils/react-version.d.ts +4 -3
  799. package/dist/utils/react-version.js +19 -1
  800. package/dist/utils/record.d.ts +2 -3
  801. package/dist/utils/redirect-digest.d.ts +3 -4
  802. package/dist/utils/regex-safety.d.ts +4 -5
  803. package/dist/utils/regex.d.ts +2 -3
  804. package/dist/utils/safe-json-file.d.ts +2 -3
  805. package/dist/utils/sorted-array.d.ts +2 -3
  806. package/dist/utils/text-stream.d.ts +3 -4
  807. package/dist/utils/vinext-root.d.ts +2 -3
  808. package/dist/utils/virtual-module.d.ts +3 -4
  809. package/dist/utils/vite-cli-invocation.d.ts +21 -0
  810. package/dist/utils/vite-cli-invocation.js +144 -0
  811. package/dist/utils/vite-version.d.ts +5 -6
  812. package/next-package.json +4 -0
  813. package/package.json +55 -6
@@ -1,6 +1,8 @@
1
1
  import path from "../deps/.pnpm/pathslash@0.1.0/deps/pathslash/dist/index.js";
2
2
  import { createValidFileMatcher, findFileWithExtensions } from "../routing/file-matcher.js";
3
+ import { BLOCKED_PAGES } from "../shims/constants.js";
3
4
  import { VINEXT_PRERENDER_ROUTE_PARAMS_HEADER, VINEXT_PRERENDER_SECRET_HEADER, VINEXT_PRERENDER_SPECULATIVE_HEADER } from "../utils/protocol-headers.js";
5
+ import { appRouteLayoutStaticParamsGroups } from "../routing/app-router.js";
4
6
  import { NEXT_CACHE_TAGS_HEADER, VINEXT_METADATA_ROUTE_CACHE_HEADER, VINEXT_PRERENDER_CACHE_LIFE_HEADER, VINEXT_PRERENDER_METADATA_ROUTES_PATH, VINEXT_PRERENDER_RENDER_ERROR_HEADER } from "../server/headers.js";
5
7
  import { classifyAppRoute, classifyPagesRoute, getAppRouteRenderEntryPath } from "./report.js";
6
8
  import { resolveClientStaleTimeSeconds } from "../utils/cache-control-metadata.js";
@@ -8,12 +10,11 @@ import { NoOpCacheHandler, getCacheHandler, setCacheHandler } from "../shims/cac
8
10
  import { headersContextFromRequest, runWithHeadersContext } from "../shims/headers.js";
9
11
  import { _consumeRequestScopedCacheLife } from "../shims/cache-request-state.js";
10
12
  import { normalizeStaticPathsEntry } from "../routing/route-pattern.js";
11
- import { BLOCKED_PAGES } from "../shims/constants.js";
13
+ import { readPrerenderSecret } from "./server-manifest.js";
12
14
  import { buildPregeneratedConcretePathTable } from "../server/prerender-manifest.js";
13
15
  import { concatUint8Arrays, decodeRscEmbeddedChunk } from "../server/app-rsc-embedded-chunks.js";
14
16
  import { navigationRuntimeRscBootstrapExpression } from "../server/app-ssr-stream.js";
15
17
  import { encodePrerenderRouteParams, serializePrerenderRouteParamsHeader } from "../server/prerender-route-params.js";
16
- import { readPrerenderSecret } from "./server-manifest.js";
17
18
  import { createAppPprFallbackShells, markAppPprDynamicFallbackShellHtml } from "../server/app-ppr-fallback-shell.js";
18
19
  import { getAppRouteOutputPath, getOutputPath, getRscOutputPath } from "../utils/prerender-output-paths.js";
19
20
  import { startProdServer } from "../server/prod-server.js";
@@ -25,7 +26,7 @@ import fs from "node:fs";
25
26
  import os from "node:os";
26
27
  //#region src/build/prerender.ts
27
28
  /**
28
- * Prerendering phase for vinext build.
29
+ * Prerendering phase for vite build.
29
30
  *
30
31
  * Classifies every route, renders static and ISR routes to HTML/JSON/RSC files,
31
32
  * and writes a `vinext-prerender.json` build index.
@@ -48,15 +49,19 @@ function isExperimentalPprFallbackShellGenerationEnabled(env = process.env) {
48
49
  function getErrorMessageWithStack(err) {
49
50
  return err.stack || err.message;
50
51
  }
51
- async function startOptionalPrerenderServerPool(outDir, poolSize) {
52
+ async function startOptionalPrerenderServerPool(outDir, poolSize, rscEntryPath, serverDir) {
52
53
  try {
53
- return await startPrerenderServerPool(outDir, poolSize);
54
+ return await startPrerenderServerPool(outDir, poolSize, {
55
+ rscEntryPath,
56
+ serverDir
57
+ });
54
58
  } catch (e) {
55
59
  console.warn(`[vinext] prerender render pool failed to start; falling back to single-process render: ${e instanceof Error ? e.message : String(e)}`);
56
60
  return null;
57
61
  }
58
62
  }
59
63
  var PrerenderUserFunctionError = class extends Error {};
64
+ var InvalidStaticParamsError = class extends Error {};
60
65
  function parsePrerenderEndpointError(text) {
61
66
  try {
62
67
  const parsed = JSON.parse(text);
@@ -181,54 +186,85 @@ function metadataOutputPath(servedUrl) {
181
186
  if (segments.length === 0 || segments.some((segment) => segment === "." || segment === "..")) return null;
182
187
  return segments.join("/");
183
188
  }
184
- function emitStaticMetadataFiles(metadataRoutes, outDir) {
189
+ function emitStaticMetadataFiles(metadataRoutes, outDir, basePath = "") {
185
190
  const outputFiles = [];
191
+ const outputPrefix = basePath.replace(/^\//, "").replace(/\/$/, "");
186
192
  for (const route of metadataRoutes) {
187
193
  if (route.isDynamic) continue;
188
194
  const outputPath = metadataOutputPath(route.servedUrl);
189
195
  if (!outputPath) continue;
190
- const fullPath = path.join(outDir, ...outputPath.split("/"));
196
+ const namespacedOutputPath = outputPrefix ? `${outputPrefix}/${outputPath}` : outputPath;
197
+ const fullPath = path.join(outDir, ...namespacedOutputPath.split("/"));
191
198
  fs.mkdirSync(path.dirname(fullPath), { recursive: true });
192
199
  fs.copyFileSync(route.filePath, fullPath);
193
- outputFiles.push(outputPath);
200
+ outputFiles.push(namespacedOutputPath);
201
+ }
202
+ return outputFiles;
203
+ }
204
+ function emitStatic404Files(outDir, html, trailingSlash) {
205
+ const outputFiles = ["404.html"];
206
+ if (trailingSlash) outputFiles.push("404/index.html");
207
+ for (const outputFile of outputFiles) {
208
+ const fullPath = path.join(outDir, ...outputFile.split("/"));
209
+ fs.mkdirSync(path.dirname(fullPath), { recursive: true });
210
+ fs.writeFileSync(fullPath, html, "utf-8");
194
211
  }
195
212
  return outputFiles;
196
213
  }
197
214
  /**
198
- * Resolve parent dynamic segment params for a route.
215
+ * Next.js fails `output: "export"` on any generateStaticParams call that
216
+ * returns no params (build/static-paths/app.ts callGenerateStaticParams).
217
+ */
218
+ function emptyStaticExportParamsError(pattern) {
219
+ return /* @__PURE__ */ new Error(`Page "${pattern}" returned an empty array from "generateStaticParams()". With "output: export", at least one route must be generated. See more info here: https://nextjs.org/docs/messages/generate-static-params`);
220
+ }
221
+ /**
222
+ * Resolve the params a route's layouts above its own pattern generate.
199
223
  * Handles top-down generateStaticParams resolution for nested dynamic routes.
200
224
  *
201
225
  * Uses the `staticParamsMap` (pattern → generateStaticParams) exported from
202
- * the production bundle.
226
+ * the production bundle. As in Next.js, which walks every segment of the
227
+ * route's own loader tree top-down and passes each parent param set to the
228
+ * next generateStaticParams (build/static-paths/app.ts
229
+ * generateRouteStaticParams), every layout of the route contributes, including
230
+ * one at the last dynamic segment when static segments follow it. The layouts
231
+ * at the route's full pattern compose with its page under
232
+ * `staticParamsMap[route.pattern]`, so they're left to the caller. A page or a
233
+ * route group's layout at the same prefix belongs to a sibling route and never
234
+ * supplies params.
235
+ *
236
+ * An App Route handler inherits no layouts: Next.js builds its segments from
237
+ * the route module alone (build/segment-config/app/app-segments.ts
238
+ * collectAppRouteSegments), so it has no parent params. A layout that returns
239
+ * no params passes each parent set through unchanged, as Next.js does outside
240
+ * Cache Components, except under `output: "export"`, where Next.js rejects any
241
+ * generateStaticParams that returns no params (build/static-paths/app.ts
242
+ * callGenerateStaticParams).
203
243
  */
204
- async function resolveParentParams(childRoute, staticParamsMap) {
205
- const { patternParts } = childRoute;
206
- let lastDynamicIdx = -1;
207
- for (let i = patternParts.length - 1; i >= 0; i--) if (patternParts[i].startsWith(":")) {
208
- lastDynamicIdx = i;
209
- break;
210
- }
244
+ async function resolveParentParams(childRoute, staticParamsMap, options = {}) {
245
+ if (childRoute.routePath && !childRoute.pagePath) return [];
211
246
  const parentSegments = [];
212
- let prefixPattern = "";
213
- for (let i = 0; i < lastDynamicIdx; i++) {
214
- const part = patternParts[i];
215
- prefixPattern += "/" + part;
216
- if (!part.startsWith(":")) continue;
217
- const fn = staticParamsMap[prefixPattern];
247
+ for (const group of appRouteLayoutStaticParamsGroups(childRoute)) {
248
+ if (group.pattern === childRoute.pattern) continue;
249
+ const fn = staticParamsMap[group.key];
218
250
  if (typeof fn === "function") parentSegments.push(fn);
219
251
  }
220
252
  if (parentSegments.length === 0) return [];
221
- let currentParams = [{}];
222
- let resolvedAnyParent = false;
253
+ let currentParams = [];
223
254
  for (const generateStaticParams of parentSegments) {
224
255
  const nextParams = [];
225
256
  let resolvedThisParent = false;
226
- for (const parentParams of currentParams) {
257
+ const hasParentSets = currentParams.length > 0;
258
+ for (const parentParams of hasParentSets ? currentParams : [{}]) {
227
259
  const results = await generateStaticParams({ params: parentParams });
228
260
  if (results === null) continue;
229
261
  if (!Array.isArray(results)) return [];
262
+ if (options.staticExport && results.length === 0) throw emptyStaticExportParamsError(childRoute.pattern);
230
263
  resolvedThisParent = true;
231
- resolvedAnyParent = true;
264
+ if (results.length === 0 && hasParentSets) {
265
+ nextParams.push(parentParams);
266
+ continue;
267
+ }
232
268
  for (const result of results) nextParams.push({
233
269
  ...parentParams,
234
270
  ...result
@@ -236,7 +272,70 @@ async function resolveParentParams(childRoute, staticParamsMap) {
236
272
  }
237
273
  if (resolvedThisParent) currentParams = nextParams;
238
274
  }
239
- return resolvedAnyParent ? currentParams : [];
275
+ return currentParams;
276
+ }
277
+ function getDynamicPatternParams(pattern) {
278
+ return pattern.split("/").filter((segment) => segment.startsWith(":")).map((segment) => ({
279
+ name: segment.slice(1, segment.endsWith("+") || segment.endsWith("*") ? -1 : void 0),
280
+ optional: segment.endsWith("*"),
281
+ repeat: segment.endsWith("+") || segment.endsWith("*")
282
+ }));
283
+ }
284
+ function validateDiscoveredParams(value, pattern, source) {
285
+ if (!value || typeof value !== "object" || Array.isArray(value)) throw new InvalidStaticParamsError(`${source} must return parameter objects for ${pattern}.`);
286
+ const params = { ...value };
287
+ for (const { name, optional, repeat } of getDynamicPatternParams(pattern)) {
288
+ const hasValue = Object.prototype.hasOwnProperty.call(params, name);
289
+ let paramValue = params[name];
290
+ if (optional && hasValue && (paramValue === null || paramValue === void 0 || paramValue === false)) {
291
+ paramValue = [];
292
+ params[name] = paramValue;
293
+ }
294
+ if (!(repeat ? Array.isArray(paramValue) && paramValue.every((entry) => typeof entry === "string") : typeof paramValue === "string")) throw new InvalidStaticParamsError(`Parameter ${name} from ${source} for ${pattern} must be ${repeat ? "an array of strings" : "a string"}.`);
295
+ if ((Array.isArray(paramValue) ? paramValue : [paramValue]).some((entry) => entry === "." || entry === "..")) throw new InvalidStaticParamsError(`Parameter ${name} from ${source} for ${pattern} must not contain dot path segments.`);
296
+ }
297
+ return params;
298
+ }
299
+ /**
300
+ * The param sets of an App route that become concrete paths, following
301
+ * Next.js's buildAppStaticPaths (build/static-paths/app.ts). Unless every set
302
+ * names every pathname param (hadAllParamsGenerated), none is prerendered.
303
+ * Otherwise every set is checked against the route's pathname params
304
+ * (validateParams), and, outside a partial prerender, a set with an empty
305
+ * required value is skipped rather than built into a path with an empty
306
+ * segment. An array, including an optional catch-all's empty one, is never
307
+ * empty in that sense. Under `output: "export"` incomplete sets fail the
308
+ * build instead, as Next.js requires every export path to be generated.
309
+ */
310
+ function routeStaticParamSets(route, paramSets, options = {}) {
311
+ const patternParams = getDynamicPatternParams(route.pattern);
312
+ const objects = paramSets.map((value) => {
313
+ if (!value || typeof value !== "object" || Array.isArray(value)) throw new InvalidStaticParamsError(`generateStaticParams must return parameter objects for ${route.pattern}.`);
314
+ return value;
315
+ });
316
+ const missingParamNames = patternParams.filter(({ name }) => objects.some((params) => !(name in params))).map(({ name }) => name);
317
+ if (missingParamNames.length > 0) {
318
+ if (options.staticExport && objects.length > 0) throw new InvalidStaticParamsError(`Page "${route.pattern}" returned incomplete params from "generateStaticParams()". With "output: export", every params object must include all dynamic route parameters. Missing: ${missingParamNames.map((name) => `"${name}"`).join(", ")}. See more info here: https://nextjs.org/docs/messages/generate-static-params`);
319
+ return [];
320
+ }
321
+ const materializable = [];
322
+ for (const value of objects) {
323
+ const params = validateDiscoveredParams(value, route.pattern, "generateStaticParams");
324
+ if (patternParams.some(({ name, repeat }) => !repeat && params[name] === "")) continue;
325
+ materializable.push(params);
326
+ }
327
+ return materializable;
328
+ }
329
+ /**
330
+ * The param sets a route's layouts generate, standing in for the route's own
331
+ * when none of the segments at its full pattern has generateStaticParams.
332
+ * Next.js prerenders none of a route's paths unless every set fills every
333
+ * pathname param (build/static-paths/app.ts hadAllParamsGenerated), so
334
+ * incomplete sets leave the route without static params (`null`). Complete
335
+ * sets still go through routeStaticParamSets.
336
+ */
337
+ function layoutOnlyParamSets(route, parentParamSets) {
338
+ return parentParamSets.length > 0 && parentParamSets.every((params) => route.params.every((name) => name in params)) ? parentParamSets : null;
240
339
  }
241
340
  /**
242
341
  * Run the prerender phase for Pages Router.
@@ -274,7 +373,7 @@ async function prerenderPages({ routes, apiRoutes, pagesDir, outDir, config, mod
274
373
  try {
275
374
  let prerenderSecret = options._prerenderSecret;
276
375
  if (!prerenderSecret && pagesBundlePath) prerenderSecret = readPrerenderSecret(path.dirname(pagesBundlePath));
277
- if (!prerenderSecret) console.warn("[vinext] Warning: prerender secret not found. /__vinext/prerender/* endpoints will return 403 and dynamic routes will produce no paths. Run `vinext build` to regenerate the secret.");
376
+ if (!prerenderSecret) console.warn("[vinext] Warning: prerender secret not found. /__vinext/prerender/* endpoints will return 403 and dynamic routes will produce no paths. Run `vite build` to regenerate the secret.");
278
377
  const prodServer = options._prodServer ? options._prodServer : await (async () => {
279
378
  const srv = await startProdServer({
280
379
  port: 0,
@@ -292,7 +391,9 @@ async function prerenderPages({ routes, apiRoutes, pagesDir, outDir, config, mod
292
391
  let renderRoundRobin = 0;
293
392
  const renderPage = (urlPath) => {
294
393
  const port = renderPorts[renderRoundRobin++ % renderPorts.length];
295
- return fetch(`http://127.0.0.1:${port}${urlPath}`, {
394
+ const routeRequestPath = config.trailingSlash && !urlPath.endsWith("/") ? `${urlPath}/` : urlPath;
395
+ const requestPath = config.basePath && routeRequestPath === "/" && !config.trailingSlash ? config.basePath : `${config.basePath ?? ""}${routeRequestPath}`;
396
+ return fetch(`http://127.0.0.1:${port}${requestPath}`, {
296
397
  headers: secretHeaders,
297
398
  redirect: "manual"
298
399
  });
@@ -316,7 +417,7 @@ async function prerenderPages({ routes, apiRoutes, pagesDir, outDir, config, mod
316
417
  fallback: false
317
418
  };
318
419
  }
319
- if (text === "null") return {
420
+ if (res.status === 204 || text === "null") return {
320
421
  paths: [],
321
422
  fallback: false
322
423
  };
@@ -430,7 +531,7 @@ async function prerenderPages({ routes, apiRoutes, pagesDir, outDir, config, mod
430
531
  try {
431
532
  const response = await renderPage(urlPath);
432
533
  const outputFiles = [];
433
- const htmlOutputPath = getOutputPath(urlPath, config.trailingSlash);
534
+ const htmlOutputPath = getOutputPath(urlPath, config.trailingSlash, mode === "export" ? config.basePath : "");
434
535
  const htmlFullPath = path.join(outDir, htmlOutputPath);
435
536
  if (response.status >= 300 && response.status < 400) {
436
537
  const html = `<!DOCTYPE html><html><head><meta http-equiv="refresh" content="0;url=${(response.headers.get("location") ?? "/").replace(/&/g, "&amp;").replace(/"/g, "&quot;").replace(/</g, "&lt;").replace(/>/g, "&gt;")}" /></head><body></body></html>`;
@@ -479,12 +580,10 @@ async function prerenderPages({ routes, apiRoutes, pagesDir, outDir, config, mod
479
580
  const contentType = notFoundRes.headers.get("content-type") ?? "";
480
581
  if (notFoundRes.status === 404 && contentType.includes("text/html")) {
481
582
  const html404 = await notFoundRes.text();
482
- const fullPath = path.join(outDir, "404.html");
483
- fs.writeFileSync(fullPath, html404, "utf-8");
484
583
  results.push({
485
584
  route: "/404",
486
585
  status: "rendered",
487
- outputFiles: ["404.html"],
586
+ outputFiles: emitStatic404Files(outDir, html404, config.trailingSlash),
488
587
  revalidate: false,
489
588
  router: "pages"
490
589
  });
@@ -514,18 +613,18 @@ async function prerenderPages({ routes, apiRoutes, pagesDir, outDir, config, mod
514
613
  * Starts a local production server and fetches every static/ISR route via HTTP.
515
614
  * Works for both plain Node and Cloudflare Workers builds — the CF Workers bundle
516
615
  * (`dist/server/index.js`) is a standard Node-compatible server entry, so no
517
- * wrangler/miniflare is needed. Writes HTML files, `.rsc` files, and
616
+ * wrangler/miniflare is needed. Writes HTML files, Flight payloads, and
518
617
  * `vinext-prerender.json` to `outDir`.
519
618
  *
520
619
  * If the bundle does not exist, an error is thrown directing the user to run
521
- * `vinext build` first.
620
+ * `vite build` first.
522
621
  *
523
622
  * Speculative static rendering: routes classified as 'unknown' (no explicit
524
623
  * config, non-dynamic URL) are attempted with an empty headers/cookies context.
525
624
  * If they succeed, they are marked as rendered. If they throw a DynamicUsageError
526
625
  * or fail, they are marked as skipped with reason 'dynamic'.
527
626
  */
528
- async function prerenderApp({ routes, metadataRoutes = [], outDir, config, mode, rscBundlePath, ...options }) {
627
+ async function prerenderApp({ routes, metadataRoutes = [], outDir, config, mode, rscBundlePath, serverDir = path.dirname(rscBundlePath), buildOutDir = path.dirname(serverDir), ...options }) {
529
628
  const manifestDir = options.manifestDir ?? outDir;
530
629
  const concurrency = options.concurrency ?? DEFAULT_CONCURRENCY;
531
630
  const onProgress = options.onProgress;
@@ -535,7 +634,6 @@ async function prerenderApp({ routes, metadataRoutes = [], outDir, config, mode,
535
634
  const previousHandler = getCacheHandler();
536
635
  setCacheHandler(new NoOpCacheHandler());
537
636
  const restorePrerenderPhase = enterPrerenderPhase();
538
- const serverDir = path.dirname(rscBundlePath);
539
637
  let rscHandler;
540
638
  let staticParamsMap = {};
541
639
  let ownedProdServerHandle = null;
@@ -544,12 +642,14 @@ async function prerenderApp({ routes, metadataRoutes = [], outDir, config, mode,
544
642
  let renderRoundRobin = 0;
545
643
  try {
546
644
  const prerenderSecret = readPrerenderSecret(serverDir);
547
- if (!prerenderSecret) console.warn("[vinext] Warning: prerender secret not found. /__vinext/prerender/* endpoints will return 403 and generateStaticParams will not be called. Run `vinext build` to regenerate the secret.");
645
+ if (!prerenderSecret) console.warn("[vinext] Warning: prerender secret not found. /__vinext/prerender/* endpoints will return 403 and generateStaticParams will not be called. Run `vite build` to regenerate the secret.");
548
646
  const prodServer = options._prodServer ? options._prodServer : await (async () => {
549
647
  const srv = await startProdServer({
550
648
  port: 0,
551
649
  host: "127.0.0.1",
552
- outDir: path.dirname(serverDir),
650
+ outDir: buildOutDir,
651
+ rscEntryPath: rscBundlePath,
652
+ serverDir,
553
653
  noCompression: true,
554
654
  purpose: "prerender"
555
655
  });
@@ -582,6 +682,7 @@ async function prerenderApp({ routes, metadataRoutes = [], outDir, config, mode,
582
682
  const request = (async () => {
583
683
  const search = new URLSearchParams({ pattern });
584
684
  if (Object.keys(params).length > 0) search.set("parentParams", JSON.stringify(params));
685
+ if (mode === "export") search.set("rejectEmptyResults", "1");
585
686
  const res = await fetch(`${baseUrl}/__vinext/prerender/static-params?${search}`, { headers: secretHeaders });
586
687
  const text = await res.text();
587
688
  if (!res.ok) {
@@ -589,7 +690,7 @@ async function prerenderApp({ routes, metadataRoutes = [], outDir, config, mode,
589
690
  console.warn(`[vinext] Warning: /__vinext/prerender/static-params returned ${res.status} for ${pattern}. Static params will be skipped. This may indicate a stale or missing prerender secret.`);
590
691
  return null;
591
692
  }
592
- if (text === "null") return null;
693
+ if (res.status === 204 || text === "null") return null;
593
694
  return JSON.parse(text);
594
695
  })();
595
696
  request.catch(() => staticParamsCache.delete(cacheKey));
@@ -651,28 +752,36 @@ async function prerenderApp({ routes, metadataRoutes = [], outDir, config, mode,
651
752
  });
652
753
  continue;
653
754
  }
654
- const parentParamSets = await resolveParentParams(route, staticParamsMap);
755
+ const parentParamSets = await resolveParentParams(route, staticParamsMap, { staticExport: mode === "export" });
655
756
  let paramSets;
656
757
  if (parentParamSets.length > 0) {
657
758
  paramSets = [];
658
759
  for (const parentParams of parentParamSets) {
659
760
  const childResults = await generateStaticParamsFn({ params: parentParams });
660
761
  if (childResults === null) {
661
- paramSets = null;
762
+ paramSets = layoutOnlyParamSets(route, parentParamSets);
662
763
  break;
663
764
  }
664
- if (Array.isArray(childResults)) for (const childParams of childResults) paramSets.push({
665
- ...parentParams,
666
- ...childParams
667
- });
668
- else {
765
+ if (Array.isArray(childResults)) {
766
+ if (mode === "export" && childResults.length === 0) throw emptyStaticExportParamsError(route.pattern);
767
+ if (childResults.length === 0) {
768
+ paramSets.push(parentParams);
769
+ continue;
770
+ }
771
+ for (const childParams of childResults) paramSets.push({
772
+ ...parentParams,
773
+ ...childParams
774
+ });
775
+ } else {
669
776
  paramSets = [];
670
777
  break;
671
778
  }
672
779
  }
780
+ if (paramSets !== null) paramSets = routeStaticParamSets(route, paramSets, { staticExport: mode === "export" });
673
781
  } else {
674
782
  const results = await generateStaticParamsFn({ params: {} });
675
- paramSets = Array.isArray(results) || results === null ? results : [];
783
+ if (mode === "export" && Array.isArray(results) && results.length === 0) throw emptyStaticExportParamsError(route.pattern);
784
+ paramSets = results === null ? null : routeStaticParamSets(route, Array.isArray(results) ? results : [], { staticExport: mode === "export" });
676
785
  }
677
786
  if (paramSets === null) {
678
787
  if (mode === "export") results.push({
@@ -691,7 +800,7 @@ async function prerenderApp({ routes, metadataRoutes = [], outDir, config, mode,
691
800
  results.push({
692
801
  route: route.pattern,
693
802
  status: "skipped",
694
- reason: "no-static-params"
803
+ reason: "empty-static-params"
695
804
  });
696
805
  continue;
697
806
  }
@@ -728,7 +837,7 @@ async function prerenderApp({ routes, metadataRoutes = [], outDir, config, mode,
728
837
  route: route.pattern,
729
838
  status: "error",
730
839
  error: `Failed to call generateStaticParams(): ${detail}`,
731
- ...e instanceof PrerenderUserFunctionError ? { fatal: true } : {}
840
+ ...e instanceof PrerenderUserFunctionError || e instanceof InvalidStaticParamsError ? { fatal: true } : {}
732
841
  });
733
842
  }
734
843
  else if (type === "unknown") urlsToRender.push({
@@ -829,7 +938,9 @@ async function prerenderApp({ routes, metadataRoutes = [], outDir, config, mode,
829
938
  const htmlHeaders = new Headers();
830
939
  if (prerenderRouteParamsHeader !== null) htmlHeaders.set(VINEXT_PRERENDER_ROUTE_PARAMS_HEADER, prerenderRouteParamsHeader);
831
940
  if (isSpeculative) htmlHeaders.set(VINEXT_PRERENDER_SPECULATIVE_HEADER, "1");
832
- const htmlRequest = new Request(`http://localhost${urlPath}`, { headers: htmlHeaders });
941
+ const routeRequestPath = config.trailingSlash && !urlPath.endsWith("/") ? `${urlPath}/` : urlPath;
942
+ const requestPath = config.basePath && routeRequestPath === "/" && !config.trailingSlash ? config.basePath : `${config.basePath ?? ""}${routeRequestPath}`;
943
+ const htmlRequest = new Request(`http://localhost${requestPath}`, { headers: htmlHeaders });
833
944
  const htmlRender = await runWithHeadersContext(headersContextFromRequest(htmlRequest), async () => {
834
945
  const response = await rscHandler(htmlRequest);
835
946
  const cacheControl = response.headers.get("cache-control") ?? "";
@@ -896,7 +1007,7 @@ async function prerenderApp({ routes, metadataRoutes = [], outDir, config, mode,
896
1007
  });
897
1008
  if (prerenderRouteParamsHeader !== null) rscHeaders.set(VINEXT_PRERENDER_ROUTE_PARAMS_HEADER, prerenderRouteParamsHeader);
898
1009
  if (isSpeculative) rscHeaders.set(VINEXT_PRERENDER_SPECULATIVE_HEADER, "1");
899
- const rscRequest = new Request(`http://localhost${urlPath}`, { headers: rscHeaders });
1010
+ const rscRequest = new Request(`http://localhost${requestPath}`, { headers: rscHeaders });
900
1011
  const rscRes = await runWithHeadersContext(headersContextFromRequest(rscRequest), () => rscHandler(rscRequest));
901
1012
  if (!rscRes.ok) {
902
1013
  await rscRes.body?.cancel();
@@ -905,12 +1016,16 @@ async function prerenderApp({ routes, metadataRoutes = [], outDir, config, mode,
905
1016
  rscData = new Uint8Array(await rscRes.arrayBuffer());
906
1017
  }
907
1018
  const outputFiles = [];
908
- const htmlOutputPath = getOutputPath(urlPath, config.trailingSlash);
1019
+ const htmlOutputPath = getOutputPath(urlPath, config.trailingSlash, mode === "export" ? config.basePath : "");
909
1020
  const htmlFullPath = path.join(outDir, htmlOutputPath);
910
1021
  fs.mkdirSync(path.dirname(htmlFullPath), { recursive: true });
911
1022
  fs.writeFileSync(htmlFullPath, html, "utf-8");
912
1023
  outputFiles.push(htmlOutputPath);
913
- const rscOutputPath = getRscOutputPath(urlPath);
1024
+ const rscOutputPath = getRscOutputPath(urlPath, {
1025
+ mode,
1026
+ trailingSlash: config.trailingSlash,
1027
+ basePath: mode === "export" ? config.basePath : ""
1028
+ });
914
1029
  const rscFullPath = path.join(outDir, rscOutputPath);
915
1030
  fs.mkdirSync(path.dirname(rscFullPath), { recursive: true });
916
1031
  fs.writeFileSync(rscFullPath, rscData);
@@ -950,7 +1065,7 @@ async function prerenderApp({ routes, metadataRoutes = [], outDir, config, mode,
950
1065
  if (!options._prodServer && prerenderPoolAvailable()) {
951
1066
  const poolSize = resolvePrerenderPoolSize(urlsToRender.length, concurrency);
952
1067
  if (poolSize > 1) {
953
- renderPool = await startOptionalPrerenderServerPool(path.dirname(serverDir), poolSize);
1068
+ renderPool = await startOptionalPrerenderServerPool(buildOutDir, poolSize, rscBundlePath, serverDir);
954
1069
  if (renderPool) renderPorts = renderPool.ports;
955
1070
  }
956
1071
  }
@@ -967,19 +1082,17 @@ async function prerenderApp({ routes, metadataRoutes = [], outDir, config, mode,
967
1082
  });
968
1083
  results.push(...appResults);
969
1084
  renderPool?.assertHealthy();
970
- const outputFiles = mode === "export" && metadataRoutes.length > 0 ? emitStaticMetadataFiles(metadataRoutes, outDir) : [];
1085
+ const outputFiles = mode === "export" && metadataRoutes.length > 0 ? emitStaticMetadataFiles(metadataRoutes, outDir, config.basePath) : [];
971
1086
  try {
972
- const notFoundRequest = new Request(`http://localhost${NOT_FOUND_SENTINEL_PATH}`);
1087
+ const notFoundPath = config.trailingSlash && !NOT_FOUND_SENTINEL_PATH.endsWith("/") ? `${NOT_FOUND_SENTINEL_PATH}/` : NOT_FOUND_SENTINEL_PATH;
1088
+ const notFoundRequest = new Request(`http://localhost${config.basePath ?? ""}${notFoundPath}`);
973
1089
  const notFoundRes = await runWithHeadersContext(headersContextFromRequest(notFoundRequest), () => rscHandler(notFoundRequest));
974
1090
  if (notFoundRes.status === 404) {
975
1091
  const html404 = await notFoundRes.text();
976
- const fullPath = path.join(outDir, "404.html");
977
- fs.mkdirSync(path.dirname(fullPath), { recursive: true });
978
- fs.writeFileSync(fullPath, html404, "utf-8");
979
1092
  results.push({
980
1093
  route: "/404",
981
1094
  status: "rendered",
982
- outputFiles: ["404.html"],
1095
+ outputFiles: emitStatic404Files(outDir, html404, config.trailingSlash),
983
1096
  revalidate: false,
984
1097
  router: "app"
985
1098
  });
@@ -1097,4 +1210,4 @@ function writePrerenderIndex(routes, outDir, options) {
1097
1210
  fs.writeFileSync(path.join(outDir, "vinext-prerender.json"), JSON.stringify(index, null, 2), "utf-8");
1098
1211
  }
1099
1212
  //#endregion
1100
- export { buildUrlFromParams, extractRscPayloadFromPrerenderedHtml, prerenderApp, prerenderPages, readPrerenderSecret, resolveParentParams, writePrerenderIndex };
1213
+ export { buildUrlFromParams, extractRscPayloadFromPrerenderedHtml, layoutOnlyParamSets, prerenderApp, prerenderPages, readPrerenderSecret, resolveParentParams, routeStaticParamSets, validateDiscoveredParams, writePrerenderIndex };
@@ -1,11 +1,10 @@
1
1
  //#region src/build/preview-credentials.d.ts
2
- type PreviewBuildCredentials = {
2
+ export type PreviewBuildCredentials = {
3
3
  id: string;
4
4
  signingKey: string;
5
5
  encryptionKey: string;
6
6
  };
7
- declare function createPreviewBuildCredentials(): PreviewBuildCredentials;
8
- declare function getPreviewBuildCredentials(): PreviewBuildCredentials | undefined;
9
- declare function runWithPreviewBuildCredentials<T>(callback: () => T): T;
10
- //#endregion
11
- export { PreviewBuildCredentials, createPreviewBuildCredentials, getPreviewBuildCredentials, runWithPreviewBuildCredentials };
7
+ export declare function createPreviewBuildCredentials(): PreviewBuildCredentials;
8
+ export declare function getPreviewBuildCredentials(): PreviewBuildCredentials | undefined;
9
+ export declare function runWithPreviewBuildCredentials<T>(callback: () => T, credentials?: PreviewBuildCredentials): T;
10
+ //#endregion
@@ -12,8 +12,8 @@ function createPreviewBuildCredentials() {
12
12
  function getPreviewBuildCredentials() {
13
13
  return previewBuildCredentialsStorage.getStore();
14
14
  }
15
- function runWithPreviewBuildCredentials(callback) {
16
- return previewBuildCredentialsStorage.run(createPreviewBuildCredentials(), callback);
15
+ function runWithPreviewBuildCredentials(callback, credentials = createPreviewBuildCredentials()) {
16
+ return previewBuildCredentialsStorage.run(credentials, callback);
17
17
  }
18
18
  //#endregion
19
19
  export { createPreviewBuildCredentials, getPreviewBuildCredentials, runWithPreviewBuildCredentials };
@@ -1,14 +1,13 @@
1
1
  //#region src/build/public-dir-conflict.d.ts
2
- type PublicDirConflictOptions = {
2
+ export type PublicDirConflictOptions = {
3
3
  root: string;
4
4
  publicDir: string | null;
5
5
  assetsDir: string;
6
6
  };
7
- type PublicNextRequestConflictOptions = Pick<PublicDirConflictOptions, "root" | "publicDir"> & {
7
+ export type PublicNextRequestConflictOptions = Pick<PublicDirConflictOptions, "root" | "publicDir"> & {
8
8
  basePath: string;
9
9
  requestUrl: string;
10
10
  };
11
- declare function assertNoPublicNextRequestConflict({ root, publicDir, basePath, requestUrl }: PublicNextRequestConflictOptions): void;
12
- declare function assertNoPublicDirAssetConflict({ root, publicDir, assetsDir }: PublicDirConflictOptions): void;
13
- //#endregion
14
- export { PublicDirConflictOptions, PublicNextRequestConflictOptions, assertNoPublicDirAssetConflict, assertNoPublicNextRequestConflict };
11
+ export declare function assertNoPublicNextRequestConflict({ root, publicDir, basePath, requestUrl }: PublicNextRequestConflictOptions): void;
12
+ export declare function assertNoPublicDirAssetConflict({ root, publicDir, assetsDir }: PublicDirConflictOptions): void;
13
+ //#endregion
@@ -4,7 +4,8 @@ import { existsSync } from "node:fs";
4
4
  const PUBLIC_NEXT_CONFLICT_ERROR = "You can not have a '_next' folder inside of your public folder. This conflicts with the internal '/_next' route. https://nextjs.org/docs/messages/public-next-folder-conflict";
5
5
  function assertNoPublicNextDir(root, publicDir) {
6
6
  if (!publicDir) return;
7
- if (existsSync(path.join(path.resolve(root, publicDir), "_next"))) throw new Error(PUBLIC_NEXT_CONFLICT_ERROR);
7
+ const publicNextDir = path.join(path.resolve(root, publicDir), "_next");
8
+ if (existsSync(publicNextDir)) throw new Error(PUBLIC_NEXT_CONFLICT_ERROR);
8
9
  }
9
10
  function assertNoPublicNextRequestConflict({ root, publicDir, basePath, requestUrl }) {
10
11
  const internalOrigin = "http://vinext.invalid";