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,6 +1,6 @@
1
1
  import { MetadataFileRoute } from "./metadata-routes.js";
2
2
  import { AppPageParams } from "./app-page-boundary.js";
3
- import { Metadata, ResolvedViewport } from "../shims/metadata.js";
3
+ import { Metadata, ResolvedViewport, Viewport } from "../shims/metadata.js";
4
4
  import { ActiveParallelRouteHeadInput, AppPageHeadModule, ApplyAppPageFileBasedMetadata, OrderedAppPageMetadataSource } from "./app-page-head.js";
5
5
  //#region src/server/app-page-http-access-fallback-metadata.d.ts
6
6
  type HttpAccessFallbackMetadataPlanOptions<TModule extends AppPageHeadModule = AppPageHeadModule> = {
@@ -26,5 +26,52 @@ type ResolveHttpAccessFallbackMetadataOptions<TModule extends AppPageHeadModule
26
26
  };
27
27
  export declare function createHttpAccessFallbackMetadataPlan<TModule extends AppPageHeadModule>(options: HttpAccessFallbackMetadataPlanOptions<TModule>): OrderedAppPageMetadataSource<TModule>[];
28
28
  export declare function resolveHttpAccessFallbackMetadata<TModule extends AppPageHeadModule>(options: ResolveHttpAccessFallbackMetadataOptions<TModule>): Promise<Metadata | null>;
29
+ type RouteNotFoundHeadPlanRoute<TModule extends AppPageHeadModule> = {
30
+ layouts?: readonly (TModule | null | undefined)[];
31
+ layoutTreePositions?: readonly number[] | null;
32
+ notFound?: TModule | null;
33
+ notFounds?: readonly (TModule | null | undefined)[] | null;
34
+ notFoundTreePosition?: number | null;
35
+ routeSegments?: readonly string[] | null;
36
+ segmentNotFoundTreePositions?: readonly number[] | null;
37
+ };
38
+ /**
39
+ * The not-found head a route's own head falls back to. Like Next.js's
40
+ * metadata tree, every HTTP access signal from generateMetadata() or
41
+ * generateViewport() resolves through the not-found convention, whichever
42
+ * signal the route's render threw.
43
+ */
44
+ export declare function createRouteNotFoundHeadPlanOptions<TModule extends AppPageHeadModule>(options: {
45
+ parallelBranches: readonly ActiveParallelRouteHeadInput<TModule>[];
46
+ params: AppPageParams;
47
+ primaryParallelBranch: ActiveParallelRouteHeadInput<TModule> | null;
48
+ rootNotFoundModule?: TModule | null;
49
+ route: RouteNotFoundHeadPlanRoute<TModule>;
50
+ }): HttpAccessFallbackMetadataPlanOptions<TModule>;
51
+ /**
52
+ * Settle each branch of a route's head on its own, as Next.js's MetadataTree
53
+ * and ViewportTree do: an HTTP access signal from generateMetadata() keeps the
54
+ * resolved viewport and resolves the metadata through the not-found
55
+ * convention, and the same holds the other way round. Any other error leaves
56
+ * that branch empty; the route's render reports it where it renders.
57
+ *
58
+ * A `dynamic = "error"` access error leaves its branch empty too, but
59
+ * `accessError` keeps it, whether the route's head or the not-found head it
60
+ * recovers through threw it: Next.js fails such a render even where its
61
+ * metadata trees drop the error, so a fallback without the route's outlet
62
+ * rethrows it.
63
+ */
64
+ export declare function recoverAppPageRouteHead<TModule extends AppPageHeadModule>(head: {
65
+ metadata: Promise<Metadata | null>;
66
+ viewport: Promise<ResolvedViewport>;
67
+ }, options: Omit<ResolveHttpAccessFallbackMetadataOptions<TModule>, keyof HttpAccessFallbackMetadataPlanOptions<TModule>> & {
68
+ resolvePlanOptions: () => HttpAccessFallbackMetadataPlanOptions<TModule>;
69
+ }): {
70
+ accessError: Promise<Error | null>;
71
+ metadata: Promise<Metadata | null>;
72
+ /** `null` when the branch failed: like Next.js's, the head then has no viewport tags. */
73
+ viewport: Promise<Viewport | null>;
74
+ };
29
75
  export declare function resolveHttpAccessFallbackViewport<TModule extends AppPageHeadModule>(options: HttpAccessFallbackMetadataPlanOptions<TModule>): Promise<ResolvedViewport>;
