vinext 1.3.0 → 1.4.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 (529) hide show
  1. package/README.md +5 -2
  2. package/THIRD_PARTY_LICENSES.md +47 -0
  3. package/dist/_virtual/_rolldown/runtime.js +4 -3
  4. package/dist/build/action-owner-manifest.d.ts +3 -2
  5. package/dist/build/action-owner-manifest.js +18 -2
  6. package/dist/build/app-page-static-eligibility.d.ts +17 -1
  7. package/dist/build/app-page-static-eligibility.js +80 -13
  8. package/dist/build/clean-output.d.ts +2 -1
  9. package/dist/build/client-build-config.d.ts +13 -3
  10. package/dist/build/client-build-config.js +46 -9
  11. package/dist/build/client-reference-async.d.ts +48 -0
  12. package/dist/build/client-reference-async.js +123 -0
  13. package/dist/build/client-reference-chunks.d.ts +32 -0
  14. package/dist/build/client-reference-chunks.js +111 -0
  15. package/dist/build/client-reference-groups.d.ts +9 -1
  16. package/dist/build/client-reference-groups.js +40 -2
  17. package/dist/build/css-url-assets.d.ts +2 -1
  18. package/dist/build/google-fonts/fallback-metrics.d.ts +2 -1
  19. package/dist/build/google-fonts/find-font-files-in-css.d.ts +1 -0
  20. package/dist/build/google-fonts/find-font-files-in-css.js +17 -4
  21. package/dist/build/google-fonts/font-metadata.d.ts +2 -1
  22. package/dist/build/google-fonts/validate.d.ts +2 -1
  23. package/dist/build/inline-css.d.ts +2 -1
  24. package/dist/build/module-dependency-cache.d.ts +2 -1
  25. package/dist/build/next-client-runtime-manifests.d.ts +2 -1
  26. package/dist/build/precompress.d.ts +2 -1
  27. package/dist/build/precompress.js +1 -1
  28. package/dist/build/prerender-paths.d.ts +2 -1
  29. package/dist/build/prerender-phase.d.ts +2 -1
  30. package/dist/build/prerender-server-pool.js +1 -1
  31. package/dist/build/prerender.d.ts +3 -2
  32. package/dist/build/prerender.js +6 -5
  33. package/dist/build/report.d.ts +2 -15
  34. package/dist/build/report.js +1 -51
  35. package/dist/build/run-prerender.d.ts +2 -1
  36. package/dist/build/server-actions-encryption-key.d.ts +2 -1
  37. package/dist/build/ssr-manifest.js +25 -2
  38. package/dist/build/standalone.d.ts +2 -1
  39. package/dist/cache/cache-adapters-virtual.d.ts +2 -1
  40. package/dist/cache.js +1 -2
  41. package/dist/check.d.ts +2 -1
  42. package/dist/check.js +5 -1
  43. package/dist/cli-args.d.ts +2 -1
  44. package/dist/cli.js +5 -0
  45. package/dist/client/client-redirect-matcher.js +2 -1
  46. package/dist/client/client-redirects.d.ts +4 -3
  47. package/dist/client/client-redirects.js +2 -1
  48. package/dist/client/client-rewrites.d.ts +2 -1
  49. package/dist/client/dev-error-overlay-store.d.ts +2 -1
  50. package/dist/client/dev-error-overlay.js +1 -1
  51. package/dist/client/index.js +1 -2
  52. package/dist/client/instrumentation-client-state.js +5 -5
  53. package/dist/client/navigation-runtime.d.ts +16 -2
  54. package/dist/client/navigation-runtime.js +2 -2
  55. package/dist/client/pages-router-link-navigation.d.ts +2 -1
  56. package/dist/client/vinext-next-data.d.ts +25 -1
  57. package/dist/client/window-next.d.ts +2 -1
  58. package/dist/config/config-matchers.d.ts +12 -1
  59. package/dist/config/config-matchers.js +111 -16
  60. package/dist/config/dotenv.d.ts +2 -1
  61. package/dist/config/next-config.d.ts +32 -1
  62. package/dist/config/next-config.js +93 -5
  63. package/dist/config/tsconfig-paths.d.ts +2 -1
  64. package/dist/deps/.pnpm/iconv-lite@0.4.24/deps/iconv-lite/encodings/dbcs-codec.js +327 -0
  65. package/dist/deps/.pnpm/iconv-lite@0.4.24/deps/iconv-lite/encodings/dbcs-data.js +123 -0
  66. package/dist/deps/.pnpm/iconv-lite@0.4.24/deps/iconv-lite/encodings/index.js +29 -0
  67. package/dist/deps/.pnpm/iconv-lite@0.4.24/deps/iconv-lite/encodings/internal.js +134 -0
  68. package/dist/deps/.pnpm/iconv-lite@0.4.24/deps/iconv-lite/encodings/sbcs-codec.js +50 -0
  69. package/dist/deps/.pnpm/iconv-lite@0.4.24/deps/iconv-lite/encodings/sbcs-data-generated.js +455 -0
  70. package/dist/deps/.pnpm/iconv-lite@0.4.24/deps/iconv-lite/encodings/sbcs-data.js +147 -0
  71. package/dist/deps/.pnpm/iconv-lite@0.4.24/deps/iconv-lite/encodings/tables/big5-added.json.js +169 -0
  72. package/dist/deps/.pnpm/iconv-lite@0.4.24/deps/iconv-lite/encodings/tables/cp936.json.js +2584 -0
  73. package/dist/deps/.pnpm/iconv-lite@0.4.24/deps/iconv-lite/encodings/tables/cp949.json.js +2220 -0
  74. package/dist/deps/.pnpm/iconv-lite@0.4.24/deps/iconv-lite/encodings/tables/cp950.json.js +227 -0
  75. package/dist/deps/.pnpm/iconv-lite@0.4.24/deps/iconv-lite/encodings/tables/eucjp.json.js +425 -0
  76. package/dist/deps/.pnpm/iconv-lite@0.4.24/deps/iconv-lite/encodings/tables/gb18030-ranges.json.js +427 -0
  77. package/dist/deps/.pnpm/iconv-lite@0.4.24/deps/iconv-lite/encodings/tables/gbk-added.json.js +229 -0
  78. package/dist/deps/.pnpm/iconv-lite@0.4.24/deps/iconv-lite/encodings/tables/shiftjis.json.js +292 -0
  79. package/dist/deps/.pnpm/iconv-lite@0.4.24/deps/iconv-lite/encodings/utf16.js +106 -0
  80. package/dist/deps/.pnpm/iconv-lite@0.4.24/deps/iconv-lite/encodings/utf7.js +182 -0
  81. package/dist/deps/.pnpm/iconv-lite@0.4.24/deps/iconv-lite/lib/bom-handling.js +42 -0
  82. package/dist/deps/.pnpm/iconv-lite@0.4.24/deps/iconv-lite/lib/extend-node.js +147 -0
  83. package/dist/deps/.pnpm/iconv-lite@0.4.24/deps/iconv-lite/lib/index.js +94 -0
  84. package/dist/deps/.pnpm/iconv-lite@0.4.24/deps/iconv-lite/lib/streams.js +95 -0
  85. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/detector.js +23 -0
  86. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/index.js +2 -0
  87. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/lookup.js +25 -0
  88. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/bmp.js +11 -0
  89. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/cur.js +15 -0
  90. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/dds.js +11 -0
  91. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/gif.js +12 -0
  92. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/heif.js +55 -0
  93. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/icns.js +76 -0
  94. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/ico.js +39 -0
  95. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/index.js +46 -0
  96. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/j2c.js +11 -0
  97. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/jp2.js +21 -0
  98. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/jpg.js +71 -0
  99. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/jxl-stream.js +42 -0
  100. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/jxl.js +46 -0
  101. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/ktx.js +19 -0
  102. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/png.js +28 -0
  103. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/pnm.js +54 -0
  104. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/psd.js +11 -0
  105. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/svg.js +79 -0
  106. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/tga.js +15 -0
  107. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/tiff.js +96 -0
  108. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/utils.js +53 -0
  109. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/webp.js +45 -0
  110. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/utils/bit-reader.js +38 -0
  111. package/dist/deps/.pnpm/safer-buffer@2.1.2/deps/safer-buffer/safer.js +45 -0
  112. package/dist/deps/.pnpm/ua-parser-js@1.0.35/deps/ua-parser-js/src/ua-parser.js +2 -2
  113. package/dist/entries/app-browser-entry.d.ts +20 -5
  114. package/dist/entries/app-browser-entry.js +79 -6
  115. package/dist/entries/app-rsc-entry.d.ts +2 -1
  116. package/dist/entries/app-rsc-entry.js +59 -60
  117. package/dist/entries/app-rsc-manifest.d.ts +2 -1
  118. package/dist/entries/app-rsc-manifest.js +56 -4
  119. package/dist/entries/app-ssr-entry.js +1 -0
  120. package/dist/entries/pages-entry-helpers.js +1 -2
  121. package/dist/entries/pages-server-entry.d.ts +2 -1
  122. package/dist/entries/pages-server-entry.js +34 -9
  123. package/dist/entries/runtime-entry-module.d.ts +1 -0
  124. package/dist/entries/runtime-entry-module.js +4 -1
  125. package/dist/image/image-adapters-virtual.d.ts +2 -1
  126. package/dist/index.js +184 -103
  127. package/dist/init-cloudflare.d.ts +1 -3
  128. package/dist/init-cloudflare.js +10 -48
  129. package/dist/init-platform.d.ts +2 -0
  130. package/dist/init-platform.js +4 -0
  131. package/dist/plugins/client-compile-hints.d.ts +30 -0
  132. package/dist/plugins/client-compile-hints.js +88 -0
  133. package/dist/plugins/client-reference-dedup.d.ts +2 -1
  134. package/dist/plugins/cloudflare-dev-module-urls.d.ts +2 -1
  135. package/dist/plugins/dynamic-preload-metadata.d.ts +3 -1
  136. package/dist/plugins/dynamic-preload-metadata.js +1 -1
  137. package/dist/plugins/environment.d.ts +2 -1
  138. package/dist/plugins/extensionless-dynamic-import.js +6 -2
  139. package/dist/plugins/fonts.js +9 -12
  140. package/dist/plugins/ignore-dynamic-requests.d.ts +2 -1
  141. package/dist/plugins/import-meta-url.d.ts +2 -1
  142. package/dist/plugins/next-intl-catalog.d.ts +12 -0
  143. package/dist/plugins/next-intl-catalog.js +85 -0
  144. package/dist/plugins/og-assets.d.ts +2 -1
  145. package/dist/plugins/og-assets.js +2 -3
  146. package/dist/plugins/optimize-imports.d.ts +2 -1
  147. package/dist/plugins/pages-node-externals.d.ts +3 -1
  148. package/dist/plugins/pages-node-externals.js +1 -1
  149. package/dist/plugins/remove-console.d.ts +2 -1
  150. package/dist/plugins/require-condition-resolution.d.ts +2 -1
  151. package/dist/plugins/rsc-client-reference-loaders.d.ts +8 -0
  152. package/dist/plugins/rsc-client-reference-loaders.js +170 -68
  153. package/dist/plugins/rsc-client-shim-excludes.js +2 -0
  154. package/dist/plugins/sass.d.ts +2 -1
  155. package/dist/plugins/strip-server-exports.d.ts +2 -1
  156. package/dist/plugins/styled-jsx.d.ts +2 -1
  157. package/dist/plugins/transform-result.d.ts +2 -1
  158. package/dist/plugins/typeof-window.d.ts +2 -1
  159. package/dist/plugins/use-cache-callable.d.ts +1 -1
  160. package/dist/plugins/use-cache-callable.js +136 -94
  161. package/dist/plugins/worker-image-imports.js +1 -1
  162. package/dist/plugins/worker-use-server.d.ts +2 -1
  163. package/dist/routing/app-route-graph.d.ts +46 -0
  164. package/dist/routing/app-route-graph.js +131 -51
  165. package/dist/routing/browser-route-manifest.d.ts +2 -1
  166. package/dist/routing/optimistic-route-trie.d.ts +2 -1
  167. package/dist/routing/route-matching.d.ts +2 -1
  168. package/dist/routing/route-pattern.d.ts +2 -1
  169. package/dist/server/accept-encoding.d.ts +2 -1
  170. package/dist/server/api-handler.js +19 -4
  171. package/dist/server/app-action-forwarding.d.ts +2 -1
  172. package/dist/server/app-bfcache-identity.d.ts +2 -1
  173. package/dist/server/app-bfcache-identity.js +1 -1
  174. package/dist/server/app-browser-action-result.d.ts +2 -1
  175. package/dist/server/app-browser-entry.js +106 -66
  176. package/dist/server/app-browser-error.d.ts +2 -1
  177. package/dist/server/app-browser-history-controller.d.ts +7 -5
  178. package/dist/server/app-browser-history-controller.js +93 -15
  179. package/dist/server/app-browser-hydration.d.ts +2 -1
  180. package/dist/server/app-browser-interception-context.d.ts +2 -1
  181. package/dist/server/app-browser-navigation-controller.d.ts +2 -2
  182. package/dist/server/app-browser-navigation-controller.js +16 -12
  183. package/dist/server/app-browser-popstate.d.ts +2 -1
  184. package/dist/server/app-browser-rsc-redirect.d.ts +2 -1
  185. package/dist/server/app-browser-rsc-redirect.js +4 -4
  186. package/dist/server/app-browser-server-action-client.d.ts +4 -1
  187. package/dist/server/app-browser-server-action-client.js +4 -3
  188. package/dist/server/app-browser-state.d.ts +2 -4
  189. package/dist/server/app-browser-state.js +9 -4
  190. package/dist/server/app-browser-stream.d.ts +2 -1
  191. package/dist/server/app-browser-supplemental-refresh.js +16 -1
  192. package/dist/server/app-browser-visible-commit.d.ts +3 -2
  193. package/dist/server/app-browser-visible-commit.js +2 -12
  194. package/dist/server/app-client-reference-manifest.d.ts +31 -0
  195. package/dist/server/app-client-reference-manifest.js +46 -0
  196. package/dist/server/app-client-reference-preloader.d.ts +25 -5
  197. package/dist/server/app-client-reference-preloader.js +22 -7
  198. package/dist/server/app-elements-wire.d.ts +8 -39
  199. package/dist/server/app-elements-wire.js +4 -41
  200. package/dist/server/app-elements.d.ts +4 -2
  201. package/dist/server/app-elements.js +4 -2
  202. package/dist/server/app-fallback-renderer.d.ts +9 -2
  203. package/dist/server/app-fallback-renderer.js +4 -1
  204. package/dist/server/app-history-state.d.ts +4 -3
  205. package/dist/server/app-history-state.js +5 -2
  206. package/dist/server/app-inline-css-client.d.ts +2 -1
  207. package/dist/server/app-metadata-tracing.d.ts +2 -1
  208. package/dist/server/app-mounted-layouts.d.ts +21 -0
  209. package/dist/server/app-mounted-layouts.js +67 -0
  210. package/dist/server/app-optimistic-routing.d.ts +37 -2
  211. package/dist/server/app-optimistic-routing.js +75 -2
  212. package/dist/server/app-page-boundary-render.d.ts +20 -2
  213. package/dist/server/app-page-boundary-render.js +224 -40
  214. package/dist/server/app-page-boundary.d.ts +34 -5
  215. package/dist/server/app-page-boundary.js +41 -8
  216. package/dist/server/app-page-cache-finalizer.d.ts +14 -2
  217. package/dist/server/app-page-cache-finalizer.js +71 -30
  218. package/dist/server/app-page-cache-render.d.ts +10 -2
  219. package/dist/server/app-page-cache-render.js +14 -2
  220. package/dist/server/app-page-cache.d.ts +13 -1
  221. package/dist/server/app-page-cache.js +33 -11
  222. package/dist/server/app-page-dispatch.d.ts +39 -11
  223. package/dist/server/app-page-dispatch.js +236 -177
  224. package/dist/server/app-page-element-builder.d.ts +19 -3
  225. package/dist/server/app-page-element-builder.js +193 -71
  226. package/dist/server/app-page-execution.d.ts +43 -51
  227. package/dist/server/app-page-execution.js +205 -92
  228. package/dist/server/app-page-head.d.ts +108 -3
  229. package/dist/server/app-page-head.js +337 -154
  230. package/dist/server/app-page-http-access-fallback-metadata.d.ts +49 -2
  231. package/dist/server/app-page-http-access-fallback-metadata.js +77 -2
  232. package/dist/server/app-page-layout-gate.d.ts +35 -0
  233. package/dist/server/app-page-layout-gate.js +50 -0
  234. package/dist/server/app-page-method.d.ts +2 -1
  235. package/dist/server/app-page-params.d.ts +0 -1
  236. package/dist/server/app-page-params.js +1 -14
  237. package/dist/server/app-page-probe.d.ts +5 -22
  238. package/dist/server/app-page-probe.js +4 -37
  239. package/dist/server/app-page-render-identity.d.ts +2 -1
  240. package/dist/server/app-page-render.d.ts +9 -13
  241. package/dist/server/app-page-render.js +108 -214
  242. package/dist/server/app-page-request.d.ts +15 -4
  243. package/dist/server/app-page-request.js +2 -2
  244. package/dist/server/app-page-response.js +3 -3
  245. package/dist/server/app-page-route-wiring.d.ts +65 -8
  246. package/dist/server/app-page-route-wiring.js +259 -103
  247. package/dist/server/app-page-rsc-render-status.d.ts +29 -2
  248. package/dist/server/app-page-rsc-render-status.js +121 -13
  249. package/dist/server/app-page-search-params-observation.d.ts +7 -2
  250. package/dist/server/app-page-search-params-observation.js +8 -1
  251. package/dist/server/app-page-segment-plan.d.ts +2 -1
  252. package/dist/server/app-page-stream.d.ts +33 -1
  253. package/dist/server/app-page-stream.js +25 -6
  254. package/dist/server/app-pages-bridge.d.ts +6 -1
  255. package/dist/server/app-pages-bridge.js +7 -3
  256. package/dist/server/app-ppr-fallback-shell-render.d.ts +2 -1
  257. package/dist/server/app-ppr-fallback-shell.d.ts +2 -1
  258. package/dist/server/app-prerender-endpoints.d.ts +2 -1
  259. package/dist/server/app-prerender-static-params.d.ts +2 -1
  260. package/dist/server/app-render-dependency.d.ts +21 -4
  261. package/dist/server/app-render-dependency.js +100 -33
  262. package/dist/server/app-request-stage-dispatch.js +1 -1
  263. package/dist/server/app-request-stage-independent-entry.d.ts +2 -1
  264. package/dist/server/app-response-stage-entry.d.ts +2 -1
  265. package/dist/server/app-route-handler-cache.d.ts +2 -1
  266. package/dist/server/app-route-handler-cache.js +2 -2
  267. package/dist/server/app-route-handler-dispatch.d.ts +2 -1
  268. package/dist/server/app-route-handler-dispatch.js +15 -10
  269. package/dist/server/app-route-handler-execution.d.ts +2 -1
  270. package/dist/server/app-route-handler-execution.js +8 -3
  271. package/dist/server/app-route-handler-policy.d.ts +1 -1
  272. package/dist/server/app-route-handler-policy.js +3 -3
  273. package/dist/server/app-route-handler-response.d.ts +2 -1
  274. package/dist/server/app-route-handler-response.js +1 -1
  275. package/dist/server/app-route-handler-runtime.d.ts +2 -1
  276. package/dist/server/app-route-handler-runtime.js +17 -4
  277. package/dist/server/app-route-module-loader.d.ts +18 -1
  278. package/dist/server/app-route-module-loader.js +8 -0
  279. package/dist/server/app-route-tree-prefetch.d.ts +2 -1
  280. package/dist/server/app-rsc-cache-busting.d.ts +2 -2
  281. package/dist/server/app-rsc-cache-busting.js +4 -4
  282. package/dist/server/app-rsc-error-handler.d.ts +4 -2
  283. package/dist/server/app-rsc-error-handler.js +9 -1
  284. package/dist/server/app-rsc-errors.d.ts +10 -1
  285. package/dist/server/app-rsc-errors.js +8 -1
  286. package/dist/server/app-rsc-handler.d.ts +7 -6
  287. package/dist/server/app-rsc-handler.js +36 -34
  288. package/dist/server/app-rsc-request-normalization.d.ts +0 -4
  289. package/dist/server/app-rsc-request-normalization.js +1 -4
  290. package/dist/server/app-rsc-response-finalizer.d.ts +2 -1
  291. package/dist/server/app-rsc-response-finalizer.js +2 -2
  292. package/dist/server/app-rsc-response-stage.js +5 -3
  293. package/dist/server/app-rsc-route-matching.d.ts +38 -1
  294. package/dist/server/app-rsc-route-matching.js +24 -0
  295. package/dist/server/app-segment-config.d.ts +2 -1
  296. package/dist/server/app-segment-config.js +1 -14
  297. package/dist/server/app-server-action-execution.d.ts +5 -2
  298. package/dist/server/app-server-action-execution.js +10 -7
  299. package/dist/server/app-ssr-entry.d.ts +8 -0
  300. package/dist/server/app-ssr-entry.js +98 -50
  301. package/dist/server/app-ssr-error-meta.d.ts +2 -1
  302. package/dist/server/app-ssr-search-params-gate.d.ts +2 -1
  303. package/dist/server/app-ssr-stream.d.ts +22 -10
  304. package/dist/server/app-ssr-stream.js +300 -68
  305. package/dist/server/app-static-generation.d.ts +2 -1
  306. package/dist/server/app-streamed-client-references.d.ts +39 -0
  307. package/dist/server/app-streamed-client-references.js +156 -0
  308. package/dist/server/app-visited-response-cache.d.ts +38 -2
  309. package/dist/server/app-visited-response-cache.js +46 -5
  310. package/dist/server/app-worker-stages.d.ts +27 -4
  311. package/dist/server/app-worker-stages.js +45 -6
  312. package/dist/server/artifact-compatibility.d.ts +2 -2
  313. package/dist/server/artifact-compatibility.js +1 -10
  314. package/dist/server/bfcache-identity.d.ts +2 -1
  315. package/dist/server/cache-headers.d.ts +2 -1
  316. package/dist/server/cache-proof.d.ts +1 -115
  317. package/dist/server/cache-proof.js +1 -544
  318. package/dist/server/cacheability-request.d.ts +2 -1
  319. package/dist/server/cacheability-request.js +13 -8
  320. package/dist/server/config-headers.d.ts +2 -1
  321. package/dist/server/csp.d.ts +2 -1
  322. package/dist/server/default-global-not-found-module.d.ts +2 -1
  323. package/dist/server/default-http-access-fallback-modules.d.ts +33 -0
  324. package/dist/server/default-http-access-fallback-modules.js +31 -0
  325. package/dist/server/defer-until-stream-consumed.d.ts +34 -0
  326. package/dist/server/defer-until-stream-consumed.js +154 -21
  327. package/dist/server/dev-lockfile.d.ts +32 -2
  328. package/dist/server/dev-lockfile.js +46 -2
  329. package/dist/server/dev-module-runner.d.ts +2 -1
  330. package/dist/server/dev-server.js +14 -6
  331. package/dist/server/fetch-handler.js +1 -2
  332. package/dist/server/file-based-metadata.d.ts +2 -1
  333. package/dist/server/framework-tracer.d.ts +2 -1
  334. package/dist/server/headers.d.ts +6 -3
  335. package/dist/server/headers.js +9 -5
  336. package/dist/server/html.d.ts +1 -0
  337. package/dist/server/html.js +19 -1
  338. package/dist/server/http-conditional.d.ts +2 -1
  339. package/dist/server/http-error-responses.d.ts +2 -1
  340. package/dist/server/implicit-tags.d.ts +2 -1
  341. package/dist/server/isr-cache.d.ts +8 -2
  342. package/dist/server/isr-cache.js +26 -1
  343. package/dist/server/metadata-route-build-data.d.ts +2 -1
  344. package/dist/server/metadata-route-build-data.js +1 -1
  345. package/dist/server/metadata-route-response.d.ts +2 -1
  346. package/dist/server/metadata-route-response.js +32 -15
  347. package/dist/server/metadata-routes.d.ts +2 -1
  348. package/dist/server/middleware-runtime.d.ts +2 -1
  349. package/dist/server/multi-stage.d.ts +52 -11
  350. package/dist/server/multi-stage.js +13 -1
  351. package/dist/server/navigation-planner.js +1 -1
  352. package/dist/server/navigation-trace.d.ts +2 -1
  353. package/dist/server/next-error-digest.d.ts +2 -1
  354. package/dist/server/nitro-public-files-plugin.d.ts +2 -1
  355. package/dist/server/nitro-public-files.d.ts +2 -1
  356. package/dist/server/opentelemetry-api.d.ts +2 -1
  357. package/dist/server/operation-token.d.ts +2 -1
  358. package/dist/server/pages-api-route.d.ts +2 -1
  359. package/dist/server/pages-api-route.js +28 -19
  360. package/dist/server/pages-asset-tags.d.ts +2 -1
  361. package/dist/server/pages-body-parser-config.d.ts +2 -1
  362. package/dist/server/pages-client-assets.d.ts +4 -0
  363. package/dist/server/pages-data-route.d.ts +2 -1
  364. package/dist/server/pages-document-asset-props.d.ts +2 -1
  365. package/dist/server/pages-document-initial-props.d.ts +2 -1
  366. package/dist/server/pages-execution-tracing.d.ts +2 -1
  367. package/dist/server/pages-execution-tracing.js +1 -1
  368. package/dist/server/pages-get-initial-props.d.ts +2 -1
  369. package/dist/server/pages-media-type.d.ts +21 -1
  370. package/dist/server/pages-media-type.js +69 -5
  371. package/dist/server/pages-node-compat.js +52 -27
  372. package/dist/server/pages-page-data.d.ts +7 -1
  373. package/dist/server/pages-page-data.js +35 -12
  374. package/dist/server/pages-page-handler.d.ts +3 -2
  375. package/dist/server/pages-page-handler.js +27 -27
  376. package/dist/server/pages-page-method.d.ts +2 -1
  377. package/dist/server/pages-page-response.d.ts +2 -1
  378. package/dist/server/pages-preview.d.ts +2 -1
  379. package/dist/server/pages-readiness.d.ts +2 -1
  380. package/dist/server/pages-request-pipeline.d.ts +10 -1
  381. package/dist/server/pages-request-pipeline.js +6 -7
  382. package/dist/server/pages-request-stage-entry.d.ts +2 -1
  383. package/dist/server/pages-request-stage-entry.js +14 -12
  384. package/dist/server/pages-response-stage-entry.d.ts +2 -1
  385. package/dist/server/pages-response-stage-entry.js +9 -3
  386. package/dist/server/pages-route-data-kind.d.ts +2 -1
  387. package/dist/server/prerender-cache-life-header.d.ts +2 -1
  388. package/dist/server/prerender-route-params.d.ts +2 -1
  389. package/dist/server/prod-server.js +14 -4
  390. package/dist/server/request-log.d.ts +2 -1
  391. package/dist/server/request-pipeline.d.ts +6 -0
  392. package/dist/server/request-pipeline.js +21 -1
  393. package/dist/server/request-tracing.d.ts +2 -1
  394. package/dist/server/request-tracing.js +1 -1
  395. package/dist/server/response-start-tracing.js +7 -29
  396. package/dist/server/rsc-render-stream.d.ts +4 -0
  397. package/dist/server/rsc-render-stream.js +25 -0
  398. package/dist/server/seed-cache.d.ts +2 -1
  399. package/dist/server/seed-cache.js +1 -1
  400. package/dist/server/shared-cache-identity.d.ts +23 -0
  401. package/dist/server/shared-cache-identity.js +36 -0
  402. package/dist/server/static-file-cache.d.ts +2 -1
  403. package/dist/server/static-file-cache.js +1 -0
  404. package/dist/server/worker-revalidation-context.d.ts +2 -1
  405. package/dist/server/worker-stages.d.ts +18 -4
  406. package/dist/server/worker-stages.js +23 -4
  407. package/dist/shims/app.d.ts +2 -1
  408. package/dist/shims/cache-callable-runtime.d.ts +2 -1
  409. package/dist/shims/cache-handler.d.ts +8 -3
  410. package/dist/shims/cache-handler.js +31 -11
  411. package/dist/shims/cache-request-state.d.ts +17 -20
  412. package/dist/shims/cache-request-state.js +16 -21
  413. package/dist/shims/cache-runtime.js +27 -11
  414. package/dist/shims/cache.d.ts +8 -7
  415. package/dist/shims/cache.js +17 -19
  416. package/dist/shims/cacheability-classification.d.ts +2 -0
  417. package/dist/shims/caught-not-found-boundaries.d.ts +15 -0
  418. package/dist/shims/caught-not-found-boundaries.js +48 -0
  419. package/dist/shims/cdn-cache.d.ts +22 -5
  420. package/dist/shims/cdn-purge-routes.d.ts +2 -1
  421. package/dist/shims/client-locale.js +2 -1
  422. package/dist/shims/client-page-root.d.ts +2 -1
  423. package/dist/shims/client-page-root.js +2 -2
  424. package/dist/shims/config.d.ts +2 -1
  425. package/dist/shims/default-forbidden.d.ts +4 -0
  426. package/dist/shims/default-forbidden.js +18 -0
  427. package/dist/shims/default-not-found.d.ts +0 -5
  428. package/dist/shims/default-not-found.js +5 -41
  429. package/dist/shims/default-unauthorized.d.ts +4 -0
  430. package/dist/shims/default-unauthorized.js +18 -0
  431. package/dist/shims/dynamic.js +9 -6
  432. package/dist/shims/error-boundary.d.ts +39 -3
  433. package/dist/shims/error-boundary.js +33 -18
  434. package/dist/shims/fetch-cache-state.d.ts +5 -1
  435. package/dist/shims/fetch-cache-state.js +1 -3
  436. package/dist/shims/fetch-cache.d.ts +2 -1
  437. package/dist/shims/fetch-cache.js +34 -24
  438. package/dist/shims/font-google.js +1 -2
  439. package/dist/shims/font-utils.d.ts +3 -2
  440. package/dist/shims/font-utils.js +5 -3
  441. package/dist/shims/form.js +3 -3
  442. package/dist/shims/headers.d.ts +8 -23
  443. package/dist/shims/headers.js +17 -67
  444. package/dist/shims/http-access-error-fallback.d.ts +7 -0
  445. package/dist/shims/http-access-error-fallback.js +47 -0
  446. package/dist/shims/image.d.ts +1 -22
  447. package/dist/shims/internal/app-prefetch-fetch-queue.d.ts +22 -2
  448. package/dist/shims/internal/app-prefetch-fetch-queue.js +71 -18
  449. package/dist/shims/internal/app-route-prefetch-policy.d.ts +14 -3
  450. package/dist/shims/internal/app-route-prefetch-policy.js +29 -4
  451. package/dist/shims/internal/cache-context-accessor.d.ts +2 -1
  452. package/dist/shims/internal/client-reference-loader.d.ts +7 -0
  453. package/dist/shims/internal/client-reference-loader.js +91 -0
  454. package/dist/shims/internal/cookie-serialize.d.ts +2 -1
  455. package/dist/shims/internal/cookies.js +1 -2
  456. package/dist/shims/internal/headers-state.d.ts +2 -0
  457. package/dist/shims/internal/headers-state.js +6 -1
  458. package/dist/shims/internal/hybrid-client-route-owner-direct.d.ts +2 -1
  459. package/dist/shims/internal/interpolate-as.d.ts +2 -1
  460. package/dist/shims/internal/navigation-untracked.js +1 -1
  461. package/dist/shims/internal/pages-data-target.d.ts +2 -1
  462. package/dist/shims/internal/pages-data-url.d.ts +2 -1
  463. package/dist/shims/internal/thenable-well-known-properties.d.ts +2 -1
  464. package/dist/shims/link.js +197 -52
  465. package/dist/shims/metadata.d.ts +52 -29
  466. package/dist/shims/metadata.js +142 -42
  467. package/dist/shims/navigation-errors.d.ts +2 -1
  468. package/dist/shims/navigation-server.js +1 -1
  469. package/dist/shims/navigation.d.ts +95 -8
  470. package/dist/shims/navigation.js +255 -47
  471. package/dist/shims/navigation.react-server.js +2 -2
  472. package/dist/shims/pages-router-runtime.d.ts +2 -1
  473. package/dist/shims/ppr-fallback-shell.d.ts +2 -1
  474. package/dist/shims/request-state-types.d.ts +2 -2
  475. package/dist/shims/router.js +14 -3
  476. package/dist/shims/slot.d.ts +12 -0
  477. package/dist/shims/slot.js +37 -9
  478. package/dist/shims/unified-request-context.d.ts +1 -1
  479. package/dist/shims/unified-request-context.js +5 -6
  480. package/dist/typegen.d.ts +2 -1
  481. package/dist/utils/cache-control-metadata.d.ts +5 -0
  482. package/dist/utils/cache-control-metadata.js +9 -1
  483. package/dist/utils/client-build-manifest.d.ts +4 -1
  484. package/dist/utils/client-build-manifest.js +9 -2
  485. package/dist/utils/client-entry-manifest.d.ts +13 -0
  486. package/dist/utils/client-entry-manifest.js +20 -1
  487. package/dist/utils/client-reference-chunks.d.ts +45 -0
  488. package/dist/utils/client-reference-chunks.js +30 -0
  489. package/dist/utils/client-runtime-metadata.d.ts +9 -1
  490. package/dist/utils/client-runtime-metadata.js +40 -9
  491. package/dist/utils/compare.d.ts +9 -0
  492. package/dist/utils/compare.js +15 -1
  493. package/dist/utils/lazy-chunks.d.ts +14 -0
  494. package/dist/utils/lazy-chunks.js +27 -1
  495. package/dist/utils/middleware-request-headers.d.ts +2 -1
  496. package/dist/utils/project.d.ts +4 -3
  497. package/dist/utils/project.js +12 -17
  498. package/dist/utils/query.d.ts +2 -1
  499. package/dist/utils/regex.d.ts +5 -0
  500. package/dist/utils/regex.js +11 -1
  501. package/dist/utils/text-stream.d.ts +10 -5
  502. package/dist/utils/text-stream.js +6 -6
  503. package/dist/utils/vite-cli-invocation.d.ts +2 -1
  504. package/package.json +6 -5
  505. package/dist/build/layout-classification-types.d.ts +0 -60
  506. package/dist/build/layout-classification-types.js +0 -1
  507. package/dist/build/layout-classification.d.ts +0 -61
  508. package/dist/build/layout-classification.js +0 -98
  509. package/dist/build/route-classification-injector.d.ts +0 -32
  510. package/dist/build/route-classification-injector.js +0 -59
  511. package/dist/build/route-classification-manifest.d.ts +0 -53
  512. package/dist/build/route-classification-manifest.js +0 -143
  513. package/dist/deps/.pnpm/image-size@2.0.2/deps/image-size/dist/index.js +0 -808
  514. package/dist/server/app-browser-client-reuse-manifest.d.ts +0 -10
  515. package/dist/server/app-browser-client-reuse-manifest.js +0 -101
  516. package/dist/server/app-layout-param-observation.d.ts +0 -41
  517. package/dist/server/app-layout-param-observation.js +0 -168
  518. package/dist/server/client-reuse-manifest.d.ts +0 -102
  519. package/dist/server/client-reuse-manifest.js +0 -209
  520. package/dist/server/default-not-found-module.d.ts +0 -19
  521. package/dist/server/default-not-found-module.js +0 -18
  522. package/dist/server/rsc-stream-hints.d.ts +0 -21
  523. package/dist/server/rsc-stream-hints.js +0 -227
  524. package/dist/server/skip-cache-proof.d.ts +0 -60
  525. package/dist/server/skip-cache-proof.js +0 -168
  526. package/dist/server/static-layout-client-reuse-proof.d.ts +0 -13
  527. package/dist/server/static-layout-client-reuse-proof.js +0 -33
  528. package/dist/utils/sorted-array.d.ts +0 -7
  529. package/dist/utils/sorted-array.js +0 -20
