vinext 1.0.0-beta.9 → 1.0.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 (800) hide show
  1. package/README.md +150 -92
  2. package/THIRD_PARTY_LICENSES.md +25 -0
  3. package/dist/_virtual/_rolldown/runtime.js +25 -0
  4. package/dist/build/action-owner-manifest.d.ts +8 -9
  5. package/dist/build/action-owner-manifest.js +23 -5
  6. package/dist/build/assets-ignore.d.ts +3 -4
  7. package/dist/build/clean-output.d.ts +2 -3
  8. package/dist/build/client-build-config.d.ts +40 -12
  9. package/dist/build/client-build-config.js +76 -6
  10. package/dist/build/css-url-assets.d.ts +4 -5
  11. package/dist/build/css-url-assets.js +5 -2
  12. package/dist/build/google-fonts/build-url.d.ts +3 -4
  13. package/dist/build/google-fonts/fallback-metrics.d.ts +3 -4
  14. package/dist/build/google-fonts/find-font-files-in-css.d.ts +2 -3
  15. package/dist/build/google-fonts/font-metadata.d.ts +2 -3
  16. package/dist/build/google-fonts/get-axes.d.ts +2 -3
  17. package/dist/build/google-fonts/sort-variants.d.ts +2 -3
  18. package/dist/build/google-fonts/validate.d.ts +2 -3
  19. package/dist/build/google-fonts/validate.js +8 -4
  20. package/dist/build/inject-pregenerated-paths.d.ts +2 -3
  21. package/dist/build/inject-pregenerated-paths.js +16 -14
  22. package/dist/build/inline-css.d.ts +3 -4
  23. package/dist/build/layout-classification-types.d.ts +4 -5
  24. package/dist/build/layout-classification.d.ts +7 -8
  25. package/dist/build/lifecycle.d.ts +42 -0
  26. package/dist/build/lifecycle.js +253 -0
  27. package/dist/build/module-dependency-cache.d.ts +2 -3
  28. package/dist/build/next-client-runtime-manifests.d.ts +4 -5
  29. package/dist/build/nitro-route-rules.d.ts +6 -7
  30. package/dist/build/nitro-route-rules.js +1 -1
  31. package/dist/build/pages-client-assets-module.d.ts +4 -8
  32. package/dist/build/pages-client-assets-module.js +1 -13
  33. package/dist/build/precompress.d.ts +2 -3
  34. package/dist/build/prerender-cloudflare-loader.d.ts +4 -0
  35. package/dist/build/prerender-cloudflare-loader.js +49 -0
  36. package/dist/build/prerender-paths.d.ts +36 -11
  37. package/dist/build/prerender-paths.js +273 -97
  38. package/dist/build/prerender-phase.d.ts +2 -3
  39. package/dist/build/prerender-server-entry.js +11 -3
  40. package/dist/build/prerender-server-pool.d.ts +9 -6
  41. package/dist/build/prerender-server-pool.js +8 -5
  42. package/dist/build/prerender.d.ts +65 -15
  43. package/dist/build/prerender.js +139 -43
  44. package/dist/build/preview-credentials.d.ts +5 -6
  45. package/dist/build/preview-credentials.js +2 -2
  46. package/dist/build/public-dir-conflict.d.ts +5 -6
  47. package/dist/build/public-dir-conflict.js +2 -1
  48. package/dist/build/report.d.ts +24 -20
  49. package/dist/build/report.js +10 -2
  50. package/dist/build/route-classification-injector.d.ts +2 -3
  51. package/dist/build/route-classification-manifest.d.ts +5 -6
  52. package/dist/build/run-prerender.d.ts +11 -9
  53. package/dist/build/run-prerender.js +25 -16
  54. package/dist/build/server-entry.d.ts +4 -0
  55. package/dist/build/server-entry.js +28 -0
  56. package/dist/build/server-manifest.d.ts +8 -3
  57. package/dist/build/server-manifest.js +14 -2
  58. package/dist/build/ssr-manifest.d.ts +5 -6
  59. package/dist/build/standalone.d.ts +2 -3
  60. package/dist/build/standalone.js +2 -2
  61. package/dist/build/static-export.d.ts +6 -7
  62. package/dist/cache/cache-adapters-virtual.d.ts +60 -20
  63. package/dist/cache/cache-adapters-virtual.js +50 -7
  64. package/dist/check.d.ts +11 -10
  65. package/dist/check.js +467 -176
  66. package/dist/cli-args.d.ts +7 -16
  67. package/dist/cli-args.js +2 -45
  68. package/dist/cli-dev-config.d.ts +10 -7
  69. package/dist/cli-dev-config.js +160 -3
  70. package/dist/cli.js +124 -442
  71. package/dist/client/app-nav-failure-handler.d.ts +6 -7
  72. package/dist/client/client-rewrite-matcher.d.ts +2 -3
  73. package/dist/client/client-rewrites.d.ts +4 -5
  74. package/dist/client/dev-error-overlay-store.d.ts +13 -14
  75. package/dist/client/dev-error-overlay.d.ts +15 -15
  76. package/dist/client/dev-error-overlay.js +8 -5
  77. package/dist/client/instrumentation-client-inject.d.ts +3 -4
  78. package/dist/client/instrumentation-client-state.d.ts +5 -6
  79. package/dist/client/instrumentation-client.d.ts +3 -4
  80. package/dist/client/navigation-runtime.d.ts +21 -17
  81. package/dist/client/navigation-runtime.js +2 -1
  82. package/dist/client/pages-router-link-navigation.d.ts +4 -5
  83. package/dist/client/react-instance.d.ts +2 -3
  84. package/dist/client/validate-module-path.d.ts +2 -3
  85. package/dist/client/vinext-next-data.d.ts +7 -10
  86. package/dist/client/window-next.d.ts +4 -5
  87. package/dist/config/config-matchers.d.ts +16 -16
  88. package/dist/config/config-matchers.js +2 -4
  89. package/dist/config/dotenv.d.ts +3 -4
  90. package/dist/config/dotenv.js +2 -1
  91. package/dist/config/next-config.d.ts +31 -27
  92. package/dist/config/next-config.js +163 -16
  93. package/dist/config/prerender.d.ts +20 -16
  94. package/dist/config/prerender.js +10 -4
  95. package/dist/config/request-context.d.ts +5 -6
  96. package/dist/config/server-external-packages.d.ts +14 -3
  97. package/dist/config/server-external-packages.js +37 -3
  98. package/dist/config/tsconfig-paths.d.ts +3 -4
  99. package/dist/deps/.pnpm/ignore@5.3.2/deps/ignore/index.js +189 -0
  100. package/dist/deps/.pnpm/ua-parser-js@1.0.35/deps/ua-parser-js/src/ua-parser.js +1057 -0
  101. package/dist/entries/app-browser-entry.d.ts +4 -5
  102. package/dist/entries/app-browser-entry.js +1 -3
  103. package/dist/entries/app-rsc-entry.d.ts +10 -3
  104. package/dist/entries/app-rsc-entry.js +502 -51
  105. package/dist/entries/app-rsc-manifest.d.ts +4 -3
  106. package/dist/entries/app-rsc-manifest.js +26 -8
  107. package/dist/entries/app-ssr-entry.d.ts +2 -3
  108. package/dist/entries/app-ssr-entry.js +8 -1
  109. package/dist/entries/pages-client-entry.d.ts +3 -3
  110. package/dist/entries/pages-client-entry.js +17 -2
  111. package/dist/entries/pages-server-entry.d.ts +13 -3
  112. package/dist/entries/pages-server-entry.js +234 -33
  113. package/dist/entries/runtime-entry-module.d.ts +4 -5
  114. package/dist/image/image-adapters-virtual.d.ts +4 -5
  115. package/dist/index.d.ts +10 -11
  116. package/dist/index.js +711 -189
  117. package/dist/init-cloudflare.d.ts +26 -17
  118. package/dist/init-cloudflare.js +710 -102
  119. package/dist/init-platform.d.ts +26 -22
  120. package/dist/init-platform.js +85 -29
  121. package/dist/init.d.ts +19 -13
  122. package/dist/init.js +123 -41
  123. package/dist/plugins/action-owner-manifest.d.ts +3 -4
  124. package/dist/plugins/action-owner-manifest.js +10 -3
  125. package/dist/plugins/ast-scope.d.ts +10 -11
  126. package/dist/plugins/ast-scope.js +10 -22
  127. package/dist/plugins/ast-utils.d.ts +16 -29
  128. package/dist/plugins/ast-utils.js +27 -71
  129. package/dist/plugins/async-hooks-stub.d.ts +2 -3
  130. package/dist/plugins/client-reference-dedup.d.ts +4 -5
  131. package/dist/plugins/css-data-url.d.ts +2 -3
  132. package/dist/plugins/css-module-imports.d.ts +3 -4
  133. package/dist/plugins/css-module-imports.js +1 -1
  134. package/dist/plugins/dynamic-preload-metadata.d.ts +3 -4
  135. package/dist/plugins/dynamic-preload-metadata.js +55 -154
  136. package/dist/plugins/environment.d.ts +2 -3
  137. package/dist/plugins/extensionless-dynamic-import.d.ts +2 -3
  138. package/dist/plugins/extensionless-dynamic-import.js +6 -10
  139. package/dist/plugins/fonts.d.ts +10 -11
  140. package/dist/plugins/fonts.js +4 -3
  141. package/dist/plugins/ignore-dynamic-requests.d.ts +3 -4
  142. package/dist/plugins/ignore-dynamic-requests.js +60 -89
  143. package/dist/plugins/import-meta-url.d.ts +6 -7
  144. package/dist/plugins/import-meta-url.js +31 -43
  145. package/dist/plugins/instrumentation-client.d.ts +3 -3
  146. package/dist/plugins/instrumentation-client.js +46 -10
  147. package/dist/plugins/middleware-export-validation.d.ts +3 -4
  148. package/dist/plugins/middleware-export-validation.js +3 -3
  149. package/dist/plugins/middleware-server-only.d.ts +2 -3
  150. package/dist/plugins/og-asset-ownership.d.ts +3 -4
  151. package/dist/plugins/og-assets.d.ts +4 -5
  152. package/dist/plugins/og-assets.js +32 -13
  153. package/dist/plugins/og-harfbuzz.d.ts +24 -0
  154. package/dist/plugins/og-harfbuzz.js +260 -0
  155. package/dist/plugins/optimize-imports.d.ts +7 -7
  156. package/dist/plugins/optimize-imports.js +32 -44
  157. package/dist/plugins/pages-node-externals.d.ts +2 -3
  158. package/dist/plugins/pages-node-externals.js +6 -11
  159. package/dist/plugins/postcss.d.ts +8 -4
  160. package/dist/plugins/postcss.js +1 -1
  161. package/dist/plugins/remove-console.d.ts +2 -3
  162. package/dist/plugins/remove-console.js +0 -1
  163. package/dist/plugins/require-condition-resolution.d.ts +3 -4
  164. package/dist/plugins/require-condition-resolution.js +17 -18
  165. package/dist/plugins/require-context.d.ts +2 -3
  166. package/dist/plugins/require-context.js +13 -21
  167. package/dist/plugins/rsc-client-reference-loaders.d.ts +2 -3
  168. package/dist/plugins/rsc-client-shim-excludes.d.ts +4 -5
  169. package/dist/plugins/rsc-client-shim-excludes.js +1 -0
  170. package/dist/plugins/rsc-reference-validation-normalizer.d.ts +2 -3
  171. package/dist/plugins/sass.d.ts +7 -8
  172. package/dist/plugins/sass.js +7 -4
  173. package/dist/plugins/server-externals-manifest.d.ts +2 -3
  174. package/dist/plugins/strip-server-exports.d.ts +5 -6
  175. package/dist/plugins/strip-server-exports.js +1 -1
  176. package/dist/plugins/styled-jsx.d.ts +2 -3
  177. package/dist/plugins/styled-jsx.js +7 -7
  178. package/dist/plugins/transform-cache.d.ts +2 -3
  179. package/dist/plugins/transform-result.d.ts +3 -4
  180. package/dist/plugins/transitive-externals.d.ts +2 -3
  181. package/dist/plugins/typeof-window.d.ts +6 -7
  182. package/dist/plugins/typeof-window.js +30 -31
  183. package/dist/plugins/use-cache-callable.d.ts +2 -5
  184. package/dist/plugins/use-cache-callable.js +43 -22
  185. package/dist/plugins/wasm-module-import.d.ts +2 -3
  186. package/dist/plugins/worker-image-imports.d.ts +2 -3
  187. package/dist/plugins/worker-image-imports.js +6 -8
  188. package/dist/routing/app-route-graph.d.ts +19 -19
  189. package/dist/routing/app-route-graph.js +3 -2
  190. package/dist/routing/app-router.d.ts +19 -6
  191. package/dist/routing/app-router.js +24 -2
  192. package/dist/routing/file-matcher.d.ts +9 -10
  193. package/dist/routing/pages-router.d.ts +6 -6
  194. package/dist/routing/pages-router.js +1 -1
  195. package/dist/routing/route-matching.d.ts +4 -5
  196. package/dist/routing/route-matching.js +4 -2
  197. package/dist/routing/route-pattern.d.ts +13 -14
  198. package/dist/routing/route-trie.d.ts +5 -6
  199. package/dist/routing/route-validation.d.ts +3 -4
  200. package/dist/routing/route-validation.js +12 -11
  201. package/dist/routing/utils.d.ts +13 -14
  202. package/dist/server/accept-encoding.d.ts +9 -10
  203. package/dist/server/api-handler.d.ts +2 -3
  204. package/dist/server/api-handler.js +9 -6
  205. package/dist/server/app-action-forwarding.d.ts +3 -4
  206. package/dist/server/app-action-forwarding.js +1 -1
  207. package/dist/server/app-action-request.d.ts +2 -3
  208. package/dist/server/app-bfcache-id.d.ts +3 -4
  209. package/dist/server/app-bfcache-identity.d.ts +8 -9
  210. package/dist/server/app-browser-action-result.d.ts +15 -16
  211. package/dist/server/app-browser-client-reuse-manifest.d.ts +2 -3
  212. package/dist/server/app-browser-entry.js +87 -34
  213. package/dist/server/app-browser-error.d.ts +5 -6
  214. package/dist/server/app-browser-error.js +9 -3
  215. package/dist/server/app-browser-history-controller.d.ts +4 -5
  216. package/dist/server/app-browser-hydration.d.ts +16 -6
  217. package/dist/server/app-browser-hydration.js +14 -1
  218. package/dist/server/app-browser-interception-context.d.ts +3 -4
  219. package/dist/server/app-browser-mpa-navigation.d.ts +4 -5
  220. package/dist/server/app-browser-navigation-abort.d.ts +3 -4
  221. package/dist/server/app-browser-navigation-controller.d.ts +8 -8
  222. package/dist/server/app-browser-navigation-controller.js +8 -4
  223. package/dist/server/app-browser-navigation-response.d.ts +2 -3
  224. package/dist/server/app-browser-popstate.d.ts +4 -5
  225. package/dist/server/app-browser-prefetch-response.d.ts +5 -6
  226. package/dist/server/app-browser-rsc-redirect.d.ts +4 -5
  227. package/dist/server/app-browser-server-action-client.d.ts +7 -6
  228. package/dist/server/app-browser-server-action-client.js +9 -5
  229. package/dist/server/app-browser-server-action-navigation.d.ts +2 -3
  230. package/dist/server/app-browser-state.d.ts +17 -17
  231. package/dist/server/app-browser-state.js +6 -2
  232. package/dist/server/app-browser-stream.d.ts +4 -5
  233. package/dist/server/app-browser-stream.js +8 -6
  234. package/dist/server/app-browser-supplemental-refresh.d.ts +11 -12
  235. package/dist/server/app-browser-visible-commit.d.ts +6 -7
  236. package/dist/server/app-client-reference-preloader.d.ts +2 -3
  237. package/dist/server/app-elements-wire-key.d.ts +25 -0
  238. package/dist/server/app-elements-wire-key.js +69 -0
  239. package/dist/server/app-elements-wire.d.ts +34 -53
  240. package/dist/server/app-elements-wire.js +4 -75
  241. package/dist/server/app-elements.d.ts +5 -5
  242. package/dist/server/app-elements.js +1 -1
  243. package/dist/server/app-fallback-renderer.d.ts +4 -4
  244. package/dist/server/app-fallback-renderer.js +6 -6
  245. package/dist/server/app-fetch-tracing.d.ts +15 -0
  246. package/dist/server/app-fetch-tracing.js +38 -0
  247. package/dist/server/app-history-state.d.ts +26 -27
  248. package/dist/server/app-history-state.js +19 -11
  249. package/dist/server/app-hook-warning-suppression.d.ts +2 -3
  250. package/dist/server/app-hydration-cache-publication.d.ts +3 -4
  251. package/dist/server/app-inline-css-client.d.ts +3 -4
  252. package/dist/server/app-interception-context-header.d.ts +2 -3
  253. package/dist/server/app-layout-param-observation.d.ts +7 -8
  254. package/dist/server/app-metadata-tracing.d.ts +12 -0
  255. package/dist/server/app-metadata-tracing.js +17 -0
  256. package/dist/server/app-middleware.d.ts +7 -7
  257. package/dist/server/app-middleware.js +2 -3
  258. package/dist/server/app-mounted-slots-header.d.ts +2 -3
  259. package/dist/server/app-mounted-slots-header.js +2 -2
  260. package/dist/server/app-optimistic-routing.d.ts +10 -11
  261. package/dist/server/app-optimistic-routing.js +3 -2
  262. package/dist/server/app-page-boundary-render.d.ts +6 -6
  263. package/dist/server/app-page-boundary-render.js +10 -4
  264. package/dist/server/app-page-boundary.d.ts +9 -10
  265. package/dist/server/app-page-boundary.js +1 -1
  266. package/dist/server/app-page-cache-finalizer.d.ts +18 -9
  267. package/dist/server/app-page-cache-finalizer.js +51 -16
  268. package/dist/server/app-page-cache-render.d.ts +8 -5
  269. package/dist/server/app-page-cache-render.js +22 -5
  270. package/dist/server/app-page-cache.d.ts +28 -9
  271. package/dist/server/app-page-cache.js +95 -24
  272. package/dist/server/app-page-dispatch.d.ts +34 -12
  273. package/dist/server/app-page-dispatch.js +181 -64
  274. package/dist/server/app-page-element-builder.d.ts +13 -11
  275. package/dist/server/app-page-element-builder.js +104 -61
  276. package/dist/server/app-page-execution.d.ts +14 -14
  277. package/dist/server/app-page-execution.js +11 -7
  278. package/dist/server/app-page-head.d.ts +19 -16
  279. package/dist/server/app-page-head.js +25 -25
  280. package/dist/server/app-page-http-access-fallback-metadata.d.ts +6 -5
  281. package/dist/server/app-page-http-access-fallback-metadata.js +9 -2
  282. package/dist/server/app-page-method.d.ts +5 -11
  283. package/dist/server/app-page-method.js +2 -9
  284. package/dist/server/app-page-params.d.ts +5 -6
  285. package/dist/server/app-page-ppr-runtime.d.ts +2 -2
  286. package/dist/server/app-page-probe.d.ts +5 -6
  287. package/dist/server/app-page-probe.js +5 -4
  288. package/dist/server/app-page-render-identity.d.ts +4 -5
  289. package/dist/server/app-page-render-observation.d.ts +8 -9
  290. package/dist/server/app-page-render-observation.js +1 -1
  291. package/dist/server/app-page-render.d.ts +41 -6
  292. package/dist/server/app-page-render.js +171 -25
  293. package/dist/server/app-page-request.d.ts +10 -9
  294. package/dist/server/app-page-request.js +16 -12
  295. package/dist/server/app-page-response.d.ts +20 -9
  296. package/dist/server/app-page-response.js +30 -12
  297. package/dist/server/app-page-route-wiring.d.ts +15 -15
  298. package/dist/server/app-page-route-wiring.js +31 -24
  299. package/dist/server/app-page-search-params-observation.d.ts +26 -5
  300. package/dist/server/app-page-search-params-observation.js +42 -6
  301. package/dist/server/app-page-segment-plan.d.ts +2 -3
  302. package/dist/server/app-page-segment-state.d.ts +11 -12
  303. package/dist/server/app-page-stream.d.ts +27 -11
  304. package/dist/server/app-page-stream.js +34 -6
  305. package/dist/server/app-page-tracing.d.ts +33 -0
  306. package/dist/server/app-page-tracing.js +49 -0
  307. package/dist/server/app-pages-bridge.d.ts +6 -6
  308. package/dist/server/app-pages-bridge.js +17 -4
  309. package/dist/server/app-post-middleware-context.d.ts +2 -3
  310. package/dist/server/app-ppr-fallback-shell-render.d.ts +3 -4
  311. package/dist/server/app-ppr-fallback-shell-render.js +3 -2
  312. package/dist/server/app-ppr-fallback-shell.d.ts +6 -7
  313. package/dist/server/app-prerender-endpoints.d.ts +5 -5
  314. package/dist/server/app-prerender-endpoints.js +3 -1
  315. package/dist/server/app-prerender-static-params.d.ts +15 -7
  316. package/dist/server/app-prerender-static-params.js +24 -9
  317. package/dist/server/app-render-dependency.d.ts +14 -13
  318. package/dist/server/app-render-dependency.js +5 -1
  319. package/dist/server/app-request-context.d.ts +3 -4
  320. package/dist/server/app-request-stage-context.d.ts +5 -0
  321. package/dist/server/app-request-stage-context.js +11 -0
  322. package/dist/server/app-request-stage-dispatch.d.ts +25 -0
  323. package/dist/server/app-request-stage-dispatch.js +54 -0
  324. package/dist/server/app-request-stage-independent-entry.d.ts +8 -0
  325. package/dist/server/app-request-stage-independent-entry.js +115 -0
  326. package/dist/server/app-response-header-provenance.d.ts +13 -7
  327. package/dist/server/app-response-header-provenance.js +34 -1
  328. package/dist/server/app-response-stage-entry.d.ts +9 -0
  329. package/dist/server/app-response-stage-entry.js +87 -0
  330. package/dist/server/app-route-handler-cache.d.ts +2 -3
  331. package/dist/server/app-route-handler-cache.js +46 -34
  332. package/dist/server/app-route-handler-dispatch.d.ts +3 -3
  333. package/dist/server/app-route-handler-dispatch.js +68 -54
  334. package/dist/server/app-route-handler-execution.d.ts +17 -13
  335. package/dist/server/app-route-handler-execution.js +69 -18
  336. package/dist/server/app-route-handler-middleware-context.d.ts +8 -0
  337. package/dist/server/app-route-handler-middleware-context.js +15 -0
  338. package/dist/server/app-route-handler-policy.d.ts +11 -11
  339. package/dist/server/app-route-handler-response.d.ts +9 -10
  340. package/dist/server/app-route-handler-response.js +2 -0
  341. package/dist/server/app-route-handler-runtime.d.ts +9 -10
  342. package/dist/server/app-route-handler-runtime.js +20 -16
  343. package/dist/server/app-route-module-loader.d.ts +6 -7
  344. package/dist/server/app-route-request-built-ins.d.ts +3 -4
  345. package/dist/server/app-route-tree-prefetch.d.ts +6 -7
  346. package/dist/server/app-route-tree-prefetch.js +2 -1
  347. package/dist/server/app-router-entry.d.ts +2 -0
  348. package/dist/server/app-router-entry.js +28 -8
  349. package/dist/server/app-rsc-cache-busting.d.ts +34 -27
  350. package/dist/server/app-rsc-cache-busting.js +14 -2
  351. package/dist/server/app-rsc-combined-handler.d.ts +9 -0
  352. package/dist/server/app-rsc-combined-handler.js +11 -0
  353. package/dist/server/app-rsc-embedded-chunks.d.ts +6 -7
  354. package/dist/server/app-rsc-error-handler.d.ts +12 -6
  355. package/dist/server/app-rsc-error-handler.js +15 -6
  356. package/dist/server/app-rsc-errors.d.ts +12 -9
  357. package/dist/server/app-rsc-errors.js +15 -13
  358. package/dist/server/app-rsc-handler.d.ts +31 -6
  359. package/dist/server/app-rsc-handler.js +411 -61
  360. package/dist/server/app-rsc-redirect-flight.d.ts +4 -5
  361. package/dist/server/app-rsc-render-mode.d.ts +8 -9
  362. package/dist/server/app-rsc-request-normalization.d.ts +3 -3
  363. package/dist/server/app-rsc-request-normalization.js +2 -1
  364. package/dist/server/app-rsc-response-finalizer.d.ts +8 -5
  365. package/dist/server/app-rsc-response-finalizer.js +6 -6
  366. package/dist/server/app-rsc-response-stage.d.ts +6 -0
  367. package/dist/server/app-rsc-response-stage.js +251 -0
  368. package/dist/server/app-rsc-route-matching.d.ts +3 -4
  369. package/dist/server/app-rsc-route-matching.js +3 -2
  370. package/dist/server/app-rsc-state-fingerprint.d.ts +3 -4
  371. package/dist/server/app-rsc-vary.d.ts +16 -0
  372. package/dist/server/app-rsc-vary.js +31 -0
  373. package/dist/server/app-segment-config.d.ts +119 -7
  374. package/dist/server/app-segment-config.js +242 -2
  375. package/dist/server/app-server-action-execution.d.ts +16 -12
  376. package/dist/server/app-server-action-execution.js +86 -33
  377. package/dist/server/app-ssr-entry.d.ts +14 -4
  378. package/dist/server/app-ssr-entry.js +61 -14
  379. package/dist/server/app-ssr-error-meta.d.ts +3 -4
  380. package/dist/server/app-ssr-error-meta.js +2 -1
  381. package/dist/server/app-ssr-router-instance.d.ts +2 -3
  382. package/dist/server/app-ssr-search-params-gate.d.ts +20 -0
  383. package/dist/server/app-ssr-search-params-gate.js +54 -0
  384. package/dist/server/app-ssr-stream.d.ts +13 -9
  385. package/dist/server/app-ssr-stream.js +33 -7
  386. package/dist/server/app-static-generation.d.ts +4 -5
  387. package/dist/server/app-visited-response-cache.d.ts +11 -12
  388. package/dist/server/app-visited-response-cache.js +2 -2
  389. package/dist/server/app-worker-stages.d.ts +112 -0
  390. package/dist/server/app-worker-stages.js +105 -0
  391. package/dist/server/artifact-compatibility.d.ts +11 -12
  392. package/dist/server/before-interactive-head.d.ts +2 -3
  393. package/dist/server/bfcache-identity.d.ts +7 -8
  394. package/dist/server/cache-control.d.ts +35 -13
  395. package/dist/server/cache-control.js +71 -5
  396. package/dist/server/cache-headers.d.ts +3 -4
  397. package/dist/server/cache-proof.d.ts +75 -70
  398. package/dist/server/cache-proof.js +9 -1
  399. package/dist/server/cacheability-limits.d.ts +4 -5
  400. package/dist/server/cacheability-limits.js +2 -2
  401. package/dist/server/cacheability-manifest.d.ts +42 -16
  402. package/dist/server/cacheability-manifest.js +60 -10
  403. package/dist/server/cacheability-request.d.ts +37 -8
  404. package/dist/server/cacheability-request.js +159 -57
  405. package/dist/server/client-reuse-manifest.d.ts +17 -18
  406. package/dist/server/client-reuse-manifest.js +2 -2
  407. package/dist/server/client-trace-metadata.d.ts +9 -6
  408. package/dist/server/client-trace-metadata.js +27 -15
  409. package/dist/server/cloudflare-workers-tracing.d.ts +1 -0
  410. package/dist/server/cloudflare-workers-tracing.js +8 -0
  411. package/dist/server/config-headers.d.ts +19 -5
  412. package/dist/server/config-headers.js +25 -11
  413. package/dist/server/cookie-utils.d.ts +2 -3
  414. package/dist/server/csp.d.ts +5 -6
  415. package/dist/server/default-global-error-module.d.ts +2 -3
  416. package/dist/server/default-global-not-found-module.d.ts +2 -3
  417. package/dist/server/default-not-found-module.d.ts +2 -3
  418. package/dist/server/defer-until-stream-consumed.d.ts +2 -3
  419. package/dist/server/defer-until-stream-consumed.js +2 -1
  420. package/dist/server/dev-initial-server-error.d.ts +3 -4
  421. package/dist/server/dev-initial-server-error.js +2 -1
  422. package/dist/server/dev-lockfile.d.ts +7 -8
  423. package/dist/server/dev-lockfile.js +4 -1
  424. package/dist/server/dev-module-runner.d.ts +2 -3
  425. package/dist/server/dev-origin-check.d.ts +5 -6
  426. package/dist/server/dev-route-files.d.ts +2 -3
  427. package/dist/server/dev-server.d.ts +4 -5
  428. package/dist/server/dev-server.js +130 -61
  429. package/dist/server/dev-stack-sourcemap.d.ts +7 -7
  430. package/dist/server/dev-stack-sourcemap.js +1 -1
  431. package/dist/server/document-initial-head.d.ts +3 -4
  432. package/dist/server/edge-api-runtime.d.ts +4 -5
  433. package/dist/server/fetch-handler.d.ts +3 -2
  434. package/dist/server/fetch-handler.js +3 -18
  435. package/dist/server/file-based-metadata.d.ts +2 -3
  436. package/dist/server/framework-tracer.d.ts +46 -0
  437. package/dist/server/framework-tracer.js +125 -0
  438. package/dist/server/fully-buffered-response.d.ts +11 -0
  439. package/dist/server/fully-buffered-response.js +19 -0
  440. package/dist/server/headers.d.ts +54 -61
  441. package/dist/server/headers.js +18 -31
  442. package/dist/server/html.d.ts +6 -27
  443. package/dist/server/html.js +16 -1
  444. package/dist/server/http-conditional.d.ts +5 -6
  445. package/dist/server/http-date.d.ts +2 -3
  446. package/dist/server/http-error-responses.d.ts +9 -10
  447. package/dist/server/http-range.d.ts +4 -5
  448. package/dist/server/hybrid-route-priority.d.ts +4 -5
  449. package/dist/server/image-optimization.d.ts +20 -21
  450. package/dist/server/implicit-tags.d.ts +3 -4
  451. package/dist/server/instrumentation-runtime.d.ts +17 -21
  452. package/dist/server/instrumentation-runtime.js +26 -8
  453. package/dist/server/instrumentation.d.ts +26 -30
  454. package/dist/server/instrumentation.js +18 -23
  455. package/dist/server/isr-cache.d.ts +28 -27
  456. package/dist/server/isr-cache.js +18 -70
  457. package/dist/server/isr-decision.d.ts +4 -4
  458. package/dist/server/metadata-route-build-data.d.ts +4 -5
  459. package/dist/server/metadata-route-cache-policy.d.ts +2 -3
  460. package/dist/server/metadata-route-response.d.ts +7 -7
  461. package/dist/server/metadata-route-response.js +68 -2
  462. package/dist/server/metadata-routes.d.ts +18 -19
  463. package/dist/server/middleware-matcher-pattern.d.ts +6 -7
  464. package/dist/server/middleware-matcher.d.ts +6 -7
  465. package/dist/server/middleware-path-to-regexp.d.ts +6 -7
  466. package/dist/server/middleware-path-to-regexp.js +11 -9
  467. package/dist/server/middleware-response-headers.d.ts +3 -4
  468. package/dist/server/middleware-runtime.d.ts +7 -8
  469. package/dist/server/middleware-runtime.js +36 -7
  470. package/dist/server/middleware.d.ts +5 -5
  471. package/dist/server/multi-stage.d.ts +141 -0
  472. package/dist/server/multi-stage.js +8 -0
  473. package/dist/server/navigation-planner.d.ts +26 -26
  474. package/dist/server/navigation-trace.d.ts +11 -12
  475. package/dist/server/next-error-digest.d.ts +4 -5
  476. package/dist/server/normalize-path.d.ts +5 -6
  477. package/dist/server/open-redirect.d.ts +2 -3
  478. package/dist/server/opentelemetry-api.d.ts +59 -0
  479. package/dist/server/opentelemetry-api.js +53 -0
  480. package/dist/server/opentelemetry-tracing.d.ts +5 -0
  481. package/dist/server/opentelemetry-tracing.js +83 -0
  482. package/dist/server/operation-token.d.ts +11 -12
  483. package/dist/server/otel-tracer-extension.d.ts +7 -9
  484. package/dist/server/otel-tracer-extension.js +37 -36
  485. package/dist/server/pages-api-route.d.ts +5 -4
  486. package/dist/server/pages-api-route.js +20 -7
  487. package/dist/server/pages-asset-tags.d.ts +6 -6
  488. package/dist/server/pages-asset-tags.js +37 -2
  489. package/dist/server/pages-body-parser-config.d.ts +4 -5
  490. package/dist/server/pages-body-parser-config.js +4 -4
  491. package/dist/server/pages-client-assets.d.ts +11 -5
  492. package/dist/server/pages-data-route.d.ts +11 -12
  493. package/dist/server/pages-data-route.js +1 -1
  494. package/dist/server/pages-default-404.d.ts +3 -4
  495. package/dist/server/pages-dev-hydration.d.ts +9 -4
  496. package/dist/server/pages-dev-hydration.js +19 -7
  497. package/dist/server/pages-dev-module-url.d.ts +3 -4
  498. package/dist/server/pages-dev-stylesheets.d.ts +5 -6
  499. package/dist/server/pages-document-asset-props.d.ts +6 -7
  500. package/dist/server/pages-document-initial-props.d.ts +5 -5
  501. package/dist/server/pages-document-initial-props.js +4 -2
  502. package/dist/server/pages-execution-tracing.d.ts +40 -0
  503. package/dist/server/pages-execution-tracing.js +80 -0
  504. package/dist/server/pages-get-initial-props.d.ts +9 -10
  505. package/dist/server/pages-i18n.d.ts +8 -8
  506. package/dist/server/pages-media-type.d.ts +4 -5
  507. package/dist/server/pages-node-compat.d.ts +11 -10
  508. package/dist/server/pages-node-compat.js +12 -4
  509. package/dist/server/pages-page-data.d.ts +18 -19
  510. package/dist/server/pages-page-data.js +11 -10
  511. package/dist/server/pages-page-handler.d.ts +7 -6
  512. package/dist/server/pages-page-handler.js +77 -39
  513. package/dist/server/pages-page-method.d.ts +2 -3
  514. package/dist/server/pages-page-response.d.ts +14 -10
  515. package/dist/server/pages-page-response.js +49 -31
  516. package/dist/server/pages-preview.d.ts +10 -11
  517. package/dist/server/pages-readiness.d.ts +2 -3
  518. package/dist/server/pages-request-pipeline.d.ts +14 -12
  519. package/dist/server/pages-request-pipeline.js +60 -30
  520. package/dist/server/pages-request-stage-entry.d.ts +23 -0
  521. package/dist/server/pages-request-stage-entry.js +314 -0
  522. package/dist/server/pages-response-stage-entry.d.ts +11 -0
  523. package/dist/server/pages-response-stage-entry.js +106 -0
  524. package/dist/server/pages-response-stage.d.ts +31 -0
  525. package/dist/server/pages-response-stage.js +49 -0
  526. package/dist/server/pages-revalidate.d.ts +3 -4
  527. package/dist/server/pages-revalidate.js +9 -4
  528. package/dist/server/pages-route-data-kind.d.ts +18 -0
  529. package/dist/server/pages-route-data-kind.js +11 -0
  530. package/dist/server/pages-router-entry.d.ts +1 -25
  531. package/dist/server/pages-router-entry.js +35 -148
  532. package/dist/server/pages-serializable-props.d.ts +3 -4
  533. package/dist/server/pregenerated-concrete-paths.d.ts +9 -7
  534. package/dist/server/pregenerated-concrete-paths.js +12 -6
  535. package/dist/server/prerender-cache-life-header.d.ts +3 -4
  536. package/dist/server/prerender-manifest.d.ts +11 -11
  537. package/dist/server/prerender-manifest.js +6 -3
  538. package/dist/server/prerender-route-params.d.ts +16 -9
  539. package/dist/server/prerender-route-params.js +18 -3
  540. package/dist/server/prerender-work-unit-setup.d.ts +2 -3
  541. package/dist/server/prerender-work-unit-setup.js +5 -5
  542. package/dist/server/prod-server.d.ts +12 -9
  543. package/dist/server/prod-server.js +124 -31
  544. package/dist/server/proxy-trust.d.ts +5 -6
  545. package/dist/server/request-log.d.ts +3 -4
  546. package/dist/server/request-pipeline.d.ts +16 -16
  547. package/dist/server/request-pipeline.js +7 -2
  548. package/dist/server/request-stage.d.ts +5 -0
  549. package/dist/server/request-stage.js +7 -0
  550. package/dist/server/request-tracing.d.ts +22 -0
  551. package/dist/server/request-tracing.js +180 -0
  552. package/dist/server/response-stage-cacheability.d.ts +37 -0
  553. package/dist/server/response-stage-cacheability.js +55 -0
  554. package/dist/server/response-stage-policy.d.ts +23 -0
  555. package/dist/server/response-stage-policy.js +89 -0
  556. package/dist/server/response-stage.d.ts +5 -0
  557. package/dist/server/response-stage.js +7 -0
  558. package/dist/server/response-start-tracing.d.ts +14 -0
  559. package/dist/server/response-start-tracing.js +80 -0
  560. package/dist/server/revalidation-host.d.ts +2 -3
  561. package/dist/server/revalidation-host.js +1 -1
  562. package/dist/server/revalidation-request.d.ts +8 -0
  563. package/dist/server/revalidation-request.js +37 -0
  564. package/dist/server/rsc-completion-metadata.d.ts +6 -7
  565. package/dist/server/rsc-stream-hints.d.ts +18 -7
  566. package/dist/server/rsc-stream-hints.js +70 -35
  567. package/dist/server/seed-cache.d.ts +2 -3
  568. package/dist/server/seed-cache.js +8 -7
  569. package/dist/server/server-action-not-found.d.ts +5 -6
  570. package/dist/server/server-globals.d.ts +2 -3
  571. package/dist/server/skip-cache-proof.d.ts +4 -4
  572. package/dist/server/socket-error-backstop.d.ts +5 -6
  573. package/dist/server/socket-error-backstop.js +1 -1
  574. package/dist/server/static-file-cache.d.ts +5 -6
  575. package/dist/server/static-file-cache.js +9 -7
  576. package/dist/server/static-file-signal.d.ts +9 -6
  577. package/dist/server/static-file-signal.js +51 -2
  578. package/dist/server/static-layout-client-reuse-proof.d.ts +4 -5
  579. package/dist/server/streaming-metadata.d.ts +2 -3
  580. package/dist/server/tracer.d.ts +5 -0
  581. package/dist/server/tracer.js +13 -0
  582. package/dist/server/worker-prerender-discovery.d.ts +5 -6
  583. package/dist/server/worker-revalidation-context.d.ts +2 -3
  584. package/dist/server/worker-revalidation-context.js +5 -5
  585. package/dist/server/worker-stages.d.ts +43 -0
  586. package/dist/server/worker-stages.js +25 -0
  587. package/dist/server/worker-utils.d.ts +5 -6
  588. package/dist/server/worker-utils.js +2 -1
  589. package/dist/server/workers-tracing.d.ts +17 -0
  590. package/dist/server/workers-tracing.js +27 -0
  591. package/dist/shims/amp.d.ts +3 -4
  592. package/dist/shims/app-router-scroll-state.d.ts +9 -10
  593. package/dist/shims/app-router-scroll.d.ts +4 -5
  594. package/dist/shims/app-router-scroll.js +2 -1
  595. package/dist/shims/app.d.ts +5 -6
  596. package/dist/shims/before-interactive-context.d.ts +5 -6
  597. package/dist/shims/cache-callable-runtime.d.ts +44 -4
  598. package/dist/shims/cache-callable-runtime.js +168 -8
  599. package/dist/shims/cache-for-request.d.ts +2 -3
  600. package/dist/shims/cache-handler.d.ts +33 -20
  601. package/dist/shims/cache-handler.js +61 -2
  602. package/dist/shims/cache-request-state.d.ts +28 -29
  603. package/dist/shims/cache-runtime.d.ts +23 -21
  604. package/dist/shims/cache-runtime.js +107 -27
  605. package/dist/shims/cache.d.ts +15 -15
  606. package/dist/shims/cache.js +15 -13
  607. package/dist/shims/cacheability-classification.d.ts +49 -28
  608. package/dist/shims/cacheability-classification.js +27 -12
  609. package/dist/shims/cdn-cache-state.d.ts +13 -0
  610. package/dist/shims/cdn-cache-state.js +23 -0
  611. package/dist/shims/cdn-cache.d.ts +50 -21
  612. package/dist/shims/cdn-cache.js +15 -38
  613. package/dist/shims/client-hook-error.d.ts +3 -4
  614. package/dist/shims/client-locale.d.ts +2 -3
  615. package/dist/shims/client-page-root.d.ts +24 -0
  616. package/dist/shims/client-page-root.js +121 -0
  617. package/dist/shims/compat-router.d.ts +2 -3
  618. package/dist/shims/config.d.ts +3 -4
  619. package/dist/shims/constants.d.ts +73 -74
  620. package/dist/shims/constants.js +1 -1
  621. package/dist/shims/default-not-found.d.ts +2 -3
  622. package/dist/shims/document.d.ts +9 -9
  623. package/dist/shims/dynamic-preload-chunks.d.ts +2 -3
  624. package/dist/shims/dynamic-preload-chunks.js +17 -13
  625. package/dist/shims/dynamic.d.ts +3 -3
  626. package/dist/shims/error-boundary-navigation.d.ts +3 -4
  627. package/dist/shims/error-boundary.d.ts +17 -18
  628. package/dist/shims/error-boundary.js +17 -11
  629. package/dist/shims/error.d.ts +4 -4
  630. package/dist/shims/error.react-server.d.ts +3 -4
  631. package/dist/shims/fetch-cache.d.ts +22 -22
  632. package/dist/shims/fetch-cache.js +42 -17
  633. package/dist/shims/font-google-base.d.ts +9 -9
  634. package/dist/shims/font-google-base.js +2 -1
  635. package/dist/shims/font-local.d.ts +3 -3
  636. package/dist/shims/font-local.js +1 -1
  637. package/dist/shims/font-utils.d.ts +14 -15
  638. package/dist/shims/form.d.ts +2 -2
  639. package/dist/shims/form.js +10 -7
  640. package/dist/shims/hash-scroll.d.ts +5 -6
  641. package/dist/shims/head-state.d.ts +4 -5
  642. package/dist/shims/head.d.ts +16 -16
  643. package/dist/shims/head.js +5 -4
  644. package/dist/shims/headers.d.ts +67 -33
  645. package/dist/shims/headers.js +93 -6
  646. package/dist/shims/i18n-context.d.ts +5 -6
  647. package/dist/shims/i18n-state.d.ts +4 -5
  648. package/dist/shims/image-config.d.ts +5 -6
  649. package/dist/shims/image-config.js +2 -0
  650. package/dist/shims/image.d.ts +5 -5
  651. package/dist/shims/image.js +12 -8
  652. package/dist/shims/internal/als-registry.d.ts +4 -5
  653. package/dist/shims/internal/api-utils.d.ts +3 -4
  654. package/dist/shims/internal/app-page-props-cache-key.d.ts +32 -4
  655. package/dist/shims/internal/app-page-props-cache-key.js +53 -1
  656. package/dist/shims/internal/app-prefetch-fetch-queue.d.ts +5 -6
  657. package/dist/shims/internal/app-prefetch-rsc-request.d.ts +5 -17
  658. package/dist/shims/internal/app-prefetch-rsc-request.js +5 -14
  659. package/dist/shims/internal/app-route-detection.d.ts +2 -2
  660. package/dist/shims/internal/app-route-prefetch-policy.d.ts +5 -8
  661. package/dist/shims/internal/app-route-prefetch-policy.js +0 -1
  662. package/dist/shims/internal/app-router-context.d.ts +9 -10
  663. package/dist/shims/internal/cookie-serialize.d.ts +4 -5
  664. package/dist/shims/internal/format-url-object.d.ts +7 -0
  665. package/dist/shims/internal/format-url-object.js +53 -0
  666. package/dist/shims/internal/hybrid-client-route-owner-direct.d.ts +6 -7
  667. package/dist/shims/internal/hybrid-client-route-owner.d.ts +3 -3
  668. package/dist/shims/internal/hybrid-client-route-owner.js +3 -2
  669. package/dist/shims/internal/interpolate-as.d.ts +5 -6
  670. package/dist/shims/internal/interpolate-as.js +4 -2
  671. package/dist/shims/internal/link-status-registry.d.ts +5 -6
  672. package/dist/shims/internal/make-hanging-promise.d.ts +3 -4
  673. package/dist/shims/internal/navigation-untracked.d.ts +2 -3
  674. package/dist/shims/internal/normalize-router-href.d.ts +15 -0
  675. package/dist/shims/internal/normalize-router-href.js +41 -0
  676. package/dist/shims/internal/pages-data-fetch-dedup.d.ts +8 -9
  677. package/dist/shims/internal/pages-data-target.d.ts +8 -6
  678. package/dist/shims/internal/pages-data-target.js +32 -36
  679. package/dist/shims/internal/pages-data-url.d.ts +4 -5
  680. package/dist/shims/internal/pages-data-url.js +2 -1
  681. package/dist/shims/internal/pages-router-accessor.d.ts +3 -4
  682. package/dist/shims/internal/pages-router-components.d.ts +3 -4
  683. package/dist/shims/internal/route-pattern-for-warning.d.ts +5 -6
  684. package/dist/shims/internal/route-pattern-for-warning.js +3 -3
  685. package/dist/shims/internal/router-context.d.ts +2 -3
  686. package/dist/shims/internal/thenable-well-known-properties.d.ts +10 -0
  687. package/dist/shims/internal/thenable-well-known-properties.js +33 -0
  688. package/dist/shims/internal/utils.d.ts +7 -8
  689. package/dist/shims/internal/work-unit-async-storage.d.ts +10 -11
  690. package/dist/shims/layout-segment-context.d.ts +3 -4
  691. package/dist/shims/link-prefetch.d.ts +9 -10
  692. package/dist/shims/link.d.ts +4 -4
  693. package/dist/shims/link.js +56 -116
  694. package/dist/shims/metadata.d.ts +15 -16
  695. package/dist/shims/metadata.js +40 -36
  696. package/dist/shims/navigation-context-accessors.d.ts +9 -0
  697. package/dist/shims/navigation-context-accessors.js +19 -0
  698. package/dist/shims/navigation-context-state.d.ts +27 -18
  699. package/dist/shims/navigation-errors.d.ts +18 -19
  700. package/dist/shims/navigation-state.d.ts +6 -7
  701. package/dist/shims/navigation.d.ts +80 -68
  702. package/dist/shims/navigation.js +24 -16
  703. package/dist/shims/navigation.react-server.d.ts +9 -9
  704. package/dist/shims/offline.d.ts +2 -3
  705. package/dist/shims/og.d.ts +2 -2
  706. package/dist/shims/pages-router-runtime.d.ts +4 -5
  707. package/dist/shims/ppr-fallback-shell.d.ts +13 -14
  708. package/dist/shims/readonly-url-search-params.d.ts +2 -3
  709. package/dist/shims/request-context.d.ts +5 -6
  710. package/dist/shims/root-params.d.ts +14 -15
  711. package/dist/shims/router-state.d.ts +5 -6
  712. package/dist/shims/router-state.js +1 -1
  713. package/dist/shims/router.d.ts +22 -21
  714. package/dist/shims/router.js +339 -164
  715. package/dist/shims/script-nonce-context.d.ts +8 -6
  716. package/dist/shims/script-nonce-context.js +15 -6
  717. package/dist/shims/script.d.ts +4 -4
  718. package/dist/shims/script.js +9 -7
  719. package/dist/shims/search-params-gate.d.ts +35 -0
  720. package/dist/shims/search-params-gate.js +32 -0
  721. package/dist/shims/server.d.ts +19 -51
  722. package/dist/shims/server.js +14 -28
  723. package/dist/shims/slot.d.ts +33 -15
  724. package/dist/shims/slot.js +41 -9
  725. package/dist/shims/streamed-icons.d.ts +3 -4
  726. package/dist/shims/thenable-params.d.ts +5 -7
  727. package/dist/shims/thenable-params.js +3 -24
  728. package/dist/shims/unified-request-context.d.ts +34 -31
  729. package/dist/shims/unified-request-context.js +34 -24
  730. package/dist/shims/unrecognized-action-error.d.ts +3 -4
  731. package/dist/shims/url-safety.d.ts +5 -6
  732. package/dist/shims/url-utils.d.ts +12 -13
  733. package/dist/shims/use-merged-ref.d.ts +2 -3
  734. package/dist/shims/user-agent.d.ts +31 -0
  735. package/dist/shims/user-agent.js +16 -0
  736. package/dist/shims/web-vitals.d.ts +2 -2
  737. package/dist/typegen.d.ts +3 -4
  738. package/dist/utils/asset-prefix.d.ts +7 -8
  739. package/dist/utils/base-path.d.ts +5 -6
  740. package/dist/utils/built-asset-url.d.ts +2 -3
  741. package/dist/utils/built-asset-url.js +1 -1
  742. package/dist/utils/cache-control-metadata.d.ts +4 -5
  743. package/dist/utils/client-build-manifest.d.ts +6 -7
  744. package/dist/utils/client-build-manifest.js +2 -1
  745. package/dist/utils/client-entry-manifest.d.ts +6 -7
  746. package/dist/utils/client-runtime-metadata.d.ts +8 -3
  747. package/dist/utils/client-runtime-metadata.js +18 -1
  748. package/dist/utils/commonjs-loader.d.ts +4 -5
  749. package/dist/utils/compare.d.ts +2 -3
  750. package/dist/utils/deployment-id.d.ts +6 -7
  751. package/dist/utils/dev-error-recovery-event.d.ts +2 -3
  752. package/dist/utils/dev-stack-sourcemap-endpoint.d.ts +2 -3
  753. package/dist/utils/domain-locale.d.ts +7 -8
  754. package/dist/utils/encode-cache-tag.d.ts +3 -4
  755. package/dist/utils/error-cause.d.ts +2 -3
  756. package/dist/utils/external-url.d.ts +2 -3
  757. package/dist/utils/has-trailing-comma.d.ts +3 -4
  758. package/dist/utils/hash.d.ts +3 -4
  759. package/dist/utils/html-limited-bots.d.ts +3 -4
  760. package/dist/utils/lazy-chunks.d.ts +8 -9
  761. package/dist/utils/lazy-chunks.js +4 -4
  762. package/dist/utils/manifest-paths.d.ts +5 -6
  763. package/dist/utils/mdx-scan.d.ts +11 -4
  764. package/dist/utils/mdx-scan.js +27 -1
  765. package/dist/utils/middleware-request-headers.d.ts +7 -6
  766. package/dist/utils/middleware-request-headers.js +6 -1
  767. package/dist/utils/navigation-signal.d.ts +3 -3
  768. package/dist/utils/navigation-signal.js +16 -1
  769. package/dist/utils/number.d.ts +2 -3
  770. package/dist/utils/package-name.d.ts +3 -4
  771. package/dist/utils/parse-cookie.d.ts +4 -5
  772. package/dist/utils/path.d.ts +8 -9
  773. package/dist/utils/plugin-options.d.ts +2 -3
  774. package/dist/utils/precompressed-variant.d.ts +3 -4
  775. package/dist/utils/prerender-output-paths.d.ts +4 -5
  776. package/dist/utils/project.d.ts +19 -30
  777. package/dist/utils/project.js +20 -29
  778. package/dist/utils/promise.d.ts +2 -3
  779. package/dist/utils/protocol-headers.d.ts +14 -15
  780. package/dist/utils/public-file-path.d.ts +2 -3
  781. package/dist/utils/public-routes.d.ts +2 -3
  782. package/dist/utils/query.d.ts +14 -9
  783. package/dist/utils/query.js +22 -1
  784. package/dist/utils/react-compiler-support.d.ts +6 -7
  785. package/dist/utils/react-version.d.ts +4 -3
  786. package/dist/utils/react-version.js +19 -1
  787. package/dist/utils/record.d.ts +2 -3
  788. package/dist/utils/redirect-digest.d.ts +3 -4
  789. package/dist/utils/regex-safety.d.ts +4 -5
  790. package/dist/utils/regex.d.ts +2 -3
  791. package/dist/utils/safe-json-file.d.ts +2 -3
  792. package/dist/utils/sorted-array.d.ts +2 -3
  793. package/dist/utils/text-stream.d.ts +3 -4
  794. package/dist/utils/vinext-root.d.ts +2 -3
  795. package/dist/utils/virtual-module.d.ts +3 -4
  796. package/dist/utils/vite-cli-invocation.d.ts +21 -0
  797. package/dist/utils/vite-cli-invocation.js +144 -0
  798. package/dist/utils/vite-version.d.ts +5 -6
  799. package/next-package.json +4 -0
  800. package/package.json +47 -6
