vinext 1.2.1 → 1.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (509) hide show
  1. package/README.md +12 -9
  2. package/dist/_virtual/_rolldown/runtime.js +1 -1
  3. package/dist/build/action-owner-manifest.d.ts +3 -2
  4. package/dist/build/action-owner-manifest.js +18 -2
  5. package/dist/build/app-page-static-eligibility.d.ts +17 -1
  6. package/dist/build/app-page-static-eligibility.js +80 -13
  7. package/dist/build/clean-output.d.ts +2 -1
  8. package/dist/build/client-build-config.d.ts +77 -6
  9. package/dist/build/client-build-config.js +176 -12
  10. package/dist/build/client-reference-async.d.ts +48 -0
  11. package/dist/build/client-reference-async.js +123 -0
  12. package/dist/build/client-reference-chunks.d.ts +32 -0
  13. package/dist/build/client-reference-chunks.js +111 -0
  14. package/dist/build/client-reference-groups.d.ts +171 -0
  15. package/dist/build/client-reference-groups.js +572 -0
  16. package/dist/build/css-url-assets.d.ts +2 -1
  17. package/dist/build/google-fonts/fallback-metrics.d.ts +2 -1
  18. package/dist/build/google-fonts/find-font-files-in-css.d.ts +1 -0
  19. package/dist/build/google-fonts/find-font-files-in-css.js +17 -4
  20. package/dist/build/google-fonts/font-metadata.d.ts +2 -1
  21. package/dist/build/google-fonts/validate.d.ts +2 -1
  22. package/dist/build/inline-css.d.ts +2 -1
  23. package/dist/build/layout-classification.d.ts +2 -1
  24. package/dist/build/module-dependency-cache.d.ts +33 -1
  25. package/dist/build/module-dependency-cache.js +51 -1
  26. package/dist/build/next-client-runtime-manifests.d.ts +12 -2
  27. package/dist/build/next-client-runtime-manifests.js +19 -4
  28. package/dist/build/nitro-public-files.d.ts +24 -0
  29. package/dist/build/nitro-public-files.js +60 -0
  30. package/dist/build/pages-client-assets-module.js +1 -1
  31. package/dist/build/precompress.d.ts +2 -1
  32. package/dist/build/precompress.js +1 -1
  33. package/dist/build/prerender-paths.d.ts +2 -1
  34. package/dist/build/prerender-paths.js +5 -2
  35. package/dist/build/prerender-phase.d.ts +2 -1
  36. package/dist/build/prerender-server-pool.js +1 -1
  37. package/dist/build/prerender.d.ts +3 -2
  38. package/dist/build/prerender.js +5 -4
  39. package/dist/build/report.d.ts +2 -1
  40. package/dist/build/route-classification-injector.d.ts +2 -1
  41. package/dist/build/route-classification-manifest.d.ts +2 -1
  42. package/dist/build/run-prerender.d.ts +2 -1
  43. package/dist/build/server-actions-encryption-key.d.ts +24 -0
  44. package/dist/build/server-actions-encryption-key.js +101 -0
  45. package/dist/build/ssr-manifest.d.ts +3 -0
  46. package/dist/build/ssr-manifest.js +34 -2
  47. package/dist/build/standalone.d.ts +2 -1
  48. package/dist/cache/cache-adapters-virtual.d.ts +2 -1
  49. package/dist/cache.js +1 -2
  50. package/dist/check.d.ts +2 -1
  51. package/dist/check.js +4 -0
  52. package/dist/cli-args.d.ts +2 -1
  53. package/dist/cli.js +2 -0
  54. package/dist/client/client-redirect-matcher.js +2 -1
  55. package/dist/client/client-redirects.d.ts +4 -3
  56. package/dist/client/client-redirects.js +2 -1
  57. package/dist/client/client-rewrite-params.d.ts +9 -0
  58. package/dist/client/client-rewrite-params.js +20 -0
  59. package/dist/client/client-rewrites.d.ts +2 -1
  60. package/dist/client/dev-error-overlay-store.d.ts +2 -1
  61. package/dist/client/dev-error-overlay.js +2 -1
  62. package/dist/client/index.js +1 -2
  63. package/dist/client/instrumentation-client-state.js +5 -5
  64. package/dist/client/navigation-runtime.d.ts +28 -3
  65. package/dist/client/navigation-runtime.js +42 -11
  66. package/dist/client/pages-router-link-navigation.d.ts +2 -1
  67. package/dist/client/vinext-next-data.d.ts +25 -2
  68. package/dist/client/window-next.d.ts +2 -1
  69. package/dist/config/config-matchers.d.ts +27 -41
  70. package/dist/config/config-matchers.js +293 -270
  71. package/dist/config/config-source.d.ts +34 -0
  72. package/dist/config/config-source.js +141 -0
  73. package/dist/config/dotenv.d.ts +2 -1
  74. package/dist/config/header-params.d.ts +29 -0
  75. package/dist/config/header-params.js +106 -0
  76. package/dist/config/next-config.d.ts +20 -6
  77. package/dist/config/next-config.js +149 -11
  78. package/dist/config/tsconfig-paths.d.ts +2 -1
  79. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/detector.js +23 -0
  80. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/index.js +2 -0
  81. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/lookup.js +25 -0
  82. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/bmp.js +11 -0
  83. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/cur.js +15 -0
  84. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/dds.js +11 -0
  85. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/gif.js +12 -0
  86. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/heif.js +55 -0
  87. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/icns.js +76 -0
  88. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/ico.js +39 -0
  89. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/index.js +46 -0
  90. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/j2c.js +11 -0
  91. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/jp2.js +21 -0
  92. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/jpg.js +71 -0
  93. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/jxl-stream.js +42 -0
  94. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/jxl.js +46 -0
  95. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/ktx.js +19 -0
  96. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/png.js +28 -0
  97. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/pnm.js +54 -0
  98. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/psd.js +11 -0
  99. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/svg.js +79 -0
  100. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/tga.js +15 -0
  101. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/tiff.js +96 -0
  102. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/utils.js +53 -0
  103. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/webp.js +45 -0
  104. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/utils/bit-reader.js +38 -0
  105. package/dist/deps/.pnpm/ua-parser-js@1.0.35/deps/ua-parser-js/src/ua-parser.js +2 -2
  106. package/dist/entries/app-browser-entry.d.ts +34 -6
  107. package/dist/entries/app-browser-entry.js +103 -40
  108. package/dist/entries/app-rsc-entry.d.ts +4 -1
  109. package/dist/entries/app-rsc-entry.js +131 -66
  110. package/dist/entries/app-rsc-manifest.d.ts +12 -1
  111. package/dist/entries/app-rsc-manifest.js +73 -1
  112. package/dist/entries/app-ssr-entry.d.ts +4 -1
  113. package/dist/entries/app-ssr-entry.js +9 -2
  114. package/dist/entries/pages-client-entry.d.ts +1 -0
  115. package/dist/entries/pages-client-entry.js +6 -6
  116. package/dist/entries/pages-entry-helpers.js +1 -2
  117. package/dist/entries/pages-server-entry.d.ts +2 -1
  118. package/dist/entries/pages-server-entry.js +18 -15
  119. package/dist/entries/runtime-entry-module.d.ts +1 -0
  120. package/dist/entries/runtime-entry-module.js +4 -1
  121. package/dist/image/image-adapters-virtual.d.ts +2 -1
  122. package/dist/index.d.ts +11 -0
  123. package/dist/index.js +340 -116
  124. package/dist/init.js +17 -0
  125. package/dist/plugins/client-compile-hints.d.ts +30 -0
  126. package/dist/plugins/client-compile-hints.js +88 -0
  127. package/dist/plugins/client-reference-dedup.d.ts +2 -1
  128. package/dist/plugins/cloudflare-dev-module-urls.d.ts +2 -1
  129. package/dist/plugins/dynamic-preload-metadata.d.ts +3 -1
  130. package/dist/plugins/dynamic-preload-metadata.js +1 -1
  131. package/dist/plugins/environment.d.ts +2 -1
  132. package/dist/plugins/fonts.js +9 -12
  133. package/dist/plugins/ignore-dynamic-requests.d.ts +2 -1
  134. package/dist/plugins/import-meta-url.d.ts +2 -1
  135. package/dist/plugins/og-assets.d.ts +2 -1
  136. package/dist/plugins/og-assets.js +2 -3
  137. package/dist/plugins/optimize-imports.d.ts +27 -3
  138. package/dist/plugins/optimize-imports.js +106 -20
  139. package/dist/plugins/pages-node-externals.d.ts +2 -1
  140. package/dist/plugins/remove-console.d.ts +2 -1
  141. package/dist/plugins/require-condition-resolution.d.ts +2 -1
  142. package/dist/plugins/rsc-client-reference-loaders.d.ts +53 -1
  143. package/dist/plugins/rsc-client-reference-loaders.js +447 -27
  144. package/dist/plugins/rsc-client-shim-excludes.js +2 -0
  145. package/dist/plugins/sass.d.ts +2 -1
  146. package/dist/plugins/strip-server-exports.d.ts +2 -1
  147. package/dist/plugins/styled-jsx.d.ts +2 -1
  148. package/dist/plugins/transform-result.d.ts +2 -1
  149. package/dist/plugins/typeof-window.d.ts +2 -1
  150. package/dist/plugins/use-cache-callable.d.ts +5 -0
  151. package/dist/plugins/use-cache-callable.js +30 -8
  152. package/dist/plugins/worker-image-imports.d.ts +1 -0
  153. package/dist/plugins/worker-image-imports.js +2 -2
  154. package/dist/plugins/worker-use-server.d.ts +2 -1
  155. package/dist/routing/app-route-graph.d.ts +41 -1
  156. package/dist/routing/app-route-graph.js +122 -50
  157. package/dist/routing/browser-route-manifest.d.ts +44 -0
  158. package/dist/routing/browser-route-manifest.js +195 -0
  159. package/dist/routing/hashed-route-patterns.d.ts +4 -0
  160. package/dist/routing/hashed-route-patterns.js +22 -0
  161. package/dist/routing/optimistic-route-trie.d.ts +28 -0
  162. package/dist/routing/optimistic-route-trie.js +102 -0
  163. package/dist/routing/route-matching.d.ts +2 -1
  164. package/dist/routing/route-pattern.d.ts +2 -1
  165. package/dist/routing/route-validation.d.ts +6 -1
  166. package/dist/routing/route-validation.js +26 -10
  167. package/dist/server/accept-encoding.d.ts +2 -1
  168. package/dist/server/app-action-forwarding.d.ts +10 -1
  169. package/dist/server/app-action-forwarding.js +15 -1
  170. package/dist/server/app-bfcache-identity.d.ts +2 -1
  171. package/dist/server/app-browser-action-result.d.ts +2 -1
  172. package/dist/server/app-browser-client-reuse-manifest.d.ts +2 -1
  173. package/dist/server/app-browser-entry.js +175 -64
  174. package/dist/server/app-browser-error.d.ts +5 -2
  175. package/dist/server/app-browser-error.js +7 -2
  176. package/dist/server/app-browser-history-controller.d.ts +2 -1
  177. package/dist/server/app-browser-hydration.d.ts +2 -1
  178. package/dist/server/app-browser-interception-context.d.ts +4 -3
  179. package/dist/server/app-browser-mpa-navigation.d.ts +1 -0
  180. package/dist/server/app-browser-mpa-navigation.js +6 -5
  181. package/dist/server/app-browser-navigation-controller.d.ts +17 -6
  182. package/dist/server/app-browser-navigation-controller.js +103 -36
  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-server-action-client.d.ts +2 -1
  186. package/dist/server/app-browser-state.d.ts +2 -2
  187. package/dist/server/app-browser-state.js +1 -1
  188. package/dist/server/app-browser-stream.d.ts +2 -1
  189. package/dist/server/app-browser-visible-commit.d.ts +6 -5
  190. package/dist/server/app-client-reference-manifest.d.ts +31 -0
  191. package/dist/server/app-client-reference-manifest.js +46 -0
  192. package/dist/server/app-client-reference-preloader.d.ts +45 -2
  193. package/dist/server/app-client-reference-preloader.js +48 -10
  194. package/dist/server/app-elements-wire.d.ts +2 -1
  195. package/dist/server/app-elements.d.ts +2 -0
  196. package/dist/server/app-elements.js +3 -1
  197. package/dist/server/app-fallback-renderer.d.ts +9 -2
  198. package/dist/server/app-fallback-renderer.js +6 -2
  199. package/dist/server/app-history-state.d.ts +2 -1
  200. package/dist/server/app-inline-css-client.d.ts +2 -1
  201. package/dist/server/app-layout-param-observation.d.ts +2 -1
  202. package/dist/server/app-metadata-tracing.d.ts +2 -1
  203. package/dist/server/app-middleware.d.ts +6 -0
  204. package/dist/server/app-middleware.js +8 -10
  205. package/dist/server/app-optimistic-routing.d.ts +26 -11
  206. package/dist/server/app-optimistic-routing.js +38 -96
  207. package/dist/server/app-page-boundary-render.d.ts +20 -2
  208. package/dist/server/app-page-boundary-render.js +229 -39
  209. package/dist/server/app-page-boundary.d.ts +34 -5
  210. package/dist/server/app-page-boundary.js +40 -7
  211. package/dist/server/app-page-cache-finalizer.d.ts +2 -1
  212. package/dist/server/app-page-cache-finalizer.js +1 -1
  213. package/dist/server/app-page-cache-render.d.ts +10 -2
  214. package/dist/server/app-page-cache-render.js +15 -2
  215. package/dist/server/app-page-cache.js +2 -2
  216. package/dist/server/app-page-dispatch.d.ts +34 -1
  217. package/dist/server/app-page-dispatch.js +165 -34
  218. package/dist/server/app-page-element-builder.d.ts +17 -1
  219. package/dist/server/app-page-element-builder.js +187 -66
  220. package/dist/server/app-page-execution.d.ts +28 -1
  221. package/dist/server/app-page-execution.js +114 -5
  222. package/dist/server/app-page-head.d.ts +95 -3
  223. package/dist/server/app-page-head.js +307 -152
  224. package/dist/server/app-page-http-access-fallback-metadata.d.ts +48 -2
  225. package/dist/server/app-page-http-access-fallback-metadata.js +76 -1
  226. package/dist/server/app-page-method.d.ts +2 -1
  227. package/dist/server/app-page-probe.d.ts +2 -1
  228. package/dist/server/app-page-render-identity.d.ts +2 -1
  229. package/dist/server/app-page-render.d.ts +7 -1
  230. package/dist/server/app-page-render.js +38 -11
  231. package/dist/server/app-page-request.d.ts +14 -1
  232. package/dist/server/app-page-request.js +1 -1
  233. package/dist/server/app-page-route-wiring.d.ts +52 -2
  234. package/dist/server/app-page-route-wiring.js +197 -47
  235. package/dist/server/app-page-rsc-render-status.d.ts +3 -1
  236. package/dist/server/app-page-rsc-render-status.js +1 -0
  237. package/dist/server/app-page-search-params-observation.d.ts +8 -6
  238. package/dist/server/app-page-search-params-observation.js +16 -11
  239. package/dist/server/app-page-segment-plan.d.ts +2 -1
  240. package/dist/server/app-page-stream.d.ts +38 -1
  241. package/dist/server/app-page-stream.js +24 -4
  242. package/dist/server/app-pages-bridge.d.ts +4 -2
  243. package/dist/server/app-pages-bridge.js +11 -7
  244. package/dist/server/app-ppr-fallback-shell-render.d.ts +2 -1
  245. package/dist/server/app-ppr-fallback-shell.d.ts +2 -1
  246. package/dist/server/app-prerender-endpoints.d.ts +2 -1
  247. package/dist/server/app-prerender-static-params.d.ts +2 -1
  248. package/dist/server/app-prerender-static-params.js +3 -2
  249. package/dist/server/app-render-dependency.d.ts +11 -1
  250. package/dist/server/app-render-dependency.js +65 -6
  251. package/dist/server/app-request-stage-independent-entry.d.ts +2 -1
  252. package/dist/server/app-request-stage-independent-entry.js +2 -2
  253. package/dist/server/app-response-stage-entry.d.ts +2 -1
  254. package/dist/server/app-response-stage-entry.js +3 -3
  255. package/dist/server/app-route-handler-cache.d.ts +2 -1
  256. package/dist/server/app-route-handler-dispatch.d.ts +2 -1
  257. package/dist/server/app-route-handler-dispatch.js +4 -2
  258. package/dist/server/app-route-handler-execution.d.ts +4 -1
  259. package/dist/server/app-route-handler-execution.js +9 -2
  260. package/dist/server/app-route-handler-middleware-context.d.ts +2 -1
  261. package/dist/server/app-route-handler-middleware-context.js +3 -3
  262. package/dist/server/app-route-handler-response.d.ts +4 -2
  263. package/dist/server/app-route-handler-response.js +2 -2
  264. package/dist/server/app-route-handler-runtime.d.ts +4 -1
  265. package/dist/server/app-route-handler-runtime.js +20 -3
  266. package/dist/server/app-route-module-loader.d.ts +18 -1
  267. package/dist/server/app-route-module-loader.js +15 -6
  268. package/dist/server/app-route-tree-prefetch.d.ts +2 -1
  269. package/dist/server/app-route-tree.d.ts +20 -0
  270. package/dist/server/app-route-tree.js +18 -0
  271. package/dist/server/app-router-entry.js +2 -2
  272. package/dist/server/app-rsc-combined-handler.js +8 -1
  273. package/dist/server/app-rsc-error-handler.d.ts +2 -1
  274. package/dist/server/app-rsc-errors.d.ts +9 -1
  275. package/dist/server/app-rsc-errors.js +9 -2
  276. package/dist/server/app-rsc-handler.d.ts +6 -2
  277. package/dist/server/app-rsc-handler.js +152 -140
  278. package/dist/server/app-rsc-response-finalizer.d.ts +7 -1
  279. package/dist/server/app-rsc-response-finalizer.js +4 -1
  280. package/dist/server/app-rsc-response-stage.js +3 -1
  281. package/dist/server/app-rsc-route-matching.d.ts +39 -1
  282. package/dist/server/app-rsc-route-matching.js +25 -1
  283. package/dist/server/app-segment-config.d.ts +2 -1
  284. package/dist/server/app-segment-config.js +1 -14
  285. package/dist/server/app-server-action-execution.d.ts +25 -7
  286. package/dist/server/app-server-action-execution.js +53 -59
  287. package/dist/server/app-ssr-entry.d.ts +12 -0
  288. package/dist/server/app-ssr-entry.js +104 -48
  289. package/dist/server/app-ssr-error-meta.d.ts +2 -1
  290. package/dist/server/app-ssr-search-params-gate.d.ts +2 -1
  291. package/dist/server/app-ssr-stream.d.ts +29 -10
  292. package/dist/server/app-ssr-stream.js +311 -67
  293. package/dist/server/app-static-generation.d.ts +2 -1
  294. package/dist/server/app-streamed-client-references.d.ts +39 -0
  295. package/dist/server/app-streamed-client-references.js +156 -0
  296. package/dist/server/app-visited-response-cache.d.ts +2 -1
  297. package/dist/server/app-worker-stages.d.ts +2 -1
  298. package/dist/server/artifact-compatibility.d.ts +2 -1
  299. package/dist/server/bfcache-identity.d.ts +2 -1
  300. package/dist/server/cache-headers.d.ts +2 -1
  301. package/dist/server/cacheability-request.d.ts +2 -1
  302. package/dist/server/client-reuse-manifest.d.ts +2 -1
  303. package/dist/server/config-headers.d.ts +2 -1
  304. package/dist/server/config-headers.js +12 -3
  305. package/dist/server/csp.d.ts +2 -1
  306. package/dist/server/default-global-not-found-module.d.ts +2 -1
  307. package/dist/server/default-http-access-fallback-modules.d.ts +33 -0
  308. package/dist/server/default-http-access-fallback-modules.js +31 -0
  309. package/dist/server/defer-until-stream-consumed.d.ts +34 -0
  310. package/dist/server/defer-until-stream-consumed.js +154 -21
  311. package/dist/server/dev-lockfile.d.ts +32 -2
  312. package/dist/server/dev-lockfile.js +46 -2
  313. package/dist/server/dev-module-runner.d.ts +2 -1
  314. package/dist/server/dev-server.js +10 -3
  315. package/dist/server/fetch-handler.js +1 -2
  316. package/dist/server/file-based-metadata.d.ts +2 -1
  317. package/dist/server/framework-tracer.d.ts +2 -1
  318. package/dist/server/html.d.ts +1 -0
  319. package/dist/server/html.js +19 -1
  320. package/dist/server/http-conditional.d.ts +2 -1
  321. package/dist/server/http-error-responses.d.ts +2 -1
  322. package/dist/server/implicit-tags.d.ts +2 -1
  323. package/dist/server/isolate-shared-promise.d.ts +10 -0
  324. package/dist/server/isolate-shared-promise.js +33 -0
  325. package/dist/server/isr-cache.js +3 -2
  326. package/dist/server/metadata-route-build-data.d.ts +2 -1
  327. package/dist/server/metadata-route-build-data.js +1 -1
  328. package/dist/server/metadata-route-response.d.ts +2 -1
  329. package/dist/server/metadata-route-response.js +1 -1
  330. package/dist/server/metadata-routes.d.ts +2 -1
  331. package/dist/server/middleware-matcher-pattern.d.ts +0 -1
  332. package/dist/server/middleware-matcher-pattern.js +11 -140
  333. package/dist/server/middleware-matcher.js +5 -6
  334. package/dist/server/middleware-response-headers.d.ts +31 -0
  335. package/dist/server/middleware-response-headers.js +57 -1
  336. package/dist/server/middleware-runtime.d.ts +2 -1
  337. package/dist/server/middleware-runtime.js +26 -13
  338. package/dist/server/navigation-planner.d.ts +2 -2
  339. package/dist/server/navigation-trace.d.ts +2 -1
  340. package/dist/server/next-error-digest.d.ts +2 -1
  341. package/dist/server/nitro-public-files-plugin.d.ts +39 -0
  342. package/dist/server/nitro-public-files-plugin.js +106 -0
  343. package/dist/server/nitro-public-files.d.ts +22 -0
  344. package/dist/server/nitro-public-files.js +39 -0
  345. package/dist/server/opentelemetry-api.d.ts +2 -1
  346. package/dist/server/operation-token.d.ts +2 -1
  347. package/dist/server/pages-api-route.d.ts +2 -1
  348. package/dist/server/pages-asset-tags.d.ts +7 -1
  349. package/dist/server/pages-asset-tags.js +9 -2
  350. package/dist/server/pages-body-parser-config.d.ts +2 -1
  351. package/dist/server/pages-client-assets.d.ts +8 -1
  352. package/dist/server/pages-data-route.d.ts +2 -1
  353. package/dist/server/pages-document-asset-props.d.ts +2 -1
  354. package/dist/server/pages-document-initial-props.d.ts +2 -1
  355. package/dist/server/pages-execution-tracing.d.ts +2 -1
  356. package/dist/server/pages-execution-tracing.js +1 -1
  357. package/dist/server/pages-get-initial-props.d.ts +2 -1
  358. package/dist/server/pages-i18n.d.ts +18 -0
  359. package/dist/server/pages-i18n.js +18 -2
  360. package/dist/server/pages-node-compat.d.ts +5 -3
  361. package/dist/server/pages-node-compat.js +35 -16
  362. package/dist/server/pages-page-data.d.ts +7 -1
  363. package/dist/server/pages-page-data.js +35 -12
  364. package/dist/server/pages-page-handler.d.ts +3 -2
  365. package/dist/server/pages-page-handler.js +16 -7
  366. package/dist/server/pages-page-method.d.ts +2 -1
  367. package/dist/server/pages-page-response.d.ts +2 -1
  368. package/dist/server/pages-preview.d.ts +2 -1
  369. package/dist/server/pages-readiness.d.ts +2 -1
  370. package/dist/server/pages-request-pipeline.d.ts +8 -2
  371. package/dist/server/pages-request-pipeline.js +35 -40
  372. package/dist/server/pages-request-stage-entry.d.ts +2 -1
  373. package/dist/server/pages-request-stage-entry.js +16 -6
  374. package/dist/server/pages-response-stage-entry.d.ts +2 -1
  375. package/dist/server/pages-response-stage-entry.js +1 -1
  376. package/dist/server/pages-revalidate.js +1 -0
  377. package/dist/server/pages-route-data-kind.d.ts +2 -1
  378. package/dist/server/pages-router-entry.js +1 -1
  379. package/dist/server/prerender-cache-life-header.d.ts +2 -1
  380. package/dist/server/prerender-route-params.d.ts +2 -1
  381. package/dist/server/prod-server.d.ts +2 -2
  382. package/dist/server/prod-server.js +80 -36
  383. package/dist/server/proxy-trust.d.ts +6 -0
  384. package/dist/server/proxy-trust.js +12 -6
  385. package/dist/server/request-log.d.ts +2 -1
  386. package/dist/server/request-pipeline.d.ts +5 -0
  387. package/dist/server/request-pipeline.js +12 -1
  388. package/dist/server/request-tracing.d.ts +2 -1
  389. package/dist/server/request-tracing.js +1 -1
  390. package/dist/server/response-start-tracing.js +7 -29
  391. package/dist/server/rsc-render-stream.d.ts +4 -0
  392. package/dist/server/rsc-render-stream.js +25 -0
  393. package/dist/server/seed-cache.d.ts +2 -1
  394. package/dist/server/seed-cache.js +1 -1
  395. package/dist/server/server-reference-loader.js +10 -1
  396. package/dist/server/static-file-cache.d.ts +2 -1
  397. package/dist/server/static-file-cache.js +16 -3
  398. package/dist/server/static-layout-client-reuse-proof.d.ts +2 -1
  399. package/dist/server/worker-revalidation-context.d.ts +2 -1
  400. package/dist/server/worker-stages.d.ts +2 -1
  401. package/dist/server/worker-utils.js +1 -1
  402. package/dist/shims/app.d.ts +2 -1
  403. package/dist/shims/cache-callable-runtime.d.ts +2 -1
  404. package/dist/shims/cache-handler.d.ts +8 -3
  405. package/dist/shims/cache-handler.js +32 -11
  406. package/dist/shims/cache-request-state.d.ts +40 -3
  407. package/dist/shims/cache-request-state.js +70 -5
  408. package/dist/shims/cache-runtime.js +47 -19
  409. package/dist/shims/cache.d.ts +2 -2
  410. package/dist/shims/cache.js +17 -8
  411. package/dist/shims/caught-not-found-boundaries.d.ts +15 -0
  412. package/dist/shims/caught-not-found-boundaries.js +48 -0
  413. package/dist/shims/cdn-purge-routes.d.ts +25 -0
  414. package/dist/shims/cdn-purge-routes.js +77 -0
  415. package/dist/shims/client-locale.js +2 -1
  416. package/dist/shims/client-page-root.d.ts +2 -1
  417. package/dist/shims/config.d.ts +2 -1
  418. package/dist/shims/default-forbidden.d.ts +4 -0
  419. package/dist/shims/default-forbidden.js +18 -0
  420. package/dist/shims/default-not-found.d.ts +0 -5
  421. package/dist/shims/default-not-found.js +5 -41
  422. package/dist/shims/default-unauthorized.d.ts +4 -0
  423. package/dist/shims/default-unauthorized.js +18 -0
  424. package/dist/shims/dynamic.js +17 -4
  425. package/dist/shims/error-boundary.d.ts +39 -3
  426. package/dist/shims/error-boundary.js +31 -16
  427. package/dist/shims/font-google.js +1 -2
  428. package/dist/shims/font-utils.d.ts +3 -2
  429. package/dist/shims/font-utils.js +5 -3
  430. package/dist/shims/form.js +9 -4
  431. package/dist/shims/http-access-error-fallback.d.ts +7 -0
  432. package/dist/shims/http-access-error-fallback.js +47 -0
  433. package/dist/shims/image-props.d.ts +93 -0
  434. package/dist/shims/image-props.js +323 -0
  435. package/dist/shims/image.d.ts +4 -39
  436. package/dist/shims/image.js +4 -319
  437. package/dist/shims/internal/app-prefetch-fetch-queue.d.ts +22 -2
  438. package/dist/shims/internal/app-prefetch-fetch-queue.js +71 -18
  439. package/dist/shims/internal/app-route-prefetch-policy.d.ts +14 -3
  440. package/dist/shims/internal/app-route-prefetch-policy.js +29 -4
  441. package/dist/shims/internal/cache-context-accessor.d.ts +2 -1
  442. package/dist/shims/internal/client-reference-loader.d.ts +7 -0
  443. package/dist/shims/internal/client-reference-loader.js +91 -0
  444. package/dist/shims/internal/cookie-serialize.d.ts +2 -1
  445. package/dist/shims/internal/cookies.js +1 -2
  446. package/dist/shims/internal/headers-state.d.ts +9 -0
  447. package/dist/shims/internal/headers-state.js +19 -2
  448. package/dist/shims/internal/hybrid-client-route-owner-direct.d.ts +6 -2
  449. package/dist/shims/internal/hybrid-client-route-owner-direct.js +31 -14
  450. package/dist/shims/internal/hybrid-client-route-owner.js +8 -8
  451. package/dist/shims/internal/interpolate-as.d.ts +2 -1
  452. package/dist/shims/internal/pages-data-target.d.ts +2 -1
  453. package/dist/shims/internal/pages-data-url.d.ts +2 -1
  454. package/dist/shims/internal/thenable-well-known-properties.d.ts +2 -1
  455. package/dist/shims/link.js +198 -53
  456. package/dist/shims/metadata.d.ts +32 -11
  457. package/dist/shims/metadata.js +88 -26
  458. package/dist/shims/navigation-errors.d.ts +2 -1
  459. package/dist/shims/navigation.d.ts +23 -3
  460. package/dist/shims/navigation.js +91 -25
  461. package/dist/shims/og.js +35 -10
  462. package/dist/shims/pages-router-runtime.d.ts +2 -1
  463. package/dist/shims/ppr-fallback-shell.d.ts +2 -1
  464. package/dist/shims/request-context.d.ts +13 -0
  465. package/dist/shims/router.js +33 -43
  466. package/dist/shims/server.d.ts +31 -4
  467. package/dist/shims/server.js +58 -10
  468. package/dist/shims/thenable-params.d.ts +6 -1
  469. package/dist/shims/thenable-params.js +11 -2
  470. package/dist/shims/unified-request-context.d.ts +5 -0
  471. package/dist/shims/unified-request-context.js +5 -3
  472. package/dist/typegen.d.ts +2 -1
  473. package/dist/utils/asset-prefix.d.ts +7 -0
  474. package/dist/utils/asset-prefix.js +10 -1
  475. package/dist/utils/client-build-manifest.d.ts +4 -1
  476. package/dist/utils/client-build-manifest.js +20 -6
  477. package/dist/utils/client-entry-manifest.d.ts +13 -0
  478. package/dist/utils/client-entry-manifest.js +20 -1
  479. package/dist/utils/client-reference-chunks.d.ts +45 -0
  480. package/dist/utils/client-reference-chunks.js +30 -0
  481. package/dist/utils/client-runtime-metadata.d.ts +10 -1
  482. package/dist/utils/client-runtime-metadata.js +53 -9
  483. package/dist/utils/compare.d.ts +9 -0
  484. package/dist/utils/compare.js +15 -1
  485. package/dist/utils/lazy-chunks.d.ts +18 -0
  486. package/dist/utils/lazy-chunks.js +27 -1
  487. package/dist/utils/manifest-paths.d.ts +14 -0
  488. package/dist/utils/manifest-paths.js +22 -1
  489. package/dist/utils/middleware-request-headers.d.ts +2 -1
  490. package/dist/utils/path-to-regexp.d.ts +21 -0
  491. package/dist/{server/middleware-path-to-regexp.js → utils/path-to-regexp.js} +14 -11
  492. package/dist/utils/plugin-react-version.d.ts +15 -0
  493. package/dist/utils/plugin-react-version.js +64 -0
  494. package/dist/utils/project.d.ts +2 -1
  495. package/dist/utils/project.js +9 -1
  496. package/dist/utils/public-routes.d.ts +2 -0
  497. package/dist/utils/public-routes.js +18 -7
  498. package/dist/utils/query.d.ts +2 -1
  499. package/dist/utils/sorted-array.d.ts +2 -1
  500. package/dist/utils/vite-cli-invocation.d.ts +2 -1
  501. package/package.json +5 -5
  502. package/dist/deps/.pnpm/image-size@2.0.2/deps/image-size/dist/index.js +0 -808
  503. package/dist/server/default-not-found-module.d.ts +0 -19
  504. package/dist/server/default-not-found-module.js +0 -18
  505. package/dist/server/middleware-path-to-regexp.d.ts +0 -13
  506. package/dist/server/rsc-stream-hints.d.ts +0 -21
  507. package/dist/server/rsc-stream-hints.js +0 -227
  508. package/dist/utils/regex-safety.d.ts +0 -17
  509. package/dist/utils/regex-safety.js +0 -789
