vinext 1.0.0-beta.8 → 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 (813) hide show
  1. package/README.md +158 -84
  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 +82 -8
  37. package/dist/build/prerender-paths.js +814 -99
  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 +67 -15
  43. package/dist/build/prerender.js +177 -64
  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 +38 -19
  49. package/dist/build/report.js +73 -4
  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 +7 -8
  62. package/dist/cache/cache-adapters-virtual.d.ts +95 -9
  63. package/dist/cache/cache-adapters-virtual.js +58 -6
  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 -435
  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 -8
  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 +10 -7
  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 +5 -6
  102. package/dist/entries/app-browser-entry.js +3 -2
  103. package/dist/entries/app-rsc-entry.d.ts +12 -3
  104. package/dist/entries/app-rsc-entry.js +530 -55
  105. package/dist/entries/app-rsc-manifest.d.ts +4 -3
  106. package/dist/entries/app-rsc-manifest.js +27 -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 +237 -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 +832 -199
  117. package/dist/init-cloudflare.d.ts +27 -16
  118. package/dist/init-cloudflare.js +754 -113
  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 +20 -5
  191. package/dist/routing/app-router.js +28 -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 +121 -40
  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 +9 -5
  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 +7 -3
  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-browser-visible-commit.js +1 -1
  237. package/dist/server/app-client-reference-preloader.d.ts +2 -3
  238. package/dist/server/app-elements-wire-key.d.ts +25 -0
  239. package/dist/server/app-elements-wire-key.js +69 -0
  240. package/dist/server/app-elements-wire.d.ts +34 -53
  241. package/dist/server/app-elements-wire.js +4 -75
  242. package/dist/server/app-elements.d.ts +5 -5
  243. package/dist/server/app-elements.js +1 -1
  244. package/dist/server/app-fallback-renderer.d.ts +4 -4
  245. package/dist/server/app-fallback-renderer.js +6 -6
  246. package/dist/server/app-fetch-tracing.d.ts +15 -0
  247. package/dist/server/app-fetch-tracing.js +38 -0
  248. package/dist/server/app-history-state.d.ts +26 -27
  249. package/dist/server/app-history-state.js +19 -11
  250. package/dist/server/app-hook-warning-suppression.d.ts +2 -3
  251. package/dist/server/app-hydration-cache-publication.d.ts +3 -4
  252. package/dist/server/app-inline-css-client.d.ts +3 -4
  253. package/dist/server/app-interception-context-header.d.ts +2 -3
  254. package/dist/server/app-layout-param-observation.d.ts +7 -8
  255. package/dist/server/app-metadata-tracing.d.ts +12 -0
  256. package/dist/server/app-metadata-tracing.js +17 -0
  257. package/dist/server/app-middleware.d.ts +15 -7
  258. package/dist/server/app-middleware.js +30 -5
  259. package/dist/server/app-mounted-slots-header.d.ts +2 -3
  260. package/dist/server/app-mounted-slots-header.js +2 -2
  261. package/dist/server/app-optimistic-routing.d.ts +14 -10
  262. package/dist/server/app-optimistic-routing.js +16 -3
  263. package/dist/server/app-page-boundary-render.d.ts +6 -6
  264. package/dist/server/app-page-boundary-render.js +10 -4
  265. package/dist/server/app-page-boundary.d.ts +9 -10
  266. package/dist/server/app-page-boundary.js +2 -1
  267. package/dist/server/app-page-cache-finalizer.d.ts +32 -8
  268. package/dist/server/app-page-cache-finalizer.js +118 -14
  269. package/dist/server/app-page-cache-render.d.ts +8 -5
  270. package/dist/server/app-page-cache-render.js +22 -5
  271. package/dist/server/app-page-cache.d.ts +28 -9
  272. package/dist/server/app-page-cache.js +96 -25
  273. package/dist/server/app-page-dispatch.d.ts +36 -12
  274. package/dist/server/app-page-dispatch.js +188 -63
  275. package/dist/server/app-page-element-builder.d.ts +13 -11
  276. package/dist/server/app-page-element-builder.js +104 -61
  277. package/dist/server/app-page-execution.d.ts +14 -14
  278. package/dist/server/app-page-execution.js +12 -8
  279. package/dist/server/app-page-head.d.ts +19 -16
  280. package/dist/server/app-page-head.js +25 -25
  281. package/dist/server/app-page-http-access-fallback-metadata.d.ts +6 -5
  282. package/dist/server/app-page-http-access-fallback-metadata.js +9 -2
  283. package/dist/server/app-page-method.d.ts +5 -11
  284. package/dist/server/app-page-method.js +2 -9
  285. package/dist/server/app-page-params.d.ts +5 -6
  286. package/dist/server/app-page-ppr-runtime.d.ts +2 -2
  287. package/dist/server/app-page-probe.d.ts +5 -6
  288. package/dist/server/app-page-probe.js +5 -4
  289. package/dist/server/app-page-render-identity.d.ts +4 -5
  290. package/dist/server/app-page-render-observation.d.ts +8 -9
  291. package/dist/server/app-page-render-observation.js +1 -1
  292. package/dist/server/app-page-render.d.ts +42 -6
  293. package/dist/server/app-page-render.js +192 -28
  294. package/dist/server/app-page-request.d.ts +10 -9
  295. package/dist/server/app-page-request.js +16 -12
  296. package/dist/server/app-page-response.d.ts +20 -9
  297. package/dist/server/app-page-response.js +31 -13
  298. package/dist/server/app-page-route-wiring.d.ts +15 -15
  299. package/dist/server/app-page-route-wiring.js +31 -24
  300. package/dist/server/app-page-search-params-observation.d.ts +26 -5
  301. package/dist/server/app-page-search-params-observation.js +42 -6
  302. package/dist/server/app-page-segment-plan.d.ts +2 -3
  303. package/dist/server/app-page-segment-state.d.ts +11 -12
  304. package/dist/server/app-page-stream.d.ts +27 -11
  305. package/dist/server/app-page-stream.js +35 -6
  306. package/dist/server/app-page-tracing.d.ts +33 -0
  307. package/dist/server/app-page-tracing.js +49 -0
  308. package/dist/server/app-pages-bridge.d.ts +6 -6
  309. package/dist/server/app-pages-bridge.js +19 -4
  310. package/dist/server/app-post-middleware-context.d.ts +2 -3
  311. package/dist/server/app-ppr-fallback-shell-render.d.ts +3 -4
  312. package/dist/server/app-ppr-fallback-shell-render.js +3 -2
  313. package/dist/server/app-ppr-fallback-shell.d.ts +6 -7
  314. package/dist/server/app-prerender-endpoints.d.ts +5 -5
  315. package/dist/server/app-prerender-endpoints.js +26 -12
  316. package/dist/server/app-prerender-static-params.d.ts +15 -7
  317. package/dist/server/app-prerender-static-params.js +33 -11
  318. package/dist/server/app-render-dependency.d.ts +14 -13
  319. package/dist/server/app-render-dependency.js +5 -1
  320. package/dist/server/app-request-context.d.ts +3 -4
  321. package/dist/server/app-request-stage-context.d.ts +5 -0
  322. package/dist/server/app-request-stage-context.js +11 -0
  323. package/dist/server/app-request-stage-dispatch.d.ts +25 -0
  324. package/dist/server/app-request-stage-dispatch.js +54 -0
  325. package/dist/server/app-request-stage-independent-entry.d.ts +8 -0
  326. package/dist/server/app-request-stage-independent-entry.js +115 -0
  327. package/dist/server/app-response-header-provenance.d.ts +13 -7
  328. package/dist/server/app-response-header-provenance.js +34 -1
  329. package/dist/server/app-response-stage-entry.d.ts +9 -0
  330. package/dist/server/app-response-stage-entry.js +87 -0
  331. package/dist/server/app-route-handler-cache.d.ts +2 -3
  332. package/dist/server/app-route-handler-cache.js +46 -34
  333. package/dist/server/app-route-handler-dispatch.d.ts +3 -3
  334. package/dist/server/app-route-handler-dispatch.js +75 -57
  335. package/dist/server/app-route-handler-execution.d.ts +18 -13
  336. package/dist/server/app-route-handler-execution.js +189 -25
  337. package/dist/server/app-route-handler-middleware-context.d.ts +8 -0
  338. package/dist/server/app-route-handler-middleware-context.js +15 -0
  339. package/dist/server/app-route-handler-policy.d.ts +22 -10
  340. package/dist/server/app-route-handler-policy.js +19 -4
  341. package/dist/server/app-route-handler-response.d.ts +9 -10
  342. package/dist/server/app-route-handler-response.js +2 -0
  343. package/dist/server/app-route-handler-runtime.d.ts +9 -10
  344. package/dist/server/app-route-handler-runtime.js +20 -16
  345. package/dist/server/app-route-module-loader.d.ts +6 -7
  346. package/dist/server/app-route-request-built-ins.d.ts +3 -4
  347. package/dist/server/app-route-tree-prefetch.d.ts +6 -7
  348. package/dist/server/app-route-tree-prefetch.js +2 -1
  349. package/dist/server/app-router-entry.d.ts +2 -0
  350. package/dist/server/app-router-entry.js +76 -12
  351. package/dist/server/app-rsc-cache-busting.d.ts +47 -22
  352. package/dist/server/app-rsc-cache-busting.js +80 -18
  353. package/dist/server/app-rsc-combined-handler.d.ts +9 -0
  354. package/dist/server/app-rsc-combined-handler.js +11 -0
  355. package/dist/server/app-rsc-embedded-chunks.d.ts +6 -7
  356. package/dist/server/app-rsc-error-handler.d.ts +12 -6
  357. package/dist/server/app-rsc-error-handler.js +15 -6
  358. package/dist/server/app-rsc-errors.d.ts +12 -9
  359. package/dist/server/app-rsc-errors.js +15 -13
  360. package/dist/server/app-rsc-handler.d.ts +33 -6
  361. package/dist/server/app-rsc-handler.js +498 -83
  362. package/dist/server/app-rsc-redirect-flight.d.ts +4 -5
  363. package/dist/server/app-rsc-render-mode.d.ts +8 -9
  364. package/dist/server/app-rsc-request-normalization.d.ts +3 -3
  365. package/dist/server/app-rsc-request-normalization.js +2 -1
  366. package/dist/server/app-rsc-response-finalizer.d.ts +8 -5
  367. package/dist/server/app-rsc-response-finalizer.js +24 -7
  368. package/dist/server/app-rsc-response-stage.d.ts +6 -0
  369. package/dist/server/app-rsc-response-stage.js +251 -0
  370. package/dist/server/app-rsc-route-matching.d.ts +4 -4
  371. package/dist/server/app-rsc-route-matching.js +4 -2
  372. package/dist/server/app-rsc-state-fingerprint.d.ts +3 -4
  373. package/dist/server/app-rsc-vary.d.ts +16 -0
  374. package/dist/server/app-rsc-vary.js +31 -0
  375. package/dist/server/app-segment-config.d.ts +120 -6
  376. package/dist/server/app-segment-config.js +264 -12
  377. package/dist/server/app-server-action-execution.d.ts +16 -12
  378. package/dist/server/app-server-action-execution.js +88 -35
  379. package/dist/server/app-ssr-entry.d.ts +14 -4
  380. package/dist/server/app-ssr-entry.js +64 -17
  381. package/dist/server/app-ssr-error-meta.d.ts +3 -4
  382. package/dist/server/app-ssr-error-meta.js +2 -1
  383. package/dist/server/app-ssr-router-instance.d.ts +2 -3
  384. package/dist/server/app-ssr-search-params-gate.d.ts +20 -0
  385. package/dist/server/app-ssr-search-params-gate.js +54 -0
  386. package/dist/server/app-ssr-stream.d.ts +13 -9
  387. package/dist/server/app-ssr-stream.js +33 -7
  388. package/dist/server/app-static-generation.d.ts +4 -5
  389. package/dist/server/app-visited-response-cache.d.ts +11 -12
  390. package/dist/server/app-visited-response-cache.js +2 -2
  391. package/dist/server/app-worker-stages.d.ts +112 -0
  392. package/dist/server/app-worker-stages.js +105 -0
  393. package/dist/server/artifact-compatibility.d.ts +11 -12
  394. package/dist/server/before-interactive-head.d.ts +2 -3
  395. package/dist/server/bfcache-identity.d.ts +7 -8
  396. package/dist/server/cache-control.d.ts +39 -11
  397. package/dist/server/cache-control.js +104 -7
  398. package/dist/server/cache-headers.d.ts +3 -4
  399. package/dist/server/cache-proof.d.ts +75 -70
  400. package/dist/server/cache-proof.js +9 -1
  401. package/dist/server/cacheability-limits.d.ts +8 -0
  402. package/dist/server/cacheability-limits.js +9 -0
  403. package/dist/server/cacheability-manifest.d.ts +68 -0
  404. package/dist/server/cacheability-manifest.js +241 -0
  405. package/dist/server/cacheability-request.d.ts +49 -0
  406. package/dist/server/cacheability-request.js +559 -0
  407. package/dist/server/client-reuse-manifest.d.ts +17 -18
  408. package/dist/server/client-reuse-manifest.js +2 -2
  409. package/dist/server/client-trace-metadata.d.ts +9 -6
  410. package/dist/server/client-trace-metadata.js +27 -15
  411. package/dist/server/cloudflare-workers-tracing.d.ts +1 -0
  412. package/dist/server/cloudflare-workers-tracing.js +8 -0
  413. package/dist/server/config-headers.d.ts +19 -5
  414. package/dist/server/config-headers.js +39 -5
  415. package/dist/server/cookie-utils.d.ts +2 -3
  416. package/dist/server/csp.d.ts +5 -6
  417. package/dist/server/default-global-error-module.d.ts +2 -3
  418. package/dist/server/default-global-not-found-module.d.ts +2 -3
  419. package/dist/server/default-not-found-module.d.ts +2 -3
  420. package/dist/server/defer-until-stream-consumed.d.ts +2 -3
  421. package/dist/server/defer-until-stream-consumed.js +2 -1
  422. package/dist/server/dev-initial-server-error.d.ts +3 -4
  423. package/dist/server/dev-initial-server-error.js +2 -1
  424. package/dist/server/dev-lockfile.d.ts +7 -8
  425. package/dist/server/dev-lockfile.js +4 -1
  426. package/dist/server/dev-module-runner.d.ts +2 -3
  427. package/dist/server/dev-origin-check.d.ts +5 -6
  428. package/dist/server/dev-route-files.d.ts +2 -3
  429. package/dist/server/dev-server.d.ts +4 -5
  430. package/dist/server/dev-server.js +130 -61
  431. package/dist/server/dev-stack-sourcemap.d.ts +7 -7
  432. package/dist/server/dev-stack-sourcemap.js +1 -1
  433. package/dist/server/document-initial-head.d.ts +3 -4
  434. package/dist/server/edge-api-runtime.d.ts +4 -5
  435. package/dist/server/fetch-handler.d.ts +3 -2
  436. package/dist/server/fetch-handler.js +3 -18
  437. package/dist/server/file-based-metadata.d.ts +2 -3
  438. package/dist/server/framework-tracer.d.ts +46 -0
  439. package/dist/server/framework-tracer.js +125 -0
  440. package/dist/server/fully-buffered-response.d.ts +11 -0
  441. package/dist/server/fully-buffered-response.js +19 -0
  442. package/dist/server/headers.d.ts +62 -56
  443. package/dist/server/headers.js +33 -20
  444. package/dist/server/html.d.ts +6 -27
  445. package/dist/server/html.js +16 -1
  446. package/dist/server/http-conditional.d.ts +5 -6
  447. package/dist/server/http-date.d.ts +2 -3
  448. package/dist/server/http-error-responses.d.ts +9 -10
  449. package/dist/server/http-range.d.ts +4 -5
  450. package/dist/server/hybrid-route-priority.d.ts +4 -5
  451. package/dist/server/image-optimization.d.ts +20 -21
  452. package/dist/server/implicit-tags.d.ts +3 -4
  453. package/dist/server/instrumentation-runtime.d.ts +17 -21
  454. package/dist/server/instrumentation-runtime.js +26 -8
  455. package/dist/server/instrumentation.d.ts +26 -30
  456. package/dist/server/instrumentation.js +18 -23
  457. package/dist/server/isr-cache.d.ts +28 -27
  458. package/dist/server/isr-cache.js +18 -70
  459. package/dist/server/isr-decision.d.ts +4 -4
  460. package/dist/server/metadata-route-build-data.d.ts +4 -5
  461. package/dist/server/metadata-route-cache-policy.d.ts +2 -3
  462. package/dist/server/metadata-route-response.d.ts +7 -7
  463. package/dist/server/metadata-route-response.js +68 -2
  464. package/dist/server/metadata-routes.d.ts +18 -19
  465. package/dist/server/middleware-matcher-pattern.d.ts +6 -7
  466. package/dist/server/middleware-matcher.d.ts +13 -6
  467. package/dist/server/middleware-matcher.js +22 -1
  468. package/dist/server/middleware-path-to-regexp.d.ts +6 -7
  469. package/dist/server/middleware-path-to-regexp.js +11 -9
  470. package/dist/server/middleware-response-headers.d.ts +3 -4
  471. package/dist/server/middleware-runtime.d.ts +13 -8
  472. package/dist/server/middleware-runtime.js +54 -10
  473. package/dist/server/middleware.d.ts +5 -5
  474. package/dist/server/multi-stage.d.ts +141 -0
  475. package/dist/server/multi-stage.js +8 -0
  476. package/dist/server/navigation-planner.d.ts +26 -26
  477. package/dist/server/navigation-trace.d.ts +11 -12
  478. package/dist/server/next-error-digest.d.ts +4 -5
  479. package/dist/server/normalize-path.d.ts +5 -6
  480. package/dist/server/normalize-path.js +1 -1
  481. package/dist/server/open-redirect.d.ts +2 -3
  482. package/dist/server/opentelemetry-api.d.ts +59 -0
  483. package/dist/server/opentelemetry-api.js +53 -0
  484. package/dist/server/opentelemetry-tracing.d.ts +5 -0
  485. package/dist/server/opentelemetry-tracing.js +83 -0
  486. package/dist/server/operation-token.d.ts +11 -12
  487. package/dist/server/otel-tracer-extension.d.ts +7 -9
  488. package/dist/server/otel-tracer-extension.js +37 -36
  489. package/dist/server/pages-api-route.d.ts +5 -4
  490. package/dist/server/pages-api-route.js +21 -8
  491. package/dist/server/pages-asset-tags.d.ts +6 -6
  492. package/dist/server/pages-asset-tags.js +37 -2
  493. package/dist/server/pages-body-parser-config.d.ts +4 -5
  494. package/dist/server/pages-body-parser-config.js +4 -4
  495. package/dist/server/pages-client-assets.d.ts +11 -5
  496. package/dist/server/pages-data-route.d.ts +11 -12
  497. package/dist/server/pages-data-route.js +1 -1
  498. package/dist/server/pages-default-404.d.ts +3 -4
  499. package/dist/server/pages-dev-hydration.d.ts +9 -4
  500. package/dist/server/pages-dev-hydration.js +19 -7
  501. package/dist/server/pages-dev-module-url.d.ts +3 -4
  502. package/dist/server/pages-dev-stylesheets.d.ts +5 -6
  503. package/dist/server/pages-document-asset-props.d.ts +6 -7
  504. package/dist/server/pages-document-initial-props.d.ts +5 -5
  505. package/dist/server/pages-document-initial-props.js +4 -2
  506. package/dist/server/pages-execution-tracing.d.ts +40 -0
  507. package/dist/server/pages-execution-tracing.js +80 -0
  508. package/dist/server/pages-get-initial-props.d.ts +9 -10
  509. package/dist/server/pages-i18n.d.ts +8 -8
  510. package/dist/server/pages-i18n.js +3 -2
  511. package/dist/server/pages-media-type.d.ts +4 -5
  512. package/dist/server/pages-node-compat.d.ts +11 -10
  513. package/dist/server/pages-node-compat.js +12 -4
  514. package/dist/server/pages-page-data.d.ts +18 -19
  515. package/dist/server/pages-page-data.js +11 -10
  516. package/dist/server/pages-page-handler.d.ts +7 -6
  517. package/dist/server/pages-page-handler.js +98 -47
  518. package/dist/server/pages-page-method.d.ts +2 -3
  519. package/dist/server/pages-page-response.d.ts +14 -10
  520. package/dist/server/pages-page-response.js +49 -31
  521. package/dist/server/pages-preview.d.ts +10 -11
  522. package/dist/server/pages-readiness.d.ts +2 -3
  523. package/dist/server/pages-request-pipeline.d.ts +16 -12
  524. package/dist/server/pages-request-pipeline.js +69 -28
  525. package/dist/server/pages-request-stage-entry.d.ts +23 -0
  526. package/dist/server/pages-request-stage-entry.js +314 -0
  527. package/dist/server/pages-response-stage-entry.d.ts +11 -0
  528. package/dist/server/pages-response-stage-entry.js +106 -0
  529. package/dist/server/pages-response-stage.d.ts +31 -0
  530. package/dist/server/pages-response-stage.js +49 -0
  531. package/dist/server/pages-revalidate.d.ts +3 -4
  532. package/dist/server/pages-revalidate.js +9 -4
  533. package/dist/server/pages-route-data-kind.d.ts +18 -0
  534. package/dist/server/pages-route-data-kind.js +11 -0
  535. package/dist/server/pages-router-entry.d.ts +1 -25
  536. package/dist/server/pages-router-entry.js +48 -114
  537. package/dist/server/pages-serializable-props.d.ts +3 -4
  538. package/dist/server/pregenerated-concrete-paths.d.ts +9 -7
  539. package/dist/server/pregenerated-concrete-paths.js +12 -6
  540. package/dist/server/prerender-cache-life-header.d.ts +3 -4
  541. package/dist/server/prerender-manifest.d.ts +11 -11
  542. package/dist/server/prerender-manifest.js +6 -3
  543. package/dist/server/prerender-route-params.d.ts +16 -9
  544. package/dist/server/prerender-route-params.js +18 -2
  545. package/dist/server/prerender-work-unit-setup.d.ts +4 -4
  546. package/dist/server/prerender-work-unit-setup.js +37 -14
  547. package/dist/server/prod-server.d.ts +12 -9
  548. package/dist/server/prod-server.js +129 -36
  549. package/dist/server/proxy-trust.d.ts +5 -6
  550. package/dist/server/request-log.d.ts +3 -4
  551. package/dist/server/request-pipeline.d.ts +17 -21
  552. package/dist/server/request-pipeline.js +8 -10
  553. package/dist/server/request-stage.d.ts +5 -0
  554. package/dist/server/request-stage.js +7 -0
  555. package/dist/server/request-tracing.d.ts +22 -0
  556. package/dist/server/request-tracing.js +180 -0
  557. package/dist/server/response-stage-cacheability.d.ts +37 -0
  558. package/dist/server/response-stage-cacheability.js +55 -0
  559. package/dist/server/response-stage-policy.d.ts +23 -0
  560. package/dist/server/response-stage-policy.js +89 -0
  561. package/dist/server/response-stage.d.ts +5 -0
  562. package/dist/server/response-stage.js +7 -0
  563. package/dist/server/response-start-tracing.d.ts +14 -0
  564. package/dist/server/response-start-tracing.js +80 -0
  565. package/dist/server/revalidation-host.d.ts +2 -3
  566. package/dist/server/revalidation-host.js +2 -1
  567. package/dist/server/revalidation-request.d.ts +8 -0
  568. package/dist/server/revalidation-request.js +37 -0
  569. package/dist/server/rsc-completion-metadata.d.ts +6 -7
  570. package/dist/server/rsc-stream-hints.d.ts +18 -7
  571. package/dist/server/rsc-stream-hints.js +70 -35
  572. package/dist/server/seed-cache.d.ts +2 -3
  573. package/dist/server/seed-cache.js +8 -7
  574. package/dist/server/server-action-not-found.d.ts +5 -6
  575. package/dist/server/server-globals.d.ts +2 -3
  576. package/dist/server/server-globals.js +13 -0
  577. package/dist/server/skip-cache-proof.d.ts +4 -4
  578. package/dist/server/socket-error-backstop.d.ts +5 -6
  579. package/dist/server/socket-error-backstop.js +1 -1
  580. package/dist/server/static-file-cache.d.ts +5 -6
  581. package/dist/server/static-file-cache.js +9 -7
  582. package/dist/server/static-file-signal.d.ts +16 -0
  583. package/dist/server/static-file-signal.js +82 -0
  584. package/dist/server/static-layout-client-reuse-proof.d.ts +4 -5
  585. package/dist/server/streaming-metadata.d.ts +2 -3
  586. package/dist/server/tracer.d.ts +5 -0
  587. package/dist/server/tracer.js +13 -0
  588. package/dist/server/worker-prerender-discovery.d.ts +18 -0
  589. package/dist/server/worker-prerender-discovery.js +55 -0
  590. package/dist/server/worker-revalidation-context.d.ts +2 -3
  591. package/dist/server/worker-revalidation-context.js +5 -5
  592. package/dist/server/worker-stages.d.ts +43 -0
  593. package/dist/server/worker-stages.js +25 -0
  594. package/dist/server/worker-utils.d.ts +5 -6
  595. package/dist/server/worker-utils.js +4 -4
  596. package/dist/server/workers-tracing.d.ts +17 -0
  597. package/dist/server/workers-tracing.js +27 -0
  598. package/dist/shims/amp.d.ts +3 -4
  599. package/dist/shims/app-router-scroll-state.d.ts +9 -10
  600. package/dist/shims/app-router-scroll.d.ts +4 -5
  601. package/dist/shims/app-router-scroll.js +2 -1
  602. package/dist/shims/app.d.ts +5 -6
  603. package/dist/shims/before-interactive-context.d.ts +5 -6
  604. package/dist/shims/cache-callable-runtime.d.ts +44 -4
  605. package/dist/shims/cache-callable-runtime.js +168 -8
  606. package/dist/shims/cache-for-request.d.ts +2 -3
  607. package/dist/shims/cache-handler.d.ts +33 -20
  608. package/dist/shims/cache-handler.js +61 -2
  609. package/dist/shims/cache-request-state.d.ts +28 -29
  610. package/dist/shims/cache-runtime.d.ts +23 -21
  611. package/dist/shims/cache-runtime.js +239 -121
  612. package/dist/shims/cache.d.ts +15 -15
  613. package/dist/shims/cache.js +25 -13
  614. package/dist/shims/cacheability-classification.d.ts +106 -0
  615. package/dist/shims/cacheability-classification.js +161 -0
  616. package/dist/shims/cdn-cache-state.d.ts +13 -0
  617. package/dist/shims/cdn-cache-state.js +23 -0
  618. package/dist/shims/cdn-cache.d.ts +76 -18
  619. package/dist/shims/cdn-cache.js +40 -39
  620. package/dist/shims/client-hook-error.d.ts +3 -4
  621. package/dist/shims/client-locale.d.ts +2 -3
  622. package/dist/shims/client-page-root.d.ts +24 -0
  623. package/dist/shims/client-page-root.js +121 -0
  624. package/dist/shims/compat-router.d.ts +2 -3
  625. package/dist/shims/config.d.ts +3 -4
  626. package/dist/shims/constants.d.ts +73 -74
  627. package/dist/shims/constants.js +1 -1
  628. package/dist/shims/default-not-found.d.ts +2 -3
  629. package/dist/shims/document.d.ts +9 -9
  630. package/dist/shims/dynamic-preload-chunks.d.ts +2 -3
  631. package/dist/shims/dynamic-preload-chunks.js +17 -13
  632. package/dist/shims/dynamic.d.ts +3 -3
  633. package/dist/shims/error-boundary-navigation.d.ts +3 -4
  634. package/dist/shims/error-boundary.d.ts +17 -18
  635. package/dist/shims/error-boundary.js +17 -11
  636. package/dist/shims/error.d.ts +4 -4
  637. package/dist/shims/error.js +1 -1
  638. package/dist/shims/error.react-server.d.ts +3 -4
  639. package/dist/shims/fetch-cache.d.ts +22 -22
  640. package/dist/shims/fetch-cache.js +50 -20
  641. package/dist/shims/font-google-base.d.ts +9 -9
  642. package/dist/shims/font-google-base.js +2 -1
  643. package/dist/shims/font-local.d.ts +3 -3
  644. package/dist/shims/font-local.js +1 -1
  645. package/dist/shims/font-utils.d.ts +14 -15
  646. package/dist/shims/form.d.ts +2 -2
  647. package/dist/shims/form.js +10 -7
  648. package/dist/shims/hash-scroll.d.ts +5 -6
  649. package/dist/shims/head-state.d.ts +4 -5
  650. package/dist/shims/head.d.ts +16 -16
  651. package/dist/shims/head.js +5 -4
  652. package/dist/shims/headers.d.ts +68 -32
  653. package/dist/shims/headers.js +101 -10
  654. package/dist/shims/i18n-context.d.ts +5 -6
  655. package/dist/shims/i18n-state.d.ts +4 -5
  656. package/dist/shims/image-config.d.ts +5 -6
  657. package/dist/shims/image-config.js +2 -0
  658. package/dist/shims/image.d.ts +5 -5
  659. package/dist/shims/image.js +12 -8
  660. package/dist/shims/internal/als-registry.d.ts +4 -5
  661. package/dist/shims/internal/api-utils.d.ts +3 -4
  662. package/dist/shims/internal/app-page-props-cache-key.d.ts +32 -4
  663. package/dist/shims/internal/app-page-props-cache-key.js +53 -1
  664. package/dist/shims/internal/app-prefetch-fetch-queue.d.ts +5 -6
  665. package/dist/shims/internal/app-prefetch-rsc-request.d.ts +13 -0
  666. package/dist/shims/internal/app-prefetch-rsc-request.js +12 -0
  667. package/dist/shims/internal/app-route-detection.d.ts +2 -2
  668. package/dist/shims/internal/app-route-prefetch-policy.d.ts +5 -6
  669. package/dist/shims/internal/app-route-prefetch-policy.js +1 -0
  670. package/dist/shims/internal/app-router-context.d.ts +9 -10
  671. package/dist/shims/internal/cookie-serialize.d.ts +4 -5
  672. package/dist/shims/internal/format-url-object.d.ts +7 -0
  673. package/dist/shims/internal/format-url-object.js +53 -0
  674. package/dist/shims/internal/hybrid-client-route-owner-direct.d.ts +6 -7
  675. package/dist/shims/internal/hybrid-client-route-owner-direct.js +29 -11
  676. package/dist/shims/internal/hybrid-client-route-owner.d.ts +3 -3
  677. package/dist/shims/internal/hybrid-client-route-owner.js +5 -4
  678. package/dist/shims/internal/interpolate-as.d.ts +5 -6
  679. package/dist/shims/internal/interpolate-as.js +4 -2
  680. package/dist/shims/internal/link-status-registry.d.ts +5 -6
  681. package/dist/shims/internal/make-hanging-promise.d.ts +8 -3
  682. package/dist/shims/internal/make-hanging-promise.js +13 -2
  683. package/dist/shims/internal/navigation-untracked.d.ts +2 -3
  684. package/dist/shims/internal/normalize-router-href.d.ts +15 -0
  685. package/dist/shims/internal/normalize-router-href.js +41 -0
  686. package/dist/shims/internal/pages-data-fetch-dedup.d.ts +8 -9
  687. package/dist/shims/internal/pages-data-target.d.ts +8 -6
  688. package/dist/shims/internal/pages-data-target.js +32 -36
  689. package/dist/shims/internal/pages-data-url.d.ts +4 -5
  690. package/dist/shims/internal/pages-data-url.js +2 -1
  691. package/dist/shims/internal/pages-router-accessor.d.ts +3 -4
  692. package/dist/shims/internal/pages-router-components.d.ts +3 -4
  693. package/dist/shims/internal/route-pattern-for-warning.d.ts +5 -6
  694. package/dist/shims/internal/route-pattern-for-warning.js +3 -3
  695. package/dist/shims/internal/router-context.d.ts +2 -3
  696. package/dist/shims/internal/thenable-well-known-properties.d.ts +10 -0
  697. package/dist/shims/internal/thenable-well-known-properties.js +33 -0
  698. package/dist/shims/internal/utils.d.ts +7 -8
  699. package/dist/shims/internal/work-unit-async-storage.d.ts +12 -11
  700. package/dist/shims/layout-segment-context.d.ts +3 -4
  701. package/dist/shims/link-prefetch.d.ts +9 -10
  702. package/dist/shims/link.d.ts +4 -4
  703. package/dist/shims/link.js +67 -116
  704. package/dist/shims/metadata.d.ts +15 -16
  705. package/dist/shims/metadata.js +40 -36
  706. package/dist/shims/navigation-context-accessors.d.ts +9 -0
  707. package/dist/shims/navigation-context-accessors.js +19 -0
  708. package/dist/shims/navigation-context-state.d.ts +27 -18
  709. package/dist/shims/navigation-errors.d.ts +18 -19
  710. package/dist/shims/navigation-state.d.ts +6 -7
  711. package/dist/shims/navigation.d.ts +80 -68
  712. package/dist/shims/navigation.js +45 -17
  713. package/dist/shims/navigation.react-server.d.ts +9 -9
  714. package/dist/shims/navigation.react-server.js +1 -1
  715. package/dist/shims/offline.d.ts +2 -3
  716. package/dist/shims/og.d.ts +2 -2
  717. package/dist/shims/pages-router-runtime.d.ts +4 -5
  718. package/dist/shims/ppr-fallback-shell.d.ts +13 -14
  719. package/dist/shims/readonly-url-search-params.d.ts +2 -3
  720. package/dist/shims/request-context.d.ts +7 -6
  721. package/dist/shims/root-params.d.ts +14 -15
  722. package/dist/shims/router-state.d.ts +5 -6
  723. package/dist/shims/router-state.js +1 -1
  724. package/dist/shims/router.d.ts +22 -21
  725. package/dist/shims/router.js +339 -164
  726. package/dist/shims/script-nonce-context.d.ts +8 -6
  727. package/dist/shims/script-nonce-context.js +15 -6
  728. package/dist/shims/script.d.ts +4 -4
  729. package/dist/shims/script.js +9 -7
  730. package/dist/shims/search-params-gate.d.ts +35 -0
  731. package/dist/shims/search-params-gate.js +32 -0
  732. package/dist/shims/server.d.ts +19 -51
  733. package/dist/shims/server.js +14 -28
  734. package/dist/shims/slot.d.ts +33 -15
  735. package/dist/shims/slot.js +41 -9
  736. package/dist/shims/streamed-icons.d.ts +3 -4
  737. package/dist/shims/thenable-params.d.ts +5 -7
  738. package/dist/shims/thenable-params.js +3 -24
  739. package/dist/shims/unified-request-context.d.ts +34 -31
  740. package/dist/shims/unified-request-context.js +34 -24
  741. package/dist/shims/unrecognized-action-error.d.ts +3 -4
  742. package/dist/shims/url-safety.d.ts +5 -6
  743. package/dist/shims/url-utils.d.ts +18 -12
  744. package/dist/shims/url-utils.js +10 -1
  745. package/dist/shims/use-merged-ref.d.ts +2 -3
  746. package/dist/shims/user-agent.d.ts +31 -0
  747. package/dist/shims/user-agent.js +16 -0
  748. package/dist/shims/web-vitals.d.ts +2 -2
  749. package/dist/typegen.d.ts +3 -4
  750. package/dist/utils/asset-prefix.d.ts +7 -8
  751. package/dist/utils/base-path.d.ts +5 -6
  752. package/dist/utils/built-asset-url.d.ts +2 -3
  753. package/dist/utils/built-asset-url.js +1 -1
  754. package/dist/utils/cache-control-metadata.d.ts +4 -5
  755. package/dist/utils/client-build-manifest.d.ts +6 -7
  756. package/dist/utils/client-build-manifest.js +2 -1
  757. package/dist/utils/client-entry-manifest.d.ts +6 -7
  758. package/dist/utils/client-runtime-metadata.d.ts +8 -3
  759. package/dist/utils/client-runtime-metadata.js +18 -1
  760. package/dist/utils/commonjs-loader.d.ts +4 -5
  761. package/dist/utils/compare.d.ts +2 -3
  762. package/dist/utils/deployment-id.d.ts +6 -7
  763. package/dist/utils/dev-error-recovery-event.d.ts +2 -3
  764. package/dist/utils/dev-stack-sourcemap-endpoint.d.ts +2 -3
  765. package/dist/utils/domain-locale.d.ts +7 -8
  766. package/dist/utils/encode-cache-tag.d.ts +3 -4
  767. package/dist/utils/error-cause.d.ts +2 -3
  768. package/dist/utils/external-url.d.ts +2 -3
  769. package/dist/utils/has-trailing-comma.d.ts +3 -4
  770. package/dist/utils/hash.d.ts +3 -4
  771. package/dist/utils/html-limited-bots.d.ts +3 -4
  772. package/dist/utils/lazy-chunks.d.ts +8 -9
  773. package/dist/utils/lazy-chunks.js +4 -4
  774. package/dist/utils/manifest-paths.d.ts +5 -6
  775. package/dist/utils/mdx-scan.d.ts +11 -4
  776. package/dist/utils/mdx-scan.js +27 -1
  777. package/dist/utils/middleware-request-headers.d.ts +7 -6
  778. package/dist/utils/middleware-request-headers.js +6 -1
  779. package/dist/utils/navigation-signal.d.ts +3 -3
  780. package/dist/utils/navigation-signal.js +16 -1
  781. package/dist/utils/number.d.ts +2 -3
  782. package/dist/utils/package-name.d.ts +3 -4
  783. package/dist/utils/parse-cookie.d.ts +4 -5
  784. package/dist/utils/path.d.ts +8 -9
  785. package/dist/utils/plugin-options.d.ts +2 -3
  786. package/dist/utils/precompressed-variant.d.ts +3 -4
  787. package/dist/utils/prerender-output-paths.d.ts +9 -10
  788. package/dist/utils/prerender-output-paths.js +16 -9
  789. package/dist/utils/project.d.ts +19 -30
  790. package/dist/utils/project.js +20 -29
  791. package/dist/utils/promise.d.ts +2 -3
  792. package/dist/utils/protocol-headers.d.ts +14 -15
  793. package/dist/utils/public-file-path.d.ts +2 -3
  794. package/dist/utils/public-routes.d.ts +2 -3
  795. package/dist/utils/query.d.ts +14 -9
  796. package/dist/utils/query.js +22 -1
  797. package/dist/utils/react-compiler-support.d.ts +6 -7
  798. package/dist/utils/react-version.d.ts +4 -3
  799. package/dist/utils/react-version.js +19 -1
  800. package/dist/utils/record.d.ts +2 -3
  801. package/dist/utils/redirect-digest.d.ts +3 -4
  802. package/dist/utils/regex-safety.d.ts +4 -5
  803. package/dist/utils/regex.d.ts +2 -3
  804. package/dist/utils/safe-json-file.d.ts +2 -3
  805. package/dist/utils/sorted-array.d.ts +2 -3
  806. package/dist/utils/text-stream.d.ts +3 -4
  807. package/dist/utils/vinext-root.d.ts +2 -3
  808. package/dist/utils/virtual-module.d.ts +3 -4
  809. package/dist/utils/vite-cli-invocation.d.ts +21 -0
  810. package/dist/utils/vite-cli-invocation.js +144 -0
  811. package/dist/utils/vite-version.d.ts +5 -6
  812. package/next-package.json +4 -0
  813. package/package.json +55 -6
