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 { __commonJSMin } from "../../../../../../_virtual/_rolldown/runtime.js";
2
2
  //#region ../../node_modules/.pnpm/ua-parser-js@1.0.35/node_modules/ua-parser-js/src/ua-parser.js
3
- var require_ua_parser = /* @__PURE__ */ __commonJSMin(((exports, module) => {
3
+ var require_ua_parser = /* @__PURE__ */ __commonJSMin(((exports, module, this$1) => {
4
4
  (function(window, undefined) {
5
5
  "use strict";
6
6
  var LIBVERSION = "1.0.35", EMPTY = "", UNKNOWN = "?", FUNC_TYPE = "function", UNDEF_TYPE = "undefined", OBJ_TYPE = "object", STR_TYPE = "string", MAJOR = "major", MODEL = "model", NAME = "name", TYPE = "type", VENDOR = "vendor", VERSION = "version", ARCHITECTURE = "architecture", CONSOLE = "console", MOBILE = "mobile", TABLET = "tablet", SMARTTV = "smarttv", WEARABLE = "wearable", EMBEDDED = "embedded", UA_MAX_LENGTH = 350, AMAZON = "Amazon", APPLE = "Apple", ASUS = "ASUS", BLACKBERRY = "BlackBerry", BROWSER = "Browser", CHROME = "Chrome", EDGE = "Edge", FIREFOX = "Firefox", GOOGLE = "Google", HUAWEI = "Huawei", LG = "LG", MICROSOFT = "Microsoft", MOTOROLA = "Motorola", OPERA = "Opera", SAMSUNG = "Samsung", SHARP = "Sharp", SONY = "Sony", XIAOMI = "Xiaomi", ZEBRA = "Zebra", FACEBOOK = "Facebook", CHROMIUM_OS = "Chromium OS", MAC_OS = "Mac OS";
@@ -1050,7 +1050,7 @@ var require_ua_parser = /* @__PURE__ */ __commonJSMin(((exports, module) => {
1050
1050
  for (var prop in result) $.ua[prop] = result[prop];
1051
1051
  };
1052
1052
  }
1053
- })(typeof window === "object" ? window : exports);
1053
+ })(typeof window === "object" ? window : this$1);
1054
1054
  }));
1055
1055
  //#endregion
1056
1056
  export default require_ua_parser();
@@ -13,16 +13,30 @@ export declare function generateBrowserEntry(routes?: readonly AppRoute[], pages
13
13
  afterFiles: NextRewrite[];
14
14
  beforeFiles: NextRewrite[];
15
15
  fallback: NextRewrite[];
16
- }, locales?: readonly string[]): string;
16
+ }, locales?: readonly string[], classifier?: AppRouteDynamicRenderClassifier): string;
17
17
  /**
18
18
  * App route handlers for hybrid App/Pages ownership, with their static
19
19
  * segments hashed so the client never receives their paths in plain text.
20
20
  */
21
21
  export declare function toHashedRouteHandlerRoutes(routes: readonly AppRoute[]): VinextLinkPrefetchRoute[];
22
+ type AppRouteIntercept = AppRoute["siblingIntercepts"][number];
23
+ /** Reads, at build time, which App pages Next.js renders on every request. */
24
+ export type AppRouteDynamicRenderClassifier = {
25
+ route(route: AppRoute): boolean;
26
+ /**
27
+ * `layoutPaths` holds the layouts above the intercepting page outside its
28
+ * own branch: the source route's, and the slot's.
29
+ */
30
+ intercept(intercept: AppRouteIntercept, layoutPaths: readonly string[]): boolean;
31
+ };
22
32
  /** Project an `AppRoute` down to the public `VinextLinkPrefetchRoute` shape. */
23
- export declare function toLinkPrefetchRoute(route: AppRoute, hasSiblingInterceptLoading?: boolean): VinextLinkPrefetchRoute;
24
- /** Project App routes together so sibling-intercept loading is applied to its target route. */
25
- export declare function toLinkPrefetchRoutes(routes: readonly AppRoute[]): VinextLinkPrefetchRoute[];
33
+ export declare function toLinkPrefetchRoute(route: AppRoute, hasSiblingInterceptLoading?: boolean, rendersDynamically?: boolean): VinextLinkPrefetchRoute;
34
+ /**
35
+ * Project App routes together so sibling-intercept loading is applied to its
36
+ * target route. `classifier` reads each route's segment config, and each
37
+ * intercepting page's, which applies to its target route.
38
+ */
39
+ export declare function toLinkPrefetchRoutes(routes: readonly AppRoute[], classifier?: AppRouteDynamicRenderClassifier): VinextLinkPrefetchRoute[];
26
40
  /**
27
41
  * Generate the virtual module that holds the browser RouteManifest.
28
42
  *
@@ -31,4 +45,5 @@ export declare function toLinkPrefetchRoutes(routes: readonly AppRoute[]): Vinex
31
45
  * JSON string keeps the parse on V8's fast JSON path.
32
46
  */
33
47
  export declare function generateBrowserRouteManifestModule(routeManifest: RouteManifest | null): string;
