vinext 1.0.0-beta.9 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (828) hide show
  1. package/README.md +150 -92
  2. package/THIRD_PARTY_LICENSES.md +51 -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 +7 -14
  33. package/dist/build/precompress.d.ts +2 -3
  34. package/dist/build/precompress.js +1 -1
  35. package/dist/build/prerender-cloudflare-loader.d.ts +4 -0
  36. package/dist/build/prerender-cloudflare-loader.js +49 -0
  37. package/dist/build/prerender-paths.d.ts +36 -11
  38. package/dist/build/prerender-paths.js +274 -102
  39. package/dist/build/prerender-phase.d.ts +2 -3
  40. package/dist/build/prerender-server-entry.js +11 -3
  41. package/dist/build/prerender-server-pool.d.ts +9 -6
  42. package/dist/build/prerender-server-pool.js +8 -5
  43. package/dist/build/prerender.d.ts +73 -16
  44. package/dist/build/prerender.js +272 -80
  45. package/dist/build/preview-credentials.d.ts +5 -6
  46. package/dist/build/preview-credentials.js +2 -2
  47. package/dist/build/public-dir-conflict.d.ts +5 -6
  48. package/dist/build/public-dir-conflict.js +2 -1
  49. package/dist/build/report.d.ts +24 -20
  50. package/dist/build/report.js +10 -2
  51. package/dist/build/route-classification-injector.d.ts +2 -3
  52. package/dist/build/route-classification-manifest.d.ts +5 -6
  53. package/dist/build/run-prerender.d.ts +11 -9
  54. package/dist/build/run-prerender.js +26 -16
  55. package/dist/build/server-entry.d.ts +6 -0
  56. package/dist/build/server-entry.js +34 -0
  57. package/dist/build/server-manifest.d.ts +8 -3
  58. package/dist/build/server-manifest.js +14 -2
  59. package/dist/build/ssr-manifest.d.ts +5 -6
  60. package/dist/build/standalone.d.ts +2 -3
  61. package/dist/build/standalone.js +2 -2
  62. package/dist/build/static-export.d.ts +6 -7
  63. package/dist/cache/cache-adapters-virtual.d.ts +60 -20
  64. package/dist/cache/cache-adapters-virtual.js +50 -7
  65. package/dist/check.d.ts +11 -10
  66. package/dist/check.js +467 -176
  67. package/dist/cli-args.d.ts +7 -16
  68. package/dist/cli-args.js +2 -45
  69. package/dist/cli-dev-config.d.ts +10 -7
  70. package/dist/cli-dev-config.js +160 -3
  71. package/dist/cli.js +124 -442
  72. package/dist/client/app-nav-failure-handler.d.ts +6 -7
  73. package/dist/client/browser-globals.d.ts +4 -0
  74. package/dist/client/browser-globals.js +5 -0
  75. package/dist/client/client-rewrite-matcher.d.ts +2 -3
  76. package/dist/client/client-rewrites.d.ts +4 -5
  77. package/dist/client/dev-error-overlay-store.d.ts +13 -14
  78. package/dist/client/dev-error-overlay.d.ts +15 -15
  79. package/dist/client/dev-error-overlay.js +8 -5
  80. package/dist/client/instrumentation-client-inject.d.ts +3 -4
  81. package/dist/client/instrumentation-client-state.d.ts +5 -6
  82. package/dist/client/instrumentation-client.d.ts +3 -4
  83. package/dist/client/navigation-runtime.d.ts +20 -17
  84. package/dist/client/navigation-runtime.js +4 -3
  85. package/dist/client/pages-router-link-navigation.d.ts +4 -5
  86. package/dist/client/react-instance.d.ts +2 -3
  87. package/dist/client/validate-module-path.d.ts +2 -3
  88. package/dist/client/vinext-next-data.d.ts +7 -10
  89. package/dist/client/window-next.d.ts +4 -5
  90. package/dist/config/config-matchers.d.ts +16 -16
  91. package/dist/config/config-matchers.js +2 -4
  92. package/dist/config/dotenv.d.ts +3 -4
  93. package/dist/config/dotenv.js +14 -2
  94. package/dist/config/next-config.d.ts +31 -27
  95. package/dist/config/next-config.js +163 -16
  96. package/dist/config/prerender.d.ts +20 -16
  97. package/dist/config/prerender.js +10 -4
  98. package/dist/config/request-context.d.ts +5 -6
  99. package/dist/config/server-external-packages.d.ts +14 -3
  100. package/dist/config/server-external-packages.js +37 -3
  101. package/dist/config/tsconfig-paths.d.ts +3 -4
  102. package/dist/deps/.pnpm/ignore@5.3.2/deps/ignore/index.js +189 -0
  103. package/dist/deps/.pnpm/ua-parser-js@1.0.35/deps/ua-parser-js/src/ua-parser.js +1057 -0
  104. package/dist/entries/app-browser-entry.d.ts +4 -5
  105. package/dist/entries/app-browser-entry.js +1 -3
  106. package/dist/entries/app-rsc-entry.d.ts +10 -3
  107. package/dist/entries/app-rsc-entry.js +503 -51
  108. package/dist/entries/app-rsc-manifest.d.ts +4 -3
  109. package/dist/entries/app-rsc-manifest.js +26 -8
  110. package/dist/entries/app-ssr-entry.d.ts +2 -3
  111. package/dist/entries/app-ssr-entry.js +8 -1
  112. package/dist/entries/pages-client-entry.d.ts +3 -3
  113. package/dist/entries/pages-client-entry.js +17 -2
  114. package/dist/entries/pages-server-entry.d.ts +13 -3
  115. package/dist/entries/pages-server-entry.js +234 -33
  116. package/dist/entries/runtime-entry-module.d.ts +4 -5
  117. package/dist/image/image-adapters-virtual.d.ts +4 -5
  118. package/dist/index.d.ts +10 -11
  119. package/dist/index.js +848 -255
  120. package/dist/init-cloudflare.d.ts +26 -17
  121. package/dist/init-cloudflare.js +711 -103
  122. package/dist/init-platform.d.ts +26 -22
  123. package/dist/init-platform.js +85 -29
  124. package/dist/init.d.ts +19 -13
  125. package/dist/init.js +126 -42
  126. package/dist/plugins/action-owner-manifest.d.ts +3 -4
  127. package/dist/plugins/action-owner-manifest.js +10 -3
  128. package/dist/plugins/ast-scope.d.ts +10 -11
  129. package/dist/plugins/ast-scope.js +10 -22
  130. package/dist/plugins/ast-utils.d.ts +16 -29
  131. package/dist/plugins/ast-utils.js +27 -71
  132. package/dist/plugins/async-hooks-stub.d.ts +2 -3
  133. package/dist/plugins/client-reference-dedup.d.ts +4 -5
  134. package/dist/plugins/commonjs-syntax.d.ts +16 -0
  135. package/dist/plugins/commonjs-syntax.js +22 -0
  136. package/dist/plugins/css-data-url.d.ts +2 -3
  137. package/dist/plugins/css-module-imports.d.ts +3 -4
  138. package/dist/plugins/css-module-imports.js +1 -1
  139. package/dist/plugins/dynamic-preload-metadata.d.ts +3 -4
  140. package/dist/plugins/dynamic-preload-metadata.js +55 -154
  141. package/dist/plugins/environment.d.ts +2 -3
  142. package/dist/plugins/extensionless-dynamic-import.d.ts +2 -3
  143. package/dist/plugins/extensionless-dynamic-import.js +6 -10
  144. package/dist/plugins/fonts.d.ts +10 -11
  145. package/dist/plugins/fonts.js +4 -3
  146. package/dist/plugins/ignore-dynamic-requests.d.ts +14 -4
  147. package/dist/plugins/ignore-dynamic-requests.js +113 -91
  148. package/dist/plugins/import-meta-url.d.ts +6 -7
  149. package/dist/plugins/import-meta-url.js +36 -48
  150. package/dist/plugins/instrumentation-client.d.ts +3 -3
  151. package/dist/plugins/instrumentation-client.js +46 -10
  152. package/dist/plugins/middleware-export-validation.d.ts +3 -4
  153. package/dist/plugins/middleware-export-validation.js +3 -3
  154. package/dist/plugins/middleware-server-only.d.ts +2 -3
  155. package/dist/plugins/og-asset-ownership.d.ts +5 -4
  156. package/dist/plugins/og-asset-ownership.js +24 -13
  157. package/dist/plugins/og-assets.d.ts +22 -5
  158. package/dist/plugins/og-assets.js +82 -21
  159. package/dist/plugins/og-harfbuzz.d.ts +24 -0
  160. package/dist/plugins/og-harfbuzz.js +271 -0
  161. package/dist/plugins/optimize-imports.d.ts +7 -7
  162. package/dist/plugins/optimize-imports.js +34 -45
  163. package/dist/plugins/pages-node-externals.d.ts +2 -3
  164. package/dist/plugins/pages-node-externals.js +6 -11
  165. package/dist/plugins/postcss.d.ts +8 -4
  166. package/dist/plugins/postcss.js +1 -1
  167. package/dist/plugins/remove-console.d.ts +2 -3
  168. package/dist/plugins/remove-console.js +0 -1
  169. package/dist/plugins/require-condition-resolution.d.ts +3 -4
  170. package/dist/plugins/require-condition-resolution.js +17 -18
  171. package/dist/plugins/require-context.d.ts +3 -3
  172. package/dist/plugins/require-context.js +41 -22
  173. package/dist/plugins/rsc-client-reference-loaders.d.ts +2 -3
  174. package/dist/plugins/rsc-client-shim-excludes.d.ts +4 -5
  175. package/dist/plugins/rsc-client-shim-excludes.js +1 -0
  176. package/dist/plugins/rsc-reference-validation-normalizer.d.ts +2 -3
  177. package/dist/plugins/sass.d.ts +7 -8
  178. package/dist/plugins/sass.js +7 -4
  179. package/dist/plugins/scan-build-css.d.ts +12 -0
  180. package/dist/plugins/scan-build-css.js +39 -0
  181. package/dist/plugins/server-externals-manifest.d.ts +2 -3
  182. package/dist/plugins/strip-server-exports.d.ts +7 -6
  183. package/dist/plugins/strip-server-exports.js +4 -2
  184. package/dist/plugins/styled-jsx.d.ts +2 -3
  185. package/dist/plugins/styled-jsx.js +7 -7
  186. package/dist/plugins/transform-cache.d.ts +2 -3
  187. package/dist/plugins/transform-result.d.ts +21 -4
  188. package/dist/plugins/transform-result.js +23 -2
  189. package/dist/plugins/transitive-externals.d.ts +2 -3
  190. package/dist/plugins/typeof-window.d.ts +16 -7
  191. package/dist/plugins/typeof-window.js +62 -39
  192. package/dist/plugins/use-cache-callable.d.ts +2 -5
  193. package/dist/plugins/use-cache-callable.js +43 -22
  194. package/dist/plugins/wasm-module-import.d.ts +2 -3
  195. package/dist/plugins/worker-image-imports.d.ts +2 -3
  196. package/dist/plugins/worker-image-imports.js +6 -8
  197. package/dist/routing/app-route-graph.d.ts +18 -19
  198. package/dist/routing/app-route-graph.js +5 -6
  199. package/dist/routing/app-route-ids.d.ts +3 -0
  200. package/dist/routing/app-route-ids.js +6 -0
  201. package/dist/routing/app-router.d.ts +19 -6
  202. package/dist/routing/app-router.js +24 -2
  203. package/dist/routing/file-matcher.d.ts +9 -10
  204. package/dist/routing/pages-router.d.ts +6 -6
  205. package/dist/routing/pages-router.js +1 -1
  206. package/dist/routing/route-matching.d.ts +4 -5
  207. package/dist/routing/route-matching.js +4 -2
  208. package/dist/routing/route-pattern.d.ts +13 -14
  209. package/dist/routing/route-trie.d.ts +5 -6
  210. package/dist/routing/route-validation.d.ts +3 -4
  211. package/dist/routing/route-validation.js +12 -11
  212. package/dist/routing/utils.d.ts +13 -14
  213. package/dist/server/accept-encoding.d.ts +9 -10
  214. package/dist/server/api-handler.d.ts +2 -3
  215. package/dist/server/api-handler.js +9 -6
  216. package/dist/server/app-action-forwarding.d.ts +3 -4
  217. package/dist/server/app-action-forwarding.js +1 -1
  218. package/dist/server/app-action-request.d.ts +2 -3
  219. package/dist/server/app-bfcache-id.d.ts +4 -4
  220. package/dist/server/app-bfcache-id.js +7 -1
  221. package/dist/server/app-bfcache-identity.d.ts +8 -9
  222. package/dist/server/app-bfcache-identity.js +1 -2
  223. package/dist/server/app-browser-action-result.d.ts +15 -16
  224. package/dist/server/app-browser-client-reuse-manifest.d.ts +2 -3
  225. package/dist/server/app-browser-entry.js +91 -36
  226. package/dist/server/app-browser-error.d.ts +5 -6
  227. package/dist/server/app-browser-error.js +9 -3
  228. package/dist/server/app-browser-history-controller.d.ts +4 -5
  229. package/dist/server/app-browser-hydration.d.ts +16 -6
  230. package/dist/server/app-browser-hydration.js +15 -2
  231. package/dist/server/app-browser-interception-context.d.ts +3 -4
  232. package/dist/server/app-browser-mpa-navigation.d.ts +4 -5
  233. package/dist/server/app-browser-navigation-abort.d.ts +3 -4
  234. package/dist/server/app-browser-navigation-controller.d.ts +8 -8
  235. package/dist/server/app-browser-navigation-controller.js +9 -5
  236. package/dist/server/app-browser-navigation-response.d.ts +2 -3
  237. package/dist/server/app-browser-popstate.d.ts +4 -5
  238. package/dist/server/app-browser-prefetch-response.d.ts +5 -6
  239. package/dist/server/app-browser-rsc-redirect.d.ts +4 -5
  240. package/dist/server/app-browser-server-action-client.d.ts +7 -6
  241. package/dist/server/app-browser-server-action-client.js +9 -5
  242. package/dist/server/app-browser-server-action-navigation.d.ts +2 -3
  243. package/dist/server/app-browser-state.d.ts +17 -17
  244. package/dist/server/app-browser-state.js +7 -3
  245. package/dist/server/app-browser-stream.d.ts +5 -6
  246. package/dist/server/app-browser-stream.js +8 -6
  247. package/dist/server/app-browser-supplemental-refresh.d.ts +11 -12
  248. package/dist/server/app-browser-visible-commit.d.ts +6 -7
  249. package/dist/server/app-client-reference-preloader.d.ts +2 -3
  250. package/dist/server/app-elements-wire-key.d.ts +25 -0
  251. package/dist/server/app-elements-wire-key.js +69 -0
  252. package/dist/server/app-elements-wire.d.ts +34 -53
  253. package/dist/server/app-elements-wire.js +4 -75
  254. package/dist/server/app-elements.d.ts +5 -5
  255. package/dist/server/app-elements.js +1 -1
  256. package/dist/server/app-fallback-renderer.d.ts +4 -4
  257. package/dist/server/app-fallback-renderer.js +6 -6
  258. package/dist/server/app-fetch-tracing.d.ts +15 -0
  259. package/dist/server/app-fetch-tracing.js +38 -0
  260. package/dist/server/app-history-state.d.ts +25 -27
  261. package/dist/server/app-history-state.js +21 -16
  262. package/dist/server/app-hook-warning-suppression.d.ts +2 -3
  263. package/dist/server/app-hydration-cache-publication.d.ts +3 -4
  264. package/dist/server/app-inline-css-client.d.ts +3 -4
  265. package/dist/server/app-interception-context-header.d.ts +2 -3
  266. package/dist/server/app-layout-param-observation.d.ts +7 -8
  267. package/dist/server/app-metadata-tracing.d.ts +12 -0
  268. package/dist/server/app-metadata-tracing.js +17 -0
  269. package/dist/server/app-middleware.d.ts +7 -7
  270. package/dist/server/app-middleware.js +2 -3
  271. package/dist/server/app-mounted-slots-header.d.ts +2 -3
  272. package/dist/server/app-mounted-slots-header.js +2 -2
  273. package/dist/server/app-optimistic-routing.d.ts +10 -11
  274. package/dist/server/app-optimistic-routing.js +3 -2
  275. package/dist/server/app-page-boundary-render.d.ts +6 -6
  276. package/dist/server/app-page-boundary-render.js +10 -4
  277. package/dist/server/app-page-boundary.d.ts +9 -10
  278. package/dist/server/app-page-boundary.js +1 -1
  279. package/dist/server/app-page-cache-finalizer.d.ts +18 -9
  280. package/dist/server/app-page-cache-finalizer.js +51 -16
  281. package/dist/server/app-page-cache-render.d.ts +8 -5
  282. package/dist/server/app-page-cache-render.js +22 -4
  283. package/dist/server/app-page-cache.d.ts +28 -9
  284. package/dist/server/app-page-cache.js +95 -24
  285. package/dist/server/app-page-dispatch.d.ts +34 -12
  286. package/dist/server/app-page-dispatch.js +181 -64
  287. package/dist/server/app-page-element-builder.d.ts +13 -11
  288. package/dist/server/app-page-element-builder.js +104 -61
  289. package/dist/server/app-page-execution.d.ts +14 -14
  290. package/dist/server/app-page-execution.js +11 -7
  291. package/dist/server/app-page-head.d.ts +19 -16
  292. package/dist/server/app-page-head.js +25 -25
  293. package/dist/server/app-page-http-access-fallback-metadata.d.ts +6 -5
  294. package/dist/server/app-page-http-access-fallback-metadata.js +9 -2
  295. package/dist/server/app-page-method.d.ts +5 -11
  296. package/dist/server/app-page-method.js +2 -9
  297. package/dist/server/app-page-params.d.ts +5 -6
  298. package/dist/server/app-page-ppr-runtime.d.ts +2 -2
  299. package/dist/server/app-page-probe.d.ts +5 -6
  300. package/dist/server/app-page-probe.js +5 -4
  301. package/dist/server/app-page-render-identity.d.ts +4 -5
  302. package/dist/server/app-page-render-observation.d.ts +8 -9
  303. package/dist/server/app-page-render-observation.js +1 -1
  304. package/dist/server/app-page-render.d.ts +41 -6
  305. package/dist/server/app-page-render.js +171 -24
  306. package/dist/server/app-page-request.d.ts +10 -9
  307. package/dist/server/app-page-request.js +16 -12
  308. package/dist/server/app-page-response.d.ts +20 -9
  309. package/dist/server/app-page-response.js +30 -12
  310. package/dist/server/app-page-route-wiring.d.ts +15 -15
  311. package/dist/server/app-page-route-wiring.js +31 -24
  312. package/dist/server/app-page-search-params-observation.d.ts +26 -5
  313. package/dist/server/app-page-search-params-observation.js +43 -7
  314. package/dist/server/app-page-segment-plan.d.ts +2 -3
  315. package/dist/server/app-page-segment-state.d.ts +11 -12
  316. package/dist/server/app-page-stream.d.ts +27 -11
  317. package/dist/server/app-page-stream.js +34 -6
  318. package/dist/server/app-page-tracing.d.ts +33 -0
  319. package/dist/server/app-page-tracing.js +50 -0
  320. package/dist/server/app-pages-bridge.d.ts +6 -6
  321. package/dist/server/app-pages-bridge.js +18 -4
  322. package/dist/server/app-post-middleware-context.d.ts +2 -3
  323. package/dist/server/app-ppr-fallback-shell-render.d.ts +3 -4
  324. package/dist/server/app-ppr-fallback-shell-render.js +3 -2
  325. package/dist/server/app-ppr-fallback-shell.d.ts +6 -7
  326. package/dist/server/app-prerender-endpoints.d.ts +5 -5
  327. package/dist/server/app-prerender-endpoints.js +3 -1
  328. package/dist/server/app-prerender-static-params.d.ts +15 -7
  329. package/dist/server/app-prerender-static-params.js +24 -9
  330. package/dist/server/app-render-abort-error.d.ts +3 -0
  331. package/dist/server/app-render-abort-error.js +8 -0
  332. package/dist/server/app-render-dependency.d.ts +14 -13
  333. package/dist/server/app-render-dependency.js +5 -1
  334. package/dist/server/app-request-context.d.ts +3 -4
  335. package/dist/server/app-request-stage-context.d.ts +5 -0
  336. package/dist/server/app-request-stage-context.js +11 -0
  337. package/dist/server/app-request-stage-dispatch.d.ts +25 -0
  338. package/dist/server/app-request-stage-dispatch.js +54 -0
  339. package/dist/server/app-request-stage-independent-entry.d.ts +8 -0
  340. package/dist/server/app-request-stage-independent-entry.js +112 -0
  341. package/dist/server/app-response-header-provenance.d.ts +13 -7
  342. package/dist/server/app-response-header-provenance.js +34 -1
  343. package/dist/server/app-response-stage-entry.d.ts +9 -0
  344. package/dist/server/app-response-stage-entry.js +87 -0
  345. package/dist/server/app-route-handler-cache.d.ts +4 -4
  346. package/dist/server/app-route-handler-cache.js +51 -35
  347. package/dist/server/app-route-handler-dispatch.d.ts +3 -3
  348. package/dist/server/app-route-handler-dispatch.js +77 -56
  349. package/dist/server/app-route-handler-execution.d.ts +26 -14
  350. package/dist/server/app-route-handler-execution.js +94 -28
  351. package/dist/server/app-route-handler-middleware-context.d.ts +8 -0
  352. package/dist/server/app-route-handler-middleware-context.js +15 -0
  353. package/dist/server/app-route-handler-policy.d.ts +11 -11
  354. package/dist/server/app-route-handler-policy.js +2 -2
  355. package/dist/server/app-route-handler-response.d.ts +9 -10
  356. package/dist/server/app-route-handler-response.js +14 -3
  357. package/dist/server/app-route-handler-runtime.d.ts +9 -10
  358. package/dist/server/app-route-handler-runtime.js +20 -16
  359. package/dist/server/app-route-module-loader.d.ts +6 -7
  360. package/dist/server/app-route-request-built-ins.d.ts +3 -4
  361. package/dist/server/app-route-tree-prefetch.d.ts +6 -7
  362. package/dist/server/app-route-tree-prefetch.js +2 -1
  363. package/dist/server/app-router-entry.d.ts +4 -1
  364. package/dist/server/app-router-entry.js +33 -17
  365. package/dist/server/app-rsc-cache-busting.d.ts +34 -27
  366. package/dist/server/app-rsc-cache-busting.js +14 -2
  367. package/dist/server/app-rsc-combined-handler.d.ts +9 -0
  368. package/dist/server/app-rsc-combined-handler.js +11 -0
  369. package/dist/server/app-rsc-embedded-chunks.d.ts +6 -7
  370. package/dist/server/app-rsc-error-handler.d.ts +12 -6
  371. package/dist/server/app-rsc-error-handler.js +15 -6
  372. package/dist/server/app-rsc-errors.d.ts +11 -9
  373. package/dist/server/app-rsc-errors.js +14 -16
  374. package/dist/server/app-rsc-handler.d.ts +32 -6
  375. package/dist/server/app-rsc-handler.js +425 -64
  376. package/dist/server/app-rsc-redirect-flight.d.ts +4 -5
  377. package/dist/server/app-rsc-render-mode.d.ts +8 -9
  378. package/dist/server/app-rsc-request-normalization.d.ts +3 -3
  379. package/dist/server/app-rsc-request-normalization.js +5 -3
  380. package/dist/server/app-rsc-response-finalizer.d.ts +8 -5
  381. package/dist/server/app-rsc-response-finalizer.js +10 -7
  382. package/dist/server/app-rsc-response-stage.d.ts +6 -0
  383. package/dist/server/app-rsc-response-stage.js +251 -0
  384. package/dist/server/app-rsc-route-matching.d.ts +3 -4
  385. package/dist/server/app-rsc-route-matching.js +3 -2
  386. package/dist/server/app-rsc-state-fingerprint.d.ts +3 -4
  387. package/dist/server/app-rsc-vary.d.ts +16 -0
  388. package/dist/server/app-rsc-vary.js +31 -0
  389. package/dist/server/app-segment-config.d.ts +119 -7
  390. package/dist/server/app-segment-config.js +242 -2
  391. package/dist/server/app-server-action-execution.d.ts +18 -13
  392. package/dist/server/app-server-action-execution.js +86 -33
  393. package/dist/server/app-ssr-entry.d.ts +14 -4
  394. package/dist/server/app-ssr-entry.js +62 -15
  395. package/dist/server/app-ssr-error-meta.d.ts +3 -4
  396. package/dist/server/app-ssr-error-meta.js +2 -1
  397. package/dist/server/app-ssr-router-instance.d.ts +2 -3
  398. package/dist/server/app-ssr-search-params-gate.d.ts +20 -0
  399. package/dist/server/app-ssr-search-params-gate.js +54 -0
  400. package/dist/server/app-ssr-stream.d.ts +13 -9
  401. package/dist/server/app-ssr-stream.js +34 -8
  402. package/dist/server/app-static-generation.d.ts +4 -5
  403. package/dist/server/app-visited-response-cache.d.ts +11 -12
  404. package/dist/server/app-visited-response-cache.js +2 -2
  405. package/dist/server/app-worker-stages.d.ts +112 -0
  406. package/dist/server/app-worker-stages.js +105 -0
  407. package/dist/server/artifact-compatibility.d.ts +11 -12
  408. package/dist/server/before-interactive-head.d.ts +2 -3
  409. package/dist/server/bfcache-identity.d.ts +7 -8
  410. package/dist/server/cache-control.d.ts +35 -13
  411. package/dist/server/cache-control.js +64 -6
  412. package/dist/server/cache-headers.d.ts +3 -4
  413. package/dist/server/cache-proof.d.ts +75 -70
  414. package/dist/server/cache-proof.js +9 -1
  415. package/dist/server/cacheability-limits.d.ts +4 -5
  416. package/dist/server/cacheability-limits.js +2 -2
  417. package/dist/server/cacheability-manifest.d.ts +42 -16
  418. package/dist/server/cacheability-manifest.js +60 -10
  419. package/dist/server/cacheability-request.d.ts +37 -8
  420. package/dist/server/cacheability-request.js +192 -90
  421. package/dist/server/client-reuse-manifest.d.ts +17 -18
  422. package/dist/server/client-reuse-manifest.js +2 -2
  423. package/dist/server/client-trace-metadata.d.ts +9 -6
  424. package/dist/server/client-trace-metadata.js +27 -15
  425. package/dist/server/cloudflare-workers-tracing.d.ts +1 -0
  426. package/dist/server/cloudflare-workers-tracing.js +8 -0
  427. package/dist/server/config-headers.d.ts +19 -5
  428. package/dist/server/config-headers.js +25 -11
  429. package/dist/server/cookie-utils.d.ts +2 -3
  430. package/dist/server/csp.d.ts +5 -6
  431. package/dist/server/default-global-error-module.d.ts +2 -3
  432. package/dist/server/default-global-not-found-module.d.ts +2 -3
  433. package/dist/server/default-not-found-module.d.ts +2 -3
  434. package/dist/server/defer-until-stream-consumed.d.ts +2 -3
  435. package/dist/server/defer-until-stream-consumed.js +2 -1
  436. package/dist/server/dev-initial-server-error.d.ts +3 -4
  437. package/dist/server/dev-initial-server-error.js +2 -1
  438. package/dist/server/dev-lockfile.d.ts +7 -8
  439. package/dist/server/dev-lockfile.js +4 -1
  440. package/dist/server/dev-module-runner.d.ts +2 -3
  441. package/dist/server/dev-origin-check.d.ts +5 -6
  442. package/dist/server/dev-route-files.d.ts +2 -3
  443. package/dist/server/dev-server.d.ts +4 -5
  444. package/dist/server/dev-server.js +141 -64
  445. package/dist/server/dev-stack-sourcemap.d.ts +7 -7
  446. package/dist/server/dev-stack-sourcemap.js +1 -1
  447. package/dist/server/document-initial-head.d.ts +3 -4
  448. package/dist/server/edge-api-runtime.d.ts +4 -5
  449. package/dist/server/fetch-handler.d.ts +3 -2
  450. package/dist/server/fetch-handler.js +3 -18
  451. package/dist/server/file-based-metadata.d.ts +2 -3
  452. package/dist/server/framework-tracer.d.ts +46 -0
  453. package/dist/server/framework-tracer.js +125 -0
  454. package/dist/server/fully-buffered-response.d.ts +11 -0
  455. package/dist/server/fully-buffered-response.js +19 -0
  456. package/dist/server/headers.d.ts +56 -61
  457. package/dist/server/headers.js +22 -31
  458. package/dist/server/html.d.ts +6 -27
  459. package/dist/server/html.js +16 -1
  460. package/dist/server/http-conditional.d.ts +5 -6
  461. package/dist/server/http-date.d.ts +2 -3
  462. package/dist/server/http-error-responses.d.ts +9 -10
  463. package/dist/server/http-error-responses.js +1 -0
  464. package/dist/server/http-range.d.ts +4 -5
  465. package/dist/server/hybrid-route-priority.d.ts +4 -5
  466. package/dist/server/image-optimization.d.ts +20 -21
  467. package/dist/server/implicit-tags.d.ts +3 -4
  468. package/dist/server/instrumentation-runtime.d.ts +17 -21
  469. package/dist/server/instrumentation-runtime.js +26 -8
  470. package/dist/server/instrumentation.d.ts +26 -30
  471. package/dist/server/instrumentation.js +18 -23
  472. package/dist/server/isr-cache.d.ts +30 -27
  473. package/dist/server/isr-cache.js +23 -70
  474. package/dist/server/isr-decision.d.ts +4 -4
  475. package/dist/server/metadata-route-build-data.d.ts +4 -5
  476. package/dist/server/metadata-route-response.d.ts +7 -7
  477. package/dist/server/metadata-route-response.js +158 -35
  478. package/dist/server/metadata-routes.d.ts +18 -19
  479. package/dist/server/middleware-matcher-pattern.d.ts +6 -7
  480. package/dist/server/middleware-matcher.d.ts +6 -7
  481. package/dist/server/middleware-path-to-regexp.d.ts +6 -7
  482. package/dist/server/middleware-path-to-regexp.js +11 -9
  483. package/dist/server/middleware-response-headers.d.ts +3 -4
  484. package/dist/server/middleware-runtime.d.ts +7 -8
  485. package/dist/server/middleware-runtime.js +36 -7
  486. package/dist/server/middleware.d.ts +5 -5
  487. package/dist/server/multi-stage.d.ts +141 -0
  488. package/dist/server/multi-stage.js +8 -0
  489. package/dist/server/navigation-planner.d.ts +26 -26
  490. package/dist/server/navigation-trace.d.ts +11 -12
  491. package/dist/server/next-error-digest.d.ts +4 -5
  492. package/dist/server/normalize-path.d.ts +5 -6
  493. package/dist/server/open-redirect.d.ts +2 -3
  494. package/dist/server/opentelemetry-api.d.ts +59 -0
  495. package/dist/server/opentelemetry-api.js +53 -0
  496. package/dist/server/opentelemetry-tracing.d.ts +5 -0
  497. package/dist/server/opentelemetry-tracing.js +83 -0
  498. package/dist/server/operation-token.d.ts +11 -12
  499. package/dist/server/otel-tracer-extension.d.ts +7 -9
  500. package/dist/server/otel-tracer-extension.js +37 -36
  501. package/dist/server/pages-api-route.d.ts +5 -4
  502. package/dist/server/pages-api-route.js +28 -9
  503. package/dist/server/pages-asset-tags.d.ts +7 -6
  504. package/dist/server/pages-asset-tags.js +104 -18
  505. package/dist/server/pages-body-parser-config.d.ts +4 -5
  506. package/dist/server/pages-body-parser-config.js +4 -4
  507. package/dist/server/pages-client-assets.d.ts +13 -5
  508. package/dist/server/pages-data-route.d.ts +11 -12
  509. package/dist/server/pages-data-route.js +1 -1
  510. package/dist/server/pages-default-404.d.ts +3 -4
  511. package/dist/server/pages-dev-hydration.d.ts +9 -4
  512. package/dist/server/pages-dev-hydration.js +19 -7
  513. package/dist/server/pages-dev-module-url.d.ts +3 -4
  514. package/dist/server/pages-dev-stylesheets.d.ts +5 -6
  515. package/dist/server/pages-document-asset-props.d.ts +6 -7
  516. package/dist/server/pages-document-initial-props.d.ts +5 -5
  517. package/dist/server/pages-document-initial-props.js +4 -2
  518. package/dist/server/pages-execution-tracing.d.ts +40 -0
  519. package/dist/server/pages-execution-tracing.js +80 -0
  520. package/dist/server/pages-get-initial-props.d.ts +9 -10
  521. package/dist/server/pages-i18n.d.ts +8 -8
  522. package/dist/server/pages-media-type.d.ts +4 -5
  523. package/dist/server/pages-node-compat.d.ts +11 -10
  524. package/dist/server/pages-node-compat.js +12 -4
  525. package/dist/server/pages-page-data.d.ts +23 -19
  526. package/dist/server/pages-page-data.js +82 -75
  527. package/dist/server/pages-page-handler.d.ts +7 -6
  528. package/dist/server/pages-page-handler.js +103 -47
  529. package/dist/server/pages-page-method.d.ts +2 -3
  530. package/dist/server/pages-page-response.d.ts +14 -10
  531. package/dist/server/pages-page-response.js +52 -32
  532. package/dist/server/pages-preview.d.ts +10 -11
  533. package/dist/server/pages-readiness.d.ts +2 -3
  534. package/dist/server/pages-request-pipeline.d.ts +15 -12
  535. package/dist/server/pages-request-pipeline.js +80 -35
  536. package/dist/server/pages-request-stage-entry.d.ts +23 -0
  537. package/dist/server/pages-request-stage-entry.js +316 -0
  538. package/dist/server/pages-response-stage-entry.d.ts +11 -0
  539. package/dist/server/pages-response-stage-entry.js +106 -0
  540. package/dist/server/pages-response-stage.d.ts +31 -0
  541. package/dist/server/pages-response-stage.js +49 -0
  542. package/dist/server/pages-revalidate.d.ts +3 -4
  543. package/dist/server/pages-revalidate.js +9 -4
  544. package/dist/server/pages-route-data-kind.d.ts +18 -0
  545. package/dist/server/pages-route-data-kind.js +11 -0
  546. package/dist/server/pages-router-entry.d.ts +1 -25
  547. package/dist/server/pages-router-entry.js +35 -148
  548. package/dist/server/pages-serializable-props.d.ts +3 -4
  549. package/dist/server/pregenerated-concrete-paths.d.ts +9 -7
  550. package/dist/server/pregenerated-concrete-paths.js +12 -6
  551. package/dist/server/prerender-cache-life-header.d.ts +3 -4
  552. package/dist/server/prerender-manifest.d.ts +17 -11
  553. package/dist/server/prerender-manifest.js +7 -4
  554. package/dist/server/prerender-route-params.d.ts +16 -9
  555. package/dist/server/prerender-route-params.js +18 -3
  556. package/dist/server/prerender-work-unit-setup.d.ts +2 -3
  557. package/dist/server/prerender-work-unit-setup.js +5 -5
  558. package/dist/server/prod-server.d.ts +12 -9
  559. package/dist/server/prod-server.js +127 -44
  560. package/dist/server/proxy-trust.d.ts +5 -6
  561. package/dist/server/request-log.d.ts +3 -4
  562. package/dist/server/request-pipeline.d.ts +16 -16
  563. package/dist/server/request-pipeline.js +7 -2
  564. package/dist/server/request-stage.d.ts +5 -0
  565. package/dist/server/request-stage.js +7 -0
  566. package/dist/server/request-tracing.d.ts +22 -0
  567. package/dist/server/request-tracing.js +180 -0
  568. package/dist/server/response-stage-cacheability.d.ts +37 -0
  569. package/dist/server/response-stage-cacheability.js +55 -0
  570. package/dist/server/response-stage-policy.d.ts +23 -0
  571. package/dist/server/response-stage-policy.js +89 -0
  572. package/dist/server/response-stage.d.ts +5 -0
  573. package/dist/server/response-stage.js +7 -0
  574. package/dist/server/response-start-tracing.d.ts +14 -0
  575. package/dist/server/response-start-tracing.js +80 -0
  576. package/dist/server/revalidation-host.d.ts +2 -3
  577. package/dist/server/revalidation-host.js +1 -1
  578. package/dist/server/revalidation-request.d.ts +8 -0
  579. package/dist/server/revalidation-request.js +37 -0
  580. package/dist/server/rsc-completion-metadata.d.ts +6 -7
  581. package/dist/server/rsc-stream-hints.d.ts +18 -7
  582. package/dist/server/rsc-stream-hints.js +70 -35
  583. package/dist/server/seed-cache.d.ts +2 -3
  584. package/dist/server/seed-cache.js +8 -7
  585. package/dist/server/server-action-not-found.d.ts +5 -6
  586. package/dist/server/server-globals.d.ts +2 -3
  587. package/dist/server/skip-cache-proof.d.ts +4 -4
  588. package/dist/server/socket-error-backstop.d.ts +5 -6
  589. package/dist/server/socket-error-backstop.js +1 -1
  590. package/dist/server/static-file-cache.d.ts +5 -6
  591. package/dist/server/static-file-cache.js +9 -7
  592. package/dist/server/static-file-signal.d.ts +9 -6
  593. package/dist/server/static-file-signal.js +51 -2
  594. package/dist/server/static-layout-client-reuse-proof.d.ts +4 -5
  595. package/dist/server/streaming-metadata.d.ts +2 -3
  596. package/dist/server/tracer.d.ts +5 -0
  597. package/dist/server/tracer.js +13 -0
  598. package/dist/server/worker-prerender-discovery.d.ts +5 -6
  599. package/dist/server/worker-revalidation-context.d.ts +4 -4
  600. package/dist/server/worker-revalidation-context.js +6 -5
  601. package/dist/server/worker-stages.d.ts +43 -0
  602. package/dist/server/worker-stages.js +25 -0
  603. package/dist/server/worker-utils.d.ts +5 -6
  604. package/dist/server/worker-utils.js +2 -1
  605. package/dist/server/workers-tracing.d.ts +34 -0
  606. package/dist/server/workers-tracing.js +67 -0
  607. package/dist/shims/amp.d.ts +3 -4
  608. package/dist/shims/app-router-scroll-state.d.ts +9 -10
  609. package/dist/shims/app-router-scroll.d.ts +4 -5
  610. package/dist/shims/app-router-scroll.js +2 -1
  611. package/dist/shims/app.d.ts +5 -6
  612. package/dist/shims/before-interactive-context.d.ts +5 -6
  613. package/dist/shims/cache-callable-runtime.d.ts +44 -4
  614. package/dist/shims/cache-callable-runtime.js +168 -8
  615. package/dist/shims/cache-for-request.d.ts +2 -3
  616. package/dist/shims/cache-handler.d.ts +33 -20
  617. package/dist/shims/cache-handler.js +61 -2
  618. package/dist/shims/cache-request-state.d.ts +26 -38
  619. package/dist/shims/cache-request-state.js +2 -13
  620. package/dist/shims/cache-runtime.d.ts +23 -21
  621. package/dist/shims/cache-runtime.js +110 -28
  622. package/dist/shims/cache.d.ts +17 -16
  623. package/dist/shims/cache.js +19 -15
  624. package/dist/shims/cacheability-classification.d.ts +50 -29
  625. package/dist/shims/cacheability-classification.js +29 -14
  626. package/dist/shims/cdn-cache-state.d.ts +13 -0
  627. package/dist/shims/cdn-cache-state.js +23 -0
  628. package/dist/shims/cdn-cache.d.ts +59 -21
  629. package/dist/shims/cdn-cache.js +31 -47
  630. package/dist/shims/client-hook-error.d.ts +3 -4
  631. package/dist/shims/client-locale.d.ts +2 -3
  632. package/dist/shims/client-page-root.d.ts +24 -0
  633. package/dist/shims/client-page-root.js +121 -0
  634. package/dist/shims/compat-router.d.ts +2 -3
  635. package/dist/shims/config.d.ts +3 -4
  636. package/dist/shims/constants.d.ts +73 -74
  637. package/dist/shims/constants.js +1 -1
  638. package/dist/shims/default-not-found.d.ts +2 -3
  639. package/dist/shims/document.d.ts +9 -9
  640. package/dist/shims/dynamic-preload-chunks.d.ts +2 -3
  641. package/dist/shims/dynamic-preload-chunks.js +17 -13
  642. package/dist/shims/dynamic.d.ts +3 -3
  643. package/dist/shims/error-boundary-navigation.d.ts +3 -4
  644. package/dist/shims/error-boundary.d.ts +17 -18
  645. package/dist/shims/error-boundary.js +17 -11
  646. package/dist/shims/error.d.ts +5 -19
  647. package/dist/shims/error.js +17 -10
  648. package/dist/shims/error.react-server.d.ts +4 -7
  649. package/dist/shims/error.react-server.js +4 -1
  650. package/dist/shims/fetch-cache.d.ts +22 -22
  651. package/dist/shims/fetch-cache.js +46 -20
  652. package/dist/shims/font-google-base.d.ts +9 -9
  653. package/dist/shims/font-google-base.js +2 -1
  654. package/dist/shims/font-local.d.ts +3 -3
  655. package/dist/shims/font-local.js +1 -1
  656. package/dist/shims/font-utils.d.ts +14 -15
  657. package/dist/shims/form.d.ts +2 -2
  658. package/dist/shims/form.js +10 -7
  659. package/dist/shims/hash-scroll.d.ts +5 -6
  660. package/dist/shims/head-state.d.ts +4 -5
  661. package/dist/shims/head.d.ts +16 -16
  662. package/dist/shims/head.js +5 -4
  663. package/dist/shims/headers.d.ts +44 -73
  664. package/dist/shims/headers.js +87 -144
  665. package/dist/shims/i18n-context.d.ts +5 -6
  666. package/dist/shims/i18n-state.d.ts +4 -5
  667. package/dist/shims/image-config.d.ts +5 -6
  668. package/dist/shims/image-config.js +2 -0
  669. package/dist/shims/image.d.ts +5 -5
  670. package/dist/shims/image.js +12 -8
  671. package/dist/shims/internal/als-registry.d.ts +4 -5
  672. package/dist/shims/internal/api-utils.d.ts +3 -4
  673. package/dist/shims/internal/app-page-props-cache-key.d.ts +32 -4
  674. package/dist/shims/internal/app-page-props-cache-key.js +53 -1
  675. package/dist/shims/internal/app-prefetch-fetch-queue.d.ts +5 -6
  676. package/dist/shims/internal/app-prefetch-rsc-request.d.ts +5 -17
  677. package/dist/shims/internal/app-prefetch-rsc-request.js +5 -14
  678. package/dist/shims/internal/app-route-detection.d.ts +2 -2
  679. package/dist/shims/internal/app-route-prefetch-policy.d.ts +5 -8
  680. package/dist/shims/internal/app-route-prefetch-policy.js +0 -1
  681. package/dist/shims/internal/app-router-context.d.ts +9 -10
  682. package/dist/shims/internal/cache-context-accessor.d.ts +16 -0
  683. package/dist/shims/internal/cache-context-accessor.js +15 -0
  684. package/dist/shims/internal/cookie-serialize.d.ts +4 -5
  685. package/dist/shims/internal/format-url-object.d.ts +7 -0
  686. package/dist/shims/internal/format-url-object.js +53 -0
  687. package/dist/shims/internal/headers-state.d.ts +74 -0
  688. package/dist/shims/internal/headers-state.js +157 -0
  689. package/dist/shims/internal/hybrid-client-route-owner-direct.d.ts +6 -7
  690. package/dist/shims/internal/hybrid-client-route-owner.d.ts +3 -3
  691. package/dist/shims/internal/hybrid-client-route-owner.js +3 -2
  692. package/dist/shims/internal/interpolate-as.d.ts +5 -6
  693. package/dist/shims/internal/interpolate-as.js +4 -2
  694. package/dist/shims/internal/link-status-registry.d.ts +5 -6
  695. package/dist/shims/internal/make-hanging-promise.d.ts +3 -4
  696. package/dist/shims/internal/navigation-untracked.d.ts +2 -3
  697. package/dist/shims/internal/normalize-router-href.d.ts +15 -0
  698. package/dist/shims/internal/normalize-router-href.js +41 -0
  699. package/dist/shims/internal/pages-data-fetch-dedup.d.ts +8 -9
  700. package/dist/shims/internal/pages-data-target.d.ts +8 -6
  701. package/dist/shims/internal/pages-data-target.js +32 -36
  702. package/dist/shims/internal/pages-data-url.d.ts +4 -5
  703. package/dist/shims/internal/pages-data-url.js +2 -1
  704. package/dist/shims/internal/pages-router-accessor.d.ts +3 -4
  705. package/dist/shims/internal/pages-router-components.d.ts +3 -4
  706. package/dist/shims/internal/route-pattern-for-warning.d.ts +5 -6
  707. package/dist/shims/internal/route-pattern-for-warning.js +3 -3
  708. package/dist/shims/internal/router-context.d.ts +2 -3
  709. package/dist/shims/internal/thenable-well-known-properties.d.ts +10 -0
  710. package/dist/shims/internal/thenable-well-known-properties.js +33 -0
  711. package/dist/shims/internal/utils.d.ts +7 -8
  712. package/dist/shims/internal/work-unit-async-storage.d.ts +10 -11
  713. package/dist/shims/layout-segment-context.d.ts +3 -4
  714. package/dist/shims/link-prefetch.d.ts +9 -10
  715. package/dist/shims/link.d.ts +4 -4
  716. package/dist/shims/link.js +56 -116
  717. package/dist/shims/metadata.d.ts +15 -16
  718. package/dist/shims/metadata.js +40 -36
  719. package/dist/shims/navigation-context-accessors.d.ts +9 -0
  720. package/dist/shims/navigation-context-accessors.js +19 -0
  721. package/dist/shims/navigation-context-state.d.ts +27 -18
  722. package/dist/shims/navigation-errors.d.ts +18 -19
  723. package/dist/shims/navigation-state.d.ts +6 -7
  724. package/dist/shims/navigation.d.ts +80 -68
  725. package/dist/shims/navigation.js +26 -18
  726. package/dist/shims/navigation.react-server.d.ts +9 -9
  727. package/dist/shims/offline.d.ts +2 -3
  728. package/dist/shims/og.d.ts +2 -2
  729. package/dist/shims/pages-router-runtime.d.ts +4 -5
  730. package/dist/shims/ppr-fallback-shell.d.ts +13 -14
  731. package/dist/shims/readonly-url-search-params.d.ts +2 -3
  732. package/dist/shims/request-context.d.ts +5 -6
  733. package/dist/shims/request-state-types.d.ts +2 -1
  734. package/dist/shims/root-params.d.ts +14 -15
  735. package/dist/shims/root-params.js +1 -1
  736. package/dist/shims/router-state.d.ts +5 -6
  737. package/dist/shims/router-state.js +1 -1
  738. package/dist/shims/router.d.ts +22 -21
  739. package/dist/shims/router.js +339 -164
  740. package/dist/shims/script-nonce-context.d.ts +8 -6
  741. package/dist/shims/script-nonce-context.js +15 -6
  742. package/dist/shims/script.d.ts +4 -4
  743. package/dist/shims/script.js +9 -7
  744. package/dist/shims/search-params-gate.d.ts +35 -0
  745. package/dist/shims/search-params-gate.js +32 -0
  746. package/dist/shims/server.d.ts +19 -51
  747. package/dist/shims/server.js +66 -30
  748. package/dist/shims/slot.d.ts +33 -15
  749. package/dist/shims/slot.js +41 -9
  750. package/dist/shims/streamed-icons.d.ts +3 -4
  751. package/dist/shims/thenable-params.d.ts +5 -7
  752. package/dist/shims/thenable-params.js +3 -24
  753. package/dist/shims/unified-request-context.d.ts +35 -32
  754. package/dist/shims/unified-request-context.js +34 -24
  755. package/dist/shims/unrecognized-action-error.d.ts +3 -4
  756. package/dist/shims/url-safety.d.ts +5 -6
  757. package/dist/shims/url-utils.d.ts +12 -13
  758. package/dist/shims/use-merged-ref.d.ts +2 -3
  759. package/dist/shims/user-agent.d.ts +31 -0
  760. package/dist/shims/user-agent.js +16 -0
  761. package/dist/shims/web-vitals.d.ts +2 -2
  762. package/dist/typegen.d.ts +3 -4
  763. package/dist/utils/asset-prefix.d.ts +7 -8
  764. package/dist/utils/base-path.d.ts +5 -6
  765. package/dist/utils/built-asset-url.d.ts +2 -3
  766. package/dist/utils/built-asset-url.js +1 -1
  767. package/dist/utils/cache-control-metadata.d.ts +4 -5
  768. package/dist/utils/client-build-manifest.d.ts +6 -7
  769. package/dist/utils/client-build-manifest.js +2 -1
  770. package/dist/utils/client-entry-manifest.d.ts +6 -7
  771. package/dist/utils/client-runtime-metadata.d.ts +8 -3
  772. package/dist/utils/client-runtime-metadata.js +18 -1
  773. package/dist/utils/commonjs-loader.d.ts +4 -5
  774. package/dist/utils/compare.d.ts +2 -3
  775. package/dist/utils/deployment-id.d.ts +6 -7
  776. package/dist/utils/dev-error-recovery-event.d.ts +2 -3
  777. package/dist/utils/dev-stack-sourcemap-endpoint.d.ts +2 -3
  778. package/dist/utils/domain-locale.d.ts +7 -8
  779. package/dist/utils/encode-cache-tag.d.ts +4 -4
  780. package/dist/utils/encode-cache-tag.js +11 -1
  781. package/dist/utils/error-cause.d.ts +2 -3
  782. package/dist/utils/external-url.d.ts +2 -3
  783. package/dist/utils/has-trailing-comma.d.ts +3 -4
  784. package/dist/utils/hash.d.ts +3 -4
  785. package/dist/utils/html-limited-bots.d.ts +3 -4
  786. package/dist/utils/lazy-chunks.d.ts +8 -9
  787. package/dist/utils/lazy-chunks.js +4 -4
  788. package/dist/utils/manifest-paths.d.ts +5 -6
  789. package/dist/utils/mdx-scan.d.ts +11 -4
  790. package/dist/utils/mdx-scan.js +27 -1
  791. package/dist/utils/middleware-request-headers.d.ts +7 -6
  792. package/dist/utils/middleware-request-headers.js +6 -1
  793. package/dist/utils/navigation-signal.d.ts +3 -3
  794. package/dist/utils/navigation-signal.js +16 -1
  795. package/dist/utils/number.d.ts +2 -3
  796. package/dist/utils/package-name.d.ts +3 -4
  797. package/dist/utils/parse-cookie.d.ts +4 -5
  798. package/dist/utils/path.d.ts +8 -9
  799. package/dist/utils/plugin-options.d.ts +2 -3
  800. package/dist/utils/precompressed-variant.d.ts +3 -4
  801. package/dist/utils/prerender-output-paths.d.ts +4 -5
  802. package/dist/utils/project.d.ts +19 -30
  803. package/dist/utils/project.js +20 -29
  804. package/dist/utils/promise.d.ts +2 -3
  805. package/dist/utils/protocol-headers.d.ts +14 -15
  806. package/dist/utils/public-file-path.d.ts +2 -3
  807. package/dist/utils/public-routes.d.ts +2 -3
  808. package/dist/utils/query.d.ts +14 -9
  809. package/dist/utils/query.js +22 -1
  810. package/dist/utils/react-compiler-support.d.ts +6 -7
  811. package/dist/utils/react-version.d.ts +4 -3
  812. package/dist/utils/react-version.js +19 -1
  813. package/dist/utils/record.d.ts +2 -3
  814. package/dist/utils/redirect-digest.d.ts +3 -4
  815. package/dist/utils/regex-safety.d.ts +4 -5
  816. package/dist/utils/regex.d.ts +2 -3
  817. package/dist/utils/safe-json-file.d.ts +2 -3
  818. package/dist/utils/sorted-array.d.ts +2 -3
  819. package/dist/utils/text-stream.d.ts +3 -4
  820. package/dist/utils/vinext-root.d.ts +2 -3
  821. package/dist/utils/virtual-module.d.ts +3 -4
  822. package/dist/utils/vite-cli-invocation.d.ts +21 -0
  823. package/dist/utils/vite-cli-invocation.js +151 -0
  824. package/dist/utils/vite-version.d.ts +5 -6
  825. package/next-package.json +4 -0
  826. package/package.json +51 -6
  827. package/dist/server/metadata-route-cache-policy.d.ts +0 -6
  828. package/dist/server/metadata-route-cache-policy.js +0 -6
