vinext 1.3.0 → 1.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (391) hide show
  1. package/dist/_virtual/_rolldown/runtime.js +1 -1
  2. package/dist/build/action-owner-manifest.d.ts +3 -2
  3. package/dist/build/action-owner-manifest.js +18 -2
  4. package/dist/build/app-page-static-eligibility.d.ts +17 -1
  5. package/dist/build/app-page-static-eligibility.js +80 -13
  6. package/dist/build/clean-output.d.ts +2 -1
  7. package/dist/build/client-build-config.d.ts +13 -3
  8. package/dist/build/client-build-config.js +46 -9
  9. package/dist/build/client-reference-async.d.ts +48 -0
  10. package/dist/build/client-reference-async.js +123 -0
  11. package/dist/build/client-reference-chunks.d.ts +32 -0
  12. package/dist/build/client-reference-chunks.js +111 -0
  13. package/dist/build/client-reference-groups.d.ts +9 -1
  14. package/dist/build/client-reference-groups.js +40 -2
  15. package/dist/build/css-url-assets.d.ts +2 -1
  16. package/dist/build/google-fonts/fallback-metrics.d.ts +2 -1
  17. package/dist/build/google-fonts/find-font-files-in-css.d.ts +1 -0
  18. package/dist/build/google-fonts/find-font-files-in-css.js +17 -4
  19. package/dist/build/google-fonts/font-metadata.d.ts +2 -1
  20. package/dist/build/google-fonts/validate.d.ts +2 -1
  21. package/dist/build/inline-css.d.ts +2 -1
  22. package/dist/build/layout-classification.d.ts +2 -1
  23. package/dist/build/module-dependency-cache.d.ts +2 -1
  24. package/dist/build/next-client-runtime-manifests.d.ts +2 -1
  25. package/dist/build/precompress.d.ts +2 -1
  26. package/dist/build/precompress.js +1 -1
  27. package/dist/build/prerender-paths.d.ts +2 -1
  28. package/dist/build/prerender-phase.d.ts +2 -1
  29. package/dist/build/prerender-server-pool.js +1 -1
  30. package/dist/build/prerender.d.ts +3 -2
  31. package/dist/build/prerender.js +5 -4
  32. package/dist/build/report.d.ts +2 -1
  33. package/dist/build/route-classification-injector.d.ts +2 -1
  34. package/dist/build/route-classification-manifest.d.ts +2 -1
  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 +4 -0
  43. package/dist/cli-args.d.ts +2 -1
  44. package/dist/cli.js +2 -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/index.js +1 -2
  51. package/dist/client/instrumentation-client-state.js +5 -5
  52. package/dist/client/navigation-runtime.d.ts +3 -1
  53. package/dist/client/navigation-runtime.js +1 -1
  54. package/dist/client/pages-router-link-navigation.d.ts +2 -1
  55. package/dist/client/vinext-next-data.d.ts +25 -1
  56. package/dist/client/window-next.d.ts +2 -1
  57. package/dist/config/config-matchers.d.ts +12 -1
  58. package/dist/config/config-matchers.js +111 -16
  59. package/dist/config/dotenv.d.ts +2 -1
  60. package/dist/config/next-config.d.ts +13 -1
  61. package/dist/config/next-config.js +29 -4
  62. package/dist/config/tsconfig-paths.d.ts +2 -1
  63. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/detector.js +23 -0
  64. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/index.js +2 -0
  65. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/lookup.js +25 -0
  66. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/bmp.js +11 -0
  67. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/cur.js +15 -0
  68. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/dds.js +11 -0
  69. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/gif.js +12 -0
  70. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/heif.js +55 -0
  71. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/icns.js +76 -0
  72. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/ico.js +39 -0
  73. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/index.js +46 -0
  74. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/j2c.js +11 -0
  75. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/jp2.js +21 -0
  76. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/jpg.js +71 -0
  77. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/jxl-stream.js +42 -0
  78. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/jxl.js +46 -0
  79. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/ktx.js +19 -0
  80. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/png.js +28 -0
  81. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/pnm.js +54 -0
  82. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/psd.js +11 -0
  83. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/svg.js +79 -0
  84. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/tga.js +15 -0
  85. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/tiff.js +96 -0
  86. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/utils.js +53 -0
  87. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/webp.js +45 -0
  88. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/utils/bit-reader.js +38 -0
  89. package/dist/deps/.pnpm/ua-parser-js@1.0.35/deps/ua-parser-js/src/ua-parser.js +2 -2
  90. package/dist/entries/app-browser-entry.d.ts +20 -5
  91. package/dist/entries/app-browser-entry.js +79 -6
  92. package/dist/entries/app-rsc-entry.d.ts +2 -1
  93. package/dist/entries/app-rsc-entry.js +42 -12
  94. package/dist/entries/app-rsc-manifest.d.ts +2 -1
  95. package/dist/entries/app-rsc-manifest.js +53 -0
  96. package/dist/entries/pages-entry-helpers.js +1 -2
  97. package/dist/entries/pages-server-entry.d.ts +2 -1
  98. package/dist/entries/pages-server-entry.js +1 -1
  99. package/dist/entries/runtime-entry-module.d.ts +1 -0
  100. package/dist/entries/runtime-entry-module.js +4 -1
  101. package/dist/image/image-adapters-virtual.d.ts +2 -1
  102. package/dist/index.js +102 -34
  103. package/dist/plugins/client-compile-hints.d.ts +30 -0
  104. package/dist/plugins/client-compile-hints.js +88 -0
  105. package/dist/plugins/client-reference-dedup.d.ts +2 -1
  106. package/dist/plugins/cloudflare-dev-module-urls.d.ts +2 -1
  107. package/dist/plugins/dynamic-preload-metadata.d.ts +3 -1
  108. package/dist/plugins/dynamic-preload-metadata.js +1 -1
  109. package/dist/plugins/environment.d.ts +2 -1
  110. package/dist/plugins/fonts.js +9 -12
  111. package/dist/plugins/ignore-dynamic-requests.d.ts +2 -1
  112. package/dist/plugins/import-meta-url.d.ts +2 -1
  113. package/dist/plugins/og-assets.d.ts +2 -1
  114. package/dist/plugins/og-assets.js +2 -3
  115. package/dist/plugins/optimize-imports.d.ts +2 -1
  116. package/dist/plugins/pages-node-externals.d.ts +2 -1
  117. package/dist/plugins/remove-console.d.ts +2 -1
  118. package/dist/plugins/require-condition-resolution.d.ts +2 -1
  119. package/dist/plugins/rsc-client-reference-loaders.d.ts +8 -0
  120. package/dist/plugins/rsc-client-reference-loaders.js +170 -68
  121. package/dist/plugins/rsc-client-shim-excludes.js +2 -0
  122. package/dist/plugins/sass.d.ts +2 -1
  123. package/dist/plugins/strip-server-exports.d.ts +2 -1
  124. package/dist/plugins/styled-jsx.d.ts +2 -1
  125. package/dist/plugins/transform-result.d.ts +2 -1
  126. package/dist/plugins/typeof-window.d.ts +2 -1
  127. package/dist/plugins/worker-image-imports.js +1 -1
  128. package/dist/plugins/worker-use-server.d.ts +2 -1
  129. package/dist/routing/app-route-graph.d.ts +40 -0
  130. package/dist/routing/app-route-graph.js +122 -50
  131. package/dist/routing/browser-route-manifest.d.ts +2 -1
  132. package/dist/routing/optimistic-route-trie.d.ts +2 -1
  133. package/dist/routing/route-matching.d.ts +2 -1
  134. package/dist/routing/route-pattern.d.ts +2 -1
  135. package/dist/server/accept-encoding.d.ts +2 -1
  136. package/dist/server/app-action-forwarding.d.ts +2 -1
  137. package/dist/server/app-bfcache-identity.d.ts +2 -1
  138. package/dist/server/app-browser-action-result.d.ts +2 -1
  139. package/dist/server/app-browser-client-reuse-manifest.d.ts +2 -1
  140. package/dist/server/app-browser-entry.js +30 -6
  141. package/dist/server/app-browser-error.d.ts +2 -1
  142. package/dist/server/app-browser-history-controller.d.ts +2 -1
  143. package/dist/server/app-browser-hydration.d.ts +2 -1
  144. package/dist/server/app-browser-interception-context.d.ts +2 -1
  145. package/dist/server/app-browser-navigation-controller.js +15 -10
  146. package/dist/server/app-browser-popstate.d.ts +2 -1
  147. package/dist/server/app-browser-rsc-redirect.d.ts +2 -1
  148. package/dist/server/app-browser-server-action-client.d.ts +2 -1
  149. package/dist/server/app-browser-state.js +1 -1
  150. package/dist/server/app-browser-stream.d.ts +2 -1
  151. package/dist/server/app-browser-visible-commit.d.ts +2 -1
  152. package/dist/server/app-client-reference-manifest.d.ts +31 -0
  153. package/dist/server/app-client-reference-manifest.js +46 -0
  154. package/dist/server/app-client-reference-preloader.d.ts +25 -5
  155. package/dist/server/app-client-reference-preloader.js +22 -7
  156. package/dist/server/app-elements-wire.d.ts +2 -1
  157. package/dist/server/app-elements.d.ts +2 -0
  158. package/dist/server/app-elements.js +3 -1
  159. package/dist/server/app-fallback-renderer.d.ts +9 -2
  160. package/dist/server/app-fallback-renderer.js +4 -1
  161. package/dist/server/app-history-state.d.ts +2 -1
  162. package/dist/server/app-inline-css-client.d.ts +2 -1
  163. package/dist/server/app-layout-param-observation.d.ts +2 -1
  164. package/dist/server/app-metadata-tracing.d.ts +2 -1
  165. package/dist/server/app-optimistic-routing.d.ts +18 -1
  166. package/dist/server/app-optimistic-routing.js +34 -1
  167. package/dist/server/app-page-boundary-render.d.ts +20 -2
  168. package/dist/server/app-page-boundary-render.js +221 -38
  169. package/dist/server/app-page-boundary.d.ts +34 -5
  170. package/dist/server/app-page-boundary.js +40 -7
  171. package/dist/server/app-page-cache-finalizer.d.ts +2 -1
  172. package/dist/server/app-page-cache-finalizer.js +1 -1
  173. package/dist/server/app-page-cache-render.d.ts +10 -2
  174. package/dist/server/app-page-cache-render.js +14 -2
  175. package/dist/server/app-page-cache.js +2 -2
  176. package/dist/server/app-page-dispatch.d.ts +34 -1
  177. package/dist/server/app-page-dispatch.js +163 -34
  178. package/dist/server/app-page-element-builder.d.ts +17 -1
  179. package/dist/server/app-page-element-builder.js +187 -66
  180. package/dist/server/app-page-execution.d.ts +28 -1
  181. package/dist/server/app-page-execution.js +114 -5
  182. package/dist/server/app-page-head.d.ts +95 -3
  183. package/dist/server/app-page-head.js +307 -152
  184. package/dist/server/app-page-http-access-fallback-metadata.d.ts +48 -2
  185. package/dist/server/app-page-http-access-fallback-metadata.js +76 -1
  186. package/dist/server/app-page-method.d.ts +2 -1
  187. package/dist/server/app-page-probe.d.ts +2 -1
  188. package/dist/server/app-page-render-identity.d.ts +2 -1
  189. package/dist/server/app-page-render.d.ts +7 -1
  190. package/dist/server/app-page-render.js +35 -10
  191. package/dist/server/app-page-request.d.ts +14 -1
  192. package/dist/server/app-page-request.js +1 -1
  193. package/dist/server/app-page-route-wiring.d.ts +52 -2
  194. package/dist/server/app-page-route-wiring.js +197 -47
  195. package/dist/server/app-page-rsc-render-status.d.ts +2 -1
  196. package/dist/server/app-page-search-params-observation.d.ts +7 -2
  197. package/dist/server/app-page-search-params-observation.js +8 -1
  198. package/dist/server/app-page-segment-plan.d.ts +2 -1
  199. package/dist/server/app-page-stream.d.ts +31 -1
  200. package/dist/server/app-page-stream.js +23 -4
  201. package/dist/server/app-pages-bridge.d.ts +2 -1
  202. package/dist/server/app-ppr-fallback-shell-render.d.ts +2 -1
  203. package/dist/server/app-ppr-fallback-shell.d.ts +2 -1
  204. package/dist/server/app-prerender-endpoints.d.ts +2 -1
  205. package/dist/server/app-prerender-static-params.d.ts +2 -1
  206. package/dist/server/app-render-dependency.d.ts +11 -1
  207. package/dist/server/app-render-dependency.js +26 -7
  208. package/dist/server/app-request-stage-independent-entry.d.ts +2 -1
  209. package/dist/server/app-response-stage-entry.d.ts +2 -1
  210. package/dist/server/app-route-handler-cache.d.ts +2 -1
  211. package/dist/server/app-route-handler-dispatch.d.ts +2 -1
  212. package/dist/server/app-route-handler-dispatch.js +1 -1
  213. package/dist/server/app-route-handler-execution.d.ts +2 -1
  214. package/dist/server/app-route-handler-response.d.ts +2 -1
  215. package/dist/server/app-route-handler-runtime.d.ts +2 -1
  216. package/dist/server/app-route-module-loader.d.ts +18 -1
  217. package/dist/server/app-route-module-loader.js +8 -0
  218. package/dist/server/app-route-tree-prefetch.d.ts +2 -1
  219. package/dist/server/app-rsc-error-handler.d.ts +2 -1
  220. package/dist/server/app-rsc-errors.d.ts +2 -1
  221. package/dist/server/app-rsc-handler.d.ts +2 -1
  222. package/dist/server/app-rsc-handler.js +6 -10
  223. package/dist/server/app-rsc-response-finalizer.d.ts +2 -1
  224. package/dist/server/app-rsc-route-matching.d.ts +38 -1
  225. package/dist/server/app-rsc-route-matching.js +24 -0
  226. package/dist/server/app-segment-config.d.ts +2 -1
  227. package/dist/server/app-segment-config.js +1 -14
  228. package/dist/server/app-server-action-execution.d.ts +2 -1
  229. package/dist/server/app-server-action-execution.js +3 -3
  230. package/dist/server/app-ssr-entry.d.ts +6 -0
  231. package/dist/server/app-ssr-entry.js +91 -44
  232. package/dist/server/app-ssr-error-meta.d.ts +2 -1
  233. package/dist/server/app-ssr-search-params-gate.d.ts +2 -1
  234. package/dist/server/app-ssr-stream.d.ts +22 -10
  235. package/dist/server/app-ssr-stream.js +299 -67
  236. package/dist/server/app-static-generation.d.ts +2 -1
  237. package/dist/server/app-streamed-client-references.d.ts +39 -0
  238. package/dist/server/app-streamed-client-references.js +156 -0
  239. package/dist/server/app-visited-response-cache.d.ts +2 -1
  240. package/dist/server/app-worker-stages.d.ts +2 -1
  241. package/dist/server/artifact-compatibility.d.ts +2 -1
  242. package/dist/server/bfcache-identity.d.ts +2 -1
  243. package/dist/server/cache-headers.d.ts +2 -1
  244. package/dist/server/cacheability-request.d.ts +2 -1
  245. package/dist/server/client-reuse-manifest.d.ts +2 -1
  246. package/dist/server/config-headers.d.ts +2 -1
  247. package/dist/server/csp.d.ts +2 -1
  248. package/dist/server/default-global-not-found-module.d.ts +2 -1
  249. package/dist/server/default-http-access-fallback-modules.d.ts +33 -0
  250. package/dist/server/default-http-access-fallback-modules.js +31 -0
  251. package/dist/server/defer-until-stream-consumed.d.ts +34 -0
  252. package/dist/server/defer-until-stream-consumed.js +154 -21
  253. package/dist/server/dev-lockfile.d.ts +32 -2
  254. package/dist/server/dev-lockfile.js +46 -2
  255. package/dist/server/dev-module-runner.d.ts +2 -1
  256. package/dist/server/dev-server.js +10 -3
  257. package/dist/server/fetch-handler.js +1 -2
  258. package/dist/server/file-based-metadata.d.ts +2 -1
  259. package/dist/server/framework-tracer.d.ts +2 -1
  260. package/dist/server/html.d.ts +1 -0
  261. package/dist/server/html.js +19 -1
  262. package/dist/server/http-conditional.d.ts +2 -1
  263. package/dist/server/http-error-responses.d.ts +2 -1
  264. package/dist/server/implicit-tags.d.ts +2 -1
  265. package/dist/server/metadata-route-build-data.d.ts +2 -1
  266. package/dist/server/metadata-route-build-data.js +1 -1
  267. package/dist/server/metadata-route-response.d.ts +2 -1
  268. package/dist/server/metadata-route-response.js +1 -1
  269. package/dist/server/metadata-routes.d.ts +2 -1
  270. package/dist/server/middleware-runtime.d.ts +2 -1
  271. package/dist/server/navigation-trace.d.ts +2 -1
  272. package/dist/server/next-error-digest.d.ts +2 -1
  273. package/dist/server/nitro-public-files-plugin.d.ts +2 -1
  274. package/dist/server/nitro-public-files.d.ts +2 -1
  275. package/dist/server/opentelemetry-api.d.ts +2 -1
  276. package/dist/server/operation-token.d.ts +2 -1
  277. package/dist/server/pages-api-route.d.ts +2 -1
  278. package/dist/server/pages-asset-tags.d.ts +2 -1
  279. package/dist/server/pages-body-parser-config.d.ts +2 -1
  280. package/dist/server/pages-client-assets.d.ts +4 -0
  281. package/dist/server/pages-data-route.d.ts +2 -1
  282. package/dist/server/pages-document-asset-props.d.ts +2 -1
  283. package/dist/server/pages-document-initial-props.d.ts +2 -1
  284. package/dist/server/pages-execution-tracing.d.ts +2 -1
  285. package/dist/server/pages-execution-tracing.js +1 -1
  286. package/dist/server/pages-get-initial-props.d.ts +2 -1
  287. package/dist/server/pages-page-data.d.ts +7 -1
  288. package/dist/server/pages-page-data.js +35 -12
  289. package/dist/server/pages-page-handler.d.ts +3 -2
  290. package/dist/server/pages-page-handler.js +16 -7
  291. package/dist/server/pages-page-method.d.ts +2 -1
  292. package/dist/server/pages-page-response.d.ts +2 -1
  293. package/dist/server/pages-preview.d.ts +2 -1
  294. package/dist/server/pages-readiness.d.ts +2 -1
  295. package/dist/server/pages-request-pipeline.d.ts +2 -1
  296. package/dist/server/pages-request-pipeline.js +4 -5
  297. package/dist/server/pages-request-stage-entry.d.ts +2 -1
  298. package/dist/server/pages-response-stage-entry.d.ts +2 -1
  299. package/dist/server/pages-route-data-kind.d.ts +2 -1
  300. package/dist/server/prerender-cache-life-header.d.ts +2 -1
  301. package/dist/server/prerender-route-params.d.ts +2 -1
  302. package/dist/server/prod-server.js +9 -3
  303. package/dist/server/request-log.d.ts +2 -1
  304. package/dist/server/request-tracing.d.ts +2 -1
  305. package/dist/server/request-tracing.js +1 -1
  306. package/dist/server/response-start-tracing.js +7 -29
  307. package/dist/server/rsc-render-stream.d.ts +4 -0
  308. package/dist/server/rsc-render-stream.js +25 -0
  309. package/dist/server/seed-cache.d.ts +2 -1
  310. package/dist/server/seed-cache.js +1 -1
  311. package/dist/server/static-file-cache.d.ts +2 -1
  312. package/dist/server/static-file-cache.js +1 -0
  313. package/dist/server/static-layout-client-reuse-proof.d.ts +2 -1
  314. package/dist/server/worker-revalidation-context.d.ts +2 -1
  315. package/dist/server/worker-stages.d.ts +2 -1
  316. package/dist/shims/app.d.ts +2 -1
  317. package/dist/shims/cache-callable-runtime.d.ts +2 -1
  318. package/dist/shims/cache-handler.d.ts +8 -3
  319. package/dist/shims/cache-handler.js +29 -9
  320. package/dist/shims/caught-not-found-boundaries.d.ts +15 -0
  321. package/dist/shims/caught-not-found-boundaries.js +48 -0
  322. package/dist/shims/cdn-purge-routes.d.ts +2 -1
  323. package/dist/shims/client-locale.js +2 -1
  324. package/dist/shims/client-page-root.d.ts +2 -1
  325. package/dist/shims/config.d.ts +2 -1
  326. package/dist/shims/default-forbidden.d.ts +4 -0
  327. package/dist/shims/default-forbidden.js +18 -0
  328. package/dist/shims/default-not-found.d.ts +0 -5
  329. package/dist/shims/default-not-found.js +5 -41
  330. package/dist/shims/default-unauthorized.d.ts +4 -0
  331. package/dist/shims/default-unauthorized.js +18 -0
  332. package/dist/shims/error-boundary.d.ts +39 -3
  333. package/dist/shims/error-boundary.js +31 -16
  334. package/dist/shims/font-google.js +1 -2
  335. package/dist/shims/font-utils.d.ts +3 -2
  336. package/dist/shims/font-utils.js +5 -3
  337. package/dist/shims/form.js +1 -1
  338. package/dist/shims/http-access-error-fallback.d.ts +7 -0
  339. package/dist/shims/http-access-error-fallback.js +47 -0
  340. package/dist/shims/image.d.ts +1 -22
  341. package/dist/shims/internal/app-prefetch-fetch-queue.d.ts +22 -2
  342. package/dist/shims/internal/app-prefetch-fetch-queue.js +71 -18
  343. package/dist/shims/internal/app-route-prefetch-policy.d.ts +14 -3
  344. package/dist/shims/internal/app-route-prefetch-policy.js +29 -4
  345. package/dist/shims/internal/cache-context-accessor.d.ts +2 -1
  346. package/dist/shims/internal/client-reference-loader.d.ts +7 -0
  347. package/dist/shims/internal/client-reference-loader.js +91 -0
  348. package/dist/shims/internal/cookie-serialize.d.ts +2 -1
  349. package/dist/shims/internal/cookies.js +1 -2
  350. package/dist/shims/internal/headers-state.d.ts +2 -0
  351. package/dist/shims/internal/headers-state.js +6 -1
  352. package/dist/shims/internal/hybrid-client-route-owner-direct.d.ts +2 -1
  353. package/dist/shims/internal/interpolate-as.d.ts +2 -1
  354. package/dist/shims/internal/pages-data-target.d.ts +2 -1
  355. package/dist/shims/internal/pages-data-url.d.ts +2 -1
  356. package/dist/shims/internal/thenable-well-known-properties.d.ts +2 -1
  357. package/dist/shims/link.js +195 -52
  358. package/dist/shims/metadata.d.ts +32 -11
  359. package/dist/shims/metadata.js +88 -26
  360. package/dist/shims/navigation-errors.d.ts +2 -1
  361. package/dist/shims/navigation.d.ts +22 -2
  362. package/dist/shims/navigation.js +74 -20
  363. package/dist/shims/pages-router-runtime.d.ts +2 -1
  364. package/dist/shims/ppr-fallback-shell.d.ts +2 -1
  365. package/dist/shims/router.js +14 -3
  366. package/dist/shims/unified-request-context.js +3 -3
  367. package/dist/typegen.d.ts +2 -1
  368. package/dist/utils/client-build-manifest.d.ts +4 -1
  369. package/dist/utils/client-build-manifest.js +9 -2
  370. package/dist/utils/client-entry-manifest.d.ts +13 -0
  371. package/dist/utils/client-entry-manifest.js +20 -1
  372. package/dist/utils/client-reference-chunks.d.ts +45 -0
  373. package/dist/utils/client-reference-chunks.js +30 -0
  374. package/dist/utils/client-runtime-metadata.d.ts +9 -1
  375. package/dist/utils/client-runtime-metadata.js +40 -9
  376. package/dist/utils/compare.d.ts +9 -0
  377. package/dist/utils/compare.js +15 -1
  378. package/dist/utils/lazy-chunks.d.ts +14 -0
  379. package/dist/utils/lazy-chunks.js +27 -1
  380. package/dist/utils/middleware-request-headers.d.ts +2 -1
  381. package/dist/utils/project.d.ts +2 -1
  382. package/dist/utils/project.js +9 -1
  383. package/dist/utils/query.d.ts +2 -1
  384. package/dist/utils/sorted-array.d.ts +2 -1
  385. package/dist/utils/vite-cli-invocation.d.ts +2 -1
  386. package/package.json +5 -5
  387. package/dist/deps/.pnpm/image-size@2.0.2/deps/image-size/dist/index.js +0 -808
  388. package/dist/server/default-not-found-module.d.ts +0 -19
  389. package/dist/server/default-not-found-module.js +0 -18
  390. package/dist/server/rsc-stream-hints.d.ts +0 -21
  391. package/dist/server/rsc-stream-hints.js +0 -227
