vinext 1.0.0-beta.9 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (800) hide show
  1. package/README.md +150 -92
  2. package/THIRD_PARTY_LICENSES.md +25 -0
  3. package/dist/_virtual/_rolldown/runtime.js +25 -0
  4. package/dist/build/action-owner-manifest.d.ts +8 -9
  5. package/dist/build/action-owner-manifest.js +23 -5
  6. package/dist/build/assets-ignore.d.ts +3 -4
  7. package/dist/build/clean-output.d.ts +2 -3
  8. package/dist/build/client-build-config.d.ts +40 -12
  9. package/dist/build/client-build-config.js +76 -6
  10. package/dist/build/css-url-assets.d.ts +4 -5
  11. package/dist/build/css-url-assets.js +5 -2
  12. package/dist/build/google-fonts/build-url.d.ts +3 -4
  13. package/dist/build/google-fonts/fallback-metrics.d.ts +3 -4
  14. package/dist/build/google-fonts/find-font-files-in-css.d.ts +2 -3
  15. package/dist/build/google-fonts/font-metadata.d.ts +2 -3
  16. package/dist/build/google-fonts/get-axes.d.ts +2 -3
  17. package/dist/build/google-fonts/sort-variants.d.ts +2 -3
  18. package/dist/build/google-fonts/validate.d.ts +2 -3
  19. package/dist/build/google-fonts/validate.js +8 -4
  20. package/dist/build/inject-pregenerated-paths.d.ts +2 -3
  21. package/dist/build/inject-pregenerated-paths.js +16 -14
  22. package/dist/build/inline-css.d.ts +3 -4
  23. package/dist/build/layout-classification-types.d.ts +4 -5
  24. package/dist/build/layout-classification.d.ts +7 -8
  25. package/dist/build/lifecycle.d.ts +42 -0
  26. package/dist/build/lifecycle.js +253 -0
  27. package/dist/build/module-dependency-cache.d.ts +2 -3
  28. package/dist/build/next-client-runtime-manifests.d.ts +4 -5
  29. package/dist/build/nitro-route-rules.d.ts +6 -7
  30. package/dist/build/nitro-route-rules.js +1 -1
  31. package/dist/build/pages-client-assets-module.d.ts +4 -8
  32. package/dist/build/pages-client-assets-module.js +1 -13
  33. package/dist/build/precompress.d.ts +2 -3
  34. package/dist/build/prerender-cloudflare-loader.d.ts +4 -0
  35. package/dist/build/prerender-cloudflare-loader.js +49 -0
  36. package/dist/build/prerender-paths.d.ts +36 -11
  37. package/dist/build/prerender-paths.js +273 -97
  38. package/dist/build/prerender-phase.d.ts +2 -3
  39. package/dist/build/prerender-server-entry.js +11 -3
  40. package/dist/build/prerender-server-pool.d.ts +9 -6
  41. package/dist/build/prerender-server-pool.js +8 -5
  42. package/dist/build/prerender.d.ts +65 -15
  43. package/dist/build/prerender.js +139 -43
  44. package/dist/build/preview-credentials.d.ts +5 -6
  45. package/dist/build/preview-credentials.js +2 -2
  46. package/dist/build/public-dir-conflict.d.ts +5 -6
  47. package/dist/build/public-dir-conflict.js +2 -1
  48. package/dist/build/report.d.ts +24 -20
  49. package/dist/build/report.js +10 -2
  50. package/dist/build/route-classification-injector.d.ts +2 -3
  51. package/dist/build/route-classification-manifest.d.ts +5 -6
  52. package/dist/build/run-prerender.d.ts +11 -9
  53. package/dist/build/run-prerender.js +25 -16
  54. package/dist/build/server-entry.d.ts +4 -0
  55. package/dist/build/server-entry.js +28 -0
  56. package/dist/build/server-manifest.d.ts +8 -3
  57. package/dist/build/server-manifest.js +14 -2
  58. package/dist/build/ssr-manifest.d.ts +5 -6
  59. package/dist/build/standalone.d.ts +2 -3
  60. package/dist/build/standalone.js +2 -2
  61. package/dist/build/static-export.d.ts +6 -7
  62. package/dist/cache/cache-adapters-virtual.d.ts +60 -20
  63. package/dist/cache/cache-adapters-virtual.js +50 -7
  64. package/dist/check.d.ts +11 -10
  65. package/dist/check.js +467 -176
  66. package/dist/cli-args.d.ts +7 -16
  67. package/dist/cli-args.js +2 -45
  68. package/dist/cli-dev-config.d.ts +10 -7
  69. package/dist/cli-dev-config.js +160 -3
  70. package/dist/cli.js +124 -442
  71. package/dist/client/app-nav-failure-handler.d.ts +6 -7
  72. package/dist/client/client-rewrite-matcher.d.ts +2 -3
  73. package/dist/client/client-rewrites.d.ts +4 -5
  74. package/dist/client/dev-error-overlay-store.d.ts +13 -14
  75. package/dist/client/dev-error-overlay.d.ts +15 -15
  76. package/dist/client/dev-error-overlay.js +8 -5
  77. package/dist/client/instrumentation-client-inject.d.ts +3 -4
  78. package/dist/client/instrumentation-client-state.d.ts +5 -6
  79. package/dist/client/instrumentation-client.d.ts +3 -4
  80. package/dist/client/navigation-runtime.d.ts +21 -17
  81. package/dist/client/navigation-runtime.js +2 -1
  82. package/dist/client/pages-router-link-navigation.d.ts +4 -5
  83. package/dist/client/react-instance.d.ts +2 -3
  84. package/dist/client/validate-module-path.d.ts +2 -3
  85. package/dist/client/vinext-next-data.d.ts +7 -10
  86. package/dist/client/window-next.d.ts +4 -5
  87. package/dist/config/config-matchers.d.ts +16 -16
  88. package/dist/config/config-matchers.js +2 -4
  89. package/dist/config/dotenv.d.ts +3 -4
  90. package/dist/config/dotenv.js +2 -1
  91. package/dist/config/next-config.d.ts +31 -27
  92. package/dist/config/next-config.js +163 -16
  93. package/dist/config/prerender.d.ts +20 -16
  94. package/dist/config/prerender.js +10 -4
  95. package/dist/config/request-context.d.ts +5 -6
  96. package/dist/config/server-external-packages.d.ts +14 -3
  97. package/dist/config/server-external-packages.js +37 -3
  98. package/dist/config/tsconfig-paths.d.ts +3 -4
  99. package/dist/deps/.pnpm/ignore@5.3.2/deps/ignore/index.js +189 -0
  100. package/dist/deps/.pnpm/ua-parser-js@1.0.35/deps/ua-parser-js/src/ua-parser.js +1057 -0
  101. package/dist/entries/app-browser-entry.d.ts +4 -5
  102. package/dist/entries/app-browser-entry.js +1 -3
  103. package/dist/entries/app-rsc-entry.d.ts +10 -3
  104. package/dist/entries/app-rsc-entry.js +502 -51
  105. package/dist/entries/app-rsc-manifest.d.ts +4 -3
  106. package/dist/entries/app-rsc-manifest.js +26 -8
  107. package/dist/entries/app-ssr-entry.d.ts +2 -3
  108. package/dist/entries/app-ssr-entry.js +8 -1
  109. package/dist/entries/pages-client-entry.d.ts +3 -3
  110. package/dist/entries/pages-client-entry.js +17 -2
  111. package/dist/entries/pages-server-entry.d.ts +13 -3
  112. package/dist/entries/pages-server-entry.js +234 -33
  113. package/dist/entries/runtime-entry-module.d.ts +4 -5
  114. package/dist/image/image-adapters-virtual.d.ts +4 -5
  115. package/dist/index.d.ts +10 -11
  116. package/dist/index.js +711 -189
  117. package/dist/init-cloudflare.d.ts +26 -17
  118. package/dist/init-cloudflare.js +710 -102
  119. package/dist/init-platform.d.ts +26 -22
  120. package/dist/init-platform.js +85 -29
  121. package/dist/init.d.ts +19 -13
  122. package/dist/init.js +123 -41
  123. package/dist/plugins/action-owner-manifest.d.ts +3 -4
  124. package/dist/plugins/action-owner-manifest.js +10 -3
  125. package/dist/plugins/ast-scope.d.ts +10 -11
  126. package/dist/plugins/ast-scope.js +10 -22
  127. package/dist/plugins/ast-utils.d.ts +16 -29
  128. package/dist/plugins/ast-utils.js +27 -71
  129. package/dist/plugins/async-hooks-stub.d.ts +2 -3
  130. package/dist/plugins/client-reference-dedup.d.ts +4 -5
  131. package/dist/plugins/css-data-url.d.ts +2 -3
  132. package/dist/plugins/css-module-imports.d.ts +3 -4
  133. package/dist/plugins/css-module-imports.js +1 -1
  134. package/dist/plugins/dynamic-preload-metadata.d.ts +3 -4
  135. package/dist/plugins/dynamic-preload-metadata.js +55 -154
  136. package/dist/plugins/environment.d.ts +2 -3
  137. package/dist/plugins/extensionless-dynamic-import.d.ts +2 -3
  138. package/dist/plugins/extensionless-dynamic-import.js +6 -10
  139. package/dist/plugins/fonts.d.ts +10 -11
  140. package/dist/plugins/fonts.js +4 -3
  141. package/dist/plugins/ignore-dynamic-requests.d.ts +3 -4
  142. package/dist/plugins/ignore-dynamic-requests.js +60 -89
  143. package/dist/plugins/import-meta-url.d.ts +6 -7
  144. package/dist/plugins/import-meta-url.js +31 -43
  145. package/dist/plugins/instrumentation-client.d.ts +3 -3
  146. package/dist/plugins/instrumentation-client.js +46 -10
  147. package/dist/plugins/middleware-export-validation.d.ts +3 -4
  148. package/dist/plugins/middleware-export-validation.js +3 -3
  149. package/dist/plugins/middleware-server-only.d.ts +2 -3
  150. package/dist/plugins/og-asset-ownership.d.ts +3 -4
  151. package/dist/plugins/og-assets.d.ts +4 -5
  152. package/dist/plugins/og-assets.js +32 -13
  153. package/dist/plugins/og-harfbuzz.d.ts +24 -0
  154. package/dist/plugins/og-harfbuzz.js +260 -0
  155. package/dist/plugins/optimize-imports.d.ts +7 -7
  156. package/dist/plugins/optimize-imports.js +32 -44
  157. package/dist/plugins/pages-node-externals.d.ts +2 -3
  158. package/dist/plugins/pages-node-externals.js +6 -11
  159. package/dist/plugins/postcss.d.ts +8 -4
  160. package/dist/plugins/postcss.js +1 -1
  161. package/dist/plugins/remove-console.d.ts +2 -3
  162. package/dist/plugins/remove-console.js +0 -1
  163. package/dist/plugins/require-condition-resolution.d.ts +3 -4
  164. package/dist/plugins/require-condition-resolution.js +17 -18
  165. package/dist/plugins/require-context.d.ts +2 -3
  166. package/dist/plugins/require-context.js +13 -21
  167. package/dist/plugins/rsc-client-reference-loaders.d.ts +2 -3
  168. package/dist/plugins/rsc-client-shim-excludes.d.ts +4 -5
  169. package/dist/plugins/rsc-client-shim-excludes.js +1 -0
  170. package/dist/plugins/rsc-reference-validation-normalizer.d.ts +2 -3
  171. package/dist/plugins/sass.d.ts +7 -8
  172. package/dist/plugins/sass.js +7 -4
  173. package/dist/plugins/server-externals-manifest.d.ts +2 -3
  174. package/dist/plugins/strip-server-exports.d.ts +5 -6
  175. package/dist/plugins/strip-server-exports.js +1 -1
  176. package/dist/plugins/styled-jsx.d.ts +2 -3
  177. package/dist/plugins/styled-jsx.js +7 -7
  178. package/dist/plugins/transform-cache.d.ts +2 -3
  179. package/dist/plugins/transform-result.d.ts +3 -4
  180. package/dist/plugins/transitive-externals.d.ts +2 -3
  181. package/dist/plugins/typeof-window.d.ts +6 -7
  182. package/dist/plugins/typeof-window.js +30 -31
  183. package/dist/plugins/use-cache-callable.d.ts +2 -5
  184. package/dist/plugins/use-cache-callable.js +43 -22
  185. package/dist/plugins/wasm-module-import.d.ts +2 -3
  186. package/dist/plugins/worker-image-imports.d.ts +2 -3
  187. package/dist/plugins/worker-image-imports.js +6 -8
  188. package/dist/routing/app-route-graph.d.ts +19 -19
  189. package/dist/routing/app-route-graph.js +3 -2
  190. package/dist/routing/app-router.d.ts +19 -6
  191. package/dist/routing/app-router.js +24 -2
  192. package/dist/routing/file-matcher.d.ts +9 -10
  193. package/dist/routing/pages-router.d.ts +6 -6
  194. package/dist/routing/pages-router.js +1 -1
  195. package/dist/routing/route-matching.d.ts +4 -5
  196. package/dist/routing/route-matching.js +4 -2
  197. package/dist/routing/route-pattern.d.ts +13 -14
  198. package/dist/routing/route-trie.d.ts +5 -6
  199. package/dist/routing/route-validation.d.ts +3 -4
  200. package/dist/routing/route-validation.js +12 -11
  201. package/dist/routing/utils.d.ts +13 -14
  202. package/dist/server/accept-encoding.d.ts +9 -10
  203. package/dist/server/api-handler.d.ts +2 -3
  204. package/dist/server/api-handler.js +9 -6
  205. package/dist/server/app-action-forwarding.d.ts +3 -4
  206. package/dist/server/app-action-forwarding.js +1 -1
  207. package/dist/server/app-action-request.d.ts +2 -3
  208. package/dist/server/app-bfcache-id.d.ts +3 -4
  209. package/dist/server/app-bfcache-identity.d.ts +8 -9
  210. package/dist/server/app-browser-action-result.d.ts +15 -16
  211. package/dist/server/app-browser-client-reuse-manifest.d.ts +2 -3
  212. package/dist/server/app-browser-entry.js +87 -34
  213. package/dist/server/app-browser-error.d.ts +5 -6
  214. package/dist/server/app-browser-error.js +9 -3
  215. package/dist/server/app-browser-history-controller.d.ts +4 -5
  216. package/dist/server/app-browser-hydration.d.ts +16 -6
  217. package/dist/server/app-browser-hydration.js +14 -1
  218. package/dist/server/app-browser-interception-context.d.ts +3 -4
  219. package/dist/server/app-browser-mpa-navigation.d.ts +4 -5
  220. package/dist/server/app-browser-navigation-abort.d.ts +3 -4
  221. package/dist/server/app-browser-navigation-controller.d.ts +8 -8
  222. package/dist/server/app-browser-navigation-controller.js +8 -4
  223. package/dist/server/app-browser-navigation-response.d.ts +2 -3
  224. package/dist/server/app-browser-popstate.d.ts +4 -5
  225. package/dist/server/app-browser-prefetch-response.d.ts +5 -6
  226. package/dist/server/app-browser-rsc-redirect.d.ts +4 -5
  227. package/dist/server/app-browser-server-action-client.d.ts +7 -6
  228. package/dist/server/app-browser-server-action-client.js +9 -5
  229. package/dist/server/app-browser-server-action-navigation.d.ts +2 -3
  230. package/dist/server/app-browser-state.d.ts +17 -17
  231. package/dist/server/app-browser-state.js +6 -2
  232. package/dist/server/app-browser-stream.d.ts +4 -5
  233. package/dist/server/app-browser-stream.js +8 -6
  234. package/dist/server/app-browser-supplemental-refresh.d.ts +11 -12
  235. package/dist/server/app-browser-visible-commit.d.ts +6 -7
  236. package/dist/server/app-client-reference-preloader.d.ts +2 -3
  237. package/dist/server/app-elements-wire-key.d.ts +25 -0
  238. package/dist/server/app-elements-wire-key.js +69 -0
  239. package/dist/server/app-elements-wire.d.ts +34 -53
  240. package/dist/server/app-elements-wire.js +4 -75
  241. package/dist/server/app-elements.d.ts +5 -5
  242. package/dist/server/app-elements.js +1 -1
  243. package/dist/server/app-fallback-renderer.d.ts +4 -4
  244. package/dist/server/app-fallback-renderer.js +6 -6
  245. package/dist/server/app-fetch-tracing.d.ts +15 -0
  246. package/dist/server/app-fetch-tracing.js +38 -0
  247. package/dist/server/app-history-state.d.ts +26 -27
  248. package/dist/server/app-history-state.js +19 -11
  249. package/dist/server/app-hook-warning-suppression.d.ts +2 -3
  250. package/dist/server/app-hydration-cache-publication.d.ts +3 -4
  251. package/dist/server/app-inline-css-client.d.ts +3 -4
  252. package/dist/server/app-interception-context-header.d.ts +2 -3
  253. package/dist/server/app-layout-param-observation.d.ts +7 -8
  254. package/dist/server/app-metadata-tracing.d.ts +12 -0
  255. package/dist/server/app-metadata-tracing.js +17 -0
  256. package/dist/server/app-middleware.d.ts +7 -7
  257. package/dist/server/app-middleware.js +2 -3
  258. package/dist/server/app-mounted-slots-header.d.ts +2 -3
  259. package/dist/server/app-mounted-slots-header.js +2 -2
  260. package/dist/server/app-optimistic-routing.d.ts +10 -11
  261. package/dist/server/app-optimistic-routing.js +3 -2
  262. package/dist/server/app-page-boundary-render.d.ts +6 -6
  263. package/dist/server/app-page-boundary-render.js +10 -4
  264. package/dist/server/app-page-boundary.d.ts +9 -10
  265. package/dist/server/app-page-boundary.js +1 -1
  266. package/dist/server/app-page-cache-finalizer.d.ts +18 -9
  267. package/dist/server/app-page-cache-finalizer.js +51 -16
  268. package/dist/server/app-page-cache-render.d.ts +8 -5
  269. package/dist/server/app-page-cache-render.js +22 -5
  270. package/dist/server/app-page-cache.d.ts +28 -9
  271. package/dist/server/app-page-cache.js +95 -24
  272. package/dist/server/app-page-dispatch.d.ts +34 -12
  273. package/dist/server/app-page-dispatch.js +181 -64
  274. package/dist/server/app-page-element-builder.d.ts +13 -11
  275. package/dist/server/app-page-element-builder.js +104 -61
  276. package/dist/server/app-page-execution.d.ts +14 -14
  277. package/dist/server/app-page-execution.js +11 -7
  278. package/dist/server/app-page-head.d.ts +19 -16
  279. package/dist/server/app-page-head.js +25 -25
  280. package/dist/server/app-page-http-access-fallback-metadata.d.ts +6 -5
  281. package/dist/server/app-page-http-access-fallback-metadata.js +9 -2
  282. package/dist/server/app-page-method.d.ts +5 -11
  283. package/dist/server/app-page-method.js +2 -9
  284. package/dist/server/app-page-params.d.ts +5 -6
  285. package/dist/server/app-page-ppr-runtime.d.ts +2 -2
  286. package/dist/server/app-page-probe.d.ts +5 -6
  287. package/dist/server/app-page-probe.js +5 -4
  288. package/dist/server/app-page-render-identity.d.ts +4 -5
  289. package/dist/server/app-page-render-observation.d.ts +8 -9
  290. package/dist/server/app-page-render-observation.js +1 -1
  291. package/dist/server/app-page-render.d.ts +41 -6
  292. package/dist/server/app-page-render.js +171 -25
  293. package/dist/server/app-page-request.d.ts +10 -9
  294. package/dist/server/app-page-request.js +16 -12
  295. package/dist/server/app-page-response.d.ts +20 -9
  296. package/dist/server/app-page-response.js +30 -12
  297. package/dist/server/app-page-route-wiring.d.ts +15 -15
  298. package/dist/server/app-page-route-wiring.js +31 -24
  299. package/dist/server/app-page-search-params-observation.d.ts +26 -5
  300. package/dist/server/app-page-search-params-observation.js +42 -6
  301. package/dist/server/app-page-segment-plan.d.ts +2 -3
  302. package/dist/server/app-page-segment-state.d.ts +11 -12
  303. package/dist/server/app-page-stream.d.ts +27 -11
  304. package/dist/server/app-page-stream.js +34 -6
  305. package/dist/server/app-page-tracing.d.ts +33 -0
  306. package/dist/server/app-page-tracing.js +49 -0
  307. package/dist/server/app-pages-bridge.d.ts +6 -6
  308. package/dist/server/app-pages-bridge.js +17 -4
  309. package/dist/server/app-post-middleware-context.d.ts +2 -3
  310. package/dist/server/app-ppr-fallback-shell-render.d.ts +3 -4
  311. package/dist/server/app-ppr-fallback-shell-render.js +3 -2
  312. package/dist/server/app-ppr-fallback-shell.d.ts +6 -7
  313. package/dist/server/app-prerender-endpoints.d.ts +5 -5
  314. package/dist/server/app-prerender-endpoints.js +3 -1
  315. package/dist/server/app-prerender-static-params.d.ts +15 -7
  316. package/dist/server/app-prerender-static-params.js +24 -9
  317. package/dist/server/app-render-dependency.d.ts +14 -13
  318. package/dist/server/app-render-dependency.js +5 -1
  319. package/dist/server/app-request-context.d.ts +3 -4
  320. package/dist/server/app-request-stage-context.d.ts +5 -0
  321. package/dist/server/app-request-stage-context.js +11 -0
  322. package/dist/server/app-request-stage-dispatch.d.ts +25 -0
  323. package/dist/server/app-request-stage-dispatch.js +54 -0
  324. package/dist/server/app-request-stage-independent-entry.d.ts +8 -0
  325. package/dist/server/app-request-stage-independent-entry.js +115 -0
  326. package/dist/server/app-response-header-provenance.d.ts +13 -7
  327. package/dist/server/app-response-header-provenance.js +34 -1
  328. package/dist/server/app-response-stage-entry.d.ts +9 -0
  329. package/dist/server/app-response-stage-entry.js +87 -0
  330. package/dist/server/app-route-handler-cache.d.ts +2 -3
  331. package/dist/server/app-route-handler-cache.js +46 -34
  332. package/dist/server/app-route-handler-dispatch.d.ts +3 -3
  333. package/dist/server/app-route-handler-dispatch.js +68 -54
  334. package/dist/server/app-route-handler-execution.d.ts +17 -13
  335. package/dist/server/app-route-handler-execution.js +69 -18
  336. package/dist/server/app-route-handler-middleware-context.d.ts +8 -0
  337. package/dist/server/app-route-handler-middleware-context.js +15 -0
  338. package/dist/server/app-route-handler-policy.d.ts +11 -11
  339. package/dist/server/app-route-handler-response.d.ts +9 -10
  340. package/dist/server/app-route-handler-response.js +2 -0
  341. package/dist/server/app-route-handler-runtime.d.ts +9 -10
  342. package/dist/server/app-route-handler-runtime.js +20 -16
  343. package/dist/server/app-route-module-loader.d.ts +6 -7
  344. package/dist/server/app-route-request-built-ins.d.ts +3 -4
  345. package/dist/server/app-route-tree-prefetch.d.ts +6 -7
  346. package/dist/server/app-route-tree-prefetch.js +2 -1
  347. package/dist/server/app-router-entry.d.ts +2 -0
  348. package/dist/server/app-router-entry.js +28 -8
  349. package/dist/server/app-rsc-cache-busting.d.ts +34 -27
  350. package/dist/server/app-rsc-cache-busting.js +14 -2
  351. package/dist/server/app-rsc-combined-handler.d.ts +9 -0
  352. package/dist/server/app-rsc-combined-handler.js +11 -0
  353. package/dist/server/app-rsc-embedded-chunks.d.ts +6 -7
  354. package/dist/server/app-rsc-error-handler.d.ts +12 -6
  355. package/dist/server/app-rsc-error-handler.js +15 -6
  356. package/dist/server/app-rsc-errors.d.ts +12 -9
  357. package/dist/server/app-rsc-errors.js +15 -13
  358. package/dist/server/app-rsc-handler.d.ts +31 -6
  359. package/dist/server/app-rsc-handler.js +411 -61
  360. package/dist/server/app-rsc-redirect-flight.d.ts +4 -5
  361. package/dist/server/app-rsc-render-mode.d.ts +8 -9
  362. package/dist/server/app-rsc-request-normalization.d.ts +3 -3
  363. package/dist/server/app-rsc-request-normalization.js +2 -1
  364. package/dist/server/app-rsc-response-finalizer.d.ts +8 -5
  365. package/dist/server/app-rsc-response-finalizer.js +6 -6
  366. package/dist/server/app-rsc-response-stage.d.ts +6 -0
  367. package/dist/server/app-rsc-response-stage.js +251 -0
  368. package/dist/server/app-rsc-route-matching.d.ts +3 -4
  369. package/dist/server/app-rsc-route-matching.js +3 -2
  370. package/dist/server/app-rsc-state-fingerprint.d.ts +3 -4
  371. package/dist/server/app-rsc-vary.d.ts +16 -0
  372. package/dist/server/app-rsc-vary.js +31 -0
  373. package/dist/server/app-segment-config.d.ts +119 -7
  374. package/dist/server/app-segment-config.js +242 -2
  375. package/dist/server/app-server-action-execution.d.ts +16 -12
  376. package/dist/server/app-server-action-execution.js +86 -33
  377. package/dist/server/app-ssr-entry.d.ts +14 -4
  378. package/dist/server/app-ssr-entry.js +61 -14
  379. package/dist/server/app-ssr-error-meta.d.ts +3 -4
  380. package/dist/server/app-ssr-error-meta.js +2 -1
  381. package/dist/server/app-ssr-router-instance.d.ts +2 -3
  382. package/dist/server/app-ssr-search-params-gate.d.ts +20 -0
  383. package/dist/server/app-ssr-search-params-gate.js +54 -0
  384. package/dist/server/app-ssr-stream.d.ts +13 -9
  385. package/dist/server/app-ssr-stream.js +33 -7
  386. package/dist/server/app-static-generation.d.ts +4 -5
  387. package/dist/server/app-visited-response-cache.d.ts +11 -12
  388. package/dist/server/app-visited-response-cache.js +2 -2
  389. package/dist/server/app-worker-stages.d.ts +112 -0
  390. package/dist/server/app-worker-stages.js +105 -0
  391. package/dist/server/artifact-compatibility.d.ts +11 -12
  392. package/dist/server/before-interactive-head.d.ts +2 -3
  393. package/dist/server/bfcache-identity.d.ts +7 -8
  394. package/dist/server/cache-control.d.ts +35 -13
  395. package/dist/server/cache-control.js +71 -5
  396. package/dist/server/cache-headers.d.ts +3 -4
  397. package/dist/server/cache-proof.d.ts +75 -70
  398. package/dist/server/cache-proof.js +9 -1
  399. package/dist/server/cacheability-limits.d.ts +4 -5
  400. package/dist/server/cacheability-limits.js +2 -2
  401. package/dist/server/cacheability-manifest.d.ts +42 -16
  402. package/dist/server/cacheability-manifest.js +60 -10
  403. package/dist/server/cacheability-request.d.ts +37 -8
  404. package/dist/server/cacheability-request.js +159 -57
  405. package/dist/server/client-reuse-manifest.d.ts +17 -18
  406. package/dist/server/client-reuse-manifest.js +2 -2
  407. package/dist/server/client-trace-metadata.d.ts +9 -6
  408. package/dist/server/client-trace-metadata.js +27 -15
  409. package/dist/server/cloudflare-workers-tracing.d.ts +1 -0
  410. package/dist/server/cloudflare-workers-tracing.js +8 -0
  411. package/dist/server/config-headers.d.ts +19 -5
  412. package/dist/server/config-headers.js +25 -11
  413. package/dist/server/cookie-utils.d.ts +2 -3
  414. package/dist/server/csp.d.ts +5 -6
  415. package/dist/server/default-global-error-module.d.ts +2 -3
  416. package/dist/server/default-global-not-found-module.d.ts +2 -3
  417. package/dist/server/default-not-found-module.d.ts +2 -3
  418. package/dist/server/defer-until-stream-consumed.d.ts +2 -3
  419. package/dist/server/defer-until-stream-consumed.js +2 -1
  420. package/dist/server/dev-initial-server-error.d.ts +3 -4
  421. package/dist/server/dev-initial-server-error.js +2 -1
  422. package/dist/server/dev-lockfile.d.ts +7 -8
  423. package/dist/server/dev-lockfile.js +4 -1
  424. package/dist/server/dev-module-runner.d.ts +2 -3
  425. package/dist/server/dev-origin-check.d.ts +5 -6
  426. package/dist/server/dev-route-files.d.ts +2 -3
  427. package/dist/server/dev-server.d.ts +4 -5
  428. package/dist/server/dev-server.js +130 -61
  429. package/dist/server/dev-stack-sourcemap.d.ts +7 -7
  430. package/dist/server/dev-stack-sourcemap.js +1 -1
  431. package/dist/server/document-initial-head.d.ts +3 -4
  432. package/dist/server/edge-api-runtime.d.ts +4 -5
  433. package/dist/server/fetch-handler.d.ts +3 -2
  434. package/dist/server/fetch-handler.js +3 -18
  435. package/dist/server/file-based-metadata.d.ts +2 -3
  436. package/dist/server/framework-tracer.d.ts +46 -0
  437. package/dist/server/framework-tracer.js +125 -0
  438. package/dist/server/fully-buffered-response.d.ts +11 -0
  439. package/dist/server/fully-buffered-response.js +19 -0
  440. package/dist/server/headers.d.ts +54 -61
  441. package/dist/server/headers.js +18 -31
  442. package/dist/server/html.d.ts +6 -27
  443. package/dist/server/html.js +16 -1
  444. package/dist/server/http-conditional.d.ts +5 -6
  445. package/dist/server/http-date.d.ts +2 -3
  446. package/dist/server/http-error-responses.d.ts +9 -10
  447. package/dist/server/http-range.d.ts +4 -5
  448. package/dist/server/hybrid-route-priority.d.ts +4 -5
  449. package/dist/server/image-optimization.d.ts +20 -21
  450. package/dist/server/implicit-tags.d.ts +3 -4
  451. package/dist/server/instrumentation-runtime.d.ts +17 -21
  452. package/dist/server/instrumentation-runtime.js +26 -8
  453. package/dist/server/instrumentation.d.ts +26 -30
  454. package/dist/server/instrumentation.js +18 -23
  455. package/dist/server/isr-cache.d.ts +28 -27
  456. package/dist/server/isr-cache.js +18 -70
  457. package/dist/server/isr-decision.d.ts +4 -4
  458. package/dist/server/metadata-route-build-data.d.ts +4 -5
  459. package/dist/server/metadata-route-cache-policy.d.ts +2 -3
  460. package/dist/server/metadata-route-response.d.ts +7 -7
  461. package/dist/server/metadata-route-response.js +68 -2
  462. package/dist/server/metadata-routes.d.ts +18 -19
  463. package/dist/server/middleware-matcher-pattern.d.ts +6 -7
  464. package/dist/server/middleware-matcher.d.ts +6 -7
  465. package/dist/server/middleware-path-to-regexp.d.ts +6 -7
  466. package/dist/server/middleware-path-to-regexp.js +11 -9
  467. package/dist/server/middleware-response-headers.d.ts +3 -4
  468. package/dist/server/middleware-runtime.d.ts +7 -8
  469. package/dist/server/middleware-runtime.js +36 -7
  470. package/dist/server/middleware.d.ts +5 -5
  471. package/dist/server/multi-stage.d.ts +141 -0
  472. package/dist/server/multi-stage.js +8 -0
  473. package/dist/server/navigation-planner.d.ts +26 -26
  474. package/dist/server/navigation-trace.d.ts +11 -12
  475. package/dist/server/next-error-digest.d.ts +4 -5
  476. package/dist/server/normalize-path.d.ts +5 -6
  477. package/dist/server/open-redirect.d.ts +2 -3
  478. package/dist/server/opentelemetry-api.d.ts +59 -0
  479. package/dist/server/opentelemetry-api.js +53 -0
  480. package/dist/server/opentelemetry-tracing.d.ts +5 -0
  481. package/dist/server/opentelemetry-tracing.js +83 -0
  482. package/dist/server/operation-token.d.ts +11 -12
  483. package/dist/server/otel-tracer-extension.d.ts +7 -9
  484. package/dist/server/otel-tracer-extension.js +37 -36
  485. package/dist/server/pages-api-route.d.ts +5 -4
  486. package/dist/server/pages-api-route.js +20 -7
  487. package/dist/server/pages-asset-tags.d.ts +6 -6
  488. package/dist/server/pages-asset-tags.js +37 -2
  489. package/dist/server/pages-body-parser-config.d.ts +4 -5
  490. package/dist/server/pages-body-parser-config.js +4 -4
  491. package/dist/server/pages-client-assets.d.ts +11 -5
  492. package/dist/server/pages-data-route.d.ts +11 -12
  493. package/dist/server/pages-data-route.js +1 -1
  494. package/dist/server/pages-default-404.d.ts +3 -4
  495. package/dist/server/pages-dev-hydration.d.ts +9 -4
  496. package/dist/server/pages-dev-hydration.js +19 -7
  497. package/dist/server/pages-dev-module-url.d.ts +3 -4
  498. package/dist/server/pages-dev-stylesheets.d.ts +5 -6
  499. package/dist/server/pages-document-asset-props.d.ts +6 -7
  500. package/dist/server/pages-document-initial-props.d.ts +5 -5
  501. package/dist/server/pages-document-initial-props.js +4 -2
  502. package/dist/server/pages-execution-tracing.d.ts +40 -0
  503. package/dist/server/pages-execution-tracing.js +80 -0
  504. package/dist/server/pages-get-initial-props.d.ts +9 -10
  505. package/dist/server/pages-i18n.d.ts +8 -8
  506. package/dist/server/pages-media-type.d.ts +4 -5
  507. package/dist/server/pages-node-compat.d.ts +11 -10
  508. package/dist/server/pages-node-compat.js +12 -4
  509. package/dist/server/pages-page-data.d.ts +18 -19
  510. package/dist/server/pages-page-data.js +11 -10
  511. package/dist/server/pages-page-handler.d.ts +7 -6
  512. package/dist/server/pages-page-handler.js +77 -39
  513. package/dist/server/pages-page-method.d.ts +2 -3
  514. package/dist/server/pages-page-response.d.ts +14 -10
  515. package/dist/server/pages-page-response.js +49 -31
  516. package/dist/server/pages-preview.d.ts +10 -11
  517. package/dist/server/pages-readiness.d.ts +2 -3
  518. package/dist/server/pages-request-pipeline.d.ts +14 -12
  519. package/dist/server/pages-request-pipeline.js +60 -30
  520. package/dist/server/pages-request-stage-entry.d.ts +23 -0
  521. package/dist/server/pages-request-stage-entry.js +314 -0
  522. package/dist/server/pages-response-stage-entry.d.ts +11 -0
  523. package/dist/server/pages-response-stage-entry.js +106 -0
  524. package/dist/server/pages-response-stage.d.ts +31 -0
  525. package/dist/server/pages-response-stage.js +49 -0
  526. package/dist/server/pages-revalidate.d.ts +3 -4
  527. package/dist/server/pages-revalidate.js +9 -4
  528. package/dist/server/pages-route-data-kind.d.ts +18 -0
  529. package/dist/server/pages-route-data-kind.js +11 -0
  530. package/dist/server/pages-router-entry.d.ts +1 -25
  531. package/dist/server/pages-router-entry.js +35 -148
  532. package/dist/server/pages-serializable-props.d.ts +3 -4
  533. package/dist/server/pregenerated-concrete-paths.d.ts +9 -7
  534. package/dist/server/pregenerated-concrete-paths.js +12 -6
  535. package/dist/server/prerender-cache-life-header.d.ts +3 -4
  536. package/dist/server/prerender-manifest.d.ts +11 -11
  537. package/dist/server/prerender-manifest.js +6 -3
  538. package/dist/server/prerender-route-params.d.ts +16 -9
  539. package/dist/server/prerender-route-params.js +18 -3
  540. package/dist/server/prerender-work-unit-setup.d.ts +2 -3
  541. package/dist/server/prerender-work-unit-setup.js +5 -5
  542. package/dist/server/prod-server.d.ts +12 -9
  543. package/dist/server/prod-server.js +124 -31
  544. package/dist/server/proxy-trust.d.ts +5 -6
  545. package/dist/server/request-log.d.ts +3 -4
  546. package/dist/server/request-pipeline.d.ts +16 -16
  547. package/dist/server/request-pipeline.js +7 -2
  548. package/dist/server/request-stage.d.ts +5 -0
  549. package/dist/server/request-stage.js +7 -0
  550. package/dist/server/request-tracing.d.ts +22 -0
  551. package/dist/server/request-tracing.js +180 -0
  552. package/dist/server/response-stage-cacheability.d.ts +37 -0
  553. package/dist/server/response-stage-cacheability.js +55 -0
  554. package/dist/server/response-stage-policy.d.ts +23 -0
  555. package/dist/server/response-stage-policy.js +89 -0
  556. package/dist/server/response-stage.d.ts +5 -0
  557. package/dist/server/response-stage.js +7 -0
  558. package/dist/server/response-start-tracing.d.ts +14 -0
  559. package/dist/server/response-start-tracing.js +80 -0
  560. package/dist/server/revalidation-host.d.ts +2 -3
  561. package/dist/server/revalidation-host.js +1 -1
  562. package/dist/server/revalidation-request.d.ts +8 -0
  563. package/dist/server/revalidation-request.js +37 -0
  564. package/dist/server/rsc-completion-metadata.d.ts +6 -7
  565. package/dist/server/rsc-stream-hints.d.ts +18 -7
  566. package/dist/server/rsc-stream-hints.js +70 -35
  567. package/dist/server/seed-cache.d.ts +2 -3
  568. package/dist/server/seed-cache.js +8 -7
  569. package/dist/server/server-action-not-found.d.ts +5 -6
  570. package/dist/server/server-globals.d.ts +2 -3
  571. package/dist/server/skip-cache-proof.d.ts +4 -4
  572. package/dist/server/socket-error-backstop.d.ts +5 -6
  573. package/dist/server/socket-error-backstop.js +1 -1
  574. package/dist/server/static-file-cache.d.ts +5 -6
  575. package/dist/server/static-file-cache.js +9 -7
  576. package/dist/server/static-file-signal.d.ts +9 -6
  577. package/dist/server/static-file-signal.js +51 -2
  578. package/dist/server/static-layout-client-reuse-proof.d.ts +4 -5
  579. package/dist/server/streaming-metadata.d.ts +2 -3
  580. package/dist/server/tracer.d.ts +5 -0
  581. package/dist/server/tracer.js +13 -0
  582. package/dist/server/worker-prerender-discovery.d.ts +5 -6
  583. package/dist/server/worker-revalidation-context.d.ts +2 -3
  584. package/dist/server/worker-revalidation-context.js +5 -5
  585. package/dist/server/worker-stages.d.ts +43 -0
  586. package/dist/server/worker-stages.js +25 -0
  587. package/dist/server/worker-utils.d.ts +5 -6
  588. package/dist/server/worker-utils.js +2 -1
  589. package/dist/server/workers-tracing.d.ts +17 -0
  590. package/dist/server/workers-tracing.js +27 -0
  591. package/dist/shims/amp.d.ts +3 -4
  592. package/dist/shims/app-router-scroll-state.d.ts +9 -10
  593. package/dist/shims/app-router-scroll.d.ts +4 -5
  594. package/dist/shims/app-router-scroll.js +2 -1
  595. package/dist/shims/app.d.ts +5 -6
  596. package/dist/shims/before-interactive-context.d.ts +5 -6
  597. package/dist/shims/cache-callable-runtime.d.ts +44 -4
  598. package/dist/shims/cache-callable-runtime.js +168 -8
  599. package/dist/shims/cache-for-request.d.ts +2 -3
  600. package/dist/shims/cache-handler.d.ts +33 -20
  601. package/dist/shims/cache-handler.js +61 -2
  602. package/dist/shims/cache-request-state.d.ts +28 -29
  603. package/dist/shims/cache-runtime.d.ts +23 -21
  604. package/dist/shims/cache-runtime.js +107 -27
  605. package/dist/shims/cache.d.ts +15 -15
  606. package/dist/shims/cache.js +15 -13
  607. package/dist/shims/cacheability-classification.d.ts +49 -28
  608. package/dist/shims/cacheability-classification.js +27 -12
  609. package/dist/shims/cdn-cache-state.d.ts +13 -0
  610. package/dist/shims/cdn-cache-state.js +23 -0
  611. package/dist/shims/cdn-cache.d.ts +50 -21
  612. package/dist/shims/cdn-cache.js +15 -38
  613. package/dist/shims/client-hook-error.d.ts +3 -4
  614. package/dist/shims/client-locale.d.ts +2 -3
  615. package/dist/shims/client-page-root.d.ts +24 -0
  616. package/dist/shims/client-page-root.js +121 -0
  617. package/dist/shims/compat-router.d.ts +2 -3
  618. package/dist/shims/config.d.ts +3 -4
  619. package/dist/shims/constants.d.ts +73 -74
  620. package/dist/shims/constants.js +1 -1
  621. package/dist/shims/default-not-found.d.ts +2 -3
  622. package/dist/shims/document.d.ts +9 -9
  623. package/dist/shims/dynamic-preload-chunks.d.ts +2 -3
  624. package/dist/shims/dynamic-preload-chunks.js +17 -13
  625. package/dist/shims/dynamic.d.ts +3 -3
  626. package/dist/shims/error-boundary-navigation.d.ts +3 -4
  627. package/dist/shims/error-boundary.d.ts +17 -18
  628. package/dist/shims/error-boundary.js +17 -11
  629. package/dist/shims/error.d.ts +4 -4
  630. package/dist/shims/error.react-server.d.ts +3 -4
  631. package/dist/shims/fetch-cache.d.ts +22 -22
  632. package/dist/shims/fetch-cache.js +42 -17
  633. package/dist/shims/font-google-base.d.ts +9 -9
  634. package/dist/shims/font-google-base.js +2 -1
  635. package/dist/shims/font-local.d.ts +3 -3
  636. package/dist/shims/font-local.js +1 -1
  637. package/dist/shims/font-utils.d.ts +14 -15
  638. package/dist/shims/form.d.ts +2 -2
  639. package/dist/shims/form.js +10 -7
  640. package/dist/shims/hash-scroll.d.ts +5 -6
  641. package/dist/shims/head-state.d.ts +4 -5
  642. package/dist/shims/head.d.ts +16 -16
  643. package/dist/shims/head.js +5 -4
  644. package/dist/shims/headers.d.ts +67 -33
  645. package/dist/shims/headers.js +93 -6
  646. package/dist/shims/i18n-context.d.ts +5 -6
  647. package/dist/shims/i18n-state.d.ts +4 -5
  648. package/dist/shims/image-config.d.ts +5 -6
  649. package/dist/shims/image-config.js +2 -0
  650. package/dist/shims/image.d.ts +5 -5
  651. package/dist/shims/image.js +12 -8
  652. package/dist/shims/internal/als-registry.d.ts +4 -5
  653. package/dist/shims/internal/api-utils.d.ts +3 -4
  654. package/dist/shims/internal/app-page-props-cache-key.d.ts +32 -4
  655. package/dist/shims/internal/app-page-props-cache-key.js +53 -1
  656. package/dist/shims/internal/app-prefetch-fetch-queue.d.ts +5 -6
  657. package/dist/shims/internal/app-prefetch-rsc-request.d.ts +5 -17
  658. package/dist/shims/internal/app-prefetch-rsc-request.js +5 -14
  659. package/dist/shims/internal/app-route-detection.d.ts +2 -2
  660. package/dist/shims/internal/app-route-prefetch-policy.d.ts +5 -8
  661. package/dist/shims/internal/app-route-prefetch-policy.js +0 -1
  662. package/dist/shims/internal/app-router-context.d.ts +9 -10
  663. package/dist/shims/internal/cookie-serialize.d.ts +4 -5
  664. package/dist/shims/internal/format-url-object.d.ts +7 -0
  665. package/dist/shims/internal/format-url-object.js +53 -0
  666. package/dist/shims/internal/hybrid-client-route-owner-direct.d.ts +6 -7
  667. package/dist/shims/internal/hybrid-client-route-owner.d.ts +3 -3
  668. package/dist/shims/internal/hybrid-client-route-owner.js +3 -2
  669. package/dist/shims/internal/interpolate-as.d.ts +5 -6
  670. package/dist/shims/internal/interpolate-as.js +4 -2
  671. package/dist/shims/internal/link-status-registry.d.ts +5 -6
  672. package/dist/shims/internal/make-hanging-promise.d.ts +3 -4
  673. package/dist/shims/internal/navigation-untracked.d.ts +2 -3
  674. package/dist/shims/internal/normalize-router-href.d.ts +15 -0
  675. package/dist/shims/internal/normalize-router-href.js +41 -0
  676. package/dist/shims/internal/pages-data-fetch-dedup.d.ts +8 -9
  677. package/dist/shims/internal/pages-data-target.d.ts +8 -6
  678. package/dist/shims/internal/pages-data-target.js +32 -36
  679. package/dist/shims/internal/pages-data-url.d.ts +4 -5
  680. package/dist/shims/internal/pages-data-url.js +2 -1
  681. package/dist/shims/internal/pages-router-accessor.d.ts +3 -4
  682. package/dist/shims/internal/pages-router-components.d.ts +3 -4
  683. package/dist/shims/internal/route-pattern-for-warning.d.ts +5 -6
  684. package/dist/shims/internal/route-pattern-for-warning.js +3 -3
  685. package/dist/shims/internal/router-context.d.ts +2 -3
  686. package/dist/shims/internal/thenable-well-known-properties.d.ts +10 -0
  687. package/dist/shims/internal/thenable-well-known-properties.js +33 -0
  688. package/dist/shims/internal/utils.d.ts +7 -8
  689. package/dist/shims/internal/work-unit-async-storage.d.ts +10 -11
  690. package/dist/shims/layout-segment-context.d.ts +3 -4
  691. package/dist/shims/link-prefetch.d.ts +9 -10
  692. package/dist/shims/link.d.ts +4 -4
  693. package/dist/shims/link.js +56 -116
  694. package/dist/shims/metadata.d.ts +15 -16
  695. package/dist/shims/metadata.js +40 -36
  696. package/dist/shims/navigation-context-accessors.d.ts +9 -0
  697. package/dist/shims/navigation-context-accessors.js +19 -0
  698. package/dist/shims/navigation-context-state.d.ts +27 -18
  699. package/dist/shims/navigation-errors.d.ts +18 -19
  700. package/dist/shims/navigation-state.d.ts +6 -7
  701. package/dist/shims/navigation.d.ts +80 -68
  702. package/dist/shims/navigation.js +24 -16
  703. package/dist/shims/navigation.react-server.d.ts +9 -9
  704. package/dist/shims/offline.d.ts +2 -3
  705. package/dist/shims/og.d.ts +2 -2
  706. package/dist/shims/pages-router-runtime.d.ts +4 -5
  707. package/dist/shims/ppr-fallback-shell.d.ts +13 -14
  708. package/dist/shims/readonly-url-search-params.d.ts +2 -3
  709. package/dist/shims/request-context.d.ts +5 -6
  710. package/dist/shims/root-params.d.ts +14 -15
  711. package/dist/shims/router-state.d.ts +5 -6
  712. package/dist/shims/router-state.js +1 -1
  713. package/dist/shims/router.d.ts +22 -21
  714. package/dist/shims/router.js +339 -164
  715. package/dist/shims/script-nonce-context.d.ts +8 -6
  716. package/dist/shims/script-nonce-context.js +15 -6
  717. package/dist/shims/script.d.ts +4 -4
  718. package/dist/shims/script.js +9 -7
  719. package/dist/shims/search-params-gate.d.ts +35 -0
  720. package/dist/shims/search-params-gate.js +32 -0
  721. package/dist/shims/server.d.ts +19 -51
  722. package/dist/shims/server.js +14 -28
  723. package/dist/shims/slot.d.ts +33 -15
  724. package/dist/shims/slot.js +41 -9
  725. package/dist/shims/streamed-icons.d.ts +3 -4
  726. package/dist/shims/thenable-params.d.ts +5 -7
  727. package/dist/shims/thenable-params.js +3 -24
  728. package/dist/shims/unified-request-context.d.ts +34 -31
  729. package/dist/shims/unified-request-context.js +34 -24
  730. package/dist/shims/unrecognized-action-error.d.ts +3 -4
  731. package/dist/shims/url-safety.d.ts +5 -6
  732. package/dist/shims/url-utils.d.ts +12 -13
  733. package/dist/shims/use-merged-ref.d.ts +2 -3
  734. package/dist/shims/user-agent.d.ts +31 -0
  735. package/dist/shims/user-agent.js +16 -0
  736. package/dist/shims/web-vitals.d.ts +2 -2
  737. package/dist/typegen.d.ts +3 -4
  738. package/dist/utils/asset-prefix.d.ts +7 -8
  739. package/dist/utils/base-path.d.ts +5 -6
  740. package/dist/utils/built-asset-url.d.ts +2 -3
  741. package/dist/utils/built-asset-url.js +1 -1
  742. package/dist/utils/cache-control-metadata.d.ts +4 -5
  743. package/dist/utils/client-build-manifest.d.ts +6 -7
  744. package/dist/utils/client-build-manifest.js +2 -1
  745. package/dist/utils/client-entry-manifest.d.ts +6 -7
  746. package/dist/utils/client-runtime-metadata.d.ts +8 -3
  747. package/dist/utils/client-runtime-metadata.js +18 -1
  748. package/dist/utils/commonjs-loader.d.ts +4 -5
  749. package/dist/utils/compare.d.ts +2 -3
  750. package/dist/utils/deployment-id.d.ts +6 -7
  751. package/dist/utils/dev-error-recovery-event.d.ts +2 -3
  752. package/dist/utils/dev-stack-sourcemap-endpoint.d.ts +2 -3
  753. package/dist/utils/domain-locale.d.ts +7 -8
  754. package/dist/utils/encode-cache-tag.d.ts +3 -4
  755. package/dist/utils/error-cause.d.ts +2 -3
  756. package/dist/utils/external-url.d.ts +2 -3
  757. package/dist/utils/has-trailing-comma.d.ts +3 -4
  758. package/dist/utils/hash.d.ts +3 -4
  759. package/dist/utils/html-limited-bots.d.ts +3 -4
  760. package/dist/utils/lazy-chunks.d.ts +8 -9
  761. package/dist/utils/lazy-chunks.js +4 -4
  762. package/dist/utils/manifest-paths.d.ts +5 -6
  763. package/dist/utils/mdx-scan.d.ts +11 -4
  764. package/dist/utils/mdx-scan.js +27 -1
  765. package/dist/utils/middleware-request-headers.d.ts +7 -6
  766. package/dist/utils/middleware-request-headers.js +6 -1
  767. package/dist/utils/navigation-signal.d.ts +3 -3
  768. package/dist/utils/navigation-signal.js +16 -1
  769. package/dist/utils/number.d.ts +2 -3
  770. package/dist/utils/package-name.d.ts +3 -4
  771. package/dist/utils/parse-cookie.d.ts +4 -5
  772. package/dist/utils/path.d.ts +8 -9
  773. package/dist/utils/plugin-options.d.ts +2 -3
  774. package/dist/utils/precompressed-variant.d.ts +3 -4
  775. package/dist/utils/prerender-output-paths.d.ts +4 -5
  776. package/dist/utils/project.d.ts +19 -30
  777. package/dist/utils/project.js +20 -29
  778. package/dist/utils/promise.d.ts +2 -3
  779. package/dist/utils/protocol-headers.d.ts +14 -15
  780. package/dist/utils/public-file-path.d.ts +2 -3
  781. package/dist/utils/public-routes.d.ts +2 -3
  782. package/dist/utils/query.d.ts +14 -9
  783. package/dist/utils/query.js +22 -1
  784. package/dist/utils/react-compiler-support.d.ts +6 -7
  785. package/dist/utils/react-version.d.ts +4 -3
  786. package/dist/utils/react-version.js +19 -1
  787. package/dist/utils/record.d.ts +2 -3
  788. package/dist/utils/redirect-digest.d.ts +3 -4
  789. package/dist/utils/regex-safety.d.ts +4 -5
  790. package/dist/utils/regex.d.ts +2 -3
  791. package/dist/utils/safe-json-file.d.ts +2 -3
  792. package/dist/utils/sorted-array.d.ts +2 -3
  793. package/dist/utils/text-stream.d.ts +3 -4
  794. package/dist/utils/vinext-root.d.ts +2 -3
  795. package/dist/utils/virtual-module.d.ts +3 -4
  796. package/dist/utils/vite-cli-invocation.d.ts +21 -0
  797. package/dist/utils/vite-cli-invocation.js +144 -0
  798. package/dist/utils/vite-version.d.ts +5 -6
  799. package/next-package.json +4 -0
  800. package/package.json +47 -6