@@ -1,3 +1,4 @@
1
+ import { deferUntilStreamConsumed } from "./defer-until-stream-consumed.js";
1
2
  import { notFoundResponse } from "./http-error-responses.js";
2
3
  import { isOpenRedirectShaped, repeatedSlashRedirectResponse } from "./open-redirect.js";
3
4
  import "./server-globals.js";
@@ -8,21 +9,23 @@ import { appendAssetDeploymentIdQuery } from "../utils/deployment-id.js";
8
9
  import { withScriptNonce } from "../shims/script-nonce-context.js";
9
10
  import { createInlineScriptTag, createNonceAttribute, escapeHtmlAttr, safeJsonStringify } from "./html.js";
10
11
  import { getClientTraceMetadataHTML, markClientTraceMetadataBlock } from "./client-trace-metadata.js";
11
- import { deferUntilStreamConsumed } from "./defer-until-stream-consumed.js";
12
12
  import { setPagesClientAssets } from "./pages-client-assets.js";
13
13
  import { AppElementsWire } from "./app-elements-wire.js";
14
14
  import "./app-elements.js";
15
15
  import { ServerInsertedHTMLContext, clearServerInsertedHTML, getBfcacheIdMapContext, registerServerInsertedHTMLCallback, renderServerInsertedHTML, setNavigationContext } from "../shims/navigation-context-state.js";