@@ -1,31 +1,33 @@
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 { isUnknownRecord } from "../utils/record.js";
4
+ import { BLOCKED_PAGES } from "../shims/constants.js";
3
5
  import { VINEXT_PRERENDER_ROUTE_PARAMS_HEADER, VINEXT_PRERENDER_SECRET_HEADER, VINEXT_PRERENDER_SPECULATIVE_HEADER } from "../utils/protocol-headers.js";
6
+ import { appRouteLayoutStaticParamsGroups } from "../routing/app-router.js";
4
7
  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";
8
+ import { extractLocaleFromUrl } from "../server/pages-i18n.js";
5
9
  import { classifyAppRoute, classifyPagesRoute, getAppRouteRenderEntryPath } from "./report.js";
6
10
  import { resolveClientStaleTimeSeconds } from "../utils/cache-control-metadata.js";
7
11
  import { NoOpCacheHandler, getCacheHandler, setCacheHandler } from "../shims/cache-handler.js";
8
12
  import { headersContextFromRequest, runWithHeadersContext } from "../shims/headers.js";
9
13
  import { _consumeRequestScopedCacheLife } from "../shims/cache-request-state.js";
10
14
  import { normalizeStaticPathsEntry } from "../routing/route-pattern.js";
11
- import { BLOCKED_PAGES } from "../shims/constants.js";
15
+ import { readPrerenderSecret } from "./server-manifest.js";
12
16
  import { buildPregeneratedConcretePathTable } from "../server/prerender-manifest.js";
