vinext 1.0.0-beta.9 → 1.0.1

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