@@ -1,11 +1,12 @@
1
- import { consumeDynamicUsage, consumeInvalidDynamicUsageError } from "../shims/headers.js";
1
+ import { consumeDynamicUsage, consumeInvalidDynamicUsageError, isRenderDynamicLatched } from "../shims/headers.js";
2
2
  import { _consumeRequestScopedCacheLife } from "../shims/cache-request-state.js";
3
3
  import { getCollectedFetchTags } from "../shims/fetch-cache.js";
4
4
  import { readStreamAsText } from "../utils/text-stream.js";
5
5
  import { buildAppPageFontLinkHeader, teeAppPageRscStreamForCapture } from "./app-page-execution.js";
6
+ import { recordAppPageRenderError, traceAppPageRender } from "./app-page-tracing.js";
6
7
  import { buildAppPageTags } from "./implicit-tags.js";
7
8
  import { consumeAppPageRenderObservationState, createAppPageHtmlOutputScope, createAppPageRenderObservation, createAppPageRscOutputScope } from "./app-page-render-observation.js";
8
- import { buildAppPageLinkHeader, isAppSsrRenderResult } from "./app-page-stream.js";
9
+ import { buildAppPageLinkHeader, createAppPageSsrErrorHandler, isAppSsrRenderResult } from "./app-page-stream.js";
9
10
  //#region src/server/app-page-cache-render.ts