13
17
  import { concatUint8Arrays, decodeRscEmbeddedChunk } from "../server/app-rsc-embedded-chunks.js";
14
18
  import { navigationRuntimeRscBootstrapExpression } from "../server/app-ssr-stream.js";
15
19
  import { encodePrerenderRouteParams, serializePrerenderRouteParamsHeader } from "../server/prerender-route-params.js";
16
- import { readPrerenderSecret } from "./server-manifest.js";
17
20
  import { createAppPprFallbackShells, markAppPprDynamicFallbackShellHtml } from "../server/app-ppr-fallback-shell.js";
18
21
  import { getAppRouteOutputPath, getOutputPath, getRscOutputPath } from "../utils/prerender-output-paths.js";
19
22
  import { startProdServer } from "../server/prod-server.js";
20
23
  import { prerenderPoolAvailable, resolvePrerenderPoolSize, startPrerenderServerPool } from "./prerender-server-pool.js";
21
24
  import { enterPrerenderPhase } from "./prerender-phase.js";
22
25
  import { buildAppRouteCacheValue } from "../server/app-route-handler-response.js";
23
- import { isMetadataResponseCacheable } from "../server/metadata-route-cache-policy.js";
24
26
  import fs from "node:fs";
25
27
  import os from "node:os";
26
28
  //#region src/build/prerender.ts