@@ -1,41 +1,52 @@
1
- import { closeAfterResponse, closeAfterResponseWithBody, createRequestContext, preserveFullyBufferedBodyMetadata, runWithRequestContext } from "../shims/unified-request-context.js";
1
+ import { preserveFullyBufferedBodyMetadata } from "./fully-buffered-response.js";
2
+ import { closeAfterResponse, closeAfterResponseWithBody, createRequestContext, runWithRequestContext } from "../shims/unified-request-context.js";
3
+ import { PRERENDER_REVALIDATE_HEADER, VINEXT_MW_CTX_HEADER, VINEXT_PRERENDER_ROUTE_PARAMS_HEADER, VINEXT_PRERENDER_SPECULATIVE_HEADER, VINEXT_REVALIDATE_HOST_HEADER } from "../utils/protocol-headers.js";
4
+ import { hasMiddlewareRequestHeaderOverrides } from "../utils/middleware-request-headers.js";
5
+ import { requestContextFromRequest } from "../config/request-context.js";
6
+ import { isExternalUrl } from "../utils/external-url.js";
2
7
  import { normalizePathnameForRouteMatchStrict } from "../routing/utils.js";
3
8
  import { addBasePathToPathname, hasBasePath, stripBasePath } from "../utils/base-path.js";