30
- //#endregion
76
+ //#endregion
77
+ export {};
@@ -1,7 +1,10 @@
1
+ import { isStaticGenerationAccessError } from "../shims/internal/headers-state.js";
1
2
  import { mergeViewport, resolveModuleViewport } from "../shims/metadata.js";
2
- import { resolveAppPageBranchParams, resolveAppPageSegmentParams } from "./app-page-params.js";
3
+ import { resolveAppPageSpecialError } from "./app-page-execution.js";
3
4
  import { createAppMetadataModuleRoute } from "./app-metadata-tracing.js";
5
+ import { resolveAppPageBranchParams, resolveAppPageSegmentParams } from "./app-page-params.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: route.segmentNotFoundTreePositions ? null : 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 };
@@ -0,0 +1,35 @@
1
+ //#region src/server/app-page-layout-gate.d.ts
2
+ /**
3
+ * Holds an RSC response until the layouts above the route's first loading
4
+ * boundary have rendered, so that a layout's redirect(), notFound(),
5
+ * forbidden() or unauthorized() still answers the request: a redirect through
6
+ * the `X-Vinext-Rsc-Redirect` side channel, and the others with their
7
+ * boundary's status. The layouts render once, in the render itself. A
8
+ * signal from a component a layout renders streams in the payload, as in
9
+ * Next.js.
10
+ */
11
+ export type AppPageLayoutGate = {
12
+ /** Holds the response until the layout with `layoutId` has rendered. */
13
+ hold(layoutId: string, layoutIndex: number): void;
14
+ /** Reports how the layout with `layoutId` rendered. */
15
+ settle(layoutId: string, failure?: {
16
+ error: unknown;
17
+ }): void;
18
+ /**
19
+ * The outermost held layout that threw, once every held layout `isRendered`
20
+ * includes has rendered, or null. An error elsewhere in the render doesn't
21
+ * stop the wait, as Flight goes on to render the other entries, but the
22
+ * render ending does: `ended` settles when its stream closes or errors.
23
+ */
24
+ wait(isRendered: (layoutId: string) => boolean, ended: Promise<unknown>): Promise<AppPageLayoutGateFailure | null>;
25
+ };
26
+ type AppPageLayoutGateFailure = {
27
+ error: unknown;
28
+ layoutIndex: number;
29
+ };
30
+ export declare function createAppPageLayoutGate(): AppPageLayoutGate;
31
+ export declare function registerAppPageLayoutGate(elements: object, gate: AppPageLayoutGate): void;
32
+ /** The gate of the layouts in `element`, an App Router elements record. */
33
+ export declare function getAppPageLayoutGate(element: unknown): AppPageLayoutGate | null;
34
+ //#endregion
35
+ export {};
@@ -0,0 +1,50 @@
1
+ //#region src/server/app-page-layout-gate.ts
2
+ function createAppPageLayoutGate() {
3
+ const held = /* @__PURE__ */ new Map();
4
+ const settled = /* @__PURE__ */ new Set();
5
+ let failure = null;
6
+ let ended = false;
7
+ let check = null;
8
+ return {
9
+ hold(layoutId, layoutIndex) {
10
+ held.set(layoutId, layoutIndex);
11
+ },
12
+ settle(layoutId, layoutFailure) {
13
+ const layoutIndex = held.get(layoutId);
14
+ if (layoutIndex === void 0 || settled.has(layoutId)) return;
15
+ settled.add(layoutId);
16
+ if (layoutFailure) {
17
+ if (failure === null || layoutIndex < failure.layoutIndex) failure = {
18
+ error: layoutFailure.error,
19
+ layoutIndex
20
+ };
21
+ }
22
+ check?.();
23
+ },
24
+ wait(isRendered, renderEnded) {
25
+ return new Promise((resolve) => {
26
+ check = () => {
27
+ for (const layoutId of held.keys()) if (!ended && !settled.has(layoutId) && isRendered(layoutId)) return;
28
+ check = null;
29
+ resolve(failure);
30
+ };
31
+ const end = () => {
32
+ ended = true;
33
+ check?.();
34
+ };
35
+ renderEnded.then(end, end);
36
+ check();
37
+ });
38
+ }
39
+ };
40
+ }
41
+ const appPageLayoutGates = /* @__PURE__ */ new WeakMap();
42
+ function registerAppPageLayoutGate(elements, gate) {
43
+ appPageLayoutGates.set(elements, gate);
44
+ }
45
+ /** The gate of the layouts in `element`, an App Router elements record. */
46
+ function getAppPageLayoutGate(element) {
47
+ return typeof element === "object" && element !== null ? appPageLayoutGates.get(element) ?? null : null;
48
+ }
49
+ //#endregion
50
+ export { createAppPageLayoutGate, getAppPageLayoutGate, registerAppPageLayoutGate };
@@ -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 {};
@@ -1,7 +1,6 @@
1
1
  import { AppPageParams } from "./app-page-boundary.js";