27
29
  /**
28
- * Prerendering phase for vinext build.
30
+ * Prerendering phase for vite build.
29
31
  *
30
32
  * Classifies every route, renders static and ISR routes to HTML/JSON/RSC files,
31
33
  * and writes a `vinext-prerender.json` build index.
@@ -48,15 +50,19 @@ function isExperimentalPprFallbackShellGenerationEnabled(env = process.env) {
48
50
  function getErrorMessageWithStack(err) {
49
51
  return err.stack || err.message;
50
52
  }
51
- async function startOptionalPrerenderServerPool(outDir, poolSize) {
53
+ async function startOptionalPrerenderServerPool(outDir, poolSize, rscEntryPath, serverDir) {
52
54
  try {
53
- return await startPrerenderServerPool(outDir, poolSize);
55
+ return await startPrerenderServerPool(outDir, poolSize, {
56
+ rscEntryPath,
57
+ serverDir
58
+ });
54
59
  } catch (e) {
55
60
  console.warn(`[vinext] prerender render pool failed to start; falling back to single-process render: ${e instanceof Error ? e.message : String(e)}`);
56
61
  return null;
57
62
  }
58
63
  }
59
64
  var PrerenderUserFunctionError = class extends Error {};
65
+ var InvalidStaticParamsError = class extends Error {};
60
66
  function parsePrerenderEndpointError(text) {
61
67
  try {
62
68
  const parsed = JSON.parse(text);
@@ -207,41 +213,59 @@ function emitStatic404Files(outDir, html, trailingSlash) {
207
213
  return outputFiles;
208
214
  }
209
215
  /**
210
- * Resolve parent dynamic segment params for a route.
216
+ * Next.js fails `output: "export"` on any generateStaticParams call that
217
+ * returns no params (build/static-paths/app.ts callGenerateStaticParams).
218
+ */
219
+ function emptyStaticExportParamsError(pattern) {
220
+ 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`);
221
+ }
222
+ /**
223
+ * Resolve the params a route's layouts above its own pattern generate.
211
224
  * Handles top-down generateStaticParams resolution for nested dynamic routes.
212
225
  *
213
226
  * Uses the `staticParamsMap` (pattern → generateStaticParams) exported from
214
- * the production bundle.
227
+ * the production bundle. As in Next.js, which walks every segment of the
228
+ * route's own loader tree top-down and passes each parent param set to the
229
+ * next generateStaticParams (build/static-paths/app.ts
230
+ * generateRouteStaticParams), every layout of the route contributes, including
231
+ * one at the last dynamic segment when static segments follow it. The layouts
232
+ * at the route's full pattern compose with its page under
233
+ * `staticParamsMap[route.pattern]`, so they're left to the caller. A page or a
234
+ * route group's layout at the same prefix belongs to a sibling route and never
235
+ * supplies params.
236
+ *
237
+ * An App Route handler inherits no layouts: Next.js builds its segments from
238
+ * the route module alone (build/segment-config/app/app-segments.ts
239
+ * collectAppRouteSegments), so it has no parent params. A layout that returns
240
+ * no params passes each parent set through unchanged, as Next.js does outside
241
+ * Cache Components, except under `output: "export"`, where Next.js rejects any
242
+ * generateStaticParams that returns no params (build/static-paths/app.ts
243
+ * callGenerateStaticParams).
215
244
  */
216
245
  async function resolveParentParams(childRoute, staticParamsMap, options = {}) {
217
- const { patternParts } = childRoute;
218
- let lastDynamicIdx = -1;
219
- for (let i = patternParts.length - 1; i >= 0; i--) if (patternParts[i].startsWith(":")) {
220
- lastDynamicIdx = i;
221
- break;
222
- }
246
+ if (childRoute.routePath && !childRoute.pagePath) return [];
223
247
  const parentSegments = [];
224
- let prefixPattern = "";
225
- const prefixEnd = options.includeLastDynamicSegment ? lastDynamicIdx + 1 : lastDynamicIdx;
226
- for (let i = 0; i < prefixEnd; i++) {
227
- const part = patternParts[i];
228
- prefixPattern += "/" + part;
229
- if (!part.startsWith(":")) continue;
230
- const fn = staticParamsMap[prefixPattern];
248
+ for (const group of appRouteLayoutStaticParamsGroups(childRoute)) {
249
+ if (group.pattern === childRoute.pattern) continue;
250
+ const fn = staticParamsMap[group.key];
231
251
  if (typeof fn === "function") parentSegments.push(fn);
232
252
  }
233
253
  if (parentSegments.length === 0) return [];
234
- let currentParams = [{}];
235
- let resolvedAnyParent = false;
254
+ let currentParams = [];
236
255
  for (const generateStaticParams of parentSegments) {
237
256
  const nextParams = [];
238
257
  let resolvedThisParent = false;
239
- for (const parentParams of currentParams) {
258
+ const hasParentSets = currentParams.length > 0;
259
+ for (const parentParams of hasParentSets ? currentParams : [{}]) {
240
260
  const results = await generateStaticParams({ params: parentParams });
241
261
  if (results === null) continue;
242
262
  if (!Array.isArray(results)) return [];
263
+ if (options.staticExport && results.length === 0) throw emptyStaticExportParamsError(childRoute.pattern);
243
264
  resolvedThisParent = true;
244
- resolvedAnyParent = true;
265
+ if (results.length === 0 && hasParentSets) {
266
+ nextParams.push(parentParams);
267
+ continue;
268
+ }
245
269
  for (const result of results) nextParams.push({
246
270
  ...parentParams,
247
271
  ...result
@@ -249,7 +273,78 @@ async function resolveParentParams(childRoute, staticParamsMap, options = {}) {
249
273
  }
250
274
  if (resolvedThisParent) currentParams = nextParams;
251
275
  }
252
- return resolvedAnyParent ? currentParams : [];
276
+ return currentParams;
277
+ }
278
+ function getDynamicPatternParams(pattern) {
279
+ return pattern.split("/").filter((segment) => segment.startsWith(":")).map((segment) => ({
280
+ name: segment.slice(1, segment.endsWith("+") || segment.endsWith("*") ? -1 : void 0),
281
+ optional: segment.endsWith("*"),
282
+ repeat: segment.endsWith("+") || segment.endsWith("*")
283
+ }));
284
+ }
285
+ function validateDiscoveredParams(value, pattern, source) {
286
+ if (!value || typeof value !== "object" || Array.isArray(value)) throw new InvalidStaticParamsError(`${source} must return parameter objects for ${pattern}.`);
287
+ const params = { ...value };
288
+ for (const { name, optional, repeat } of getDynamicPatternParams(pattern)) {
289
+ const hasValue = Object.prototype.hasOwnProperty.call(params, name);
290
+ let paramValue = params[name];
291
+ if (optional && hasValue && (paramValue === null || paramValue === void 0 || paramValue === false)) {
292
+ paramValue = [];
293
+ params[name] = paramValue;
294
+ }
295
+ 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"}.`);
296
+ 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.`);
297
+ }
298
+ return params;
299
+ }
300
+ /**
301
+ * The param sets of an App route that become concrete paths, following
302
+ * Next.js's buildAppStaticPaths (build/static-paths/app.ts). Unless every set
303
+ * names every pathname param (hadAllParamsGenerated), none is prerendered.
304
+ * Otherwise every set is checked against the route's pathname params
305
+ * (validateParams), and, outside a partial prerender, a set with an empty
306
+ * required value is skipped rather than built into a path with an empty
307
+ * segment. An array, including an optional catch-all's empty one, is never
308
+ * empty in that sense. Under `output: "export"` incomplete sets fail the
309
+ * build instead, as Next.js requires every export path to be generated.
310
+ */
311
+ function routeStaticParamSets(route, paramSets, options = {}) {
312
+ const patternParams = getDynamicPatternParams(route.pattern);
313
+ const objects = paramSets.map((value) => {
314
+ if (!value || typeof value !== "object" || Array.isArray(value)) throw new InvalidStaticParamsError(`generateStaticParams must return parameter objects for ${route.pattern}.`);
315
+ return value;
316
+ });
317
+ const missingParamNames = patternParams.filter(({ name }) => objects.some((params) => !(name in params))).map(({ name }) => name);
318
+ if (missingParamNames.length > 0) {
319
+ 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`);
320
+ return [];
321
+ }
322
+ const materializable = [];
323
+ for (const value of objects) {
324
+ const params = validateDiscoveredParams(value, route.pattern, "generateStaticParams");
325
+ if (patternParams.some(({ name, repeat }) => !repeat && params[name] === "")) continue;
326
+ materializable.push(params);
327
+ }
328
+ return materializable;
329
+ }
330
+ /**
331
+ * The param sets a route's layouts generate, standing in for the route's own
332
+ * when none of the segments at its full pattern has generateStaticParams.
333
+ * Next.js prerenders none of a route's paths unless every set fills every
334
+ * pathname param (build/static-paths/app.ts hadAllParamsGenerated), so
335
+ * incomplete sets leave the route without static params (`null`). Complete
336
+ * sets still go through routeStaticParamSets.
337
+ */
338
+ function layoutOnlyParamSets(route, parentParamSets) {
339
+ return parentParamSets.length > 0 && parentParamSets.every((params) => route.params.every((name) => name in params)) ? parentParamSets : null;
340
+ }
341
+ function localizePagesPath(pathname, locale, i18n) {
342
+ if (!i18n || !locale) return pathname;
343
+ if (locale === i18n.defaultLocale) {
344
+ const firstSegment = pathname.split("/")[1]?.toLowerCase();
345
+ if (!i18n.locales.some((candidate) => candidate.toLowerCase() === firstSegment)) return pathname;
346
+ }
347
+ return pathname === "/" ? `/${locale}` : `/${locale}${pathname}`;
253
348
  }