@@ -1,7 +1,10 @@
1
+ import { isStaticGenerationAccessError } from "../shims/internal/headers-state.js";
1
2
  import { mergeViewport, resolveModuleViewport } from "../shims/metadata.js";
3
+ import { resolveAppPageSpecialError } from "./app-page-execution.js";
2
4
  import { resolveAppPageBranchParams, resolveAppPageSegmentParams } from "./app-page-params.js";
3
5
  import { createAppMetadataModuleRoute } from "./app-metadata-tracing.js";
4
6
  import { resolveOrderedAppPageMetadata } from "./app-page-head.js";
7
+ import { resolveAppPageParentHttpAccessBoundary } from "./app-page-boundary.js";
5
8
  //#region src/server/app-page-http-access-fallback-metadata.ts
6
9
  function isPresent(value) {
7
10
  return value !== null && value !== void 0;
@@ -106,6 +109,78 @@ function resolveHttpAccessFallbackMetadata(options) {
106
109
  sources: createHttpAccessFallbackMetadataPlan(options)
107
110
  });
108
111
  }
112
+ /**
113
+ * The not-found head a route's own head falls back to. Like Next.js's
114
+ * metadata tree, every HTTP access signal from generateMetadata() or
115
+ * generateViewport() resolves through the not-found convention, whichever
116
+ * signal the route's render threw.
117
+ */
118
+ function createRouteNotFoundHeadPlanOptions(options) {
119
+ const { route } = options;
120
+ const routeSegments = route.routeSegments ?? [];
121
+ const layoutModules = route.layouts ?? [];
122
+ let boundaryModule = route.notFound ?? null;
123
+ let boundaryTreePosition = boundaryModule ? route.notFoundTreePosition : null;
124
+ if (!boundaryModule) {
125
+ const parentBoundary = resolveAppPageParentHttpAccessBoundary({
126
+ layoutIndex: layoutModules.length,
127
+ rootNotFoundModule: options.rootNotFoundModule,
128
+ routeNotFoundModules: route.notFounds,
129
+ statusCode: 404
130
+ });
131
+ boundaryModule = parentBoundary.module;
132
+ boundaryTreePosition = parentBoundary.layoutIndex === null ? null : route.layoutTreePositions?.[parentBoundary.layoutIndex];
133
+ }
134
+ return {
135
+ boundaryModule,
136
+ boundaryParams: boundaryModule && boundaryTreePosition != null ? resolveAppPageSegmentParams(routeSegments, boundaryTreePosition, options.params) : {},
137
+ boundaryRouteSegments: routeSegments.slice(0, boundaryTreePosition ?? 0),
138
+ errorConvention: "not-found",
139
+ layoutModules,
140
+ layoutTreePositions: route.layoutTreePositions,
141
+ parallelBranches: options.parallelBranches,
142
+ params: options.params,
143
+ primaryParallelBranch: options.primaryParallelBranch,
144
+ routeSegments: route.routeSegments ?? null
145
+ };
146
+ }
147
+ /**
148
+ * Settle each branch of a route's head on its own, as Next.js's MetadataTree
149
+ * and ViewportTree do: an HTTP access signal from generateMetadata() keeps the
150
+ * resolved viewport and resolves the metadata through the not-found
151
+ * convention, and the same holds the other way round. Any other error leaves
152
+ * that branch empty; the route's render reports it where it renders.
153
+ *
154
+ * A `dynamic = "error"` access error leaves its branch empty too, but
155
+ * `accessError` keeps it, whether the route's head or the not-found head it
156
+ * recovers through threw it: Next.js fails such a render even where its
157
+ * metadata trees drop the error, so a fallback without the route's outlet
158
+ * rethrows it.
159
+ */
160
+ function recoverAppPageRouteHead(head, options) {
161
+ const { resolvePlanOptions, ...metadataOptions } = options;
162
+ const settleEmpty = (error, empty) => ({
163
+ accessError: isStaticGenerationAccessError(error) ? error : null,
164
+ value: empty
165
+ });
166
+ const recover = (branch, recoverBranch, empty) => branch.then((value) => ({
167
+ accessError: null,
168
+ value
169
+ }), (error) => resolveAppPageSpecialError(error)?.kind === "http-access-fallback" ? recoverBranch().then((value) => ({
170
+ accessError: null,
171
+ value
172
+ }), (recoveryError) => settleEmpty(recoveryError, empty)) : settleEmpty(error, empty));
173
+ const metadata = recover(head.metadata, () => resolveHttpAccessFallbackMetadata({
174
+ ...metadataOptions,
175
+ ...resolvePlanOptions()
176
+ }), null);
177
+ const viewport = recover(head.viewport, () => resolveHttpAccessFallbackViewport(resolvePlanOptions()), null);
178
+ return {
179
+ accessError: Promise.all([metadata, viewport]).then(([metadataResult, viewportResult]) => metadataResult.accessError ?? viewportResult.accessError),
180
+ metadata: metadata.then((result) => result.value),
181
+ viewport: viewport.then((result) => result.value)
182
+ };
183
+ }
109
184
  async function resolveHttpAccessFallbackViewport(options) {
110
185
  let accumulatedViewport = Promise.resolve(mergeViewport([]));
111
186
  for (const source of createHttpAccessFallbackPlan(options, "snapshot")) {
@@ -118,4 +193,4 @@ async function resolveHttpAccessFallbackViewport(options) {
118
193
  return accumulatedViewport;
119
194
  }
120
195
  //#endregion
121
- export { createHttpAccessFallbackMetadataPlan, resolveHttpAccessFallbackMetadata, resolveHttpAccessFallbackViewport };
196
+ export { createHttpAccessFallbackMetadataPlan, createRouteNotFoundHeadPlanOptions, recoverAppPageRouteHead, resolveHttpAccessFallbackMetadata, resolveHttpAccessFallbackViewport };
@@ -6,4 +6,5 @@ type ResolveAppPageMethodResponseOptions = {
6
6
  request: Pick<Request, "headers" | "method">;
7
7
  };
8
8
  export declare function resolveAppPageMethodResponse(options: ResolveAppPageMethodResponseOptions): Response | null;
9
- //#endregion
9
+ //#endregion
10
+ export {};
@@ -27,4 +27,5 @@ type ProbeAppPageBeforeRenderOptions = {
27
27
  classification?: LayoutClassificationOptions | null;
28
28
  };
29
29
  export declare function probeAppPageBeforeRender(options: ProbeAppPageBeforeRenderOptions): Promise<ProbeAppPageBeforeRenderResult>;
30
- //#endregion
30
+ //#endregion
31
+ export {};
@@ -19,4 +19,5 @@ export type AppPageRenderIdentity = {
19
19
  targetMatchedPathname: string;
20
20
  };
21
21
  export declare function createAppPageRenderIdentity(input: AppPageRenderIdentityInput): AppPageRenderIdentity;
22
- //#endregion
22
+ //#endregion
23
+ export {};
@@ -29,6 +29,11 @@ type AppPageSpecialErrorRenderOptions = {
29
29
  * candidate's render it must not carry the request's query.
30
30
  */
31
31
  isCacheCandidate?: boolean;
32
+ /**
33
+ * The page's own document, in which parallel slot boundaries caught the
34
+ * error, to send in place of a fallback page.
35
+ */
36
+ caughtDocument?: Response;
32
37
  };
33
38
  type PreparedAppPageElement = {
34
39
  element: AppPageRenderableElement;
@@ -160,4 +165,5 @@ type RenderAppPageLifecycleOptions = RenderAppPageLifecycleOptionsBase & ({
160
165
  */
161
166
  export declare function applyIneligibleRouteCachePolicy(response: Response, options: Pick<RenderAppPageLifecycleOptions, "dynamicStaleTimeSeconds" | "isDraftMode" | "isDynamicError" | "isForceDynamic" | "isForceStatic" | "isProduction" | "isProgressiveActionRender" | "isRscRequest" | "isStaticEligible" | "middlewareContext" | "peekDynamicUsage" | "revalidateSeconds" | "scriptNonce">, probeCacheLife?: AppPageRequestCacheLife | null): Response;
162
167
  export declare function renderAppPageLifecycle(options: RenderAppPageLifecycleOptions): Promise<Response>;
163
- //#endregion
168
+ //#endregion
169
+ export {};
@@ -1,16 +1,17 @@
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
7
  import { isRouteCacheabilityEvaluation, recordRouteCacheabilityClientTraceMetadataMarker } from "../shims/cacheability-classification.js";
7
8
  import { NEVER_CACHE_CONTROL, NO_STORE_CACHE_CONTROL, applyCdnResponseHeaders, isCdnResponsePolicyHeader } from "./cache-control.js";
9
+ import "./app-rsc-render-mode.js";
8
10
  import { resolveClientStaleTimeSeconds } from "../utils/cache-control-metadata.js";
9
11
  import { isRenderDynamicLatched, markDynamicUsage } from "../shims/internal/headers-state.js";
10
12
  import { peekDynamicUsage, runWithDetachedDynamicUsage } from "../shims/headers.js";
11
13
  import { runWithFetchDedupe } from "../shims/fetch-cache.js";
12
14
  import { setCacheStateHeaders } from "./cache-headers.js";
13
- import { deferUntilStreamConsumed } from "./defer-until-stream-consumed.js";
14
15
  import { createArtifactCompatibilityEnvelope, createArtifactCompatibilityGraphVersion } from "./artifact-compatibility.js";
15
16
  import { AppElementsWire, isAppElementsRecord } from "./app-elements-wire.js";
16
17
  import "./app-elements.js";
@@ -19,19 +20,19 @@ import { mergeMiddlewareResponseHeaders } from "./middleware-response-headers.js
19
20
  import { applyPrerenderCacheLifeHeader, applyPrerenderCacheTagsHeader } from "./prerender-cache-life-header.js";
20
21
  import { copyLinkHeaderProvenance, getFrameworkLinkHeader } from "./app-response-header-provenance.js";
21
22
  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 { buildAppPageFontLinkHeader, readAppPageBinaryStream, resolveAppPageCaughtNotFoundBoundaries, resolveAppPageShellSpecialError, resolveAppPageSpecialError, resolveAppPageSpecialErrorStoredHeaders, teeAppPageRscStreamForCapture } from "./app-page-execution.js";
23
24
  import { probeAppPageBeforeRender } from "./app-page-probe.js";
24
25
  import { hasDigest } from "./app-rsc-errors.js";
25
26
  import { recordAppPageRenderError, traceAppPageRender } from "./app-page-tracing.js";
26
27
  import { traceResponseStartWithCompletion } from "./response-start-tracing.js";
27
28
  import { DEFAULT_CACHE_VARIANT_BUDGET, buildCacheVariantWithRouteBudget, buildRenderObservation, buildRenderRequestApiObservations, createStaticLayoutArtifactReuseDecision } from "./cache-proof.js";
28
- import { createAppPageHtmlOutputScope, createAppPageRenderObservation, createAppPageRscOutputScope } from "./app-page-render-observation.js";
29
- import { buildAppPageLinkHeader, createAppPageFontData, createAppPageRscErrorTracker, createAppPageSsrErrorHandler, renderAppPageHtmlStream, renderAppPageHtmlStreamWithRecovery } from "./app-page-stream.js";
30
- import { createAppPageRscRenderStatusResolver } from "./app-page-rsc-render-status.js";
31
- import { finalizeAppPageCacheabilityEvaluationResponse, finalizeAppPageHtmlCacheResponse, finalizeAppPageRscCacheResponse } from "./app-page-cache-finalizer.js";
32
29
  import { createStaticLayoutClientReuseArtifactCompatibility, createStaticLayoutClientReusePayloadHash, createStaticLayoutClientReuseRouteId } from "./static-layout-client-reuse-proof.js";
33
30
  import { appendRscCompletionMetadata } from "./rsc-completion-metadata.js";
31
+ import { buildAppPageHtmlDocumentResponse, buildAppPageLinkHeader, createAppPageFontData, createAppPageRscErrorTracker, createAppPageSsrErrorHandler, renderAppPageHtmlStream, renderAppPageHtmlStreamWithRecovery } from "./app-page-stream.js";
34
32
  import { getStaticLayoutObservationSkipRejection } from "./app-layout-param-observation.js";
33
+ import { createAppPageHtmlOutputScope, createAppPageRenderObservation, createAppPageRscOutputScope } from "./app-page-render-observation.js";
34
+ import { createAppPageRscRenderStatusResolver } from "./app-page-rsc-render-status.js";
35
+ import { finalizeAppPageCacheabilityEvaluationResponse, finalizeAppPageHtmlCacheResponse, finalizeAppPageRscCacheResponse } from "./app-page-cache-finalizer.js";
35
36
  import { createClientReuseSkipTransportPlan, crossCheckClientReuseManifestEntryWithCache } from "./skip-cache-proof.js";
36
37
  //#region src/server/app-page-render.ts
37
38
  function buildResponseTiming(options) {
@@ -115,6 +116,18 @@ function resolveAppPageCacheWriteRevalidateSeconds(options) {
115
116
  if (options.revalidateSeconds === null && (options.isForceStatic || options.isDynamicError)) return Infinity;
116
117
  return options.revalidateSeconds;
117
118
  }
119
+ /**
120
+ * A loading-shell prefetch without a loading boundary that can never be stored
121
+ * renders only the route tree (see buildAppPageElements), so no layout runs and
122
+ * none is probed. Next.js runs no layout for its no-loading prefetch either.
123
+ */
124
+ function isRouteTreeOnlyLoadingShell(options) {
125
+ if (options.renderMode !== "prefetch-loading-shell") return false;
126
+ if (options.isCacheCandidate === true) return false;
127
+ if (!isAppElementsRecord(options.element)) return false;
128
+ const routeId = options.element[AppElementsWire.keys.route];
129
+ return typeof routeId === "string" && options.element[routeId] === null;
130
+ }
118
131
  function readRootBoundaryId(element) {
119
132
  const rootLayoutTreePath = element[AppElementsWire.keys.rootLayout];
120
133
  return typeof rootLayoutTreePath === "string" ? rootLayoutTreePath : null;
@@ -390,7 +403,7 @@ async function renderAppPageLifecycleImpl(options, renderSpan) {
390
403
  return dynamicUsageObserved;
391
404
  };
392
405
  const probeOutcome = await runWithDetachedDynamicUsage(() => probeAppPageBeforeRender({
393
- skipProbes: options.pprFallbackShellSignal !== void 0,
406
+ skipProbes: options.pprFallbackShellSignal !== void 0 || isRouteTreeOnlyLoadingShell(options),
394
407
  layoutCount: options.layoutCount,
395
408
  probeLayoutAt(layoutIndex) {
396
409
  return options.probeLayoutAt(layoutIndex);
@@ -825,10 +838,11 @@ async function renderAppPageLifecycleImpl(options, renderSpan) {
825
838
  isForceStatic: options.isForceStatic,
826
839
  isCacheCandidate: isCacheCandidateHtmlRender,
827
840
  onSsrError: createAppPageSsrErrorHandler(onSsrError, rscErrorTracker.isCapturedError),
828
- mirrorNextFlight: () => rscErrorTracker.getCapturedSpecialError() !== null
841
+ mirrorNextFlight: () => rscErrorTracker.getCapturedSpecialError() !== null,
842
+ resolveCaughtNotFoundBoundaries: (error) => resolveAppPageCaughtNotFoundBoundaries(error, rscErrorTracker.getCapturedSpecialErrors(error))
829
843
  });
830
844
  },
831
- async renderSpecialErrorResponse(specialError) {
845
+ async renderSpecialErrorResponse(specialError, caughtDocument) {
832
846
  shellSpecialError = specialError;
833
847
  const mayPrerender = mayPrerenderShellSpecialError();
834
848
  if (mayStoreShellSpecialError() || mayPrerender) await settleCapturedRscRenderForCacheMetadata(capturedRscDataRef.value, peekRenderDynamicUsage);
@@ -836,7 +850,18 @@ async function renderAppPageLifecycleImpl(options, renderSpan) {
836
850
  dynamicUsed: consumeRenderDynamicUsage(),
837
851
  redirectMetadata: specialError.kind === "redirect" ? readPrerenderCacheMetadata() : null
838
852
  };
839
- return options.renderPageSpecialError(specialError, { isCacheCandidate: isCacheCandidateHtmlRender });
853
+ return options.renderPageSpecialError(specialError, {
854
+ isCacheCandidate: isCacheCandidateHtmlRender,
855
+ ...caughtDocument ? { caughtDocument: buildAppPageHtmlDocumentResponse(caughtDocument.htmlStream, {
856
+ clearRequestContext: options.clearRequestContext,
857
+ fontLinkHeader,
858
+ isEdgeRuntime: options.isEdgeRuntime,
859
+ middlewareHeaders: null,
860
+ reactLinkHeader: caughtDocument.linkHeader,
861
+ reactMaxHeadersLength: options.reactMaxHeadersLength,
862
+ status: specialError.statusCode
863
+ }) } : {}
864
+ });
840
865
  },
841
866
  resolveSpecialError(error) {
842
867
  return resolveAppPageShellSpecialError(error, rscErrorTracker.getCapturedSpecialErrors(error));
@@ -66,8 +66,11 @@ type AppPageInterceptMatch<TPage = unknown> = {
66
66
  interceptLoadings?: readonly unknown[] | null;
67
67
  interceptLoadingTreePositions?: readonly number[] | null;
68
68
  interceptNotFoundBranchSegments?: readonly string[] | null;
69
+ interceptNotFounds?: readonly unknown[] | null;
70
+ interceptNotFoundTreePositions?: readonly number[] | null;
69
71
  __loadInterceptLayouts?: readonly (() => Promise<unknown>)[] | null;
70
72
  __loadInterceptLoadings?: readonly (() => Promise<unknown>)[] | null;
73
+ __loadInterceptNotFounds?: readonly (() => Promise<unknown>)[] | null;
71
74
  matchedParams: AppPageParams;
72
75
  sourceMatchedParams?: AppPageParams;
73
76
  page: TPage;
@@ -75,6 +78,15 @@ type AppPageInterceptMatch<TPage = unknown> = {
75
78
  notFound?: unknown;
76
79
  __loadNotFound?: (() => Promise<unknown>) | null;
77
80
  notFoundTreePosition?: number | null;
81
+ interceptForbiddens?: readonly unknown[] | null;
82
+ interceptForbiddenTreePositions?: readonly number[] | null;
83
+ __loadInterceptForbiddens?: readonly (() => Promise<unknown>)[] | null;
84
+ interceptUnauthorizeds?: readonly unknown[] | null;
85
+ interceptUnauthorizedTreePositions?: readonly number[] | null;
86
+ __loadInterceptUnauthorizeds?: readonly (() => Promise<unknown>)[] | null;
87
+ interceptErrors?: readonly unknown[] | null;
88
+ interceptErrorTreePositions?: readonly number[] | null;
89
+ __loadInterceptErrors?: readonly (() => Promise<unknown>)[] | null;
78
90
  __loadState?: {
79
91
  page: TPage;
80
92
  pageLoading: Promise<TPage> | null;
@@ -140,4 +152,5 @@ export declare function resolveAppPageInterceptionRerenderTarget<TRoute, TPage,
140
152
  export declare function resolveAppPageActionRerenderTarget<TRoute, TPage, TInterceptOpts>(options: ResolveAppPageActionRerenderTargetOptions<TRoute, TPage, TInterceptOpts>): Promise<ResolveAppPageActionRerenderTargetResult<TRoute, TInterceptOpts>>;
141
153
  export declare function resolveAppPageIntercept<TRoute, TPage, TInterceptOpts, TElement>(options: ResolveAppPageInterceptOptions<TRoute, TPage, TInterceptOpts, TElement>): Promise<ResolveAppPageInterceptResult<TInterceptOpts>>;
142
154
  export declare function buildAppPageElement<TElement>(options: BuildAppPageElementOptions<TElement>): Promise<BuildAppPageElementResult<TElement>>;
143
- //#endregion
155
+ //#endregion
156
+ 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 {
@@ -45,6 +45,8 @@ export type AppPageRouteWiringSlot<TModule extends AppPageModule = AppPageModule
45
45
  ownerTreePosition?: number | null;
46
46
  notFound?: TModule | null;
47
47
  notFoundTreePosition?: number | null;
48
+ notFounds?: readonly (TModule | null | undefined)[] | null;
49
+ notFoundTreePositions?: readonly number[] | null;
48
50
  page?: TModule | null;
49
51
  routeSegments?: readonly string[] | null;
50
52
  /**
@@ -77,6 +79,17 @@ export type AppPageRouteWiringRoute<TModule extends AppPageModule = AppPageModul
77
79
  unauthorized?: TModule | null;
78
80
  unauthorizedTreePosition?: number | null;
79
81
  unauthorizeds?: readonly (TModule | null | undefined)[] | null;
82
+ /**
83
+ * Every segment's not-found, forbidden and unauthorized file, with or
84
+ * without a layout, aligned with the matching tree positions. Without them,
85
+ * only the files beside a layout wrap the tree.
86
+ */
87
+ segmentNotFounds?: readonly (TModule | null | undefined)[] | null;
88
+ segmentNotFoundTreePositions?: readonly number[] | null;
89
+ segmentForbiddens?: readonly (TModule | null | undefined)[] | null;
90
+ segmentForbiddenTreePositions?: readonly number[] | null;
91
+ segmentUnauthorizeds?: readonly (TModule | null | undefined)[] | null;
92
+ segmentUnauthorizedTreePositions?: readonly number[] | null;
80
93
  routeSegments?: readonly string[];
81
94
  childrenRouteSegments?: readonly string[] | null;
82
95
  /**
@@ -113,6 +126,23 @@ export type AppPageSlotOverride<TModule extends AppPageModule = AppPageModule> =
113
126
  layoutModules?: readonly (TModule | null | undefined)[] | null;
114
127
  loadingModules?: readonly (TModule | null | undefined)[] | null;
115
128
  loadingTreePositions?: readonly number[] | null;
129
+ /**
130
+ * Rendered beside the override's page, inside the slot's boundaries, as
131
+ * Next.js renders a page's MetadataOutlet in the page's own segment.
132
+ */
133
+ metadataOutlet?: ReactNode;
134
+ /** The intercepting route's not-found.tsx files and their branch tree positions. */
135
+ notFoundModules?: readonly (TModule | null | undefined)[] | null;
136
+ notFoundTreePositions?: readonly number[] | null;
137
+ /** The intercepting route's forbidden.tsx files and their branch tree positions. */
138
+ forbiddenModules?: readonly (TModule | null | undefined)[] | null;
139
+ forbiddenTreePositions?: readonly number[] | null;
140
+ /** The intercepting route's unauthorized.tsx files and their branch tree positions. */
141
+ unauthorizedModules?: readonly (TModule | null | undefined)[] | null;
142
+ unauthorizedTreePositions?: readonly number[] | null;
143
+ /** The intercepting route's error.tsx files and their branch tree positions. */
144
+ errorModules?: readonly (AppPageErrorModule | null | undefined)[] | null;
145
+ errorTreePositions?: readonly number[] | null;
116
146
  /**
117
147
  * The page module to render for this slot. Optional — when omitted, the
118
148
  * slot's existing `page` is used (e.g. when the override only changes the
@@ -135,6 +165,12 @@ export type AppPageLayoutEntry<TModule extends AppPageModule = AppPageModule, TE
135
165
  };
136
166
  type BuildAppPageRouteElementOptions<TModule extends AppPageModule = AppPageModule, TErrorModule extends AppPageErrorModule = AppPageErrorModule> = {
137
167
  element: ReactNode;
168
+ /**
169
+ * Builds the page element around the head's error outlet, in place of
170
+ * `element`, for a page whose own boundaries must catch its
171
+ * generateMetadata() errors, such as a sibling intercepting route's.
172
+ */
173
+ renderElementWithMetadataOutlet?: ((metadataOutlet: ReactNode) => ReactNode) | null;
138
174
  globalErrorModule?: TErrorModule | null;
139
175
  layoutParamAccess?: AppLayoutParamAccessTracker;
140
176
  makeThenableParams: MakeThenableParams;
@@ -154,7 +190,11 @@ type BuildAppPageRouteElementOptions<TModule extends AppPageModule = AppPageModu
154
190
  rootNotFoundModule?: TModule | null;
155
191
  rootUnauthorizedModule?: TModule | null;
156
192
  route: AppPageRouteWiringRoute<TModule, TErrorModule>;
157
- createPageElement?: (component: AppPageComponent, props: Readonly<Record<string, unknown>>) => ReactNode;
193
+ createPageElement?: (component: AppPageComponent, props: Readonly<Record<string, unknown>>,
194
+ /** For a parallel slot's page or default: the layout that renders the slot. */
195
+ slotLayoutIndex?: number,
196
+ /** The id of the slot's own not-found boundary that catches its notFound(). */
197
+ slotNotFoundBoundary?: string) => ReactNode;
158
198
  pageRenderDependency?: AppPageRenderDependency | null;
159
199
  searchParams?: unknown;
160
200
  slotOverrides?: Readonly<Record<string, AppPageSlotOverride<TModule>>> | null;
@@ -168,7 +208,8 @@ type BuildAppPageRouteElementOptions<TModule extends AppPageModule = AppPageModu
168
208
  export type AppPageRouteHead = {
169
209
  metadata: Promise<Metadata | null>;
170
210
  outlet: Promise<null>;
171
- viewport: Promise<Viewport>;
211
+ /** `null` when resolution failed: like Next.js, the head then has no viewport tags. */
212
+ viewport: Promise<Viewport | null>;
172
213
  };
173
214
  type MakeThenableParams = (params: AppPageParams, observer?: ThenableParamsObserver) => unknown;
174
215
  type BuildAppPageElementsOptions<TModule extends AppPageModule = AppPageModule, TErrorModule extends AppPageErrorModule = AppPageErrorModule> = BuildAppPageRouteElementOptions<TModule, TErrorModule> & {
@@ -176,6 +217,15 @@ type BuildAppPageElementsOptions<TModule extends AppPageModule = AppPageModule,
176
217
  interceptionId?: string | null;
177
218
  interceptionContext?: string | null;
178
219
  isRscRequest?: boolean;
220
+ /**
221
+ * The render can never be stored and, in production, is never sent with
222
+ * static cache headers (see app-page-dispatch.ts), so a loading-shell
223
+ * prefetch without a loading boundary may skip its layouts. A render that
224
+ * may be stored keeps them, so a layout's dynamic API read still keeps it
225
+ * out of the cache. An explicit CDN cache policy on a dynamic route can
226
+ * still store the route tree, as a CDN would store Next.js's.
227
+ */
228
+ isUncacheableRender?: boolean;
179
229
  mountedSlotIds?: ReadonlySet<string> | null;
180
230
  renderIdentity?: AppPageRenderIdentity;
181
231
  renderMode?: AppRscRenderMode;