16
16
  import "../shims/navigation-server.js";
17
17
  import DefaultGlobalError from "../shims/default-global-error.js";
18
- import { BfcacheIdentityMapContext, ElementsContext, Slot } from "../shims/slot.js";
18
+ import { CAUGHT_NOT_FOUND_BOUNDARIES_GLOBAL, withCaughtNotFoundBoundaries } from "../shims/caught-not-found-boundaries.js";
19
+ import { BfcacheIdentityMapContext } from "../shims/slot.js";
19
20
  import { getNextErrorDigest } from "./next-error-digest.js";
20
21
  import { createSsrErrorMetaRenderer } from "./app-ssr-error-meta.js";
21
22
  import { createRenderStreamCancellation, isAppRenderAbortError } from "./app-render-abort-error.js";
22
23
  import { RSC_FORM_STATE_GLOBAL } from "../client/browser-globals.js";
23
- import { createNavigationRuntimeRenderedSearchScript, createNavigationRuntimeRscMetadataScript, createRscEmbedTransform, createTickBufferedTransform, waitAtLeastOneReactRenderTask } from "./app-ssr-stream.js";
24
+ import { createNavigationRuntimeRenderedSearchScript, createNavigationRuntimeRscCompatibilityScript, createNavigationRuntimeRscMetadataScript, createRscEmbedTransform, createTickBufferedTransform, rewriteInlineCssStylesheetLinks, waitAtLeastOneReactRenderTask } from "./app-ssr-stream.js";
24
25
  import { createInitialBfcacheMaps } from "./app-bfcache-identity.js";