@@ -1,38 +1,36 @@
1
1
  import { preserveFullyBufferedBodyMetadata } from "./fully-buffered-response.js";
2
+ import { deferUntilStreamConsumed } from "./defer-until-stream-consumed.js";
2
3
  import { bindRequestContext } from "../shims/unified-request-context.js";
3
4
  import { VINEXT_DYNAMIC_STALE_TIME_HEADER, VINEXT_RSC_COMPLETION_METADATA_HEADER } from "./headers.js";
4
5
  import { internalServerErrorResponse } from "./http-error-responses.js";
5
6
  import { getRequestExecutionContext } from "../shims/request-context.js";
6
- import { isRouteCacheabilityEvaluation, recordRouteCacheabilityClientTraceMetadataMarker } from "../shims/cacheability-classification.js";
7
+ import { getCdnCacheAdapter } from "../shims/cdn-cache.js";
8
+ import { getRouteCacheabilityCaptureOptions, isRouteCacheabilityEvaluation, recordRouteCacheabilityClientTraceMetadataMarker } from "../shims/cacheability-classification.js";
7
9
  import { NEVER_CACHE_CONTROL, NO_STORE_CACHE_CONTROL, applyCdnResponseHeaders, isCdnResponsePolicyHeader } from "./cache-control.js";