9
+ import { patternToNextFormat } from "../routing/route-validation.js";
4
10
  import { getRequestExecutionContext } from "../shims/request-context.js";
5
- import { requestContextFromRequest } from "../config/request-context.js";
6
- import { VINEXT_MW_CTX_HEADER, VINEXT_PRERENDER_ROUTE_PARAMS_HEADER, VINEXT_PRERENDER_SPECULATIVE_HEADER, VINEXT_REVALIDATE_HOST_HEADER } from "../utils/protocol-headers.js";
7
- import { ACTION_REVALIDATED_HEADER, FLIGHT_HEADERS } from "./headers.js";
11
+ import "./app-rsc-vary.js";
12
+ import { ACTION_REVALIDATED_HEADER, FLIGHT_HEADERS, VINEXT_PARAMS_HEADER, VINEXT_RENDERED_PATH_AND_SEARCH_HEADER } from "./headers.js";
8
13
  import { isInterceptionMatchedUrlPath, normalizePath } from "./normalize-path.js";
9
- import { isExternalUrl } from "../utils/external-url.js";
10
14
  import { badRequestResponse, notFoundResponse } from "./http-error-responses.js";
11
15
  import { cloneRequestWithHeaders, cloneRequestWithUrl, filterInternalHeaders, normalizeTrailingSlash, resolvePublicFileRoute } from "./request-pipeline.js";
