vinext 0.0.54 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (977) hide show
  1. package/README.md +52 -15
  2. package/dist/build/clean-output.d.ts +1 -2
  3. package/dist/build/clean-output.js +0 -2
  4. package/dist/build/client-build-config.d.ts +16 -3
  5. package/dist/build/client-build-config.js +29 -4
  6. package/dist/build/css-url-assets.d.ts +29 -0
  7. package/dist/build/css-url-assets.js +211 -0
  8. package/dist/build/google-fonts/build-url.d.ts +1 -2
  9. package/dist/build/google-fonts/build-url.js +0 -2
  10. package/dist/build/google-fonts/fallback-metrics-data.js +0 -2
  11. package/dist/build/google-fonts/fallback-metrics.d.ts +1 -2
  12. package/dist/build/google-fonts/fallback-metrics.js +0 -2
  13. package/dist/build/google-fonts/font-data.js +0 -2
  14. package/dist/build/google-fonts/font-metadata.d.ts +1 -2
  15. package/dist/build/google-fonts/font-metadata.js +0 -2
  16. package/dist/build/google-fonts/get-axes.d.ts +1 -2
  17. package/dist/build/google-fonts/get-axes.js +0 -2
  18. package/dist/build/google-fonts/sort-variants.d.ts +1 -2
  19. package/dist/build/google-fonts/sort-variants.js +0 -2
  20. package/dist/build/google-fonts/validate.d.ts +1 -2
  21. package/dist/build/google-fonts/validate.js +0 -2
  22. package/dist/build/inline-css.d.ts +1 -2
  23. package/dist/build/inline-css.js +0 -2
  24. package/dist/build/layout-classification-types.d.ts +1 -2
  25. package/dist/build/layout-classification.d.ts +2 -3
  26. package/dist/build/layout-classification.js +1 -3
  27. package/dist/build/next-client-runtime-manifests.d.ts +14 -0
  28. package/dist/build/next-client-runtime-manifests.js +39 -0
  29. package/dist/build/nitro-route-rules.d.ts +1 -2
  30. package/dist/build/nitro-route-rules.js +0 -2
  31. package/dist/build/precompress.d.ts +1 -2
  32. package/dist/build/precompress.js +0 -2
  33. package/dist/build/prerender.d.ts +2 -3
  34. package/dist/build/prerender.js +14 -2
  35. package/dist/build/report.d.ts +1 -2
  36. package/dist/build/report.js +0 -2
  37. package/dist/build/route-classification-injector.d.ts +1 -2
  38. package/dist/build/route-classification-injector.js +4 -6
  39. package/dist/build/route-classification-manifest.d.ts +5 -6
  40. package/dist/build/route-classification-manifest.js +5 -7
  41. package/dist/build/run-prerender.d.ts +1 -2
  42. package/dist/build/run-prerender.js +15 -7
  43. package/dist/build/server-manifest.d.ts +1 -2
  44. package/dist/build/server-manifest.js +0 -2
  45. package/dist/build/ssr-manifest.d.ts +1 -2
  46. package/dist/build/ssr-manifest.js +2 -4
  47. package/dist/build/standalone.d.ts +1 -2
  48. package/dist/build/standalone.js +0 -2
  49. package/dist/build/static-export.d.ts +2 -3
  50. package/dist/build/static-export.js +0 -2
  51. package/dist/cache/cache-adapters-virtual.d.ts +50 -0
  52. package/dist/cache/cache-adapters-virtual.js +45 -0
  53. package/dist/check.d.ts +33 -2
  54. package/dist/check.js +321 -27
  55. package/dist/cli-args.d.ts +1 -2
  56. package/dist/cli-args.js +0 -2
  57. package/dist/cli.js +7 -13
  58. package/dist/client/instrumentation-client-inject.d.ts +1 -2
  59. package/dist/client/instrumentation-client-inject.js +0 -2
  60. package/dist/client/instrumentation-client-state.d.ts +1 -2
  61. package/dist/client/instrumentation-client-state.js +0 -2
  62. package/dist/client/instrumentation-client.d.ts +1 -2
  63. package/dist/client/instrumentation-client.js +0 -2
  64. package/dist/client/navigation-runtime.d.ts +2 -2
  65. package/dist/client/navigation-runtime.js +1 -3
  66. package/dist/client/pages-router-link-navigation.d.ts +1 -2
  67. package/dist/client/pages-router-link-navigation.js +0 -2
  68. package/dist/client/validate-module-path.d.ts +1 -2
  69. package/dist/client/validate-module-path.js +0 -2
  70. package/dist/client/vinext-next-data.d.ts +1 -2
  71. package/dist/client/vinext-next-data.js +0 -2
  72. package/dist/client/window-next.d.ts +1 -2
  73. package/dist/client/window-next.js +0 -2
  74. package/dist/cloudflare/index.d.ts +1 -1
  75. package/dist/cloudflare/index.js +1 -1
  76. package/dist/cloudflare/src/cache/cdn-adapter.runtime.js +97 -0
  77. package/dist/cloudflare/{kv-cache-handler.d.ts → src/cache/kv-data-adapter.runtime.d.ts} +25 -6
  78. package/dist/cloudflare/{kv-cache-handler.js → src/cache/kv-data-adapter.runtime.js} +36 -28
  79. package/dist/cloudflare/src/utils/cache-control-metadata.js +20 -0
  80. package/dist/cloudflare/tpr.d.ts +2 -3
  81. package/dist/cloudflare/tpr.js +8 -8
  82. package/dist/config/config-matchers.d.ts +1 -2
  83. package/dist/config/config-matchers.js +0 -2
  84. package/dist/config/dotenv.d.ts +1 -2
  85. package/dist/config/dotenv.js +0 -2
  86. package/dist/config/next-config.d.ts +30 -3
  87. package/dist/config/next-config.js +47 -8
  88. package/dist/config/tsconfig-paths.d.ts +12 -4
  89. package/dist/config/tsconfig-paths.js +58 -31
  90. package/dist/deploy.d.ts +48 -3
  91. package/dist/deploy.js +141 -112
  92. package/dist/entries/app-browser-entry.d.ts +1 -2
  93. package/dist/entries/app-browser-entry.js +0 -2
  94. package/dist/entries/app-rsc-entry.d.ts +6 -5
  95. package/dist/entries/app-rsc-entry.js +62 -61
  96. package/dist/entries/app-rsc-manifest.d.ts +1 -2
  97. package/dist/entries/app-rsc-manifest.js +42 -12
  98. package/dist/entries/app-ssr-entry.d.ts +1 -2
  99. package/dist/entries/app-ssr-entry.js +0 -2
  100. package/dist/entries/pages-client-entry.d.ts +3 -3
  101. package/dist/entries/pages-client-entry.js +16 -5
  102. package/dist/entries/pages-entry-helpers.d.ts +2 -11
  103. package/dist/entries/pages-entry-helpers.js +1 -20
  104. package/dist/entries/pages-server-entry.d.ts +2 -3
  105. package/dist/entries/pages-server-entry.js +94 -670
  106. package/dist/entries/runtime-entry-module.d.ts +1 -2
  107. package/dist/entries/runtime-entry-module.js +0 -2
  108. package/dist/index.d.ts +22 -2
  109. package/dist/index.js +297 -140
  110. package/dist/init.d.ts +1 -2
  111. package/dist/init.js +1 -3
  112. package/dist/plugins/ast-utils.d.ts +20 -0
  113. package/dist/plugins/ast-utils.js +78 -0
  114. package/dist/plugins/async-hooks-stub.d.ts +1 -2
  115. package/dist/plugins/async-hooks-stub.js +0 -2
  116. package/dist/plugins/client-reference-dedup.d.ts +1 -2
  117. package/dist/plugins/client-reference-dedup.js +4 -8
  118. package/dist/plugins/css-data-url.d.ts +1 -2
  119. package/dist/plugins/css-data-url.js +0 -2
  120. package/dist/plugins/fonts.d.ts +13 -3
  121. package/dist/plugins/fonts.js +19 -13
  122. package/dist/plugins/import-meta-url.d.ts +16 -0
  123. package/dist/plugins/import-meta-url.js +347 -0
  124. package/dist/plugins/instrumentation-client.d.ts +1 -2
  125. package/dist/plugins/instrumentation-client.js +0 -2
  126. package/dist/plugins/middleware-server-only.d.ts +1 -2
  127. package/dist/plugins/middleware-server-only.js +0 -2
  128. package/dist/plugins/og-assets.d.ts +32 -8
  129. package/dist/plugins/og-assets.js +126 -34
  130. package/dist/plugins/optimize-imports.d.ts +1 -2
  131. package/dist/plugins/optimize-imports.js +9 -17
  132. package/dist/plugins/postcss.d.ts +1 -2
  133. package/dist/plugins/postcss.js +0 -2
  134. package/dist/plugins/remove-console.d.ts +1 -2
  135. package/dist/plugins/remove-console.js +0 -2
  136. package/dist/plugins/rsc-client-reference-loaders.d.ts +1 -2
  137. package/dist/plugins/rsc-client-reference-loaders.js +0 -2
  138. package/dist/plugins/rsc-client-shim-excludes.d.ts +1 -2
  139. package/dist/plugins/rsc-client-shim-excludes.js +0 -2
  140. package/dist/plugins/sass.d.ts +1 -2
  141. package/dist/plugins/sass.js +0 -2
  142. package/dist/plugins/server-externals-manifest.d.ts +1 -2
  143. package/dist/plugins/server-externals-manifest.js +0 -2
  144. package/dist/plugins/strip-server-exports.d.ts +1 -2
  145. package/dist/plugins/strip-server-exports.js +0 -2
  146. package/dist/routing/app-route-graph.d.ts +2 -9
  147. package/dist/routing/app-route-graph.js +9 -30
  148. package/dist/routing/app-router.d.ts +1 -2
  149. package/dist/routing/app-router.js +0 -2
  150. package/dist/routing/file-matcher.d.ts +6 -2
  151. package/dist/routing/file-matcher.js +15 -7
  152. package/dist/routing/pages-router.d.ts +1 -2
  153. package/dist/routing/pages-router.js +0 -2
  154. package/dist/routing/route-matching.d.ts +1 -2
  155. package/dist/routing/route-matching.js +0 -2
  156. package/dist/routing/route-pattern.d.ts +1 -2
  157. package/dist/routing/route-pattern.js +0 -2
  158. package/dist/routing/route-trie.d.ts +1 -2
  159. package/dist/routing/route-trie.js +0 -2
  160. package/dist/routing/route-validation.d.ts +1 -2
  161. package/dist/routing/route-validation.js +0 -2
  162. package/dist/routing/utils.d.ts +44 -2
  163. package/dist/routing/utils.js +62 -3
  164. package/dist/server/api-handler.d.ts +1 -2
  165. package/dist/server/api-handler.js +0 -2
  166. package/dist/server/app-bfcache-id.d.ts +5 -0
  167. package/dist/server/app-bfcache-id.js +5 -0
  168. package/dist/server/app-browser-action-result.d.ts +9 -17
  169. package/dist/server/app-browser-action-result.js +25 -16
  170. package/dist/server/app-browser-client-reuse-manifest.d.ts +12 -0
  171. package/dist/server/app-browser-client-reuse-manifest.js +101 -0
  172. package/dist/server/app-browser-entry.js +352 -115
  173. package/dist/server/app-browser-error.d.ts +1 -2
  174. package/dist/server/app-browser-error.js +0 -2
  175. package/dist/server/app-browser-hydration.d.ts +1 -2
  176. package/dist/server/app-browser-hydration.js +0 -2
  177. package/dist/server/app-browser-interception-context.d.ts +1 -2
  178. package/dist/server/app-browser-interception-context.js +0 -2
  179. package/dist/server/app-browser-mpa-navigation.d.ts +16 -0
  180. package/dist/server/app-browser-mpa-navigation.js +42 -0
  181. package/dist/server/app-browser-navigation-controller.d.ts +5 -4
  182. package/dist/server/app-browser-navigation-controller.js +3 -3
  183. package/dist/server/app-browser-popstate.d.ts +4 -3
  184. package/dist/server/app-browser-popstate.js +15 -3
  185. package/dist/server/app-browser-rsc-redirect.d.ts +1 -2
  186. package/dist/server/app-browser-rsc-redirect.js +0 -2
  187. package/dist/server/app-browser-state.d.ts +28 -4
  188. package/dist/server/app-browser-state.js +195 -11
  189. package/dist/server/app-browser-stream.d.ts +1 -2
  190. package/dist/server/app-browser-stream.js +0 -2
  191. package/dist/server/app-browser-visible-commit.d.ts +2 -3
  192. package/dist/server/app-browser-visible-commit.js +24 -17
  193. package/dist/server/app-client-reference-preloader.d.ts +1 -2
  194. package/dist/server/app-client-reference-preloader.js +0 -2
  195. package/dist/server/app-elements-wire.d.ts +14 -8
  196. package/dist/server/app-elements-wire.js +45 -24
  197. package/dist/server/app-elements.d.ts +2 -3
  198. package/dist/server/app-elements.js +2 -4
  199. package/dist/server/app-fallback-renderer.d.ts +5 -5
  200. package/dist/server/app-fallback-renderer.js +4 -3
  201. package/dist/server/app-history-state.d.ts +18 -2
  202. package/dist/server/app-history-state.js +68 -10
  203. package/dist/server/app-hook-warning-suppression.d.ts +1 -2
  204. package/dist/server/app-hook-warning-suppression.js +0 -2
  205. package/dist/server/app-inline-css-client.d.ts +1 -2
  206. package/dist/server/app-inline-css-client.js +0 -2
  207. package/dist/server/app-interception-context-header.d.ts +1 -2
  208. package/dist/server/app-interception-context-header.js +0 -2
  209. package/dist/server/app-layout-param-observation.d.ts +43 -0
  210. package/dist/server/app-layout-param-observation.js +168 -0
  211. package/dist/server/app-middleware.d.ts +1 -2
  212. package/dist/server/app-middleware.js +0 -2
  213. package/dist/server/app-mounted-slots-header.d.ts +1 -2
  214. package/dist/server/app-mounted-slots-header.js +0 -2
  215. package/dist/server/app-optimistic-routing.d.ts +1 -2
  216. package/dist/server/app-optimistic-routing.js +0 -2
  217. package/dist/server/app-page-boundary-render.d.ts +4 -3
  218. package/dist/server/app-page-boundary-render.js +20 -11
  219. package/dist/server/app-page-boundary.d.ts +11 -2
  220. package/dist/server/app-page-boundary.js +13 -4
  221. package/dist/server/app-page-cache.d.ts +3 -3
  222. package/dist/server/app-page-cache.js +36 -11
  223. package/dist/server/app-page-dispatch.d.ts +19 -5
  224. package/dist/server/app-page-dispatch.js +119 -24
  225. package/dist/server/app-page-element-builder.d.ts +3 -2
  226. package/dist/server/app-page-element-builder.js +9 -11
  227. package/dist/server/app-page-execution.d.ts +8 -3
  228. package/dist/server/app-page-execution.js +55 -24
  229. package/dist/server/app-page-head.d.ts +1 -2
  230. package/dist/server/app-page-head.js +6 -6
  231. package/dist/server/app-page-method.d.ts +1 -2
  232. package/dist/server/app-page-method.js +0 -2
  233. package/dist/server/app-page-params.d.ts +2 -2
  234. package/dist/server/app-page-params.js +14 -3
  235. package/dist/server/app-page-probe.d.ts +90 -2
  236. package/dist/server/app-page-probe.js +201 -6
  237. package/dist/server/app-page-render-identity.d.ts +1 -2
  238. package/dist/server/app-page-render-identity.js +0 -2
  239. package/dist/server/app-page-render-observation.d.ts +1 -2
  240. package/dist/server/app-page-render-observation.js +0 -2
  241. package/dist/server/app-page-render.d.ts +9 -3
  242. package/dist/server/app-page-render.js +167 -10
  243. package/dist/server/app-page-request.d.ts +4 -3
  244. package/dist/server/app-page-request.js +1 -3
  245. package/dist/server/app-page-response.d.ts +2 -2
  246. package/dist/server/app-page-response.js +5 -3
  247. package/dist/server/app-page-route-wiring.d.ts +14 -3
  248. package/dist/server/app-page-route-wiring.js +63 -11
  249. package/dist/server/app-page-search-params-observation.d.ts +10 -0
  250. package/dist/server/app-page-search-params-observation.js +20 -0
  251. package/dist/server/app-page-segment-state.d.ts +1 -2
  252. package/dist/server/app-page-segment-state.js +1 -8
  253. package/dist/server/app-page-stream.d.ts +19 -9
  254. package/dist/server/app-page-stream.js +28 -10
  255. package/dist/server/app-pages-bridge.d.ts +25 -0
  256. package/dist/server/app-pages-bridge.js +34 -0
  257. package/dist/server/app-post-middleware-context.d.ts +1 -2
  258. package/dist/server/app-post-middleware-context.js +0 -2
  259. package/dist/server/app-ppr-fallback-shell.d.ts +21 -0
  260. package/dist/server/app-ppr-fallback-shell.js +82 -0
  261. package/dist/server/app-prerender-endpoints.d.ts +1 -2
  262. package/dist/server/app-prerender-endpoints.js +0 -2
  263. package/dist/server/app-prerender-static-params.d.ts +15 -2
  264. package/dist/server/app-prerender-static-params.js +44 -13
  265. package/dist/server/app-render-dependency.d.ts +3 -2
  266. package/dist/server/app-render-dependency.js +9 -3
  267. package/dist/server/app-request-context.d.ts +1 -2
  268. package/dist/server/app-request-context.js +0 -2
  269. package/dist/server/app-route-handler-cache.d.ts +1 -2
  270. package/dist/server/app-route-handler-cache.js +0 -2
  271. package/dist/server/app-route-handler-dispatch.d.ts +1 -2
  272. package/dist/server/app-route-handler-dispatch.js +0 -2
  273. package/dist/server/app-route-handler-execution.d.ts +1 -2
  274. package/dist/server/app-route-handler-execution.js +2 -4
  275. package/dist/server/app-route-handler-policy.d.ts +1 -2
  276. package/dist/server/app-route-handler-policy.js +0 -2
  277. package/dist/server/app-route-handler-response.d.ts +2 -3
  278. package/dist/server/app-route-handler-response.js +8 -7
  279. package/dist/server/app-route-handler-runtime.d.ts +1 -2
  280. package/dist/server/app-route-handler-runtime.js +0 -2
  281. package/dist/server/app-route-module-loader.d.ts +43 -0
  282. package/dist/server/app-route-module-loader.js +32 -0
  283. package/dist/server/app-router-entry.d.ts +1 -2
  284. package/dist/server/app-router-entry.js +2 -2
  285. package/dist/server/app-rsc-cache-busting.d.ts +12 -3
  286. package/dist/server/app-rsc-cache-busting.js +21 -10
  287. package/dist/server/app-rsc-embedded-chunks.d.ts +1 -2
  288. package/dist/server/app-rsc-embedded-chunks.js +0 -2
  289. package/dist/server/app-rsc-error-handler.d.ts +1 -2
  290. package/dist/server/app-rsc-error-handler.js +0 -2
  291. package/dist/server/app-rsc-errors.d.ts +1 -2
  292. package/dist/server/app-rsc-errors.js +0 -2
  293. package/dist/server/app-rsc-handler.d.ts +16 -2
  294. package/dist/server/app-rsc-handler.js +32 -14
  295. package/dist/server/app-rsc-render-mode.d.ts +1 -2
  296. package/dist/server/app-rsc-render-mode.js +0 -2
  297. package/dist/server/app-rsc-request-normalization.d.ts +4 -5
  298. package/dist/server/app-rsc-request-normalization.js +2 -4
  299. package/dist/server/app-rsc-response-finalizer.d.ts +1 -2
  300. package/dist/server/app-rsc-response-finalizer.js +2 -2
  301. package/dist/server/app-rsc-route-matching.d.ts +1 -2
  302. package/dist/server/app-rsc-route-matching.js +0 -2
  303. package/dist/server/app-segment-config.d.ts +5 -3
  304. package/dist/server/app-segment-config.js +12 -3
  305. package/dist/server/app-server-action-execution.d.ts +12 -2
  306. package/dist/server/app-server-action-execution.js +200 -25
  307. package/dist/server/app-ssr-entry.d.ts +5 -4
  308. package/dist/server/app-ssr-entry.js +31 -15
  309. package/dist/server/app-ssr-error-meta.d.ts +1 -2
  310. package/dist/server/app-ssr-error-meta.js +0 -2
  311. package/dist/server/app-ssr-stream.d.ts +1 -2
  312. package/dist/server/app-ssr-stream.js +31 -3
  313. package/dist/server/app-static-generation.d.ts +1 -2
  314. package/dist/server/app-static-generation.js +0 -2
  315. package/dist/server/app-visited-response-cache.d.ts +23 -0
  316. package/dist/server/app-visited-response-cache.js +19 -0
  317. package/dist/server/artifact-compatibility.d.ts +2 -2
  318. package/dist/server/artifact-compatibility.js +12 -7
  319. package/dist/server/cache-control.d.ts +15 -2
  320. package/dist/server/cache-control.js +21 -3
  321. package/dist/server/cache-headers.d.ts +1 -2
  322. package/dist/server/cache-headers.js +0 -2
  323. package/dist/server/cache-proof.d.ts +1 -2
  324. package/dist/server/cache-proof.js +0 -2
  325. package/dist/server/client-reuse-manifest.d.ts +10 -5
  326. package/dist/server/client-reuse-manifest.js +7 -10
  327. package/dist/server/client-trace-metadata.d.ts +1 -2
  328. package/dist/server/client-trace-metadata.js +0 -2
  329. package/dist/server/cookie-utils.d.ts +1 -2
  330. package/dist/server/cookie-utils.js +0 -2
  331. package/dist/server/csp.d.ts +1 -2
  332. package/dist/server/csp.js +0 -2
  333. package/dist/server/default-global-error-module.d.ts +1 -2
  334. package/dist/server/default-global-error-module.js +0 -2
  335. package/dist/server/default-not-found-module.d.ts +1 -2
  336. package/dist/server/default-not-found-module.js +0 -2
  337. package/dist/server/dev-error-overlay-store.d.ts +20 -4
  338. package/dist/server/dev-error-overlay-store.js +23 -4
  339. package/dist/server/dev-error-overlay.d.ts +39 -3
  340. package/dist/server/dev-error-overlay.js +952 -164
  341. package/dist/server/dev-initial-server-error.d.ts +9 -0
  342. package/dist/server/dev-initial-server-error.js +26 -0
  343. package/dist/server/dev-lockfile.d.ts +1 -2
  344. package/dist/server/dev-lockfile.js +0 -2
  345. package/dist/server/dev-module-runner.d.ts +1 -2
  346. package/dist/server/dev-module-runner.js +0 -2
  347. package/dist/server/dev-origin-check.d.ts +1 -2
  348. package/dist/server/dev-origin-check.js +0 -2
  349. package/dist/server/dev-route-files.d.ts +1 -2
  350. package/dist/server/dev-route-files.js +0 -2
  351. package/dist/server/dev-server.d.ts +2 -3
  352. package/dist/server/dev-server.js +127 -28
  353. package/dist/server/dev-stack-sourcemap-endpoint.d.ts +4 -0
  354. package/dist/server/dev-stack-sourcemap-endpoint.js +4 -0
  355. package/dist/server/dev-stack-sourcemap.d.ts +43 -0
  356. package/dist/server/dev-stack-sourcemap.js +443 -0
  357. package/dist/server/document-initial-head.d.ts +6 -0
  358. package/dist/server/document-initial-head.js +33 -0
  359. package/dist/server/edge-api-runtime.d.ts +1 -2
  360. package/dist/server/edge-api-runtime.js +0 -2
  361. package/dist/server/file-based-metadata.d.ts +1 -2
  362. package/dist/server/file-based-metadata.js +0 -2
  363. package/dist/server/headers.d.ts +3 -2
  364. package/dist/server/headers.js +3 -3
  365. package/dist/server/html.d.ts +1 -2
  366. package/dist/server/html.js +0 -2
  367. package/dist/server/http-error-responses.d.ts +1 -2
  368. package/dist/server/http-error-responses.js +0 -2
  369. package/dist/server/image-optimization.d.ts +1 -2
  370. package/dist/server/image-optimization.js +0 -2
  371. package/dist/server/implicit-tags.d.ts +1 -2
  372. package/dist/server/implicit-tags.js +0 -2
  373. package/dist/server/instrumentation-runtime.d.ts +1 -2
  374. package/dist/server/instrumentation-runtime.js +0 -2
  375. package/dist/server/instrumentation.d.ts +1 -2
  376. package/dist/server/instrumentation.js +0 -2
  377. package/dist/server/isr-cache.d.ts +10 -3
  378. package/dist/server/isr-cache.js +13 -28
  379. package/dist/server/metadata-route-build-data.d.ts +1 -2
  380. package/dist/server/metadata-route-build-data.js +0 -2
  381. package/dist/server/metadata-route-response.d.ts +1 -2
  382. package/dist/server/metadata-route-response.js +0 -2
  383. package/dist/server/metadata-routes.d.ts +1 -2
  384. package/dist/server/metadata-routes.js +0 -2
  385. package/dist/server/middleware-matcher.d.ts +1 -2
  386. package/dist/server/middleware-matcher.js +0 -2
  387. package/dist/server/middleware-request-headers.d.ts +1 -2
  388. package/dist/server/middleware-request-headers.js +0 -2
  389. package/dist/server/middleware-response-headers.d.ts +1 -2
  390. package/dist/server/middleware-response-headers.js +0 -2
  391. package/dist/server/middleware-runtime.d.ts +1 -2
  392. package/dist/server/middleware-runtime.js +14 -5
  393. package/dist/server/middleware.d.ts +2 -3
  394. package/dist/server/middleware.js +0 -2
  395. package/dist/server/navigation-planner.d.ts +16 -2
  396. package/dist/server/navigation-planner.js +1 -3
  397. package/dist/server/navigation-trace.d.ts +1 -2
  398. package/dist/server/navigation-trace.js +0 -2
  399. package/dist/server/next-error-digest.d.ts +1 -2
  400. package/dist/server/next-error-digest.js +0 -2
  401. package/dist/server/normalize-path.d.ts +1 -2
  402. package/dist/server/normalize-path.js +0 -2
  403. package/dist/server/pages-api-route.d.ts +1 -2
  404. package/dist/server/pages-api-route.js +1 -3
  405. package/dist/server/pages-asset-tags.d.ts +66 -0
  406. package/dist/server/pages-asset-tags.js +116 -0
  407. package/dist/server/pages-body-parser-config.d.ts +1 -2
  408. package/dist/server/pages-body-parser-config.js +0 -2
  409. package/dist/server/pages-data-route.d.ts +39 -2
  410. package/dist/server/pages-data-route.js +46 -3
  411. package/dist/server/pages-default-404.d.ts +1 -2
  412. package/dist/server/pages-default-404.js +0 -2
  413. package/dist/server/pages-document-initial-props.d.ts +84 -3
  414. package/dist/server/pages-document-initial-props.js +127 -3
  415. package/dist/server/pages-get-initial-props.d.ts +17 -0
  416. package/dist/server/pages-get-initial-props.js +50 -0
  417. package/dist/server/pages-i18n.d.ts +1 -2
  418. package/dist/server/pages-i18n.js +0 -2
  419. package/dist/server/pages-media-type.d.ts +1 -2
  420. package/dist/server/pages-media-type.js +1 -2
  421. package/dist/server/pages-node-compat.d.ts +9 -2
  422. package/dist/server/pages-node-compat.js +35 -4
  423. package/dist/server/pages-page-data.d.ts +7 -3
  424. package/dist/server/pages-page-data.js +75 -33
  425. package/dist/server/pages-page-handler.d.ts +90 -0
  426. package/dist/server/pages-page-handler.js +335 -0
  427. package/dist/server/pages-page-method.d.ts +1 -2
  428. package/dist/server/pages-page-method.js +0 -2
  429. package/dist/server/pages-page-response.d.ts +15 -2
  430. package/dist/server/pages-page-response.js +39 -12
  431. package/dist/server/pages-serializable-props.d.ts +1 -2
  432. package/dist/server/pages-serializable-props.js +0 -2
  433. package/dist/server/pregenerated-concrete-paths.d.ts +32 -0
  434. package/dist/server/pregenerated-concrete-paths.js +78 -0
  435. package/dist/server/prerender-route-params.d.ts +13 -3
  436. package/dist/server/prerender-route-params.js +30 -11
  437. package/dist/server/prerender-work-unit-setup.d.ts +1 -2
  438. package/dist/server/prerender-work-unit-setup.js +0 -2
  439. package/dist/server/prod-server.d.ts +2 -4
  440. package/dist/server/prod-server.js +13 -8
  441. package/dist/server/proxy-trust.d.ts +1 -2
  442. package/dist/server/proxy-trust.js +0 -2
  443. package/dist/server/request-log.d.ts +1 -2
  444. package/dist/server/request-log.js +0 -2
  445. package/dist/server/request-pipeline.d.ts +14 -2
  446. package/dist/server/request-pipeline.js +42 -3
  447. package/dist/server/rsc-stream-hints.d.ts +1 -2
  448. package/dist/server/rsc-stream-hints.js +0 -2
  449. package/dist/server/seed-cache.d.ts +6 -2
  450. package/dist/server/seed-cache.js +10 -8
  451. package/dist/server/server-action-not-found.d.ts +1 -2
  452. package/dist/server/server-action-not-found.js +0 -2
  453. package/dist/server/server-globals.d.ts +1 -2
  454. package/dist/server/server-globals.js +0 -2
  455. package/dist/server/skip-cache-proof.d.ts +23 -3
  456. package/dist/server/skip-cache-proof.js +81 -14
  457. package/dist/server/socket-error-backstop.d.ts +1 -2
  458. package/dist/server/socket-error-backstop.js +0 -2
  459. package/dist/server/static-file-cache.d.ts +1 -2
  460. package/dist/server/static-file-cache.js +0 -2
  461. package/dist/server/static-layout-client-reuse-proof.d.ts +15 -0
  462. package/dist/server/static-layout-client-reuse-proof.js +33 -0
  463. package/dist/server/streaming-metadata.d.ts +1 -2
  464. package/dist/server/streaming-metadata.js +0 -2
  465. package/dist/server/worker-utils.d.ts +1 -2
  466. package/dist/server/worker-utils.js +3 -6
  467. package/dist/shims/amp.d.ts +1 -2
  468. package/dist/shims/amp.js +0 -2
  469. package/dist/shims/app-router-scroll-state.d.ts +1 -2
  470. package/dist/shims/app-router-scroll-state.js +0 -2
  471. package/dist/shims/app-router-scroll.d.ts +3 -5
  472. package/dist/shims/app-router-scroll.js +0 -2
  473. package/dist/shims/app.d.ts +1 -2
  474. package/dist/shims/app.js +0 -2
  475. package/dist/shims/before-interactive-context.d.ts +1 -2
  476. package/dist/shims/before-interactive-context.js +0 -2
  477. package/dist/shims/cache-for-request.d.ts +1 -2
  478. package/dist/shims/cache-for-request.js +0 -2
  479. package/dist/shims/cache-runtime.d.ts +20 -5
  480. package/dist/shims/cache-runtime.js +35 -30
  481. package/dist/shims/cache.d.ts +68 -7
  482. package/dist/shims/cache.js +179 -25
  483. package/dist/shims/cdn-cache.d.ts +125 -0
  484. package/dist/shims/cdn-cache.js +100 -0
  485. package/dist/shims/client-hook-error.d.ts +1 -2
  486. package/dist/shims/client-hook-error.js +0 -2
  487. package/dist/shims/client-locale.d.ts +1 -2
  488. package/dist/shims/client-locale.js +1 -3
  489. package/dist/shims/compat-router.d.ts +1 -2
  490. package/dist/shims/compat-router.js +0 -2
  491. package/dist/shims/config.d.ts +1 -2
  492. package/dist/shims/config.js +0 -2
  493. package/dist/shims/constants.d.ts +1 -2
  494. package/dist/shims/constants.js +0 -2
  495. package/dist/shims/default-global-error.d.ts +3 -4
  496. package/dist/shims/default-global-error.js +0 -2
  497. package/dist/shims/default-not-found.d.ts +1 -2
  498. package/dist/shims/default-not-found.js +0 -2
  499. package/dist/shims/document.d.ts +11 -7
  500. package/dist/shims/document.js +7 -10
  501. package/dist/shims/dynamic.d.ts +1 -2
  502. package/dist/shims/dynamic.js +0 -2
  503. package/dist/shims/error-boundary.d.ts +16 -12
  504. package/dist/shims/error-boundary.js +60 -28
  505. package/dist/shims/error.d.ts +1 -2
  506. package/dist/shims/error.js +0 -2
  507. package/dist/shims/fetch-cache.d.ts +3 -2
  508. package/dist/shims/fetch-cache.js +18 -9
  509. package/dist/shims/font-google-base.d.ts +1 -2
  510. package/dist/shims/font-google-base.js +1 -13
  511. package/dist/shims/font-local.d.ts +1 -2
  512. package/dist/shims/font-local.js +1 -15
  513. package/dist/shims/font-utils.d.ts +7 -2
  514. package/dist/shims/font-utils.js +13 -3
  515. package/dist/shims/form.d.ts +12 -5
  516. package/dist/shims/form.js +98 -21
  517. package/dist/shims/hash-scroll.d.ts +4 -2
  518. package/dist/shims/hash-scroll.js +13 -3
  519. package/dist/shims/head-state.d.ts +2 -2
  520. package/dist/shims/head-state.js +18 -5
  521. package/dist/shims/head.d.ts +35 -2
  522. package/dist/shims/head.js +113 -16
  523. package/dist/shims/headers.d.ts +9 -2
  524. package/dist/shims/headers.js +13 -3
  525. package/dist/shims/i18n-context.d.ts +1 -2
  526. package/dist/shims/i18n-context.js +0 -2
  527. package/dist/shims/i18n-state.d.ts +1 -2
  528. package/dist/shims/i18n-state.js +0 -2
  529. package/dist/shims/image-config.d.ts +1 -2
  530. package/dist/shims/image-config.js +0 -2
  531. package/dist/shims/image.d.ts +1 -2
  532. package/dist/shims/image.js +1 -3
  533. package/dist/shims/internal/als-registry.d.ts +1 -2
  534. package/dist/shims/internal/als-registry.js +0 -2
  535. package/dist/shims/internal/api-utils.d.ts +1 -2
  536. package/dist/shims/internal/app-route-detection.d.ts +1 -2
  537. package/dist/shims/internal/app-route-detection.js +0 -2
  538. package/dist/shims/internal/app-router-context.d.ts +1 -2
  539. package/dist/shims/internal/app-router-context.js +0 -2
  540. package/dist/shims/internal/cookie-serialize.d.ts +1 -2
  541. package/dist/shims/internal/cookie-serialize.js +0 -2
  542. package/dist/shims/internal/make-hanging-promise.d.ts +1 -2
  543. package/dist/shims/internal/make-hanging-promise.js +0 -2
  544. package/dist/shims/internal/pages-data-fetch-dedup.d.ts +55 -0
  545. package/dist/shims/internal/pages-data-fetch-dedup.js +68 -0
  546. package/dist/shims/internal/pages-data-target.d.ts +1 -2
  547. package/dist/shims/internal/pages-data-target.js +0 -2
  548. package/dist/shims/internal/pages-data-url.d.ts +1 -2
  549. package/dist/shims/internal/pages-data-url.js +0 -2
  550. package/dist/shims/internal/parse-cookie-header.d.ts +1 -2
  551. package/dist/shims/internal/parse-cookie-header.js +0 -2
  552. package/dist/shims/internal/router-context.d.ts +2 -4
  553. package/dist/shims/internal/router-context.js +0 -2
  554. package/dist/shims/internal/utils.d.ts +1 -2
  555. package/dist/shims/internal/utils.js +0 -2
  556. package/dist/shims/internal/work-unit-async-storage.d.ts +1 -2
  557. package/dist/shims/internal/work-unit-async-storage.js +0 -2
  558. package/dist/shims/layout-segment-context.d.ts +2 -4
  559. package/dist/shims/layout-segment-context.js +0 -2
  560. package/dist/shims/legacy-image.d.ts +1 -2
  561. package/dist/shims/legacy-image.js +0 -2
  562. package/dist/shims/link-prefetch.d.ts +1 -2
  563. package/dist/shims/link-prefetch.js +0 -2
  564. package/dist/shims/link.d.ts +2 -2
  565. package/dist/shims/link.js +47 -15
  566. package/dist/shims/metadata.d.ts +4 -5
  567. package/dist/shims/metadata.js +1 -3
  568. package/dist/shims/navigation-state.d.ts +1 -2
  569. package/dist/shims/navigation-state.js +0 -2
  570. package/dist/shims/navigation.d.ts +61 -7
  571. package/dist/shims/navigation.js +244 -47
  572. package/dist/shims/navigation.react-server.d.ts +1 -2
  573. package/dist/shims/navigation.react-server.js +0 -2
  574. package/dist/shims/offline.d.ts +1 -2
  575. package/dist/shims/offline.js +0 -2
  576. package/dist/shims/og.d.ts +1 -2
  577. package/dist/shims/og.js +2 -4
  578. package/dist/shims/pages-router-runtime.d.ts +7 -2
  579. package/dist/shims/pages-router-runtime.js +11 -3
  580. package/dist/shims/ppr-fallback-shell.d.ts +29 -0
  581. package/dist/shims/ppr-fallback-shell.js +149 -0
  582. package/dist/shims/readonly-url-search-params.d.ts +1 -2
  583. package/dist/shims/readonly-url-search-params.js +0 -2
  584. package/dist/shims/request-context.d.ts +9 -5
  585. package/dist/shims/request-context.js +0 -2
  586. package/dist/shims/request-state-types.d.ts +1 -1
  587. package/dist/shims/root-params.d.ts +1 -2
  588. package/dist/shims/root-params.js +0 -2
  589. package/dist/shims/router-state.d.ts +1 -2
  590. package/dist/shims/router-state.js +0 -2
  591. package/dist/shims/router.d.ts +1 -2
  592. package/dist/shims/router.js +172 -37
  593. package/dist/shims/script-nonce-context.d.ts +1 -2
  594. package/dist/shims/script-nonce-context.js +0 -2
  595. package/dist/shims/script.d.ts +1 -2
  596. package/dist/shims/script.js +0 -2
  597. package/dist/shims/server.d.ts +1 -2
  598. package/dist/shims/server.js +0 -2
  599. package/dist/shims/slot.d.ts +11 -4
  600. package/dist/shims/slot.js +121 -9
  601. package/dist/shims/thenable-params.d.ts +6 -3
  602. package/dist/shims/thenable-params.js +131 -12
  603. package/dist/shims/unified-request-context.d.ts +1 -2
  604. package/dist/shims/unified-request-context.js +3 -2
  605. package/dist/shims/unrecognized-action-error.d.ts +1 -2
  606. package/dist/shims/unrecognized-action-error.js +0 -2
  607. package/dist/shims/url-safety.d.ts +1 -2
  608. package/dist/shims/url-safety.js +0 -2
  609. package/dist/shims/url-utils.d.ts +1 -2
  610. package/dist/shims/url-utils.js +0 -2
  611. package/dist/shims/use-merged-ref.d.ts +1 -2
  612. package/dist/shims/use-merged-ref.js +0 -2
  613. package/dist/shims/web-vitals.d.ts +1 -2
  614. package/dist/shims/web-vitals.js +0 -2
  615. package/dist/typegen.d.ts +1 -2
  616. package/dist/typegen.js +2 -9
  617. package/dist/utils/asset-prefix.d.ts +1 -2
  618. package/dist/utils/asset-prefix.js +0 -2
  619. package/dist/utils/base-path.d.ts +1 -2
  620. package/dist/utils/base-path.js +0 -2
  621. package/dist/utils/cache-control-metadata.d.ts +1 -4
  622. package/dist/utils/cache-control-metadata.js +1 -3
  623. package/dist/utils/client-build-manifest.d.ts +14 -0
  624. package/dist/utils/client-build-manifest.js +52 -0
  625. package/dist/utils/compare.d.ts +4 -0
  626. package/dist/utils/compare.js +8 -0
  627. package/dist/utils/dev-error-recovery-event.d.ts +4 -0
  628. package/dist/utils/dev-error-recovery-event.js +4 -0
  629. package/dist/utils/domain-locale.d.ts +1 -2
  630. package/dist/utils/domain-locale.js +2 -4
  631. package/dist/utils/encode-cache-tag.d.ts +1 -2
  632. package/dist/utils/encode-cache-tag.js +0 -2
  633. package/dist/utils/error-cause.d.ts +1 -2
  634. package/dist/utils/error-cause.js +0 -2
  635. package/dist/utils/hash.d.ts +1 -2
  636. package/dist/utils/hash.js +1 -3
  637. package/dist/utils/html-limited-bots.d.ts +1 -2
  638. package/dist/utils/html-limited-bots.js +0 -2
  639. package/dist/utils/lazy-chunks.d.ts +1 -2
  640. package/dist/utils/lazy-chunks.js +0 -2
  641. package/dist/utils/manifest-paths.d.ts +8 -3
  642. package/dist/utils/manifest-paths.js +15 -3
  643. package/dist/utils/mdx-scan.d.ts +1 -2
  644. package/dist/utils/mdx-scan.js +0 -2
  645. package/dist/utils/navigation-signal.d.ts +1 -2
  646. package/dist/utils/navigation-signal.js +0 -2
  647. package/dist/utils/number.d.ts +4 -0
  648. package/dist/utils/number.js +6 -0
  649. package/dist/utils/path.d.ts +4 -2
  650. package/dist/utils/path.js +5 -3
  651. package/dist/utils/prerender-output-paths.d.ts +1 -2
  652. package/dist/utils/prerender-output-paths.js +0 -2
  653. package/dist/utils/project.d.ts +1 -2
  654. package/dist/utils/project.js +0 -2
  655. package/dist/utils/promise.d.ts +4 -0
  656. package/dist/utils/promise.js +6 -0
  657. package/dist/utils/public-routes.d.ts +1 -2
  658. package/dist/utils/public-routes.js +0 -2
  659. package/dist/utils/query.d.ts +1 -2
  660. package/dist/utils/query.js +0 -2
  661. package/dist/utils/record.d.ts +1 -2
  662. package/dist/utils/record.js +0 -2
  663. package/dist/utils/regex.d.ts +4 -0
  664. package/dist/utils/regex.js +6 -0
  665. package/dist/utils/safe-json-file.d.ts +1 -2
  666. package/dist/utils/safe-json-file.js +0 -2
  667. package/dist/utils/sorted-array.d.ts +1 -2
  668. package/dist/utils/sorted-array.js +0 -2
  669. package/dist/utils/text-stream.d.ts +1 -2
  670. package/dist/utils/text-stream.js +0 -2
  671. package/dist/utils/vinext-root.d.ts +1 -2
  672. package/dist/utils/vinext-root.js +0 -2
  673. package/dist/utils/vite-version.d.ts +10 -0
  674. package/dist/utils/vite-version.js +34 -0
  675. package/package.json +20 -7
  676. package/dist/build/clean-output.js.map +0 -1
  677. package/dist/build/client-build-config.js.map +0 -1
  678. package/dist/build/google-fonts/build-url.js.map +0 -1
  679. package/dist/build/google-fonts/fallback-metrics-data.js.map +0 -1
  680. package/dist/build/google-fonts/fallback-metrics.js.map +0 -1
  681. package/dist/build/google-fonts/font-data.js.map +0 -1
  682. package/dist/build/google-fonts/font-metadata.js.map +0 -1
  683. package/dist/build/google-fonts/get-axes.js.map +0 -1
  684. package/dist/build/google-fonts/sort-variants.js.map +0 -1
  685. package/dist/build/google-fonts/validate.js.map +0 -1
  686. package/dist/build/inline-css.js.map +0 -1
  687. package/dist/build/layout-classification.js.map +0 -1
  688. package/dist/build/nitro-route-rules.js.map +0 -1
  689. package/dist/build/precompress.js.map +0 -1
  690. package/dist/build/prerender.js.map +0 -1
  691. package/dist/build/report.js.map +0 -1
  692. package/dist/build/route-classification-injector.js.map +0 -1
  693. package/dist/build/route-classification-manifest.js.map +0 -1
  694. package/dist/build/run-prerender.js.map +0 -1
  695. package/dist/build/server-manifest.js.map +0 -1
  696. package/dist/build/ssr-manifest.js.map +0 -1
  697. package/dist/build/standalone.js.map +0 -1
  698. package/dist/build/static-export.js.map +0 -1
  699. package/dist/check.js.map +0 -1
  700. package/dist/cli-args.js.map +0 -1
  701. package/dist/cli.js.map +0 -1
  702. package/dist/client/instrumentation-client-inject.js.map +0 -1
  703. package/dist/client/instrumentation-client-state.js.map +0 -1
  704. package/dist/client/instrumentation-client.js.map +0 -1
  705. package/dist/client/navigation-runtime.js.map +0 -1
  706. package/dist/client/pages-router-link-navigation.js.map +0 -1
  707. package/dist/client/validate-module-path.js.map +0 -1
  708. package/dist/client/vinext-next-data.js.map +0 -1
  709. package/dist/client/window-next.js.map +0 -1
  710. package/dist/cloudflare/kv-cache-handler.js.map +0 -1
  711. package/dist/cloudflare/tpr.js.map +0 -1
  712. package/dist/config/config-matchers.js.map +0 -1
  713. package/dist/config/dotenv.js.map +0 -1
  714. package/dist/config/next-config.js.map +0 -1
  715. package/dist/config/tsconfig-paths.js.map +0 -1
  716. package/dist/deploy.js.map +0 -1
  717. package/dist/entries/app-browser-entry.js.map +0 -1
  718. package/dist/entries/app-rsc-entry.js.map +0 -1
  719. package/dist/entries/app-rsc-manifest.js.map +0 -1
  720. package/dist/entries/app-ssr-entry.js.map +0 -1
  721. package/dist/entries/pages-client-entry.js.map +0 -1
  722. package/dist/entries/pages-entry-helpers.js.map +0 -1
  723. package/dist/entries/pages-server-entry.js.map +0 -1
  724. package/dist/entries/runtime-entry-module.js.map +0 -1
  725. package/dist/index.js.map +0 -1
  726. package/dist/init.js.map +0 -1
  727. package/dist/plugins/async-hooks-stub.js.map +0 -1
  728. package/dist/plugins/client-reference-dedup.js.map +0 -1
  729. package/dist/plugins/css-data-url.js.map +0 -1
  730. package/dist/plugins/fonts.js.map +0 -1
  731. package/dist/plugins/instrumentation-client.js.map +0 -1
  732. package/dist/plugins/middleware-server-only.js.map +0 -1
  733. package/dist/plugins/og-assets.js.map +0 -1
  734. package/dist/plugins/optimize-imports.js.map +0 -1
  735. package/dist/plugins/postcss.js.map +0 -1
  736. package/dist/plugins/remove-console.js.map +0 -1
  737. package/dist/plugins/rsc-client-reference-loaders.js.map +0 -1
  738. package/dist/plugins/rsc-client-shim-excludes.js.map +0 -1
  739. package/dist/plugins/sass.js.map +0 -1
  740. package/dist/plugins/server-externals-manifest.js.map +0 -1
  741. package/dist/plugins/strip-server-exports.js.map +0 -1
  742. package/dist/routing/app-route-graph.js.map +0 -1
  743. package/dist/routing/app-router.js.map +0 -1
  744. package/dist/routing/file-matcher.js.map +0 -1
  745. package/dist/routing/pages-router.js.map +0 -1
  746. package/dist/routing/route-matching.js.map +0 -1
  747. package/dist/routing/route-pattern.js.map +0 -1
  748. package/dist/routing/route-trie.js.map +0 -1
  749. package/dist/routing/route-validation.js.map +0 -1
  750. package/dist/routing/utils.js.map +0 -1
  751. package/dist/server/api-handler.js.map +0 -1
  752. package/dist/server/app-browser-action-result.js.map +0 -1
  753. package/dist/server/app-browser-entry.js.map +0 -1
  754. package/dist/server/app-browser-error.js.map +0 -1
  755. package/dist/server/app-browser-hydration.js.map +0 -1
  756. package/dist/server/app-browser-interception-context.js.map +0 -1
  757. package/dist/server/app-browser-navigation-controller.js.map +0 -1
  758. package/dist/server/app-browser-popstate.js.map +0 -1
  759. package/dist/server/app-browser-rsc-redirect.js.map +0 -1
  760. package/dist/server/app-browser-state.js.map +0 -1
  761. package/dist/server/app-browser-stream.js.map +0 -1
  762. package/dist/server/app-browser-visible-commit.js.map +0 -1
  763. package/dist/server/app-client-reference-preloader.js.map +0 -1
  764. package/dist/server/app-elements-wire.js.map +0 -1
  765. package/dist/server/app-elements.js.map +0 -1
  766. package/dist/server/app-fallback-renderer.js.map +0 -1
  767. package/dist/server/app-history-state.js.map +0 -1
  768. package/dist/server/app-hook-warning-suppression.js.map +0 -1
  769. package/dist/server/app-inline-css-client.js.map +0 -1
  770. package/dist/server/app-interception-context-header.js.map +0 -1
  771. package/dist/server/app-middleware.js.map +0 -1
  772. package/dist/server/app-mounted-slots-header.js.map +0 -1
  773. package/dist/server/app-optimistic-routing.js.map +0 -1
  774. package/dist/server/app-page-boundary-render.js.map +0 -1
  775. package/dist/server/app-page-boundary.js.map +0 -1
  776. package/dist/server/app-page-cache.js.map +0 -1
  777. package/dist/server/app-page-dispatch.js.map +0 -1
  778. package/dist/server/app-page-element-builder.js.map +0 -1
  779. package/dist/server/app-page-execution.js.map +0 -1
  780. package/dist/server/app-page-head.js.map +0 -1
  781. package/dist/server/app-page-method.js.map +0 -1
  782. package/dist/server/app-page-params.js.map +0 -1
  783. package/dist/server/app-page-probe.js.map +0 -1
  784. package/dist/server/app-page-render-identity.js.map +0 -1
  785. package/dist/server/app-page-render-observation.js.map +0 -1
  786. package/dist/server/app-page-render.js.map +0 -1
  787. package/dist/server/app-page-request.js.map +0 -1
  788. package/dist/server/app-page-response.js.map +0 -1
  789. package/dist/server/app-page-route-wiring.js.map +0 -1
  790. package/dist/server/app-page-segment-state.js.map +0 -1
  791. package/dist/server/app-page-stream.js.map +0 -1
  792. package/dist/server/app-post-middleware-context.js.map +0 -1
  793. package/dist/server/app-prerender-endpoints.js.map +0 -1
  794. package/dist/server/app-prerender-static-params.js.map +0 -1
  795. package/dist/server/app-render-dependency.js.map +0 -1
  796. package/dist/server/app-request-context.js.map +0 -1
  797. package/dist/server/app-route-handler-cache.js.map +0 -1
  798. package/dist/server/app-route-handler-dispatch.js.map +0 -1
  799. package/dist/server/app-route-handler-execution.js.map +0 -1
  800. package/dist/server/app-route-handler-policy.js.map +0 -1
  801. package/dist/server/app-route-handler-response.js.map +0 -1
  802. package/dist/server/app-route-handler-runtime.js.map +0 -1
  803. package/dist/server/app-router-entry.js.map +0 -1
  804. package/dist/server/app-rsc-cache-busting.js.map +0 -1
  805. package/dist/server/app-rsc-embedded-chunks.js.map +0 -1
  806. package/dist/server/app-rsc-error-handler.js.map +0 -1
  807. package/dist/server/app-rsc-errors.js.map +0 -1
  808. package/dist/server/app-rsc-handler.js.map +0 -1
  809. package/dist/server/app-rsc-render-mode.js.map +0 -1
  810. package/dist/server/app-rsc-request-normalization.js.map +0 -1
  811. package/dist/server/app-rsc-response-finalizer.js.map +0 -1
  812. package/dist/server/app-rsc-route-matching.js.map +0 -1
  813. package/dist/server/app-segment-config.js.map +0 -1
  814. package/dist/server/app-server-action-execution.js.map +0 -1
  815. package/dist/server/app-ssr-entry.js.map +0 -1
  816. package/dist/server/app-ssr-error-meta.js.map +0 -1
  817. package/dist/server/app-ssr-stream.js.map +0 -1
  818. package/dist/server/app-static-generation.js.map +0 -1
  819. package/dist/server/artifact-compatibility.js.map +0 -1
  820. package/dist/server/cache-control.js.map +0 -1
  821. package/dist/server/cache-headers.js.map +0 -1
  822. package/dist/server/cache-proof.js.map +0 -1
  823. package/dist/server/client-reuse-manifest.js.map +0 -1
  824. package/dist/server/client-trace-metadata.js.map +0 -1
  825. package/dist/server/cookie-utils.js.map +0 -1
  826. package/dist/server/csp.js.map +0 -1
  827. package/dist/server/default-global-error-module.js.map +0 -1
  828. package/dist/server/default-not-found-module.js.map +0 -1
  829. package/dist/server/dev-error-overlay-store.js.map +0 -1
  830. package/dist/server/dev-error-overlay.js.map +0 -1
  831. package/dist/server/dev-lockfile.js.map +0 -1
  832. package/dist/server/dev-module-runner.js.map +0 -1
  833. package/dist/server/dev-origin-check.js.map +0 -1
  834. package/dist/server/dev-route-files.js.map +0 -1
  835. package/dist/server/dev-server.js.map +0 -1
  836. package/dist/server/edge-api-runtime.js.map +0 -1
  837. package/dist/server/file-based-metadata.js.map +0 -1
  838. package/dist/server/headers.js.map +0 -1
  839. package/dist/server/html.js.map +0 -1
  840. package/dist/server/http-error-responses.js.map +0 -1
  841. package/dist/server/image-optimization.js.map +0 -1
  842. package/dist/server/implicit-tags.js.map +0 -1
  843. package/dist/server/instrumentation-runtime.js.map +0 -1
  844. package/dist/server/instrumentation.js.map +0 -1
  845. package/dist/server/isr-cache.js.map +0 -1
  846. package/dist/server/metadata-route-build-data.js.map +0 -1
  847. package/dist/server/metadata-route-response.js.map +0 -1
  848. package/dist/server/metadata-routes.js.map +0 -1
  849. package/dist/server/middleware-matcher.js.map +0 -1
  850. package/dist/server/middleware-request-headers.js.map +0 -1
  851. package/dist/server/middleware-response-headers.js.map +0 -1
  852. package/dist/server/middleware-runtime.js.map +0 -1
  853. package/dist/server/middleware.js.map +0 -1
  854. package/dist/server/navigation-planner.js.map +0 -1
  855. package/dist/server/navigation-trace.js.map +0 -1
  856. package/dist/server/next-error-digest.js.map +0 -1
  857. package/dist/server/normalize-path.js.map +0 -1
  858. package/dist/server/pages-api-route.js.map +0 -1
  859. package/dist/server/pages-body-parser-config.js.map +0 -1
  860. package/dist/server/pages-data-route.js.map +0 -1
  861. package/dist/server/pages-default-404.js.map +0 -1
  862. package/dist/server/pages-document-initial-props.js.map +0 -1
  863. package/dist/server/pages-i18n.js.map +0 -1
  864. package/dist/server/pages-media-type.js.map +0 -1
  865. package/dist/server/pages-node-compat.js.map +0 -1
  866. package/dist/server/pages-page-data.js.map +0 -1
  867. package/dist/server/pages-page-method.js.map +0 -1
  868. package/dist/server/pages-page-response.js.map +0 -1
  869. package/dist/server/pages-serializable-props.js.map +0 -1
  870. package/dist/server/prerender-route-params.js.map +0 -1
  871. package/dist/server/prerender-work-unit-setup.js.map +0 -1
  872. package/dist/server/prod-server.js.map +0 -1
  873. package/dist/server/proxy-trust.js.map +0 -1
  874. package/dist/server/request-log.js.map +0 -1
  875. package/dist/server/request-pipeline.js.map +0 -1
  876. package/dist/server/rsc-stream-hints.js.map +0 -1
  877. package/dist/server/seed-cache.js.map +0 -1
  878. package/dist/server/server-action-not-found.js.map +0 -1
  879. package/dist/server/server-globals.js.map +0 -1
  880. package/dist/server/skip-cache-proof.js.map +0 -1
  881. package/dist/server/socket-error-backstop.js.map +0 -1
  882. package/dist/server/static-file-cache.js.map +0 -1
  883. package/dist/server/streaming-metadata.js.map +0 -1
  884. package/dist/server/worker-utils.js.map +0 -1
  885. package/dist/shims/amp.js.map +0 -1
  886. package/dist/shims/app-router-scroll-state.js.map +0 -1
  887. package/dist/shims/app-router-scroll.js.map +0 -1
  888. package/dist/shims/app.js.map +0 -1
  889. package/dist/shims/before-interactive-context.js.map +0 -1
  890. package/dist/shims/cache-for-request.js.map +0 -1
  891. package/dist/shims/cache-runtime.js.map +0 -1
  892. package/dist/shims/cache.js.map +0 -1
  893. package/dist/shims/client-hook-error.js.map +0 -1
  894. package/dist/shims/client-locale.js.map +0 -1
  895. package/dist/shims/compat-router.js.map +0 -1
  896. package/dist/shims/config.js.map +0 -1
  897. package/dist/shims/constants.js.map +0 -1
  898. package/dist/shims/default-global-error.js.map +0 -1
  899. package/dist/shims/default-not-found.js.map +0 -1
  900. package/dist/shims/document.js.map +0 -1
  901. package/dist/shims/dynamic.js.map +0 -1
  902. package/dist/shims/error-boundary.js.map +0 -1
  903. package/dist/shims/error.js.map +0 -1
  904. package/dist/shims/fetch-cache.js.map +0 -1
  905. package/dist/shims/font-google-base.js.map +0 -1
  906. package/dist/shims/font-local.js.map +0 -1
  907. package/dist/shims/font-utils.js.map +0 -1
  908. package/dist/shims/form.js.map +0 -1
  909. package/dist/shims/hash-scroll.js.map +0 -1
  910. package/dist/shims/head-state.js.map +0 -1
  911. package/dist/shims/head.js.map +0 -1
  912. package/dist/shims/headers.js.map +0 -1
  913. package/dist/shims/i18n-context.js.map +0 -1
  914. package/dist/shims/i18n-state.js.map +0 -1
  915. package/dist/shims/image-config.js.map +0 -1
  916. package/dist/shims/image.js.map +0 -1
  917. package/dist/shims/internal/als-registry.js.map +0 -1
  918. package/dist/shims/internal/app-route-detection.js.map +0 -1
  919. package/dist/shims/internal/app-router-context.js.map +0 -1
  920. package/dist/shims/internal/cookie-serialize.js.map +0 -1
  921. package/dist/shims/internal/make-hanging-promise.js.map +0 -1
  922. package/dist/shims/internal/pages-data-target.js.map +0 -1
  923. package/dist/shims/internal/pages-data-url.js.map +0 -1
  924. package/dist/shims/internal/parse-cookie-header.js.map +0 -1
  925. package/dist/shims/internal/router-context.js.map +0 -1
  926. package/dist/shims/internal/utils.js.map +0 -1
  927. package/dist/shims/internal/work-unit-async-storage.js.map +0 -1
  928. package/dist/shims/layout-segment-context.js.map +0 -1
  929. package/dist/shims/legacy-image.js.map +0 -1
  930. package/dist/shims/link-prefetch.js.map +0 -1
  931. package/dist/shims/link.js.map +0 -1
  932. package/dist/shims/metadata.js.map +0 -1
  933. package/dist/shims/navigation-state.js.map +0 -1
  934. package/dist/shims/navigation.js.map +0 -1
  935. package/dist/shims/navigation.react-server.js.map +0 -1
  936. package/dist/shims/offline.js.map +0 -1
  937. package/dist/shims/og.js.map +0 -1
  938. package/dist/shims/pages-router-runtime.js.map +0 -1
  939. package/dist/shims/readonly-url-search-params.js.map +0 -1
  940. package/dist/shims/request-context.js.map +0 -1
  941. package/dist/shims/root-params.js.map +0 -1
  942. package/dist/shims/router-state.js.map +0 -1
  943. package/dist/shims/router.js.map +0 -1
  944. package/dist/shims/script-nonce-context.js.map +0 -1
  945. package/dist/shims/script.js.map +0 -1
  946. package/dist/shims/server.js.map +0 -1
  947. package/dist/shims/slot.js.map +0 -1
  948. package/dist/shims/thenable-params.js.map +0 -1
  949. package/dist/shims/unified-request-context.js.map +0 -1
  950. package/dist/shims/unrecognized-action-error.js.map +0 -1
  951. package/dist/shims/url-safety.js.map +0 -1
  952. package/dist/shims/url-utils.js.map +0 -1
  953. package/dist/shims/use-merged-ref.js.map +0 -1
  954. package/dist/shims/web-vitals.js.map +0 -1
  955. package/dist/typegen.js.map +0 -1
  956. package/dist/utils/asset-prefix.js.map +0 -1
  957. package/dist/utils/base-path.js.map +0 -1
  958. package/dist/utils/cache-control-metadata.js.map +0 -1
  959. package/dist/utils/domain-locale.js.map +0 -1
  960. package/dist/utils/encode-cache-tag.js.map +0 -1
  961. package/dist/utils/error-cause.js.map +0 -1
  962. package/dist/utils/hash.js.map +0 -1
  963. package/dist/utils/html-limited-bots.js.map +0 -1
  964. package/dist/utils/lazy-chunks.js.map +0 -1
  965. package/dist/utils/manifest-paths.js.map +0 -1
  966. package/dist/utils/mdx-scan.js.map +0 -1
  967. package/dist/utils/navigation-signal.js.map +0 -1
  968. package/dist/utils/path.js.map +0 -1
  969. package/dist/utils/prerender-output-paths.js.map +0 -1
  970. package/dist/utils/project.js.map +0 -1
  971. package/dist/utils/public-routes.js.map +0 -1
  972. package/dist/utils/query.js.map +0 -1
  973. package/dist/utils/record.js.map +0 -1
  974. package/dist/utils/safe-json-file.js.map +0 -1
  975. package/dist/utils/sorted-array.js.map +0 -1
  976. package/dist/utils/text-stream.js.map +0 -1
  977. package/dist/utils/vinext-root.js.map +0 -1