10
+ import "./app-rsc-render-mode.js";
8
11
  import { resolveClientStaleTimeSeconds } from "../utils/cache-control-metadata.js";
9
- import { isRenderDynamicLatched, markDynamicUsage } from "../shims/internal/headers-state.js";
10
- import { peekDynamicUsage, runWithDetachedDynamicUsage } from "../shims/headers.js";
12
+ import { isRenderDynamicLatched } from "../shims/internal/headers-state.js";
13
+ import { peekDynamicUsage } from "../shims/headers.js";
11
14
  import { runWithFetchDedupe } from "../shims/fetch-cache.js";
12
15
  import { setCacheStateHeaders } from "./cache-headers.js";
13
- import { deferUntilStreamConsumed } from "./defer-until-stream-consumed.js";
16
+ import { copyLinkHeaderProvenance, getFrameworkLinkHeader } from "./app-response-header-provenance.js";
17
+ import { traceResponseStartWithCompletion } from "./response-start-tracing.js";
18
+ import { mergeMiddlewareResponseHeaders } from "./middleware-response-headers.js";
14
19
  import { createArtifactCompatibilityEnvelope, createArtifactCompatibilityGraphVersion } from "./artifact-compatibility.js";
15
20
  import { AppElementsWire, isAppElementsRecord } from "./app-elements-wire.js";