12
16
  import { normalizeDefaultLocalePathname } from "./pages-i18n.js";
13
- import { NEVER_CACHE_CONTROL, applyCdnResponseHeaders } from "./cache-control.js";
14
- import { isOnDemandRevalidateRequest } from "./isr-cache.js";
15
- import { getHeadersContext, headersContextFromRequest, runWithHeadersContext } from "../shims/headers.js";
16
- import { ensureFetchPatch, setCurrentFetchSoftTags } from "../shims/fetch-cache.js";
17
+ import { getCdnCacheAdapter } from "../shims/cdn-cache.js";
18
+ import { markRouteCacheabilityDynamic, preserveRouteCacheabilityResponsePolicy } from "../shims/cacheability-classification.js";
19
+ import { NEVER_CACHE_CONTROL, applyCdnResponseHeaders, captureCdnResponsePolicyOverrides, isCdnResponsePolicyHeader, reconcileCdnResponseHeadersAfterOuterPolicy } from "./cache-control.js";
20
+ import { isOnDemandRevalidateRequest } from "./revalidation-request.js";
21
+ import { getDraftModeCookieHeader, getEffectiveRequestCookieHeader, getHeadersContext, hasEffectiveRequestCookieChanges, headersContextFromRequest, isDraftModeEnabled, isDraftModeRequest, runWithHeadersContext } from "../shims/headers.js";
17
22
  import { mergeRewriteQuery } from "../utils/query.js";
