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
@@ -15,14 +15,78 @@ function isReactOwnedAppComponent(component) {
15
15
  if (candidate?.$$typeof === REACT_MEMO || candidate?.$$typeof === REACT_LAZY || candidate?.$$typeof === REACT_FORWARD_REF) return false;
16
16
  return typeof candidate !== "function" || candidate.$$typeof === REACT_CLIENT_REFERENCE || candidate.prototype?.isReactComponent != null;
17
17
  }
18
- function invokeAppComponent(component, props) {
18
+ /**
19
+ * `mapError` replaces an error thrown by a CSS-wrapped export's inner
20
+ * component, which renders after this call returns. The caller maps the
21
+ * errors this call throws or rejects with.
22
+ */
23
+ function invokeAppComponent(component, props, mapError) {
24
+ return invokeAppComponentObserved(component, props, mapError, void 0);
25
+ }
26
+ /**
27
+ * Like `invokeAppComponent()`. `onSettled` hears of a value returned
28
+ * synchronously; the caller reports a promise result or a thrown error.
29
+ */
30
+ function invokeAppComponentObserved(component, props, mapError, onSettled) {
19
31
  const candidate = component;
20
- if (candidate.$$typeof === REACT_MEMO && candidate.type) return invokeAppComponent(candidate.type, props);
21
- if (candidate.$$typeof === REACT_LAZY && candidate._init) return invokeAppComponent(candidate._init(candidate._payload), props);
22
- if (candidate.$$typeof === REACT_FORWARD_REF && candidate.render) return candidate.render(props, void 0);
23
- if (isReactOwnedAppComponent(candidate)) return createElement(candidate, props);
32
+ if (candidate.$$typeof === REACT_MEMO && candidate.type) return invokeAppComponentObserved(candidate.type, props, mapError, onSettled);
33
+ if (candidate.$$typeof === REACT_LAZY && candidate._init) return invokeAppComponentObserved(candidate._init(candidate._payload), props, mapError, onSettled);
34
+ if (candidate.$$typeof === REACT_FORWARD_REF && candidate.render) {
35
+ const result = candidate.render(props, void 0);
36
+ if (!isPromiseLike(result)) onSettled?.();
37
+ return result;
38
+ }
39
+ if (isReactOwnedAppComponent(candidate)) {
40
+ onSettled?.();
41
+ return createElement(candidate, props);
42
+ }
24
43
  const result = candidate(props);
25
- return isPromiseLike(result) ? result : invokeCssWrappedComponent(result, props);
44
+ return isPromiseLike(result) ? result : invokeCssWrappedComponent(result, props, mapError, onSettled);
45
+ }
46
+ /**
47
+ * `invokeAppComponent()`, with every error the component throws or rejects
48
+ * with replaced by `mapError(error)`, including its CSS-wrapped inner one's.
49
+ * `onSettled` hears once how the component, or that inner one, ended.
50
+ */
51
+ function invokeAppComponentMappingErrors(component, props, mapError, onSettled) {
52
+ const fail = (error) => {
53
+ if (isAppRenderSuspension(error)) return error;
54
+ const mapped = mapError(error);
55
+ onSettled?.({ error: mapped });
56
+ return mapped;
57
+ };
58
+ try {
59
+ const result = invokeAppComponentObserved(component, props, mapError, onSettled);
60
+ return isPromiseLike(result) ? trackAppComponentResult(result, fail, onSettled) : result;
61
+ } catch (error) {
62
+ throw fail(error);
63
+ }
64
+ }
65
+ /**
66
+ * Records how `result` settles on the promise itself, as React's thenables
67
+ * do, with `fail(error)` as a rejection's reason. Flight then reads that
68
+ * outcome rather than tracking the promise, so the result reaches it in the
69
+ * same tick as an unmapped one. A promise chained with `.then()` resolves a
70
+ * tick later, which costs a large page about a tenth more render work.
71
+ */
72
+ function trackAppComponentResult(result, fail, onSettled) {
73
+ const thenable = result;
74
+ if (thenable.status !== void 0) return Promise.resolve(result).then((value) => {
75
+ onSettled?.();
76
+ return value;
77
+ }, (error) => {
78
+ throw fail(error);
79
+ });
80
+ thenable.status = "pending";
81
+ thenable.then((value) => {
82
+ thenable.status = "fulfilled";
83
+ thenable.value = value;
84
+ onSettled?.();
85
+ }, (error) => {
86
+ thenable.status = "rejected";
87
+ thenable.reason = fail(error);
88
+ });
89
+ return thenable;
26
90
  }
27
91
  /**
28
92
  * Whether `elementProps` are what `createElement(type, props)` produces: the
@@ -48,28 +112,33 @@ function isElementOfProps(elementProps, props, defaultProps) {
48
112
  * component from an element without props instead, as for an export without
49
113
  * CSS.
50
114
  */
51
- function invokeCssWrappedComponent(result, props) {
52
- if (!isValidElement(result) || result.type !== Fragment || result.key !== null) return result;
53
- const children = result.props.children;
54
- if (!Array.isArray(children) || children.length !== 2) return result;
55
- const [css, inner] = children;
56
- if (!isValidElement(inner) || typeof inner.type !== "function" || inner.key !== null) return result;
57
- const component = inner.type;
58
- if (!isElementOfProps(inner.props, props, component.defaultProps)) return result;
59
- const componentProps = inner.props;
115
+ function invokeCssWrappedComponent(result, props, mapError, onSettled) {
116
+ const wrapped = readCssWrappedComponent(result, props);
117
+ if (!wrapped) {
118
+ onSettled?.();
119
+ return result;
120
+ }
121
+ const { component, componentProps, css } = wrapped;
60
122
  function CssWrappedComponent() {
61
- return invokeAppComponent(component, componentProps);
123
+ return mapError ? invokeAppComponentMappingErrors(component, componentProps, mapError, onSettled) : invokeAppComponent(component, componentProps);
62
124
  }
63
125
  CssWrappedComponent.displayName = component.displayName ?? component.name;
64
126
  return createElement(Fragment, null, css, createElement(CssWrappedComponent));
65
127
  }
66
- const appElementRenderDependencies = /* @__PURE__ */ new WeakMap();
67
- function registerAppElementRenderDependencies(elements, dependenciesByElementId) {
68
- if (dependenciesByElementId.size === 0) return;
69
- appElementRenderDependencies.set(elements, dependenciesByElementId);
70
- }
71
- function releaseAppElementRenderDependency(elements, elementId) {
72
- appElementRenderDependencies.get(elements)?.get(elementId)?.release();
128
+ /** The parts of `result`, if it's a CSS-wrapped export's element for `props`. */
129
+ function readCssWrappedComponent(result, props) {
130
+ if (!isValidElement(result) || result.type !== Fragment || result.key !== null) return null;
131
+ const children = result.props.children;
132
+ if (!Array.isArray(children) || children.length !== 2) return null;
133
+ const [css, inner] = children;
134
+ if (!isValidElement(inner) || typeof inner.type !== "function" || inner.key !== null) return null;
135
+ const component = inner.type;
136
+ if (!isElementOfProps(inner.props, props, component.defaultProps)) return null;
137
+ return {
138
+ component,
139
+ componentProps: inner.props,
140
+ css
141
+ };
73
142
  }
74
143
  function createAppRenderDependency() {
75
144
  let released = false;
@@ -111,17 +180,15 @@ function renderAfterAppDependencies(children, dependencies) {
111
180
  }
112
181
  return /* @__PURE__ */ jsx(AwaitAppRenderDependencies, {});
113
182
  }
114
- function renderAppComponentWithDependencyBarrier(component, props, dependency) {
183
+ function renderAppComponentWithDependencyBarrier(component, props, dependency, mapError, onSettled) {
115
184
  function AppComponentDependencyBarrier() {
116
185
  try {
117
- const result = invokeAppComponent(component, props);
118
- if (isPromiseLike(result)) return Promise.resolve(result).then((resolvedResult) => {
119
- dependency.release();
120
- return resolvedResult;
121
- }, (error) => {
122
- dependency.release();
123
- throw error;
124
- });
186
+ const result = mapError ? invokeAppComponentMappingErrors(component, props, mapError, onSettled) : invokeAppComponent(component, props);
187
+ if (isPromiseLike(result)) {
188
+ const release = () => dependency.release();
189
+ result.then(release, release);
190
+ return result;
191
+ }
125
192
  dependency.release();
126
193
  return result;
127
194
  } catch (error) {
@@ -132,4 +199,4 @@ function renderAppComponentWithDependencyBarrier(component, props, dependency) {
132
199
  return createElement(AppComponentDependencyBarrier);
133
200
  }
134
201
  //#endregion
135
- export { createAppPageRenderDependency, createAppRenderDependency, invokeAppComponent, isAppClientReference, isAppRenderSuspension, isReactOwnedAppComponent, registerAppElementRenderDependencies, releaseAppElementRenderDependency, renderAfterAppDependencies, renderAppComponentWithDependencyBarrier };
202
+ export { createAppPageRenderDependency, createAppRenderDependency, invokeAppComponent, invokeAppComponentMappingErrors, isAppClientReference, isAppRenderSuspension, isReactOwnedAppComponent, renderAfterAppDependencies, renderAppComponentWithDependencyBarrier };
@@ -44,7 +44,7 @@ async function dispatchAppRequestStage(request, ctx, dispatchResponseStage, opti
44
44
  headRequest,
45
45
  middlewareCookieOverlay: null,
46
46
  prerenderDiscovery: options.prerenderDiscovery,
47
- protocolVersion: 11,
47
+ protocolVersion: 13,
48
48
  requestOrigin: new URL(request.url).origin,
49
49
  scriptNonce: null,
50
50
  staticFileSignalToken,
@@ -5,4 +5,5 @@ import { DispatchAppWorkerResponseStage } from "./app-worker-stages.js";
5
5
  export type AppRequestStageEnv = Record<string, unknown>;
6
6
  type AppRequestStageContext = ExecutionContextLike & VinextRequestStageContext;
7
7
  export declare function handleRequestStage(request: Request, env: AppRequestStageEnv | undefined, ctx: AppRequestStageContext | undefined, dispatchResponseStage: DispatchAppWorkerResponseStage): Promise<Response>;
8
- //#endregion
8
+ //#endregion
9
+ export {};
@@ -6,4 +6,5 @@ type AppResponseStageEnv = Record<string, unknown>;
6
6
  /** Invoke one transformed public cache function without rendering its owning route. */
7
7
  export declare function invokeCacheFunction(invocation: VinextCacheFunctionInvocation, env: AppResponseStageEnv | undefined, platformCtx: ExecutionContextLike | undefined, dispatchRequestStage: VinextRequestStageTransport): Promise<void>;
8
8
  export declare function handleResponseStage(request: Request, env: AppResponseStageEnv | undefined, platformCtx: ExecutionContextLike | undefined, props: AppWorkerResponseStageProps, dispatchRequestStage: VinextRequestStageTransport, options?: VinextResponseStageDispatchOptions): Promise<Response>;
9
- //#endregion
9
+ //#endregion
10
+ export {};
@@ -45,4 +45,5 @@ type ReadAppRouteHandlerCacheOptions = {
45
45
  } | null) => void;
46
46
  };
47
47
  export declare function readAppRouteHandlerCacheResponse(options: ReadAppRouteHandlerCacheOptions): Promise<Response | null>;
48
- //#endregion
48
+ //#endregion
49
+ export {};
@@ -1,6 +1,6 @@
1
1
  import { isrCacheControl, resolveRouteExpireSeconds } from "./isr-cache.js";
2
- import { makeThenableParams } from "../shims/thenable-params.js";
3
2
  import { applyRouteHandlerMiddlewareContext, assertSupportedAppRouteHandlerResponse, buildAppRouteCacheValue, buildRouteHandlerCachedResponse } from "./app-route-handler-response.js";
3
+ import { makeThenableParams } from "../shims/thenable-params.js";
4
4
  import { markKnownDynamicAppRoute } from "./app-route-handler-runtime.js";
5
5
  import { resolveAppRouteHandlerSpecialError } from "./app-route-handler-policy.js";
6
6
  import { completeAppRouteHandlerResponse, runAppRouteHandler, traceAppRouteHandlerExecution } from "./app-route-handler-execution.js";
@@ -57,7 +57,7 @@ async function readAppRouteHandlerCacheResponse(options) {
57
57
  setHeadersAccessPhase: options.setHeadersAccessPhase
58
58
  }) };
59
59
  } catch (error) {
60
- if (resolveAppRouteHandlerSpecialError(error, options.requestUrl)) return { specialError: error };
60
+ if (resolveAppRouteHandlerSpecialError(error)) return { specialError: error };
61
61
  throw error;
62
62
  }
63
63
  });
@@ -46,4 +46,5 @@ type DispatchAppRouteHandlerOptions = {
46
46
  searchParams: URLSearchParams;
47
47
  };
48
48
  export declare function dispatchAppRouteHandler(options: DispatchAppRouteHandlerOptions): Promise<Response>;
49
- //#endregion
49
+ //#endregion
50
+ export {};
@@ -1,22 +1,23 @@
1
1
  import { closeAfterResponse, createRequestContext, getRequestContext, runWithRequestContext } from "../shims/unified-request-context.js";
2
- import "../utils/protocol-headers.js";
2
+ import { PRERENDER_REVALIDATE_HEADER } from "../utils/protocol-headers.js";
3
3
  import { getRequestExecutionContext } from "../shims/request-context.js";
4
4
  import { runInWorkStoreScope } from "../shims/internal/work-store-scope.js";
5
5
  import { reportRequestError } from "./instrumentation.js";
6
6
  import { beginRouteCacheability, getRouteCacheabilityDynamicReason } from "../shims/cacheability-classification.js";
7
7
  import { applyCdnResponseBuildIdentityHeaders } from "./cache-control.js";
8
8
  import { isOnDemandRevalidateRequest } from "./revalidation-request.js";
9
+ import { coalesceOnDemandResponse } from "./isr-cache.js";
9
10
  import { markDynamicUsage } from "../shims/internal/headers-state.js";
10
11
  import { consumeDynamicUsage, getActiveDraftModeState, getAndClearPendingCookies, getDraftModeCookieHeader, isDraftModeRequest, setHeadersAccessPhase } from "../shims/headers.js";
11
12
  import { _drainPendingRevalidations } from "../shims/cache-request-state.js";
12
13
  import { ensureFetchPatch, getCollectedFetchTags, setCurrentFetchCacheMode, setCurrentFetchRevalidate, setCurrentFetchSoftTags, setCurrentForceDynamicFetchDefault } from "../shims/fetch-cache.js";
13
14
  import { resolveAppRouteHandlerFetchCacheMode } from "./app-segment-config.js";
14
- import { setNavigationContext } from "../shims/navigation-context-state.js";
15
- import { makeThenableParams } from "../shims/thenable-params.js";
16
15
  import { traceResponseStart } from "./response-start-tracing.js";
17
- import { buildPageCacheTags } from "./implicit-tags.js";
18
16
  import { applyRouteHandlerMiddlewareContext, finalizeRouteHandlerResponse } from "./app-route-handler-response.js";
17
+ import { setNavigationContext } from "../shims/navigation-context-state.js";
19
18
  import "../shims/navigation.js";
19
+ import { makeThenableParams } from "../shims/thenable-params.js";
20
+ import { buildPageCacheTags } from "./implicit-tags.js";
20
21
  import { isKnownDynamicAppRoute, isValidHTTPMethod } from "./app-route-handler-runtime.js";
21
22
  import { getAppRouteHandlerRevalidateSeconds, hasAppRouteHandlerDefaultExport, hasNonStaticAppRouteHandlerMethods, resolveAppRouteHandlerMethod, shouldReadAppRouteHandlerCache } from "./app-route-handler-policy.js";
22
23
  import { createStaticGenerationHeadersContext } from "./app-static-generation.js";
@@ -94,7 +95,8 @@ async function dispatchAppRouteHandlerImpl(options) {
94
95
  headers: { Allow: allowHeaderForOptions }
95
96
  }));