16
21
  import "./app-elements.js";
22
+ import { appendRscCompletionMetadata } from "./rsc-completion-metadata.js";
17
23
  import { isBailoutToCSRError } from "../shims/navigation-errors.js";
18
- import { mergeMiddlewareResponseHeaders } from "./middleware-response-headers.js";
19
24
  import { applyPrerenderCacheLifeHeader, applyPrerenderCacheTagsHeader } from "./prerender-cache-life-header.js";
20
- import { copyLinkHeaderProvenance, getFrameworkLinkHeader } from "./app-response-header-provenance.js";
21
25
  import { applyClientStaleTimeHeader, applyEdgeRuntimeHeader, buildAppPageHtmlResponse, buildAppPageRscResponse, resolveAppPageHtmlResponsePolicy, resolveAppPageRscResponsePolicy, resolveUncacheableCacheControl } from "./app-page-response.js";
22
- import { buildAppPageFontLinkHeader, readAppPageBinaryStream, resolveAppPageShellSpecialError, resolveAppPageSpecialError, resolveAppPageSpecialErrorStoredHeaders, teeAppPageRscStreamForCapture } from "./app-page-execution.js";
23
- import { probeAppPageBeforeRender } from "./app-page-probe.js";
26
+ import { buildAppPageFontLinkHeader, readAppPageBinaryStream, resolveAppPageCaughtNotFoundBoundaries, resolveAppPageShellSpecialError, resolveAppPageSpecialError, resolveAppPageSpecialErrorStoredHeaders, teeAppPageRscStreamForCapture } from "./app-page-execution.js";
27
+ import { getAppPageLayoutGate } from "./app-page-layout-gate.js";
24
28
  import { hasDigest } from "./app-rsc-errors.js";