@@ -1,20 +1,25 @@
1
1
  import { closeAfterResponse, createRequestContext, runWithRequestContext } from "../shims/unified-request-context.js";
2
+ import "../utils/protocol-headers.js";
2
3
  import { getRequestExecutionContext } from "../shims/request-context.js";
3
4
  import { reportRequestError } from "./instrumentation.js";
5
+ import { beginRouteCacheability, getRouteCacheabilityDynamicReason } from "../shims/cacheability-classification.js";
6
+ import { applyCdnResponseBuildIdentityHeaders } from "./cache-control.js";
7
+ import { isOnDemandRevalidateRequest } from "./revalidation-request.js";
4
8
  import { consumeDynamicUsage, getActiveDraftModeState, getAndClearPendingCookies, getDraftModeCookieHeader, isDraftModeRequest, markDynamicUsage, setHeadersAccessPhase } from "../shims/headers.js";
5
9
  import { _drainPendingRevalidations } from "../shims/cache-request-state.js";
6
10
  import { ensureFetchPatch, getCollectedFetchTags, setCurrentFetchCacheMode, setCurrentFetchRevalidate, setCurrentFetchSoftTags, setCurrentForceDynamicFetchDefault } from "../shims/fetch-cache.js";
7
11
  import { setNavigationContext } from "../shims/navigation-context-state.js";