18
23
  import { getScriptNonceFromHeaderSources } from "./csp.js";
19
24
  import { buildNextDataNotFoundResponse, normalizePagesDataRequest } from "./pages-data-route.js";
25
+ import { traceFindPageComponents } from "./pages-execution-tracing.js";
20
26
  import { DEFAULT_DEVICE_SIZES, DEFAULT_IMAGE_SIZES, isImageOptimizationPath, resolveDevImageRedirect } from "./image-optimization.js";
21
- import { VINEXT_RSC_CACHE_BUSTING_SEARCH_PARAM, createRscRedirectLocation, hasRscCacheBustingSearchParam, resolveInvalidRscCacheBustingRequest, stripRscCacheBustingSearchParam, stripRscSuffix } from "./app-rsc-cache-busting.js";
27
+ import { parseCacheabilityManifest } from "./cacheability-manifest.js";
28
+ import { getRenderedConcreteUrlPathsForRoute } from "./pregenerated-concrete-paths.js";
29
+ import { VINEXT_RSC_CACHE_BUSTING_SEARCH_PARAM, canonicalizeLoadingShellRscRequestHeaders, canonicalizePrewarmableRscRequestHeaders, createCanonicalRscRequestUrl, createRscRedirectLocation, createRscRequestUrl, hasRscCacheBustingSearchParam, resolveInvalidRscCacheBustingRequest, stripRscCacheBustingSearchParam, stripRscSuffix } from "./app-rsc-cache-busting.js";
22
30
  import { mergeMiddlewareResponseHeaders } from "./middleware-response-headers.js";
31
+ import { consumeResponseStageLinkProvenance, copyLinkHeaderProvenance } from "./app-response-header-provenance.js";
23
32
  import "./app-page-response.js";
24
33
  import { parseNextHttpErrorDigest } from "./next-error-digest.js";
25
- import { markRouteCacheabilityDynamic, preserveRouteCacheabilityResponsePolicy } from "../shims/cacheability-classification.js";
34
+ import { traceAppPageRender } from "./app-page-tracing.js";
35
+ import { setFrameworkRequestRoute, traceFrameworkRequest } from "./request-tracing.js";
26
36
  import { matchPrerenderRouteParamsPayload, readTrustedPrerenderRouteParams, serializePrerenderRouteParamsHeader } from "./prerender-route-params.js";
27
37
  import { buildPageCacheTags } from "./implicit-tags.js";
28
- import { getRenderedConcreteUrlPathsForRoute } from "./pregenerated-concrete-paths.js";
29
38
  import { createServerActionNotFoundResponse, getServerActionNotFoundMessage } from "./server-action-not-found.js";
30
39
  import { buildPostMwRequestContext } from "./app-post-middleware-context.js";
31
40
  import { pickRootParams, setRootParams } from "../shims/root-params.js";
32
41
  import { createRouteTreePrefetchResponse, isRouteTreePrefetchRequest } from "./app-route-tree-prefetch.js";
42
+ import { createSharedAppPageCacheIdentity, isStaticCandidateAppPageDispatch, prepareSharedAppPageDispatch, withoutAppPageDispatchQuery } from "./app-worker-stages.js";
33
43
  import { flattenErrorCauses } from "../utils/error-cause.js";
34
- import { applyAppRscConfigHeaders, finalizeAppRscResponse } from "./app-rsc-response-finalizer.js";
44
+ import { applyAppRscConfigHeaders, finalizeAppRscResponse, markAppRscResponseConfigHeadersApplied } from "./app-rsc-response-finalizer.js";
35
45
  import { normalizeRscRequest } from "./app-rsc-request-normalization.js";
46
+ import { hasPagesPreviewCookie } from "./pages-response-stage.js";
36
47
  import { runWithPrerenderWorkUnit } from "./prerender-work-unit-setup.js";
48
+ import { consumePagesResponseStagePolicyOwner, withoutResponseStageVary } from "./response-stage-policy.js";
37
49
  //#region src/server/app-rsc-handler.ts
38
- const STATIC_METADATA_CONFIG_HEADER_OVERRIDES = /* @__PURE__ */ new Set(["cache-control"]);
39
50
  const HAS_CONFIG_HEADERS = process.env.__VINEXT_HAS_CONFIG_HEADERS !== "false";
40
51
  const HAS_CONFIG_REDIRECTS = process.env.__VINEXT_HAS_CONFIG_REDIRECTS !== "false";
41
52
  const HAS_CONFIG_REWRITES = process.env.__VINEXT_HAS_CONFIG_REWRITES !== "false";
@@ -66,16 +77,45 @@ function haveSamePageParams(first, second) {
66
77
  }
67
78
  return true;
68
79
  }
80
+ function rewriteCachePathname(sourcePathname, resolvedPathname) {
81
+ return `${sourcePathname}?__vinext_rewrite=${encodeURIComponent(resolvedPathname)}`;
82
+ }
83
+ function requestOptsOutOfWorkerResponseStage(request, options, scriptNonce, allowInternalRscDocumentFallback) {
84
+ if (request.method !== "GET" && request.method !== "HEAD") return true;
85
+ if (allowInternalRscDocumentFallback || scriptNonce !== void 0) return true;
86
+ if (isDraftModeRequest(request, options.draftModeSecret) || isDraftModeEnabled()) return true;
87
+ if (isOnDemandRevalidateRequest(request.headers.get("x-prerender-revalidate"))) return true;
88
+ if (request.headers.has("x-vinext-prerender-route-params")) return true;
89
+ return false;
90
+ }
91
+ let parsedCacheabilityRequestProjection;
92
+ function readCacheabilityRequestProjection(options) {
93
+ const raw = options.cacheabilityRequestProjection;
94
+ if (!raw || !options.buildId) return null;
95
+ if (parsedCacheabilityRequestProjection?.raw !== raw || parsedCacheabilityRequestProjection.buildId !== options.buildId) parsedCacheabilityRequestProjection = {
96
+ buildId: options.buildId,
97
+ manifest: parseCacheabilityManifest(raw, options.buildId),
98
+ raw
99
+ };
100
+ return parsedCacheabilityRequestProjection.manifest;
101
+ }
102
+ function adapterUsesQueryFreeCacheIdentity() {
103
+ const adapter = getCdnCacheAdapter();
104
+ return adapter.requiresCompletedResponseAdmission === true && adapter.responseStageCacheIdentity === "query-free";
105
+ }
69
106
  function hasUrlParserDotSegment(pathname) {
70
107
  return pathname.split("/").some((segment) => {
71
108
  const decodedDots = segment.replaceAll(/%2e/gi, ".");
72
109
  return decodedDots === "." || decodedDots === "..";
73
110
  });
74
111
  }
