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,10 +1,10 @@
1
1
  import { AppRscRenderMode } from "./app-rsc-render-mode.js";
2
- import { ActionRevalidationKind } from "../shims/cache-request-state.js";
3
2
  import { AppRenderErrorContextOverrides } from "./app-rsc-error-handler.js";
4
3
  import { FetchCacheMode } from "../shims/fetch-cache-state.js";
5
4
  import "../shims/fetch-cache.js";
6
5
  import { HeadersAccessPhase } from "../shims/internal/headers-state.js";
7
6
  import "../shims/headers.js";
7
+ import { ActionRevalidationKind } from "../shims/cache-request-state.js";
8
8
  import { ReactFormState } from "react-dom/client";
9
9
  //#region src/server/app-server-action-execution.d.ts
10
10
  type AppPageParams = Record<string, string | string[]>;
@@ -156,6 +156,8 @@ export type HandleProgressiveServerActionRequestOptions = {
156
156
  * routes fall through. See issue #1340.
157
157
  */
158
158
  hasPageRoute: boolean;
159
+ /** The App Router route the form posted to, whose implicit tags the action runs with. */
160
+ currentRoute?: AppServerActionRoute | null;
159
161
  maxActionBodySize: number;
160
162
  middlewareHeaders: Headers | null;
161
163
  readFormDataWithLimit: ReadFormDataWithLimit;
@@ -282,4 +284,5 @@ export declare function applyActionRedirectBasePath(url: string, basePath: strin
282
284
  export declare function isProgressiveServerActionRequest(request: Pick<Request, "method">, contentType: string, actionId: string | null): boolean;
283
285
  export declare function handleProgressiveServerActionRequest(options: HandleProgressiveServerActionRequestOptions): Promise<Response | ProgressiveServerActionResult | null>;
284
286
  export declare function handleServerActionRscRequest<TElement, TRoute extends AppServerActionRoute, TInterceptOpts, TTemporaryReferences, TPage = unknown>(options: HandleServerActionRscRequestOptions<TElement, TRoute, TInterceptOpts, TTemporaryReferences, TPage>): Promise<Response | null>;
285
- //#endregion
287
+ //#endregion
288
+ export {};
@@ -1,11 +1,12 @@
1
1
  import { runOutsideRequestScopes } from "../shims/internal/als-registry.js";
2
+ import { deferUntilStreamConsumed } from "./defer-until-stream-consumed.js";
2
3
  import { VINEXT_MW_CTX_HEADER } from "../utils/protocol-headers.js";
3
4
  import { buildRequestHeadersFromMiddlewareResponse } from "../utils/middleware-request-headers.js";
4
5
  import { parseEdgeRequestCookieHeader } from "../utils/parse-cookie.js";
5
6
  import { isExternalUrl } from "../utils/external-url.js";
6
7
  import { addBasePathToPathname, hasBasePath, stripBasePath } from "../utils/base-path.js";
7
8
  import { NEXT_ROUTER_STATE_TREE_HEADER, VINEXT_RSC_VARY_HEADER } from "./app-rsc-vary.js";
8
- import { ACTION_FORWARDED_HEADER, ACTION_REDIRECT_HEADER, ACTION_REDIRECT_STATUS_HEADER, ACTION_REDIRECT_TYPE_HEADER, ACTION_REVALIDATED_HEADER, VINEXT_RENDERED_PATH_AND_SEARCH_HEADER } from "./headers.js";
9
+ import { ACTION_FORWARDED_HEADER, ACTION_REDIRECT_HEADER, ACTION_REDIRECT_STATUS_HEADER, ACTION_REDIRECT_TYPE_HEADER, ACTION_REVALIDATED_HEADER, VINEXT_MOUNTED_LAYOUTS_HEADER, VINEXT_RENDERED_PATH_AND_SEARCH_HEADER } from "./headers.js";
9
10
  import { internalServerErrorResponse, payloadTooLargeResponse } from "./http-error-responses.js";
10
11
  import { attachRequestCfMetadata, validateCsrfOrigin, validateServerActionPayload } from "./request-pipeline.js";
11
12
  import { splitPathSegments } from "../routing/utils.js";
@@ -16,17 +17,16 @@ import { isDraftModeRequest, setHeadersContext } from "../shims/headers.js";
16
17
  import { _drainPendingRevalidations, getAndClearActionRevalidationKind } from "../shims/cache-request-state.js";
17
18
  import { setCurrentFetchCacheMode, setCurrentFetchRevalidate, setCurrentFetchSoftTags, setCurrentForceDynamicFetchDefault } from "../shims/fetch-cache.js";
18
19
  import { readStreamAsTextWithLimit } from "../utils/text-stream.js";
19
- import { deferUntilStreamConsumed } from "./defer-until-stream-consumed.js";
20
- import { VINEXT_RSC_CONTENT_TYPE, applyRscCompatibilityIdHeader, createRscRequestUrl, stripRscCacheBustingSearchParam } from "./app-rsc-cache-busting.js";
21
20
  import { mergeMiddlewareResponseHeaders } from "./middleware-response-headers.js";
21
+ import { VINEXT_RSC_CONTENT_TYPE, applyRscCompatibilityIdHeader, createRscRequestUrl, stripRscCacheBustingSearchParam } from "./app-rsc-cache-busting.js";
22
+ import { getSetCookieName } from "./cookie-utils.js";
23
+ import { createServerActionNotFoundResponse, getServerActionNotFoundMessage, isServerActionNotFoundError } from "./server-action-not-found.js";
22
24
  import { applyEdgeRuntimeHeader } from "./app-page-response.js";
23
25
  import { getNextErrorDigest, parseNextHttpErrorDigest, parseNextRedirectDigest } from "./next-error-digest.js";
24
26
  import { hasDigest } from "./app-rsc-errors.js";
25
- import { buildAppPageTags } from "./implicit-tags.js";
26
- import "./app-page-stream.js";
27
- import { getSetCookieName } from "./cookie-utils.js";
28
- import { createServerActionNotFoundResponse, getServerActionNotFoundMessage, isServerActionNotFoundError } from "./server-action-not-found.js";
29
27
  import { resolveAppPageNavigationParams } from "./app-page-element-builder.js";
28
+ import "./app-page-stream.js";
29
+ import { buildAppPageTags } from "./implicit-tags.js";
30
30
  import { resolveAppPageActionRerenderTarget } from "./app-page-request.js";
31
31
  import { createRootParamsUsageController, runWithRootParamsUsage } from "../shims/root-params.js";
32
32
  import { createStaticGenerationHeadersContext } from "./app-static-generation.js";
@@ -211,6 +211,7 @@ async function createActionRedirectTargetRequest(options) {
211
211
  headers.set("cookie", cookieHeader ?? "");
212
212
  headers.set("RSC", "1");
213
213
  headers.delete(NEXT_ROUTER_STATE_TREE_HEADER);
214
+ headers.delete(VINEXT_MOUNTED_LAYOUTS_HEADER);
214
215
  stripRscCacheBustingSearchParam(options.url);
215
216
  const requestPath = await createRscRequestUrl(`${options.url.pathname}${options.url.search}`, headers);
216
217
  const requestUrl = new URL(requestPath, options.url.origin);
@@ -614,6 +615,7 @@ async function handleProgressiveServerActionRequest(options) {
614
615
  let actionThrew = false;
615
616
  let actionResult;
616
617
  const rootParamsUsage = createRootParamsUsageController();
618
+ if (options.currentRoute) setCurrentFetchSoftTags(buildServerActionPageTags(options.currentRoute, options.cleanPathname));
617
619
  const previousHeadersPhase = options.setHeadersAccessPhase("action");
618
620
  try {
619
621
  actionResult = await runWithRootParamsUsage({ kind: "server-action" }, action, rootParamsUsage);
@@ -823,6 +825,7 @@ async function handleServerActionRscRequest(options) {
823
825
  let actionThrew = false;
824
826
  const actionWasForwarded = Boolean(options.request.headers.get(ACTION_FORWARDED_HEADER));
825
827
  const rootParamsUsage = createRootParamsUsageController();
828
+ if (options.currentRouteMatch) setCurrentFetchSoftTags(buildServerActionPageTags(options.currentRouteMatch.route, options.cleanPathname));
826
829
  const previousHeadersPhase = options.setHeadersAccessPhase("action");
827
830
  try {
828
831
  try {
@@ -25,6 +25,8 @@ export declare function handleSsr(rscStream: ReadableStream<Uint8Array>, navCont
25
25
  value: Promise<ArrayBuffer> | null;
26
26
  };
27
27
  pprFallbackShellSignal?: AbortSignal;
28
+ /** Aborts a streaming render whose document is given up. */
29
+ signal?: AbortSignal;
28
30
  /**
29
31
  * Pattern of the route this render shows, whose client references load
30
32
  * before it starts, or null for a render without a route (a route-miss
@@ -70,6 +72,12 @@ export declare function handleSsr(rscStream: ReadableStream<Uint8Array>, navCont
70
72
  */
71
73
  isCacheCandidate?: boolean;
72
74
  fallbackToErrorDocumentOnShellError?: boolean;
75
+ /**
76
+ * The parallel slot not-found boundaries that catch the error that
77
+ * rejected the shell, or null when none catches it. The document then
78
+ * renders again from the same payload with them caught.
79
+ */
80
+ resolveCaughtNotFoundBoundaries?: (error: unknown) => readonly string[] | null;
73
81
  dynamicStaleTimeSeconds?: number;
74
82
  getInitialNavigationCacheMetadata?: () => InitialNavigationCacheMetadata;
75
83
  }): Promise<AppSsrRenderResult>;
@@ -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,23 +9,24 @@ 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
+ import { RSC_FORM_STATE_GLOBAL } from "../client/browser-globals.js";
14
+ import { createNavigationRuntimeRenderedSearchScript, createNavigationRuntimeRscCompatibilityScript, createNavigationRuntimeRscMetadataScript, createRscEmbedTransform, createTickBufferedTransform, rewriteInlineCssStylesheetLinks, waitAtLeastOneReactRenderTask } from "./app-ssr-stream.js";
13
15
  import { AppElementsWire } from "./app-elements-wire.js";
14
16
  import "./app-elements.js";
17
+ import { createInitialBfcacheMaps } from "./app-bfcache-identity.js";
15
18
  import { ServerInsertedHTMLContext, clearServerInsertedHTML, getBfcacheIdMapContext, registerServerInsertedHTMLCallback, renderServerInsertedHTML, setNavigationContext } from "../shims/navigation-context-state.js";
16
19
  import "../shims/navigation-server.js";
17
- import DefaultGlobalError from "../shims/default-global-error.js";
18
20
  import { BfcacheIdentityMapContext } from "../shims/slot.js";
19
- import { getNextErrorDigest } from "./next-error-digest.js";
20
- import { createSsrErrorMetaRenderer } from "./app-ssr-error-meta.js";
21
- import { createRenderStreamCancellation, isAppRenderAbortError } from "./app-render-abort-error.js";
22
- import { RSC_FORM_STATE_GLOBAL } from "../client/browser-globals.js";
23
- import { createNavigationRuntimeRenderedSearchScript, createNavigationRuntimeRscCompatibilityScript, createNavigationRuntimeRscMetadataScript, createRscEmbedTransform, createTickBufferedTransform, waitAtLeastOneReactRenderTask } from "./app-ssr-stream.js";
24
- import { createInitialBfcacheMaps } from "./app-bfcache-identity.js";
25
21
  import { createAppRouteTree } from "./app-route-tree.js";
22
+ import DefaultGlobalError from "../shims/default-global-error.js";
23
+ import { CAUGHT_NOT_FOUND_BOUNDARIES_GLOBAL, withCaughtNotFoundBoundaries } from "../shims/caught-not-found-boundaries.js";
24
+ import { ssrServerConsumerManifest } from "./app-client-reference-manifest.js";
26
25
  import { createClientReferencePreloader, resolveRouteClientReferences } from "./app-client-reference-preloader.js";
26
+ import { getNextErrorDigest } from "./next-error-digest.js";
27
+ import { createSsrErrorMetaRenderer } from "./app-ssr-error-meta.js";
27
28
  import { createClientPageSsrSearchParamsSource } from "./app-page-search-params-observation.js";
29
+ import { createRenderStreamCancellation, isAppRenderAbortError } from "./app-render-abort-error.js";
28
30
  import { runWithRootParamsScope } from "../shims/root-params.js";
29
31
  import { runWithNavigationContext } from "../shims/navigation-state.js";
30
32
  import { startCandidateSearchParamsGate } from "./app-ssr-search-params-gate.js";
@@ -32,10 +34,11 @@ import { withAppRouterTree } from "../shims/app-router-tree-context.js";
32
34
  import { BeforeInteractiveContext } from "../shims/before-interactive-context.js";
33
35
  import { renderBeforeInteractiveInlineScripts } from "./before-interactive-head.js";
34
36
  import { createInitialDevServerErrorScript } from "./dev-initial-server-error.js";
37
+ import { createStreamedClientReferences, renderStreamedStylesheets, resetStreamedClientReferences, runWithStreamedClientReferences, wrapClientReferenceRequire } from "./app-streamed-client-references.js";
35
38
  import { ssrAppRouterInstance } from "./app-ssr-router-instance.js";
36
39
  import { Fragment, createElement, use } from "react";
37
- import { renderToReadableStream, renderToStaticMarkup } from "react-dom/server.edge";
38
- import { preinitModule } from "react-dom";
40
+ import { renderToReadableStream, renderToStaticMarkup } from "react-dom/server";
41
+ import { preinitModule, preloadModule } from "react-dom";
39
42
  import { createFromReadableStream } from "@vitejs/plugin-rsc/ssr";
40
43
  import clientReferences, { routeClientReferences } from "virtual:vite-rsc/client-references";
41
44
  import pagesClientAssets from "virtual:vinext-pages-client-assets";
@@ -48,33 +51,18 @@ setPagesClientAssets(pagesClientAssets);
48
51
  * the response-layer combine cap.
49
52
  */
50
53
  const DEFAULT_REACT_MAX_HEADERS_LENGTH = 6e3;
51
- function isReactDevelopmentRuntime() {
52
- if (process.env.NODE_ENV === "production") return false;
53
- if (process.env.NODE_ENV === "development") return true;
54
- return Function.prototype.toString.call(createElement).includes("getOwner");
55
- }
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 };
56
59
  function isStaticPrerenderModule(value) {
57
60
  return typeof value === "object" && value !== null && "prerender" in value && typeof value.prerender === "function";
58
61
  }
59
62
  async function loadStaticPrerender() {
60
- const staticRenderer = await import("react-dom/static.edge");
63
+ const staticRenderer = await import("react-dom/static");
61
64
  if (isStaticPrerenderModule(staticRenderer)) return staticRenderer.prerender;
62
- if (isReactDevelopmentRuntime()) try {
63
- const [{ createRequire }, path] = await Promise.all([import("node:module"), import("node:path")]);
64
- const reactDomPackageJson = createRequire(import.meta.url).resolve("react-dom/package.json");
65
- const reactDomDir = path.dirname(reactDomPackageJson);
66
- const devRenderer = await import(
67
- /* @vite-ignore */
68
- path.join(reactDomDir, "cjs/react-dom-server.edge.development.js")
69
- );
70
- if (isStaticPrerenderModule(devRenderer)) return devRenderer.prerender;
71
- const devRendererDefault = typeof devRenderer === "object" && devRenderer !== null && "default" in devRenderer && devRenderer.default;
72
- if (isStaticPrerenderModule(devRendererDefault)) return devRendererDefault.prerender;
73
- throw new Error("react-dom development renderer did not expose prerender().");
74
- } catch (error) {
75
- throw new Error("[vinext] Failed to load React static development renderer.", { cause: error });
76
- }
77
- throw new Error("[vinext] react-dom/static.edge did not expose prerender().");
65
+ throw new Error("[vinext] react-dom/static did not expose prerender().");
78
66
  }
79
67
  function createUtf8Stream(html) {
80
68
  const encoder = new TextEncoder();
@@ -85,7 +73,7 @@ function createUtf8Stream(html) {
85
73
  }
86
74
  function buildBootstrapModuleScript(bootstrapModuleUrl, nonce) {
87
75
  if (!bootstrapModuleUrl) return "";
88
- 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>";
89
77
  }
90
78
  function renderSsrErrorDocumentShell(bootstrapModuleUrl, nonce) {
91
79
  const html = renderToStaticMarkup(createElement(DefaultGlobalError, { error: null })).replace("<style>", "<style data-vinext-error-shell-style=\"\">");
@@ -95,6 +83,10 @@ function renderSsrErrorDocumentShell(bootstrapModuleUrl, nonce) {
95
83
  if (!html.endsWith(documentClose)) return createUtf8Stream(`<!DOCTYPE html>${html}${bootstrapScript}`);
96
84
  return createUtf8Stream(`<!DOCTYPE html>${html.slice(0, -14)}${bootstrapScript}${documentClose}`);
97
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
+ }
98
90
  const clientReferencePreloader = createClientReferencePreloader({
99
91
  getReferences() {
100
92
  return clientReferences;
@@ -158,9 +150,9 @@ function extractBootstrapModuleUrl(bootstrapScriptContent) {
158
150
  }
159
151
  function buildModulePreloadHtml(bootstrapModuleUrl, nonce) {
160
152
  if (!bootstrapModuleUrl) return "";
161
- 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`;
162
154
  }
163
- function buildHeadInjectionHtml(navContext, bootstrapModuleUrl, formState, insertedHTML, fontHTML, dynamicStaleTimeSeconds, searchParamsFromBrowser, scriptNonce) {
155
+ function buildHeadInjectionHtml(navContext, bootstrapPreloadUrl, formState, insertedHTML, fontHTML, dynamicStaleTimeSeconds, searchParamsFromBrowser, scriptNonce) {
164
156
  const navPayload = {
165
157
  pathname: navContext.pathname,
166
158
  searchParams: [...navContext.searchParams.entries()]
@@ -169,7 +161,7 @@ function buildHeadInjectionHtml(navContext, bootstrapModuleUrl, formState, inser
169
161
  const compatibilityScript = createNavigationRuntimeRscCompatibilityScript();
170
162
  const rscCompatibilityScript = compatibilityScript === "" ? "" : createInlineScriptTag(compatibilityScript, scriptNonce);
171
163
  const formStateScript = formState === null ? "" : createInlineScriptTag("self[" + safeJsonStringify(RSC_FORM_STATE_GLOBAL) + "]=" + safeJsonStringify(formState), scriptNonce);
172
- return rscMetadataScript + rscCompatibilityScript + formStateScript + buildModulePreloadHtml(bootstrapModuleUrl, scriptNonce) + insertedHTML + fontHTML;
164
+ return rscMetadataScript + rscCompatibilityScript + formStateScript + buildModulePreloadHtml(bootstrapPreloadUrl, scriptNonce) + insertedHTML + fontHTML;
173
165
  }
174
166
  function requireNavigationContext(navContext) {
175
167
  if (!navContext) throw new Error("App SSR requires navigation context for BFCache state keys");
@@ -194,7 +186,9 @@ async function handleSsr(rscStream, navContext, fontData, options) {
194
186
  isPprFallbackShell: options?.pprFallbackShellSignal !== void 0
195
187
  })
196
188
  };
197
- await clientReferencePreloader.preload(options?.pprFallbackShellSignal ? void 0 : resolveRouteClientReferences(routeClientReferences, options?.preloadRoutePattern));
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);
198
192
  setNavigationContext(ssrNavigationContext);
199
193
  clearServerInsertedHTML();
200
194
  const cleanup = () => {
@@ -230,9 +224,16 @@ async function handleSsr(rscStream, navContext, fontData, options) {
230
224
  for (const moduleUrl of pagesClientAssets.appBootstrapPreinitModules ?? []) preinitModule(moduleUrl, {
231
225
  as: "script",
232
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",
233
234
  nonce: options?.scriptNonce
234
235
  });
235
- if (!flightRoot) flightRoot = createFromReadableStream(ssrStream);
236
+ if (!flightRoot) flightRoot = createFromReadableStream(ssrStream, SSR_FLIGHT_OPTIONS);
236
237
  const wireElements = use(flightRoot);
237
238
  const elements = AppElementsWire.decode(wireElements);
238
239
  const metadata = AppElementsWire.readMetadata(elements);
@@ -276,6 +277,7 @@ async function handleSsr(rscStream, navContext, fontData, options) {
276
277
  if (link) reactLinkHeader = link;
277
278
  } : void 0,
278
279
  maxHeadersLength: captureHeaders ? maxHeadersLength : void 0,
280
+ signal: options?.signal,
279
281
  onError(error) {
280
282
  if (pprFallbackShellSignal && isPprFallbackShellAbortError(error)) return;
281
283
  if (isAppRenderAbortError(error) || htmlCancellation.isReason(error)) return;
@@ -290,29 +292,74 @@ async function handleSsr(rscStream, navContext, fontData, options) {
290
292
  let htmlStream;
291
293
  let renderComplete = Promise.resolve();
292
294
  let shellErrorRecovered = false;
295
+ let caughtShellError;
296
+ let caughtBoundaries = null;
293
297
  let shouldDelayInitialHtmlPull = false;
298
+ const prepareCaughtNotFoundRoot = (error) => {
299
+ const caughtNotFoundBoundaries = options?.resolveCaughtNotFoundBoundaries?.(error) ?? null;
300
+ if (!caughtNotFoundBoundaries || caughtNotFoundBoundaries.length === 0) return null;
301
+ const replayedRscStream = rscEmbed.replay({ keepOpen: pprFallbackShellSignal !== void 0 });
302
+ if (!replayedRscStream) return null;
303
+ ssrStream = replayedRscStream;
304
+ flightRoot = null;
305
+ beforeInteractiveInlineScripts.length = 0;
306
+ clearServerInsertedHTML();
307
+ resetStreamedClientReferences(streamedReferences, routeReferences);
308
+ const boundaries = {
309
+ ids: new Set(caughtNotFoundBoundaries),
310
+ rendered: /* @__PURE__ */ new Set()
311
+ };
312
+ caughtBoundaries = boundaries;
313
+ return withCaughtNotFoundBoundaries(boundaries, ssrRoot);
314
+ };
294
315
  if (pprFallbackShellSignal) {
295
316
  const prerender = await loadStaticPrerender();
296
- const htmlAbortController = new AbortController();
297
- const pendingHtml = prerender(ssrRoot, {
298
- ...renderOptions,
299
- signal: htmlAbortController.signal
300
- });
301
- setTimeout(() => htmlAbortController.abort(), 0);
302
- htmlStream = (await pendingHtml).prelude;
317
+ const prerenderFallbackShell = async (root) => {
318
+ const htmlAbortController = new AbortController();
319
+ const pendingHtml = runWithStreamedClientReferences(streamedReferences, () => prerender(root, {
320
+ ...renderOptions,
321
+ signal: htmlAbortController.signal
322
+ }));
323
+ setTimeout(() => htmlAbortController.abort(), 0);
324
+ return (await pendingHtml).prelude;
325
+ };
326
+ try {
327
+ htmlStream = await prerenderFallbackShell(ssrRoot);
328
+ } catch (error) {
329
+ const caughtRoot = prepareCaughtNotFoundRoot(error);
330
+ if (!caughtRoot) throw error;
331
+ htmlStream = await prerenderFallbackShell(caughtRoot);
332
+ caughtShellError = error;
333
+ }
303
334
  } else {
304
335
  let streamingHtmlStream;
305
336
  try {
306
- streamingHtmlStream = await renderToReadableStream(ssrRoot, { ...renderOptions });
337
+ streamingHtmlStream = await runWithStreamedClientReferences(streamedReferences, () => renderToReadableStream(ssrRoot, { ...renderOptions }));
307
338
  renderComplete = streamingHtmlStream.allReady;
308
339
  if (options?.waitForAllReady === true) await streamingHtmlStream.allReady;
309
340
  else shouldDelayInitialHtmlPull = true;
310
341
  htmlStream = streamingHtmlStream;
311
342
  } catch (error) {
312
343
  streamingHtmlStream?.cancel().catch(() => {});
313
- if (options?.fallbackToErrorDocumentOnShellError !== true || options?.waitForAllReady === true || typeof error?.digest === "string") throw error;
314
- shellErrorRecovered = true;
315
- htmlStream = renderSsrErrorDocumentShell(bootstrapModuleUrl, options?.scriptNonce);
344
+ const caughtRoot = prepareCaughtNotFoundRoot(error);
345
+ if (caughtRoot) {
346
+ let caughtHtmlStream;
347
+ try {
348
+ caughtHtmlStream = await runWithStreamedClientReferences(streamedReferences, () => renderToReadableStream(caughtRoot, renderOptions));
349
+ if (options?.waitForAllReady === true) await caughtHtmlStream.allReady;
350
+ } catch (caughtRenderError) {
351
+ caughtHtmlStream?.cancel().catch(() => {});
352
+ throw caughtRenderError;
353
+ }
354
+ renderComplete = caughtHtmlStream.allReady;
355
+ shouldDelayInitialHtmlPull = options?.waitForAllReady !== true;
356
+ caughtShellError = error;
357
+ htmlStream = caughtHtmlStream;
358
+ } else if (options?.fallbackToErrorDocumentOnShellError !== true || options?.waitForAllReady === true || typeof error?.digest === "string") throw error;
359
+ else {
360
+ shellErrorRecovered = true;
361
+ htmlStream = renderSsrErrorDocumentShell(bootstrapModuleUrl, options?.scriptNonce);
362
+ }
316
363
  }
317
364
  }
318
365
  const inlineCssManifest = globalThis.__VINEXT_INLINE_CSS__;
@@ -347,7 +394,7 @@ async function handleSsr(rscStream, navContext, fontData, options) {
347
394
  return buildHeadInjectionHtml(hidesQuery ? {
348
395
  ...ssrNavigationContext,
349
396
  searchParams: new URLSearchParams()
350
- } : ssrNavigationContext, bootstrapModuleUrl, options?.formState ?? null, insertedHTML + errorMetaHTML + getTraceMetaHTML() + initialDevServerErrorHTML, fontHTML, options?.dynamicStaleTimeSeconds, isSearchParamsFromBrowser, options?.scriptNonce);
397
+ } : 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);
351
398
  };
352
399
  const getBeforeInteractiveHeadHTML = () => renderBeforeInteractiveInlineScripts(beforeInteractiveInlineScripts);
353
400
  if (shouldDelayInitialHtmlPull) await waitAtLeastOneReactRenderTask();
@@ -357,6 +404,7 @@ async function handleSsr(rscStream, navContext, fontData, options) {
357
404
  renderComplete,
358
405
  capturedRscData: options?.capturedRscDataRef?.value ?? null,
359
406
  shellErrorRecovered,
407
+ ...caughtShellError === void 0 ? {} : { caughtShellError },
360
408
  linkHeader: reactLinkHeader
361
409
  };
362
410
  } 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,6 +38,10 @@ 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: {
@@ -48,13 +64,8 @@ export declare function createNavigationRuntimeRenderedSearchScript(search: stri
48
64
  * Create a helper that progressively embeds RSC chunks as inline <script> tags.
49
65
  * The browser entry turns the embedded chunks back into Uint8Array data.
50
66
  */
51
- export declare function createRscEmbedTransform(embedStream: ReadableStream<Uint8Array>, optionsOrNonce?: RscEmbedTransformOptions | string): RscEmbedTransform;
52
- /**
53
- * Fix invalid preload "as" values in server-rendered HTML.
54
- * React Fizz emits <link rel="preload" as="stylesheet"> for CSS, but the
55
- * HTML spec requires as="style" for <link rel="preload">.
56
- */
57
- 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;
58
69
  /**
59
70
  * Create the tick-buffered HTML transform that injects RSC scripts between
60
71
  * React Fizz flush cycles without corrupting split HTML chunks.
@@ -83,4 +94,5 @@ export declare function fixPreloadAs(html: string): string;
83
94
  * position) ship as-is.
84
95
  */
85
96
  export declare function createTickBufferedTransform(rscEmbed: RscEmbedTransform, injectHTML?: HtmlInsertion, injectAfterHeadOpenHTML?: HtmlInsertion, inlineCssManifest?: InlineCssManifest, inlineCssPrependCss?: string, inlineCssPrependFallbackHTML?: string, inlineCssScriptNonce?: string): TransformStream<Uint8Array, Uint8Array>;
86
- //#endregion
97
+ //#endregion
98
+ export {};