@@ -1,10 +1,13 @@
1
1
  import { ClassificationReason } from "../build/layout-classification-types.js";
2
2
  import { CachedAppPageValue } from "../shims/cache.js";
3
+ import { ClientReuseManifestParseResult } from "./client-reuse-manifest.js";
3
4
  import { AppOutgoingElements } from "./app-elements-wire.js";
5
+ import { NavigationContext } from "../shims/navigation.js";
4
6
  import { AppPageFontPreload, LayoutClassificationOptions } from "./app-page-execution.js";
5
7
  import { AppPageMiddlewareContext } from "./app-page-response.js";
6
8
  import { RootParams } from "../shims/root-params.js";
7
9
  import { AppPageSsrHandler } from "./app-page-stream.js";
10
+ import { AppLayoutParamAccessTracker } from "./app-layout-param-observation.js";
8
11
  import { AppRscRenderMode } from "./app-rsc-render-mode.js";
9
12
  import { ISRCacheEntry } from "./isr-cache.js";
10
13
  import { FetchCacheMode } from "../shims/fetch-cache.js";
@@ -45,6 +48,8 @@ type AppPageDispatchInterceptOptions<TPage = unknown> = {
45
48
  };
46
49
  type AppPageModule = {
47
50
  default?: unknown;
51
+ dynamic?: unknown;
52
+ revalidate?: unknown;
48
53
  };
