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,24 +1,27 @@
1
1
  import path, { toSlash } from "../deps/.pnpm/pathslash@0.1.0/deps/pathslash/dist/index.js";
2
2
  import { findDir } from "../utils/project.js";
3
- import { apiRouter, matchRoute, pagesRouter } from "../routing/pages-router.js";
3
+ import { BLOCKED_PAGES, PHASE_PRODUCTION_BUILD } from "../shims/constants.js";
4
4
  import { VINEXT_PRERENDER_SECRET_HEADER } from "../utils/protocol-headers.js";
5
- import "../server/headers.js";
5
+ import { isExternalUrl } from "../utils/external-url.js";
6
6
  import { matchHeaders, matchesRewriteSource } from "../config/config-matchers.js";
7
- import { extractLocaleFromUrl, normalizeDefaultLocalePathname } from "../server/pages-i18n.js";
8
- import { classifyAppRoute, classifyAppRouteHandler, classifyPagesRoute, extractExportConstString, getAppRouteRenderEntryPath } from "./report.js";
7
+ import { loadNextConfig, resolveNextConfig } from "../config/next-config.js";
9
8
  import { appRouteHasMainTreeLoadingBoundary, appRouter, matchAppRoute } from "../routing/app-router.js";
9
+ import { apiRouter, matchRoute, pagesRouter } from "../routing/pages-router.js";
10
+ import "../server/headers.js";
11
+ import { matchesMiddlewarePathname } from "../server/middleware-matcher.js";
12
+ import { extractLocaleFromUrl, normalizeDefaultLocalePathname } from "../server/pages-i18n.js";
13
+ import { classifyAppRoute, classifyAppRouteHandler, classifyPagesRoute, extractExportConstNumber, extractExportConstString, extractMiddlewareMatcherConfig, getAppRouteRenderEntryPath, hasRuntimeExportedName } from "./report.js";
10
14
  import { normalizeStaticPathname, normalizeStaticPathsEntry } from "../routing/route-pattern.js";
11
15
  import { buildPagesDataHref } from "../shims/internal/pages-data-url.js";
12
16
  import { normalizePathTrailingSlash } from "../shims/url-utils.js";
13
- import { BLOCKED_PAGES, PHASE_PRODUCTION_BUILD } from "../shims/constants.js";
14
- import { loadNextConfig, resolveNextConfig } from "../config/next-config.js";
15
- import { CACHEABILITY_POLICY_HEADERS } from "../shims/cacheability-classification.js";
16
17
  import { pagesRouteHasPriorityOverAppRoute } from "../server/hybrid-route-priority.js";
17
18
  import { readPrerenderSecret } from "./server-manifest.js";
19
+ import { loadMdxEsmReader } from "../utils/mdx-scan.js";
18
20
  import { startProdServer } from "../server/prod-server.js";
19
21
  import { enterPrerenderPhase } from "./prerender-phase.js";
20
- import { buildUrlFromParams, resolveParentParams } from "./prerender.js";
21
- import { resolveAppPageDynamicConfig } from "../server/app-segment-config.js";
22
+ import { buildUrlFromParams, layoutOnlyParamSets, localizePagesPath, resolveParentParams, routeStaticParamSets, validateDiscoveredParams } from "./prerender.js";
23
+ import { collectAppPageStaticGenerationRuntimes, hasAppPageGenerateStaticParamsAtLastDynamicSegment, isAppPageStaticEligible, isEdgeRuntime, resolveAppPageDynamicConfig, resolveAppPageSegmentConfig, resolveAppPageStaticGenerationRuntime } from "../server/app-segment-config.js";
24
+ import { resolveBuiltPagesEntryPath, resolveBuiltRscEntryPath } from "./server-entry.js";
22
25
  import fs from "node:fs";
23
26
  //#region src/build/prerender-paths.ts
24
27
  const PRERENDER_PATH_DISCOVERY_ENV = "__VINEXT_PRERENDER_PATH_DISCOVERY";
@@ -62,7 +65,7 @@ function addPath(paths, seen, pathname) {
62
65
  }
63
66
  function throwDiscoveryFailure(route, error) {
64
67
  const message = error instanceof Error ? error.message : String(error);
65
- if (/cloudflare:|ERR_UNSUPPORTED_ESM_URL_SCHEME/i.test(message)) throw new Error(`Failed to discover warmup path(s) for ${route}: Cloudflare runtime bindings cannot execute in the local Node prerender server. Use \`vinext-cloudflare deploy --experimental-warm-cdn-cache\` so path discovery runs against the staged Worker version.`, { cause: error });
68
+ if (/cloudflare:|ERR_UNSUPPORTED_ESM_URL_SCHEME/i.test(message)) throw new Error(`Failed to discover warmup path(s) for ${route}: Cloudflare runtime bindings cannot execute in the local Node prerender server. Use \`vinext-cloudflare deploy --warm-cache\` so path discovery runs against the staged Worker version.`, { cause: error });
66
69
  throw new Error(`Failed to discover warmup path(s) for ${route}: ${message}`, { cause: error });
67
70
  }
68
71
  function validatePagesStaticPathsResult(value, route) {
@@ -85,28 +88,6 @@ function hasUnsafeRawUrlPathCharacter(value) {
85
88
  }
86
89
  return false;
87
90
  }