75
- function applyMiddlewareContextToResponse(response, middlewareContext) {
112
+ function applyMiddlewareContextToResponse(response, middlewareContext, appendToPostConfigLink = false) {
76
113
  if (!middlewareContext.headers && middlewareContext.status == null) return response;
77
114
  const headers = new Headers(response.headers);
115
+ const responseLink = appendToPostConfigLink ? headers.get("link") : null;
78
116
  mergeMiddlewareResponseHeaders(headers, middlewareContext.headers);
117
+ const middlewareLink = middlewareContext.headers?.get("link");
118
+ if (responseLink && middlewareLink) headers.set("link", `${middlewareLink}, ${responseLink}`);
79
119
  return preserveFullyBufferedBodyMetadata(response, new Response(response.body, {
80
120
  status: middlewareContext.status ?? response.status,
81
121
  statusText: response.statusText,
@@ -105,11 +145,11 @@ function redirectDestinationWithBasePath(destination, basePath, hadBasePath) {
105
145
  if (!basePath || !hadBasePath || isExternalUrl(destination) || hasBasePath(destination, basePath)) return destination;
106
146
  return basePath + destination;
107
147
  }
108
- async function applyRewrite(options, cleanPathname) {
148
+ async function applyRewrite(options, cleanPathname, recordCacheability = true) {
109
149
  if (!HAS_CONFIG_REWRITES || !options.rewrites.length) return null;
110
150
  const sourcePathname = options.paramsPathname ?? cleanPathname;
111
151
  const configMatchers = await import("../config/config-matchers.js");
112
- const rewritten = configMatchers.matchRewrite(sourcePathname, options.rewrites, options.requestContext, options.basePathState, options.paramsPathname, markConditionalRewriteCacheability);
152
+ const rewritten = configMatchers.matchRewrite(sourcePathname, options.rewrites, options.requestContext, options.basePathState, options.paramsPathname, recordCacheability ? markConditionalRewriteCacheability : void 0);
113
153
  if (!rewritten) return null;
114
154
  if (isExternalUrl(rewritten)) {
115
155
  const validationResponse = await options.validateExternalRewriteRequest();
@@ -139,7 +179,8 @@ async function applyConfigHeadersToMiddlewareRedirect(response, options) {
139
179
  configHeaders: options.configHeaders,
140
180
  pathname: options.pathname,
141
181
  requestContext: options.requestContext,
142
- basePathState: options.basePathState
182
+ basePathState: options.basePathState,
183
+ recordCacheability: options.recordCacheability
143
184
  });
144
185
  if (!headers.entries().next().done) {
145
186
  mergeMiddlewareResponseHeaders(headers, response.headers);
@@ -182,7 +223,7 @@ function markUnverifiedInterceptionResponseUncacheable(response) {
182
223
  }
183
224
  return markedResponse;
184
225
  }
185
- async function handleAppRscRequest(options, request, preMiddlewareRequestContext, middlewareContext, isDataRequest, isMiddlewareDataRequest, pagesDataRequest, dispatchInternalRequest, allowInternalRscDocumentFallback, setInterceptionResponseUncacheable) {
226
+ async function handleAppRscRequest(options, request, preMiddlewareRequestContext, middlewareContext, isDataRequest, isMiddlewareDataRequest, pagesDataRequest, dispatchInternalRequest, allowInternalRscDocumentFallback, dispatchResponseStage, responseStageProbeMode = null, setInterceptionResponseUncacheable = () => {}) {
186
227
  const handlerStart = process.env.NODE_ENV !== "production" ? performance.now() : 0;
187
228
  if (process.env.NODE_ENV !== "production") {
188
229
  const originBlock = options.validateDevRequestOrigin?.(request);
@@ -201,6 +242,7 @@ async function handleAppRscRequest(options, request, preMiddlewareRequestContext
201
242
  return normalized;
202
243
  }
203
244
  const { url, isRscRequest, interceptionContextHeader, interceptionIdHeader, mountedSlotsHeader, renderMode, clientReuseManifest, hadBasePath } = normalized;
245
+ setFrameworkRequestRoute(void 0, isRscRequest);
204
246
  const hasRawInterceptionContext = isRscRequest && request.headers.has("X-Vinext-Interception-Context");
205
247
  if (hasRawInterceptionContext) setInterceptionResponseUncacheable(true);
206
248
  let interceptionSourcePathname = null;
@@ -264,7 +306,7 @@ async function handleAppRscRequest(options, request, preMiddlewareRequestContext
264
306
  const matchPathname = (p) => normalizeDefaultLocalePathname(p, options.i18nConfig, { hostname: url.hostname });
265
307
  const redirectPathname = matchPathname(requestCleanPathname);
266
308
  const configMatchers = HAS_CONFIG_REDIRECTS && options.configRedirects.length ? await import("../config/config-matchers.js") : null;
267
- const redirect = configMatchers ? configMatchers.matchRedirect(redirectPathname, options.configRedirects, preMiddlewareRequestContext, basePathState, markConditionalRedirectCacheability) : null;
309
+ const redirect = configMatchers ? configMatchers.matchRedirect(redirectPathname, options.configRedirects, preMiddlewareRequestContext, basePathState, dispatchResponseStage ? void 0 : markConditionalRedirectCacheability) : null;
268
310
  if (configMatchers && redirect) {
269
311
  const destination = configMatchers.sanitizeDestination(redirectDestinationWithBasePath(redirect.destination, options.basePath, hadBasePath));
270
312
  const location = isRscRequest && request.headers.get("RSC") === "1" ? await createRscRedirectLocation(destination, request) : configMatchers.preserveRedirectDestinationQuery(destination, url.search);
@@ -304,13 +346,14 @@ async function handleAppRscRequest(options, request, preMiddlewareRequestContext
304
346
  request: userlandRequest,
305
347
  validateExternalRewriteRequest: () => validateClaimedOutsideBasePathRsc(true)
306
348
  });
307
- if (middlewareResult.pathnameEligible) markRouteCacheabilityDynamic(middlewareResult.matched ? "middleware matched this request" : "middleware is eligible for this pathname");
349
+ if (!dispatchResponseStage && middlewareResult.pathnameEligible) markRouteCacheabilityDynamic(middlewareResult.matched ? "middleware matched this request" : "middleware is eligible for this pathname");
308
350
  if (middlewareResult.kind === "response") {
309
351
  if (request.body && !request.body.locked) request.body.cancel().catch(() => {});
310
352
  return applyConfigHeadersToMiddlewareRedirect(middlewareResult.response, {
311
353
  basePathState,
312
354
  configHeaders: options.configHeaders,
313
355
  pathname: matchPathname(requestCleanPathname),
356
+ recordCacheability: dispatchResponseStage === void 0,
314
357
  requestContext: preMiddlewareRequestContext
315
358
  });
316
359
  }
@@ -322,6 +365,158 @@ async function handleAppRscRequest(options, request, preMiddlewareRequestContext
322
365
  resolvedUrl = cleanPathname + url.search;
323
366
  }
324
367
  const scriptNonce = getScriptNonceFromHeaderSources(request.headers, middlewareContext.headers);
368
+ const hasMiddlewareCookieOverlay = hasEffectiveRequestCookieChanges(request.headers.get("cookie"));
369
+ const middlewareCookieOverlay = hasMiddlewareCookieOverlay ? getEffectiveRequestCookieHeader() ?? "" : null;
370
+ const draftModeCookie = dispatchResponseStage || options.renderResponseStageLocally ? getDraftModeCookieHeader() : null;
371
+ const responseStageCacheability = (resolvedRouteUrl) => ({
372
+ policyHeaders: null,
373
+ probeMode: responseStageProbeMode,
374
+ resolvedRoutePathname: pathnameForResolvedUrl(resolvedRouteUrl)
375
+ });
376
+ let responseStagePolicyPromise;
377
+ const loadResponseStagePolicy = () => responseStagePolicyPromise ??= options.configHeaders.length ? import("./config-headers.js").then(({ resolveResponseStageCachePolicy }) => withoutResponseStageVary(resolveResponseStageCachePolicy({
378
+ basePathState,
379
+ configHeaders: options.configHeaders,
380
+ pathname: matchPathname(requestCleanPathname),
381
+ requestContext: preMiddlewareRequestContext
382
+ }))) : Promise.resolve(null);
383
+ let canUseSharedWorkerResponseStage = draftModeCookie === null && !hasMiddlewareCookieOverlay && !hasMiddlewareRequestHeaderOverrides(middlewareContext.requestHeaders ?? middlewareContext.headers) && !requestOptsOutOfWorkerResponseStage(request, options, scriptNonce, allowInternalRscDocumentFallback);
384
+ const isOnDemandRevalidate = isOnDemandRevalidateRequest(request.headers.get(PRERENDER_REVALIDATE_HEADER));
385
+ const transportedResponseStage = dispatchResponseStage ? async (stageRequest, props) => {
386
+ const responseStagePolicy = await loadResponseStagePolicy();
387
+ const cache = responseStageProbeMode || isOnDemandRevalidate || (props.kind === "app-page" || props.kind === "app-route-handler") && (props.bypassInterceptionContextCache || props.forceDynamic === true && responseStagePolicy === null) ? "bypass" : canUseSharedWorkerResponseStage ? "shared" : "bypass";
388
+ let dispatchRequest = props.kind === "app-page" ? prepareSharedAppPageDispatch(stageRequest, cache) : stageRequest;
389
+ let canonicalRsc = null;
390
+ if (cache === "shared" && props.kind === "app-page" && props.isRscRequest && props.matchKind === "request" && props.interceptionContext === null && props.interceptionId === null && props.mountedSlotsHeader === null) {
391
+ const headers = new Headers(dispatchRequest.headers);
392
+ if (props.renderMode === "navigation" ? canonicalizePrewarmableRscRequestHeaders(headers) : props.renderMode === "prefetch-loading-shell" && props.canUseCanonicalLoadingShell ? canonicalizeLoadingShellRscRequestHeaders(headers) : false) {
393
+ canonicalRsc = {
394
+ headers,
395
+ navigation: props.renderMode === "navigation"
396
+ };
397
+ dispatchRequest = cloneRequestWithHeaders(dispatchRequest, headers);
398
+ }
399
+ }
400
+ let stageProps = {
401
+ ...props,
402
+ cacheability: {
403
+ ...props.cacheability,
404
+ policyHeaders: responseStagePolicy
405
+ }
406
+ };
407
+ if (cache === "shared" && responseStagePolicy === null && stageProps.kind === "app-page") {
408
+ const projection = readCacheabilityRequestProjection(options);
409
+ if (projection && isStaticCandidateAppPageDispatch(projection, dispatchRequest, stageProps)) {
410
+ const queryFree = withoutAppPageDispatchQuery(dispatchRequest.url, stageProps);
411
+ dispatchRequest = cloneRequestWithUrl(dispatchRequest, queryFree.url);
412
+ stageProps = queryFree.props;
413
+ }
414
+ }
415
+ if (canonicalRsc) {
416
+ const rscPath = canonicalRsc.navigation ? createCanonicalRscRequestUrl(dispatchRequest.url) : await createRscRequestUrl(dispatchRequest.url, canonicalRsc.headers);
417
+ dispatchRequest = cloneRequestWithUrl(dispatchRequest, new URL(rscPath, dispatchRequest.url).toString());
418
+ }
419
+ const cacheIdentity = cache === "shared" && responseStagePolicy === null && stageProps.kind === "app-page" && stageProps.matchKind !== "interception" && stageProps.interceptionContext === null && stageProps.interceptionId === null && stageProps.mountedSlotsHeader === null && adapterUsesQueryFreeCacheIdentity() ? createSharedAppPageCacheIdentity(dispatchRequest, stageProps) : void 0;
420
+ let response = await dispatchResponseStage(dispatchRequest, stageProps, cacheIdentity ? {
421
+ cache,
422
+ cacheIdentity
423
+ } : { cache });
424
+ if (stageRequest.method.toUpperCase() === "HEAD" && response.body) {
425
+ await response.body.cancel();
426
+ response = new Response(null, {
427
+ headers: response.headers,
428
+ status: response.status,
429
+ statusText: response.statusText
430
+ });
431
+ }
432
+ if (props.kind !== "app-page" || !props.isRscRequest) return response;
433
+ const headers = new Headers(response.headers);
434
+ if (Object.keys(props.params).length > 0) headers.set(VINEXT_PARAMS_HEADER, encodeURIComponent(JSON.stringify(props.params)));
435
+ else headers.delete(VINEXT_PARAMS_HEADER);
436
+ headers.set(VINEXT_RENDERED_PATH_AND_SEARCH_HEADER, encodeURIComponent(props.resolvedUrl));
437
+ return preserveFullyBufferedBodyMetadata(response, new Response(response.body, {
438
+ headers,
439
+ status: response.status,
440
+ statusText: response.statusText
441
+ }));
442
+ } : void 0;
443
+ const responseStageRequest = (stageRequest = request) => {
444
+ const activeHeaders = getHeadersContext()?.headers;
445
+ if (!activeHeaders) return stageRequest;
446
+ return cloneRequestWithHeaders(stageRequest, new Headers(activeHeaders));
447
+ };
448
+ const renderMetadataRouteIfMatched = async () => {
449
+ if (!filesystemRouteEligible || (options.isMetadataRoute ? !options.isMetadataRoute(cleanPathname) : !options.handleMetadataRouteRequest)) return null;
450
+ const metadataRoutePathname = cleanPathnameIsRequestPathname ? requestCleanPathname : cleanPathname;
451
+ const metadataResponseStage = transportedResponseStage ?? options.renderResponseStageLocally;
452
+ if (metadataResponseStage) {
453
+ const response = await metadataResponseStage(responseStageRequest(), {
454
+ kind: "app-metadata",
455
+ buildId: options.buildId,
456
+ cacheability: responseStageCacheability(resolvedUrl),
457
+ canonicalPathname,
458
+ cleanPathname,
459
+ draftModeCookie,
460
+ isRscRequest,
461
+ middlewareCookieOverlay,
462
+ mountedSlotsHeader,
463
+ protocolVersion: 10,
464
+ requestOrigin: url.origin,
465
+ renderMode,
466
+ resolvedUrl,
467
+ routePathname: metadataRoutePathname,
468
+ scriptNonce: scriptNonce ?? null
469
+ });
470
+ if (response.headers.get("x-vinext-app-metadata-stage-no-match") === "1") {
471
+ await response.body?.cancel();
472
+ return null;
473
+ }
474
+ return response;
475
+ }
476
+ return options.handleMetadataRouteRequest?.(cleanPathname, metadataRoutePathname) ?? null;
477
+ };
478
+ const applyConfigHeadersToResponseStage = async (response, preserveExistingPolicy = false) => {
479
+ const headers = new Headers(response.headers);
480
+ copyLinkHeaderProvenance(response.headers, headers);
481
+ await applyAppRscConfigHeaders(headers, request, {
482
+ basePath: options.basePath,
483
+ configHeaders: options.configHeaders,
484
+ i18nConfig: options.i18nConfig,
485
+ middlewareHeaders: middlewareContext.headers,
486
+ overwriteExisting: preserveExistingPolicy ? /* @__PURE__ */ new Set() : isCdnResponsePolicyHeader,
487
+ recordCacheability: dispatchResponseStage === void 0,
488
+ requestContext: preMiddlewareRequestContext
489
+ });
490
+ return preserveFullyBufferedBodyMetadata(response, new Response(response.body, {
491
+ headers,
492
+ status: response.status,
493
+ statusText: response.statusText
494
+ }));
495
+ };
496
+ let preHandlerResponseHeadersPromise;
497
+ const loadPreHandlerResponseHeaders = () => preHandlerResponseHeadersPromise ??= (async () => {
498
+ const headers = new Headers();
499
+ await applyAppRscConfigHeaders(headers, request, {
500
+ basePath: options.basePath,
501
+ configHeaders: options.configHeaders,
502
+ i18nConfig: options.i18nConfig,
503
+ overwriteExisting: isCdnResponsePolicyHeader,
504
+ recordCacheability: false,
505
+ requestContext: preMiddlewareRequestContext
506
+ });
507
+ mergeMiddlewareResponseHeaders(headers, middlewareContext.headers);
508
+ return headers;
509
+ })();
510
+ let outerResponsePolicyPromise;
511
+ const loadOuterResponsePolicy = () => outerResponsePolicyPromise ??= Promise.all([loadPreHandlerResponseHeaders(), loadResponseStagePolicy()]).then(([headers, responseStagePolicy]) => captureCdnResponsePolicyOverrides(headers, new Headers(responseStagePolicy ?? [])));
512
+ const composeResponseStageResponse = async (response) => {
513
+ const transportedLink = consumeResponseStageLinkProvenance(response);
514
+ response = transportedLink.response;
515
+ response = await applyConfigHeadersToResponseStage(response, Boolean(dispatchResponseStage || options.renderResponseStageLocally));
516
+ response = applyMiddlewareContextToResponse(response, middlewareContext, transportedLink.appendToPostConfigLink);
517
+ reconcileCdnResponseHeadersAfterOuterPolicy(response.headers, await loadOuterResponsePolicy());
518
+ return markAppRscResponseConfigHeadersApplied(response);
519
+ };
325
520
  const postMiddlewareRequestContext = buildPostMwRequestContext(userlandRequest);
326
521
  filesystemRouteEligible ||= didMiddlewareRewrite;
327
522
  for (const rewrite of options.configRewrites.beforeFiles) {
@@ -333,7 +528,7 @@ async function handleAppRscRequest(options, request, preMiddlewareRequestContext
333
528
  paramsPathname: matchPathname(cleanPathnameIsRequestPathname ? requestCleanPathname : cleanPathname),
334
529
  rewrites: [rewrite],
335
530
  validateExternalRewriteRequest: () => validateClaimedOutsideBasePathRsc(true)
336
- }, matchPathname(cleanPathname));
531
+ }, matchPathname(cleanPathname), dispatchResponseStage === void 0);
337
532
  if (beforeFilesRewrite instanceof Response) return beforeFilesRewrite;
338
533
  if (beforeFilesRewrite) {
339
534
  resolvedUrl = mergeRewriteQuery(resolvedUrl, beforeFilesRewrite);
@@ -360,7 +555,7 @@ async function handleAppRscRequest(options, request, preMiddlewareRequestContext
360
555
  paramsPathname: matchPathname(cleanPathnameIsRequestPathname ? requestCleanPathname : cleanPathname),
361
556
  rewrites: [rewrite],
362
557
  validateExternalRewriteRequest: () => validateClaimedOutsideBasePathRsc(true)
363
- }, matchPathname(cleanPathname));
558
+ }, matchPathname(cleanPathname), dispatchResponseStage === void 0);
364
559
  if (rewritten instanceof Response) return rewritten;
365
560
  if (!rewritten) continue;
366
561
  resolvedUrl = mergeRewriteQuery(resolvedUrl, rewritten);
@@ -379,7 +574,7 @@ async function handleAppRscRequest(options, request, preMiddlewareRequestContext
379
574
  paramsPathname: matchPathname(cleanPathnameIsRequestPathname ? requestCleanPathname : cleanPathname),
380
575
  rewrites: [rewrite],
381
576
  validateExternalRewriteRequest: () => validateClaimedOutsideBasePathRsc(true)
382
- }, matchPathname(cleanPathname));
577
+ }, matchPathname(cleanPathname), dispatchResponseStage === void 0);
383
578
  if (rewritten instanceof Response) return rewritten;
384
579
  if (!rewritten) continue;
385
580
  resolvedUrl = mergeRewriteQuery(resolvedUrl, rewritten);
@@ -398,20 +593,8 @@ async function handleAppRscRequest(options, request, preMiddlewareRequestContext
398
593
  if (!imageRedirect) return new Response("Invalid image optimization parameters", { status: 400 });
399
594
  return Response.redirect(new URL(imageRedirect, url.origin).href, 302);
400
595
  }
401
- if (filesystemRouteEligible && options.handleMetadataRouteRequest) {
402
- const metadataRouteResponse = await options.handleMetadataRouteRequest(cleanPathname);
403
- if (metadataRouteResponse && HAS_CONFIG_HEADERS && options.configHeaders.length) {
404
- const { applyConfigHeadersToResponse } = await import("./config-headers.js");
405
- applyConfigHeadersToResponse(metadataRouteResponse.headers, {
406
- basePathState,
407
- configHeaders: options.configHeaders,
408
- overwriteExisting: STATIC_METADATA_CONFIG_HEADER_OVERRIDES,
409
- pathname: matchPathname(cleanPathnameIsRequestPathname ? requestCleanPathname : cleanPathname),
410
- requestContext: preMiddlewareRequestContext
411
- });
412
- }
413
- if (metadataRouteResponse) return applyMiddlewareContextToResponse(metadataRouteResponse, middlewareContext);
414
- }
596
+ const metadataRouteResponse = await renderMetadataRouteIfMatched();
597
+ if (metadataRouteResponse) return composeResponseStageResponse(metadataRouteResponse);
415
598
  const publicFileResponse = filesystemRouteEligible ? resolvePublicFileRoute({
416
599
  cleanPathname,
417
600
  middlewareContext,
@@ -488,7 +671,7 @@ async function handleAppRscRequest(options, request, preMiddlewareRequestContext
488
671
  if (sourceMiddlewareRequest.body && !sourceMiddlewareRequest.bodyUsed && !sourceMiddlewareRequest.body.locked) sourceMiddlewareRequest.body.cancel().catch(() => {});
489
672
  if (sourceRequest !== userlandRequest && sourceRequest.body && !sourceRequest.bodyUsed && !sourceRequest.body.locked) sourceRequest.body.cancel().catch(() => {});
490
673
  }
491
- if (sourceMiddlewareResult.pathnameEligible) markRouteCacheabilityDynamic(sourceMiddlewareResult.matched ? "middleware matched this request" : "middleware is eligible for this pathname");
674
+ if (!dispatchResponseStage && sourceMiddlewareResult.pathnameEligible) markRouteCacheabilityDynamic(sourceMiddlewareResult.matched ? "middleware matched this request" : "middleware is eligible for this pathname");
492
675
  if (sourceMiddlewareResult.kind === "response") {
493
676
  options.clearRequestContext();
494
677
  return sourceMiddlewareResult.response;
@@ -509,7 +692,10 @@ async function handleAppRscRequest(options, request, preMiddlewareRequestContext
509
692
  targetHeadersContext.headers.set(name, value);
510
693
  addedSourceHeader = true;
511
694
  }
512
- if (addedSourceHeader) targetHeadersContext.readonlyHeaders = void 0;
695
+ if (addedSourceHeader) {
696
+ targetHeadersContext.readonlyHeaders = void 0;
697
+ canUseSharedWorkerResponseStage = false;
698
+ }
513
699
  if (sourceMiddlewareResult.rewritten) {
514
700
  const rewrittenSourceMatch = options.matchRoute(sourceMiddlewareResult.cleanPathname);
515
701
  if (sourceMiddlewareResult.search !== sourceUrl.search || rewrittenSourceMatch?.route !== interceptionSourceMatch.route || !haveSamePageParams(rewrittenSourceMatch.params, interceptionSourceMatch.params)) {
@@ -566,6 +752,7 @@ async function handleAppRscRequest(options, request, preMiddlewareRequestContext
566
752
  basePath: options.basePath,
567
753
  configHeaders: options.configHeaders,
568
754
  i18nConfig: options.i18nConfig,
755
+ recordCacheability: dispatchResponseStage === void 0,
569
756
  requestContext: preMiddlewareRequestContext
570
757
  });
571
758
  }
@@ -590,9 +777,54 @@ async function handleAppRscRequest(options, request, preMiddlewareRequestContext
590
777
  let match = preActionMatch;
591
778
  const renderPagesForMatchKind = async (matchKind) => {
592
779
  if (!filesystemRouteEligible) return null;
780
+ let sharedOuterPolicyNeedsReconciliation = false;
781
+ const dispatchPagesResponseStage = dispatchResponseStage ? async (stageRequest, resourceKind, dataKind, hasRequestAwareDocument) => {
782
+ const pagesOnDemandRevalidate = resourceKind === "page" && isOnDemandRevalidateRequest(stageRequest.headers.get("x-prerender-revalidate"));
783
+ const cache = responseStageProbeMode || pagesOnDemandRevalidate || hasPagesPreviewCookie(stageRequest.headers.get("cookie")) || resourceKind === "page" && dataKind === "static" && hasRequestAwareDocument ? "bypass" : canUseSharedWorkerResponseStage ? "shared" : "bypass";
784
+ let response = await dispatchResponseStage(responseStageRequest(stageRequest), {
785
+ kind: "hybrid-pages",
786
+ buildId: options.buildId,
787
+ cacheability: {
788
+ ...responseStageCacheability(resolvedUrl),
789
+ policyHeaders: await loadResponseStagePolicy(),
790
+ ...isDataRequest ? { representation: "pages-data" } : {}
791
+ },
792
+ allowRscDocumentFallback: didMiddlewareRewritePathname || allowInternalRscDocumentFallback,
793
+ appRouteMatch: match ? {
794
+ isDynamic: match.route.isDynamic,
795
+ pattern: match.route.pattern
796
+ } : null,
797
+ canonicalPathname,
798
+ cleanPathname,
799
+ draftModeCookie,
800
+ isDataRequest,
801
+ isRscRequest,
802
+ matchKind,
803
+ middlewareCookieOverlay,
804
+ preHandlerHeaders: cache === "shared" && resourceKind === "page" && dataKind === "static" ? null : [...await loadPreHandlerResponseHeaders()],
805
+ protocolVersion: 10,
806
+ requestOrigin: url.origin,
807
+ resourceKind,
808
+ requestUrl: request.url,
809
+ resolvedUrl,
810
+ scriptNonce: scriptNonce ?? null
811
+ }, { cache });
812
+ const policyOwner = resourceKind === "page" ? consumePagesResponseStagePolicyOwner(response) : {
813
+ owner: null,
814
+ response
815
+ };
816
+ response = policyOwner.response;
817
+ const requestTimePolicyOwner = policyOwner.owner === "request-time" || policyOwner.owner === null && dataKind === "server";
818
+ sharedOuterPolicyNeedsReconciliation = cache === "shared" && resourceKind === "page" && !requestTimePolicyOwner;
819
+ const responseStageHasContentLength = response.headers.has("Content-Length");
820
+ response = await applyConfigHeadersToResponseStage(response, resourceKind === "api" || requestTimePolicyOwner);
821
+ if (!responseStageHasContentLength) response.headers.delete("Content-Length");
822
+ return response;
823
+ } : void 0;
593
824
  const response = !isInterceptionMatch && (match === null || match.route.isDynamic) ? await options.renderPagesFallback?.({
594
825
  appRouteMatch: match ?? null,
595
826
  allowRscDocumentFallback: didMiddlewareRewritePathname || allowInternalRscDocumentFallback,
827
+ dispatchPagesResponseStage,
596
828
  isDataRequest,
597
829
  isRscRequest,
598
830
  matchKind,
@@ -603,14 +835,17 @@ async function handleAppRscRequest(options, request, preMiddlewareRequestContext
603
835
  url
604
836
  }) ?? null : null;
605
837
  if (response) preserveRouteCacheabilityResponsePolicy();
606
- if (!response || !pagesDataRequest || resolvedUrl === originalResolvedUrl) return response;
838
+ if (!response) return null;
839
+ if (sharedOuterPolicyNeedsReconciliation) reconcileCdnResponseHeadersAfterOuterPolicy(response.headers, await loadOuterResponsePolicy());
840
+ if (!pagesDataRequest || resolvedUrl === originalResolvedUrl) return dispatchPagesResponseStage ? markAppRscResponseConfigHeadersApplied(response) : response;
607
841
  const headers = new Headers(response.headers);
608
842
  headers.set("x-nextjs-rewrite", resolvedUrl);
609
- return new Response(response.body, {
843
+ const rewrittenResponse = new Response(response.body, {
610
844
  headers,
611
845
  status: response.status,
612
846
  statusText: response.statusText
613
847
  });
848
+ return dispatchPagesResponseStage ? markAppRscResponseConfigHeadersApplied(rewrittenResponse) : rewrittenResponse;
614
849
  };
615
850
  const staticPagesFallbackResponse = await renderPagesForMatchKind("static");
616
851
  if (staticPagesFallbackResponse) {
@@ -626,7 +861,7 @@ async function handleAppRscRequest(options, request, preMiddlewareRequestContext
626
861
  paramsPathname: matchPathname(cleanPathnameIsRequestPathname ? requestCleanPathname : cleanPathname),
627
862
  rewrites: [rewrite],
628
863
  validateExternalRewriteRequest: () => validateClaimedOutsideBasePathRsc(true)
629
- }, matchPathname(cleanPathname));
864
+ }, matchPathname(cleanPathname), dispatchResponseStage === void 0);
630
865
  if (afterFilesRewrite instanceof Response) {
631
866
  invalidateInterceptionCacheProof();
632
867
  return afterFilesRewrite;
@@ -639,6 +874,8 @@ async function handleAppRscRequest(options, request, preMiddlewareRequestContext
639
874
  filesystemRouteEligible = true;
640
875
  const claimedRscCacheBustingRedirect = await validateClaimedOutsideBasePathRsc();
641
876
  if (claimedRscCacheBustingRedirect) return claimedRscCacheBustingRedirect;
877
+ const rewrittenMetadataResponse = await renderMetadataRouteIfMatched();
878
+ if (rewrittenMetadataResponse) return composeResponseStageResponse(rewrittenMetadataResponse);
642
879
  match = matchCleanPathname();
643
880
  const rewrittenStaticPagesResponse = await renderPagesForMatchKind("static");
644
881
  if (rewrittenStaticPagesResponse) {
@@ -666,7 +903,7 @@ async function handleAppRscRequest(options, request, preMiddlewareRequestContext
666
903
  paramsPathname: matchPathname(cleanPathnameIsRequestPathname ? requestCleanPathname : cleanPathname),
667
904
  rewrites: [rewrite],
668
905
  validateExternalRewriteRequest: () => validateClaimedOutsideBasePathRsc(true)
669
- }, matchPathname(cleanPathname));
906
+ }, matchPathname(cleanPathname), dispatchResponseStage === void 0);
670
907
  if (fallbackRewrite instanceof Response) {
671
908
  invalidateInterceptionCacheProof();
672
909
  return fallbackRewrite;
@@ -679,6 +916,8 @@ async function handleAppRscRequest(options, request, preMiddlewareRequestContext
679
916
  filesystemRouteEligible = true;
680
917
  const claimedRscCacheBustingRedirect = await validateClaimedOutsideBasePathRsc();
681
918
  if (claimedRscCacheBustingRedirect) return claimedRscCacheBustingRedirect;
919
+ const rewrittenMetadataResponse = await renderMetadataRouteIfMatched();
920
+ if (rewrittenMetadataResponse) return composeResponseStageResponse(rewrittenMetadataResponse);
682
921
  match = matchCleanPathname();
683
922
  const rewrittenStaticPagesResponse = await renderPagesForMatchKind("static");
684
923
  if (rewrittenStaticPagesResponse) {
@@ -730,13 +969,31 @@ async function handleAppRscRequest(options, request, preMiddlewareRequestContext
730
969
  options.clearRequestContext();
731
970
  return new Response("", { status: 404 });
732
971
  }
733
- const renderedNotFoundResponse = await options.renderNotFound({
972
+ setFrameworkRequestRoute("/404", isRscRequest);
973
+ const notFoundResponseStage = transportedResponseStage ?? options.renderResponseStageLocally;
974
+ if (notFoundResponseStage) return composeResponseStageResponse(await notFoundResponseStage(responseStageRequest(), {
975
+ kind: "app-not-found",
976
+ buildId: options.buildId,
977
+ cacheability: responseStageCacheability(resolvedUrl),
978
+ canonicalPathname,
979
+ cleanPathname,
980
+ draftModeCookie,
981
+ isRscRequest,
982
+ middlewareCookieOverlay,
983
+ mountedSlotsHeader,
984
+ protocolVersion: 10,
985
+ requestOrigin: url.origin,
986
+ renderMode,
987
+ resolvedUrl,
988
+ scriptNonce: scriptNonce ?? null
989
+ }));
990
+ const renderedNotFoundResponse = await traceAppPageRender("/404", "render", () => options.renderNotFound({
734
991
  isRscRequest,
735
992
  middlewareContext,
736
993
  request,
737
994
  route: null,
738
995
  scriptNonce
739
- });
996
+ }));
740
997
  if (renderedNotFoundResponse) return renderedNotFoundResponse;
741
998
  options.clearRequestContext();
742
999
  const headers = new Headers();
@@ -744,7 +1001,18 @@ async function handleAppRscRequest(options, request, preMiddlewareRequestContext
744
1001
  return notFoundResponse({ headers });
745
1002
  }
746
1003
  const { route, params } = match;
747
- if (options.ensureRouteLoaded) await options.ensureRouteLoaded(route);
1004
+ const requestPathnameDiffersFromCachePath = requestCleanPathname !== cleanPathname;
1005
+ const rawRequestPathnameIsObservable = isInterceptionMatch || route.routeHandler != null || typeof route.__loadRouteHandler === "function";
1006
+ if ((!isInterceptionMatch || requestPathnameDiffersFromCachePath) && options.matchRequestRoute) {
1007
+ const cachePathMatch = options.matchRoute(cleanPathname);
1008
+ if (requestPathnameDiffersFromCachePath && rawRequestPathnameIsObservable || !cachePathMatch || cachePathMatch.route.pattern !== route.pattern || !haveSamePageParams(cachePathMatch.params, params)) {
1009
+ bypassInterceptionContextCache = true;
1010
+ setInterceptionResponseUncacheable(true);
1011
+ }
1012
+ }
1013
+ const cachePathname = cleanPathnameIsRequestPathname ? cleanPathname : rewriteCachePathname(canonicalPathname, cleanPathname);
1014
+ setFrameworkRequestRoute(patternToNextFormat(route.pattern), isRscRequest);
1015
+ if (options.ensureRouteLoaded) await traceFindPageComponents(route.pattern, () => options.ensureRouteLoaded(route));
748
1016
  const resolvedSearchParams = getResolvedSearchParams();
749
1017
  if (isRouteTreePrefetchRequest(request) && !route.routeHandler) {
750
1018
  const response = await createRouteTreePrefetchResponse(route, {
@@ -754,10 +1022,14 @@ async function handleAppRscRequest(options, request, preMiddlewareRequestContext
754
1022
  options.clearRequestContext();
755
1023
  return applyMiddlewareContextToResponse(response, middlewareContext);
756
1024
  }
757
- const prerenderRouteParamsMatch = matchPrerenderRouteParamsPayload(readTrustedPrerenderRouteParams(request), route.pattern, params);
1025
+ const prerenderRouteParamsPayload = readTrustedPrerenderRouteParams(request);
1026
+ const prerenderRouteParamsMatch = matchPrerenderRouteParamsPayload(prerenderRouteParamsPayload, route.pattern, params);
758
1027
  const prerenderRouteParams = prerenderRouteParamsMatch?.params ?? null;
759
1028
  const isPrerenderFallbackShell = prerenderRouteParamsMatch?.kind === "fallback-shell";
760
1029
  const renderParams = prerenderRouteParams ?? params;
1030
+ const responseStageMatchKind = isInterceptionMatch ? "interception" : cleanPathnameIsRequestPathname && options.matchRequestRoute ? "request" : "resolved";
1031
+ const responseStageRoutePathname = isInterceptionMatch ? preActionRoutePathname : cleanPathnameIsRequestPathname ? requestCleanPathname || "/" : cleanPathname || "/";
1032
+ const matchedResponseStage = transportedResponseStage ?? options.renderResponseStageLocally;
761
1033
  let runtimeFallbackShells = [];
762
1034
  if (options.createPprFallbackShells && request.method === "GET" && !isRscRequest && !isPrerenderFallbackShell && route.params) runtimeFallbackShells = options.createPprFallbackShells({
763
1035
  params: route.params,
@@ -772,13 +1044,42 @@ async function handleAppRscRequest(options, request, preMiddlewareRequestContext
772
1044
  const rootParams = pickRootParams(renderParams, route.rootParamNames);
773
1045
  setRootParams(rootParams);
774
1046
  if (route.routeHandler) {
775
- setCurrentFetchSoftTags(buildPageCacheTags(cleanPathname, [], [...route.routeSegments], "route"));
776
1047
  const routeHandlerRequest = isEdgeRouteHandler(route.routeHandler) ? userlandRequest : normalizedUserlandRequest;
777
1048
  const routeHandlerUrl = new URL(routeHandlerRequest.url);
778
1049
  const internalRscValues = isEdgeRouteHandler(route.routeHandler) ? [] : routeHandlerUrl.searchParams.getAll(VINEXT_RSC_CACHE_BUSTING_SEARCH_PARAM);
779
1050
  routeHandlerUrl.search = resolvedSearchParams.toString();
780
1051
  for (const internalRscValue of internalRscValues) routeHandlerUrl.searchParams.append(VINEXT_RSC_CACHE_BUSTING_SEARCH_PARAM, internalRscValue);
1052
+ if (matchedResponseStage) return composeResponseStageResponse(await matchedResponseStage(responseStageRequest(), {
1053
+ kind: "app-route-handler",
1054
+ buildId: options.buildId,
1055
+ cacheability: responseStageCacheability(resolvedUrl),
1056
+ bypassInterceptionContextCache,
1057
+ cachePathname,
1058
+ canUseCanonicalLoadingShell: route.canUseCanonicalLoadingShell === true,
1059
+ canonicalPathname,
1060
+ cleanPathname,
1061
+ draftModeCookie,
1062
+ forceDynamic: route.forceDynamic === true,
1063
+ interceptionContext: interceptionContextHeader,
1064
+ interceptionId: interceptionIdHeader,
1065
+ isRscRequest,
1066
+ matchKind: responseStageMatchKind,
1067
+ middlewareCookieOverlay,
1068
+ mountedSlotsHeader,
1069
+ params,
1070
+ protocolVersion: 10,
1071
+ requestOrigin: url.origin,
1072
+ renderMode,
1073
+ resolvedUrl,
1074
+ routePattern: route.pattern,
1075
+ routePathname: responseStageRoutePathname,
1076
+ scriptNonce: scriptNonce ?? null
1077
+ }));
1078
+ const { setCurrentFetchSoftTags } = await import("../shims/fetch-cache.js");
1079
+ setCurrentFetchSoftTags(buildPageCacheTags(cleanPathname, [], [...route.routeSegments], "route"));
781
1080
  return options.dispatchMatchedRouteHandler({
1081
+ bypassInterceptionContextCache,
1082
+ cachePathname,
782
1083
  cleanPathname,
783
1084
  middlewareContext,
784
1085
  params: route.isDynamic ? renderParams : null,
@@ -787,8 +1088,34 @@ async function handleAppRscRequest(options, request, preMiddlewareRequestContext
787
1088
  searchParams: resolvedSearchParams
788
1089
  });
789
1090
  }
790
- const pageResponse = await options.dispatchMatchedPage({
1091
+ const pageResponse = matchedResponseStage ? await matchedResponseStage(responseStageRequest(), {
1092
+ kind: "app-page",
1093
+ buildId: options.buildId,
1094
+ cacheability: responseStageCacheability(resolvedUrl),
1095
+ bypassInterceptionContextCache,
1096
+ cachePathname,
1097
+ canUseCanonicalLoadingShell: route.canUseCanonicalLoadingShell === true,
1098
+ canonicalPathname,
1099
+ cleanPathname,
1100
+ draftModeCookie,
1101
+ forceDynamic: route.forceDynamic === true,
1102
+ interceptionContext: isRscRequest ? interceptionContextHeader : null,
1103
+ interceptionId: interceptionIdHeader,
1104
+ isRscRequest,
1105
+ matchKind: responseStageMatchKind,
1106
+ middlewareCookieOverlay,
1107
+ mountedSlotsHeader,
1108
+ params,
1109
+ protocolVersion: 10,
1110
+ requestOrigin: url.origin,
1111
+ renderMode,
1112
+ resolvedUrl,
1113
+ routePattern: route.pattern,
1114
+ routePathname: responseStageRoutePathname,
1115
+ scriptNonce: scriptNonce ?? null
1116
+ }).then(composeResponseStageResponse) : await options.dispatchMatchedPage({
791
1117
  bypassInterceptionContextCache,
1118
+ cachePathname,
792
1119
  clientReuseManifest,
793
1120
  cleanPathname,
794
1121
  displayPathname: canonicalPathname,
@@ -796,7 +1123,7 @@ async function handleAppRscRequest(options, request, preMiddlewareRequestContext
796
1123
  actionError: normalizedProgressiveActionError,
797
1124
  actionFailed,
798
1125
  handlerStart,
799
- interceptionContext: interceptionContextHeader,
1126
+ interceptionContext: isRscRequest ? interceptionContextHeader : null,
800
1127
  interceptionId: interceptionIdHeader,
801
1128
  interceptionPathname: cleanPathnameIsRequestPathname ? requestCleanPathname : cleanPathname,
802
1129
  isProgressiveActionRender,
@@ -855,10 +1182,9 @@ function applyProgressiveActionSideEffects(response, sideEffects) {
855
1182
  });
856
1183
  }
857
1184
  }
858
- function createAppRscHandler(options) {
859
- return async function appRscHandler(rawRequest, ctx, allowInternalRscDocumentFallback = false) {
860
- options.registerCacheAdapters();
861
- await options.ensureInstrumentation?.();
1185
+ /** Build the request-only handler without retaining the response renderer graph. */
1186
+ function createAppRscRequestHandler(options) {
1187
+ const handleAppRscRequestLifecycle = async (rawRequest, ctx, allowInternalRscDocumentFallback = false, dispatchResponseStage, responseStageProbeMode = null, transportedPrerenderState) => {
862
1188
  const mwCtx = rawRequest.headers.get(VINEXT_MW_CTX_HEADER);
863
1189
  const pagesDataUrl = new URL(rawRequest.url);
864
1190
  const pagesDataInScope = !options.basePath || hasBasePath(pagesDataUrl.pathname, options.basePath);
@@ -868,8 +1194,12 @@ function createAppRscHandler(options) {
868
1194
  if (pagesDataNormalization?.notFoundResponse) return pagesDataNormalization.notFoundResponse;
869
1195
  const isPagesDataRequest = pagesDataNormalization?.isDataReq === true;
870
1196
  const executionContext = isExecutionContextLike(ctx) ? ctx : getRequestExecutionContext() ?? null;
871
- const prerenderRouteParamsPayload = readTrustedPrerenderRouteParams(rawRequest);
872
- const isTrustedSpeculativePrerender = process.env.VINEXT_PRERENDER === "1" && rawRequest.headers.get("x-vinext-prerender-secret") !== null && rawRequest.headers.get("x-vinext-prerender-speculative") === "1";
1197
+ const trustedPrerenderState = transportedPrerenderState !== void 0 ? transportedPrerenderState : process.env.VINEXT_PRERENDER === "1" && rawRequest.headers.get("x-vinext-prerender-secret") !== null ? {
1198
+ routeParams: readTrustedPrerenderRouteParams(rawRequest),
1199
+ speculative: rawRequest.headers.get(VINEXT_PRERENDER_SPECULATIVE_HEADER) === "1"
1200
+ } : null;
1201
+ const prerenderRouteParamsPayload = trustedPrerenderState?.routeParams ?? null;
1202
+ const isTrustedSpeculativePrerender = trustedPrerenderState?.speculative === true;
873
1203
  const filteredHeaders = executionContext?.isInternalPagesRevalidation ? new Headers(rawRequest.headers) : filterInternalHeaders(rawRequest.headers);
874
1204
  filteredHeaders.delete(VINEXT_REVALIDATE_HOST_HEADER);
875
1205
  if (isForwardedActionContext(ctx)) filteredHeaders.set("x-action-forwarded", "1");
@@ -885,14 +1215,18 @@ function createAppRscHandler(options) {
885
1215
  }
886
1216
  const request = cloneRequestWithHeaders(appRequest, filteredHeaders);
887
1217
  const pagesDataRequest = pagesDataNormalization?.isDataReq ? cloneRequestWithHeaders(pagesDataCandidate, filteredHeaders) : null;
1218
+ const headersContext = headersContextFromRequest(request, { draftModeSecret: options.draftModeSecret });
888
1219
  const requestContext = createRequestContext({
889
- headersContext: headersContextFromRequest(request, { draftModeSecret: options.draftModeSecret }),
1220
+ headersContext,
890
1221
  executionContext,
891
1222
  unstableCacheRevalidation: "background"
892
1223
  });
893
1224
  let interceptionResponseUncacheable = false;
894
1225
  const responsePromise = runWithRequestContext(requestContext, () => runWithPrerenderWorkUnit(async () => {
895
- ensureFetchPatch();
1226
+ if (!dispatchResponseStage) {
1227
+ const { ensureFetchPatch } = await import("../shims/fetch-cache.js");
1228
+ ensureFetchPatch();
1229
+ }
896
1230
  const preMiddlewareRequestContext = requestContextFromRequest(request);
897
1231
  const middlewareContext = {
898
1232
  headers: null,
@@ -901,7 +1235,7 @@ function createAppRscHandler(options) {
901
1235
  };
902
1236
  let response;
903
1237
  try {
904
- response = await handleAppRscRequest(options, request, preMiddlewareRequestContext, middlewareContext, isPagesDataRequest, isPagesDataRequest, pagesDataRequest, (internalRequest) => appRscHandler(internalRequest, ctx, true), allowInternalRscDocumentFallback, (uncacheable) => {
1238
+ response = await handleAppRscRequest(options, request, preMiddlewareRequestContext, middlewareContext, isPagesDataRequest, isPagesDataRequest, pagesDataRequest, (internalRequest) => appRscHandler(internalRequest, ctx, true, dispatchResponseStage, responseStageProbeMode, trustedPrerenderState, true), allowInternalRscDocumentFallback, dispatchResponseStage, responseStageProbeMode, (uncacheable) => {
905
1239
  interceptionResponseUncacheable = uncacheable;
906
1240
  });
907
1241
  } catch (error) {
@@ -913,6 +1247,7 @@ function createAppRscHandler(options) {
913
1247
  configHeaders: options.configHeaders,
914
1248
  i18nConfig: options.i18nConfig,
915
1249
  middlewareHeaders: middlewareContext.headers,
1250
+ recordCacheability: dispatchResponseStage === void 0,
916
1251
  requestContext: preMiddlewareRequestContext
917
1252
  });
918
1253
  return interceptionResponseUncacheable ? markUnverifiedInterceptionResponseUncacheable(response) : response;
@@ -929,6 +1264,21 @@ function createAppRscHandler(options) {
929
1264
  }
930
1265
  return closeAfterResponseWithBody(response, requestContext);
931
1266
  };
1267
+ const appRscHandler = async function appRscHandler(rawRequest, ctx, allowInternalRscDocumentFallback = false, dispatchResponseStage, responseStageProbeMode = null, transportedPrerenderState, detachedTrace = false) {
1268
+ options.registerCacheAdapters();
1269
+ await options.ensureInstrumentation?.();
1270
+ const traceUrl = new URL(rawRequest.url);
1271
+ return traceFrameworkRequest({
1272
+ callback: () => handleAppRscRequestLifecycle(rawRequest, ctx, allowInternalRscDocumentFallback, dispatchResponseStage, responseStageProbeMode, transportedPrerenderState),
1273
+ detached: detachedTrace,
1274
+ getStatus: (response) => response?.status,
1275
+ headers: rawRequest.headers,
1276
+ isRsc: traceUrl.pathname.endsWith(".rsc") || rawRequest.headers.get("RSC") === "1",
1277
+ method: rawRequest.method,
1278
+ target: traceUrl.pathname + traceUrl.search
1279
+ });
1280
+ };
1281
+ return appRscHandler;
932
1282
  }
933
1283
  //#endregion
934
- export { createAppRscHandler };
1284
+ export { createAppRscRequestHandler };