49
54
  type AppPageDispatchRoute = {
50
55
  __buildTimeClassifications?: LayoutClassificationOptions["buildTimeClassifications"];
@@ -73,14 +78,22 @@ type DispatchAppPageOptions<TRoute extends AppPageDispatchRoute> = {
73
78
  * SSR head. Undefined or empty disables emission entirely.
74
79
  */
75
80
  clientTraceMetadata?: readonly string[];
76
- buildPageElement: (route: TRoute, params: AppPageParams, opts: AppPageDispatchInterceptOptions | undefined, searchParams: URLSearchParams) => Promise<AppPageElement>;
81
+ buildPageElement: (route: TRoute, params: AppPageParams, opts: AppPageDispatchInterceptOptions | undefined, searchParams: URLSearchParams, layoutParamAccess?: AppLayoutParamAccessTracker) => Promise<AppPageElement>;
82
+ clientReuseManifest?: ClientReuseManifestParseResult;
77
83
  cleanPathname: string;
78
84
  clearRequestContext: () => void;
79
85
  createRscOnErrorHandler: (pathname: string, routePath: string) => AppPageBoundaryOnError;
80
86
  debugClassification?: (layoutId: string, reason: ClassificationReason) => void;
81
87
  draftModeSecret: string;
82
88
  dynamicConfig?: string;
89
+ dynamicStaleTimeSeconds?: number;
83
90
  dynamicParamsConfig?: boolean;
91
+ /**
92
+ * Hydrate a source route's lazy page/route-handler modules before reading
93
+ * `route.page` (e.g. for fetch-cache-mode resolution) on intercept and ISR
94
+ * revalidation targets obtained via `getSourceRoute`. Idempotent.
95
+ */
96
+ ensureRouteLoaded?: (route: TRoute) => unknown;
84
97
  fetchCache?: FetchCacheMode | null;
85
98
  findIntercept: (pathname: string) => AppPageDispatchIntercept | null;
86
99
  formState?: ReactFormState | null;
@@ -90,12 +103,13 @@ type DispatchAppPageOptions<TRoute extends AppPageDispatchRoute> = {
90
103
  getFontLinks: () => string[];
91
104
  getFontPreloads: () => AppPageFontPreload[];
92
105
  getFontStyles: () => string[];
93
- getNavigationContext: () => unknown;
106
+ getNavigationContext: () => NavigationContext | null;
94
107
  getSourceRoute: (sourceRouteIndex: number) => TRoute | undefined;
95
108
  hasGenerateStaticParams: boolean;
96
109
  hasPageDefaultExport: boolean;
97
110
  hasPageModule: boolean;
98
111
  handlerStart: number;
112
+ htmlLimitedBots?: string;
99
113
  interceptionContext: string | null;
100
114
  isEdgeRuntime?: boolean;
101
115
  isProgressiveActionRender?: boolean;
@@ -112,12 +126,13 @@ type DispatchAppPageOptions<TRoute extends AppPageDispatchRoute> = {
112
126
  params: AppPageParams;
113
127
  staticParamsValidationParams?: AppPageParams;
114
128
  rootParams?: RootParams;
115
- probeLayoutAt: (layoutIndex: number) => unknown;
129
+ probeLayoutAt: (layoutIndex: number, layoutParamAccess?: AppLayoutParamAccessTracker) => unknown;
116
130
  probePage: () => unknown;
117
131
  expireSeconds?: number;
118
132
  renderErrorBoundaryPage: (error: unknown) => Promise<Response | null>;
119
133
  renderHttpAccessFallbackPage: (statusCode: number, opts: {
120
134
  boundaryComponent?: unknown;
135
+ boundaryModule?: AppPageModule | null;
121
136
  layouts?: readonly AppPageModule[];
122
137
  matchedParams: AppPageParams;
123
138
  }, middlewareContext: AppPageMiddlewareContext | null) => Promise<Response | null>;
@@ -144,5 +159,4 @@ type DispatchAppPageOptions<TRoute extends AppPageDispatchRoute> = {
144
159
  };
145
160
  declare function dispatchAppPage<TRoute extends AppPageDispatchRoute>(options: DispatchAppPageOptions<TRoute>): Promise<Response>;
146
161
  //#endregion
147
- export { dispatchAppPage };
148
- //# sourceMappingURL=app-page-dispatch.d.ts.map
162
+ export { dispatchAppPage };
@@ -7,17 +7,20 @@ import { shouldSuppressLoadingBoundaries } from "./app-rsc-render-mode.js";
7
7
  import "./app-elements.js";
8
8
  import { consumeDynamicFetchObservations, ensureFetchPatch, getCollectedFetchTags, peekDynamicFetchObservations, runWithFetchDedupe, setCurrentFetchCacheMode, setCurrentFetchSoftTags } from "../shims/fetch-cache.js";
9
9
  import { VINEXT_RSC_CONTENT_TYPE, VINEXT_RSC_VARY_HEADER, applyRscCompatibilityIdHeader } from "./app-rsc-cache-busting.js";
10
- import { createAppPageTreePath } from "./app-page-route-wiring.js";
11
10
  import { readStreamAsText } from "../utils/text-stream.js";
12
11
  import { mergeMiddlewareResponseHeaders } from "./middleware-response-headers.js";
13
12
  import "./app-page-response.js";
14
13
  import { buildAppPageSpecialErrorResponse, resolveAppPageSpecialError, teeAppPageRscStreamForCapture } from "./app-page-execution.js";
15
- import { resolveAppPageParentHttpAccessBoundary, resolveAppPageParentHttpAccessBoundaryModule } from "./app-page-boundary.js";
14
+ import { createAppPageTreePath } from "./app-page-route-wiring.js";
16
15
  import { createAppPageHtmlOutputScope, createAppPageRenderObservation, createAppPageRscOutputScope } from "./app-page-render-observation.js";
17
16
  import { readAppPageCacheResponse } from "./app-page-cache.js";
17
+ import { resolveAppPageParentHttpAccessBoundary, resolveAppPageParentHttpAccessBoundaryModule } from "./app-page-boundary.js";
18
+ import { isAppSsrRenderResult } from "./app-page-stream.js";
19
+ import { createAppLayoutParamAccessTracker, isAppLayoutObservationUnsafeForStaticReuse } from "./app-layout-param-observation.js";
18
20
  import { resolveAppPageMethodResponse } from "./app-page-method.js";
19
21
  import { buildAppPageElement, resolveAppPageIntercept, resolveAppPageInterceptionRerenderTarget, validateAppPageDynamicParams } from "./app-page-request.js";
20
22
  import { renderAppPageLifecycle } from "./app-page-render.js";
23
+ import { shouldServeStreamingMetadata } from "./streaming-metadata.js";
21
24
  import { createStaticGenerationHeadersContext } from "./app-static-generation.js";
22
25
  import { buildPageCacheTags } from "./implicit-tags.js";
23
26
  import React from "react";
@@ -28,9 +31,81 @@ function resolveAppPageRouteBoundaryModule(route, statusCode) {
28
31
  if (statusCode === 404) return route.notFound ?? null;
29
32
  return null;
30
33
  }
34
+ /**
35
+ * Request-time counterpart to the build-time `classifyLayoutSegmentConfig`
36
+ * (`build/report.ts`). Both classify a layout by its `dynamic`/`revalidate`
37
+ * segment config and agree on the shared cases (the build-time version
38
+ * normalizes `revalidate = false` to `Infinity` upstream, so both treat it as
39
+ * static); keep them aligned when either changes.
40
+ *
41
+ * The meaningful difference is scope, not logic: this request-time pass reads
42
+ * the resolved module value, so it classifies layouts that were never captured
43
+ * at build time (e.g. dev mode). Its result is merged on top of the build-time
44
+ * classification map in `createEffectiveLayoutClassifications`, so such layouts
45
+ * are classified here where they previously were not.
46
+ */
47
+ function classifyLayoutSegmentConfigFromModule(layout) {
48
+ if (!layout) return null;
49
+ switch (layout.dynamic) {
50
+ case "force-dynamic": return {
51
+ kind: "dynamic",
52
+ reason: {
53
+ layer: "segment-config",
54
+ key: "dynamic",
55
+ value: "force-dynamic"
56
+ }
57
+ };
58
+ case "force-static":
59
+ case "error": return {
60
+ kind: "static",
61
+ reason: {
62
+ layer: "segment-config",
63
+ key: "dynamic",
64
+ value: layout.dynamic
65
+ }
66
+ };
67
+ }
68
+ if (layout.revalidate === false || layout.revalidate === Infinity) return {
69
+ kind: "static",
70
+ reason: {
71
+ layer: "segment-config",
72
+ key: "revalidate",
73
+ value: Infinity
74
+ }
75
+ };
76
+ if (layout.revalidate === 0) return {
77
+ kind: "dynamic",
78
+ reason: {
79
+ layer: "segment-config",
80
+ key: "revalidate",
81
+ value: 0
82
+ }
83
+ };
84
+ return null;
85
+ }
86
+ function createEffectiveLayoutClassifications(route, includeReasons) {
87
+ const classifications = new Map(route.__buildTimeClassifications ?? []);
88
+ const reasons = includeReasons ? new Map(route.__buildTimeReasons ?? []) : null;
89
+ for (let index = 0; index < route.layouts.length; index++) {
90
+ const classification = classifyLayoutSegmentConfigFromModule(route.layouts[index]);
91
+ if (classification === null) continue;
92
+ classifications.set(index, classification.kind);
93
+ reasons?.set(index, classification.reason);
94
+ }
95
+ return {
96
+ buildTimeClassifications: classifications.size > 0 ? classifications : null,
97
+ buildTimeReasons: reasons && reasons.size > 0 ? reasons : null
98
+ };
99
+ }
100
+ function getEffectiveLayoutClassifications(route, debugClassification) {
101
+ return createEffectiveLayoutClassifications(route, debugClassification !== void 0);
102
+ }
31
103
  function shouldReadAppPageCache(options) {
32
104
  return options.isProduction && !options.isProgressiveActionRender && !options.isDraftMode && !options.isForceDynamic && (options.isRscRequest || !options.scriptNonce) && (options.revalidateSeconds === null || options.revalidateSeconds > 0);
33
105
  }
106
+ function hasSearchParams(searchParams) {
107
+ return searchParams !== null && searchParams !== void 0 && searchParams.size > 0;
108
+ }
34
109
  function buildAppPageTags(cleanPathname, extraTags, routeSegments) {
35
110
  return buildPageCacheTags(cleanPathname, extraTags, [...routeSegments], "page");
36
111
  }
@@ -82,6 +157,7 @@ async function dispatchAppPageInner(options) {
82
157
  const isDynamicError = dynamicConfig === "error";
83
158
  const isForceDynamic = dynamicConfig === "force-dynamic";
84
159
  const isDraftMode = isDraftModeRequest(options.request, options.draftModeSecret);
160
+ const layoutParamAccess = createAppLayoutParamAccessTracker();
85
161
  setCurrentFetchSoftTags(buildAppPageTags(options.cleanPathname, [], route.routeSegments));
86
162
  setCurrentFetchCacheMode(options.fetchCache ?? null);
87
163
  if (options.hasPageModule && !options.hasPageDefaultExport) {
@@ -125,6 +201,7 @@ async function dispatchAppPageInner(options) {
125
201
  const cachedPageResponse = await readAppPageCacheResponse({
126
202
  cleanPathname: options.cleanPathname,
127
203
  clearRequestContext: options.clearRequestContext,
204
+ hasRequestSearchParams: !isForceStatic && hasSearchParams(options.searchParams),
128
205
  isEdgeRuntime: options.isEdgeRuntime,
129
206
  isRscRequest: options.isRscRequest,
130
207
  isrDebug: options.isrDebug,
@@ -156,6 +233,7 @@ async function dispatchAppPageInner(options) {
156
233
  return toInterceptOptions(options.interceptionContext, intercept);
157
234
  }
158
235
  });
236
+ await options.ensureRouteLoaded?.(revalidationTarget.route);
159
237
  return runAppPageRevalidationContext({
160
238
  cleanPathname: options.cleanPathname,
161
239
  currentFetchCacheMode: options.resolveRouteFetchCacheMode?.(revalidationTarget.route) ?? (revalidationTarget.route === route ? options.fetchCache ?? null : null),
@@ -171,7 +249,7 @@ async function dispatchAppPageInner(options) {
171
249
  const revalidatedRscCapture = teeAppPageRscStreamForCapture(options.renderToReadableStream(revalidatedElement, { onError: revalidatedOnError }), true);
172
250
  const revalidatedSsrEntry = await options.loadSsrHandler();
173
251
  const revalidatedCapturedRscRef = { value: null };
174
- const html = await readStreamAsText(await revalidatedSsrEntry.handleSsr(revalidatedRscCapture.ssrStream, options.getNavigationContext(), {
252
+ const revalidatedHtmlResult = await revalidatedSsrEntry.handleSsr(revalidatedRscCapture.ssrStream, options.getNavigationContext(), {
175
253
  links: options.getFontLinks(),
176
254
  styles: options.getFontStyles(),
177
255
  preloads: options.getFontPreloads()
@@ -179,11 +257,13 @@ async function dispatchAppPageInner(options) {
179
257
  basePath: options.basePath,
180
258
  clientTraceMetadata: options.clientTraceMetadata,
181
259
  rootParams: options.rootParams,
260
+ waitForAllReady: true,
182
261
  ...revalidatedRscCapture.sideStream ? {
183
262
  sideStream: revalidatedRscCapture.sideStream,
184
263
  capturedRscDataRef: revalidatedCapturedRscRef
185
264
  } : {}
186
- }));
265
+ });
266
+ const html = await readStreamAsText(isAppSsrRenderResult(revalidatedHtmlResult) ? revalidatedHtmlResult.htmlStream : revalidatedHtmlResult);
187
267
  const rscData = await getCapturedRscDataPromise(revalidatedCapturedRscRef.value);
188
268
  const cacheLife = _consumeRequestScopedCacheLife();
189
269
  options.clearRequestContext();
@@ -253,9 +333,10 @@ async function dispatchAppPageInner(options) {
253
333
  });
254
334
  if (dynamicParamsResponse) return dynamicParamsResponse;
255
335
  const interceptResult = await resolveAppPageIntercept({
256
- buildPageElement(interceptRoute, interceptParams, interceptOpts, interceptSearchParams) {
336
+ async buildPageElement(interceptRoute, interceptParams, interceptOpts, interceptSearchParams, interceptLayoutParamAccess) {
337
+ await options.ensureRouteLoaded?.(interceptRoute);
257
338
  setCurrentFetchCacheMode(options.resolveRouteFetchCacheMode?.(interceptRoute) ?? null);
258
- return options.buildPageElement(interceptRoute, interceptParams, interceptOpts, interceptSearchParams);
339
+ return options.buildPageElement(interceptRoute, interceptParams, interceptOpts, interceptSearchParams, interceptLayoutParamAccess);
259
340
  },
260
341
  cleanPathname: options.cleanPathname,
261
342
  currentRoute: route,
@@ -269,6 +350,7 @@ async function dispatchAppPageInner(options) {
269
350
  return options.getSourceRoute(sourceRouteIndex);
270
351
  },
271
352
  isRscRequest: options.isRscRequest,
353
+ layoutParamAccess,
272
354
  renderInterceptResponse(sourceRoute, interceptElement) {
273
355
  const interceptOnError = options.createRscOnErrorHandler(options.cleanPathname, sourceRoute.pattern);
274
356
  const interceptStream = options.renderToReadableStream(interceptElement, { onError: interceptOnError });
@@ -293,7 +375,7 @@ async function dispatchAppPageInner(options) {
293
375
  const pageBuildResult = await buildAppPageElement({
294
376
  buildPageElement() {
295
377
  if (options.actionFailed) throw options.actionError;
296
- return options.buildPageElement(route, options.params, interceptResult.interceptOpts, options.searchParams);
378
+ return options.buildPageElement(route, options.params, interceptResult.interceptOpts, options.searchParams, layoutParamAccess);
297
379
  },
298
380
  renderErrorBoundaryPage(buildError) {
299
381
  return options.renderErrorBoundaryPage(buildError);
@@ -304,6 +386,7 @@ async function dispatchAppPageInner(options) {
304
386
  resolveSpecialError: resolveAppPageSpecialError
305
387
  });
306
388
  if (pageBuildResult.response) return pageBuildResult.response;
389
+ const layoutClassifications = getEffectiveLayoutClassifications(route, options.debugClassification);
307
390
  return renderAppPageLifecycle({
308
391
  basePath: options.basePath,
309
392
  clientTraceMetadata: options.clientTraceMetadata,
@@ -321,6 +404,7 @@ async function dispatchAppPageInner(options) {
321
404
  return options.createRscOnErrorHandler(pathname, routePath);
322
405
  },
323
406
  element: pageBuildResult.element,
407
+ clientReuseManifest: options.clientReuseManifest,
324
408
  getDraftModeCookieHeader,
325
409
  getFontLinks: options.getFontLinks,
326
410
  getFontPreloads: options.getFontPreloads,
@@ -357,6 +441,7 @@ async function dispatchAppPageInner(options) {
357
441
  loadSsrHandler: options.loadSsrHandler,
358
442
  middlewareContext: options.middlewareContext,
359
443
  params: options.params,
444
+ layoutParamAccess,
360
445
  rootParams: options.rootParams,
361
446
  peekRenderObservationState() {
362
447
  return {
@@ -365,7 +450,7 @@ async function dispatchAppPageInner(options) {
365
450
  };
366
451
  },
367
452
  probeLayoutAt(layoutIndex) {
368
- return options.probeLayoutAt(layoutIndex);
453
+ return options.probeLayoutAt(layoutIndex, layoutParamAccess);
369
454
  },
370
455
  probePage() {
371
456
  return options.probePage();
@@ -375,9 +460,12 @@ async function dispatchAppPageInner(options) {
375
460
  const treePosition = route.layoutTreePositions?.[index] ?? 0;
376
461
  return AppElementsWire.encodeLayoutId(createAppPageTreePath([...route.routeSegments], treePosition));
377
462
  },
378
- buildTimeClassifications: route.__buildTimeClassifications,
379
- buildTimeReasons: route.__buildTimeReasons,
463
+ buildTimeClassifications: layoutClassifications.buildTimeClassifications,
464
+ buildTimeReasons: layoutClassifications.buildTimeReasons,
380
465
  debugClassification: options.debugClassification,
466
+ isLayoutObservationDynamic(layoutId) {
467
+ return isAppLayoutObservationUnsafeForStaticReuse(layoutParamAccess.getLayoutObservation(layoutId));
468
+ },
381
469
  async runWithIsolatedDynamicScope(fn) {
382
470
  const priorDynamic = consumeDynamicUsage();
383
471
  try {
@@ -391,6 +479,7 @@ async function dispatchAppPageInner(options) {
391
479
  }
392
480
  }
393
481
  },
482
+ dynamicStaleTimeSeconds: options.dynamicStaleTimeSeconds,
394
483
  revalidateSeconds: currentRevalidateSeconds,
395
484
  mountedSlotsHeader: options.mountedSlotsHeader,
396
485
  renderMode: options.renderMode ?? "navigation",
@@ -443,11 +532,12 @@ async function renderLayoutSpecialError(options, specialError, layoutIndex) {
443
532
  buildRscRedirectFlightStream: (rscOptions) => buildRscRedirectFlightStream(options, rscOptions.digest),
444
533
  clearRequestContext: options.clearRequestContext,
445
534
  getAndClearPendingCookies,
535
+ serveStreamingMetadata: shouldServeStreamingMetadata(options.request.headers.get("user-agent") ?? "", options.htmlLimitedBots),
446
536
  isEdgeRuntime: options.isEdgeRuntime,
447
537
  isRscRequest: options.isRscRequest,
448
538
  middlewareContext: options.middlewareContext,
449
539
  renderFallbackPage(statusCode) {
450
- const parentBoundary = resolveAppPageParentHttpAccessBoundaryModule({
540
+ const parentBoundaryModule = resolveAppPageParentHttpAccessBoundaryModule({
451
541
  layoutIndex,
452
542
  rootForbiddenModule: options.rootForbiddenModule,
453
543
  rootNotFoundModule: options.rootNotFoundModule,
@@ -456,12 +546,16 @@ async function renderLayoutSpecialError(options, specialError, layoutIndex) {
456
546
  routeNotFoundModules: options.route.notFounds,
457
547
  routeUnauthorizedModules: options.route.unauthorizeds,
458
548
  statusCode
459
- })?.default;
460
- return options.renderHttpAccessFallbackPage(statusCode, {
461
- boundaryComponent: parentBoundary,
549
+ });
550
+ const fallbackOptions = {
462
551
  layouts: options.route.layouts.slice(0, layoutIndex),
463
552
  matchedParams: options.params
464
- }, null);
553
+ };
554
+ if (parentBoundaryModule) {
555
+ fallbackOptions.boundaryComponent = parentBoundaryModule.default;
556
+ fallbackOptions.boundaryModule = parentBoundaryModule;
557
+ }
558
+ return options.renderHttpAccessFallbackPage(statusCode, fallbackOptions, null);
465
559
  },
466
560
  request: options.request,
467
561
  specialError
@@ -473,6 +567,7 @@ async function renderPageSpecialError(options, specialError) {
473
567
  buildRscRedirectFlightStream: (rscOptions) => buildRscRedirectFlightStream(options, rscOptions.digest),
474
568
  clearRequestContext: options.clearRequestContext,
475
569
  getAndClearPendingCookies,
570
+ serveStreamingMetadata: shouldServeStreamingMetadata(options.request.headers.get("user-agent") ?? "", options.htmlLimitedBots),
476
571
  isEdgeRuntime: options.isEdgeRuntime,
477
572
  isRscRequest: options.isRscRequest,
478
573
  middlewareContext: options.middlewareContext,
@@ -490,13 +585,15 @@ async function renderPageSpecialError(options, specialError) {
490
585
  statusCode
491
586
  });
492
587
  const useLayoutAlignedBoundary = boundaryLayoutIndex !== null && (routeBoundaryModule === null || routeBoundaryModule === parentBoundaryModule);
493
- const boundaryComponent = useLayoutAlignedBoundary ? parentBoundaryModule?.default ?? void 0 : void 0;
494
- const layoutsForBoundary = useLayoutAlignedBoundary && boundaryLayoutIndex !== null ? options.route.layouts.slice(0, boundaryLayoutIndex + 1) : void 0;
495
- return options.renderHttpAccessFallbackPage(statusCode, {
496
- boundaryComponent,
497
- layouts: layoutsForBoundary,
498
- matchedParams: options.params
499
- }, null);
588
+ const fallbackOptions = { matchedParams: options.params };
589
+ if (useLayoutAlignedBoundary && boundaryLayoutIndex !== null) {
590
+ fallbackOptions.layouts = options.route.layouts.slice(0, boundaryLayoutIndex + 1);
591
+ if (parentBoundaryModule) {
592
+ fallbackOptions.boundaryComponent = parentBoundaryModule.default;
593
+ fallbackOptions.boundaryModule = parentBoundaryModule;
594
+ }
595
+ }
596
+ return options.renderHttpAccessFallbackPage(statusCode, fallbackOptions, null);
500
597
  },
501
598
  request: options.request,
502
599
  specialError
@@ -504,5 +601,3 @@ async function renderPageSpecialError(options, specialError) {
504
601
  }
505
602
  //#endregion
506
603
  export { dispatchAppPage };
507
-
508
- //# sourceMappingURL=app-page-dispatch.js.map
@@ -1,6 +1,7 @@
1
1
  import { MetadataFileRoute } from "./metadata-routes.js";
2
2
  import { AppElements } from "./app-elements-wire.js";
3
3
  import { AppPageParams } from "./app-page-boundary.js";
4
+ import { AppLayoutParamAccessTracker } from "./app-layout-param-observation.js";
4
5
  import { AppRscRenderMode } from "./app-rsc-render-mode.js";
5
6
  import { AppPageErrorModule, AppPageModule, AppPageRouteWiringRoute } from "./app-page-route-wiring.js";
6
7
 
@@ -42,6 +43,7 @@ type BuildPageElementsOptions<TModule extends AppPageModule = AppPageModule, TEr
42
43
  rootForbiddenModule?: TModule | null; /** Root-level unauthorized.tsx module. Present when the app defines this file. */
43
44
  rootUnauthorizedModule?: TModule | null; /** File-based metadata routes (favicon, manifest, sitemap, etc.). */
44
45
  metadataRoutes: readonly MetadataFileRoute[];
46
+ layoutParamAccess?: AppLayoutParamAccessTracker;
45
47
  /**
46
48
  * Configured next.config `basePath`. Threaded through `resolveAppPageHead`
47
49
  * so file-based metadata route URLs emitted in <head> are prefixed.
@@ -67,5 +69,4 @@ type BuildPageElementsOptions<TModule extends AppPageModule = AppPageModule, TEr
67
69
  */
68
70
  declare function buildPageElements<TModule extends AppPageModule = AppPageModule, TErrorModule extends AppPageErrorModule = AppPageErrorModule>(options: BuildPageElementsOptions<TModule, TErrorModule>): Promise<AppElements>;
69
71
  //#endregion
70
- export { AppPageBuildRoute, type AppPageErrorModule, AppPageInterceptOptions, AppPagePageRequest, type AppPageRouteWiringRoute, BuildPageElementsOptions, buildPageElements };
71
- //# sourceMappingURL=app-page-element-builder.d.ts.map
72
+ export { AppPageBuildRoute, type AppPageErrorModule, AppPageInterceptOptions, AppPagePageRequest, type AppPageRouteWiringRoute, BuildPageElementsOptions, buildPageElements };
@@ -1,12 +1,12 @@
1
1
  import { matchRoutePattern } from "../routing/route-pattern.js";
2
- import { markDynamicUsage, markRenderRequestApiUsage } from "../shims/headers.js";
3
2
  import { AppElementsWire } from "./app-elements-wire.js";
4
- import { APP_RSC_RENDER_MODE_NAVIGATION } from "./app-rsc-render-mode.js";
3
+ import { APP_RSC_RENDER_MODE_NAVIGATION, shouldSuppressLoadingBoundaries } from "./app-rsc-render-mode.js";
5
4
  import "./app-elements.js";
6
5
  import { createAppPageRenderIdentity } from "./app-page-render-identity.js";
7
6
  import { makeThenableParams } from "../shims/thenable-params.js";
8
- import { buildAppPageElements, createAppPageTreePath } from "./app-page-route-wiring.js";
9
7
  import { resolveActiveParallelRouteHeadInputs, resolveAppPageHead } from "./app-page-head.js";
8
+ import { makeObservedAppPageSearchParamsThenable } from "./app-page-search-params-observation.js";
9
+ import { buildAppPageElements, createAppPageTreePath } from "./app-page-route-wiring.js";
10
10
  import { DEFAULT_GLOBAL_ERROR_MODULE } from "./default-global-error-module.js";
11
11
  import { shouldServeStreamingMetadata } from "./streaming-metadata.js";
12
12
  import { createElement } from "react";
@@ -57,7 +57,7 @@ async function buildPageElements(options) {
57
57
  [renderIdentity.routeId]: createElement("div", null, "Page has no default export")
58
58
  };
59
59
  }
60
- const { hasSearchParams, hasDynamicMetadata, metadata: resolvedMetadata, pageSearchParams, viewport: resolvedViewport } = await resolveAppPageHead({
60
+ const { hasDynamicMetadata, metadata: resolvedMetadata, pageSearchParams, viewport: resolvedViewport } = await resolveAppPageHead({
61
61
  basePath: options.basePath ?? "",
62
62
  layoutModules: route.layouts,
63
63
  layoutTreePositions: route.layoutTreePositions,
@@ -78,12 +78,10 @@ async function buildPageElements(options) {
78
78
  searchParams
79
79
  });
80
80
  const pageProps = { params: makeThenableParams(params) };
81
+ let pageSearchParamsThenable;
81
82
  if (searchParams) {
82
- pageProps.searchParams = makeThenableParams(pageSearchParams);
83
- if (hasSearchParams) {
84
- markDynamicUsage();
85
- markRenderRequestApiUsage("searchParams");
86
- }
83
+ pageSearchParamsThenable = !shouldSuppressLoadingBoundaries(renderMode) && Boolean(route.loading?.default) ? makeObservedAppPageSearchParamsThenable(pageSearchParams) : makeThenableParams(pageSearchParams);
84
+ pageProps.searchParams = pageSearchParamsThenable;
87
85
  }
88
86
  const mountedSlotIds = mountedSlotsHeader ? new Set(mountedSlotsHeader.split(" ")) : null;
89
87
  const slotOverrides = buildSlotOverrides(route, params, routePath, opts);
@@ -92,6 +90,7 @@ async function buildPageElements(options) {
92
90
  element: PageComponent ? createElement(PageComponent, pageProps) : null,
93
91
  globalErrorModule: globalErrorModule ?? DEFAULT_GLOBAL_ERROR_MODULE,
94
92
  isRscRequest,
93
+ layoutParamAccess: options.layoutParamAccess,
95
94
  mountedSlotIds,
96
95
  makeThenableParams,
97
96
  matchedParams: params,
@@ -105,6 +104,7 @@ async function buildPageElements(options) {
105
104
  rootForbiddenModule: rootForbiddenModule ?? null,
106
105
  rootUnauthorizedModule: rootUnauthorizedModule ?? null,
107
106
  route,
107
+ searchParams: pageSearchParamsThenable,
108
108
  slotOverrides,
109
109
  renderMode
110
110
  });
@@ -158,5 +158,3 @@ function collectParamNameSet(params) {
158
158
  }
159
159
  //#endregion
160
160
  export { buildPageElements };
161
-
162
- //# sourceMappingURL=app-page-element-builder.js.map
@@ -72,6 +72,7 @@ type BuildAppPageSpecialErrorResponseOptions = {
72
72
  };
73
73
  renderFallbackPage?: (statusCode: number) => Promise<Response | null>;
74
74
  request: Request;
75
+ serveStreamingMetadata?: boolean;
75
76
  specialError: AppPageSpecialError;
76
77
  };
77
78
  type ProbeAppPageLayoutsResult = {
@@ -96,7 +97,12 @@ type LayoutClassificationOptions = {
96
97
  * active. When undefined, the probe loop skips debug emission entirely.
97
98
  */
98
99
  debugClassification?: (layoutId: string, reason: ClassificationReason) => void; /** Maps layout index to its layout ID (e.g. "layout:/blog"). */
99
- getLayoutId: (layoutIndex: number) => string; /** Runs a function with isolated dynamic usage tracking per layout. */
100
+ getLayoutId: (layoutIndex: number) => string;
101
+ /**
102
+ * Returns whether the completed per-layout observation makes static reuse
103
+ * unsafe even if the older dynamic scope did not report dynamic usage.
104
+ */
105
+ isLayoutObservationDynamic?: (layoutId: string) => boolean; /** Runs a function with isolated dynamic usage tracking per layout. */
100
106
  runWithIsolatedDynamicScope: <T>(fn: () => T) => Promise<{
101
107
  result: T;
102
108
  dynamicDetected: boolean;
@@ -124,5 +130,4 @@ declare function readAppPageBinaryStream(stream: ReadableStream<Uint8Array>): Pr
124
130
  declare function teeAppPageRscStreamForCapture(stream: ReadableStream<Uint8Array>, shouldCapture: boolean): AppPageRscStreamCapture;
125
131
  declare function buildAppPageFontLinkHeader(preloads: readonly AppPageFontPreload[] | null | undefined): string;
126
132
  //#endregion
127
- export { AppPageFontPreload, AppPageSpecialError, type ClassificationReason, LayoutClassificationOptions, type LayoutFlags, buildAppPageFontLinkHeader, buildAppPageSpecialErrorResponse, probeAppPageComponent, probeAppPageLayouts, readAppPageBinaryStream, resolveAppPageSpecialError, tagAppPageMetadataError, teeAppPageRscStreamForCapture };
128
- //# sourceMappingURL=app-page-execution.d.ts.map
133
+ export { AppPageFontPreload, AppPageSpecialError, LayoutClassificationOptions, type LayoutFlags, buildAppPageFontLinkHeader, buildAppPageSpecialErrorResponse, probeAppPageComponent, probeAppPageLayouts, readAppPageBinaryStream, resolveAppPageSpecialError, tagAppPageMetadataError, teeAppPageRscStreamForCapture };
@@ -4,6 +4,8 @@ import { VINEXT_RSC_CONTENT_TYPE, applyRscCompatibilityIdHeader, createRscRedire
4
4
  import { mergeMiddlewareResponseHeaders } from "./middleware-response-headers.js";
5
5
  import { applyEdgeRuntimeHeader } from "./app-page-response.js";
6
6
  import { parseNextHttpErrorDigest, parseNextRedirectDigest } from "./next-error-digest.js";
7
+ import { renderSsrErrorMetaTags } from "./app-ssr-error-meta.js";
8
+ import { isPromiseLike } from "../utils/promise.js";
7
9
  //#region src/server/app-page-execution.ts
8
10
  /**
9
11
  * Builds the canonical `NEXT_REDIRECT;<type>;<url>;<status>;` digest that
@@ -28,14 +30,20 @@ function formatNextRedirectDigest(options) {
28
30
  /**
29
31
  * Marker we tag onto a thrown redirect/notFound error when it originates from
30
32
  * `generateMetadata()` (vs. a server component itself). Metadata resolution is
31
- * suspended/streamed in Next.js, so a redirect from metadata never becomes an
32
- * HTTP-level 307 it rides inside the flight payload with a 200 status,
33
- * regardless of whether the request is RSC or a full document SSR. Page-level
34
- * redirect()s, by contrast, still produce a 307 for SSR document requests.
33
+ * suspended/streamed in Next.js, so a redirect from metadata is not emitted as
34
+ * a plain HTTP-level 307. Instead the transport depends on the request:
35
+ * - RSC navigation requests (`Rsc: 1`) ride inside the flight payload with a
36
+ * 200 status; the client router decodes the redirect digest.
37
+ * - Streaming-capable document requests get a 200 HTML response carrying a
38
+ * refresh meta tag (the streamed document can't switch to a 307 after the
39
+ * head has flushed).
40
+ * - html-limited bots (which Next.js serves a blocking, non-streamed
41
+ * response) get the HTTP-level 307.
42
+ * Page-level redirect()s, by contrast, still produce a 307 for SSR document
43
+ * requests.
35
44
  *
36
45
  * See Next.js test:
37
- * test/e2e/app-dir/metadata-navigation/metadata-navigation.test.ts
38
- * ("should support redirect in generateMetadata")
46
+ * test/e2e/app-dir/metadata-streaming/metadata-streaming.test.ts
39
47
  */
40
48
  const APP_PAGE_METADATA_ERROR_MARKER = Symbol.for("vinext.appPage.metadataError");
41
49
  function tagAppPageMetadataError(error) {
@@ -49,9 +57,6 @@ function tagAppPageMetadataError(error) {
49
57
  } catch {}
50
58
  return error;
51
59
  }
52
- function isPromiseLike(value) {
53
- return Boolean(value && (typeof value === "object" || typeof value === "function") && "then" in value && typeof value.then === "function");
54
- }
55
60
  function getAppPageStatusText(statusCode) {
56
61
  return statusCode === 403 ? "Forbidden" : statusCode === 401 ? "Unauthorized" : "Not Found";
57
62
  }
@@ -120,16 +125,34 @@ function sameOriginPathOrAbsolute(location, requestUrl) {
120
125
  return location;
121
126
  }
122
127
  }
128
+ function buildMetadataRedirectHtmlResponse(options) {
129
+ const headers = new Headers({ "Content-Type": "text/html; charset=utf-8" });
130
+ applyEdgeRuntimeHeader(headers, options.isEdgeRuntime);
131
+ mergeMiddlewareResponseHeaders(headers, options.middlewareContext?.headers ?? null);
132
+ const pendingCookies = options.getAndClearPendingCookies?.() ?? [];
133
+ for (const cookie of pendingCookies) headers.append("Set-Cookie", cookie);
134
+ const errorMetaTags = renderSsrErrorMetaTags([{ digest: options.digest }]);
135
+ return new Response(`<!DOCTYPE html><html><head>${errorMetaTags}</head><body></body></html>`, {
136
+ headers,
137
+ status: 200
138
+ });
139
+ }
123
140
  async function buildAppPageSpecialErrorResponse(options) {
124
141
  if (options.specialError.kind === "redirect") {
125
142
  options.clearRequestContext();
126
143
  const prefixedLocation = applyAppPageRedirectBasePath(options.specialError.location, options.request.url, options.basePath);
127
- if (Boolean(options.buildRscRedirectFlightStream) && (options.isRscRequest || options.specialError.fromMetadata === true) && options.buildRscRedirectFlightStream) {
128
- const digestUrl = sameOriginPathOrAbsolute(prefixedLocation, options.request.url);
129
- const digest = formatNextRedirectDigest({
130
- url: digestUrl,
131
- statusCode: options.specialError.statusCode
132
- });
144
+ const digestUrl = sameOriginPathOrAbsolute(prefixedLocation, options.request.url);
145
+ const digest = formatNextRedirectDigest({
146
+ url: digestUrl,
147
+ statusCode: options.specialError.statusCode
148
+ });
149
+ if (options.specialError.fromMetadata === true && !options.isRscRequest && options.serveStreamingMetadata !== false) return buildMetadataRedirectHtmlResponse({
150
+ digest,
151
+ getAndClearPendingCookies: options.getAndClearPendingCookies,
152
+ isEdgeRuntime: options.isEdgeRuntime,
153
+ middlewareContext: options.middlewareContext
154
+ });
155
+ if (Boolean(options.buildRscRedirectFlightStream) && options.isRscRequest && options.buildRscRedirectFlightStream) {
133
156
  const stream = options.buildRscRedirectFlightStream({ digest });
134
157
  const headers = new Headers({
135
158
  "Content-Type": VINEXT_RSC_CONTENT_TYPE,
@@ -171,23 +194,33 @@ async function probeAppPageLayouts(options) {
171
194
  for (let layoutIndex = options.layoutCount - 1; layoutIndex >= 0; layoutIndex--) {
172
195
  const buildTimeResult = cls?.buildTimeClassifications?.get(layoutIndex);
173
196
  if (cls && buildTimeResult) {
174
- layoutFlags[cls.getLayoutId(layoutIndex)] = buildTimeResult === "static" ? "s" : "d";
175
- if (cls.debugClassification) cls.debugClassification(cls.getLayoutId(layoutIndex), cls.buildTimeReasons?.get(layoutIndex) ?? { layer: "no-classifier" });
197
+ const layoutId = cls.getLayoutId(layoutIndex);
198
+ layoutFlags[layoutId] = buildTimeResult === "static" ? "s" : "d";
176
199
  const errorResponse = await probeLayoutForErrors(options, layoutIndex);
177
200
  if (errorResponse) return errorResponse;
201
+ const observationDynamic = cls.isLayoutObservationDynamic?.(layoutId) === true;
202
+ layoutFlags[layoutId] = buildTimeResult === "dynamic" || observationDynamic ? "d" : "s";
203
+ if (cls.debugClassification) if (observationDynamic && buildTimeResult === "static") cls.debugClassification(layoutId, {
204
+ layer: "runtime-probe",
205
+ outcome: "dynamic"
206
+ });
207
+ else cls.debugClassification(layoutId, cls.buildTimeReasons?.get(layoutIndex) ?? { layer: "no-classifier" });
178
208
  continue;
179
209
  }
180
210
  if (cls) {
211
+ const layoutId = cls.getLayoutId(layoutIndex);
181
212
  try {
182
213
  const { dynamicDetected } = await cls.runWithIsolatedDynamicScope(() => options.probeLayoutAt(layoutIndex));
183
- layoutFlags[cls.getLayoutId(layoutIndex)] = dynamicDetected ? "d" : "s";
184
- if (cls.debugClassification) cls.debugClassification(cls.getLayoutId(layoutIndex), {
214
+ const observationDynamic = cls.isLayoutObservationDynamic?.(layoutId) === true;
215
+ const layoutDynamic = dynamicDetected || observationDynamic;
216
+ layoutFlags[layoutId] = layoutDynamic ? "d" : "s";
217
+ if (cls.debugClassification) cls.debugClassification(layoutId, {
185
218
  layer: "runtime-probe",
186
- outcome: dynamicDetected ? "dynamic" : "static"
219
+ outcome: layoutDynamic ? "dynamic" : "static"
187
220
  });
188
221
  } catch (error) {
189
- layoutFlags[cls.getLayoutId(layoutIndex)] = "d";
190
- if (cls.debugClassification) cls.debugClassification(cls.getLayoutId(layoutIndex), {
222
+ layoutFlags[layoutId] = "d";
223
+ if (cls.debugClassification) cls.debugClassification(layoutId, {
191
224
  layer: "runtime-probe",
192
225
  outcome: "dynamic",
193
226
  error: error instanceof Error ? error.message : String(error)
@@ -258,5 +291,3 @@ function buildAppPageFontLinkHeader(preloads) {
258
291
  }
259
292
  //#endregion
260
293
  export { buildAppPageFontLinkHeader, buildAppPageSpecialErrorResponse, probeAppPageComponent, probeAppPageLayouts, readAppPageBinaryStream, resolveAppPageSpecialError, tagAppPageMetadataError, teeAppPageRscStreamForCapture };
261
-
262
- //# sourceMappingURL=app-page-execution.js.map
@@ -59,5 +59,4 @@ declare function resolveActiveParallelRouteHeadInputs<TModule extends AppPageHea
59
59
  declare function collectAppPageSearchParams(searchParams: URLSearchParams | null | undefined): AppPageSearchParamsCollection;
60
60
  declare function resolveAppPageHead<TModule extends AppPageHeadModule>(options: ResolveAppPageHeadOptions<TModule>): Promise<ResolveAppPageHeadResult>;
61
61
  //#endregion
62
- export { collectAppPageSearchParams, resolveActiveParallelRouteHeadInputs, resolveAppPageHead };
63
- //# sourceMappingURL=app-page-head.d.ts.map
62
+ export { AppPageSearchParams, collectAppPageSearchParams, resolveActiveParallelRouteHeadInputs, resolveAppPageHead };