25
29
  import { recordAppPageRenderError, traceAppPageRender } from "./app-page-tracing.js";
26
- import { traceResponseStartWithCompletion } from "./response-start-tracing.js";
27
- import { DEFAULT_CACHE_VARIANT_BUDGET, buildCacheVariantWithRouteBudget, buildRenderObservation, buildRenderRequestApiObservations, createStaticLayoutArtifactReuseDecision } from "./cache-proof.js";
30
+ import { buildAppPageHtmlDocumentResponse, buildAppPageLinkHeader, createAppPageFontData, createAppPageRscErrorTracker, createAppPageSsrErrorHandler, renderAppPageHtmlStream, renderAppPageHtmlStreamWithRecovery } from "./app-page-stream.js";
28
31
  import { createAppPageHtmlOutputScope, createAppPageRenderObservation, createAppPageRscOutputScope } from "./app-page-render-observation.js";
29
- import { buildAppPageLinkHeader, createAppPageFontData, createAppPageRscErrorTracker, createAppPageSsrErrorHandler, renderAppPageHtmlStream, renderAppPageHtmlStreamWithRecovery } from "./app-page-stream.js";
30
32
  import { createAppPageRscRenderStatusResolver } from "./app-page-rsc-render-status.js";
31
33
  import { finalizeAppPageCacheabilityEvaluationResponse, finalizeAppPageHtmlCacheResponse, finalizeAppPageRscCacheResponse } from "./app-page-cache-finalizer.js";
32
- import { createStaticLayoutClientReuseArtifactCompatibility, createStaticLayoutClientReusePayloadHash, createStaticLayoutClientReuseRouteId } from "./static-layout-client-reuse-proof.js";
33
- import { appendRscCompletionMetadata } from "./rsc-completion-metadata.js";
34
- import { getStaticLayoutObservationSkipRejection } from "./app-layout-param-observation.js";
35
- import { createClientReuseSkipTransportPlan, crossCheckClientReuseManifestEntryWithCache } from "./skip-cache-proof.js";
36
34
  //#region src/server/app-page-render.ts