8
12
  import { makeThenableParams } from "../shims/thenable-params.js";
13
+ import { traceResponseStart } from "./response-start-tracing.js";
9
14
  import { buildPageCacheTags } from "./implicit-tags.js";
10
15
  import { applyRouteHandlerMiddlewareContext, finalizeRouteHandlerResponse } from "./app-route-handler-response.js";
16
+ import { resolveAppRouteHandlerFetchCacheMode } from "./app-segment-config.js";
11
17
  import "../shims/navigation.js";
12
18
  import { isKnownDynamicAppRoute, isValidHTTPMethod } from "./app-route-handler-runtime.js";
19
+ import { getAppRouteHandlerRevalidateSeconds, hasAppRouteHandlerDefaultExport, hasNonStaticAppRouteHandlerMethods, resolveAppRouteHandlerMethod, shouldReadAppRouteHandlerCache } from "./app-route-handler-policy.js";
13
20
  import { createStaticGenerationHeadersContext } from "./app-static-generation.js";
14
- import { getAppRouteHandlerRevalidateSeconds, hasAppRouteHandlerDefaultExport, resolveAppRouteHandlerMethod, shouldReadAppRouteHandlerCache } from "./app-route-handler-policy.js";
15
21
  import { applyDraftModeCachePolicy, executeAppRouteHandler } from "./app-route-handler-execution.js";