2
2
  //#region src/server/app-page-params.d.ts
3
3
  export declare function getAppPageSegmentParamName(segment: string): string | null;
4
- export declare function resolveAppPageSegmentParamScopeKeys(routeSegments: readonly string[] | null | undefined, treePosition: number): readonly string[];
5
4
  export declare function resolveAppPageSegmentParams(routeSegments: readonly string[] | null | undefined, treePosition: number, matchedParams: AppPageParams): AppPageParams;
6
5
  export declare function resolveAppPageBranchParams(branchSegments: readonly string[], treePosition: number, matchedParams: AppPageParams, scopedSegments?: readonly string[]): AppPageParams;
7
6
  //#endregion
@@ -8,19 +8,6 @@ function getAppPageSegmentParamName(segment) {
8
8
  function isEmptyOptionalCatchAll(segment, paramValue) {
9
9
  return segment.startsWith("[[...") && Array.isArray(paramValue) && paramValue.length === 0;
10
10
  }
11
- function resolveAppPageSegmentParamScopeKeys(routeSegments, treePosition) {
12
- const paramNames = [];
13
- const seen = /* @__PURE__ */ new Set();
14
- const segments = routeSegments ?? [];
15
- const end = Math.min(Math.max(treePosition, 0), segments.length);
16
- for (let index = 0; index < end; index++) {
17
- const paramName = getAppPageSegmentParamName(segments[index]);
18
- if (!paramName || seen.has(paramName)) continue;
19
- seen.add(paramName);
20
- paramNames.push(paramName);
21
- }
22
- return paramNames;
23
- }
24
11
  function resolveAppPageSegmentParams(routeSegments, treePosition, matchedParams) {
25
12
  const segmentParams = {};
26
13
  const segments = routeSegments ?? [];
@@ -43,4 +30,4 @@ function resolveAppPageBranchParams(branchSegments, treePosition, matchedParams,
43
30
  return scopedParams;
44
31
  }
45
32
  //#endregion
46
- export { getAppPageSegmentParamName, resolveAppPageBranchParams, resolveAppPageSegmentParamScopeKeys, resolveAppPageSegmentParams };
33
+ export { getAppPageSegmentParamName, resolveAppPageBranchParams, resolveAppPageSegmentParams };
@@ -1,30 +1,13 @@
1
- import { LayoutFlags } from "./app-elements-wire.js";
2
- import { AppPageSpecialError, LayoutClassificationOptions } from "./app-page-execution.js";
3
1
  //#region src/server/app-page-probe.d.ts
4
2
  type ProbeReactServerSubtreeOptions = Readonly<{
5
3
  maxDepth?: number;
6
4
  maxNodes?: number;
7
5
  }>;
8
6
  /**
9
- * Invokes server-component children returned by a layout probe so per-layout
10
- * skip eligibility observes data dependencies created below the layout's
11
- * immediate function body. The real RSC render remains authoritative; probe
12
- * failures only make static-layout skip fall back to render-and-send.
7
+ * Invokes the server components a layout renders, so the error-path layout
8
+ * probe sees an HTTP access fallback thrown below the layout's own function
9
+ * body. The real RSC render remains authoritative.
13
10
  */
14
11
  export declare function probeReactServerSubtree(node: unknown, options?: ProbeReactServerSubtreeOptions): Promise<void>;
15
- type ProbeAppPageBeforeRenderResult = {
16
- response: Response | null;
17
- layoutFlags: LayoutFlags;
18
- };
19
- type ProbeAppPageBeforeRenderOptions = {
20
- skipProbes?: boolean;
21
- layoutCount: number;
22
- probeLayoutAt: (layoutIndex: number) => unknown;
23
- renderLayoutSpecialError: (specialError: AppPageSpecialError, layoutIndex: number) => Promise<Response>;
24
- resolveSpecialError: (error: unknown) => AppPageSpecialError | null;
25
- runWithSuppressedHookWarning<T>(probe: () => Promise<T>): Promise<T>;
26
- /** When provided, enables per-layout static/dynamic classification. */
27
- classification?: LayoutClassificationOptions | null;
28
- };
29
- export declare function probeAppPageBeforeRender(options: ProbeAppPageBeforeRenderOptions): Promise<ProbeAppPageBeforeRenderResult>;
30
- //#endregion
12
+ //#endregion
13
+ export {};
@@ -1,5 +1,4 @@
1
1
  import { isPromiseLike } from "../utils/promise.js";
2
- import { probeAppPageLayouts } from "./app-page-execution.js";
3
2
  import { Fragment, isValidElement } from "react";
4
3
  //#region src/server/app-page-probe.ts
5
4
  const DEFAULT_SUBTREE_PROBE_MAX_DEPTH = 32;
@@ -63,10 +62,9 @@ async function resolveReactLazyType(lazyType) {
63
62
  }
64
63
  }
65
64
  /**
66
- * Invokes server-component children returned by a layout probe so per-layout
67
- * skip eligibility observes data dependencies created below the layout's
68
- * immediate function body. The real RSC render remains authoritative; probe
69
- * failures only make static-layout skip fall back to render-and-send.
65
+ * Invokes the server components a layout renders, so the error-path layout
66
+ * probe sees an HTTP access fallback thrown below the layout's own function
67
+ * body. The real RSC render remains authoritative.
70
68
  */
71
69
  async function probeReactServerSubtree(node, options = {}) {
72
70
  const maxDepth = options.maxDepth ?? DEFAULT_SUBTREE_PROBE_MAX_DEPTH;
@@ -118,36 +116,5 @@ async function probeReactServerSubtree(node, options = {}) {
118
116
  };
119
117
  await visit(node, 0);
120
118
  }
121
- async function probeAppPageBeforeRender(options) {
122
- let layoutFlags = {};
123
- if (options.skipProbes) return {
124
- response: null,
125
- layoutFlags
126
- };
127
- if (options.layoutCount > 0) {
128
- const layoutProbeResult = await probeAppPageLayouts({
129
- layoutCount: options.layoutCount,
130
- async onLayoutError(layoutError, layoutIndex) {
131
- const specialError = options.resolveSpecialError(layoutError);
132
- if (!specialError) return null;
133
- return options.renderLayoutSpecialError(specialError, layoutIndex);
134
- },
135
- probeLayoutAt: options.probeLayoutAt,
136
- runWithSuppressedHookWarning(probe) {
137
- return options.runWithSuppressedHookWarning(probe);
138
- },
139
- classification: options.classification
140
- });
141
- layoutFlags = layoutProbeResult.layoutFlags;
142
- if (layoutProbeResult.response) return {
143
- response: layoutProbeResult.response,
144
- layoutFlags
145
- };
146
- }
147
- return {
148
- response: null,
149
- layoutFlags
150
- };
151
- }
152
119
  //#endregion
153
- export { probeAppPageBeforeRender, probeReactServerSubtree };
120
+ export { probeReactServerSubtree };
@@ -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 {};
@@ -1,12 +1,10 @@
1
- import { ClientReuseManifestParseResult, ClientReuseManifestSkipDisposition } from "./client-reuse-manifest.js";
2
1
  import { AppOutgoingElements } from "./app-elements-wire.js";
3
2
  import "./app-elements.js";
4
3
  import { AppRscRenderMode } from "./app-rsc-render-mode.js";
5
4
  import { NavigationContext } from "../shims/navigation-context-state.js";
6
5
  import "../shims/navigation.js";
7
- import { AppPageFontPreload, AppPageSpecialError, LayoutClassificationOptions } from "./app-page-execution.js";
6
+ import { AppPageFontPreload, AppPageSpecialError } from "./app-page-execution.js";
8
7
  import { AppPageMiddlewareContext } from "./app-page-response.js";
9
- import { AppLayoutParamAccessTracker } from "./app-layout-param-observation.js";
10
8
  import { RootParams } from "../shims/root-params.js";
11
9
  import { AppPageSsrHandler } from "./app-page-stream.js";
12
10
  import { AppRenderErrorContextOverrides } from "./app-rsc-error-handler.js";
@@ -29,6 +27,11 @@ type AppPageSpecialErrorRenderOptions = {
29
27
  * candidate's render it must not carry the request's query.
30
28
  */
31
29
  isCacheCandidate?: boolean;
30
+ /**
31
+ * The page's own document, in which parallel slot boundaries caught the
32
+ * error, to send in place of a fallback page.
33
+ */
34
+ caughtDocument?: Response;
32
35
  };
33
36
  type PreparedAppPageElement = {
34
37
  element: AppPageRenderableElement;
@@ -105,7 +108,6 @@ type RenderAppPageLifecycleOptionsBase = {
105
108
  isrSet: AppPageCacheSetter;
106
109
  interceptionContext?: string | null;
107
110
  interceptionId?: string | null;
108
- layoutCount: number;
109
111
  loadSsrHandler: () => Promise<AppPageSsrHandler>;
110
112
  middlewareContext: AppPageMiddlewareContext;
111
113
  navigationParams: Record<string, unknown>;
@@ -115,12 +117,10 @@ type RenderAppPageLifecycleOptionsBase = {
115
117
  abortPprFallbackShell?: () => void;
116
118
  rootParams?: RootParams;
117
119
  peekRenderObservationState?: () => AppPageRenderObservationState;
118
- probeLayoutAt: (layoutIndex: number) => unknown;
119
120
  expireSeconds?: number;
120
121
  formState?: ReactFormState | null;
121
122
  revalidateSeconds: number | null;
122
123
  renderErrorBoundaryResponse: (error: unknown, errorOrigin: "rsc" | "ssr") => Promise<Response | null>;
123
- renderLayoutSpecialError: (specialError: AppPageSpecialError, layoutIndex: number) => Promise<Response>;
124
124
  renderPageSpecialError: (specialError: AppPageSpecialError, renderOptions?: AppPageSpecialErrorRenderOptions) => Promise<Response>;
125
125
  renderToReadableStream: (element: ReactNode | AppOutgoingElements, options: {
126
126
  onError: AppPageBoundaryOnError;
@@ -133,16 +133,11 @@ type RenderAppPageLifecycleOptionsBase = {
133
133
  prelude: ReadableStream<Uint8Array>;
134
134
  }>;
135
135
  routePattern: string;
136
- runWithSuppressedHookWarning<T>(probe: () => Promise<T>): Promise<T>;
137
136
  scriptNonce?: string;
138
- clientReuseManifest?: ClientReuseManifestParseResult;
139
- skipDisposition?: ClientReuseManifestSkipDisposition;
140
137
  mountedSlotsHeader?: string | null;
141
138
  renderedPathAndSearch?: string | null;
142
139
  renderMode?: AppRscRenderMode;
143
140
  waitUntil?: (promise: Promise<void>) => void;
144
- layoutParamAccess?: AppLayoutParamAccessTracker;
145
- classification?: LayoutClassificationOptions | null;
146
141
  };
147
142
  type RenderAppPageLifecycleOptions = RenderAppPageLifecycleOptionsBase & ({
148
143
  element: AppPageRenderableElement;
@@ -158,6 +153,7 @@ type RenderAppPageLifecycleOptions = RenderAppPageLifecycleOptionsBase & ({
158
153
  * its response policy, such as error boundaries and special errors, get the
159
154
  * same header as the normal render.
160
155
  */
161
- 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;
156
+ export declare function applyIneligibleRouteCachePolicy(response: Response, options: Pick<RenderAppPageLifecycleOptions, "dynamicStaleTimeSeconds" | "isDraftMode" | "isDynamicError" | "isForceDynamic" | "isForceStatic" | "isProduction" | "isProgressiveActionRender" | "isRscRequest" | "isStaticEligible" | "middlewareContext" | "peekDynamicUsage" | "revalidateSeconds" | "scriptNonce">, requestCacheLife?: AppPageRequestCacheLife | null): Response;
162
157
  export declare function renderAppPageLifecycle(options: RenderAppPageLifecycleOptions): Promise<Response>;
163
- //#endregion
158
+ //#endregion
159
+ export {};