34
- //#endregion
48
+ //#endregion
49
+ export {};
@@ -15,10 +15,10 @@ function generateBrowserEntry(routes = [], pagesPrefetchRoutes = [], rewrites =
15
15
  afterFiles: [],
16
16
  beforeFiles: [],
17
17
  fallback: []
18
- }, locales = []) {
18
+ }, locales = [], classifier) {
19
19
  const entryPath = resolveRuntimeEntryModule("app-browser-entry");
20
20
  const reactInstanceBootstrapPath = resolveClientRuntimeModule("react-instance-bootstrap");
21
- const prefetchRoutes = toLinkPrefetchRoutes(routes);
21
+ const prefetchRoutes = toLinkPrefetchRoutes(routes, classifier);
22
22
  const routeHandlers = pagesPrefetchRoutes.length > 0 ? toHashedRouteHandlerRoutes(routes) : [];
23
23
  const clientRewrites = toClientRewrites(rewrites);
24
24
  return `import ${JSON.stringify(reactInstanceBootstrapPath)};
@@ -69,20 +69,93 @@ function hasLoadingBoundary(route, hasSiblingInterceptLoading) {
69
69
  return route.loadingPath !== null || (route.loadingPaths?.some((_, index) => (route.loadingTreePositions?.[index] ?? 0) > 0) ?? false) || route.parallelSlots.some((slot) => slot.loadingPath !== null || (slot.loadingPaths?.length ?? 0) > 0 || slot.interceptingRoutes.some((intercept) => interceptTargetsRoute(intercept.targetPattern, route) && (intercept.loadingPaths?.length ?? 0) > 0)) || hasSiblingInterceptLoading;
70
70
  }
71
71
  /** Project an `AppRoute` down to the public `VinextLinkPrefetchRoute` shape. */
72
- function toLinkPrefetchRoute(route, hasSiblingInterceptLoading = route.siblingIntercepts.some((intercept) => interceptTargetsRoute(intercept.targetPattern, route) && (intercept.loadingPaths?.length ?? 0) > 0)) {
72
+ function toLinkPrefetchRoute(route, hasSiblingInterceptLoading = route.siblingIntercepts.some((intercept) => interceptTargetsRoute(intercept.targetPattern, route) && (intercept.loadingPaths?.length ?? 0) > 0), rendersDynamically = false) {
73
73
  return {
74
74
  canPrefetchLoadingShell: hasLoadingBoundary(route, hasSiblingInterceptLoading),
75
75
  patternParts: [...route.patternParts],
76
76
  isDynamic: route.isDynamic,
77
+ ...rendersDynamically ? { rendersDynamically: true } : {},
77
78
  ...requiresDynamicNavigationRequest(route) ? { requiresDynamicNavigationRequest: true } : {},
78
79
  ...(route.rootParamNames?.length ?? 0) > 0 ? { hasRootParams: true } : {}
79
80
  };
80
81
  }
81
- /** Project App routes together so sibling-intercept loading is applied to its target route. */
82
- function toLinkPrefetchRoutes(routes) {
82
+ /**
83
+ * Project App routes together so sibling-intercept loading is applied to its
84
+ * target route. `classifier` reads each route's segment config, and each
85
+ * intercepting page's, which applies to its target route.
86
+ */
87
+ function toLinkPrefetchRoutes(routes, classifier) {
83
88
  const siblingInterceptLoadingTargets = [];
84
89
  for (const route of routes) for (const intercept of route.siblingIntercepts) if ((intercept.loadingPaths?.length ?? 0) > 0) siblingInterceptLoadingTargets.push(splitPatternParts(intercept.targetPattern));
85
- return routes.filter(isLinkPrefetchRoute).map((route) => toLinkPrefetchRoute(route, siblingInterceptLoadingTargets.some((targetParts) => patternsStructurallyEquivalent(targetParts, route.patternParts))));
90
+ const intercepts = classifier ? collectClassifiedIntercepts(routes, classifier) : [];
91
+ return routes.filter(isLinkPrefetchRoute).map((route) => {
92
+ const prefetchRoute = toLinkPrefetchRoute(route, siblingInterceptLoadingTargets.some((targetParts) => patternsStructurallyEquivalent(targetParts, route.patternParts)), classifier?.route(route) ?? false);
93
+ const routeIntercepts = intercepts.filter(({ targetPatternParts }) => interceptTargetMayMatchRoute(targetPatternParts, route.patternParts)).map(({ intercept }) => intercept);
94
+ return routeIntercepts.length > 0 ? {
95
+ ...prefetchRoute,
96
+ intercepts: routeIntercepts
97
+ } : prefetchRoute;
98
+ });
99
+ }
100
+ /**
101
+ * Whether some URL matches both the intercept's target and the route:
102
+ * `/foo/:id` also intercepts a static `/foo/static` route, and `/:name/static`
103
+ * crosses `/foo/:id` at `/foo/static`. A catch-all counts as overlapping; the
104
+ * client checks the URL against the intercept's own target pattern anyway.
105
+ */
106
+ function interceptTargetMayMatchRoute(targetPatternParts, routePatternParts) {
107
+ const isParam = (part) => part.startsWith(":");
108
+ const isCatchAll = (part) => isParam(part) && (part.endsWith("+") || part.endsWith("*"));
109
+ for (let index = 0;; index++) {
110
+ const target = targetPatternParts[index];
111
+ const route = routePatternParts[index];
112
+ if (target === void 0 || route === void 0) {
113
+ const rest = target ?? route;
114
+ return rest === void 0 || isCatchAll(rest) && rest.endsWith("*");
115
+ }
116
+ if (isCatchAll(target) || isCatchAll(route)) return true;
117
+ if (!isParam(target) && !isParam(route) && target !== route) return false;
118
+ }
119
+ }
120
+ /**
121
+ * Every intercepting page once, with its classification. A slot's intercepts
122
+ * are listed on each route that shares the slot. The intercepted response also
123
+ * renders branches of its source route that the intercepting page's tree
124
+ * doesn't cover, such as other slots, so a source route that renders
125
+ * dynamically makes the intercept dynamic too. The client also counts the
126
+ * descendant route an interception context resolves to.
127
+ */
128
+ function collectClassifiedIntercepts(routes, classifier) {
129
+ const sources = /* @__PURE__ */ new Map();
130
+ const add = (intercept, layoutPaths, route) => {
131
+ const key = `${intercept.sourceMatchPattern}\0${intercept.pagePath}`;
132
+ const seen = sources.get(key);
133
+ if (seen && (seen.route.pattern === intercept.sourceMatchPattern || route.pattern !== intercept.sourceMatchPattern)) return;
134
+ sources.set(key, {
135
+ intercept,
136
+ layoutPaths,
137
+ route
138
+ });
139
+ };
140
+ for (const route of routes) {
141
+ for (const slot of route.parallelSlots) {
142
+ const slotLayoutPaths = slot.layoutPath ? [...route.layouts, slot.layoutPath] : route.layouts;
143
+ for (const intercept of slot.interceptingRoutes) add(intercept, slotLayoutPaths, route);
144
+ }
145
+ for (const intercept of route.siblingIntercepts) add(intercept, route.layouts, route);
146
+ }
147
+ return [...sources.values()].map(({ intercept, layoutPaths, route }) => {
148
+ const rendersDynamically = classifier.intercept(intercept, [...layoutPaths, ...intercept.layoutPaths]) || classifier.route(route);
149
+ const targetPatternParts = splitPatternParts(intercept.targetPattern);
150
+ return {
151
+ intercept: {
152
+ sourcePatternParts: splitPatternParts(intercept.sourceMatchPattern),
153
+ targetPatternParts,
154
+ ...rendersDynamically ? { rendersDynamically: true } : {}
155
+ },
156
+ targetPatternParts
157
+ };
158
+ });
86
159
  }
87
160
  /**
88
161
  * Generate the virtual module that holds the browser RouteManifest.
@@ -112,4 +112,5 @@ export declare function generateAppRequestRscEntry(appDir: string, routes: AppRo
112
112
  export declare function generateRscEntry(appDir: string, routes: AppRoute[], middlewarePath?: string | null, metadataRoutes?: MetadataFileRoute[], globalErrorPath?: string | null, basePath?: string, trailingSlash?: boolean, config?: AppRouterConfig, instrumentationPath?: string | null, responseStageOnly?: boolean): string;
113
113
  /** Generate the response-only App RSC graph used by the named cache stage. */
114
114
  export declare function generateAppResponseRscEntry(appDir: string, routes: AppRoute[], _middlewarePath?: string | null, metadataRoutes?: MetadataFileRoute[], globalErrorPath?: string | null, basePath?: string, trailingSlash?: boolean, config?: AppRouterConfig, instrumentationPath?: string | null): string;
115
- //#endregion
115
+ //#endregion
116
+ export {};
@@ -6,8 +6,8 @@ import { extractExportConstString, getAppRouteRenderEntryPath } from "../build/r
6
6
  import { routePatternParts } from "../routing/route-pattern.js";
7
7
  import { safeJsonStringify } from "../server/html.js";
8
8
  import { DEFAULT_DEVICE_SIZES, DEFAULT_IMAGE_SIZES } from "../server/image-optimization.js";
9
- import { buildAppRscManifestCode } from "./app-rsc-manifest.js";
10
9
  import { classifyAppPageRouteStaticEligibility } from "../build/app-page-static-eligibility.js";
10
+ import { buildAppRscManifestCode } from "./app-rsc-manifest.js";
11
11
  import { generateDevOriginCheckCode } from "../server/dev-origin-check.js";
12
12
  import { ACTION_OWNER_MANIFEST_ID } from "../plugins/action-owner-manifest.js";
13
13
  import fs from "node:fs";
@@ -46,7 +46,8 @@ const appPageRequestPath = resolveEntryPath("../server/app-page-request.js", imp
46
46
  const appSegmentConfigPath = resolveEntryPath("../server/app-segment-config.js", import.meta.url);
47
47
  const appRscRouteMatchingPath = resolveEntryPath("../server/app-rsc-route-matching.js", import.meta.url);
48
48
  const appRscResponseStagePath = resolveEntryPath("../server/app-rsc-response-stage.js", import.meta.url);
49
- const rscStreamHintsPath = resolveEntryPath("../server/rsc-stream-hints.js", import.meta.url);
49
+ const rscRenderStreamPath = resolveEntryPath("../server/rsc-render-stream.js", import.meta.url);
50
+ const appClientReferenceManifestPath = resolveEntryPath("../server/app-client-reference-manifest.js", import.meta.url);
50
51
  const isrCachePath = resolveEntryPath("../server/isr-cache.js", import.meta.url);
51
52
  const thenableParamsShimPath = resolveEntryPath("../shims/thenable-params.js", import.meta.url);
52
53
  const appPageElementBuilderPath = resolveEntryPath("../server/app-page-element-builder.js", import.meta.url);
@@ -157,10 +158,18 @@ function buildAppRequestRouteMetadata(routes) {
157
158
  interceptBranchSegments: intercept.branchSegments ?? [],
158
159
  interceptLoadings: [],
159
160
  interceptLoadingTreePositions: intercept.loadingTreePositions ?? [],
161
+ interceptNotFounds: [],
162
+ interceptNotFoundTreePositions: intercept.notFoundTreePositions ?? [],
160
163
  interceptNotFoundBranchSegments: intercept.notFoundBranchSegments ?? intercept.branchSegments ?? [],
161
164
  page: null,
162
165
  notFound: null,
163
166
  notFoundTreePosition: intercept.notFoundTreePosition ?? null,
167
+ interceptForbiddens: [],
168
+ interceptForbiddenTreePositions: intercept.forbiddenTreePositions ?? [],
169
+ interceptUnauthorizeds: [],
170
+ interceptUnauthorizedTreePositions: intercept.unauthorizedTreePositions ?? [],
171
+ interceptErrors: [],
172
+ interceptErrorTreePositions: intercept.errorTreePositions ?? [],
164
173
  params: intercept.params
165
174
  }))
166
175
  }])),
@@ -175,10 +184,18 @@ function buildAppRequestRouteMetadata(routes) {
175
184
  interceptBranchSegments: intercept.branchSegments ?? [],
176
185
  interceptLoadings: [],
177
186
  interceptLoadingTreePositions: intercept.loadingTreePositions ?? [],
187
+ interceptNotFounds: [],
188
+ interceptNotFoundTreePositions: intercept.notFoundTreePositions ?? [],
178
189
  interceptNotFoundBranchSegments: intercept.notFoundBranchSegments ?? intercept.branchSegments ?? [],
179
190
  page: null,
180
191
  notFound: null,
181
192
  notFoundTreePosition: intercept.notFoundTreePosition ?? null,
193
+ interceptForbiddens: [],
194
+ interceptForbiddenTreePositions: intercept.forbiddenTreePositions ?? [],
195
+ interceptUnauthorizeds: [],
196
+ interceptUnauthorizedTreePositions: intercept.unauthorizedTreePositions ?? [],
197
+ interceptErrors: [],
198
+ interceptErrorTreePositions: intercept.errorTreePositions ?? [],
182
199
  params: intercept.params
183
200
  }))
184
201
  }));
@@ -372,9 +389,9 @@ const __requestHandler = createAppRscRequestHandler({
372
389
  publicFiles: new Set(${JSON.stringify(config?.publicFiles ?? [])}),
373
390
  registerCacheAdapters: __registerConfiguredCacheAdapters,
374
391
  renderNotFound: async () => null,
375
- ${hasPagesDir ? `async renderPagesFallback({ allowRscDocumentFallback, appRouteMatch, dispatchPagesResponseStage, initialResponseHeaders, isDataRequest, isRscRequest, matchKind, middlewareContext, pathname, pagesDataRequest, request, url }) {
392
+ ${hasPagesDir ? `async renderPagesFallback({ allowRscDocumentFallback, appRouteMatch, dispatchPagesResponseStage, initialResponseHeaders, isDataRequest, isRscRequest, matchKind, middlewareContext, pathname, pagesDataRequest, request, sharedAcrossHosts, url }) {
376
393
  return __renderPagesFallback(
377
- { allowRscDocumentFallback, appRouteMatch, initialResponseHeaders, isDataRequest, isRscRequest, matchKind, middlewareContext, pathname, pagesDataRequest, request, url },
394
+ { allowRscDocumentFallback, appRouteMatch, initialResponseHeaders, isDataRequest, isRscRequest, matchKind, middlewareContext, pathname, pagesDataRequest, request, sharedAcrossHosts, url },
378
395
  {
379
396
  async loadPagesEntry() {
380
397
  if (!dispatchPagesResponseStage) {
@@ -384,8 +401,8 @@ const __requestHandler = createAppRscRequestHandler({
384
401
  ...__pagesRequestEntry,
385
402
  handleApiRoute(stageRequest) { return dispatchPagesResponseStage(stageRequest, "api"); },
386
403
  renderPage(stageRequest, pagesUrl) {
387
- const dataKind = __pagesRequestEntry.matchPageRoute?.(pagesUrl, stageRequest)?.route.dataKind;
388
- return dispatchPagesResponseStage(stageRequest, "page", dataKind, __pagesRequestEntry.hasRequestAwareDocument);
404
+ const route = __pagesRequestEntry.matchPageRoute?.(pagesUrl, stageRequest)?.route;
405
+ return dispatchPagesResponseStage(stageRequest, "page", route?.dataKind, __pagesRequestEntry.hasRequestAwareDocument, route?.runsInitialProps === true);
389
406
  },
390
407
  };
391
408
  },
@@ -515,16 +532,13 @@ import ${JSON.stringify(appRouteRequestBuiltInsPath)};` : ""}
515
532
  import ${JSON.stringify(serverGlobalsPath)};
516
533
  import __cacheabilityManifest from "virtual:vinext-cacheability-manifest";
517
534
  export { __cacheabilityManifest };
518
- import {
519
- renderToReadableStream as _renderToReadableStream,
520
- ${hasServerActions ? `loadServerAction,
521
- createTemporaryReferenceSet,` : ""}
522
- } from ${JSON.stringify(hasServerActions ? "@vitejs/plugin-rsc/rsc" : "@vitejs/plugin-rsc/react/rsc")};
523
- import {
535
+ ${hasServerActions ? `import { loadServerAction, createTemporaryReferenceSet } from "@vitejs/plugin-rsc/rsc";\n` : ""}import {
524
536
  createClientManifest as _createClientManifest,${hasServerActions ? `
525
537
  createServerManifest as _createServerManifest,` : ""}
526
538
  } from "@vitejs/plugin-rsc/core/rsc";
539
+ import { renderToReadableStream as _renderToReadableStream } from "@vitejs/plugin-rsc/vendor/react-server-dom/server.edge";
527
540
  import { prerender as _prerender } from "@vitejs/plugin-rsc/vendor/react-server-dom/static.edge";
541
+ import { createClientReferenceChunksManifest } from ${JSON.stringify(appClientReferenceManifestPath)};
528
542
  ${hasServerActions ? `// plugin-rsc's decoders fix an unscoped server manifest; React's own take the
529
543
  // manifest, so actions can scope the server references they decode per route.
530
544
  import {
@@ -532,12 +546,18 @@ import {
532
546
  decodeFormState as _decodeFormState,
533
547
  decodeReply as _decodeReply,
534
548
  } from "@vitejs/plugin-rsc/vendor/react-server-dom/server.edge";
535
- ` : ""}import { createRscPrerenderer, createRscRenderer } from ${JSON.stringify(rscStreamHintsPath)};
549
+ ` : ""}import { createRscRenderer } from ${JSON.stringify(rscRenderStreamPath)};
536
550
 
537
- const renderToReadableStream = createRscRenderer(_renderToReadableStream);
538
- const prerenderToReadableStream = createRscPrerenderer(async (model, options) =>
539
- _prerender(model, _createClientManifest(), options),
551
+ // Each render takes a fresh client manifest: in development, its references
552
+ // carry a new cache tag.
553
+ const __withClientReferenceChunks = createClientReferenceChunksManifest(
554
+ __pagesClientAssets.appClientReferenceChunks,
555
+ );
556
+ const renderToReadableStream = createRscRenderer((model, options) =>
557
+ _renderToReadableStream(model, __withClientReferenceChunks(_createClientManifest()), options),
540
558
  );
559
+ const prerenderToReadableStream = (model, options) =>
560
+ _prerender(model, __withClientReferenceChunks(_createClientManifest()), options);
541
561
  import { createElement } from "react";
542
562
  import { getNavigationContext as _getNavigationContext } from "next/navigation";
543
563
  import { configureMemoryCacheHandler as __configureMemoryCacheHandler } from "vinext/shims/cache-handler";
@@ -591,7 +611,7 @@ import {
591
611
  AppElementsWire as __AppElementsWire,
592
612
  } from ${JSON.stringify(appElementsPath)};
593
613
  import {
594
- probeAppPageLayoutWithTracking as __probeAppPageLayoutWithTracking,
614
+ probeAppPageLayout as __probeAppPageLayout,
595
615
  resolveAppPageChildSegments as __resolveAppPageChildSegments,
596
616
  } from ${JSON.stringify(appPageRouteWiringPath)};
597
617
  import { buildPageElements as __buildPageElements } from ${JSON.stringify(appPageElementBuilderPath)};
@@ -677,16 +697,6 @@ const __isrDebug = process.env.NEXT_PRIVATE_DEBUG_CACHE
677
697
  ? console.debug.bind(console, "[vinext] ISR:")
678
698
  : undefined;
679
699
 
680
- // Classification debug — opt in with VINEXT_DEBUG_CLASSIFICATION=1. Gated on
681
- // the env var so the hot path pays no overhead unless an operator is actively
682
- // tracing why a layout was flagged static or dynamic. The reason payload is
683
- // carried by __VINEXT_CLASS_REASONS and consumed inside probeAppPageLayouts.
684
- const __classDebug = process.env.VINEXT_DEBUG_CLASSIFICATION
685
- ? function(layoutId, reason) {
686
- console.debug("[vinext] CLS:", layoutId, reason);
687
- }
688
- : undefined;
689
-
690
700
  function __resolveRouteFetchCacheMode(route) {
691
701
  return __resolveAppPageFetchCacheMode({
692
702
  layouts: route.layouts,
@@ -806,24 +816,6 @@ ${instrumentationPath ? `// Lazy instrumentation initialisation is handled by en
806
816
  // the user module in; all bookkeeping (initialized flag, shared promise, prerender
807
817
  // skip) lives in the typed helper so it can be unit-tested independently.` : ""}
808
818
 
809
- // Build-time layout classification dispatch. Replaced in renderChunk
810
- // with a switch statement that returns a pre-computed per-layout
811
- // Map<layoutIndex, "static" | "dynamic"> for each route. Until the
812
- // plugin patches this stub, every route falls back to the Layer 3
813
- // runtime probe, which is the current (slow) behaviour.
814
- function __VINEXT_CLASS(routeIdx) {
815
- return null;
816
- }
817
-
818
- // Build-time layout classification reasons dispatch. Sibling of
819
- // __VINEXT_CLASS, returning a per-route Map<layoutIndex, ClassificationReason>
820
- // that feeds the debug channel when VINEXT_DEBUG_CLASSIFICATION is active.
821
- // Replaced in renderChunk with a real dispatch table; the stub returns
822
- // null so the hot path never allocates reason maps when debug is off.
823
- function __VINEXT_CLASS_REASONS(routeIdx) {
824
- return null;
825
- }
826
-
827
819
  const routes = [
828
820
  ${routeEntries.join(",\n")}
829
821
  ];
@@ -942,7 +934,7 @@ function hasInterceptionId(interceptionId) {
942
934
  return __routeMatcher.hasInterceptionId(interceptionId);
943
935
  }
944
936
 
945
- async function buildPageElements(route, params, routePath, pageRequest, layoutParamAccess, displayPathname = routePath, scriptNonce) {
937
+ async function buildPageElements(route, params, routePath, pageRequest, displayPathname = routePath, scriptNonce) {
946
938
  // Hydrate lazy page/route-handler modules before any synchronous read.
947
939
  await __ensureRouteLoaded(route);
948
940
  return __buildPageElements({
@@ -957,7 +949,6 @@ async function buildPageElements(route, params, routePath, pageRequest, layoutPa
957
949
  rootForbiddenModule: ${rootForbiddenVar ? rootForbiddenVar : "null"},
958
950
  rootUnauthorizedModule: ${rootUnauthorizedVar ? rootUnauthorizedVar : "null"},
959
951
  metadataRoutes,
960
- layoutParamAccess,
961
952
  basePath: __basePath,
962
953
  trailingSlash: __trailingSlash,
963
954
  htmlLimitedBots: __htmlLimitedBots,
@@ -1067,7 +1058,6 @@ ${responseStageOnly ? "const __responseStageOptions = {" : "const __appRscHandle
1067
1058
  dispatchMatchedPage({
1068
1059
  bypassInterceptionContextCache,
1069
1060
  cachePathname,
1070
- clientReuseManifest,
1071
1061
  cleanPathname,
1072
1062
  displayPathname,
1073
1063
  formState,
@@ -1122,7 +1112,7 @@ ${responseStageOnly ? "const __responseStageOptions = {" : "const __appRscHandle
1122
1112
  ensureRouteLoaded: __ensureRouteLoaded,
1123
1113
  clientTraceMetadata: __clientTraceMetadata,
1124
1114
  reactMaxHeadersLength: __reactMaxHeadersLength,
1125
- buildPageElement(targetRoute, targetParams, targetOpts, targetSearchParams, layoutParamAccess, buildOptions) {
1115
+ buildPageElement(targetRoute, targetParams, targetOpts, targetSearchParams, buildOptions) {
1126
1116
  return buildPageElements(targetRoute, targetParams, cleanPathname, {
1127
1117
  opts: targetOpts,
1128
1118
  searchParams: targetSearchParams,
@@ -1133,12 +1123,14 @@ ${responseStageOnly ? "const __responseStageOptions = {" : "const __appRscHandle
1133
1123
  observeMetadataSearchParamsAccess: buildOptions?.observeMetadataSearchParamsAccess === true,
1134
1124
  observePageSearchParamsAccess: buildOptions?.observePageSearchParamsAccess === true,
1135
1125
  isForceStatic: buildOptions?.isForceStatic === true,
1126
+ isUncacheableRender: buildOptions?.isUncacheableRender === true,
1127
+ mountedLayouts: buildOptions?.mountedLayouts ?? null,
1136
1128
  serveStreamingMetadata: buildOptions?.serveStreamingMetadata,
1137
1129
  placeStreamedMetadataInHead: buildOptions?.placeStreamedMetadataInHead === true,
1138
1130
  isProduction: process.env.NODE_ENV === "production",
1139
- }, layoutParamAccess, displayPathname, scriptNonce);
1131
+ onHeadPrepared: buildOptions?.onHeadPrepared,
1132
+ }, displayPathname, scriptNonce);
1140
1133
  },
1141
- clientReuseManifest,
1142
1134
  cleanPathname,
1143
1135
  displayPathname,
1144
1136
  clearRequestContext() {
@@ -1147,7 +1139,6 @@ ${responseStageOnly ? "const __responseStageOptions = {" : "const __appRscHandle
1147
1139
  createRscOnErrorHandler(pathname, routePath, overrides) {
1148
1140
  return createRscOnErrorHandler(request, pathname, routePath, overrides);
1149
1141
  },
1150
- debugClassification: __classDebug,
1151
1142
  draftModeSecret: __draftModeSecret,
1152
1143
  dynamicConfig: __segmentConfig.dynamicConfig,
1153
1144
  dynamicStaleTimeSeconds: __segmentConfig.dynamicStaleTimeSeconds,
@@ -1214,10 +1205,9 @@ ${responseStageOnly ? "const __responseStageOptions = {" : "const __appRscHandle
1214
1205
  skipStaticParamsValidation,
1215
1206
  staticParamsValidationParams,
1216
1207
  rootParams,
1217
- probeLayoutAt(li, layoutParamAccess) {
1218
- return __probeAppPageLayoutWithTracking({
1208
+ probeLayoutAt(li) {
1209
+ return __probeAppPageLayout({
1219
1210
  layoutIndex: li,
1220
- layoutParamAccess,
1221
1211
  makeThenableParams,
1222
1212
  matchedParams: params,
1223
1213
  route,
@@ -1404,6 +1394,7 @@ ${responseStageOnly ? "const __responseStageOptions = {" : "const __appRscHandle
1404
1394
  );
1405
1395
  },
1406
1396
  hasPageRoute: __hasPageRoute,
1397
+ currentRoute: routeMatch?.route ?? null,
1407
1398
  maxActionBodySize: __MAX_ACTION_BODY_SIZE,
1408
1399
  middlewareHeaders: middlewareContext.headers,
1409
1400
  readFormDataWithLimit: __readFormDataWithLimit,
@@ -1493,7 +1484,7 @@ ${responseStageOnly ? "const __responseStageOptions = {" : "const __appRscHandle
1493
1484
  observeMetadataSearchParamsAccess: observeMetadataSearchParamsAccess === true,
1494
1485
  observePageSearchParamsAccess: observePageSearchParamsAccess === true,
1495
1486
  isForceStatic: isForceStatic === true,
1496
- }, undefined, actionCleanPathname, targetScriptNonce ?? scriptNonce);
1487
+ }, actionCleanPathname, targetScriptNonce ?? scriptNonce);
1497
1488
  },
1498
1489
  cleanPathname,
1499
1490
  clearRequestContext() {
@@ -1590,6 +1581,14 @@ ${responseStageOnly ? "const __responseStageOptions = {" : "const __appRscHandle
1590
1581
  interceptNotFoundBranchSegments: intercept.interceptNotFoundBranchSegments,
1591
1582
  interceptNotFound: intercept.notFound,
1592
1583
  interceptNotFoundTreePosition: intercept.notFoundTreePosition,
1584
+ interceptForbiddens: intercept.interceptForbiddens,
1585
+ interceptForbiddenTreePositions: intercept.interceptForbiddenTreePositions,
1586
+ interceptUnauthorizeds: intercept.interceptUnauthorizeds,
1587
+ interceptUnauthorizedTreePositions: intercept.interceptUnauthorizedTreePositions,
1588
+ interceptErrors: intercept.interceptErrors,
1589
+ interceptErrorTreePositions: intercept.interceptErrorTreePositions,
1590
+ interceptNotFounds: intercept.interceptNotFounds,
1591
+ interceptNotFoundTreePositions: intercept.interceptNotFoundTreePositions,
1593
1592
  interceptSlotId: intercept.slotId,
1594
1593
  interceptSlotKey: intercept.slotKey,
1595
1594
  interceptSourceMatchedUrl: interceptionContext,
@@ -1674,9 +1673,9 @@ ${responseStageOnly ? "const __responseStageOptions = {" : "const __appRscHandle
1674
1673
  const __isEdge = route ? __isEdgeRuntime(__resolveRouteRuntime(route)) : false;
1675
1674
  return __fallbackRenderer.renderNotFound(route, isRscRequest, request, matchedParams, scriptNonce, middlewareContext, { isEdgeRuntime: __isEdge });
1676
1675
  },
1677
- ${hasPagesDir ? `async renderPagesFallback({ allowRscDocumentFallback, appRouteMatch, dispatchPagesResponseStage, initialResponseHeaders, isDataRequest, isRscRequest, matchKind, middlewareContext, pathname, pagesDataRequest, request, url }) {
1676
+ ${hasPagesDir ? `async renderPagesFallback({ allowRscDocumentFallback, appRouteMatch, dispatchPagesResponseStage, initialResponseHeaders, isDataRequest, isRscRequest, matchKind, middlewareContext, pathname, pagesDataRequest, request, sharedAcrossHosts, url }) {
1678
1677
  return __renderPagesFallback(
1679
- { allowRscDocumentFallback, appRouteMatch, initialResponseHeaders, isDataRequest, isRscRequest, matchKind, middlewareContext, pathname, pagesDataRequest, request, url },
1678
+ { allowRscDocumentFallback, appRouteMatch, initialResponseHeaders, isDataRequest, isRscRequest, matchKind, middlewareContext, pathname, pagesDataRequest, request, sharedAcrossHosts, url },
1680
1679
  {
1681
1680
  async loadPagesEntry() {
1682
1681
  const __pagesEntry = await __ensureHybridPagesApplication();
@@ -1695,8 +1694,8 @@ ${responseStageOnly ? "const __responseStageOptions = {" : "const __appRscHandle
1695
1694
  ...(typeof __pagesEntry.renderPage === "function"
1696
1695
  ? {
1697
1696
  renderPage(stageRequest, pagesUrl) {
1698
- const dataKind = __pagesEntry.matchPageRoute?.(pagesUrl, stageRequest)?.route.dataKind;
1699
- return dispatchPagesResponseStage(stageRequest, "page", dataKind, __pagesEntry.hasRequestAwareDocument);
1697
+ const route = __pagesEntry.matchPageRoute?.(pagesUrl, stageRequest)?.route;
1698
+ return dispatchPagesResponseStage(stageRequest, "page", route?.dataKind, __pagesEntry.hasRequestAwareDocument, route?.runsInitialProps === true);
1700
1699
  },
1701
1700
  }
1702
1701
  : {}),
@@ -60,4 +60,5 @@ export declare function rootBoundaryFiles(routes: readonly AppRoute[]): string[]
60
60
  */
61
61
  export declare function rootBoundaryRouteFiles(routes: readonly AppRoute[]): string[];
62
62
  export declare function buildAppRscManifestCode(options: BuildAppRscManifestCodeOptions): AppRscManifestCode;
63
- //#endregion
63
+ //#endregion
64
+ export {};
@@ -1,5 +1,5 @@
1
1
  import { toSlash } from "../deps/.pnpm/pathslash@0.1.0/deps/pathslash/dist/index.js";
2
- import { computeAppRouteStaticSiblings, convertSegmentsToRouteParts } from "../routing/app-route-graph.js";
2
+ import { computeAppRouteStaticSiblings, convertSegmentsToRouteParts, findSlotPageTreePosition } from "../routing/app-route-graph.js";
3
3
  import { appRouteHasMainTreeLoadingBoundary, appRouteLayoutStaticParamsGroups } from "../routing/app-router.js";
4
4
  import { createMetadataRouteEntriesSource } from "../server/metadata-route-build-data.js";
5
5
  //#region src/entries/app-rsc-manifest.ts
@@ -95,6 +95,11 @@ function registerRouteModules(routes, imports) {
95
95
  if (route.unauthorizedPaths) {
96
96
  for (const up of route.unauthorizedPaths) if (up) imports.getLazyLoaderVar(up);
97
97
  }
98
+ for (const boundaryPath of [
99
+ ...route.segmentNotFoundPaths ?? [],
100
+ ...route.segmentForbiddenPaths ?? [],
101
+ ...route.segmentUnauthorizedPaths ?? []
102
+ ]) imports.getLazyLoaderVar(boundaryPath);
98
103
  for (const slot of route.parallelSlots) {
99
104
  if (slot.pagePath) imports.getLazyLoaderVar(slot.pagePath);
100
105
  if (slot.defaultPath) imports.getLazyLoaderVar(slot.defaultPath);
@@ -104,9 +109,14 @@ function registerRouteModules(routes, imports) {
104
109
  for (const loadingPath of slot.loadingPaths ?? []) imports.getLazyLoaderVar(loadingPath);
105
110
  if (slot.errorPath) imports.getLazyLoaderVar(slot.errorPath);
106
111
  if (slot.notFoundPath) imports.getLazyLoaderVar(slot.notFoundPath);
112
+ for (const notFoundPath of slot.notFoundPaths ?? []) imports.getLazyLoaderVar(notFoundPath);
107
113
  for (const ir of slot.interceptingRoutes) {
108
114
  imports.getLazyLoaderVar(ir.pagePath);
109
115
  if (ir.notFoundPath) imports.getLazyLoaderVar(ir.notFoundPath);
116
+ for (const forbiddenPath of ir.forbiddenPaths ?? []) imports.getLazyLoaderVar(forbiddenPath);
117
+ for (const unauthorizedPath of ir.unauthorizedPaths ?? []) imports.getLazyLoaderVar(unauthorizedPath);
118
+ for (const errorPath of ir.errorPaths ?? []) imports.getLazyLoaderVar(errorPath);
119
+ for (const notFoundPath of ir.notFoundPaths ?? []) imports.getLazyLoaderVar(notFoundPath);
110
120
  for (const layoutPath of ir.layoutPaths) imports.getLazyLoaderVar(layoutPath);
111
121
  for (const loadingPath of ir.loadingPaths ?? []) imports.getLazyLoaderVar(loadingPath);
112
122
  }
@@ -114,6 +124,10 @@ function registerRouteModules(routes, imports) {
114
124
  for (const ir of route.siblingIntercepts ?? []) {
115
125
  imports.getLazyLoaderVar(ir.pagePath);
116
126
  if (ir.notFoundPath) imports.getLazyLoaderVar(ir.notFoundPath);
127
+ for (const forbiddenPath of ir.forbiddenPaths ?? []) imports.getLazyLoaderVar(forbiddenPath);
128
+ for (const unauthorizedPath of ir.unauthorizedPaths ?? []) imports.getLazyLoaderVar(unauthorizedPath);
129
+ for (const errorPath of ir.errorPaths ?? []) imports.getLazyLoaderVar(errorPath);
130
+ for (const notFoundPath of ir.notFoundPaths ?? []) imports.getLazyLoaderVar(notFoundPath);
117
131
  for (const layoutPath of ir.layoutPaths) imports.getLazyLoaderVar(layoutPath);
118
132
  for (const loadingPath of ir.loadingPaths ?? []) imports.getLazyLoaderVar(loadingPath);
119
133
  }
@@ -126,7 +140,7 @@ function lazyLoaderArray(filePaths, imports) {
126
140
  return `[${filePaths.map((filePath) => filePath ? imports.getLazyLoaderVar(filePath) : "null").join(", ")}]`;
127
141
  }
128
142
  function buildRouteEntries(routes, imports) {
129
- return routes.map((route, routeIdx) => {
143
+ return routes.map((route) => {
130
144
  const staticSiblings = route.isDynamic ? computeAppRouteStaticSiblings(routes, route) : [];
131
145
  const layoutLoaders = lazyLoaderArray(route.layouts, imports);
132
146
  const templateLoaders = lazyLoaderArray(route.templates, imports);
@@ -153,11 +167,23 @@ function buildRouteEntries(routes, imports) {
153
167
  __loadInterceptLoadings: ${lazyLoaderArray(ir.loadingPaths ?? [], imports)},
154
168
  interceptLoadingTreePositions: ${JSON.stringify(ir.loadingTreePositions ?? [])},
155
169
  interceptNotFoundBranchSegments: ${JSON.stringify(ir.notFoundBranchSegments ?? ir.branchSegments ?? [])},
170
+ interceptNotFounds: ${moduleArray(ir.notFoundPaths?.length ?? 0)},
171
+ __loadInterceptNotFounds: ${lazyLoaderArray(ir.notFoundPaths ?? [], imports)},
172
+ interceptNotFoundTreePositions: ${JSON.stringify(ir.notFoundTreePositions ?? [])},
156
173
  page: null,
157
174
  __pageLoader: ${imports.getLazyLoaderVar(ir.pagePath)},
158
175
  notFound: null,
159
176
  __loadNotFound: ${ir.notFoundPath ? imports.getLazyLoaderVar(ir.notFoundPath) : "null"},
160
177
  notFoundTreePosition: ${ir.notFoundTreePosition ?? "null"},
178
+ interceptForbiddens: ${moduleArray(ir.forbiddenPaths?.length ?? 0)},
179
+ __loadInterceptForbiddens: ${lazyLoaderArray(ir.forbiddenPaths ?? [], imports)},
180
+ interceptForbiddenTreePositions: ${JSON.stringify(ir.forbiddenTreePositions ?? [])},
181
+ interceptUnauthorizeds: ${moduleArray(ir.unauthorizedPaths?.length ?? 0)},
182
+ __loadInterceptUnauthorizeds: ${lazyLoaderArray(ir.unauthorizedPaths ?? [], imports)},
183
+ interceptUnauthorizedTreePositions: ${JSON.stringify(ir.unauthorizedTreePositions ?? [])},
184
+ interceptErrors: ${moduleArray(ir.errorPaths?.length ?? 0)},
185
+ __loadInterceptErrors: ${lazyLoaderArray(ir.errorPaths ?? [], imports)},
186
+ interceptErrorTreePositions: ${JSON.stringify(ir.errorTreePositions ?? [])},
161
187
  params: ${JSON.stringify(ir.params)},
162
188
  }`);
163
189
  const slotEntries = route.parallelSlots.map((slot) => {
@@ -174,11 +200,23 @@ function buildRouteEntries(routes, imports) {
174
200
  __loadInterceptLoadings: ${lazyLoaderArray(ir.loadingPaths ?? [], imports)},
175
201
  interceptLoadingTreePositions: ${JSON.stringify(ir.loadingTreePositions ?? [])},
176
202
  interceptNotFoundBranchSegments: ${JSON.stringify(ir.notFoundBranchSegments ?? ir.branchSegments ?? [])},
203
+ interceptNotFounds: ${moduleArray(ir.notFoundPaths?.length ?? 0)},
204
+ __loadInterceptNotFounds: ${lazyLoaderArray(ir.notFoundPaths ?? [], imports)},
205
+ interceptNotFoundTreePositions: ${JSON.stringify(ir.notFoundTreePositions ?? [])},
177
206
  page: null,
178
207
  __pageLoader: ${imports.getLazyLoaderVar(ir.pagePath)},
179
208
  notFound: null,
180
209
  __loadNotFound: ${ir.notFoundPath ? imports.getLazyLoaderVar(ir.notFoundPath) : "null"},
181
210
  notFoundTreePosition: ${ir.notFoundTreePosition ?? "null"},
211
+ interceptForbiddens: ${moduleArray(ir.forbiddenPaths?.length ?? 0)},
212
+ __loadInterceptForbiddens: ${lazyLoaderArray(ir.forbiddenPaths ?? [], imports)},
213
+ interceptForbiddenTreePositions: ${JSON.stringify(ir.forbiddenTreePositions ?? [])},
214
+ interceptUnauthorizeds: ${moduleArray(ir.unauthorizedPaths?.length ?? 0)},
215
+ __loadInterceptUnauthorizeds: ${lazyLoaderArray(ir.unauthorizedPaths ?? [], imports)},
216
+ interceptUnauthorizedTreePositions: ${JSON.stringify(ir.unauthorizedTreePositions ?? [])},
217
+ interceptErrors: ${moduleArray(ir.errorPaths?.length ?? 0)},
218
+ __loadInterceptErrors: ${lazyLoaderArray(ir.errorPaths ?? [], imports)},
219
+ interceptErrorTreePositions: ${JSON.stringify(ir.errorTreePositions ?? [])},
182
220
  params: ${JSON.stringify(ir.params)},
183
221
  }`);
184
222
  return ` ${JSON.stringify(slot.key)}: {
@@ -194,6 +232,7 @@ function buildRouteEntries(routes, imports) {
194
232
  configLayouts: ${moduleArray(slot.configLayoutPaths?.length ?? 0)},
195
233
  __loadConfigLayouts: ${lazyLoaderArray(slot.configLayoutPaths ?? [], imports)},
196
234
  configLayoutTreePositions: ${JSON.stringify(slot.configLayoutTreePositions ?? [])},
235
+ pageTreePosition: ${findSlotPageTreePosition(slot) ?? "null"},
197
236
  loading: null,
198
237
  __loadLoading: ${slot.loadingPath ? imports.getLazyLoaderVar(slot.loadingPath) : "null"},
199
238
  loadings: ${moduleArray(slot.loadingPaths?.length ?? 0)},
@@ -204,6 +243,9 @@ function buildRouteEntries(routes, imports) {
204
243
  notFound: null,
205
244
  __loadNotFound: ${slot.notFoundPath ? imports.getLazyLoaderVar(slot.notFoundPath) : "null"},
206
245
  notFoundTreePosition: ${slot.notFoundTreePosition ?? "null"},
246
+ notFounds: ${moduleArray(slot.notFoundPaths?.length ?? 0)},
247
+ __loadNotFounds: ${lazyLoaderArray(slot.notFoundPaths ?? [], imports)},
248
+ notFoundTreePositions: ${JSON.stringify(slot.notFoundTreePositions ?? [])},
207
249
  layoutIndex: ${slot.layoutIndex},
208
250
  routeSegments: ${JSON.stringify(slot.routeSegments)},
209
251
  slotPatternParts: ${slot.slotPatternParts ? JSON.stringify(slot.slotPatternParts) : "null"},
@@ -214,14 +256,15 @@ ${interceptEntries.join(",\n")}
214
256
  }`;
215
257
  });
216
258
  const layoutErrorPaths = route.layoutErrorPaths ?? [];
259
+ const segmentNotFoundPaths = route.segmentNotFoundPaths ?? [];
260
+ const segmentForbiddenPaths = route.segmentForbiddenPaths ?? [];
261
+ const segmentUnauthorizedPaths = route.segmentUnauthorizedPaths ?? [];
217
262
  const errorPaths = route.errorPaths ?? [];
218
263
  const layoutErrorLoaders = lazyLoaderArray(layoutErrorPaths, imports);
219
264
  const errorLoaders = lazyLoaderArray(errorPaths, imports);
220
265
  const loadPageField = route.pagePath ? imports.getLazyLoaderVar(route.pagePath) : "null";
221
266
  const loadRouteHandlerField = route.routePath ? imports.getLazyLoaderVar(route.routePath) : "null";
222
267
  return ` {
223
- __buildTimeClassifications: __VINEXT_CLASS(${routeIdx}), // evaluated once at module load
224
- __buildTimeReasons: __classDebug ? __VINEXT_CLASS_REASONS(${routeIdx}) : null,
225
268
  canUseCanonicalLoadingShell: ${appRouteHasMainTreeLoadingBoundary(route)},
226
269
  ids: ${JSON.stringify(route.ids ?? null)},
227
270
  pattern: ${JSON.stringify(route.pattern)},
@@ -276,6 +319,15 @@ ${siblingInterceptEntries.join(",\n")}
276
319
  unauthorizedTreePosition: ${route.unauthorizedTreePosition ?? "null"},
277
320
  unauthorizeds: ${moduleArray(unauthorizedPaths.length)},
278
321
  __loadUnauthorizeds: ${unauthorizedLoaders},
322
+ segmentNotFounds: ${moduleArray(segmentNotFoundPaths.length)},
323
+ __loadSegmentNotFounds: ${lazyLoaderArray(segmentNotFoundPaths, imports)},
324
+ segmentNotFoundTreePositions: ${JSON.stringify(route.segmentNotFoundTreePositions ?? [])},
325
+ segmentForbiddens: ${moduleArray(segmentForbiddenPaths.length)},
326
+ __loadSegmentForbiddens: ${lazyLoaderArray(segmentForbiddenPaths, imports)},
327
+ segmentForbiddenTreePositions: ${JSON.stringify(route.segmentForbiddenTreePositions ?? [])},
328
+ segmentUnauthorizeds: ${moduleArray(segmentUnauthorizedPaths.length)},
329
+ __loadSegmentUnauthorizeds: ${lazyLoaderArray(segmentUnauthorizedPaths, imports)},
330
+ segmentUnauthorizedTreePositions: ${JSON.stringify(route.segmentUnauthorizedTreePositions ?? [])},
279
331
  }`;
280
332
  });
281
333
  }
@@ -26,6 +26,7 @@ export default withNitroPublicFiles(ssrEntry);
26
26
  ${hasPagesDir ? `
27
27
  export {
28
28
  __ensureInstrumentation,
29
+ getRuntimePageDataKind,
29
30
  handleApiRoute,
30
31
  matchApiRoute,
31
32
  matchPageRoute,