16
22
  import { readAppRouteHandlerCacheResponse } from "./app-route-handler-cache.js";
17
- import { resolveAppRouteHandlerFetchCacheMode } from "./app-segment-config.js";
18
23
  //#region src/server/app-route-handler-dispatch.ts
19
24
  function isAppRouteHandlerFunction(value) {
20
25
  return typeof value === "function";
@@ -23,14 +28,15 @@ function buildRouteHandlerPageCacheTags(pathname, extraTags, routeSegments) {
23
28
  return buildPageCacheTags(pathname, extraTags, routeSegments, "route");
24
29
  }
25
30
  async function runInRouteHandlerRevalidationContext(options, renderFn) {
31
+ const headersContext = createStaticGenerationHeadersContext({
32
+ draftModeEnabled: false,
33
+ draftModeSecret: options.draftModeSecret,
34
+ dynamicConfig: options.dynamicConfig,
35
+ routeKind: "route",
36
+ routePattern: options.routePattern
37
+ });
26
38
  const requestContext = createRequestContext({
27
- headersContext: createStaticGenerationHeadersContext({
28
- draftModeEnabled: false,
29
- draftModeSecret: options.draftModeSecret,
30
- dynamicConfig: options.dynamicConfig,
31
- routeKind: "route",
32
- routePattern: options.routePattern
33
- }),
39
+ headersContext,
34
40
  executionContext: getRequestExecutionContext(),
35
41
  unstableCacheRevalidation: "foreground"
36
42
  });
@@ -53,10 +59,15 @@ async function runInRouteHandlerRevalidationContext(options, renderFn) {
53
59
  }
54
60
  }
55
61
  async function dispatchAppRouteHandler(options) {
62
+ return traceResponseStart(await dispatchAppRouteHandlerImpl(options));
63
+ }
64
+ async function dispatchAppRouteHandlerImpl(options) {
56
65
  const { route } = options;
57
66
  const handler = route.routeHandler;
58
67
  const method = options.request.method.toUpperCase();
59
- const revalidateSeconds = getAppRouteHandlerRevalidateSeconds(handler);
68
+ if (method === "GET" || method === "HEAD") beginRouteCacheability("app-route", route.pattern);
69
+ const configuredRevalidateSeconds = getAppRouteHandlerRevalidateSeconds(handler);
70
+ const revalidateSeconds = hasNonStaticAppRouteHandlerMethods(handler) ? null : configuredRevalidateSeconds;
60
71
  const isDevelopment = options.isDevelopment ?? process.env.NODE_ENV === "development";
61
72
  const isProduction = options.isProduction ?? process.env.NODE_ENV === "production";
62
73
  const appendResponseLink = handler.runtime === "edge" || handler.runtime === "experimental-edge";
@@ -70,7 +81,7 @@ async function dispatchAppRouteHandler(options) {
70
81
  isHead
71
82
  });
72
83
  options.clearRequestContext();
73
- return applyDraftModeCachePolicy(applyRouteHandlerMiddlewareContext(finalized, options.middlewareContext, { appendResponseLink }), isDraftMode || hasDraftModeTransition);
84
+ return applyCdnResponseBuildIdentityHeaders(applyDraftModeCachePolicy(applyRouteHandlerMiddlewareContext(finalized, options.middlewareContext, { appendResponseLink }), isDraftMode || hasDraftModeTransition));
74
85
  };