96
97
  const resolvedHandlerFn = isAppRouteHandlerFunction(handlerFn) ? handlerFn : void 0;
97
- const shouldReadRouteCache = options.bypassSharedCache !== true && revalidateSeconds !== null && !getRouteCacheabilityDynamicReason() && shouldReadAppRouteHandlerCache({
98
+ const isOnDemandRevalidate = isOnDemandRevalidateRequest(options.request.headers.get(PRERENDER_REVALIDATE_HEADER));
99
+ const isStoredRoute = options.bypassSharedCache !== true && revalidateSeconds !== null && !getRouteCacheabilityDynamicReason() && shouldReadAppRouteHandlerCache({
98
100
  dynamicConfig: handler.dynamic,
99
101
  handlerFn: resolvedHandlerFn,
100
102
  isAutoHead,
@@ -104,12 +106,13 @@ async function dispatchAppRouteHandlerImpl(options) {
104
106
  method,
105
107
  revalidateSeconds
106
108
  });
107
- const revalidateReason = isOnDemandRevalidateRequest(options.request.headers.get("x-prerender-revalidate")) ? "on-demand" : shouldReadRouteCache && revalidateSeconds !== Infinity ? "stale" : void 0;
109
+ const shouldReadRouteCache = isStoredRoute && !isOnDemandRevalidate;
110
+ const revalidateReason = isOnDemandRevalidate ? "on-demand" : shouldReadRouteCache && revalidateSeconds !== Infinity ? "stale" : void 0;
108
111
  const fetchCacheMode = resolveAppRouteHandlerFetchCacheMode(handler);
109
112
  setCurrentFetchCacheMode(fetchCacheMode);
110
113
  setCurrentFetchRevalidate(configuredRevalidateSeconds);
111
114
  setCurrentForceDynamicFetchDefault(handler.dynamic === "force-dynamic");
112
- let isRevalidation = false;
115
+ let isRevalidation = isStoredRoute && isOnDemandRevalidate;
113
116
  if (shouldReadRouteCache && resolvedHandlerFn) {
114
117
  const cachedRouteResponse = await readAppRouteHandlerCacheResponse({
115
118
  basePath: options.basePath,
@@ -167,7 +170,7 @@ async function dispatchAppRouteHandlerImpl(options) {
167
170
  if (cachedRouteResponse) return applyCdnResponseBuildIdentityHeaders(cachedRouteResponse);
168
171
  }
169
172
  if (resolvedHandlerFn) {
170
- const response = await executeAppRouteHandler({
173
+ const handlerOptions = {
171
174
  isRevalidation,
172
175
  basePath: options.basePath,
173
176
  bypassSharedCache: options.bypassSharedCache,
@@ -210,8 +213,10 @@ async function dispatchAppRouteHandlerImpl(options) {
210
213
  revalidateReason,
211
214
  routePattern: route.pattern,
212
215
  setHeadersAccessPhase
213
- });
214
- return applyCdnResponseBuildIdentityHeaders(response);
216
+ };
217
+ const runHandler = async () => applyCdnResponseBuildIdentityHeaders(await executeAppRouteHandler(handlerOptions));
218
+ if (isOnDemandRevalidate && isStoredRoute) return coalesceOnDemandResponse(`${method}:${options.isrRouteKey(options.cleanPathname)}`, method, runHandler);
219
+ return runHandler();
215
220
  }
216
221
  return finalizeFrameworkResponse(new Response(null, { status: 405 }));
217
222
  }
@@ -104,4 +104,5 @@ type ExecuteAppRouteHandlerOptions = {
104
104
  export declare function runAppRouteHandler(options: RunAppRouteHandlerOptions): Promise<RunAppRouteHandlerResult>;
105
105
  export declare function executeAppRouteHandler(options: ExecuteAppRouteHandlerOptions): Promise<Response>;
106
106
  export declare function traceAppRouteHandlerExecution<T>(routePattern: string, callback: (span: FrameworkSpan) => T): T;
107
- //#endregion
107
+ //#endregion
108
+ export {};
@@ -167,7 +167,7 @@ async function executeAppRouteHandlerImpl(options) {
167
167
  })
168
168
  };
169
169
  } catch (error) {
170
- if (resolveAppRouteHandlerSpecialError(error, options.request.url, { isAction: isPossibleAppRouteActionRequest(options.request) })) return {
170
+ if (resolveAppRouteHandlerSpecialError(error, { isAction: isPossibleAppRouteActionRequest(options.request) })) return {
171
171
  kind: "special",
172
172
  error
173
173
  };
@@ -284,7 +284,8 @@ async function executeAppRouteHandlerImpl(options) {
284
284
  console.error("[vinext] ISR route cache write error:", cacheErr);
285
285
  }
286
286
  })();
287
- options.executionContext?.waitUntil(routeWritePromise);
287
+ if (options.revalidateReason === "on-demand") await routeWritePromise;
288
+ else options.executionContext?.waitUntil(routeWritePromise);
288
289
  }
289
290
  let finalized = applyDraftModeCachePolicy(applyRouteHandlerMiddlewareContext(finalizeRouteHandlerResponse(response, {
290
291
  pendingCookies,
@@ -321,7 +322,11 @@ async function executeAppRouteHandlerImpl(options) {
321
322
  const draftCookie = handlerDraftCookie ?? options.initialDraftModeCookie;
322
323
  const shouldApplyDraftPolicy = (options.getActiveDraftModeState?.() ?? options.isDraftMode === true) || draftCookie != null;
323
324
  if (handlerDraftCookie != null) markKnownDynamicAppRoute(options.routePattern);
324
- const specialError = resolveAppRouteHandlerSpecialError(error, options.request.url, { isAction: isPossibleAppRouteActionRequest(options.request) });
325
+ const specialError = resolveAppRouteHandlerSpecialError(error, { isAction: isPossibleAppRouteActionRequest(options.request) });
326
+ if (specialError && options.consumeDynamicUsage()) recordRouteCacheability({
327
+ cacheable: false,
328
+ dynamicUsage: true
329
+ });
325
330
  options.clearRequestContext();
326
331
  if (specialError) {
327
332
  if (specialError.kind === "redirect") return applyDraftModeCachePolicy(applyRouteHandlerMiddlewareContext(finalizeRouteHandlerResponse(new Response(null, {
@@ -64,6 +64,6 @@ export declare function shouldApplyAppRouteHandlerRevalidateHeader(options: Omit
64
64
  */
65
65
  export declare function shouldCompleteAppRouteHandlerResponse(options: AppRouteHandlerResponseCacheOptions): boolean;
66
66
  export declare function shouldWriteAppRouteHandlerCache(options: AppRouteHandlerResponseCacheOptions): boolean;
67
- export declare function resolveAppRouteHandlerSpecialError(error: unknown, requestUrl: string, options?: AppRouteHandlerSpecialErrorOptions): AppRouteHandlerSpecialError | null;
67
+ export declare function resolveAppRouteHandlerSpecialError(error: unknown, options?: AppRouteHandlerSpecialErrorOptions): AppRouteHandlerSpecialError | null;
68
68
  //#endregion
69
69
  export { isPossibleAppRouteActionRequest };
@@ -1,5 +1,5 @@
1
- import { parseNextHttpErrorDigest, parseNextRedirectDigest } from "./next-error-digest.js";
2
1
  import { isPossibleAppRouteActionRequest } from "./app-action-request.js";
2
+ import { parseNextHttpErrorDigest, parseNextRedirectDigest } from "./next-error-digest.js";
3
3
  import { buildRouteHandlerAllowHeader, collectRouteHandlerMethods } from "./app-route-handler-runtime.js";
4
4
  //#region src/server/app-route-handler-policy.ts
5
5
  function getAppRouteHandlerRevalidateSeconds(handler) {
@@ -53,13 +53,13 @@ function shouldCompleteAppRouteHandlerResponse(options) {
53
53
  function shouldWriteAppRouteHandlerCache(options) {
54
54
  return options.isProduction && options.revalidateSeconds !== null && options.revalidateSeconds > 0 && options.dynamicConfig !== "force-dynamic" && !options.isDraftMode && !options.dynamicUsedInHandler && (options.method === "GET" || options.isAutoHead);
55
55
  }
56
- function resolveAppRouteHandlerSpecialError(error, requestUrl, options) {
56
+ function resolveAppRouteHandlerSpecialError(error, options) {
57
57
  if (!(error && typeof error === "object" && "digest" in error)) return null;
58
58
  const digest = String(error.digest);
59
59
  const redirect = parseNextRedirectDigest(digest);
60
60
  if (redirect) return {
61
61
  kind: "redirect",
62
- location: new URL(redirect.url, requestUrl).toString(),
62
+ location: redirect.url,
63
63
  statusCode: options?.isAction ? 303 : redirect.status
64
64
  };
65
65
  const httpError = parseNextHttpErrorDigest(digest);
@@ -26,4 +26,5 @@ export declare function applyRouteHandlerRevalidateHeader(response: Response, re
26
26
  export declare function markRouteHandlerCacheMiss(response: Response): void;
27
27
  export declare function buildAppRouteCacheValue(response: Response, browserCacheControl?: string): Promise<CachedRouteValue>;
28
28
  export declare function finalizeRouteHandlerResponse(response: Response, options: FinalizeRouteHandlerResponseOptions): Response;
29
- //#endregion
29
+ //#endregion
30
+ export {};
@@ -5,8 +5,8 @@ import { markRouteCacheabilityExplicitResponsePolicy, recordRouteCacheability }
5
5
  import { applyCdnResponseHeaders } from "./cache-control.js";
6
6
  import { buildAppRouteMissIsrCacheControl, decideIsr } from "./isr-decision.js";
7
7
  import { setCacheStateHeaders } from "./cache-headers.js";
8
- import { mergeMiddlewareResponseHeadersOntoResponse } from "./middleware-response-headers.js";
9
8
  import { markEdgeRouteHandlerLinkHeaders } from "./app-response-header-provenance.js";
9
+ import { mergeMiddlewareResponseHeadersOntoResponse } from "./middleware-response-headers.js";
10
10
  import { getSetCookieName } from "./cookie-utils.js";
11
11
  //#region src/server/app-route-handler-response.ts
12
12
  const APP_ROUTE_REWRITE_ERROR = "NextResponse.rewrite() was used in a app route handler, this is not currently supported. Please remove the invocation to continue.";
@@ -39,4 +39,5 @@ type TrackedAppRouteRequest = {
39
39
  didAccessDynamicRequest(): boolean;
40
40
  };
41
41
  export declare function createTrackedAppRouteRequest(request: Request, options?: TrackedAppRouteRequestOptions): TrackedAppRouteRequest;
42
- //#endregion
42
+ //#endregion
43
+ export {};
@@ -76,8 +76,14 @@ function buildNextConfig(options) {
76
76
  * Undici's Request follows its input's signal through a WeakRef, and so does
77
77
  * every clone between the host signal and the handler's request. A handler
78
78
  * that only listens on `request.signal` (e.g. to stop a stream) would miss the
79
- * abort once GC collects any of them, so the request follows the host signal
80
- * directly and stays reachable for as long as that signal is.
79
+ * abort once GC collects any of them, so the request stays reachable for as
80
+ * long as the host signal is.
81
+ *
82
+ * The request must not follow the host signal itself, though. Undici registers
83
+ * every Request in a FinalizationRegistry whose held value strongly references
84
+ * the followed signal, so the registry would keep the host signal (the WeakMap
85
+ * key) and therefore the request alive forever. It follows a relay instead,
86
+ * which the host signal aborts through a strong listener.
81
87
  */
82
88
  const requestsByHostSignal = /* @__PURE__ */ new WeakMap();
83
89
  function retainWhileSignalLives(signal, request) {
@@ -85,6 +91,12 @@ function retainWhileSignalLives(signal, request) {
85
91
  if (requests) requests.push(request);
86
92
  else requestsByHostSignal.set(signal, [request]);
87
93
  }
94
+ function followHostSignal(signal) {
95
+ const relay = new AbortController();
96
+ if (signal.aborted) relay.abort(signal.reason);
97
+ else signal.addEventListener("abort", () => relay.abort(signal.reason), { once: true });
98
+ return relay.signal;
99
+ }
88
100
  function createForceStaticNextRequest(input, nextConfig, signal) {
89
101
  const read = (key) => {
90
102
  const descriptor = BUILT_IN_REQUEST_PROPERTY_MAP.get(key)?.descriptor;
@@ -228,9 +240,10 @@ function createTrackedAppRouteRequest(request, options = {}) {
228
240
  const sourceCfDescriptor = Reflect.getOwnPropertyDescriptor(requestWithOverrides, "cf");
229
241
  const sourceCfAccessor = sourceCfDescriptor?.get;
230
242
  const sourceCfMetadata = sourceCfAccessor ? void 0 : Reflect.get(requestWithOverrides, "cf", requestWithOverrides);
231
- const nextRequest = requestMode === "force-static" ? createForceStaticNextRequest(requestWithOverrides, nextConfig, options.signal) : requestWithOverrides instanceof NextRequest && sourceCfDescriptor?.configurable !== false && !options.signal ? requestWithOverrides : new NextRequest(requestWithOverrides, {
243
+ const signal = options.signal ? followHostSignal(options.signal) : void 0;
244
+ const nextRequest = requestMode === "force-static" ? createForceStaticNextRequest(requestWithOverrides, nextConfig, signal) : requestWithOverrides instanceof NextRequest && sourceCfDescriptor?.configurable !== false && !signal ? requestWithOverrides : new NextRequest(requestWithOverrides, {
232
245
  nextConfig: nextConfig ?? void 0,
233
- signal: options.signal
246
+ signal
234
247
  });
235
248
  if (options.signal) retainWhileSignalLives(options.signal, nextRequest);
236
249
  const rawCfMetadata = sourceCfAccessor ? void 0 : sourceCfMetadata === void 0 ? Reflect.get(nextRequest, "cf", nextRequest) : sourceCfMetadata;
@@ -43,6 +43,14 @@ type LazyLoadableIntercept = {
43
43
  __loadInterceptLayouts?: LazyModuleLoaderArray | null;
44
44
  interceptLoadings?: readonly unknown[] | null;
45
45
  __loadInterceptLoadings?: LazyModuleLoaderArray | null;
46
+ interceptNotFounds?: readonly unknown[] | null;
47
+ __loadInterceptNotFounds?: LazyModuleLoaderArray | null;
48
+ interceptForbiddens?: readonly unknown[] | null;
49
+ __loadInterceptForbiddens?: LazyModuleLoaderArray | null;
50
+ interceptUnauthorizeds?: readonly unknown[] | null;
51
+ __loadInterceptUnauthorizeds?: LazyModuleLoaderArray | null;
52
+ interceptErrors?: readonly unknown[] | null;
53
+ __loadInterceptErrors?: LazyModuleLoaderArray | null;
46
54
  __loadState?: {
47
55
  page?: unknown;
48
56
  pageLoading?: Promise<unknown> | null;
@@ -60,6 +68,7 @@ type LazyLoadableSlot = {
60
68
  loadings?: readonly unknown[];
61
69
  error?: unknown;
62
70
  notFound?: unknown;
71
+ notFounds?: readonly unknown[];
63
72
  __loadPage?: LazyModuleThunk | null;
64
73
  __loadDefault?: LazyModuleThunk | null;
65
74
  __loadLayout?: LazyModuleThunk | null;
@@ -68,6 +77,7 @@ type LazyLoadableSlot = {
68
77
  __loadLoadings?: LazyModuleLoaderArray | null;
69
78
  __loadError?: LazyModuleThunk | null;
70
79
  __loadNotFound?: LazyModuleThunk | null;
80
+ __loadNotFounds?: LazyModuleLoaderArray | null;
71
81
  /** Hydrated only after an intercept matches, not with the slot's base modules. */
72
82
  intercepts?: LazyLoadableIntercept[];
73
83
  };
@@ -82,6 +92,9 @@ export type LazyLoadableRoute = {
82
92
  notFounds?: unknown[];
83
93
  forbiddens?: unknown[];
84
94
  unauthorizeds?: unknown[];
95
+ segmentNotFounds?: unknown[];
96
+ segmentForbiddens?: unknown[];
97
+ segmentUnauthorizeds?: unknown[];
85
98
  loading?: unknown;
86
99
  error?: unknown;
87
100
  notFound?: unknown;
@@ -101,6 +114,9 @@ export type LazyLoadableRoute = {
101
114
  __loadNotFounds?: LazyModuleLoaderArray | null;
102
115
  __loadForbiddens?: LazyModuleLoaderArray | null;
103
116
  __loadUnauthorizeds?: LazyModuleLoaderArray | null;
117
+ __loadSegmentNotFounds?: LazyModuleLoaderArray | null;
118
+ __loadSegmentForbiddens?: LazyModuleLoaderArray | null;
119
+ __loadSegmentUnauthorizeds?: LazyModuleLoaderArray | null;
104
120
  __loadLoading?: LazyModuleThunk | null;
105
121
  __loadError?: LazyModuleThunk | null;
106
122
  __loadNotFound?: LazyModuleThunk | null;
@@ -123,4 +139,5 @@ export declare function loadAppInterceptLayouts(intercept: LazyLoadableIntercept
123
139
  * `null`/`undefined` routes and on eager routes that have no lazy thunks.
124
140
  */
125
141
  export declare function ensureAppRouteModulesLoaded<TRoute extends LazyLoadableRoute>(route: TRoute | null | undefined): TRoute | Promise<TRoute>;
126
- //#endregion
142
+ //#endregion
143
+ export {};
@@ -92,6 +92,10 @@ function loadAppInterceptLayouts(intercept) {
92
92
  const loads = [];
93
93
  pushArrayLoads(loads, intercept.interceptLayouts, intercept.__loadInterceptLayouts);
94
94
  pushArrayLoads(loads, intercept.interceptLoadings, intercept.__loadInterceptLoadings);
95
+ pushArrayLoads(loads, intercept.interceptNotFounds, intercept.__loadInterceptNotFounds);
96
+ pushArrayLoads(loads, intercept.interceptForbiddens, intercept.__loadInterceptForbiddens);
97
+ pushArrayLoads(loads, intercept.interceptUnauthorizeds, intercept.__loadInterceptUnauthorizeds);
98
+ pushArrayLoads(loads, intercept.interceptErrors, intercept.__loadInterceptErrors);
95
99
  if (loads.length === 0) return Promise.resolve(intercept.interceptLayouts ?? []);
96
100
  const loading = shareIsolatePromise(Promise.all(loads).then(() => {
97
101
  if (loadState) loadState.interceptLayoutsLoading = null;
@@ -130,6 +134,9 @@ function ensureAppRouteModulesLoaded(route) {
130
134
  pushArrayLoads(loads, route.notFounds, route.__loadNotFounds);
131
135
  pushArrayLoads(loads, route.forbiddens, route.__loadForbiddens);
132
136
  pushArrayLoads(loads, route.unauthorizeds, route.__loadUnauthorizeds);
137
+ pushArrayLoads(loads, route.segmentNotFounds, route.__loadSegmentNotFounds);
138
+ pushArrayLoads(loads, route.segmentForbiddens, route.__loadSegmentForbiddens);
139
+ pushArrayLoads(loads, route.segmentUnauthorizeds, route.__loadSegmentUnauthorizeds);
133
140
  for (const slot of Object.values(route.slots ?? {})) {
134
141
  pushFieldLoad(loads, slot, "page", slot.__loadPage);
135
142
  pushFieldLoad(loads, slot, "default", slot.__loadDefault);
@@ -139,6 +146,7 @@ function ensureAppRouteModulesLoaded(route) {
139
146
  pushArrayLoads(loads, slot.loadings, slot.__loadLoadings);
140
147
  pushFieldLoad(loads, slot, "error", slot.__loadError);
141
148
  pushFieldLoad(loads, slot, "notFound", slot.__loadNotFound);
149
+ pushArrayLoads(loads, slot.notFounds, slot.__loadNotFounds);
142
150
  }
143
151
  if (loads.length === 0) {
144
152
  route.__loaded = true;
@@ -39,4 +39,5 @@ export type PrefetchInliningConfig = false | {
39
39
  };
40
40
  export declare function isRouteTreePrefetchRequest(request: Request): boolean;
41
41
  export declare function createRouteTreePrefetchResponse(route: AppRouteTreePrefetchRoute, options?: RouteTreePrefetchResponseOptions): Promise<Response>;
42
- //#endregion
42
+ //#endregion
43
+ export {};
@@ -1,5 +1,5 @@
1
- import { VINEXT_RSC_RENDER_MODE_HEADER, VINEXT_RSC_VARY_HEADER } from "./app-rsc-vary.js";
2
1
  import { AppRscRenderMode } from "./app-rsc-render-mode.js";
2
+ import { VINEXT_RSC_RENDER_MODE_HEADER, VINEXT_RSC_VARY_HEADER } from "./app-rsc-vary.js";
3
3
  import { AppRscStateFingerprintInput } from "./app-rsc-state-fingerprint.js";
4
4
  //#region src/server/app-rsc-cache-busting.d.ts
5
5
  /**
@@ -13,10 +13,10 @@ export declare const VINEXT_RSC_BUILD_ID_HEADER = "X-Vinext-RSC-Build-Id";
13
13
  export declare const VINEXT_RSC_COMPATIBILITY_ID_HEADER = "X-Vinext-RSC-Compatibility-Id";
14
14
  export declare const VINEXT_RSC_CONTENT_TYPE = "text/x-component";
15
15
  type CreateRscRequestHeadersOptions = {
16
- clientReuseManifestHeader?: string | null;
17
16
  interceptionContext?: string | null;
18
17
  interceptionId?: string | null;
19
18
  mountedSlotsHeader?: string | null;
19
+ mountedLayoutsHeader?: string | null;
20
20
  includePrefetchHeader?: boolean;
21
21
  renderMode?: AppRscRenderMode;
22
22
  fetchPriority?: "auto" | "high" | "low";
@@ -1,5 +1,5 @@
1
1
  import { NEXT_ROUTER_PREFETCH_HEADER, NEXT_ROUTER_SEGMENT_PREFETCH_HEADER, NEXT_ROUTER_STATE_TREE_HEADER, NEXT_URL_HEADER, VINEXT_INTERCEPTION_CONTEXT_HEADER, VINEXT_INTERCEPTION_ID_HEADER, VINEXT_MOUNTED_SLOTS_HEADER, VINEXT_RSC_RENDER_MODE_HEADER, VINEXT_RSC_STATE_FINGERPRINT_HEADER, VINEXT_RSC_VARY_HEADER } from "./app-rsc-vary.js";
2
- import { NEXTJS_DEPLOYMENT_ID_HEADER, VINEXT_CLIENT_REUSE_MANIFEST_HEADER } from "./headers.js";
2
+ import { NEXTJS_DEPLOYMENT_ID_HEADER, VINEXT_MOUNTED_LAYOUTS_HEADER } from "./headers.js";
3
3
  import { APP_RSC_RENDER_MODE_PREFETCH_LOADING_SHELL, parseAppRscRenderMode } from "./app-rsc-render-mode.js";
4
4
  import { fnv1a64 } from "../utils/hash.js";
5
5
  import { applyDeploymentIdHeader, getDeploymentId } from "../utils/deployment-id.js";
@@ -183,7 +183,7 @@ function createRscRequestHeaders(options = {}) {
183
183
  if (options.interceptionContext !== void 0 && options.interceptionContext !== null) headers.set(VINEXT_INTERCEPTION_CONTEXT_HEADER, options.interceptionContext);
184
184
  if (options.interceptionId !== void 0 && options.interceptionId !== null) headers.set(VINEXT_INTERCEPTION_ID_HEADER, options.interceptionId);
185
185
  if (options.mountedSlotsHeader !== void 0 && options.mountedSlotsHeader !== null) headers.set(VINEXT_MOUNTED_SLOTS_HEADER, options.mountedSlotsHeader);
186
- if (options.clientReuseManifestHeader !== void 0 && options.clientReuseManifestHeader !== null) headers.set(VINEXT_CLIENT_REUSE_MANIFEST_HEADER, options.clientReuseManifestHeader);
186
+ if (options.mountedLayoutsHeader !== void 0 && options.mountedLayoutsHeader !== null) headers.set(VINEXT_MOUNTED_LAYOUTS_HEADER, options.mountedLayoutsHeader);
187
187
  const renderMode = options.renderMode ?? "navigation";
188
188
  if (renderMode !== "navigation") headers.set(VINEXT_RSC_RENDER_MODE_HEADER, renderMode);
189
189
  return headers;
@@ -199,8 +199,8 @@ function canonicalizePrewarmableRscRequestHeaders(headers) {
199
199
  headers.delete(NEXT_ROUTER_SEGMENT_PREFETCH_HEADER);
200
200
  headers.delete(NEXT_ROUTER_STATE_TREE_HEADER);
201
201
  headers.delete(NEXT_URL_HEADER);
202
+ headers.delete(VINEXT_MOUNTED_LAYOUTS_HEADER);
202
203
  headers.delete(VINEXT_RSC_STATE_FINGERPRINT_HEADER);
203
- headers.delete(VINEXT_CLIENT_REUSE_MANIFEST_HEADER);
204
204
  return true;
205
205
  }
206
206
  /**
@@ -214,8 +214,8 @@ function canonicalizeLoadingShellRscRequestHeaders(headers) {
214
214
  headers.set(NEXT_ROUTER_SEGMENT_PREFETCH_HEADER, "1");
215
215
  headers.delete(NEXT_ROUTER_STATE_TREE_HEADER);
216
216
  headers.delete(NEXT_URL_HEADER);
217
+ headers.delete(VINEXT_MOUNTED_LAYOUTS_HEADER);
217
218
  headers.delete(VINEXT_RSC_STATE_FINGERPRINT_HEADER);
218
- headers.delete(VINEXT_CLIENT_REUSE_MANIFEST_HEADER);
219
219
  return true;
220
220
  }
221
221
  const RSC_REQUEST_URL_BASE = "http://vinext.local";
@@ -20,7 +20,9 @@ export type AppRenderErrorContextOverrides = {
20
20
  * the incoming Web `Request`, wires it into a `createRscOnErrorHandler` call,
21
21
  * and binds the configured `reportRequestError` reporter.
22
22
  *
23
- * Pure factory: takes all deps explicitly — no closure over module-level state.
23
+ * Takes all deps explicitly. The only module-level state is the set of errors
24
+ * each request already logged, keyed weakly by its `Request`.
24
25
  */
25
26
  export declare function createAppRscOnErrorHandler(reportRequestError: ReportRequestError, request: Request, pathname: string, routePath: string, overrides?: AppRenderErrorContextOverrides): (error: unknown) => string | undefined;
26
- //#endregion
27
+ //#endregion
28
+ export {};