254
349
  /**
255
350
  * Run the prerender phase for Pages Router.
@@ -287,12 +382,14 @@ async function prerenderPages({ routes, apiRoutes, pagesDir, outDir, config, mod
287
382
  try {
288
383
  let prerenderSecret = options._prerenderSecret;
289
384
  if (!prerenderSecret && pagesBundlePath) prerenderSecret = readPrerenderSecret(path.dirname(pagesBundlePath));
290
- 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.");
385
+ 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.");
291
386
  const prodServer = options._prodServer ? options._prodServer : await (async () => {
292
387
  const srv = await startProdServer({
293
388
  port: 0,
294
389
  host: "127.0.0.1",
295
390
  outDir: path.dirname(path.dirname(pagesBundlePath)),
391
+ serverDir: path.dirname(pagesBundlePath),
392
+ serverEntryPath: pagesBundlePath,
296
393
  noCompression: true,
297
394
  purpose: "prerender"
298
395
  });
@@ -342,7 +439,7 @@ async function prerenderPages({ routes, apiRoutes, pagesDir, outDir, config, mod
342
439
  for (const route of bundlePageRoutes) {
343
440
  if (BLOCKED_PAGES.includes(route.pattern)) continue;
344
441
  if (route.pattern === "/404") continue;
345
- const { type, revalidate: classifiedRevalidate } = classifyPagesRoute(route.filePath);
442
+ const { type, revalidate: classifiedRevalidate, hasStaticProps = false } = classifyPagesRoute(route.filePath);
346
443
  if (type === "ssr") {
347
444
  if (mode === "export") results.push({
348
445
  route: route.pattern,
@@ -374,8 +471,8 @@ async function prerenderPages({ routes, apiRoutes, pagesDir, outDir, config, mod
374
471
  let pathsResult;
375
472
  try {
376
473
  pathsResult = await route.module.getStaticPaths({
377
- locales: [],
378
- defaultLocale: ""
474
+ locales: [...config.i18n?.locales ?? []],
475
+ defaultLocale: config.i18n?.defaultLocale ?? ""
379
476
  });
380
477
  } catch (e) {
381
478
  results.push({
@@ -397,21 +494,38 @@ async function prerenderPages({ routes, apiRoutes, pagesDir, outDir, config, mod
397
494
  }
398
495
  const paths = pathsResult?.paths ?? [];
399
496
  let entryError = null;
497
+ const seenPaths = /* @__PURE__ */ new Set();
400
498
  for (const item of paths) {
401
- const normalized = normalizeStaticPathsEntry(item, route.pattern);
499
+ let locale = config.i18n?.defaultLocale;
500
+ let pathEntry = item;
501
+ if (config.i18n && typeof item === "string") {
502
+ const localized = extractLocaleFromUrl(item, config.i18n);
503
+ locale = localized.locale;
504
+ pathEntry = localized.url;
505
+ } else if (item && typeof item === "object" && item.locale !== void 0) locale = item.locale;
506
+ const normalized = normalizeStaticPathsEntry(pathEntry, route.pattern);
402
507
  if ("error" in normalized) {
403
508
  entryError = normalized.error;
404
509
  break;
405
510
  }
511
+ if (locale !== void 0 && !config.i18n?.locales.includes(locale)) {
512
+ entryError = `Invalid locale returned from getStaticPaths for ${route.pattern}: ${locale}`;
513
+ break;
514
+ }
406
515
  const { params } = normalized;
407
516
  try {
408
- const urlPath = buildUrlFromParams(route.pattern, params);
409
- pagesToRender.push({
410
- route,
411
- urlPath,
412
- params,
413
- revalidate
414
- });
517
+ const urlPath = localizePagesPath(buildUrlFromParams(route.pattern, params), locale, config.i18n);
518
+ if (!seenPaths.has(urlPath)) {
519
+ seenPaths.add(urlPath);
520
+ pagesToRender.push({
521
+ route,
522
+ urlPath,
523
+ params,
524
+ revalidate,
525
+ hasStaticProps,
526
+ locale
527
+ });
528
+ }
415
529
  } catch (e) {
416
530
  entryError = e.message;
417
531
  break;
@@ -425,25 +539,58 @@ async function prerenderPages({ routes, apiRoutes, pagesDir, outDir, config, mod
425
539
  });
426
540
  continue;
427
541
  }
428
- } else pagesToRender.push({
542
+ } else for (const locale of config.i18n?.locales ?? [void 0]) pagesToRender.push({
429
543
  route,
430
- urlPath: route.pattern,
544
+ urlPath: localizePagesPath(route.pattern, locale, config.i18n),
431
545
  params: {},
432
- revalidate
546
+ revalidate,
547
+ hasStaticProps,
548
+ locale
433
549
  });
434
550
  }