25
- import { createClientReferencePreloader } from "./app-client-reference-preloader.js";
26
+ import { createAppRouteTree } from "./app-route-tree.js";
27
+ import { ssrServerConsumerManifest } from "./app-client-reference-manifest.js";
28
+ import { createClientReferencePreloader, resolveRouteClientReferences } from "./app-client-reference-preloader.js";
26
29
  import { createClientPageSsrSearchParamsSource } from "./app-page-search-params-observation.js";
27
30
  import { runWithRootParamsScope } from "../shims/root-params.js";
28
31
  import { runWithNavigationContext } from "../shims/navigation-state.js";
@@ -31,12 +34,13 @@ import { withAppRouterTree } from "../shims/app-router-tree-context.js";
31
34
  import { BeforeInteractiveContext } from "../shims/before-interactive-context.js";
32
35
  import { renderBeforeInteractiveInlineScripts } from "./before-interactive-head.js";
33
36
  import { createInitialDevServerErrorScript } from "./dev-initial-server-error.js";
37
+ import { createStreamedClientReferences, renderStreamedStylesheets, resetStreamedClientReferences, runWithStreamedClientReferences, wrapClientReferenceRequire } from "./app-streamed-client-references.js";
34
38
  import { ssrAppRouterInstance } from "./app-ssr-router-instance.js";