88
- function getDynamicPatternParams(pattern) {
89
- return pattern.split("/").filter((segment) => segment.startsWith(":")).map((segment) => ({
90
- name: segment.slice(1, segment.endsWith("+") || segment.endsWith("*") ? -1 : void 0),
91
- optional: segment.endsWith("*"),
92
- repeat: segment.endsWith("+") || segment.endsWith("*")
93
- }));
94
- }
95
- function validateDiscoveredParams(value, pattern, source) {
96
- if (!value || typeof value !== "object" || Array.isArray(value)) throw new Error(`${source} must return parameter objects for ${pattern}.`);
97
- const params = { ...value };
98
- for (const { name, optional, repeat } of getDynamicPatternParams(pattern)) {
99
- const hasValue = Object.prototype.hasOwnProperty.call(params, name);
100
- let paramValue = params[name];
101
- if (optional && hasValue && (paramValue === null || paramValue === void 0 || paramValue === false)) {
102
- paramValue = [];
103
- params[name] = paramValue;
104
- }
105
- if (!(repeat ? Array.isArray(paramValue) && paramValue.every((entry) => typeof entry === "string") : typeof paramValue === "string")) throw new Error(`Parameter ${name} from ${source} for ${pattern} must be ${repeat ? "an array of strings" : "a string"}.`);
106
- if ((Array.isArray(paramValue) ? paramValue : [paramValue]).some((entry) => entry === "." || entry === "..")) throw new Error(`Parameter ${name} from ${source} for ${pattern} must not contain dot path segments.`);
107
- }
108
- return params;
109
- }
110
91
  function validatePagesStaticPathsEntry(entry, pattern) {
111
92
  if (typeof entry === "string") {
112
93
  if (!entry.startsWith("/") || entry.includes("//") || entry.includes("?") || entry.includes("#") || hasUnsafeRawUrlPathCharacter(entry)) throw new Error(`The provided path \`${entry}\` from getStaticPaths does not match the route pattern \`${pattern}\`.`);
@@ -246,6 +227,8 @@ async function collectPagesPaths(options) {
246
227
  const dataPaths = [];
247
228
  const seenDataPaths = /* @__PURE__ */ new Set();
248
229
  const fallbackRoutePatterns = [];
230
+ const nonDynamicPaths = [];
231
+ const seenNonDynamicPaths = /* @__PURE__ */ new Set();
249
232
  for (const route of pageRoutes) {
250
233
  if (apiPatterns.has(route.pattern)) continue;
251
234
  if (BLOCKED_PAGES.includes(route.pattern)) continue;
@@ -256,14 +239,17 @@ async function collectPagesPaths(options) {
256
239
  if (options.i18n) for (const locale of options.i18n.locales) {
257
240
  const pathname = localizePagesPath(route.pattern, locale, options.i18n);
258
241
  addPath(paths, seen, pathname);
242
+ addPath(nonDynamicPaths, seenNonDynamicPaths, pathname);
259
243
  if (hasStaticProps || hasServerSideProps) addPath(dataPaths, seenDataPaths, pathname);
260
244
  }
261
245
  else {
262
246
  addPath(paths, seen, route.pattern);
247
+ addPath(nonDynamicPaths, seenNonDynamicPaths, route.pattern);
263
248
  if (hasStaticProps || hasServerSideProps) addPath(dataPaths, seenDataPaths, route.pattern);
264
249
  }
265
250
  continue;
266
251
  }
252
+ if (!options.enumerateDynamicPaths) continue;
267
253
  if (type === "ssr") continue;
268
254
  if (!options.baseUrl) continue;
269
255
  try {
@@ -301,6 +287,7 @@ async function collectPagesPaths(options) {
301
287
  return {
302
288
  dataPaths,
303
289
  fallbackRoutePatterns,
290
+ nonDynamicPaths,
304
291
  paths
305
292
  };
306
293
  }
@@ -312,19 +299,31 @@ async function excludePagesApiWarmPaths(options) {
312
299
  return matchRoute(pagesPathname, apiRoutes) === null;
313
300
  });
314
301
  }
315
- async function resolvePagesWarmRoutePatterns(options) {
302
+ async function resolvePagesWarmRouteMetadata(options) {
316
303
  const pageRoutes = await pagesRouter(options.pagesDir, options.pageExtensions);
317
- return Object.fromEntries(options.paths.flatMap((pathname) => {
318
- const match = matchRoute(options.i18n ? extractLocaleFromUrl(pathname, options.i18n).url : pathname, pageRoutes);
319
- return match ? [[pathname, {
304
+ const classifications = /* @__PURE__ */ new Map();
305
+ const dataPaths = [];
306
+ const routePatterns = {};
307
+ for (const pathname of options.paths) {
308
+ const pagesPathname = options.i18n ? extractLocaleFromUrl(pathname, options.i18n).url : pathname;
309
+ const match = matchRoute(pagesPathname, pageRoutes);
310
+ if (!match) continue;
311
+ routePatterns[pathname] = {
320
312
  kind: "pages-page",
321
313
  pattern: match.route.pattern
322
- }]] : [];
323
- }));
324
- }
325
- function localizePagesPath(pathname, locale, i18n) {
326
- if (!i18n || !locale || locale === i18n.defaultLocale) return pathname;
327
- return pathname === "/" ? `/${locale}` : `/${locale}${pathname}`;
314
+ };
315
+ let classification = classifications.get(match.route.filePath);
316
+ if (!classification) {
317
+ classification = classifyPagesRoute(match.route.filePath);
318
+ classifications.set(match.route.filePath, classification);
319
+ }
320
+ const { hasServerSideProps, hasStaticProps } = classification;
321
+ if (hasServerSideProps || hasStaticProps) dataPaths.push(pathname);
322
+ }
323
+ return {
324
+ dataPaths,
325
+ routePatterns
326
+ };
328
327
  }
329
328
  /**
330
329
  * Next.js data URLs always carry the locale segment, including the default
@@ -352,27 +351,110 @@ function extractPagesStaticPathLocale(url, i18n) {
352
351
  url: `${rest || "/"}${query}`
353
352
  };
354
353
  }
354
+ /**
355
+ * Whether Next.js classifies an App page route as static or SSG, read from its
356
+ * layout, page and parallel-slot sources with the helpers dispatch applies to
357
+ * the loaded modules. Only such a route has listed paths.
358
+ *
359
+ * An MDX source read without the MDX parser has unknown exports, so its route
360
+ * is "unreadable". Its paths are still listed: the built runtime reads the real
361
+ * exports and never stores a route that isn't static, while an unlisted path's
362
+ * render failure would be dropped instead of failing. But no probe renders an
363
+ * unreadable route's fallback, so it never certifies one.
364
+ */
365
+ function classifyAppPageRouteStaticEligibility(route, readMdxEsm) {
366
+ let unreadable = false;
367
+ const readSegmentConfig = (filePath) => {
368
+ if (!filePath) return null;
369
+ let code = fs.readFileSync(filePath, "utf8");
370
+ if (filePath.toLowerCase().endsWith(".mdx")) {
371
+ let esm = null;
372
+ try {
373
+ esm = readMdxEsm?.(code) ?? null;
374
+ } catch {}
375
+ unreadable ||= esm === null;
376
+ code = esm ?? "";
377
+ }
378
+ const dynamic = extractExportConstString(code, "dynamic");
379
+ const revalidate = extractExportConstNumber(code, "revalidate");
380
+ const runtime = extractExportConstString(code, "runtime");
381
+ return {
382
+ ...dynamic === null ? {} : { dynamic },
383
+ ...hasRuntimeExportedName(code, "generateStaticParams") ? { generateStaticParams() {} } : {},
384
+ ...revalidate === null ? {} : { revalidate },
385
+ ...runtime === null ? {} : { runtime }
386
+ };
387
+ };
388
+ const layouts = route.layouts.map(readSegmentConfig);
389
+ const page = readSegmentConfig(route.pagePath);
390
+ const parallelBranches = route.parallelSlots.map((slot) => ({
391
+ configLayouts: (slot.configLayoutPaths ?? []).map(readSegmentConfig),
392
+ configLayoutTreePositions: slot.configLayoutTreePositions ?? [],
393
+ isDefault: !slot.pagePath,
394
+ layout: readSegmentConfig(slot.layoutPath),
395
+ name: slot.name,
396
+ ownerTreePosition: slot.ownerTreePosition ?? null,
397
+ page: readSegmentConfig(slot.pagePath ?? slot.defaultPath),
398
+ routeSegments: slot.routeSegments
399
+ }));
400
+ if (unreadable) return "unreadable";
401
+ const segmentConfig = resolveAppPageSegmentConfig({
402
+ layouts,
403
+ layoutTreePositions: route.layoutTreePositions,
404
+ page,
405
+ parallelBranches,
406
+ routeSegments: route.routeSegments
407
+ });
408
+ return isAppPageStaticEligible({
409
+ dynamicConfig: segmentConfig.dynamicConfig,
410
+ hasGenerateStaticParams: hasAppPageGenerateStaticParamsAtLastDynamicSegment({
411
+ childrenSlot: route.childrenSlot ?? null,
412
+ layouts,
413
+ layoutTreePositions: route.layoutTreePositions,
414
+ page,
415
+ parallelBranches,
416
+ routeSegments: route.routeSegments
417
+ }),
418
+ isDynamicRoute: route.isDynamic,
419
+ isStaticGenerationEdgeRuntime: isEdgeRuntime(resolveAppPageStaticGenerationRuntime(collectAppPageStaticGenerationRuntimes({
420
+ childrenSlot: route.childrenSlot ?? null,
421
+ layouts,
422
+ layoutTreePositions: route.layoutTreePositions,
423
+ page,
424
+ parallelBranches,
425
+ routeSegments: route.routeSegments
426
+ }))),
427
+ revalidateSeconds: segmentConfig.revalidateSeconds
428
+ }) ? "eligible" : "ineligible";
429
+ }
430
+ /** Keys a path an App page route lists by the route and the pathname together. */
431
+ function appPageListingKey(routePattern, pathname) {
432
+ return `${routePattern}\0${pathname}`;
433
+ }
355
434
  async function collectAppPaths(options) {
356
435
  const routes = await appRouter(options.appDir, options.pageExtensions);
357
436
  const paths = [];
358
437
  const seen = /* @__PURE__ */ new Set();
359
- const loadingShellPaths = [];
360
- const seenLoadingShellPaths = /* @__PURE__ */ new Set();
361
438
  const routeHandlerPaths = [];
362
439
  const seenRouteHandlerPaths = /* @__PURE__ */ new Set();
363
440
  const fallbackRoutePatterns = [];
441
+ const nonDynamicPaths = [];
442
+ const seenNonDynamicPaths = /* @__PURE__ */ new Set();
443
+ const listedRoutePaths = /* @__PURE__ */ new Set();
364
444
  const staticParamsCache = /* @__PURE__ */ new Map();
365
445
  let requireNonEmptyStaticParams = false;
366
446
  const staticParamsMap = new Proxy({}, {
367
447
  get(_target, pattern) {
368
448
  return async ({ params }) => {
369
449
  if (!options.baseUrl) return null;
370
- const cacheKey = `${pattern}\0${JSON.stringify(params)}`;
450
+ const rejectEmptyResults = requireNonEmptyStaticParams;
451
+ const cacheKey = `${pattern}\0${JSON.stringify(params)}\0${rejectEmptyResults}`;
371
452
  let request = staticParamsCache.get(cacheKey);
372
453
  if (request === void 0) {
373
454
  request = (async () => {
374
455
  const search = new URLSearchParams({ pattern });
375
456
  if (Object.keys(params).length > 0) search.set("parentParams", JSON.stringify(params));
457
+ if (rejectEmptyResults) search.set("rejectEmptyResults", "1");
376
458
  const text = await fetchDiscoveryEndpoint(`${options.baseUrl}/__vinext/prerender/static-params?${search}`, options.secretHeaders, options.retryOptions);
377
459
  if (text === null) return null;
378
460
  const value = JSON.parse(text);
@@ -389,7 +471,7 @@ async function collectAppPaths(options) {
389
471
  staticParamsCache.set(cacheKey, request);
390
472
  }
391
473
  const value = await request;
392
- if (requireNonEmptyStaticParams && value?.length === 0) throw new Error("When using Cache Components, all `generateStaticParams` functions must return at least one result. This is to ensure that we can perform build-time validation that there is no other dynamic accesses that would cause a runtime error.\n\nLearn more: https://nextjs.org/docs/messages/empty-generate-static-params");
474
+ if (rejectEmptyResults && value?.length === 0) throw new Error("When using Cache Components, all `generateStaticParams` functions must return at least one result. This is to ensure that we can perform build-time validation that there is no other dynamic accesses that would cause a runtime error.\n\nLearn more: https://nextjs.org/docs/messages/empty-generate-static-params");
393
475
  return value;
394
476
  };
395
477
  },
@@ -397,6 +479,7 @@ async function collectAppPaths(options) {
397
479
  return false;
398
480
  }
399
481
  });
482
+ const readMdxEsm = !options.cacheComponents && options.pageExtensions.includes("mdx") ? await loadMdxEsmReader(options.root) : null;
400
483
  for (const route of routes) {
401
484
  const isRouteHandler = route.routePath !== null && route.pagePath === null;
402
485
  const renderEntryPath = isRouteHandler ? route.routePath : getAppRouteRenderEntryPath(route);
@@ -408,19 +491,22 @@ async function collectAppPaths(options) {
408
491
  const { type } = classifyAppRoute(renderEntryPath, route.routePath, route.isDynamic);
409
492
  if (type === "api") continue;
410
493
  }
411
- const hasMainTreeLoadingBoundary = appRouteHasMainTreeLoadingBoundary(route);
494
+ const staticEligibility = isRouteHandler || options.cacheComponents ? "eligible" : classifyAppPageRouteStaticEligibility(route, readMdxEsm);
495
+ const isStaticEligible = staticEligibility !== "ineligible";
412
496
  const addDiscoveredPath = (pathname) => {
413
497
  if (isRouteHandler) {
414
498
  addPath(routeHandlerPaths, seenRouteHandlerPaths, pathname);
415
499
  return;
416
500
  }
417
501
  addPath(paths, seen, pathname);
418
- if (hasMainTreeLoadingBoundary) addPath(loadingShellPaths, seenLoadingShellPaths, pathname);
502
+ if (isStaticEligible) listedRoutePaths.add(appPageListingKey(route.pattern, pathname));
419
503
  };
420
504
  if (!route.isDynamic) {
421
505
  addDiscoveredPath(route.pattern);
506
+ addPath(nonDynamicPaths, seenNonDynamicPaths, route.pattern);
422
507
  continue;
423
508
  }
509
+ if (!options.enumerateDynamicPaths) continue;
424
510
  requireNonEmptyStaticParams = options.cacheComponents && !isRouteHandler;
425
511
  try {
426
512
  const generateStaticParams = staticParamsMap[route.pattern];
@@ -432,20 +518,21 @@ async function collectAppPaths(options) {
432
518
  for (const parentParams of parentParamSets) {
433
519
  const childResults = await generateStaticParams({ params: parentParams });
434
520
  if (childResults === null) {
435
- paramSets = null;
521
+ paramSets = layoutOnlyParamSets(route, parentParamSets);
436
522
  break;
437
523
  }
438
- if (Array.isArray(childResults)) for (const childParams of childResults) paramSets.push({
439
- ...parentParams,
440
- ...childParams
441
- });
524
+ if (Array.isArray(childResults)) {
525
+ if (childResults.length === 0) paramSets.push(parentParams);
526
+ for (const childParams of childResults) paramSets.push({
527
+ ...parentParams,
528
+ ...childParams
529
+ });
530
+ }
442
531
  }
532
+ if (paramSets !== null) paramSets = routeStaticParamSets(route, paramSets);
443
533
  } else {
444
534
  const results = await generateStaticParams({ params: {} });
445
- if (results === null) {
446
- const layoutParamSets = await resolveParentParams(route, staticParamsMap, { includeLastDynamicSegment: true });
447
- paramSets = layoutParamSets.length > 0 ? layoutParamSets : null;
448
- } else paramSets = Array.isArray(results) ? results : [];
535
+ paramSets = results === null ? null : routeStaticParamSets(route, Array.isArray(results) ? results : []);
449
536
  }
450
537
  if (!paramSets?.length) {
451
538
  if (isRouteHandler) {
@@ -475,7 +562,7 @@ async function collectAppPaths(options) {
475
562
  page: readDynamicConfig(renderEntryPath),
476
563
  parallelSegments: parallelSegments.map(readDynamicConfig)
477
564
  });
478
- if ((paramSets !== null || dynamicConfig === "force-static" || dynamicConfig === "error") && !hasDynamicSegment) fallbackRoutePatterns.push({
565
+ if ((paramSets !== null || dynamicConfig === "force-static" || dynamicConfig === "error") && !hasDynamicSegment && staticEligibility === "eligible") fallbackRoutePatterns.push({
479
566
  kind: "app-page",
480
567
  pattern: route.pattern
481
568
  });
@@ -491,13 +578,15 @@ async function collectAppPaths(options) {
491
578
  }
492
579
  return {
493
580
  fallbackRoutePatterns,
494
- loadingShellPaths,
581
+ nonDynamicPaths,
495
582
  paths,
496
- routeHandlerPaths
583
+ routeHandlerPaths,
584
+ listedRoutePaths
497
585
  };
498
586
  }
499
587
  async function resolveAppWarmPaths(options) {
500
588
  const appRoutes = await appRouter(options.appDir, options.pageExtensions);
589
+ const loadingBoundaryRoutePatterns = appRoutes.filter((route) => !(route.routePath && !route.pagePath) && appRouteHasMainTreeLoadingBoundary(route)).map((route) => route.pattern).sort();
501
590
  const routeHandlerClassifications = new Map(appRoutes.flatMap((route) => route.routePath && !route.pagePath ? [[route.routePath, classifyAppRouteHandler(route.routePath)]] : []));
502
591
  const [pageRoutes, apiRoutes] = options.pagesDir ? await Promise.all([pagesRouter(options.pagesDir, options.pageExtensions), apiRouter(options.pagesDir, options.pageExtensions)]) : [[], []];
503
592
  const rscPaths = [];
@@ -552,13 +641,13 @@ async function resolveAppWarmPaths(options) {
552
641
  appPaths,
553
642
  appRoutePaths,
554
643
  htmlPaths,
644
+ loadingBoundaryRoutePatterns,
555
645
  loadingShellPaths,
556
646
  pagesPaths,
557
647
  routePatterns,
558
648
  rscPaths
559
649
  };
560
650
  }
561
- const CACHEABILITY_POLICY_HEADER_NAMES = new Set(CACHEABILITY_POLICY_HEADERS);
562
651
  function cachePolicyRuleMatchesWarmPath(pathname, rule, config) {
563
652
  const canonicalPathname = normalizePathTrailingSlash(pathname, config.trailingSlash);
564
653
  return [void 0, ...config.i18n?.domains?.map((domain) => domain.domain) ?? []].some((hostname) => {
@@ -607,8 +696,8 @@ function routePatternCouldIntersectCachePolicyRule(routePattern, rule, basePath)
607
696
  * request-specific next.config cache policy. The final Worker still evaluates
608
697
  * every concrete response before emitting public cache headers.
609
698
  */
610
- function annotateCacheabilityProbeSafety(routePatterns, config) {
611
- const cachePolicyRules = config.headers.filter((rule) => rule.headers.some((header) => CACHEABILITY_POLICY_HEADER_NAMES.has(header.key.toLowerCase())));
699
+ function annotateCacheabilityProbeSafety(routePatterns, config, routeMayResolve, requestStageMayTerminate, unlisted, isResponsePolicyHeader) {
700
+ const cachePolicyRules = config.headers.filter((rule) => rule.headers.some((header) => isResponsePolicyHeader(header.key)));
612
701
  const matchingPolicyRules = new Map(Object.keys(routePatterns).map((pathname) => [pathname, new Set(cachePolicyRules.filter((rule) => cachePolicyRuleMatchesWarmPath(pathname, rule, config)))]));
613
702
  const pathsByPattern = /* @__PURE__ */ new Map();
614
703
  for (const [pathname, route] of Object.entries(routePatterns)) {
@@ -628,44 +717,82 @@ function annotateCacheabilityProbeSafety(routePatterns, config) {
628
717
  const canPrunePattern = canPrunePatterns.get(patternKey) ?? false;
629
718
  return [pathname, {
630
719
  ...route,
631
- cacheabilityProbe: { canPrunePattern }
720
+ cacheabilityProbe: {
721
+ canPrunePattern,
722
+ ...routeMayResolve.has(pathname) ? { routeMayResolve: true } : {},
723
+ ...requestStageMayTerminate.has(pathname) ? { requestStageMayTerminate: true } : {},
724
+ ...unlisted.has(pathname) ? { unlisted: true } : {}
725
+ }
632
726
  }];
633
727
  }));
634
728
  }
635
- function configuredRouteAffectsWarmPath(pathname, config) {
729
+ function configuredRulesAffectWarmPath(pathname, rules, config) {
636
730
  const canonicalPathname = normalizePathTrailingSlash(pathname, config.trailingSlash);
637
731
  const hostnames = [void 0, ...config.i18n?.domains?.map((domain) => domain.domain) ?? []];
638
732
  const matchPathnames = new Set(hostnames.map((hostname) => normalizeDefaultLocalePathname(canonicalPathname, config.i18n, { hostname })));
639
- return [...[
640
- ...config.rewrites.beforeFiles,
641
- ...config.rewrites.afterFiles,
642
- ...config.rewrites.fallback
643
- ], ...config.redirects].some((rule) => Array.from(matchPathnames).some((matchPathname) => matchesRewriteSource(matchPathname, rule, {
733
+ return rules.some((rule) => Array.from(matchPathnames).some((matchPathname) => matchesRewriteSource(matchPathname, rule, {
644
734
  basePath: config.basePath,
645
735
  hadBasePath: true
646
736
  })));
647
737
  }
738
+ /**
739
+ * Whether a configured rewrite can replace a route-owned warm response.
740
+ * Non-dynamic filesystem routes win before `afterFiles`, while every concrete
741
+ * path discovered here wins dynamic matching before `fallback`.
742
+ */
743
+ function configuredRewritesCanReplaceWarmPath(pathname, rewrites, hasNonDynamicRoute, config, include) {
744
+ return configuredRulesAffectWarmPath(pathname, [...rewrites.beforeFiles.filter(include), ...hasNonDynamicRoute ? [] : rewrites.afterFiles.filter(include)], config);
745
+ }
746
+ function findMiddlewareConventionFile(root, appDir, pagesDir, pageExtensions) {
747
+ const routeDir = appDir ?? pagesDir;
748
+ const routeRoot = routeDir ? path.dirname(routeDir) : root;
749
+ const conventionDir = routeRoot === path.join(root, "src") ? routeRoot : root;
750
+ for (const name of ["proxy", "middleware"]) for (const extension of pageExtensions) {
751
+ const filePath = path.join(conventionDir, `${name}.${extension}`);
752
+ if (fs.existsSync(filePath)) return filePath;
753
+ }
754
+ return null;
755
+ }
756
+ /** @internal Match the pathname forms and locale provenance used by middleware runtime. */
757
+ function matchesMiddlewareWarmPath(pathname, matcher, i18n) {
758
+ const encodedPathname = new URL(pathname, "https://vinext.invalid").pathname;
759
+ const firstSegment = encodedPathname.split("/", 3)[1]?.toLowerCase();
760
+ const localeContexts = i18n ? i18n.locales.some((locale) => locale.toLowerCase() === firstSegment) ? [{ kind: "literal" }] : Array.from(/* @__PURE__ */ new Set([i18n.defaultLocale, ...i18n.domains?.map((domain) => domain.defaultLocale) ?? []]), (defaultLocale) => ({
761
+ defaultLocale,
762
+ kind: "defaulted"
763
+ })) : [void 0];
764
+ const matchPathnames = [encodedPathname];
765
+ try {
766
+ const decodedPathname = decodeURIComponent(encodedPathname);
767
+ if (decodedPathname !== encodedPathname) matchPathnames.push(decodedPathname);
768
+ } catch {}
769
+ return matchPathnames.some((matchPathname) => localeContexts.some((localeContext) => matchesMiddlewarePathname(matchPathname, matcher, i18n, localeContext)));
770
+ }
648
771
  async function startPathDiscoveryServer(options) {
649
772
  return startProdServer({
650
773
  port: 0,
651
774
  host: "127.0.0.1",
652
775
  outDir: options.pagesBundlePath ? path.dirname(path.dirname(options.pagesBundlePath)) : path.dirname(options.serverDir),
653
776
  rscEntryPath: options.rscBundlePath,
777
+ serverDir: options.serverDir,
654
778
  serverEntryPath: options.pagesBundlePath,
655
779
  noCompression: true,
656
780
  purpose: "prerender"
657
781
  });
658
782
  }
659
- async function emitPrerenderPathManifest(options) {
783
+ async function discoverPrerenderPathManifest(options) {
660
784
  const { root } = options;
661
785
  const configuredRouteDirs = resolveConfiguredRouteDirs(root, options.routeRootConfig);
662
786
  const appDir = options.appDir !== void 0 ? options.appDir : configuredRouteDirs.appDir;
663
787
  const pagesDir = options.pagesDir !== void 0 ? options.pagesDir : configuredRouteDirs.pagesDir;
664
788
  if (!appDir && !pagesDir) return null;
665
- const defaultRscBundlePath = options.routeRootConfig?.rscOutDir ? path.join(path.resolve(root, options.routeRootConfig.rscOutDir), "index.js") : path.join(root, "dist", "server", "index.js");
789
+ const configuredRscServerDir = options.routeRootConfig?.rscOutDir ? path.resolve(root, options.routeRootConfig.rscOutDir) : path.join(root, "dist", "server");
790
+ const defaultRscBundlePath = resolveBuiltRscEntryPath(configuredRscServerDir);
666
791
  const rscBundlePath = options.rscBundlePath ?? defaultRscBundlePath;
667
- const pagesBundlePath = options.pagesBundlePath ?? path.join(root, "dist", "server", "entry.js");
668
- const bundleServerDir = fs.existsSync(rscBundlePath) ? path.dirname(rscBundlePath) : path.dirname(pagesBundlePath);
792
+ const relativeRscEntryPath = path.relative(configuredRscServerDir, rscBundlePath);
793
+ const rscServerDir = !relativeRscEntryPath.startsWith("../") && !path.isAbsolute(relativeRscEntryPath) ? configuredRscServerDir : path.dirname(rscBundlePath);
794
+ const pagesBundlePath = options.pagesBundlePath ?? resolveBuiltPagesEntryPath(path.resolve(root, options.routeRootConfig?.ssrOutDir ?? path.join("dist", "server")));
795
+ const bundleServerDir = fs.existsSync(rscBundlePath) ? rscServerDir : path.dirname(pagesBundlePath);
669
796
  const manifestDir = path.join(root, "dist", "server");
670
797
  const config = options.nextConfig ? { ...options.nextConfig } : { ...await resolveNextConfig(await loadNextConfig(root, PHASE_PRODUCTION_BUILD), root) };
671
798
  const builtBuildId = readBuiltBuildId(manifestDir) ?? readBuiltBuildId(bundleServerDir);
@@ -677,12 +804,11 @@ async function emitPrerenderPathManifest(options) {
677
804
  const seenPagesPaths = /* @__PURE__ */ new Set();
678
805
  const discoveredPagesDataPaths = [];
679
806
  const seenPagesDataPaths = /* @__PURE__ */ new Set();
680
- const discoveredAppPaths = [];
681
- const seenAppPaths = /* @__PURE__ */ new Set();
682
807
  const discoveredRouteHandlerPaths = [];
683
808
  const seenRouteHandlerPaths = /* @__PURE__ */ new Set();
684
- const discoveredLoadingShellPaths = [];
685
- const seenLoadingShellPaths = /* @__PURE__ */ new Set();
809
+ const discoveredNonDynamicPathSet = /* @__PURE__ */ new Set();
810
+ const appListedRoutePaths = /* @__PURE__ */ new Set();
811
+ const candidateOnlyPathSet = /* @__PURE__ */ new Set();
686
812
  const fallbackRoutePatterns = [];
687
813
  await withPrerenderEndpoints(async () => {
688
814
  let prodServer = null;
@@ -718,21 +844,22 @@ async function emitPrerenderPathManifest(options) {
718
844
  appDir,
719
845
  baseUrl,
720
846
  cacheComponents: config.cacheComponents,
847
+ enumerateDynamicPaths: options.candidatePathsOnly !== true,
721
848
  pageExtensions: config.pageExtensions,
722
849
  retryOptions: pathDiscoveryRetryOptions,
850
+ root,
723
851
  secretHeaders
724
852
  });
725
- for (const pathname of appPathResult.paths) {
726
- addPath(paths, seen, pathname);
727
- addPath(discoveredAppPaths, seenAppPaths, pathname);
728
- }
729
- for (const pathname of appPathResult.loadingShellPaths) addPath(discoveredLoadingShellPaths, seenLoadingShellPaths, pathname);
853
+ for (const pathname of appPathResult.paths) addPath(paths, seen, pathname);
730
854
  for (const pathname of appPathResult.routeHandlerPaths) addPath(discoveredRouteHandlerPaths, seenRouteHandlerPaths, pathname);
855
+ for (const pathname of appPathResult.nonDynamicPaths) discoveredNonDynamicPathSet.add(pathname);
731
856
  fallbackRoutePatterns.push(...appPathResult.fallbackRoutePatterns);
857
+ for (const key of appPathResult.listedRoutePaths) appListedRoutePaths.add(key);
732
858
  }
733
859
  if (pagesDir) {
734
860
  const pagesPathResult = await collectPagesPaths({
735
861
  baseUrl,
862
+ enumerateDynamicPaths: options.candidatePathsOnly !== true,
736
863
  i18n: config.i18n,
737
864
  pagesDir,
738
865
  pageExtensions: config.pageExtensions,
@@ -744,13 +871,32 @@ async function emitPrerenderPathManifest(options) {
744
871
  addPath(discoveredPagesPaths, seenPagesPaths, pathname);
745
872
  }
746
873
  for (const pathname of pagesPathResult.dataPaths) addPath(discoveredPagesDataPaths, seenPagesDataPaths, pathname);
874
+ for (const pathname of pagesPathResult.nonDynamicPaths) discoveredNonDynamicPathSet.add(pathname);
747
875
  fallbackRoutePatterns.push(...pagesPathResult.fallbackRoutePatterns);
748
876
  }
749
877
  } finally {
750
878
  if (prodServer) await new Promise((resolve) => prodServer.server.close(() => resolve()));
751
879
  }
752
880
  });
753
- const excludedWarmPathSet = new Set(options.responseVary ? [...paths, ...discoveredRouteHandlerPaths].filter((pathname) => configuredRouteAffectsWarmPath(pathname, config)) : []);
881
+ for (const publicPathname of options.candidatePaths ?? []) {
882
+ let pathname = normalizePathTrailingSlash(new URL(publicPathname, "http://vinext.local").pathname, false);
883
+ if (config.basePath) {
884
+ if (pathname === config.basePath) pathname = "/";
885
+ else if (pathname.startsWith(`${config.basePath}/`)) pathname = pathname.slice(config.basePath.length);
886
+ else continue;
887
+ }
888
+ if (!seen.has(pathname)) candidateOnlyPathSet.add(pathname);
889
+ addPath(paths, seen, pathname);
890
+ if (pagesDir) addPath(discoveredPagesPaths, seenPagesPaths, pathname);
891
+ }
892
+ const hasStagedRequestRouting = options.requestRouting === "uncached-stage";
893
+ const middlewarePath = hasStagedRequestRouting ? findMiddlewareConventionFile(root, appDir, pagesDir, config.pageExtensions) : null;
894
+ const configuredMatcher = middlewarePath ? extractMiddlewareMatcherConfig(middlewarePath) : void 0;
895
+ const middlewareMayRouteWarmPath = (pathname) => middlewarePath !== null && matchesMiddlewareWarmPath(pathname, configuredMatcher, config.i18n);
896
+ const routedWarmPaths = [...paths, ...discoveredRouteHandlerPaths];
897
+ const routeMayResolveWarmPathSet = new Set(hasStagedRequestRouting ? routedWarmPaths.filter((pathname) => middlewareMayRouteWarmPath(pathname) || configuredRewritesCanReplaceWarmPath(pathname, config.rewrites, discoveredNonDynamicPathSet.has(pathname), config, (rewrite) => !isExternalUrl(rewrite.destination))) : []);
898
+ const requestStageMayTerminateWarmPathSet = new Set(hasStagedRequestRouting ? routedWarmPaths.filter((pathname) => middlewareMayRouteWarmPath(pathname) || configuredRulesAffectWarmPath(pathname, config.redirects, config) || configuredRewritesCanReplaceWarmPath(pathname, config.rewrites, discoveredNonDynamicPathSet.has(pathname), config, (rewrite) => isExternalUrl(rewrite.destination))) : []);
899
+ const excludedWarmPathSet = new Set(options.responseVary && !hasStagedRequestRouting ? routedWarmPaths.filter((pathname) => configuredRulesAffectWarmPath(pathname, config.redirects, config) || configuredRewritesCanReplaceWarmPath(pathname, config.rewrites, discoveredNonDynamicPathSet.has(pathname), config, () => true)) : []);
754
900
  const configuredPagesWarmPaths = discoveredPagesPaths.filter((pathname) => !excludedWarmPathSet.has(pathname));
755
901
  const resolvedPagesWarmPaths = !appDir && pagesDir ? await excludePagesApiWarmPaths({
756
902
  i18n: config.i18n,
@@ -758,9 +904,20 @@ async function emitPrerenderPathManifest(options) {
758
904
  pageExtensions: config.pageExtensions,
759
905
  paths: configuredPagesWarmPaths
760
906
  }) : configuredPagesWarmPaths;
761
- const discoveredPagesDataPathSet = new Set(discoveredPagesDataPaths);
762
907
  const configuredCandidatePaths = paths.filter((pathname) => !excludedWarmPathSet.has(pathname));
763
908
  const configuredRouteHandlerPaths = discoveredRouteHandlerPaths.filter((pathname) => !excludedWarmPathSet.has(pathname));
909
+ const pagesWarmMetadata = pagesDir ? await resolvePagesWarmRouteMetadata({
910
+ i18n: config.i18n,
911
+ pagesDir,
912
+ pageExtensions: config.pageExtensions,
913
+ paths: resolvedPagesWarmPaths
914
+ }) : {
915
+ dataPaths: [],
916
+ routePatterns: {}
917
+ };
918
+ for (const pathname of pagesWarmMetadata.dataPaths) addPath(discoveredPagesDataPaths, seenPagesDataPaths, pathname);
919
+ const discoveredPagesDataPathSet = new Set(discoveredPagesDataPaths);
920
+ const pagesOnlyWarmPaths = resolvedPagesWarmPaths.filter((pathname) => pagesWarmMetadata.routePatterns[pathname] !== void 0);
764
921
  const appOwnedWarmPaths = appDir ? await resolveAppWarmPaths({
765
922
  appDir,
766
923
  i18n: config.i18n,
@@ -770,22 +927,29 @@ async function emitPrerenderPathManifest(options) {
770
927
  }) : {
771
928
  appPaths: [],
772
929
  appRoutePaths: [],
773
- htmlPaths: discoveredAppPaths,
774
- loadingShellPaths: discoveredLoadingShellPaths,
775
- pagesPaths: resolvedPagesWarmPaths,
776
- routePatterns: pagesDir ? await resolvePagesWarmRoutePatterns({
777
- i18n: config.i18n,
778
- pagesDir,
779
- pageExtensions: config.pageExtensions,
780
- paths: resolvedPagesWarmPaths
781
- }) : {},
782
- rscPaths: discoveredAppPaths
930
+ htmlPaths: pagesOnlyWarmPaths,
931
+ loadingBoundaryRoutePatterns: [],
932
+ loadingShellPaths: [],
933
+ pagesPaths: pagesOnlyWarmPaths,
934
+ routePatterns: pagesWarmMetadata.routePatterns,
935
+ rscPaths: []
783
936
  };
784
- const warmPaths = appDir ? appOwnedWarmPaths.htmlPaths : resolvedPagesWarmPaths;
785
- const pagesOwnedWarmPaths = appDir ? appOwnedWarmPaths.pagesPaths : resolvedPagesWarmPaths;
937
+ for (const pathname of configuredCandidatePaths) {
938
+ if (appOwnedWarmPaths.routePatterns[pathname] || !routeMayResolveWarmPathSet.has(pathname) && !requestStageMayTerminateWarmPathSet.has(pathname)) continue;
939
+ appOwnedWarmPaths.htmlPaths.push(pathname);
940
+ (appDir ? appOwnedWarmPaths.appPaths : appOwnedWarmPaths.pagesPaths).push(pathname);
941
+ if (appDir && routeMayResolveWarmPathSet.has(pathname)) appOwnedWarmPaths.rscPaths.push(pathname);
942
+ appOwnedWarmPaths.routePatterns[pathname] = {
943
+ kind: appDir ? "app-page" : "pages-page",
944
+ pattern: pathname
945
+ };
946
+ }
947
+ const warmPaths = appOwnedWarmPaths.htmlPaths;
948
+ const pagesOwnedWarmPaths = appOwnedWarmPaths.pagesPaths;
786
949
  const resolvedPagesDataWarmPaths = pagesOwnedWarmPaths.filter((pathname) => discoveredPagesDataPathSet.has(pathname));
787
950
  const pagesDataPaths = resolvedPagesDataWarmPaths.map((pathname) => buildPagesDataHref(config.basePath, config.buildId, localizePagesDataPath(pathname, config.i18n), ""));
788
- const routePatterns = annotateCacheabilityProbeSafety(appOwnedWarmPaths.routePatterns, config);
951
+ const unlistedPathSet = new Set(Object.entries(appOwnedWarmPaths.routePatterns).flatMap(([pathname, route]) => (route.kind === "app-page" ? !appListedRoutePaths.has(appPageListingKey(route.pattern, pathname)) : candidateOnlyPathSet.has(pathname)) ? [pathname] : []));
952
+ const routePatterns = annotateCacheabilityProbeSafety(appOwnedWarmPaths.routePatterns, config, routeMayResolveWarmPathSet, requestStageMayTerminateWarmPathSet, unlistedPathSet, (name) => name.trim().toLowerCase() === "cache-control" || options.isResponsePolicyHeader?.(name) === true);
789
953
  for (let index = 0; index < resolvedPagesDataWarmPaths.length; index++) {
790
954
  const route = routePatterns[resolvedPagesDataWarmPaths[index]];
791
955
  if (route) {
@@ -799,6 +963,7 @@ async function emitPrerenderPathManifest(options) {
799
963
  };
800
964
  }
801
965
  }
966
+ const includeCanonicalRsc = options.responseVary || options.includeCanonicalRsc;
802
967
  const manifest = {
803
968
  ...appDir ? { appPaths: appOwnedWarmPaths.appPaths } : {},
804
969
  ...config.basePath ? { basePath: config.basePath } : {},
@@ -811,19 +976,26 @@ async function emitPrerenderPathManifest(options) {
811
976
  } : {},
812
977
  ...excludedWarmPathSet.size > 0 ? { excludedWarmPaths: Array.from(excludedWarmPathSet) } : {},
813
978
  ...fallbackRoutePatterns.length > 0 ? { fallbackRoutePatterns } : {},
979
+ ...appOwnedWarmPaths.loadingBoundaryRoutePatterns.length > 0 ? { loadingBoundaryRoutePatterns: appOwnedWarmPaths.loadingBoundaryRoutePatterns } : {},
814
980
  ...rscBuildId ? { rscBuildId } : {},
815
981
  ...options.responseVary ? { responseVary: options.responseVary } : {},
816
- ...options.responseVary ? { rscPaths: appOwnedWarmPaths.rscPaths } : {},
982
+ ...includeCanonicalRsc ? { rscPaths: appOwnedWarmPaths.rscPaths } : {},
817
983
  ...Object.keys(routePatterns).length > 0 ? { routePatterns } : {},
818
984
  ...appOwnedWarmPaths.appRoutePaths.length > 0 ? { routeHandlerPaths: appOwnedWarmPaths.appRoutePaths } : {},
819
- ...options.responseVary ? { loadingShellPaths: appOwnedWarmPaths.loadingShellPaths } : {},
985
+ ...includeCanonicalRsc ? { loadingShellPaths: appOwnedWarmPaths.loadingShellPaths } : {},
820
986
  trailingSlash: config.trailingSlash,
821
987
  paths: warmPaths
822
988
  };
989
+ console.log(` Discovered ${warmPaths.length + appOwnedWarmPaths.appRoutePaths.length} CDN warmup path(s).`);
990
+ return manifest;
991
+ }
992
+ async function emitPrerenderPathManifest(options) {
993
+ const manifest = await discoverPrerenderPathManifest(options);
994
+ if (!manifest) return null;
995
+ const manifestDir = path.join(options.root, "dist", "server");
823
996
  fs.mkdirSync(manifestDir, { recursive: true });
824
997
  fs.writeFileSync(path.join(manifestDir, PRERENDER_PATHS_MANIFEST), JSON.stringify(manifest, null, 2) + "\n", "utf-8");
825
- console.log(` Discovered ${warmPaths.length + appOwnedWarmPaths.appRoutePaths.length} CDN warmup path(s).`);
826
998
  return manifest;
827
999
  }
828
1000
  //#endregion
829
- export { DEFAULT_REMOTE_PATH_DISCOVERY_PHASE_TIMEOUT_MS, DEFAULT_REMOTE_PATH_DISCOVERY_RETRY_DELAY_MS, PRERENDER_PATHS_MANIFEST, PRERENDER_PATH_DISCOVERY_ENV, emitPrerenderPathManifest };
1001
+ export { DEFAULT_REMOTE_PATH_DISCOVERY_PHASE_TIMEOUT_MS, DEFAULT_REMOTE_PATH_DISCOVERY_RETRY_DELAY_MS, PRERENDER_PATHS_MANIFEST, PRERENDER_PATH_DISCOVERY_ENV, discoverPrerenderPathManifest, emitPrerenderPathManifest, matchesMiddlewareWarmPath };