10
11
  /**
11
12
  * Render an App page element to HTML (and optionally its RSC payload) for cache
@@ -14,7 +15,14 @@ import { buildAppPageLinkHeader, isAppSsrRenderResult } from "./app-page-stream.
14
15
  * shell regeneration.
15
16
  */
16
17
  async function renderAppPageCacheArtifacts(options) {
17
- const rscCapture = teeAppPageRscStreamForCapture(options.renderToReadableStream(options.element, { onError: options.onError }), options.captureRscData);
18
+ return traceAppPageRender(options.route.pattern, "prerender", (renderSpan) => renderAppPageCacheArtifactsImpl(options, renderSpan));
19
+ }
20
+ async function renderAppPageCacheArtifactsImpl(options, renderSpan) {
21
+ const rscStream = options.renderToReadableStream(options.element, { onError(error, requestInfo, errorContext) {
22
+ recordAppPageRenderError(renderSpan, error);
23
+ return options.onError(error, requestInfo, errorContext);
24
+ } });
25
+ const rscCapture = teeAppPageRscStreamForCapture(rscStream, options.captureRscData);
18
26
  const capturedRscDataRef = { value: null };
19
27
  const fontPreloads = options.getFontPreloads();
20
28
  const htmlResult = await (await options.loadSsrHandler()).handleSsr(rscCapture.ssrStream, options.getNavigationContext(), {
@@ -29,13 +37,21 @@ async function renderAppPageCacheArtifacts(options) {
29
37
  waitForAllReady: options.waitForAllReady,
30
38
  isStaticGeneration: true,
31
39
  isForceStatic: options.isForceStatic,
40
+ onSsrError: options.onSsrError && options.isCapturedRscError ? createAppPageSsrErrorHandler((error) => {
41
+ recordAppPageRenderError(renderSpan, error);
42
+ return options.onSsrError?.(error);
43
+ }, options.isCapturedRscError) : options.onSsrError ? (error) => {
44
+ recordAppPageRenderError(renderSpan, error);
45
+ return options.onSsrError?.(error);
46
+ } : void 0,
32
47
  ...rscCapture.sideStream ? {
33
48
  sideStream: rscCapture.sideStream,
34
49
  capturedRscDataRef
35
50
  } : {}
36
51
  });
37
52
  const htmlStream = isAppSsrRenderResult(htmlResult) ? htmlResult.htmlStream : htmlResult;
38
- const linkHeader = buildAppPageLinkHeader(isAppSsrRenderResult(htmlResult) ? htmlResult.linkHeader : void 0, buildAppPageFontLinkHeader(fontPreloads), options.reactMaxHeadersLength);
53
+ const reactLinkHeader = isAppSsrRenderResult(htmlResult) ? htmlResult.linkHeader : void 0;
54
+ const linkHeader = buildAppPageLinkHeader(reactLinkHeader, buildAppPageFontLinkHeader(fontPreloads), options.reactMaxHeadersLength);
39
55
  const html = await readStreamAsText(htmlStream);
40
56
  let rscData;
41
57
  if (options.captureRscData) {
@@ -47,7 +63,7 @@ async function renderAppPageCacheArtifacts(options) {
47
63
  const tags = buildAppPageTags(options.cleanPathname, getCollectedFetchTags(), options.route.routeSegments);
48
64
  const observationState = consumeAppPageRenderObservationState();
49
65
  consumeInvalidDynamicUsageError();
50
- consumeDynamicUsage();
66
+ const usedDynamicApi = consumeDynamicUsage() || isRenderDynamicLatched();
51
67
  const result = {
52
68
  html,
53
69
  htmlRenderObservation: createAppPageRenderObservation({
@@ -67,6 +83,7 @@ async function renderAppPageCacheArtifacts(options) {
67
83
  }),
68
84
  ...linkHeader ? { linkHeader } : {},
69
85
  tags,
86
+ usedDynamicApi,
70
87
  cacheControl: typeof cacheLife?.revalidate === "number" ? {
71
88
  revalidate: cacheLife.revalidate,
72
89
  expire: cacheLife.expire,
@@ -8,7 +8,7 @@ type AppPageDebugLogger = (event: string, detail: string) => void;
8
8
  type AppPageCacheGetter = (key: string) => Promise<ISRCacheEntry | null>;
9
9
  type AppPageBackgroundRegenerator = (key: string, renderFn: () => Promise<void>) => void;
10
10
  type AppPageRscCacheKeyBuilder = (pathname: string, mountedSlotsHeader?: string | null, renderMode?: AppRscRenderMode, interceptionContext?: string | null, interceptionId?: string | null) => string;
11
- type AppPageCacheOutcomeMetric = Readonly<{
11
+ export type AppPageCacheOutcomeMetric = Readonly<{
12
12
  artifact: "html" | "rsc";
13
13
  /**
14
14
  * Internal cache lookup key for debugging and tests. Runtime telemetry sinks should hash or
@@ -22,11 +22,18 @@ type AppPageCacheOutcomeRecorder = (metric: AppPageCacheOutcomeMetric) => void;
22
22
  type AppPageCacheRenderResult = {
23
23
  cacheControl?: CacheControlMetadata;
24
24
  html: string;
25
- htmlRenderObservation?: RenderObservation;
25
+ htmlRenderObservation: RenderObservation;
26
26
  linkHeader?: string;
27
27
  rscData: ArrayBuffer;
28
- rscRenderObservation?: RenderObservation;
28
+ rscRenderObservation: RenderObservation;
29
+ /**
30
+ * The route-level revalidate of the route this render regenerated, or null
31
+ * when it has none and the render's cacheLife sets it. Undefined keeps the
32
+ * matched route's read seed, as when the render regenerated that route.
33
+ */
34
+ revalidateSeconds?: number | null;
29
35
  tags: string[];
36
+ usedDynamicApi: boolean;
30
37
  };
31
38
  type BuildAppPageCachedResponseOptions = {
32
39
  cacheControl?: CacheControlMetadata;
@@ -37,12 +44,17 @@ type BuildAppPageCachedResponseOptions = {
37
44
  middlewareHeaders?: Headers | null;
38
45
  middlewareStatus?: number | null;
39
46
  mountedSlotsHeader?: string | null;
47
+ /** The current request's route params, which the client reads on RSC responses. */
48
+ params?: Record<string, string | string[]>;
49
+ /** The current request's path and query, which the client reads on RSC responses. */
50
+ renderedPathAndSearch?: string | null;
40
51
  revalidateSeconds: number;
41
52
  };
42
53
  type ReadAppPageCacheResponseOptions = {
43
54
  cleanPathname: string;
44
55
  clearRequestContext: () => void;
45
56
  isEdgeRuntime?: boolean;
57
+ isRoutePPREnabled?: boolean;
46
58
  isRscRequest: boolean;
47
59
  isrDebug?: AppPageDebugLogger;
48
60
  isrGet: AppPageCacheGetter;
@@ -55,7 +67,14 @@ type ReadAppPageCacheResponseOptions = {
55
67
  middlewareHeaders?: Headers | null;
56
68
  middlewareStatus?: number | null;
57
69
  mountedSlotsHeader?: string | null;
70
+ /**
71
+ * Resolves the current request's route params for a cached RSC response.
72
+ * Called only once an entry can answer the request, since resolving them
73
+ * may load route modules.
74
+ */
75
+ resolveParams?: () => Promise<Record<string, string | string[]>>;
58
76
  recordCacheOutcome?: AppPageCacheOutcomeRecorder;
77
+ renderedPathAndSearch?: string | null;
59
78
  renderMode?: AppRscRenderMode;
60
79
  expireSeconds?: number;
61
80
  revalidateSeconds: number;
@@ -75,10 +94,10 @@ type ReadAppPageFallbackShellCacheResponseOptions = {
75
94
  revalidateSeconds: number;
76
95
  rewriteHtml: (html: string) => string;
77
96
  };
78
- declare function buildAppPageCacheTags(pathname: string, extraTags: readonly string[]): string[];
79
- declare function buildAppRouteCacheTags(pathname: string, extraTags: readonly string[], routeSegments: readonly string[]): string[];
80
- declare function buildAppPageCachedResponse(cachedValue: CachedAppPageValue, options: BuildAppPageCachedResponseOptions): Response | null;
81
- declare function readAppPageCacheResponse(options: ReadAppPageCacheResponseOptions): Promise<Response | null>;
82
- declare function readAppPageFallbackShellCacheResponse(options: ReadAppPageFallbackShellCacheResponseOptions): Promise<Response | null>;
97
+ export declare function buildAppPageCacheTags(pathname: string, extraTags: readonly string[]): string[];
98
+ export declare function buildAppRouteCacheTags(pathname: string, extraTags: readonly string[], routeSegments: readonly string[]): string[];
99
+ export declare function buildAppPageCachedResponse(cachedValue: CachedAppPageValue, options: BuildAppPageCachedResponseOptions): Response | null;
100
+ export declare function readAppPageCacheResponse(options: ReadAppPageCacheResponseOptions): Promise<Response | null>;
101
+ export declare function readAppPageFallbackShellCacheResponse(options: ReadAppPageFallbackShellCacheResponseOptions): Promise<Response | null>;
83
102
  //#endregion
84
- export { AppPageCacheOutcomeMetric, buildAppPageCacheTags, buildAppPageCachedResponse, buildAppRouteCacheTags, finalizeAppPageHtmlCacheResponse, finalizeAppPageRscCacheResponse, readAppPageCacheResponse, readAppPageFallbackShellCacheResponse, scheduleAppPageRscCacheWrite };
103
+ export { finalizeAppPageHtmlCacheResponse, finalizeAppPageRscCacheResponse, scheduleAppPageRscCacheWrite };
@@ -1,15 +1,16 @@
1
- import { VINEXT_MOUNTED_SLOTS_HEADER, VINEXT_RSC_VARY_HEADER } from "./headers.js";
2
- import { resolveClientStaleTimeSeconds } from "../utils/cache-control-metadata.js";
1
+ import { VINEXT_MOUNTED_SLOTS_HEADER, VINEXT_RSC_VARY_HEADER } from "./app-rsc-vary.js";
2
+ import { VINEXT_PARAMS_HEADER, VINEXT_RENDERED_PATH_AND_SEARCH_HEADER } from "./headers.js";
3
3
  import { applyCdnResponseHeaders } from "./cache-control.js";
4
4
  import { decideIsr } from "./isr-decision.js";
5
- import { buildAppPageCacheValue, isrCacheControl } from "./isr-cache.js";
5
+ import { buildAppPageCacheValue, isrCacheControl, resolveRouteExpireSeconds } from "./isr-cache.js";
6
+ import { resolveClientStaleTimeSeconds } from "../utils/cache-control-metadata.js";
6
7
  import { encodeCacheTag } from "../utils/encode-cache-tag.js";
7
8
  import { setCacheStateHeaders } from "./cache-headers.js";
8
9
  import { VINEXT_RSC_CONTENT_TYPE, applyRscCompatibilityIdHeader, applyRscDeploymentIdHeader } from "./app-rsc-cache-busting.js";
9
10
  import { mergeMiddlewareResponseHeaders } from "./middleware-response-headers.js";
10
11
  import { markFrameworkLinkHeaders } from "./app-response-header-provenance.js";
11
12
  import { applyClientStaleTimeHeader, applyEdgeRuntimeHeader } from "./app-page-response.js";
12
- import { hasCompleteNegativeRequestApiProof } from "./cache-proof.js";
13
+ import { hasQueryInvariantRenderProof } from "./cache-proof.js";
13
14
  import { isAppPprDynamicFallbackShellHtml } from "./app-ppr-fallback-shell.js";
14
15
  import { buildPageCacheTags } from "./implicit-tags.js";
15
16
  import { finalizeAppPageHtmlCacheResponse, finalizeAppPageRscCacheResponse, scheduleAppPageRscCacheWrite } from "./app-page-cache-finalizer.js";
@@ -49,28 +50,44 @@ function buildAppPageCachedHeaders(options) {
49
50
  applyCdnResponseHeaders(headers, { cacheControl: options.cacheControl });
50
51
  setCacheStateHeaders(headers, options.cacheState);
51
52
  applyEdgeRuntimeHeader(headers, options.isEdgeRuntime);
53
+ if (options.params && Object.keys(options.params).length > 0) headers.set(VINEXT_PARAMS_HEADER, encodeURIComponent(JSON.stringify(options.params)));
52
54
  if (options.mountedSlotsHeader) headers.set(VINEXT_MOUNTED_SLOTS_HEADER, options.mountedSlotsHeader);
53
55
  applyClientStaleTimeHeader(headers, options.staleTimeSeconds);
54
56
  mergeMiddlewareResponseHeaders(headers, options.middlewareHeaders ?? null);
55
- if (options.linkHeader) if (Array.isArray(options.linkHeader)) for (const value of options.linkHeader) headers.append("Link", value);
56
- else headers.append("Link", options.linkHeader);
57
+ if (options.linkHeader) {
58
+ if (Array.isArray(options.linkHeader)) for (const value of options.linkHeader) headers.append("Link", value);
59
+ else headers.append("Link", options.linkHeader);
60
+ }
57
61
  return headers;
58
62
  }
59
63
  function getCachedAppPageValue(entry) {
60
64
  return entry?.value.value && entry.value.value.kind === "APP_PAGE" ? entry.value.value : null;
61
65
  }
62
- function hasQueryInvariantAppPageProof(cachedValue) {
63
- return cachedValue.renderObservation !== void 0 && hasCompleteNegativeRequestApiProof(cachedValue.renderObservation, ["searchParams"]);
64
- }
65
66
  function resolveRegeneratedAppPageCacheControl(options) {
66
- let revalidateSeconds = options.routeRevalidateSeconds;
67
67
  const renderRevalidateSeconds = options.renderCacheControl?.revalidate;
68
- if (typeof renderRevalidateSeconds === "number") revalidateSeconds = revalidateSeconds > 0 ? Math.min(revalidateSeconds, renderRevalidateSeconds) : renderRevalidateSeconds;
68
+ let revalidateSeconds;
69
+ if (typeof renderRevalidateSeconds === "number") revalidateSeconds = options.routeRevalidateSeconds === null ? renderRevalidateSeconds : Math.min(options.routeRevalidateSeconds, renderRevalidateSeconds);
70
+ else revalidateSeconds = options.routeRevalidateSeconds ?? 0;
69
71
  return isrCacheControl(revalidateSeconds, {
70
- expireSeconds: options.renderCacheControl?.expire ?? options.expireSeconds,
72
+ expireSeconds: options.renderCacheControl?.expire ?? resolveRouteExpireSeconds(revalidateSeconds, options.expireSeconds),
71
73
  staleSeconds: resolveClientStaleTimeSeconds(options.renderCacheControl)
72
74
  });
73
75
  }
76
+ /**
77
+ * When a regeneration fails, Next.js re-stores the previous entry with a short
78
+ * revalidate so it isn't retried on every request
79
+ * (`server/response-cache/index.ts`). `revalidate = false`, which vinext holds
80
+ * as Infinity, retries after 3 s like Next.js's `revalidate || 3`.
81
+ */
82
+ function resolveRegenerationFailureCacheControl(previous) {
83
+ const previousRevalidate = typeof previous.revalidate === "number" && Number.isFinite(previous.revalidate) ? previous.revalidate : 0;
84
+ const revalidate = Math.min(Math.max(previousRevalidate || 3, 3), 30);
85
+ return {
86
+ revalidate,
87
+ ...previous.expire === void 0 ? {} : { expire: Math.max(revalidate + 3, previous.expire) },
88
+ ...previous.stale === void 0 ? {} : { stale: previous.stale }
89
+ };
90
+ }
74
91
  function buildAppPageCachedResponse(cachedValue, options) {
75
92
  const status = options.middlewareStatus ?? (cachedValue.status || 200);
76
93
  const { cacheControl } = decideIsr({
@@ -90,8 +107,10 @@ function buildAppPageCachedResponse(cachedValue, options) {
90
107
  isEdgeRuntime: options.isEdgeRuntime,
91
108
  middlewareHeaders: options.middlewareHeaders,
92
109
  mountedSlotsHeader: options.mountedSlotsHeader,
110
+ params: options.params,
93
111
  staleTimeSeconds
94
112
  });
113
+ if (options.renderedPathAndSearch) rscHeaders.set(VINEXT_RENDERED_PATH_AND_SEARCH_HEADER, encodeURIComponent(options.renderedPathAndSearch));
95
114
  applyRscCompatibilityIdHeader(rscHeaders);
96
115
  applyRscDeploymentIdHeader(rscHeaders);
97
116
  return new Response(cachedValue.rscData, {
@@ -150,6 +169,16 @@ async function readAppPageCacheResponse(options) {
150
169
  }
151
170
  const isrKey = options.isRscRequest ? options.isrRscKey(options.cleanPathname, null, options.renderMode, options.interceptionContext, options.interceptionId) : options.isrHtmlKey(options.cleanPathname);
152
171
  const artifact = options.isRscRequest ? "rsc" : "html";
172
+ let paramsFailure;
173
+ const resolveCachedResponseParams = async (cachedValue) => {
174
+ if (!options.isRscRequest || !cachedValue.rscData) return void 0;
175
+ try {
176
+ return await options.resolveParams?.();
177
+ } catch (error) {
178
+ paramsFailure = { error };
179
+ throw error;
180
+ }
181
+ };
153
182
  try {
154
183
  const cached = await options.isrGet(isrKey);
155
184
  const cachedValue = getCachedAppPageValue(cached);
@@ -173,7 +202,7 @@ async function readAppPageCacheResponse(options) {
173
202
  options.isrDebug?.("MISS (non app-page cache entry)", options.cleanPathname);
174
203
  return null;
175
204
  }
176
- if (cachedValue && options.hasRequestSearchParams === true && !hasQueryInvariantAppPageProof(cachedValue)) {
205
+ if (cachedValue && options.hasRequestSearchParams === true && cachedValue.prerendered !== true && !hasQueryInvariantRenderProof(cachedValue.renderObservation)) {
177
206
  recordAppPageCacheOutcome(options.recordCacheOutcome, {
178
207
  artifact,
179
208
  cacheKey: isrKey,
@@ -193,6 +222,8 @@ async function readAppPageCacheResponse(options) {
193
222
  middlewareHeaders: options.middlewareHeaders,
194
223
  middlewareStatus: options.middlewareStatus,
195
224
  mountedSlotsHeader: options.mountedSlotsHeader,
225
+ params: await resolveCachedResponseParams(cachedValue),
226
+ renderedPathAndSearch: options.renderedPathAndSearch,
196
227
  revalidateSeconds: options.revalidateSeconds
197
228
  });
198
229
  if (hitResponse) {
@@ -215,23 +246,60 @@ async function readAppPageCacheResponse(options) {
215
246
  options.isrDebug?.("MISS (empty cached entry)", options.cleanPathname);
216
247
  }
217
248
  if (cached?.isStale && cachedValue) {
218
- options.scheduleBackgroundRegeneration(isrKey, async () => {
249
+ const keepPreviousEntry = async (key, previous) => {
250
+ const previousValue = getCachedAppPageValue(previous);
251
+ const previousCacheControl = previous.value.cacheControl;
252
+ const previousTags = previousValue?.renderObservation?.cacheTags;
253
+ if (!previousValue || !previousCacheControl || !previousTags || previous.isExpired) return;
254
+ try {
255
+ const current = await options.isrGet(key);
256
+ if (!current || current.value.lastModified === previous.value.lastModified) await options.isrSet(key, previousValue, {
257
+ cacheControl: resolveRegenerationFailureCacheControl(previousCacheControl),
258
+ tags: [...previousTags]
259
+ });
260
+ } catch (storeError) {
261
+ console.error(`[vinext] Failed to keep the previous entry for ${key}:`, storeError);
262
+ }
263
+ };
264
+ const regenerate = async () => {
219
265
  const revalidatedPage = await options.renderFreshPageForCache();
220
266
  const cacheControl = resolveRegeneratedAppPageCacheControl({
221
267
  expireSeconds: options.expireSeconds,
222
268
  renderCacheControl: revalidatedPage.cacheControl,
223
- routeRevalidateSeconds: options.revalidateSeconds
269
+ routeRevalidateSeconds: revalidatedPage.revalidateSeconds === void 0 ? options.revalidateSeconds || null : revalidatedPage.revalidateSeconds
224
270
  });
225
- const writes = [options.isrSet(options.isRscRequest ? isrKey : options.isrRscKey(options.cleanPathname, null, options.renderMode, options.interceptionContext, options.interceptionId), buildAppPageCacheValue("", revalidatedPage.rscData, 200, revalidatedPage.rscRenderObservation), {
226
- cacheControl,
227
- tags: revalidatedPage.tags
228
- })];
229
- if (!options.isRscRequest) writes.push(options.isrSet(isrKey, buildAppPageCacheValue(revalidatedPage.html, void 0, 200, revalidatedPage.htmlRenderObservation, revalidatedPage.linkHeader ? { link: revalidatedPage.linkHeader } : void 0), {
230
- cacheControl,
231
- tags: revalidatedPage.tags
232
- }));
233
- await Promise.all(writes);
271
+ if (options.isRoutePPREnabled !== true && (revalidatedPage.usedDynamicApi || cacheControl.revalidate === 0)) throw new Error(`Page changed from static to dynamic at runtime ${options.cleanPathname}
272
+ see more here https://nextjs.org/docs/messages/app-static-to-dynamic-error`);
273
+ if (!hasQueryInvariantRenderProof(revalidatedPage.rscRenderObservation) || !options.isRscRequest && !hasQueryInvariantRenderProof(revalidatedPage.htmlRenderObservation)) {
274
+ options.isrDebug?.("regen write skipped (searchParams not proven unread)", isrKey);
275
+ return;
276
+ }
277
+ const rscKey = options.isRscRequest ? isrKey : options.isrRscKey(options.cleanPathname, null, options.renderMode, options.interceptionContext, options.interceptionId);
278
+ const store = async (key, value) => {
279
+ try {
280
+ await options.isrSet(key, value, {
281
+ cacheControl,
282
+ tags: revalidatedPage.tags
283
+ });
284
+ return true;
285
+ } catch (storeError) {
286
+ console.warn(`[vinext] Failed to update prerender cache for ${key}:`, storeError);
287
+ return false;
288
+ }
289
+ };
290
+ if (!await store(rscKey, buildAppPageCacheValue("", revalidatedPage.rscData, 200, revalidatedPage.rscRenderObservation))) return;
291
+ if (!options.isRscRequest) {
292
+ if (!await store(isrKey, buildAppPageCacheValue(revalidatedPage.html, void 0, 200, revalidatedPage.htmlRenderObservation, revalidatedPage.linkHeader ? { link: revalidatedPage.linkHeader } : void 0))) return;
293
+ }
234
294
  options.isrDebug?.("regen complete", options.cleanPathname);
295
+ };
296
+ options.scheduleBackgroundRegeneration(isrKey, async () => {
297
+ try {
298
+ await regenerate();
299
+ } catch (error) {
300
+ await keepPreviousEntry(isrKey, cached);
301
+ throw error;
302
+ }
235
303
  });
236
304
  const staleResponse = buildAppPageCachedResponse(cachedValue, {
237
305
  cacheState: "STALE",
@@ -242,6 +310,8 @@ async function readAppPageCacheResponse(options) {
242
310
  middlewareHeaders: options.middlewareHeaders,
243
311
  middlewareStatus: options.middlewareStatus,
244
312
  mountedSlotsHeader: options.mountedSlotsHeader,
313
+ params: await resolveCachedResponseParams(cachedValue),
314
+ renderedPathAndSearch: options.renderedPathAndSearch,
245
315
  revalidateSeconds: options.revalidateSeconds
246
316
  });
247
317
  if (staleResponse) {
@@ -273,6 +343,7 @@ async function readAppPageCacheResponse(options) {
273
343
  options.isrDebug?.("MISS (no cache entry)", options.cleanPathname);
274
344
  }
275
345
  } catch (isrReadError) {
346
+ if (paramsFailure) throw paramsFailure.error;
276
347
  recordAppPageCacheOutcome(options.recordCacheOutcome, {
277
348
  artifact,
278
349
  cacheKey: isrKey,
@@ -10,6 +10,7 @@ import { AppPageMiddlewareContext } from "./app-page-response.js";
10
10
  import { AppLayoutParamAccessTracker } from "./app-layout-param-observation.js";
11
11
  import { RootParams } from "../shims/root-params.js";
12
12
  import { AppPageSsrHandler } from "./app-page-stream.js";
13
+ import { AppRenderErrorContextOverrides } from "./app-rsc-error-handler.js";
13
14
  import { AppPageCacheSetter, ISRCacheEntry } from "./isr-cache.js";
14
15
  import { PprFallbackShellState } from "../shims/ppr-fallback-shell.js";
15
16
  import { FetchCacheMode } from "../shims/fetch-cache.js";
@@ -21,14 +22,15 @@ import { ReactFormState } from "react-dom/client";
21
22
  //#region src/server/app-page-dispatch.d.ts
22
23
  type AppPageParams = Record<string, string | string[]>;
23
24
  type AppPageElement = ReactNode | Readonly<Record<string, ReactNode>>;
24
- type AppPageRenderableElement = ReactNode | AppOutgoingElements;
25
- type AppPageBoundaryOnError = (error: unknown, requestInfo: unknown, errorContext: unknown) => unknown;
25
+ export type AppPageRenderableElement = ReactNode | AppOutgoingElements;
26
+ export type AppPageBoundaryOnError = (error: unknown, requestInfo: unknown, errorContext: unknown) => unknown;
26
27
  type AppPageDebugLogger = (event: string, detail: string) => void;
27
28
  type AppPageCacheGetter = (key: string) => Promise<ISRCacheEntry | null>;
28
29
  type AppPageBackgroundRegenerationErrorContext = {
29
30
  routerKind: "App Router";
30
31
  routePath: string;
31
32
  routeType: "render";
33
+ shouldReport?: (error: unknown) => boolean;
32
34
  };
33
35
  type AppPageBackgroundRegenerator = (key: string, renderFn: () => Promise<void>, errorContext?: AppPageBackgroundRegenerationErrorContext) => void;
34
36
  type AppPageDispatchIntercept<TPage = unknown> = {
@@ -86,7 +88,7 @@ type AppPageDispatchSlot = {
86
88
  slotPatternParts?: readonly string[] | null;
87
89
  slotParamNames?: readonly string[] | null;
88
90
  };
89
- type AppPageDispatchRoute = {
91
+ export type AppPageDispatchRoute = {
90
92
  __buildTimeClassifications?: LayoutClassificationOptions["buildTimeClassifications"];
91
93
  __buildTimeReasons?: LayoutClassificationOptions["buildTimeReasons"];
92
94
  error?: AppPageModule | null;
@@ -110,15 +112,15 @@ type AppPageDispatchRoute = {
110
112
  unauthorizedTreePosition?: number | null;
111
113
  unauthorizeds?: readonly (AppPageModule | null | undefined)[];
112
114
  };
113
- type AppPagePprRuntime<TRoute extends AppPageDispatchRoute> = {
115
+ export type AppPagePprRuntime<TRoute extends AppPageDispatchRoute> = {
114
116
  beginFinalRender(state: AppPagePprState): void;
115
117
  getState(): AppPagePprState | null;
116
118
  run<T>(shell: NonNullable<DispatchAppPageOptions<TRoute>["pprFallbackShell"]>, fn: () => T): T;
117
119
  tryServe(options: DispatchAppPageOptions<TRoute>, currentRevalidateSeconds: number | null, isDraftMode: boolean, isForceStatic: boolean, isForceDynamic: boolean): Promise<Response | null>;
118
120
  warm(options: WarmPprFallbackShellCachesOptions): Promise<void>;
119
121
  };
120
- type AppPagePprState = PprFallbackShellState;
121
- type DispatchAppPageOptions<TRoute extends AppPageDispatchRoute> = {
122
+ export type AppPagePprState = PprFallbackShellState;
123
+ export type DispatchAppPageOptions<TRoute extends AppPageDispatchRoute> = {
122
124
  /** Configured basePath (e.g. "/blog"). Used to prefix redirect Locations. */
123
125
  basePath?: string;
124
126
  /** Bypass shared RSC caches when the client-supplied interception context was not verified. */
@@ -136,6 +138,7 @@ type DispatchAppPageOptions<TRoute extends AppPageDispatchRoute> = {
136
138
  */
137
139
  reactMaxHeadersLength?: number;
138
140
  buildPageElement: (route: TRoute, params: AppPageParams, opts: AppPageDispatchInterceptOptions | undefined, searchParams: URLSearchParams, layoutParamAccess?: AppLayoutParamAccessTracker, options?: {
141
+ isForceStatic?: boolean;
139
142
  observeMetadataSearchParamsAccess?: boolean;
140
143
  observePageSearchParamsAccess?: boolean;
141
144
  serveStreamingMetadata?: boolean;
@@ -144,7 +147,7 @@ type DispatchAppPageOptions<TRoute extends AppPageDispatchRoute> = {
144
147
  cleanPathname: string;
145
148
  displayPathname?: string;
146
149
  clearRequestContext: () => void;
147
- createRscOnErrorHandler: (pathname: string, routePath: string) => AppPageBoundaryOnError;
150
+ createRscOnErrorHandler: (pathname: string, routePath: string, overrides?: AppRenderErrorContextOverrides) => AppPageBoundaryOnError;
148
151
  debugClassification?: (layoutId: string, reason: ClassificationReason) => void;
149
152
  draftModeSecret: string;
150
153
  dynamicConfig?: string;
@@ -167,7 +170,13 @@ type DispatchAppPageOptions<TRoute extends AppPageDispatchRoute> = {
167
170
  getFontStyles: () => string[];
168
171
  getNavigationContext: () => NavigationContext | null;
169
172
  getSourceRoute: (sourceRouteIndex: number) => TRoute | undefined;
173
+ /**
174
+ * Whether `generateStaticParams` is exported at or below the route's last
175
+ * dynamic segment (`hasAppPageGenerateStaticParamsAtLastDynamicSegment`).
176
+ */
170
177
  hasGenerateStaticParams: boolean;
178
+ /** Whether any segment of the route exports `generateStaticParams`. */
179
+ hasAnyGenerateStaticParams: boolean;
171
180
  hasCustomGlobalError?: boolean;
172
181
  hasPageDefaultExport: boolean;
173
182
  hasPageModule: boolean;
@@ -175,6 +184,13 @@ type DispatchAppPageOptions<TRoute extends AppPageDispatchRoute> = {
175
184
  htmlLimitedBots?: string;
176
185
  interceptionContext: string | null;
177
186
  isEdgeRuntime?: boolean;
187
+ /**
188
+ * Whether the route's loader tree resolves `runtime = "edge"` (or
189
+ * `"experimental-edge"`), which disables static generation outside
190
+ * `cacheComponents`. Every parallel branch merges at each node, as
191
+ * in Next.js's Turbopack build (`collectAppPageStaticGenerationRuntimes`).
192
+ */
193
+ isStaticGenerationEdgeRuntime?: boolean;
178
194
  isProgressiveActionRender?: boolean;
179
195
  isProduction: boolean;
180
196
  isRscRequest: boolean;
@@ -231,6 +247,13 @@ type DispatchAppPageOptions<TRoute extends AppPageDispatchRoute> = {
231
247
  resolveRouteFetchCacheMode?: (route: TRoute) => FetchCacheMode | null;
232
248
  resolveRouteRevalidateSeconds?: (route: TRoute) => number | null;
233
249
  resolveRouteDynamicConfig?: (route: TRoute) => string | null | undefined;
250
+ /**
251
+ * `isAppPageStaticEligible` for another route, from that route's own segment
252
+ * config, `generateStaticParams`, dynamism and runtime. A direct intercepted
253
+ * RSC response renders its source route, so it takes the source's
254
+ * cacheability.
255
+ */
256
+ resolveRouteStaticEligible: (route: TRoute) => boolean;
234
257
  rootForbiddenModule?: AppPageModule | null;
235
258
  rootNotFoundModule?: AppPageModule | null;
236
259
  rootUnauthorizedModule?: AppPageModule | null;
@@ -246,7 +269,7 @@ type DispatchAppPageOptions<TRoute extends AppPageDispatchRoute> = {
246
269
  }) => void;
247
270
  renderMode?: AppRscRenderMode;
248
271
  };
249
- declare function shouldReadAppPageCache(options: {
272
+ export declare function shouldReadAppPageCache(options: {
250
273
  isProgressiveActionRender: boolean;
251
274
  isDraftMode: boolean;
252
275
  isForceDynamic: boolean;
@@ -255,7 +278,6 @@ declare function shouldReadAppPageCache(options: {
255
278
  revalidateSeconds: number | null;
256
279
  scriptNonce?: string;
257
280
  }): boolean;
258
- declare function hasSearchParams(searchParams: URLSearchParams | null | undefined): boolean;
259
- declare function dispatchAppPage<TRoute extends AppPageDispatchRoute>(options: DispatchAppPageOptions<TRoute>): Promise<Response>;
260
- //#endregion
261
- export { AppPageBoundaryOnError, AppPageDispatchRoute, AppPagePprRuntime, AppPagePprState, AppPageRenderableElement, DispatchAppPageOptions, dispatchAppPage, hasSearchParams, shouldReadAppPageCache };
281
+ export declare function hasSearchParams(searchParams: URLSearchParams | null | undefined): boolean;
282
+ export declare function dispatchAppPage<TRoute extends AppPageDispatchRoute>(options: DispatchAppPageOptions<TRoute>): Promise<Response>;
283
+ //#endregion