35
39
  import { Fragment, createElement, use } from "react";
36
- import { renderToReadableStream, renderToStaticMarkup } from "react-dom/server.edge";
37
- import { preinitModule } from "react-dom";
40
+ import { renderToReadableStream, renderToStaticMarkup } from "react-dom/server";
41
+ import { preinitModule, preloadModule } from "react-dom";
38
42
  import { createFromReadableStream } from "@vitejs/plugin-rsc/ssr";
39
- import clientReferences from "virtual:vite-rsc/client-references";
43
+ import clientReferences, { routeClientReferences } from "virtual:vite-rsc/client-references";
40
44
  import pagesClientAssets from "virtual:vinext-pages-client-assets";
41
45
  //#region src/server/app-ssr-entry.ts
42
46
  setPagesClientAssets(pagesClientAssets);
@@ -47,33 +51,18 @@ setPagesClientAssets(pagesClientAssets);
47
51
  * the response-layer combine cap.
48
52
  */
49
53
  const DEFAULT_REACT_MAX_HEADERS_LENGTH = 6e3;
50
- function isReactDevelopmentRuntime() {
51
- if (process.env.NODE_ENV === "production") return false;
52
- if (process.env.NODE_ENV === "development") return true;
53
- return Function.prototype.toString.call(createElement).includes("getOwner");
54
- }
54
+ /**
55
+ * plugin-rsc's SSR `createFromReadableStream` spreads these over its own
56
+ * options, whose type leaves out the consumer manifest.
57
+ */
58
+ const SSR_FLIGHT_OPTIONS = { serverConsumerManifest: ssrServerConsumerManifest };
55
59
  function isStaticPrerenderModule(value) {
56
60
  return typeof value === "object" && value !== null && "prerender" in value && typeof value.prerender === "function";
57
61
  }