75
86
  if (hasAppRouteHandlerDefaultExport(handler) && isDevelopment) console.error("[vinext] Detected default export in route handler " + route.pattern + ". Export a named export for each HTTP method instead.");
76
87
  if (!isValidHTTPMethod(method)) return finalizeFrameworkResponse(new Response(null, { status: 400 }));
@@ -80,11 +91,7 @@ async function dispatchAppRouteHandler(options) {
80
91
  headers: { Allow: allowHeaderForOptions }
81
92
  }));
82
93
  const resolvedHandlerFn = isAppRouteHandlerFunction(handlerFn) ? handlerFn : void 0;
83
- const fetchCacheMode = resolveAppRouteHandlerFetchCacheMode(handler);
84
- setCurrentFetchCacheMode(fetchCacheMode);
85
- setCurrentFetchRevalidate(revalidateSeconds);
86
- setCurrentForceDynamicFetchDefault(handler.dynamic === "force-dynamic");
87
- if (revalidateSeconds !== null && shouldReadAppRouteHandlerCache({
94
+ const shouldReadRouteCache = options.bypassSharedCache !== true && revalidateSeconds !== null && !getRouteCacheabilityDynamicReason() && shouldReadAppRouteHandlerCache({
88
95
  dynamicConfig: handler.dynamic,
89
96
  handlerFn: resolvedHandlerFn,
90
97
  isAutoHead,
@@ -93,7 +100,13 @@ async function dispatchAppRouteHandler(options) {
93
100
  isProduction,
94
101
  method,
95
102
  revalidateSeconds
96
- }) && resolvedHandlerFn) {
103
+ });
104
+ const revalidateReason = isOnDemandRevalidateRequest(options.request.headers.get("x-prerender-revalidate")) ? "on-demand" : shouldReadRouteCache ? "stale" : void 0;
105
+ const fetchCacheMode = resolveAppRouteHandlerFetchCacheMode(handler);
106
+ setCurrentFetchCacheMode(fetchCacheMode);
107
+ setCurrentFetchRevalidate(configuredRevalidateSeconds);
108
+ setCurrentForceDynamicFetchDefault(handler.dynamic === "force-dynamic");
109
+ if (shouldReadRouteCache && resolvedHandlerFn) {
97
110
  const cachedRouteResponse = await readAppRouteHandlerCacheResponse({
98
111
  basePath: options.basePath,
99
112
  buildPageCacheTags(pathname, extraTags) {
@@ -142,47 +155,52 @@ async function dispatchAppRouteHandler(options) {
142
155
  setHeadersAccessPhase,
143
156
  setNavigationContext
144
157
  });
145
- if (cachedRouteResponse) return cachedRouteResponse;
158
+ if (cachedRouteResponse) return applyCdnResponseBuildIdentityHeaders(cachedRouteResponse);
159
+ }
160
+ if (resolvedHandlerFn) {
161
+ const response = await executeAppRouteHandler({
162
+ basePath: options.basePath,
163
+ bypassSharedCache: options.bypassSharedCache,
164
+ buildPageCacheTags(pathname, extraTags) {
165
+ return buildRouteHandlerPageCacheTags(pathname, extraTags, route.routeSegments);
166
+ },
167
+ cleanPathname: options.cleanPathname,
168
+ clearRequestContext: options.clearRequestContext,
169
+ consumeDynamicUsage,
170
+ draftModeSecret: options.draftModeSecret,
171
+ executionContext: getRequestExecutionContext(),
172
+ getAndClearPendingCookies,
173
+ getCollectedFetchTags,
174
+ getActiveDraftModeState,
175
+ getDraftModeCookieHeader,
176
+ handler,
177
+ handlerFn: resolvedHandlerFn,
178
+ i18n: options.i18n,
179
+ trailingSlash: options.trailingSlash,
180
+ isAutoHead,
181
+ initialDraftModeCookie,
182
+ isDraftMode,
183
+ isProduction,
184
+ isrDebug: options.isrDebug,
185
+ isrRouteKey: options.isrRouteKey,
186
+ isrSet: options.isrSet,
187
+ markDynamicUsage,
188
+ method,
189
+ middlewareContext: options.middlewareContext,
190
+ middlewareRequestHeaders: options.middlewareRequestHeaders,
191
+ params: options.params === null ? null : makeThenableParams(options.params),
192
+ reportRequestError(error, request, context) {
193
+ return reportRequestError(error, request, context);
194
+ },
195
+ request: options.request,
196
+ expireSeconds: options.expireSeconds,
197
+ revalidateSeconds,
198
+ revalidateReason,
199
+ routePattern: route.pattern,
200
+ setHeadersAccessPhase
201
+ });
202
+ return applyCdnResponseBuildIdentityHeaders(response);
146
203
  }
147
- if (resolvedHandlerFn) return executeAppRouteHandler({
148
- basePath: options.basePath,
149
- buildPageCacheTags(pathname, extraTags) {
150
- return buildRouteHandlerPageCacheTags(pathname, extraTags, route.routeSegments);
151
- },
152
- cleanPathname: options.cleanPathname,
153
- clearRequestContext: options.clearRequestContext,
154
- consumeDynamicUsage,
155
- draftModeSecret: options.draftModeSecret,
156
- executionContext: getRequestExecutionContext(),
157
- getAndClearPendingCookies,
158
- getCollectedFetchTags,
159
- getActiveDraftModeState,
160
- getDraftModeCookieHeader,
161
- handler,
162
- handlerFn: resolvedHandlerFn,
163
- i18n: options.i18n,
164
- trailingSlash: options.trailingSlash,
165
- isAutoHead,
166
- initialDraftModeCookie,
167
- isDraftMode,
168
- isProduction,
169
- isrDebug: options.isrDebug,
170
- isrRouteKey: options.isrRouteKey,
171
- isrSet: options.isrSet,
172
- markDynamicUsage,
173
- method,
174
- middlewareContext: options.middlewareContext,
175
- middlewareRequestHeaders: options.middlewareRequestHeaders,
176
- params: options.params === null ? null : makeThenableParams(options.params),
177
- reportRequestError(error, request, context) {
178
- reportRequestError(error, request, context);
179
- },
180
- request: options.request,
181
- expireSeconds: options.expireSeconds,
182
- revalidateSeconds,
183
- routePattern: route.pattern,
184
- setHeadersAccessPhase
185
- });
186
204
  return finalizeFrameworkResponse(new Response(null, { status: 405 }));
187
205
  }
188
206
  //#endregion
@@ -1,15 +1,16 @@
1
1
  import { NextI18nConfig } from "../config/next-config.js";
2
2
  import { ExecutionContextLike } from "../shims/request-context.js";
3
3
  import { NextRequest } from "../shims/server.js";
4
+ import { FrameworkSpan } from "./framework-tracer.js";
4
5
  import { CachedRouteValue } from "../shims/cache-handler.js";
5
6
  import { IsrWritePolicy } from "./isr-cache.js";
6
7
  import { HeadersAccessPhase } from "../shims/headers.js";
7
8
  import { RouteHandlerMiddlewareContext } from "./app-route-handler-response.js";
8
9
  import { AppRouteHandlerModule } from "./app-route-handler-policy.js";
9
10
  //#region src/server/app-route-handler-execution.d.ts
10
- type AppRouteParams = Record<string, string | string[]>;
11
- type AppRouteDynamicUsageFn = () => boolean;
12
- type MarkAppRouteDynamicUsageFn = () => void;
11
+ export type AppRouteParams = Record<string, string | string[]>;
12
+ export type AppRouteDynamicUsageFn = () => boolean;
13
+ export type MarkAppRouteDynamicUsageFn = () => void;
13
14
  /**
14
15
  * Route handler context.
15
16
  *
@@ -21,11 +22,11 @@ type MarkAppRouteDynamicUsageFn = () => void;
21
22
  * See: test/e2e/app-dir/app-routes/app-custom-routes.test.ts in Next.js for
22
23
  * the authoritative assertion (`expect(meta.params).toEqual(null)`).
23
24
  */
24
- type AppRouteHandlerFunction = (request: NextRequest, context: {
25
+ export type AppRouteHandlerFunction = (request: NextRequest, context: {
25
26
  params: AppRouteParams | null;
26
27
  }) => Response | Promise<Response>;
27
- type RouteHandlerCacheSetter = (key: string, data: CachedRouteValue, policy: IsrWritePolicy) => Promise<void>;
28
- type AppRouteErrorReporter = (error: Error, request: {
28
+ export type RouteHandlerCacheSetter = (key: string, data: CachedRouteValue, policy: IsrWritePolicy) => Promise<void>;
29
+ type AppRouteErrorReporter = (error: unknown, request: {
29
30
  path: string;
30
31
  method: string;
31
32
  headers: Record<string, string>;
@@ -33,8 +34,9 @@ type AppRouteErrorReporter = (error: Error, request: {
33
34
  routerKind: "App Router";
34
35
  routePath: string;
35
36
  routeType: "route";
36
- }) => void;
37
- type AppRouteDebugLogger = (event: string, detail: string) => void;
37
+ revalidateReason: "on-demand" | "stale" | undefined;
38
+ }) => void | Promise<void>;
39
+ export type AppRouteDebugLogger = (event: string, detail: string) => void;
38
40
  type RunAppRouteHandlerOptions = {
39
41
  basePath?: string;
40
42
  consumeDynamicUsage: AppRouteDynamicUsageFn;
@@ -56,12 +58,14 @@ type RunAppRouteHandlerOptions = {
56
58
  setHeadersAccessPhase?: (phase: HeadersAccessPhase) => HeadersAccessPhase;
57
59
  };
58
60
  type RunAppRouteHandlerResult = {
61
+ didAccessDynamicRequest: () => boolean;
59
62
  dynamicUsedInHandler: boolean;
60
63
  response: Response;
61
64
  };
62
- declare function applyDraftModeCachePolicy(response: Response, isDraftMode: boolean): Response;
65
+ export declare function applyDraftModeCachePolicy(response: Response, isDraftMode: boolean): Response;
63
66
  type ExecuteAppRouteHandlerOptions = {
64
67
  buildPageCacheTags: (pathname: string, extraTags: string[]) => string[];
68
+ bypassSharedCache?: boolean;
65
69
  clearRequestContext: () => void;
66
70
  cleanPathname: string;
67
71
  executionContext: ExecutionContextLike | null;
@@ -82,10 +86,11 @@ type ExecuteAppRouteHandlerOptions = {
82
86
  reportRequestError: AppRouteErrorReporter;
83
87
  expireSeconds?: number;
84
88
  revalidateSeconds: number | null;
89
+ revalidateReason?: "on-demand" | "stale";
85
90
  routePattern: string;
86
91
  setHeadersAccessPhase: (phase: HeadersAccessPhase) => HeadersAccessPhase;
87
92
  } & RunAppRouteHandlerOptions;
88
- declare function runAppRouteHandler(options: RunAppRouteHandlerOptions): Promise<RunAppRouteHandlerResult>;
89
- declare function executeAppRouteHandler(options: ExecuteAppRouteHandlerOptions): Promise<Response>;
90
- //#endregion
91
- export { AppRouteDebugLogger, AppRouteDynamicUsageFn, AppRouteHandlerFunction, AppRouteParams, MarkAppRouteDynamicUsageFn, RouteHandlerCacheSetter, applyDraftModeCachePolicy, executeAppRouteHandler, runAppRouteHandler };
93
+ export declare function runAppRouteHandler(options: RunAppRouteHandlerOptions): Promise<RunAppRouteHandlerResult>;
94
+ export declare function executeAppRouteHandler(options: ExecuteAppRouteHandlerOptions): Promise<Response>;
95
+ export declare function traceAppRouteHandlerExecution<T>(routePattern: string, callback: (span: FrameworkSpan) => T): T;
96
+ //#endregion
@@ -1,15 +1,79 @@
1
- import { NEVER_CACHE_CONTROL, applyCdnResponseHeaders } from "./cache-control.js";
1
+ import { patternToNextFormat } from "../routing/route-validation.js";
2
+ import { frameworkTracer } from "./tracer.js";
3
+ import { getRouteCacheabilityCaptureOptions, getRouteCacheabilityDynamicReason, isRouteCacheabilityEvaluation, markRouteCacheabilityExplicitResponsePolicy, markRouteCacheabilityResponseBodyComplete } from "../shims/cacheability-classification.js";
4
+ import { NEVER_CACHE_CONTROL, applyCdnResponseHeaders, hasCdnResponsePolicy, hasExplicitNonCacheableResponsePolicy } from "./cache-control.js";
2
5
  import { isrCacheControl } from "./isr-cache.js";
3
6
  import { isDraftModeRequest, setHeadersContext } from "../shims/headers.js";
4
7
  import { _drainPendingRevalidations } from "../shims/cache-request-state.js";
5
8
  import { copyLinkHeaderProvenance } from "./app-response-header-provenance.js";
6
9
  import { applyRouteHandlerMiddlewareContext, applyRouteHandlerRevalidateHeader, assertSupportedAppRouteHandlerResponse, buildAppRouteCacheValue, finalizeRouteHandlerResponse, markRouteHandlerCacheMiss } from "./app-route-handler-response.js";
7
- import { runWithRootParamsUsage } from "../shims/root-params.js";
8
10
  import { isPossibleAppRouteActionRequest } from "./app-action-request.js";
11
+ import { runWithRootParamsUsage } from "../shims/root-params.js";
9
12
  import { createTrackedAppRouteRequest, markKnownDynamicAppRoute } from "./app-route-handler-runtime.js";
13
+ import { resolveAppRouteHandlerSpecialError, shouldApplyAppRouteHandlerRevalidateHeader, shouldCompleteAppRouteHandlerResponse, shouldWriteAppRouteHandlerCache } from "./app-route-handler-policy.js";
10
14
  import { createStaticGenerationHeadersContext, getAppRouteStaticGenerationErrorMessage } from "./app-static-generation.js";
11
- import { resolveAppRouteHandlerSpecialError, shouldApplyAppRouteHandlerRevalidateHeader, shouldWriteAppRouteHandlerCache } from "./app-route-handler-policy.js";
15
+ import { CACHEABILITY_ADMISSION_RESPONSE_BODY_LIMIT } from "./cacheability-limits.js";
12
16
  //#region src/server/app-route-handler-execution.ts
17
+ function hasExplicitCacheableResponsePolicy(headers) {
18
+ return !hasExplicitNonCacheableResponsePolicy(headers) && hasCdnResponsePolicy(headers);
19
+ }
20
+ async function completeAppRouteHandlerResponse(response) {
21
+ const { captureCacheabilityAdmissionBody } = await import("./cacheability-request.js");
22
+ const captureOptions = getRouteCacheabilityCaptureOptions();
23
+ const captured = await captureCacheabilityAdmissionBody(response.body, captureOptions?.captureDeadlineAt ?? Date.now() + 2e4, CACHEABILITY_ADMISSION_RESPONSE_BODY_LIMIT, captureOptions?.captureBudget);
24
+ const completed = new Response(captured.body, {
25
+ headers: response.headers,
26
+ status: response.status,
27
+ statusText: response.statusText
28
+ });
29
+ copyLinkHeaderProvenance(response.headers, completed.headers);
30
+ return {
31
+ completed: captured.kind === "captured",
32
+ response: completed
33
+ };
34
+ }
35
+ function deferAppRouteHandlerCleanup(response, cleanup) {
36
+ if (!response.body) {
37
+ cleanup();
38
+ return response;
39
+ }
40
+ const reader = response.body.getReader();
41
+ let cleaned = false;
42
+ const cleanOnce = async () => {
43
+ if (cleaned) return;
44
+ cleaned = true;
45
+ reader.releaseLock();
46
+ await cleanup();
47
+ };
48
+ const body = new ReadableStream({
49
+ async pull(controller) {
50
+ try {
51
+ const result = await reader.read();
52
+ if (result.done) {
53
+ await cleanOnce();
54
+ controller.close();
55
+ } else controller.enqueue(result.value);
56
+ } catch (error) {
57
+ await cleanOnce();
58
+ controller.error(error);
59
+ }
60
+ },
61
+ async cancel(reason) {
62
+ try {
63
+ await reader.cancel(reason);
64
+ } finally {
65
+ await cleanOnce();
66
+ }
67
+ }
68
+ }, { highWaterMark: 0 });
69
+ const deferred = new Response(body, {
70
+ headers: response.headers,
71
+ status: response.status,
72
+ statusText: response.statusText
73
+ });
74
+ copyLinkHeaderProvenance(response.headers, deferred.headers);
75
+ return deferred;
76
+ }
13
77
  function applyDraftModeCachePolicy(response, isDraftMode) {
14
78
  if (!isDraftMode) return response;
15
79
  const headers = new Headers(response.headers);
@@ -24,8 +88,9 @@ function applyDraftModeCachePolicy(response, isDraftMode) {
24
88
  }
25
89
  function configureAppRouteStaticGenerationContext(options) {
26
90
  if (options.dynamicConfig === "force-static" || options.dynamicConfig === "error") {
91
+ const isDraftMode = options.isDraftMode ?? (options.draftModeSecret !== void 0 && isDraftModeRequest(options.request, options.draftModeSecret));
27
92
  setHeadersContext(createStaticGenerationHeadersContext({
28
- draftModeEnabled: options.isDraftMode ?? (options.draftModeSecret !== void 0 && isDraftModeRequest(options.request, options.draftModeSecret)),
93
+ draftModeEnabled: isDraftMode,
29
94
  draftModeSecret: options.draftModeSecret,
30
95
  dynamicConfig: options.dynamicConfig,
31
96
  routeKind: "route",
@@ -50,41 +115,116 @@ async function runAppRouteHandler(options) {
50
115
  return getAppRouteStaticGenerationErrorMessage(options.routePattern, expression);
51
116
  }
52
117
  });
118
+ const routePattern = options.routePattern ?? new URL(options.request.url).pathname;
53
119
  const response = await runWithRootParamsUsage({
54
120
  kind: "route-handler",
55
- routePattern: options.routePattern ?? new URL(options.request.url).pathname
121
+ routePattern
56
122
  }, () => options.handlerFn(trackedRequest.request, { params: options.params }));
123
+ const dynamicUsedInContext = options.consumeDynamicUsage();
57
124
  return {
58
- dynamicUsedInHandler: options.consumeDynamicUsage(),
125
+ didAccessDynamicRequest: () => trackedRequest.didAccessDynamicRequest(),
126
+ dynamicUsedInHandler: trackedRequest.didAccessDynamicRequest() || dynamicUsedInContext,
59
127
  response
60
128
  };
61
129
  }
62
130
  async function executeAppRouteHandler(options) {
131
+ return executeAppRouteHandlerImpl(options);
132
+ }
133
+ function traceAppRouteHandlerExecution(routePattern, callback) {
134
+ const route = patternToNextFormat(routePattern);
135
+ return frameworkTracer.trace({
136
+ attributes: { "next.route": route },
137
+ name: `executing api route (app) ${route}`,
138
+ type: "AppRouteRouteHandlers.runHandler"
139
+ }, callback);
140
+ }
141
+ async function executeAppRouteHandlerImpl(options) {
63
142
  const previousHeadersPhase = options.setHeadersAccessPhase("route-handler");
143
+ let cleanupDeferredToBody = false;
64
144
  const middlewareMergeOptions = { appendResponseLink: options.handler.runtime === "edge" || options.handler.runtime === "experimental-edge" };
65
145
  try {
66
- let handlerResult;
146
+ let tracedResult;
147
+ let traceError;
148
+ let traceFailed = false;
149
+ let pendingRevalidations = Promise.resolve();
67
150
  try {
68
- handlerResult = await runAppRouteHandler({
69
- ...options,
70
- dynamicConfig: options.handler.dynamic
151
+ tracedResult = await traceAppRouteHandlerExecution(options.routePattern, async () => {
152
+ try {
153
+ try {
154
+ return {
155
+ kind: "handler",
156
+ handlerResult: await runAppRouteHandler({
157
+ ...options,
158
+ dynamicConfig: options.handler.dynamic
159
+ })
160
+ };
161
+ } catch (error) {
162
+ if (resolveAppRouteHandlerSpecialError(error, options.request.url, { isAction: isPossibleAppRouteActionRequest(options.request) })) return {
163
+ kind: "special",
164
+ error
165
+ };
166
+ throw error;
167
+ }
168
+ } finally {
169
+ pendingRevalidations = _drainPendingRevalidations();
170
+ pendingRevalidations.catch(() => {});
171
+ }
71
172
  });
72
- } finally {
73
- await _drainPendingRevalidations();
173
+ } catch (error) {
174
+ traceFailed = true;
175
+ traceError = error;
176
+ }
177
+ let revalidationError;
178
+ let revalidationFailed = false;
179
+ try {
180
+ await pendingRevalidations;
181
+ } catch (error) {
182
+ revalidationFailed = true;
183
+ revalidationError = error;
74
184
  }
75
- const { dynamicUsedInHandler, response } = handlerResult;
185
+ if (traceFailed) throw traceError;
186
+ if (revalidationFailed) throw revalidationError;
187
+ if (!tracedResult) throw new Error("App Route Handler tracing completed without a result");
188
+ if (tracedResult.kind === "special") throw tracedResult.error;
189
+ const handlerResult = tracedResult.handlerResult;
190
+ let { dynamicUsedInHandler, response } = handlerResult;
76
191
  assertSupportedAppRouteHandlerResponse(response);
77
- const handlerSetCacheControl = response.headers.has("cache-control");
192
+ const handlerSetCachePolicy = hasCdnResponsePolicy(response.headers);
193
+ const hasExplicitCacheablePolicy = hasExplicitCacheableResponsePolicy(response.headers);
194
+ if (hasExplicitCacheablePolicy) markRouteCacheabilityExplicitResponsePolicy();
195
+ const draftModeBeforeCompletion = options.getActiveDraftModeState?.() ?? options.isDraftMode === true;
196
+ const handlerDraftCookieBeforeCompletion = options.getDraftModeCookieHeader() ?? options.initialDraftModeCookie;
197
+ if (shouldCompleteAppRouteHandlerResponse({
198
+ dynamicConfig: options.handler.dynamic,
199
+ dynamicUsedInHandler,
200
+ hasExplicitCacheablePolicy,
201
+ handlerSetCachePolicy,
202
+ isAutoHead: options.isAutoHead,
203
+ isDraftMode: draftModeBeforeCompletion || handlerDraftCookieBeforeCompletion != null,
204
+ isProduction: options.isProduction,
205
+ method: options.method,
206
+ revalidateSeconds: options.revalidateSeconds,
207
+ requiresCompletedResponseAdmission: isRouteCacheabilityEvaluation()
208
+ })) {
209
+ const completed = await completeAppRouteHandlerResponse(response);
210
+ response = completed.response;
211
+ cleanupDeferredToBody = !completed.completed;
212
+ if (completed.completed) markRouteCacheabilityResponseBodyComplete();
213
+ const dynamicUsedDuringCompletion = options.consumeDynamicUsage();
214
+ dynamicUsedInHandler = handlerResult.didAccessDynamicRequest() || dynamicUsedDuringCompletion || dynamicUsedInHandler;
215
+ }
216
+ const requestCacheabilityVeto = getRouteCacheabilityDynamicReason();
217
+ const responseMustStayPrivate = Boolean(options.bypassSharedCache === true || options.handler.dynamic === "force-dynamic" || dynamicUsedInHandler || requestCacheabilityVeto || cleanupDeferredToBody);
78
218
  if (dynamicUsedInHandler) markKnownDynamicAppRoute(options.routePattern);
79
219
  const pendingCookies = options.getAndClearPendingCookies();
80
- const handlerDraftCookie = options.getDraftModeCookieHeader();
220
+ const handlerDraftCookie = options.getDraftModeCookieHeader() ?? handlerDraftCookieBeforeCompletion;
81
221
  const draftCookie = handlerDraftCookie ?? options.initialDraftModeCookie;
82
222
  const shouldApplyDraftPolicy = (options.getActiveDraftModeState?.() ?? options.isDraftMode === true) || draftCookie != null;
83
223
  if (handlerDraftCookie != null) markKnownDynamicAppRoute(options.routePattern);
84
224
  const routeTags = options.buildPageCacheTags(options.cleanPathname, options.getCollectedFetchTags());
85
225
  if (shouldApplyAppRouteHandlerRevalidateHeader({
86
- dynamicUsedInHandler,
87
- handlerSetCacheControl,
226
+ dynamicUsedInHandler: responseMustStayPrivate,
227
+ handlerSetCachePolicy,
88
228
  isAutoHead: options.isAutoHead,
89
229
  isDraftMode: shouldApplyDraftPolicy,
90
230
  method: options.method,
@@ -96,8 +236,8 @@ async function executeAppRouteHandler(options) {
96
236
  }
97
237
  if (shouldWriteAppRouteHandlerCache({
98
238
  dynamicConfig: options.handler.dynamic,
99
- dynamicUsedInHandler,
100
- handlerSetCacheControl,
239
+ dynamicUsedInHandler: responseMustStayPrivate,
240
+ handlerSetCachePolicy,
101
241
  isAutoHead: options.isAutoHead,
102
242
  isDraftMode: shouldApplyDraftPolicy,
103
243
  isProduction: options.isProduction,
@@ -123,12 +263,35 @@ async function executeAppRouteHandler(options) {
123
263
  })();
124
264
  options.executionContext?.waitUntil(routeWritePromise);
125
265
  }
126
- options.clearRequestContext();
127
- return applyDraftModeCachePolicy(applyRouteHandlerMiddlewareContext(finalizeRouteHandlerResponse(response, {
266
+ let finalized = applyDraftModeCachePolicy(applyRouteHandlerMiddlewareContext(finalizeRouteHandlerResponse(response, {
128
267
  pendingCookies,
129
268
  draftCookie,
130
269
  isHead: options.isAutoHead
131
270
  }), options.middlewareContext, middlewareMergeOptions), shouldApplyDraftPolicy);
271
+ const preserveHandlerPolicy = isRouteCacheabilityEvaluation() ? hasExplicitCacheablePolicy : handlerSetCachePolicy;
272
+ if (options.bypassSharedCache === true || responseMustStayPrivate && !preserveHandlerPolicy) {
273
+ const headers = new Headers(finalized.headers);
274
+ applyCdnResponseHeaders(headers, { cacheControl: NEVER_CACHE_CONTROL });
275
+ finalized = new Response(finalized.body, {
276
+ headers,
277
+ status: finalized.status,
278
+ statusText: finalized.statusText
279
+ });
280
+ copyLinkHeaderProvenance(response.headers, finalized.headers);
281
+ }
282
+ if (!cleanupDeferredToBody) {
283
+ options.clearRequestContext();
284
+ return finalized;
285
+ }
286
+ return deferAppRouteHandlerCleanup(finalized, async () => {
287
+ try {
288
+ await _drainPendingRevalidations();
289
+ options.consumeDynamicUsage();
290
+ } finally {
291
+ options.clearRequestContext();
292
+ options.setHeadersAccessPhase(previousHeadersPhase);
293
+ }
294
+ });
132
295
  } catch (error) {
133
296
  const pendingCookies = options.getAndClearPendingCookies();
134
297
  const handlerDraftCookie = options.getDraftModeCookieHeader();
@@ -149,19 +312,20 @@ async function executeAppRouteHandler(options) {
149
312
  return applyDraftModeCachePolicy(applyRouteHandlerMiddlewareContext(new Response(null, { status: specialError.statusCode }), options.middlewareContext, middlewareMergeOptions), shouldApplyDraftPolicy);
150
313
  }
151
314
  console.error("[vinext] Route handler error:", error);
152
- options.reportRequestError(error instanceof Error ? error : new Error(String(error)), {
315
+ await options.reportRequestError(error, {
153
316
  path: options.cleanPathname,
154
317
  method: options.request.method,
155
318
  headers: Object.fromEntries(options.request.headers.entries())
156
319
  }, {
157
320
  routerKind: "App Router",
158
321
  routePath: options.routePattern,
159
- routeType: "route"
322
+ routeType: "route",
323
+ revalidateReason: options.revalidateReason
160
324
  });
161
325
  return applyDraftModeCachePolicy(applyRouteHandlerMiddlewareContext(new Response(null, { status: 500 }), options.middlewareContext, middlewareMergeOptions), shouldApplyDraftPolicy);
162
326
  } finally {
163
- options.setHeadersAccessPhase(previousHeadersPhase);
327
+ if (!cleanupDeferredToBody) options.setHeadersAccessPhase(previousHeadersPhase);
164
328
  }
165
329
  }
166
330
  //#endregion
167
- export { applyDraftModeCachePolicy, executeAppRouteHandler, runAppRouteHandler };
331
+ export { applyDraftModeCachePolicy, executeAppRouteHandler, runAppRouteHandler, traceAppRouteHandlerExecution };
@@ -0,0 +1,8 @@
1
+ //#region src/server/app-route-handler-middleware-context.d.ts
2
+ export type RouteHandlerMiddlewareContext = {
3
+ headers: Headers | null;
4
+ status: number | null;
5
+ };
6
+ /** Apply request-stage middleware response metadata to a route-handler response. */
7
+ export declare function applyRouteHandlerMiddlewareContext(response: Response, middlewareContext: RouteHandlerMiddlewareContext): Response;
8
+ //#endregion
@@ -0,0 +1,15 @@
1
+ import { mergeMiddlewareResponseHeaders } from "./middleware-response-headers.js";
2
+ //#region src/server/app-route-handler-middleware-context.ts
3
+ /** Apply request-stage middleware response metadata to a route-handler response. */
4
+ function applyRouteHandlerMiddlewareContext(response, middlewareContext) {
5
+ if (!middlewareContext.headers && middlewareContext.status == null) return response;
6
+ const responseHeaders = new Headers(response.headers);
7
+ mergeMiddlewareResponseHeaders(responseHeaders, middlewareContext.headers);
8
+ return new Response(response.body, {
9
+ status: middlewareContext.status ?? response.status,
10
+ statusText: response.statusText,
11
+ headers: responseHeaders
12
+ });
13
+ }
14
+ //#endregion
15
+ export { applyRouteHandlerMiddlewareContext };
@@ -1,9 +1,10 @@
1
1
  import { isPossibleAppRouteActionRequest } from "./app-action-request.js";
2
2
  import { RouteHandlerHttpMethod, RouteHandlerModule } from "./app-route-handler-runtime.js";
3
3
  //#region src/server/app-route-handler-policy.d.ts
4
- type AppRouteHandlerModule = {
4
+ export type AppRouteHandlerModule = {
5
5
  dynamic?: string;
6
6
  fetchCache?: unknown;
7
+ generateStaticParams?: unknown;
7
8
  revalidate?: unknown;
8
9
  runtime?: string;
9
10
  } & RouteHandlerModule;
@@ -28,12 +29,14 @@ type AppRouteHandlerCacheReadOptions = {
28
29
  type AppRouteHandlerResponseCacheOptions = {
29
30
  dynamicConfig?: string;
30
31
  dynamicUsedInHandler: boolean;
31
- handlerSetCacheControl: boolean;
32
+ hasExplicitCacheablePolicy?: boolean;
33
+ handlerSetCachePolicy: boolean;
32
34
  isAutoHead: boolean;
33
35
  isDraftMode?: boolean;
34
36
  isProduction: boolean;
35
37
  method: string;
36
38
  revalidateSeconds: number | null;
39
+ requiresCompletedResponseAdmission?: boolean;
37
40
  };
38
41
  type AppRouteHandlerSpecialError = {
39
42
  kind: "redirect";
@@ -46,12 +49,21 @@ type AppRouteHandlerSpecialError = {
46
49
  type AppRouteHandlerSpecialErrorOptions = {
47
50
  isAction: boolean;
48
51
  };
49
- declare function getAppRouteHandlerRevalidateSeconds(handler: Pick<AppRouteHandlerModule, "revalidate">): number | null;
50
- declare function hasAppRouteHandlerDefaultExport(handler: RouteHandlerModule): boolean;
51
- declare function resolveAppRouteHandlerMethod(handler: AppRouteHandlerModule, method: string): ResolvedAppRouteHandlerMethod;
52
- declare function shouldReadAppRouteHandlerCache(options: AppRouteHandlerCacheReadOptions): boolean;
53
- declare function shouldApplyAppRouteHandlerRevalidateHeader(options: Omit<AppRouteHandlerResponseCacheOptions, "dynamicConfig" | "isProduction">): boolean;
54
- declare function shouldWriteAppRouteHandlerCache(options: AppRouteHandlerResponseCacheOptions): boolean;
55
- declare function resolveAppRouteHandlerSpecialError(error: unknown, requestUrl: string, options?: AppRouteHandlerSpecialErrorOptions): AppRouteHandlerSpecialError | null;
52
+ export declare function getAppRouteHandlerRevalidateSeconds(handler: Pick<AppRouteHandlerModule, "dynamic" | "generateStaticParams" | "revalidate">): number | null;
53
+ export declare function hasAppRouteHandlerDefaultExport(handler: RouteHandlerModule): boolean;
54
+ /** Match Next.js methods that force an App Route out of static generation. */
55
+ export declare function hasNonStaticAppRouteHandlerMethods(handler: RouteHandlerModule): boolean;
56
+ export declare function resolveAppRouteHandlerMethod(handler: AppRouteHandlerModule, method: string): ResolvedAppRouteHandlerMethod;
57
+ export declare function shouldReadAppRouteHandlerCache(options: AppRouteHandlerCacheReadOptions): boolean;
58
+ export declare function shouldApplyAppRouteHandlerRevalidateHeader(options: Omit<AppRouteHandlerResponseCacheOptions, "dynamicConfig" | "isProduction">): boolean;
59
+ /**
60
+ * Next.js consumes the full body before completing static generation for an
61
+ * App Route. Keep that completion boundary for every response that can still
62
+ * receive a public framework cache policy, including
63
+ * `revalidate = false` (represented by Infinity).
64
+ */
65
+ export declare function shouldCompleteAppRouteHandlerResponse(options: AppRouteHandlerResponseCacheOptions): boolean;
66
+ export declare function shouldWriteAppRouteHandlerCache(options: AppRouteHandlerResponseCacheOptions): boolean;
67
+ export declare function resolveAppRouteHandlerSpecialError(error: unknown, requestUrl: string, options?: AppRouteHandlerSpecialErrorOptions): AppRouteHandlerSpecialError | null;
56
68
  //#endregion
57
- export { AppRouteHandlerModule, getAppRouteHandlerRevalidateSeconds, hasAppRouteHandlerDefaultExport, isPossibleAppRouteActionRequest, resolveAppRouteHandlerMethod, resolveAppRouteHandlerSpecialError, shouldApplyAppRouteHandlerRevalidateHeader, shouldReadAppRouteHandlerCache, shouldWriteAppRouteHandlerCache };
69
+ export { isPossibleAppRouteActionRequest };