435
551
  if (!options._prodServer && pagesBundlePath && prerenderPoolAvailable()) {
436
552
  const poolSize = resolvePrerenderPoolSize(pagesToRender.length, concurrency);
437
553
  if (poolSize > 1) {
438
- renderPool = await startOptionalPrerenderServerPool(path.dirname(path.dirname(pagesBundlePath)), poolSize);
554
+ renderPool = await startOptionalPrerenderServerPool(path.dirname(path.dirname(pagesBundlePath)), poolSize, void 0, path.dirname(pagesBundlePath));
439
555
  if (renderPool) renderPorts = renderPool.ports;
440
556
  }
441
557
  }
442
558
  let completed = 0;
443
- const pageResults = await runWithConcurrency(pagesToRender, concurrency, async ({ route, urlPath, revalidate }) => {
559
+ const pageResults = await runWithConcurrency(pagesToRender, concurrency, async ({ route, urlPath, revalidate, hasStaticProps, locale }) => {
444
560
  let result;
445
561
  try {
446
562
  const response = await renderPage(urlPath);
563
+ if (mode === "default" && response.headers.get("x-vinext-prerender-rewritten") !== "0") {
564
+ response.body?.cancel().catch(() => {});
565
+ const skipped = {
566
+ route: route.pattern,
567
+ status: "skipped",
568
+ reason: "dynamic"
569
+ };
570
+ onProgress?.({
571
+ completed: ++completed,
572
+ total: pagesToRender.length,
573
+ route: urlPath,
574
+ status: skipped.status
575
+ });
576
+ return skipped;
577
+ }
578
+ const contentType = response.headers.get("content-type");
579
+ const isStaticPropsResponse = mode === "default" && hasStaticProps && response.headers.get("X-Vinext-Cache") === "MISS";
580
+ const notFound = isStaticPropsResponse && response.status === 404;
581
+ const redirect = isStaticPropsResponse && [
582
+ 301,
583
+ 302,
584
+ 303,
585
+ 307,
586
+ 308
587
+ ].includes(response.status);
588
+ let redirectProps;
589
+ if (redirect) {
590
+ const props = await response.json();
591
+ if (!isUnknownRecord(props) || !isUnknownRecord(props.pageProps) || typeof props.pageProps.__N_REDIRECT !== "string" || props.pageProps.__N_REDIRECT_STATUS !== response.status || props.pageProps.__N_REDIRECT_BASE_PATH !== void 0 && typeof props.pageProps.__N_REDIRECT_BASE_PATH !== "boolean") throw new Error(`Invalid prerendered Pages redirect props for ${urlPath}`);
592
+ redirectProps = props;
593
+ }
447
594
  const outputFiles = [];
448
595
  const htmlOutputPath = getOutputPath(urlPath, config.trailingSlash, mode === "export" ? config.basePath : "");
449
596
  const htmlFullPath = path.join(outDir, htmlOutputPath);
@@ -453,7 +600,7 @@ async function prerenderPages({ routes, apiRoutes, pagesDir, outDir, config, mod
453
600
  fs.writeFileSync(htmlFullPath, html, "utf-8");
454
601
  outputFiles.push(htmlOutputPath);
455
602
  } else {
456
- if (!response.ok) throw new Error(`renderPage returned ${response.status} for ${urlPath}`);
603
+ if (!response.ok && !notFound) throw new Error(`renderPage returned ${response.status} for ${urlPath}`);
457
604
  const html = await response.text();
458
605
  fs.mkdirSync(path.dirname(htmlFullPath), { recursive: true });
459
606
  fs.writeFileSync(htmlFullPath, html, "utf-8");
@@ -466,7 +613,19 @@ async function prerenderPages({ routes, apiRoutes, pagesDir, outDir, config, mod
466
613
  revalidate,
467
614
  ...typeof revalidate === "number" ? { expire: config.expireTime } : {},
468
615
  router: "pages",
469
- ...urlPath !== route.pattern ? { path: urlPath } : {}
616
+ ...urlPath !== route.pattern ? { path: urlPath } : {},
617
+ ...locale ? { locale } : {},
618
+ ...response.ok ? { responseStatus: response.status } : {},
619
+ ...response.ok && contentType ? { headers: { "content-type": contentType } } : {},
620
+ ...notFound ? {
621
+ notFound: true,
622
+ responseStatus: 404
623
+ } : {},
624
+ ...redirect ? {
625
+ responseStatus: response.status,
626
+ redirectProps,
627
+ headers: { location: response.headers.get("location") ?? "/" }
628
+ } : {}
470
629
  };
471
630
  } catch (e) {
472
631
  renderPool?.recordRenderError(e);
@@ -489,21 +648,41 @@ async function prerenderPages({ routes, apiRoutes, pagesDir, outDir, config, mod
489
648
  renderPool?.assertHealthy();
490
649
  const hasCustom404 = findFileWithExtensions(path.join(pagesDir, "404"), fileMatcher);
491
650
  const hasErrorPage = findFileWithExtensions(path.join(pagesDir, "_error"), fileMatcher);
492
- if (hasCustom404 || hasErrorPage) try {
493
- const notFoundRes = await renderPage(hasCustom404 ? "/404" : NOT_FOUND_SENTINEL_PATH);
494
- const contentType = notFoundRes.headers.get("content-type") ?? "";
495
- if (notFoundRes.status === 404 && contentType.includes("text/html")) {
496
- const html404 = await notFoundRes.text();
497
- results.push({
498
- route: "/404",
499
- status: "rendered",
500
- outputFiles: emitStatic404Files(outDir, html404, config.trailingSlash),
501
- revalidate: false,
502
- router: "pages"
503
- });
651
+ for (const locale of config.i18n?.locales ?? [void 0]) {
652
+ if (!hasCustom404 && !hasErrorPage) break;
653
+ try {
654
+ const notFoundRes = await renderPage(localizePagesPath(hasCustom404 ? "/404" : NOT_FOUND_SENTINEL_PATH, locale, config.i18n));
655
+ if (mode === "default" && notFoundRes.headers.get("x-vinext-prerender-rewritten") !== "0") {
656
+ notFoundRes.body?.cancel().catch(() => {});
657
+ continue;
658
+ }
659
+ const contentType = notFoundRes.headers.get("content-type") ?? "";
660
+ if (notFoundRes.status === 404 && contentType.includes("text/html")) {
661
+ const html404 = await notFoundRes.text();
662
+ const pathname = localizePagesPath("/404", locale, config.i18n);
663
+ let outputFiles;
664
+ if (pathname === "/404") outputFiles = emitStatic404Files(outDir, html404, config.trailingSlash);
665
+ else {
666
+ const outputPath = getOutputPath(pathname, config.trailingSlash);
667
+ const fullPath = path.join(outDir, outputPath);
668
+ fs.mkdirSync(path.dirname(fullPath), { recursive: true });
669
+ fs.writeFileSync(fullPath, html404, "utf8");
670
+ outputFiles = [outputPath];
671
+ }
672
+ results.push({
673
+ route: "/404",
674
+ status: "rendered",
675
+ outputFiles,
676
+ revalidate: false,
677
+ router: "pages",
678
+ headers: { "content-type": contentType },
679
+ ...pathname !== "/404" ? { path: pathname } : {},
680
+ ...locale ? { locale } : {}
681
+ });
682
+ }
683
+ } catch (e) {
684
+ renderPool?.recordRenderError(e);
504
685
  }
505
- } catch (e) {
506
- renderPool?.recordRenderError(e);
507
686
  }
508
687
  renderPool?.assertHealthy();
509
688
  if (!skipManifest) writePrerenderIndex(results, manifestDir, {
@@ -531,14 +710,14 @@ async function prerenderPages({ routes, apiRoutes, pagesDir, outDir, config, mod
531
710
  * `vinext-prerender.json` to `outDir`.
532
711
  *
533
712
  * If the bundle does not exist, an error is thrown directing the user to run
534
- * `vinext build` first.
713
+ * `vite build` first.
535
714
  *
536
715
  * Speculative static rendering: routes classified as 'unknown' (no explicit
537
716
  * config, non-dynamic URL) are attempted with an empty headers/cookies context.
538
717
  * If they succeed, they are marked as rendered. If they throw a DynamicUsageError
539
718
  * or fail, they are marked as skipped with reason 'dynamic'.
540
719
  */
541
- async function prerenderApp({ routes, metadataRoutes = [], outDir, config, mode, rscBundlePath, ...options }) {
720
+ async function prerenderApp({ routes, metadataRoutes = [], outDir, config, mode, rscBundlePath, serverDir = path.dirname(rscBundlePath), buildOutDir = path.dirname(serverDir), ...options }) {
542
721
  const manifestDir = options.manifestDir ?? outDir;
543
722
  const concurrency = options.concurrency ?? DEFAULT_CONCURRENCY;
544
723
  const onProgress = options.onProgress;
@@ -548,7 +727,6 @@ async function prerenderApp({ routes, metadataRoutes = [], outDir, config, mode,
548
727
  const previousHandler = getCacheHandler();
549
728
  setCacheHandler(new NoOpCacheHandler());
550
729
  const restorePrerenderPhase = enterPrerenderPhase();
551
- const serverDir = path.dirname(rscBundlePath);
552
730
  let rscHandler;
553
731
  let staticParamsMap = {};
554
732
  let ownedProdServerHandle = null;
@@ -557,12 +735,14 @@ async function prerenderApp({ routes, metadataRoutes = [], outDir, config, mode,
557
735
  let renderRoundRobin = 0;
558
736
  try {
559
737
  const prerenderSecret = readPrerenderSecret(serverDir);
560
- 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.");
738
+ 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.");
561
739
  const prodServer = options._prodServer ? options._prodServer : await (async () => {
562
740
  const srv = await startProdServer({
563
741
  port: 0,
564
742
  host: "127.0.0.1",
565
- outDir: path.dirname(serverDir),
743
+ outDir: buildOutDir,
744
+ rscEntryPath: rscBundlePath,
745
+ serverDir,
566
746
  noCompression: true,
567
747
  purpose: "prerender"
568
748
  });
@@ -595,6 +775,7 @@ async function prerenderApp({ routes, metadataRoutes = [], outDir, config, mode,
595
775
  const request = (async () => {
596
776
  const search = new URLSearchParams({ pattern });
597
777
  if (Object.keys(params).length > 0) search.set("parentParams", JSON.stringify(params));
778
+ if (mode === "export") search.set("rejectEmptyResults", "1");
598
779
  const res = await fetch(`${baseUrl}/__vinext/prerender/static-params?${search}`, { headers: secretHeaders });
599
780
  const text = await res.text();
600
781
  if (!res.ok) {
@@ -664,28 +845,36 @@ async function prerenderApp({ routes, metadataRoutes = [], outDir, config, mode,
664
845
  });
665
846
  continue;
666
847
  }
667
- const parentParamSets = await resolveParentParams(route, staticParamsMap);
848
+ const parentParamSets = await resolveParentParams(route, staticParamsMap, { staticExport: mode === "export" });
668
849
  let paramSets;
669
850
  if (parentParamSets.length > 0) {
670
851
  paramSets = [];
671
852
  for (const parentParams of parentParamSets) {
672
853
  const childResults = await generateStaticParamsFn({ params: parentParams });
673
854
  if (childResults === null) {
674
- paramSets = null;
855
+ paramSets = layoutOnlyParamSets(route, parentParamSets);
675
856
  break;
676
857
  }
677
- if (Array.isArray(childResults)) for (const childParams of childResults) paramSets.push({
678
- ...parentParams,
679
- ...childParams
680
- });
681
- else {
858
+ if (Array.isArray(childResults)) {
859
+ if (mode === "export" && childResults.length === 0) throw emptyStaticExportParamsError(route.pattern);
860
+ if (childResults.length === 0) {
861
+ paramSets.push(parentParams);
862
+ continue;
863
+ }
864
+ for (const childParams of childResults) paramSets.push({
865
+ ...parentParams,
866
+ ...childParams
867
+ });
868
+ } else {
682
869
  paramSets = [];
683
870
  break;
684
871
  }
685
872
  }
873
+ if (paramSets !== null) paramSets = routeStaticParamSets(route, paramSets, { staticExport: mode === "export" });
686
874
  } else {
687
875
  const results = await generateStaticParamsFn({ params: {} });
688
- paramSets = Array.isArray(results) || results === null ? results : [];
876
+ if (mode === "export" && Array.isArray(results) && results.length === 0) throw emptyStaticExportParamsError(route.pattern);
877
+ paramSets = results === null ? null : routeStaticParamSets(route, Array.isArray(results) ? results : [], { staticExport: mode === "export" });
689
878
  }
690
879
  if (paramSets === null) {
691
880
  if (mode === "export") results.push({
@@ -704,7 +893,7 @@ async function prerenderApp({ routes, metadataRoutes = [], outDir, config, mode,
704
893
  results.push({
705
894
  route: route.pattern,
706
895
  status: "skipped",
707
- reason: "no-static-params"
896
+ reason: "empty-static-params"
708
897
  });
709
898
  continue;
710
899
  }
@@ -741,7 +930,7 @@ async function prerenderApp({ routes, metadataRoutes = [], outDir, config, mode,
741
930
  route: route.pattern,
742
931
  status: "error",
743
932
  error: `Failed to call generateStaticParams(): ${detail}`,
744
- ...e instanceof PrerenderUserFunctionError ? { fatal: true } : {}
933
+ ...e instanceof PrerenderUserFunctionError || e instanceof InvalidStaticParamsError ? { fatal: true } : {}
745
934
  });
746
935
  }
747
936
  else if (type === "unknown") urlsToRender.push({
@@ -804,7 +993,8 @@ async function prerenderApp({ routes, metadataRoutes = [], outDir, config, mode,
804
993
  };
805
994
  }
806
995
  const cacheControl = response.headers.get("cache-control") ?? "";
807
- if (!isMetadataResponseCacheable(response)) {
996
+ const requestCacheLife = readPrerenderCacheLifeHeader(response.headers);
997
+ if (requestCacheLife?.revalidate === 0) {
808
998
  await response.body?.cancel();
809
999
  return {
810
1000
  route: routePattern,
@@ -812,15 +1002,14 @@ async function prerenderApp({ routes, metadataRoutes = [], outDir, config, mode,
812
1002
  reason: "dynamic"
813
1003
  };
814
1004
  }
815
- const requestCacheLife = readPrerenderCacheLifeHeader(response.headers);
816
1005
  const collectedTags = readPrerenderCacheTagsHeader(response.headers);
817
- const cacheValue = await buildAppRouteCacheValue(response);
1006
+ const cacheValue = await buildAppRouteCacheValue(response, cacheControl);
818
1007
  cacheValue.headers[VINEXT_METADATA_ROUTE_CACHE_HEADER] = "1";
819
1008
  const outputPath = getAppRouteOutputPath(urlPath);
820
1009
  const fullPath = path.join(outDir, outputPath);
821
1010
  fs.mkdirSync(path.dirname(fullPath), { recursive: true });
822
1011
  fs.writeFileSync(fullPath, new Uint8Array(cacheValue.body));
823
- const renderedCacheControl = resolveRenderedCacheControl(requestCacheLife ?? {}, cacheControl, config.expireTime);
1012
+ const renderedCacheControl = resolveRenderedCacheControl(requestCacheLife ?? {}, "", config.expireTime);
824
1013
  const renderedRevalidate = renderedCacheControl.revalidate ?? false;
825
1014
  const renderedStale = resolveClientStaleTimeSeconds(requestCacheLife ?? void 0);
826
1015
  return {
@@ -969,7 +1158,7 @@ async function prerenderApp({ routes, metadataRoutes = [], outDir, config, mode,
969
1158
  if (!options._prodServer && prerenderPoolAvailable()) {
970
1159
  const poolSize = resolvePrerenderPoolSize(urlsToRender.length, concurrency);
971
1160
  if (poolSize > 1) {
972
- renderPool = await startOptionalPrerenderServerPool(path.dirname(serverDir), poolSize);
1161
+ renderPool = await startOptionalPrerenderServerPool(buildOutDir, poolSize, rscBundlePath, serverDir);
973
1162
  if (renderPool) renderPorts = renderPool.ports;
974
1163
  }
975
1164
  }
@@ -1091,6 +1280,9 @@ function writePrerenderIndex(routes, outDir, options) {
1091
1280
  ...r.routeSegments ? { routeSegments: r.routeSegments } : {},
1092
1281
  ...r.headers ? { headers: r.headers } : {},
1093
1282
  ...typeof r.responseStatus === "number" ? { responseStatus: r.responseStatus } : {},
1283
+ ...r.notFound ? { notFound: true } : {},
1284
+ ...r.redirectProps ? { redirectProps: r.redirectProps } : {},
1285
+ ...r.locale ? { locale: r.locale } : {},
1094
1286
  ...r.path ? { path: r.path } : {},
1095
1287
  ...r.fallback ? { fallback: true } : {}
1096
1288
  };
@@ -1114,4 +1306,4 @@ function writePrerenderIndex(routes, outDir, options) {
1114
1306
  fs.writeFileSync(path.join(outDir, "vinext-prerender.json"), JSON.stringify(index, null, 2), "utf-8");
1115
1307
  }
1116
1308
  //#endregion
1117
- export { buildUrlFromParams, extractRscPayloadFromPrerenderedHtml, prerenderApp, prerenderPages, readPrerenderSecret, resolveParentParams, writePrerenderIndex };
1309
+ export { buildUrlFromParams, extractRscPayloadFromPrerenderedHtml, layoutOnlyParamSets, localizePagesPath, 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