58
62
  async function loadStaticPrerender() {
59
- const staticRenderer = await import("react-dom/static.edge");
63
+ const staticRenderer = await import("react-dom/static");
60
64
  if (isStaticPrerenderModule(staticRenderer)) return staticRenderer.prerender;
61
- if (isReactDevelopmentRuntime()) try {
62
- const [{ createRequire }, path] = await Promise.all([import("node:module"), import("node:path")]);
63
- const reactDomPackageJson = createRequire(import.meta.url).resolve("react-dom/package.json");
64
- const reactDomDir = path.dirname(reactDomPackageJson);
65
- const devRenderer = await import(
66
- /* @vite-ignore */
67
- path.join(reactDomDir, "cjs/react-dom-server.edge.development.js")
68
- );
69
- if (isStaticPrerenderModule(devRenderer)) return devRenderer.prerender;
70
- const devRendererDefault = typeof devRenderer === "object" && devRenderer !== null && "default" in devRenderer && devRenderer.default;
71
- if (isStaticPrerenderModule(devRendererDefault)) return devRendererDefault.prerender;
72
- throw new Error("react-dom development renderer did not expose prerender().");
73
- } catch (error) {
74
- throw new Error("[vinext] Failed to load React static development renderer.", { cause: error });
75
- }
76
- throw new Error("[vinext] react-dom/static.edge did not expose prerender().");
65
+ throw new Error("[vinext] react-dom/static did not expose prerender().");
77
66
  }