37
35
  function buildResponseTiming(options) {
38
36
  if (options.isProduction) return;
@@ -74,11 +72,11 @@ function applyRequestCacheLife(options) {
74
72
  * its response policy, such as error boundaries and special errors, get the
75
73
  * same header as the normal render.
76
74
  */
77
- function applyIneligibleRouteCachePolicy(response, options, probeCacheLife = null) {
75
+ function applyIneligibleRouteCachePolicy(response, options, requestCacheLife = null) {
78
76
  const cacheControl = resolveEarlyResponseCacheControl(options);
79
77
  const isRscRedirect = options.isRscRequest && response.headers.has("X-Vinext-Rsc-Redirect");
80
78
  if (!cacheControl) {
81
- const staleTimeSeconds = isRscRedirect ? resolveClientStaleTimeSeconds(probeCacheLife) : void 0;
79
+ const staleTimeSeconds = isRscRedirect ? resolveClientStaleTimeSeconds(requestCacheLife) : void 0;
82
80
  if (staleTimeSeconds === void 0) return response;
83
81
  const stamped = cloneForStamping(response);
84
82
  applyClientStaleTimeHeader(stamped.headers, staleTimeSeconds);
@@ -131,146 +129,6 @@ function createAppPageArtifactCompatibility(element, routePattern) {
131
129
  rootBoundaryId
132
130
  });
133
131
  }
134
- function readStringMetadata(element, key) {
135
- const value = element[key];
136
- return typeof value === "string" ? value : null;
137
- }
138
- function createStaticLayoutOutputScope(input) {
139
- const routeId = readStringMetadata(input.element, AppElementsWire.keys.route);
140
- if (routeId === null) return null;
141
- return {
142
- kind: "layout",
143
- layoutId: input.layoutId,
144
- rootBoundaryId: input.artifactCompatibility.rootBoundaryId,
145
- routeId
146
- };
147
- }
148
- function createRenderAndSendSkipDisposition() {
149
- return {
150
- code: "SKIP_MODEL_DISABLED",
151
- enabled: false,
152
- mode: "renderAndSend"
153
- };
154
- }
155
- function rejectStaticLayoutObservation(entry, code, fields = {}) {
156
- return {
157
- kind: "rejected",
158
- rejection: {
159
- code,
160
- entryId: entry.id,
161
- fields
162
- },
163
- skipDisposition: createRenderAndSendSkipDisposition()
164
- };
165
- }
166
- function rejectUnsafeStaticLayoutObservation(entry, layoutParamAccess) {
167
- const observation = layoutParamAccess?.getLayoutObservation(entry.id);
168
- if (!observation) return rejectStaticLayoutObservation(entry, "SKIP_LAYOUT_PARAMS_OBSERVATION_INCOMPLETE");
169
- const observationRejection = getStaticLayoutObservationSkipRejection(observation);
170
- if (observationRejection) return rejectStaticLayoutObservation(entry, observationRejection.code, observationRejection.fields);
171
- return null;
172
- }
173
- function createRenderLifecycleSkipDisposition(input) {
174
- if (!input.isRscRequest || input.clientReuseManifest === void 0) return;
175
- const clientReuseManifest = input.clientReuseManifest;
176
- if (clientReuseManifest.kind !== "parsed" || clientReuseManifest.manifest.entries.length === 0) return;
177
- if (!isAppElementsRecord(input.element) || input.artifactCompatibility === void 0) return {
178
- code: "SKIP_MODEL_DISABLED",
179
- enabled: false,
180
- mode: "renderAndSend"
181
- };
182
- const element = input.element;
183
- const artifactCompatibility = input.artifactCompatibility;
184
- const staticLayoutIds = new Set(Object.entries(input.layoutFlags).filter(([, flag]) => flag === "s").map(([layoutId]) => layoutId));
185
- return createClientReuseSkipTransportPlan({
186
- manifest: clientReuseManifest,
187
- verifyEntry(entry) {
188
- if (entry.kind !== "layout" || !staticLayoutIds.has(entry.id) || AppElementsWire.parseElementKey(entry.id)?.kind !== "layout") return crossCheckClientReuseManifestEntryWithCache({
189
- artifact: {
190
- compatibility: artifactCompatibility,
191
- invalidation: { kind: "unknown" },
192
- payloadHash: null
193
- },
194
- cacheDecision: null,
195
- entry
196
- });
197
- const currentOutput = createStaticLayoutOutputScope({
198
- artifactCompatibility,
199
- element,
200
- layoutId: entry.id
201
- });
202
- if (currentOutput === null) return crossCheckClientReuseManifestEntryWithCache({
203
- artifact: {
204
- compatibility: artifactCompatibility,
205
- invalidation: { kind: "unknown" },
206
- payloadHash: null
207
- },
208
- cacheDecision: null,
209
- entry
210
- });
211
- const observationRejection = rejectUnsafeStaticLayoutObservation(entry, input.layoutParamAccess);
212
- if (observationRejection) return observationRejection;
213
- const candidateRouteId = createStaticLayoutClientReuseRouteId(entry.id);
214
- const candidateOutput = {
215
- ...currentOutput,
216
- routeId: candidateRouteId
217
- };
218
- const candidateVariant = buildCacheVariantWithRouteBudget({
219
- budget: DEFAULT_CACHE_VARIANT_BUDGET,
220
- dimensions: [],
221
- output: candidateOutput,
222
- routeBudget: {
223
- routeId: candidateRouteId,
224
- variantCacheKeys: []
225
- }
226
- });
227
- const skipArtifactCompatibility = candidateVariant.kind === "variant" ? createStaticLayoutClientReuseArtifactCompatibility({
228
- artifactCompatibility,
229
- layoutId: entry.id,
230
- rootBoundaryId: candidateOutput.rootBoundaryId,
231
- routeId: candidateOutput.routeId,
232
- variantCacheKey: candidateVariant.variant.cacheKey
233
- }) : artifactCompatibility;
234
- const cacheDecision = createStaticLayoutArtifactReuseDecision({
235
- candidateArtifactCompatibility: skipArtifactCompatibility,
236
- candidateObservation: buildRenderObservation({
237
- boundaryOutcome: { kind: "success" },
238
- cacheability: "public",
239
- cacheTags: [],
240
- completeness: "complete",
241
- dynamicFetches: [],
242
- output: candidateOutput,
243
- pathTags: [input.cleanPathname],
244
- requestApis: buildRenderRequestApiObservations({
245
- completeness: "complete",
246
- observed: []
247
- })
248
- }),
249
- candidateVariant,
250
- currentArtifactCompatibility: skipArtifactCompatibility,
251
- currentOutput
252
- });
253
- return crossCheckClientReuseManifestEntryWithCache({
254
- artifact: {
255
- compatibility: skipArtifactCompatibility,
256
- invalidation: { kind: "valid" },
257
- payloadHash: candidateVariant.kind === "variant" ? createStaticLayoutClientReusePayloadHash({
258
- artifactCompatibility: skipArtifactCompatibility,
259
- layoutId: entry.id,
260
- rootBoundaryId: candidateOutput.rootBoundaryId,
261
- routeId: candidateOutput.routeId,
262
- variantCacheKey: candidateVariant.variant.cacheKey
263
- }) : null
264
- },
265
- cacheDecision,
266
- entry
267
- });
268
- }
269
- }).skipDisposition;
270
- }
271
- function isSkipTransportEnabled(skipDisposition) {
272
- return skipDisposition?.enabled === true;
273
- }
274
132
  /**
275
133
  * Wraps an RSC response body to report invalid dynamic usage errors after the
276
134
  * stream is fully consumed. In dev mode, errors from cookies()/headers() inside
@@ -389,27 +247,6 @@ async function renderAppPageLifecycleImpl(options, renderSpan) {
389
247
  }
390
248
  return dynamicUsageObserved;
391
249
  };
392
- const probeOutcome = await runWithDetachedDynamicUsage(() => probeAppPageBeforeRender({
393
- skipProbes: options.pprFallbackShellSignal !== void 0,
394
- layoutCount: options.layoutCount,
395
- probeLayoutAt(layoutIndex) {
396
- return options.probeLayoutAt(layoutIndex);
397
- },
398
- renderLayoutSpecialError(specialError, layoutIndex) {
399
- return options.renderLayoutSpecialError(specialError, layoutIndex);
400
- },
401
- resolveSpecialError: resolveAppPageSpecialError,
402
- runWithSuppressedHookWarning(probe) {
403
- return options.runWithSuppressedHookWarning(probe);
404
- },
405
- classification: options.classification
406
- }));
407
- const preRenderResult = probeOutcome.result;
408
- if (preRenderResult.response) {
409
- if (probeOutcome.dynamicDetected) markDynamicUsage();
410
- return applyIneligibleRouteCachePolicy(preRenderResult.response, options, probeOutcome.cacheLife);
411
- }
412
- const layoutFlags = preRenderResult.layoutFlags;
413
250
  const artifactCompatibility = createAppPageArtifactCompatibility(options.element, options.routePattern);
414
251
  const rootBoundaryId = artifactCompatibility?.rootBoundaryId ?? null;
415
252
  const renderEpoch = artifactCompatibility?.renderEpoch ?? null;
@@ -426,23 +263,13 @@ async function renderAppPageLifecycleImpl(options, renderSpan) {
426
263
  rootBoundaryId,
427
264
  routePattern: options.routePattern
428
265
  });
429
- const skipDisposition = options.skipDisposition ?? createRenderLifecycleSkipDisposition({
430
- artifactCompatibility,
431
- cleanPathname: options.cleanPathname,
432
- clientReuseManifest: options.clientReuseManifest,
433
- element: options.element,
434
- isRscRequest: options.isRscRequest,
435
- layoutFlags,
436
- layoutParamAccess: options.layoutParamAccess
437
- });
438
- const shouldBypassRscCache = options.isRscRequest && isSkipTransportEnabled(skipDisposition) || options.bypassInterceptionContextCache === true;
266
+ const isPartialPayload = options.isRscRequest && isAppElementsRecord(options.element) && Object.hasOwn(options.element, AppElementsWire.keys.skippedLayoutIds);
267
+ const shouldBypassRscCache = options.bypassInterceptionContextCache === true || isPartialPayload;
439
268
  const dynamicStaleTimeSeconds = options.dynamicStaleTimeSeconds ?? resolveConfiguredDynamicStaleTimeSeconds();
440
269
  const outgoingElement = AppElementsWire.encodeOutgoingPayload({
441
270
  element: options.element,
442
- layoutFlags,
443
271
  ...dynamicStaleTimeSeconds !== void 0 && options.isPrerender !== true && !options.isForceStatic ? { dynamicStaleTimeSeconds } : {},
444
- ...artifactCompatibility ? { artifactCompatibility } : {},
445
- skipDisposition: options.isRscRequest ? skipDisposition : void 0
272
+ ...artifactCompatibility ? { artifactCompatibility } : {}
446
273
  });
447
274
  const compileEnd = options.isProduction ? void 0 : performance.now();
448
275
  const errorContextOverrides = {
@@ -453,6 +280,7 @@ async function renderAppPageLifecycleImpl(options, renderSpan) {
453
280
  ...options.isPrerender ? { revalidateReason: "stale" } : {}
454
281
  };
455
282
  const baseOnError = options.createRscOnErrorHandler(options.cleanPathname, options.routePattern, errorContextOverrides);
283
+ const layoutGate = options.isRscRequest && options.isPrerender !== true && options.pprFallbackShellSignal === void 0 ? getAppPageLayoutGate(options.element) : null;
456
284
  const rscErrorTracker = createAppPageRscErrorTracker((error, requestInfo, errorContext) => {
457
285
  if (renderSpan) recordAppPageRenderError(renderSpan, error);
458
286
  return baseOnError(error, requestInfo, errorContext);
@@ -471,6 +299,24 @@ async function renderAppPageLifecycleImpl(options, renderSpan) {
471
299
  });
472
300
  let pprFallbackShellRsc = null;
473
301
  if (options.pprFallbackShellSignal) pprFallbackShellRsc = new Uint8Array(await readAppPageBinaryStream(rscStream));
302
+ if (layoutGate) {
303
+ const [heldStream, watchedStream] = rscStream.tee();
304
+ rscStream = heldStream;
305
+ const watchedReader = watchedStream.getReader();
306
+ const renderEnded = (async () => {
307
+ while (!(await watchedReader.read()).done);
308
+ })();
309
+ const layoutFailure = await layoutGate.wait((layoutId) => isAppElementsRecord(outgoingElement) && Object.hasOwn(outgoingElement, layoutId), renderEnded);
310
+ watchedReader.cancel().catch(() => {});
311
+ const layoutSpecialError = layoutFailure ? resolveAppPageSpecialError(layoutFailure.error) : null;
312
+ if (layoutFailure && layoutSpecialError) {
313
+ rscStream.cancel().catch(() => {});
314
+ return applyIneligibleRouteCachePolicy(await options.renderPageSpecialError(layoutSpecialError.kind === "http-access-fallback" ? {
315
+ ...layoutSpecialError,
316
+ layoutIndex: layoutFailure.layoutIndex
317
+ } : layoutSpecialError), options, options.peekRequestCacheLife?.() ?? options.getRequestCacheLife());
318
+ }
319
+ }
474
320
  let revalidateSeconds = options.revalidateSeconds;
475
321
  let expireSeconds = options.expireSeconds;
476
322
  const shouldWaitForAllReady = options.isPrerender === true && options.isSpeculativePrerender !== true || options.renderWholeDocument === true;
@@ -488,10 +334,47 @@ async function renderAppPageLifecycleImpl(options, renderSpan) {
488
334
  const rscForResponse = rscCapture.ssrStream;
489
335
  const capturedRscDataRef = { value: null };
490
336
  if (rscCapture.sideStream && options.isRscRequest) capturedRscDataRef.value = readAppPageBinaryStream(rscCapture.sideStream);
337
+ const resolveInitialNavigationCacheMetadata = (dynamicUsed, requestCacheLife) => {
338
+ let kind;
339
+ if (options.isForceStatic) kind = "static";
340
+ else if (options.isForceDynamic || dynamicUsed) kind = "dynamic";
341
+ else {
342
+ const observation = options.peekRenderObservationState?.();
343
+ kind = observation && (observation.dynamicFetches.length > 0 || observation.requestApis.length > 0) ? "dynamic" : "static";
344
+ }
345
+ const staleTimeSeconds = resolveClientStaleTimeSeconds(requestCacheLife);
346
+ return {
347
+ kind,
348
+ ...kind === "dynamic" && dynamicStaleTimeSeconds !== void 0 && options.isPrerender !== true ? { dynamicStaleTimeSeconds } : {},
349
+ ...staleTimeSeconds === void 0 ? {} : { staleTimeSeconds: Math.floor(staleTimeSeconds) }
350
+ };
351
+ };
491
352
  if (options.isRscRequest) {
492
- const resolveRscRenderStatus = options.isProduction && shouldCaptureRscForCacheMetadata && capturedRscDataRef.value !== null && options.isPrerender !== true && options.isRoutePPREnabled !== true ? createAppPageRscRenderStatusResolver({
353
+ const capturedRscData = capturedRscDataRef.value;
354
+ const resolvesRscRenderStatus = options.isProduction && shouldCaptureRscForCacheMetadata && capturedRscData !== null && options.isPrerender !== true && options.isRoutePPREnabled !== true;
355
+ const isPageDocumentRender = options.isCacheCandidate === true && !options.scriptNonce && !options.mountedSlotsHeader && !options.interceptionContext && !options.interceptionId && (options.renderMode === void 0 || options.renderMode === "navigation");
356
+ const cdnCacheAdapter = getCdnCacheAdapter();
357
+ const captureAdmittedDocument = resolvesRscRenderStatus && isPageDocumentRender && !cdnCacheAdapter.ownsBackgroundRevalidation ? cdnCacheAdapter.captureAppPageDocument?.() : void 0;
358
+ const rendersDocument = isPageDocumentRender && (cdnCacheAdapter.ownsBackgroundRevalidation || captureAdmittedDocument !== void 0);
359
+ const resolveRscRenderStatus = resolvesRscRenderStatus ? createAppPageRscRenderStatusResolver({
493
360
  basePath: options.basePath,
494
- capturedRscData: capturedRscDataRef.value,
361
+ capturedRscData,
362
+ ...rendersDocument ? { document: {
363
+ clientTraceMetadata: options.clientTraceMetadata,
364
+ ...captureAdmittedDocument ? { deadlineAt: getRouteCacheabilityCaptureOptions()?.captureDeadlineAt } : {},
365
+ getFontData: () => createAppPageFontData({
366
+ getLinks: options.getFontLinks,
367
+ getPreloads: options.getFontPreloads,
368
+ getStyles: options.getFontStyles
369
+ }),
370
+ getInitialNavigationCacheMetadata: () => resolveInitialNavigationCacheMetadata(peekDynamicUsage(), options.peekRequestCacheLife?.()),
371
+ mirrorNextFlight: () => rscErrorTracker.getCapturedSpecialError() !== null,
372
+ onSsrError: createAppPageSsrErrorHandler(options.createRscOnErrorHandler(options.cleanPathname, options.routePattern, {
373
+ ...errorContextOverrides,
374
+ renderSource: "server-rendering"
375
+ }), rscErrorTracker.isCapturedError),
376
+ reactMaxHeadersLength: options.reactMaxHeadersLength
377
+ } } : {},
495
378
  getCapturedSpecialError: rscErrorTracker.getCapturedSpecialError,
496
379
  getCapturedSpecialErrors: rscErrorTracker.getCapturedSpecialErrors,
497
380
  isForceStatic: options.isForceStatic,
@@ -511,7 +394,7 @@ async function renderAppPageLifecycleImpl(options, renderSpan) {
511
394
  }));
512
395
  }
513
396
  const dynamicUsedDuringBuild = consumeRenderDynamicUsage();
514
- const rscResponsePolicy = shouldBypassRscCache ? { cacheControl: NO_STORE_CACHE_CONTROL } : resolveAppPageRscResponsePolicy({
397
+ const rscResponsePolicy = isPartialPayload ? { cacheControl: resolveUncacheableCacheControl(options.isProduction) } : shouldBypassRscCache ? { cacheControl: NO_STORE_CACHE_CONTROL } : resolveAppPageRscResponsePolicy({
515
398
  dynamicUsedDuringBuild,
516
399
  isDraftMode: options.isDraftMode,
517
400
  isDynamicError: options.isDynamicError,
@@ -522,7 +405,7 @@ async function renderAppPageLifecycleImpl(options, renderSpan) {
522
405
  expireSeconds,
523
406
  revalidateSeconds
524
407
  });
525
- if (shouldBypassRscCache) options.isrDebug?.(options.bypassInterceptionContextCache === true ? "RSC cache write skipped (unverified interception context)" : "RSC cache write skipped (skip transport payload)", options.cleanPathname);
408
+ if (shouldBypassRscCache) options.isrDebug?.(isPartialPayload ? "RSC cache write skipped (partial payload)" : "RSC cache write skipped (unverified interception context)", options.cleanPathname);
526
409
  const shouldEmitDynamicStaleTime = dynamicStaleTimeSeconds !== void 0 && options.isPrerender !== true && !options.isForceStatic && (dynamicUsedDuringBuild || options.isForceDynamic);
527
410
  const staleTimePending = options.isPrerender !== true && mayResolveCacheLifeAfterHeaders && !dynamicUsedDuringBuild;
528
411
  const rscResponse = buildAppPageRscResponse(rscForResponse, {
@@ -562,9 +445,22 @@ async function renderAppPageLifecycleImpl(options, renderSpan) {
562
445
  return finalizeAppPageRscCacheResponse(devRscResponse, {
563
446
  capturedRscDataPromise: options.isProduction && shouldCaptureRscForCacheMetadata ? capturedRscDataRef.value : null,
564
447
  bypassInterceptionContextCache: options.bypassInterceptionContextCache,
448
+ captureAdmittedDocument,
565
449
  cleanPathname: options.cleanPathname,
566
450
  consumeDynamicUsage: finalizeRenderDynamicUsage,
567
451
  consumeRenderObservationState,
452
+ createHtmlRenderObservation(input) {
453
+ return createAppPageRenderObservation({
454
+ boundaryOutcome: { kind: "success" },
455
+ cacheability: "public",
456
+ cacheTags: input.cacheTags,
457
+ cleanPathname: options.cleanPathname,
458
+ completeness: "complete",
459
+ output: htmlOutputScope,
460
+ params: options.navigationParams,
461
+ state: input.state
462
+ });
463
+ },
568
464
  createRscRenderObservation(input) {
569
465
  return createAppPageRenderObservation({
570
466
  boundaryOutcome: { kind: "success" },
@@ -585,6 +481,7 @@ async function renderAppPageLifecycleImpl(options, renderSpan) {
585
481
  return readRequestCacheLifeForCachePolicy(options);
586
482
  },
587
483
  isrDebug: options.isrDebug,
484
+ isrHtmlKey: options.isrHtmlKey,
588
485
  isrRscKey: options.isrRscKey,
589
486
  isrSet: options.isrSet,
590
487
  interceptionContext: options.interceptionContext,
@@ -788,22 +685,7 @@ async function renderAppPageLifecycleImpl(options, renderSpan) {
788
685
  };
789
686
  return renderAppPageHtmlStream({
790
687
  capturedRscDataRef,
791
- getInitialNavigationCacheMetadata: () => {
792
- let kind;
793
- if (options.isForceStatic) kind = "static";
794
- else if (options.isForceDynamic || dynamicUsedDuringHtmlRender || peekDynamicUsage()) kind = "dynamic";
795
- else {
796
- const observation = options.peekRenderObservationState?.();
797
- kind = observation && (observation.dynamicFetches.length > 0 || observation.requestApis.length > 0) ? "dynamic" : "static";
798
- }
799
- const requestCacheLife = options.isPrerender === true ? requestCacheLifeForPrerender ?? options.peekRequestCacheLife?.() : options.peekRequestCacheLife?.();
800
- const staleTimeSeconds = resolveClientStaleTimeSeconds(requestCacheLife);
801
- return {
802
- kind,
803
- ...kind === "dynamic" && dynamicStaleTimeSeconds !== void 0 && options.isPrerender !== true ? { dynamicStaleTimeSeconds } : {},
804
- ...staleTimeSeconds === void 0 ? {} : { staleTimeSeconds: Math.floor(staleTimeSeconds) }
805
- };
806
- },
688
+ getInitialNavigationCacheMetadata: () => resolveInitialNavigationCacheMetadata(dynamicUsedDuringHtmlRender || peekDynamicUsage(), options.isPrerender === true ? requestCacheLifeForPrerender ?? options.peekRequestCacheLife?.() : options.peekRequestCacheLife?.()),
807
689
  fontData,
808
690
  hasCustomGlobalError: options.hasCustomGlobalError,
809
691
  navigationContext: options.getNavigationContext(),
@@ -825,10 +707,11 @@ async function renderAppPageLifecycleImpl(options, renderSpan) {
825
707
  isForceStatic: options.isForceStatic,
826
708
  isCacheCandidate: isCacheCandidateHtmlRender,
827
709
  onSsrError: createAppPageSsrErrorHandler(onSsrError, rscErrorTracker.isCapturedError),
828
- mirrorNextFlight: () => rscErrorTracker.getCapturedSpecialError() !== null
710
+ mirrorNextFlight: () => rscErrorTracker.getCapturedSpecialError() !== null,
711
+ resolveCaughtNotFoundBoundaries: (error) => resolveAppPageCaughtNotFoundBoundaries(error, rscErrorTracker.getCapturedSpecialErrors(error))
829
712
  });
830
713
  },
831
- async renderSpecialErrorResponse(specialError) {
714
+ async renderSpecialErrorResponse(specialError, caughtDocument) {
832
715
  shellSpecialError = specialError;
833
716
  const mayPrerender = mayPrerenderShellSpecialError();
834
717
  if (mayStoreShellSpecialError() || mayPrerender) await settleCapturedRscRenderForCacheMetadata(capturedRscDataRef.value, peekRenderDynamicUsage);
@@ -836,7 +719,18 @@ async function renderAppPageLifecycleImpl(options, renderSpan) {
836
719
  dynamicUsed: consumeRenderDynamicUsage(),
837
720
  redirectMetadata: specialError.kind === "redirect" ? readPrerenderCacheMetadata() : null
838
721
  };
839
- return options.renderPageSpecialError(specialError, { isCacheCandidate: isCacheCandidateHtmlRender });
722
+ return options.renderPageSpecialError(specialError, {
723
+ isCacheCandidate: isCacheCandidateHtmlRender,
724
+ ...caughtDocument ? { caughtDocument: buildAppPageHtmlDocumentResponse(caughtDocument.htmlStream, {
725
+ clearRequestContext: options.clearRequestContext,
726
+ fontLinkHeader,
727
+ isEdgeRuntime: options.isEdgeRuntime,
728
+ middlewareHeaders: null,
729
+ reactLinkHeader: caughtDocument.linkHeader,
730
+ reactMaxHeadersLength: options.reactMaxHeadersLength,
731
+ status: specialError.statusCode
732
+ }) } : {}
733
+ });
840
734
  },
841
735
  resolveSpecialError(error) {
842
736
  return resolveAppPageShellSpecialError(error, rscErrorTracker.getCapturedSpecialErrors(error));
@@ -1,5 +1,4 @@
1
1
  import { AppPageSpecialError } from "./app-page-execution.js";
2
- import { AppLayoutParamAccessTracker } from "./app-layout-param-observation.js";
3
2
  //#region src/server/app-page-request.d.ts
4
3
  type AppPageParams = Record<string, string | string[]>;
5
4
  type GenerateStaticParams = (args: {
@@ -66,8 +65,11 @@ type AppPageInterceptMatch<TPage = unknown> = {
66
65
  interceptLoadings?: readonly unknown[] | null;
67
66
  interceptLoadingTreePositions?: readonly number[] | null;
68
67
  interceptNotFoundBranchSegments?: readonly string[] | null;
68
+ interceptNotFounds?: readonly unknown[] | null;
69
+ interceptNotFoundTreePositions?: readonly number[] | null;
69
70
  __loadInterceptLayouts?: readonly (() => Promise<unknown>)[] | null;
70
71
  __loadInterceptLoadings?: readonly (() => Promise<unknown>)[] | null;
72
+ __loadInterceptNotFounds?: readonly (() => Promise<unknown>)[] | null;
71
73
  matchedParams: AppPageParams;
72
74
  sourceMatchedParams?: AppPageParams;
73
75
  page: TPage;
@@ -75,6 +77,15 @@ type AppPageInterceptMatch<TPage = unknown> = {
75
77
  notFound?: unknown;
76
78
  __loadNotFound?: (() => Promise<unknown>) | null;
77
79
  notFoundTreePosition?: number | null;
80
+ interceptForbiddens?: readonly unknown[] | null;
81
+ interceptForbiddenTreePositions?: readonly number[] | null;
82
+ __loadInterceptForbiddens?: readonly (() => Promise<unknown>)[] | null;
83
+ interceptUnauthorizeds?: readonly unknown[] | null;
84
+ interceptUnauthorizedTreePositions?: readonly number[] | null;
85
+ __loadInterceptUnauthorizeds?: readonly (() => Promise<unknown>)[] | null;
86
+ interceptErrors?: readonly unknown[] | null;
87
+ interceptErrorTreePositions?: readonly number[] | null;
88
+ __loadInterceptErrors?: readonly (() => Promise<unknown>)[] | null;
78
89
  __loadState?: {
79
90
  page: TPage;
80
91
  pageLoading: Promise<TPage> | null;
@@ -108,7 +119,7 @@ type ResolveAppPageInterceptionRerenderTargetResult<TRoute, TInterceptOpts> = {
108
119
  type ResolveAppPageActionRerenderTargetOptions<TRoute, TPage, TInterceptOpts> = ResolveAppPageInterceptionRerenderTargetOptions<TRoute, TPage, TInterceptOpts>;
109
120
  type ResolveAppPageActionRerenderTargetResult<TRoute, TInterceptOpts> = ResolveAppPageInterceptionRerenderTargetResult<TRoute, TInterceptOpts>;
110
121
  type ResolveAppPageInterceptOptions<TRoute, TPage, TInterceptOpts, TElement> = {
111
- buildPageElement: (route: TRoute, params: AppPageParams, interceptOpts: TInterceptOpts | undefined, searchParams: URLSearchParams, layoutParamAccess?: AppLayoutParamAccessTracker, buildOptions?: {
122
+ buildPageElement: (route: TRoute, params: AppPageParams, interceptOpts: TInterceptOpts | undefined, searchParams: URLSearchParams, buildOptions?: {
112
123
  observeMetadataSearchParamsAccess?: boolean;
113
124
  observePageSearchParamsAccess?: boolean;
114
125
  }) => Promise<TElement>;
@@ -118,7 +129,6 @@ type ResolveAppPageInterceptOptions<TRoute, TPage, TInterceptOpts, TElement> = {
118
129
  getRouteParamNames: (route: TRoute) => readonly string[];
119
130
  getSourceRoute: (sourceRouteIndex: number) => Awaitable<TRoute | undefined>;
120
131
  isRscRequest: boolean;
121
- layoutParamAccess?: AppLayoutParamAccessTracker;
122
132
  resolveNavigationParams: (route: TRoute, params: AppPageParams, pathname: string, interceptOpts: TInterceptOpts) => AppPageParams;
123
133
  renderInterceptResponse: (route: TRoute, element: TElement) => Promise<Response> | Response;
124
134
  resolveSearchParams?: (route: TRoute, searchParams: URLSearchParams) => Awaitable<URLSearchParams>;
@@ -140,4 +150,5 @@ export declare function resolveAppPageInterceptionRerenderTarget<TRoute, TPage,
140
150
  export declare function resolveAppPageActionRerenderTarget<TRoute, TPage, TInterceptOpts>(options: ResolveAppPageActionRerenderTargetOptions<TRoute, TPage, TInterceptOpts>): Promise<ResolveAppPageActionRerenderTargetResult<TRoute, TInterceptOpts>>;
141
151
  export declare function resolveAppPageIntercept<TRoute, TPage, TInterceptOpts, TElement>(options: ResolveAppPageInterceptOptions<TRoute, TPage, TInterceptOpts, TElement>): Promise<ResolveAppPageInterceptResult<TInterceptOpts>>;
142
152
  export declare function buildAppPageElement<TElement>(options: BuildAppPageElementOptions<TElement>): Promise<BuildAppPageElementResult<TElement>>;
143
- //#endregion
153
+ //#endregion
154
+ export {};
@@ -283,7 +283,7 @@ async function resolveAppPageInterceptState(options) {
283
283
  if (!intercept) return { kind: "none" };
284
284
  await loadAppInterceptPage(intercept);
285
285
  await loadAppInterceptNotFound(intercept);
286
- if (intercept.__loadInterceptLayouts || intercept.__loadInterceptLoadings) await loadAppInterceptLayouts(intercept);
286
+ if (intercept.__loadInterceptLayouts || intercept.__loadInterceptLoadings || intercept.__loadInterceptNotFounds || intercept.__loadInterceptForbiddens || intercept.__loadInterceptUnauthorizeds || intercept.__loadInterceptErrors) await loadAppInterceptLayouts(intercept);
287
287
  const sourceRoute = await options.getSourceRoute(intercept.sourceRouteIndex);
288
288
  if (!sourceRoute) return { kind: "none" };
289
289
  if (sourceRoute === options.currentRoute) return {
@@ -353,7 +353,7 @@ async function resolveAppPageIntercept(options) {
353
353
  pathname: options.cleanPathname,
354
354
  searchParams: renderSearchParams
355
355
  });
356
- const interceptElement = await options.buildPageElement(renderRoute, renderParams, interceptOpts, renderSearchParams, options.layoutParamAccess);
356
+ const interceptElement = await options.buildPageElement(renderRoute, renderParams, interceptOpts, renderSearchParams);
357
357
  return {
358
358
  interceptOpts: void 0,
359
359
  response: await options.renderInterceptResponse(renderRoute, interceptElement)
@@ -2,14 +2,14 @@ import { VINEXT_MOUNTED_SLOTS_HEADER, VINEXT_RSC_VARY_HEADER } from "./app-rsc-v
2
2
  import { NEXT_CACHE_TAGS_HEADER, NEXT_ROUTER_STALE_TIME_HEADER, VINEXT_DYNAMIC_STALE_TIME_HEADER, VINEXT_PARAMS_HEADER, VINEXT_RENDERED_PATH_AND_SEARCH_HEADER, VINEXT_STALE_TIME_PENDING_HEADER, VINEXT_TIMING_HEADER } from "./headers.js";
3
3
  import { NEVER_CACHE_CONTROL, NO_STORE_CACHE_CONTROL, STATIC_CACHE_CONTROL, buildRevalidateCacheControl } from "./cache-control.js";
4
4
  import { setCacheStateHeaders } from "./cache-headers.js";
5
- import { VINEXT_RSC_CONTENT_TYPE, applyRscCompatibilityIdHeader, applyRscDeploymentIdHeader } from "./app-rsc-cache-busting.js";
5
+ import { markFrameworkLinkHeaders } from "./app-response-header-provenance.js";
6
6
  import { mergeMiddlewareResponseHeaders } from "./middleware-response-headers.js";
7
+ import { VINEXT_RSC_CONTENT_TYPE, applyRscCompatibilityIdHeader, applyRscDeploymentIdHeader } from "./app-rsc-cache-busting.js";
7
8
  import { applyPrerenderCacheLifeHeader } from "./prerender-cache-life-header.js";
8
- import { markFrameworkLinkHeaders } from "./app-response-header-provenance.js";
9
9
  //#region src/server/app-page-response.ts
10
10
  function applyTimingHeader(headers, timing) {
11
11
  if (!timing) return;
12
- const handlerStart = Math.round(timing.handlerStart);
12
+ const handlerStart = Math.round(Date.now() - (performance.now() - timing.handlerStart));
13
13
  const compileMs = timing.compileEnd !== void 0 ? Math.round(timing.compileEnd - timing.handlerStart) : -1;
14
14
  const renderMs = timing.responseKind === "html" && timing.renderEnd !== void 0 && timing.compileEnd !== void 0 ? Math.round(timing.renderEnd - timing.compileEnd) : -1;
15
15
  headers.set(VINEXT_TIMING_HEADER, `${handlerStart},${compileMs},${renderMs}`);