78
67
  function createUtf8Stream(html) {
79
68
  const encoder = new TextEncoder();
@@ -84,7 +73,7 @@ function createUtf8Stream(html) {
84
73
  }
85
74
  function buildBootstrapModuleScript(bootstrapModuleUrl, nonce) {
86
75
  if (!bootstrapModuleUrl) return "";
87
- return `<script type="module"${createNonceAttribute(nonce)} src="` + escapeHtmlAttr(bootstrapModuleUrl) + "\" id=\"_R_\" async=\"\"><\/script>";
76
+ return `<script type="module"${createNonceAttribute(nonce)} src="` + escapeHtmlAttr(bootstrapModuleUrl) + "\" id=\"_R_\" async=\"\" fetchPriority=\"low\"><\/script>";
88
77
  }
89
78
  function renderSsrErrorDocumentShell(bootstrapModuleUrl, nonce) {
90
79
  const html = renderToStaticMarkup(createElement(DefaultGlobalError, { error: null })).replace("<style>", "<style data-vinext-error-shell-style=\"\">");
@@ -94,6 +83,10 @@ function renderSsrErrorDocumentShell(bootstrapModuleUrl, nonce) {
94
83
  if (!html.endsWith(documentClose)) return createUtf8Stream(`<!DOCTYPE html>${html}${bootstrapScript}`);
95
84
  return createUtf8Stream(`<!DOCTYPE html>${html.slice(0, -14)}${bootstrapScript}${documentClose}`);
96
85
  }
86
+ if (process.env.NODE_ENV === "production") {
87
+ const async = routeClientReferences?.async;
88
+ wrapClientReferenceRequire(new Set(Array.isArray(async) ? async.map((index) => routeClientReferences.references[index]) : []), (id) => clientReferences[id]);
89
+ }
97
90
  const clientReferencePreloader = createClientReferencePreloader({
98
91
  getReferences() {
99
92
  return clientReferences;
@@ -157,14 +150,18 @@ function extractBootstrapModuleUrl(bootstrapScriptContent) {
157
150
  }
158
151
  function buildModulePreloadHtml(bootstrapModuleUrl, nonce) {
159
152
  if (!bootstrapModuleUrl) return "";
160
- return `<link rel="modulepreload"${createNonceAttribute(nonce)} href="${escapeHtmlAttr(bootstrapModuleUrl)}" crossorigin="${pagesClientAssets.crossOrigin ?? ""}" />\n`;
153
+ return `<link rel="modulepreload"${createNonceAttribute(nonce)} href="${escapeHtmlAttr(bootstrapModuleUrl)}" crossorigin="${pagesClientAssets.crossOrigin ?? ""}" fetchPriority="low" />\n`;
161
154
  }
162
- function buildHeadInjectionHtml(navContext, bootstrapModuleUrl, formState, insertedHTML, fontHTML, dynamicStaleTimeSeconds, searchParamsFromBrowser, scriptNonce) {
155
+ function buildHeadInjectionHtml(navContext, bootstrapPreloadUrl, formState, insertedHTML, fontHTML, dynamicStaleTimeSeconds, searchParamsFromBrowser, scriptNonce) {
163
156
  const navPayload = {
164
157
  pathname: navContext.pathname,
165
158
  searchParams: [...navContext.searchParams.entries()]
166
159
  };
167
- return createInlineScriptTag(createNavigationRuntimeRscMetadataScript(navContext.params, navPayload, dynamicStaleTimeSeconds, searchParamsFromBrowser), scriptNonce) + (formState === null ? "" : createInlineScriptTag("self[" + safeJsonStringify(RSC_FORM_STATE_GLOBAL) + "]=" + safeJsonStringify(formState), scriptNonce)) + buildModulePreloadHtml(bootstrapModuleUrl, scriptNonce) + insertedHTML + fontHTML;
160
+ const rscMetadataScript = createInlineScriptTag(createNavigationRuntimeRscMetadataScript(navContext.params, navPayload, dynamicStaleTimeSeconds, searchParamsFromBrowser), scriptNonce);
161
+ const compatibilityScript = createNavigationRuntimeRscCompatibilityScript();
162
+ const rscCompatibilityScript = compatibilityScript === "" ? "" : createInlineScriptTag(compatibilityScript, scriptNonce);
163
+ const formStateScript = formState === null ? "" : createInlineScriptTag("self[" + safeJsonStringify(RSC_FORM_STATE_GLOBAL) + "]=" + safeJsonStringify(formState), scriptNonce);
164
+ return rscMetadataScript + rscCompatibilityScript + formStateScript + buildModulePreloadHtml(bootstrapPreloadUrl, scriptNonce) + insertedHTML + fontHTML;
168
165
  }
169
166
  function requireNavigationContext(navContext) {
170
167
  if (!navContext) throw new Error("App SSR requires navigation context for BFCache state keys");
@@ -189,7 +186,9 @@ async function handleSsr(rscStream, navContext, fontData, options) {
189
186
  isPprFallbackShell: options?.pprFallbackShellSignal !== void 0
190
187
  })
191
188
  };
192
- await clientReferencePreloader.preload();
189
+ const routeReferences = options?.pprFallbackShellSignal ? void 0 : resolveRouteClientReferences(routeClientReferences, options?.preloadRoutePattern);
190
+ const streamedReferences = createStreamedClientReferences(routeReferences, options?.scriptNonce, assetCrossOrigin);
191
+ await clientReferencePreloader.preload(routeReferences?.references, streamedReferences?.streamed);
193
192
  setNavigationContext(ssrNavigationContext);
194
193
  clearServerInsertedHTML();
195
194
  const cleanup = () => {
@@ -225,9 +224,16 @@ async function handleSsr(rscStream, navContext, fontData, options) {
225
224
  for (const moduleUrl of pagesClientAssets.appBootstrapPreinitModules ?? []) preinitModule(moduleUrl, {
226
225
  as: "script",
227
226
  crossOrigin: assetCrossOrigin,
227
+ fetchPriority: "low",
228
+ nonce: options?.scriptNonce
229
+ });
230
+ if (pagesClientAssets.appRouteManifestModule) preloadModule(pagesClientAssets.appRouteManifestModule, {
231
+ as: "script",
232
+ crossOrigin: assetCrossOrigin,
233
+ fetchPriority: "low",
228
234
  nonce: options?.scriptNonce
229
235
  });
230
- if (!flightRoot) flightRoot = createFromReadableStream(ssrStream);
236
+ if (!flightRoot) flightRoot = createFromReadableStream(ssrStream, SSR_FLIGHT_OPTIONS);
231
237
  const wireElements = use(flightRoot);
232
238
  const elements = AppElementsWire.decode(wireElements);
233
239
  const metadata = AppElementsWire.readMetadata(elements);
@@ -235,7 +241,11 @@ async function handleSsr(rscStream, navContext, fontData, options) {
235
241
  elements,
236
242
  metadata
237
243
  });
238
- const routeTree = createElement(ElementsContext.Provider, { value: elements }, createElement(Slot, { id: metadata.routeId }));
244
+ const routeTree = createAppRouteTree({
245
+ elements,
246
+ historyCommit: null,
247
+ routeId: metadata.routeId
248
+ });
239
249
  const identityMapTree = createElement(BfcacheIdentityMapContext.Provider, { value: bfcacheMaps.identities }, routeTree);
240
250
  return BfcacheIdMapContext ? createElement(BfcacheIdMapContext.Provider, { value: bfcacheMaps.bfcacheIds }, identityMapTree) : identityMapTree;
241
251
  }
@@ -281,29 +291,74 @@ async function handleSsr(rscStream, navContext, fontData, options) {
281
291
  let htmlStream;
282
292
  let renderComplete = Promise.resolve();
283
293
  let shellErrorRecovered = false;
294
+ let caughtShellError;
295
+ let caughtBoundaries = null;
284
296
  let shouldDelayInitialHtmlPull = false;
297
+ const prepareCaughtNotFoundRoot = (error) => {
298
+ const caughtNotFoundBoundaries = options?.resolveCaughtNotFoundBoundaries?.(error) ?? null;
299
+ if (!caughtNotFoundBoundaries || caughtNotFoundBoundaries.length === 0) return null;
300
+ const replayedRscStream = rscEmbed.replay({ keepOpen: pprFallbackShellSignal !== void 0 });
301
+ if (!replayedRscStream) return null;
302
+ ssrStream = replayedRscStream;
303
+ flightRoot = null;
304
+ beforeInteractiveInlineScripts.length = 0;
305
+ clearServerInsertedHTML();
306
+ resetStreamedClientReferences(streamedReferences, routeReferences);
307
+ const boundaries = {
308
+ ids: new Set(caughtNotFoundBoundaries),
309
+ rendered: /* @__PURE__ */ new Set()
310
+ };
311
+ caughtBoundaries = boundaries;
312
+ return withCaughtNotFoundBoundaries(boundaries, ssrRoot);
313
+ };
285
314
  if (pprFallbackShellSignal) {
286
315
  const prerender = await loadStaticPrerender();
287
- const htmlAbortController = new AbortController();
288
- const pendingHtml = prerender(ssrRoot, {
289
- ...renderOptions,
290
- signal: htmlAbortController.signal
291
- });
292
- setTimeout(() => htmlAbortController.abort(), 0);
293
- htmlStream = (await pendingHtml).prelude;
316
+ const prerenderFallbackShell = async (root) => {
317
+ const htmlAbortController = new AbortController();
318
+ const pendingHtml = runWithStreamedClientReferences(streamedReferences, () => prerender(root, {
319
+ ...renderOptions,
320
+ signal: htmlAbortController.signal
321
+ }));
322
+ setTimeout(() => htmlAbortController.abort(), 0);
323
+ return (await pendingHtml).prelude;
324
+ };
325
+ try {
326
+ htmlStream = await prerenderFallbackShell(ssrRoot);
327
+ } catch (error) {
328
+ const caughtRoot = prepareCaughtNotFoundRoot(error);
329
+ if (!caughtRoot) throw error;
330
+ htmlStream = await prerenderFallbackShell(caughtRoot);
331
+ caughtShellError = error;
332
+ }
294
333
  } else {
295
334
  let streamingHtmlStream;
296
335
  try {
297
- streamingHtmlStream = await renderToReadableStream(ssrRoot, { ...renderOptions });
336
+ streamingHtmlStream = await runWithStreamedClientReferences(streamedReferences, () => renderToReadableStream(ssrRoot, { ...renderOptions }));
298
337
  renderComplete = streamingHtmlStream.allReady;
299
338
  if (options?.waitForAllReady === true) await streamingHtmlStream.allReady;
300
339
  else shouldDelayInitialHtmlPull = true;
301
340
  htmlStream = streamingHtmlStream;
302
341
  } catch (error) {
303
342
  streamingHtmlStream?.cancel().catch(() => {});
304
- if (options?.fallbackToErrorDocumentOnShellError !== true || options?.waitForAllReady === true || typeof error?.digest === "string") throw error;
305
- shellErrorRecovered = true;
306
- htmlStream = renderSsrErrorDocumentShell(bootstrapModuleUrl, options?.scriptNonce);
343
+ const caughtRoot = prepareCaughtNotFoundRoot(error);
344
+ if (caughtRoot) {
345
+ let caughtHtmlStream;
346
+ try {
347
+ caughtHtmlStream = await runWithStreamedClientReferences(streamedReferences, () => renderToReadableStream(caughtRoot, renderOptions));
348
+ if (options?.waitForAllReady === true) await caughtHtmlStream.allReady;
349
+ } catch (caughtRenderError) {
350
+ caughtHtmlStream?.cancel().catch(() => {});
351
+ throw caughtRenderError;
352
+ }
353
+ renderComplete = caughtHtmlStream.allReady;
354
+ shouldDelayInitialHtmlPull = options?.waitForAllReady !== true;
355
+ caughtShellError = error;
356
+ htmlStream = caughtHtmlStream;
357
+ } else if (options?.fallbackToErrorDocumentOnShellError !== true || options?.waitForAllReady === true || typeof error?.digest === "string") throw error;
358
+ else {
359
+ shellErrorRecovered = true;
360
+ htmlStream = renderSsrErrorDocumentShell(bootstrapModuleUrl, options?.scriptNonce);
361
+ }
307
362
  }
308
363
  }
309
364
  const inlineCssManifest = globalThis.__VINEXT_INLINE_CSS__;
@@ -338,7 +393,7 @@ async function handleSsr(rscStream, navContext, fontData, options) {
338
393
  return buildHeadInjectionHtml(hidesQuery ? {
339
394
  ...ssrNavigationContext,
340
395
  searchParams: new URLSearchParams()
341
- } : ssrNavigationContext, bootstrapModuleUrl, options?.formState ?? null, insertedHTML + errorMetaHTML + getTraceMetaHTML() + initialDevServerErrorHTML, fontHTML, options?.dynamicStaleTimeSeconds, isSearchParamsFromBrowser, options?.scriptNonce);
396
+ } : ssrNavigationContext, shellErrorRecovered ? bootstrapModuleUrl : void 0, options?.formState ?? null, insertedHTML + errorMetaHTML + (caughtBoundaries === null ? "" : createInlineScriptTag(`self.${CAUGHT_NOT_FOUND_BOUNDARIES_GLOBAL}=${safeJsonStringify([...caughtBoundaries.rendered])}`, options?.scriptNonce)) + getTraceMetaHTML() + initialDevServerErrorHTML + rewriteInlineCssStylesheetLinks(renderStreamedStylesheets(streamedReferences), inlineCssManifest, "", options?.scriptNonce).html, fontHTML, options?.dynamicStaleTimeSeconds, isSearchParamsFromBrowser, options?.scriptNonce);
342
397
  };
343
398
  const getBeforeInteractiveHeadHTML = () => renderBeforeInteractiveInlineScripts(beforeInteractiveInlineScripts);
344
399
  if (shouldDelayInitialHtmlPull) await waitAtLeastOneReactRenderTask();
@@ -348,6 +403,7 @@ async function handleSsr(rscStream, navContext, fontData, options) {
348
403
  renderComplete,
349
404
  capturedRscData: options?.capturedRscDataRef?.value ?? null,
350
405
  shellErrorRecovered,
406
+ ...caughtShellError === void 0 ? {} : { caughtShellError },
351
407
  linkHeader: reactLinkHeader
352
408
  };
353
409
  } catch (error) {
@@ -9,4 +9,5 @@ type SsrErrorMetaRenderer = {
9
9
  };
10
10
  export declare function renderSsrErrorMetaTags(errors: readonly unknown[], options?: SsrErrorMetaRenderOptions): string;
11
11
  export declare function createSsrErrorMetaRenderer(options?: SsrErrorMetaRenderOptions): SsrErrorMetaRenderer;
12
- //#endregion
12
+ //#endregion
13
+ export {};
@@ -17,4 +17,5 @@ type CandidateSearchParamsGate = {
17
17
  * server component can mark the render dynamic any more.
18
18
  */
19
19
  export declare function startCandidateSearchParamsGate(): CandidateSearchParamsGate;
20
- //#endregion
20
+ //#endregion
21
+ export {};
@@ -1,10 +1,22 @@
1
1
  //#region src/server/app-ssr-stream.d.ts
2
2
  type RscEmbedTransform = {
3
- flush(): string;
4
- finalize(): Promise<string>;
3
+ /** UTF-8 bytes of the scripts for the chunks read since the last flush. */
4
+ flush(): Uint8Array | null;
5
+ finalize(): Promise<Uint8Array>;
5
6
  /** Resolves when all raw bytes from the embed stream have been read. */
6
7
  getRawBuffer(): Promise<ArrayBuffer>;
7
8
  };
9
+ type ReplayableRscEmbedTransform = RscEmbedTransform & {
10
+ /**
11
+ * The embed stream again from its start, for a render that replaces one
12
+ * that already read it, or null once its bytes are released. `keepOpen`
13
+ * leaves it open after the last byte, like a PPR fallback shell's SSR
14
+ * stream, whose omitted references stay suspended.
15
+ */
16
+ replay(options?: {
17
+ keepOpen?: boolean;
18
+ }): ReadableStream<Uint8Array> | null;
19
+ };
8
20
  type RscEmbedTransformOptions = {
9
21
  /**
10
22
  * Mirror inline Flight chunks into Next.js's `self.__next_f` transport. A
@@ -26,12 +38,23 @@ export type InitialNavigationCacheMetadata = {
26
38
  */
27
39
  staleTimeSeconds?: number;
28
40
  };
41
+ type InlineCssRewriteResult = {
42
+ html: string;
43
+ consumedPrependCss: boolean;
44
+ };
29
45
  export declare function waitAtLeastOneReactRenderTask(): Promise<void>;
30
46
  export declare function navigationRuntimeRscBootstrapExpression(): string;
31
47
  export declare function createNavigationRuntimeRscMetadataScript(params: Record<string, string | string[]>, nav: {
32
48
  pathname: string;
33
49
  searchParams: [string, string][];
34
50
  }, dynamicStaleTimeSeconds?: number, searchParamsFromBrowser?: boolean): string;
51
+ /**
52
+ * The compatibility ID of the server rendering this page. The browser compares
53
+ * RSC responses against it, so it is sent with the page rather than inlined
54
+ * into the client bundle, where a per-build value would rename chunks on every
55
+ * build. Static export skips the check, so its pages omit it.
56
+ */
57
+ export declare function createNavigationRuntimeRscCompatibilityScript(): string;
35
58
  /**
36
59
  * The query a client page read during SSR, for a render that turned dynamic
37
60
  * after its head told the browser to read the query from its own URL.
@@ -41,13 +64,8 @@ export declare function createNavigationRuntimeRenderedSearchScript(search: stri
41
64
  * Create a helper that progressively embeds RSC chunks as inline <script> tags.
42
65
  * The browser entry turns the embedded chunks back into Uint8Array data.
43
66
  */
44
- export declare function createRscEmbedTransform(embedStream: ReadableStream<Uint8Array>, optionsOrNonce?: RscEmbedTransformOptions | string): RscEmbedTransform;
45
- /**
46
- * Fix invalid preload "as" values in server-rendered HTML.
47
- * React Fizz emits <link rel="preload" as="stylesheet"> for CSS, but the
48
- * HTML spec requires as="style" for <link rel="preload">.
49
- */
50
- export declare function fixPreloadAs(html: string): string;
67
+ export declare function createRscEmbedTransform(embedStream: ReadableStream<Uint8Array>, optionsOrNonce?: RscEmbedTransformOptions | string): ReplayableRscEmbedTransform;
68
+ export declare function rewriteInlineCssStylesheetLinks(html: string, inlineCssManifest: InlineCssManifest | undefined, prependCss: string, ssrScriptNonce: string | undefined): InlineCssRewriteResult;
51
69
  /**
52
70
  * Create the tick-buffered HTML transform that injects RSC scripts between
53
71
  * React Fizz flush cycles without corrupting split HTML chunks.
@@ -76,4 +94,5 @@ export declare function fixPreloadAs(html: string): string;
76
94
  * position) ship as-is.
77
95
  */
78
96
  export declare function createTickBufferedTransform(rscEmbed: RscEmbedTransform, injectHTML?: HtmlInsertion, injectAfterHeadOpenHTML?: HtmlInsertion, inlineCssManifest?: InlineCssManifest, inlineCssPrependCss?: string, inlineCssPrependFallbackHTML?: string, inlineCssScriptNonce?: string): TransformStream<Uint8Array, Uint8Array>;
79
- //#endregion
97
+ //#endregion
98
+ export {};