vinext 1.0.0-beta.9 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (828) hide show
  1. package/README.md +150 -92
  2. package/THIRD_PARTY_LICENSES.md +51 -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 +7 -14
  33. package/dist/build/precompress.d.ts +2 -3
  34. package/dist/build/precompress.js +1 -1
  35. package/dist/build/prerender-cloudflare-loader.d.ts +4 -0
  36. package/dist/build/prerender-cloudflare-loader.js +49 -0
  37. package/dist/build/prerender-paths.d.ts +36 -11
  38. package/dist/build/prerender-paths.js +274 -102
  39. package/dist/build/prerender-phase.d.ts +2 -3
  40. package/dist/build/prerender-server-entry.js +11 -3
  41. package/dist/build/prerender-server-pool.d.ts +9 -6
  42. package/dist/build/prerender-server-pool.js +8 -5
  43. package/dist/build/prerender.d.ts +73 -16
  44. package/dist/build/prerender.js +272 -80
  45. package/dist/build/preview-credentials.d.ts +5 -6
  46. package/dist/build/preview-credentials.js +2 -2
  47. package/dist/build/public-dir-conflict.d.ts +5 -6
  48. package/dist/build/public-dir-conflict.js +2 -1
  49. package/dist/build/report.d.ts +24 -20
  50. package/dist/build/report.js +10 -2
  51. package/dist/build/route-classification-injector.d.ts +2 -3
  52. package/dist/build/route-classification-manifest.d.ts +5 -6
  53. package/dist/build/run-prerender.d.ts +11 -9
  54. package/dist/build/run-prerender.js +26 -16
  55. package/dist/build/server-entry.d.ts +6 -0
  56. package/dist/build/server-entry.js +34 -0
  57. package/dist/build/server-manifest.d.ts +8 -3
  58. package/dist/build/server-manifest.js +14 -2
  59. package/dist/build/ssr-manifest.d.ts +5 -6
  60. package/dist/build/standalone.d.ts +2 -3
  61. package/dist/build/standalone.js +2 -2
  62. package/dist/build/static-export.d.ts +6 -7
  63. package/dist/cache/cache-adapters-virtual.d.ts +60 -20
  64. package/dist/cache/cache-adapters-virtual.js +50 -7
  65. package/dist/check.d.ts +11 -10
  66. package/dist/check.js +467 -176
  67. package/dist/cli-args.d.ts +7 -16
  68. package/dist/cli-args.js +2 -45
  69. package/dist/cli-dev-config.d.ts +10 -7
  70. package/dist/cli-dev-config.js +160 -3
  71. package/dist/cli.js +124 -442
  72. package/dist/client/app-nav-failure-handler.d.ts +6 -7
  73. package/dist/client/browser-globals.d.ts +4 -0
  74. package/dist/client/browser-globals.js +5 -0
  75. package/dist/client/client-rewrite-matcher.d.ts +2 -3
  76. package/dist/client/client-rewrites.d.ts +4 -5
  77. package/dist/client/dev-error-overlay-store.d.ts +13 -14
  78. package/dist/client/dev-error-overlay.d.ts +15 -15
  79. package/dist/client/dev-error-overlay.js +8 -5
  80. package/dist/client/instrumentation-client-inject.d.ts +3 -4
  81. package/dist/client/instrumentation-client-state.d.ts +5 -6
  82. package/dist/client/instrumentation-client.d.ts +3 -4
  83. package/dist/client/navigation-runtime.d.ts +20 -17
  84. package/dist/client/navigation-runtime.js +4 -3
  85. package/dist/client/pages-router-link-navigation.d.ts +4 -5
  86. package/dist/client/react-instance.d.ts +2 -3
  87. package/dist/client/validate-module-path.d.ts +2 -3
  88. package/dist/client/vinext-next-data.d.ts +7 -10
  89. package/dist/client/window-next.d.ts +4 -5
  90. package/dist/config/config-matchers.d.ts +16 -16
  91. package/dist/config/config-matchers.js +2 -4
  92. package/dist/config/dotenv.d.ts +3 -4
  93. package/dist/config/dotenv.js +14 -2
  94. package/dist/config/next-config.d.ts +31 -27
  95. package/dist/config/next-config.js +163 -16
  96. package/dist/config/prerender.d.ts +20 -16
  97. package/dist/config/prerender.js +10 -4
  98. package/dist/config/request-context.d.ts +5 -6
  99. package/dist/config/server-external-packages.d.ts +14 -3
  100. package/dist/config/server-external-packages.js +37 -3
  101. package/dist/config/tsconfig-paths.d.ts +3 -4
  102. package/dist/deps/.pnpm/ignore@5.3.2/deps/ignore/index.js +189 -0
  103. package/dist/deps/.pnpm/ua-parser-js@1.0.35/deps/ua-parser-js/src/ua-parser.js +1057 -0
  104. package/dist/entries/app-browser-entry.d.ts +4 -5
  105. package/dist/entries/app-browser-entry.js +1 -3
  106. package/dist/entries/app-rsc-entry.d.ts +10 -3
  107. package/dist/entries/app-rsc-entry.js +503 -51
  108. package/dist/entries/app-rsc-manifest.d.ts +4 -3
  109. package/dist/entries/app-rsc-manifest.js +26 -8
  110. package/dist/entries/app-ssr-entry.d.ts +2 -3
  111. package/dist/entries/app-ssr-entry.js +8 -1
  112. package/dist/entries/pages-client-entry.d.ts +3 -3
  113. package/dist/entries/pages-client-entry.js +17 -2
  114. package/dist/entries/pages-server-entry.d.ts +13 -3
  115. package/dist/entries/pages-server-entry.js +234 -33
  116. package/dist/entries/runtime-entry-module.d.ts +4 -5
  117. package/dist/image/image-adapters-virtual.d.ts +4 -5
  118. package/dist/index.d.ts +10 -11
  119. package/dist/index.js +848 -255
  120. package/dist/init-cloudflare.d.ts +26 -17
  121. package/dist/init-cloudflare.js +711 -103
  122. package/dist/init-platform.d.ts +26 -22
  123. package/dist/init-platform.js +85 -29
  124. package/dist/init.d.ts +19 -13
  125. package/dist/init.js +126 -42
  126. package/dist/plugins/action-owner-manifest.d.ts +3 -4
  127. package/dist/plugins/action-owner-manifest.js +10 -3
  128. package/dist/plugins/ast-scope.d.ts +10 -11
  129. package/dist/plugins/ast-scope.js +10 -22
  130. package/dist/plugins/ast-utils.d.ts +16 -29
  131. package/dist/plugins/ast-utils.js +27 -71
  132. package/dist/plugins/async-hooks-stub.d.ts +2 -3
  133. package/dist/plugins/client-reference-dedup.d.ts +4 -5
  134. package/dist/plugins/commonjs-syntax.d.ts +16 -0
  135. package/dist/plugins/commonjs-syntax.js +22 -0
  136. package/dist/plugins/css-data-url.d.ts +2 -3
  137. package/dist/plugins/css-module-imports.d.ts +3 -4
  138. package/dist/plugins/css-module-imports.js +1 -1
  139. package/dist/plugins/dynamic-preload-metadata.d.ts +3 -4
  140. package/dist/plugins/dynamic-preload-metadata.js +55 -154
  141. package/dist/plugins/environment.d.ts +2 -3
  142. package/dist/plugins/extensionless-dynamic-import.d.ts +2 -3
  143. package/dist/plugins/extensionless-dynamic-import.js +6 -10
  144. package/dist/plugins/fonts.d.ts +10 -11
  145. package/dist/plugins/fonts.js +4 -3
  146. package/dist/plugins/ignore-dynamic-requests.d.ts +14 -4
  147. package/dist/plugins/ignore-dynamic-requests.js +113 -91
  148. package/dist/plugins/import-meta-url.d.ts +6 -7
  149. package/dist/plugins/import-meta-url.js +36 -48
  150. package/dist/plugins/instrumentation-client.d.ts +3 -3
  151. package/dist/plugins/instrumentation-client.js +46 -10
  152. package/dist/plugins/middleware-export-validation.d.ts +3 -4
  153. package/dist/plugins/middleware-export-validation.js +3 -3
  154. package/dist/plugins/middleware-server-only.d.ts +2 -3
  155. package/dist/plugins/og-asset-ownership.d.ts +5 -4
  156. package/dist/plugins/og-asset-ownership.js +24 -13
  157. package/dist/plugins/og-assets.d.ts +22 -5
  158. package/dist/plugins/og-assets.js +82 -21
  159. package/dist/plugins/og-harfbuzz.d.ts +24 -0
  160. package/dist/plugins/og-harfbuzz.js +271 -0
  161. package/dist/plugins/optimize-imports.d.ts +7 -7
  162. package/dist/plugins/optimize-imports.js +34 -45
  163. package/dist/plugins/pages-node-externals.d.ts +2 -3
  164. package/dist/plugins/pages-node-externals.js +6 -11
  165. package/dist/plugins/postcss.d.ts +8 -4
  166. package/dist/plugins/postcss.js +1 -1
  167. package/dist/plugins/remove-console.d.ts +2 -3
  168. package/dist/plugins/remove-console.js +0 -1
  169. package/dist/plugins/require-condition-resolution.d.ts +3 -4
  170. package/dist/plugins/require-condition-resolution.js +17 -18
  171. package/dist/plugins/require-context.d.ts +3 -3
  172. package/dist/plugins/require-context.js +41 -22
  173. package/dist/plugins/rsc-client-reference-loaders.d.ts +2 -3
  174. package/dist/plugins/rsc-client-shim-excludes.d.ts +4 -5
  175. package/dist/plugins/rsc-client-shim-excludes.js +1 -0
  176. package/dist/plugins/rsc-reference-validation-normalizer.d.ts +2 -3
  177. package/dist/plugins/sass.d.ts +7 -8
  178. package/dist/plugins/sass.js +7 -4
  179. package/dist/plugins/scan-build-css.d.ts +12 -0
  180. package/dist/plugins/scan-build-css.js +39 -0
  181. package/dist/plugins/server-externals-manifest.d.ts +2 -3
  182. package/dist/plugins/strip-server-exports.d.ts +7 -6
  183. package/dist/plugins/strip-server-exports.js +4 -2
  184. package/dist/plugins/styled-jsx.d.ts +2 -3
  185. package/dist/plugins/styled-jsx.js +7 -7
  186. package/dist/plugins/transform-cache.d.ts +2 -3
  187. package/dist/plugins/transform-result.d.ts +21 -4
  188. package/dist/plugins/transform-result.js +23 -2
  189. package/dist/plugins/transitive-externals.d.ts +2 -3
  190. package/dist/plugins/typeof-window.d.ts +16 -7
  191. package/dist/plugins/typeof-window.js +62 -39
  192. package/dist/plugins/use-cache-callable.d.ts +2 -5
  193. package/dist/plugins/use-cache-callable.js +43 -22
  194. package/dist/plugins/wasm-module-import.d.ts +2 -3
  195. package/dist/plugins/worker-image-imports.d.ts +2 -3
  196. package/dist/plugins/worker-image-imports.js +6 -8
  197. package/dist/routing/app-route-graph.d.ts +18 -19
  198. package/dist/routing/app-route-graph.js +5 -6
  199. package/dist/routing/app-route-ids.d.ts +3 -0
  200. package/dist/routing/app-route-ids.js +6 -0
  201. package/dist/routing/app-router.d.ts +19 -6
  202. package/dist/routing/app-router.js +24 -2
  203. package/dist/routing/file-matcher.d.ts +9 -10
  204. package/dist/routing/pages-router.d.ts +6 -6
  205. package/dist/routing/pages-router.js +1 -1
  206. package/dist/routing/route-matching.d.ts +4 -5
  207. package/dist/routing/route-matching.js +4 -2
  208. package/dist/routing/route-pattern.d.ts +13 -14
  209. package/dist/routing/route-trie.d.ts +5 -6
  210. package/dist/routing/route-validation.d.ts +3 -4
  211. package/dist/routing/route-validation.js +12 -11
  212. package/dist/routing/utils.d.ts +13 -14
  213. package/dist/server/accept-encoding.d.ts +9 -10
  214. package/dist/server/api-handler.d.ts +2 -3
  215. package/dist/server/api-handler.js +9 -6
  216. package/dist/server/app-action-forwarding.d.ts +3 -4
  217. package/dist/server/app-action-forwarding.js +1 -1
  218. package/dist/server/app-action-request.d.ts +2 -3
  219. package/dist/server/app-bfcache-id.d.ts +4 -4
  220. package/dist/server/app-bfcache-id.js +7 -1
  221. package/dist/server/app-bfcache-identity.d.ts +8 -9
  222. package/dist/server/app-bfcache-identity.js +1 -2
  223. package/dist/server/app-browser-action-result.d.ts +15 -16
  224. package/dist/server/app-browser-client-reuse-manifest.d.ts +2 -3
  225. package/dist/server/app-browser-entry.js +91 -36
  226. package/dist/server/app-browser-error.d.ts +5 -6
  227. package/dist/server/app-browser-error.js +9 -3
  228. package/dist/server/app-browser-history-controller.d.ts +4 -5
  229. package/dist/server/app-browser-hydration.d.ts +16 -6
  230. package/dist/server/app-browser-hydration.js +15 -2
  231. package/dist/server/app-browser-interception-context.d.ts +3 -4
  232. package/dist/server/app-browser-mpa-navigation.d.ts +4 -5
  233. package/dist/server/app-browser-navigation-abort.d.ts +3 -4
  234. package/dist/server/app-browser-navigation-controller.d.ts +8 -8
  235. package/dist/server/app-browser-navigation-controller.js +9 -5
  236. package/dist/server/app-browser-navigation-response.d.ts +2 -3
  237. package/dist/server/app-browser-popstate.d.ts +4 -5
  238. package/dist/server/app-browser-prefetch-response.d.ts +5 -6
  239. package/dist/server/app-browser-rsc-redirect.d.ts +4 -5
  240. package/dist/server/app-browser-server-action-client.d.ts +7 -6
  241. package/dist/server/app-browser-server-action-client.js +9 -5
  242. package/dist/server/app-browser-server-action-navigation.d.ts +2 -3
  243. package/dist/server/app-browser-state.d.ts +17 -17
  244. package/dist/server/app-browser-state.js +7 -3
  245. package/dist/server/app-browser-stream.d.ts +5 -6
  246. package/dist/server/app-browser-stream.js +8 -6
  247. package/dist/server/app-browser-supplemental-refresh.d.ts +11 -12
  248. package/dist/server/app-browser-visible-commit.d.ts +6 -7
  249. package/dist/server/app-client-reference-preloader.d.ts +2 -3
  250. package/dist/server/app-elements-wire-key.d.ts +25 -0
  251. package/dist/server/app-elements-wire-key.js +69 -0
  252. package/dist/server/app-elements-wire.d.ts +34 -53
  253. package/dist/server/app-elements-wire.js +4 -75
  254. package/dist/server/app-elements.d.ts +5 -5
  255. package/dist/server/app-elements.js +1 -1
  256. package/dist/server/app-fallback-renderer.d.ts +4 -4
  257. package/dist/server/app-fallback-renderer.js +6 -6
  258. package/dist/server/app-fetch-tracing.d.ts +15 -0
  259. package/dist/server/app-fetch-tracing.js +38 -0
  260. package/dist/server/app-history-state.d.ts +25 -27
  261. package/dist/server/app-history-state.js +21 -16
  262. package/dist/server/app-hook-warning-suppression.d.ts +2 -3
  263. package/dist/server/app-hydration-cache-publication.d.ts +3 -4
  264. package/dist/server/app-inline-css-client.d.ts +3 -4
  265. package/dist/server/app-interception-context-header.d.ts +2 -3
  266. package/dist/server/app-layout-param-observation.d.ts +7 -8
  267. package/dist/server/app-metadata-tracing.d.ts +12 -0
  268. package/dist/server/app-metadata-tracing.js +17 -0
  269. package/dist/server/app-middleware.d.ts +7 -7
  270. package/dist/server/app-middleware.js +2 -3
  271. package/dist/server/app-mounted-slots-header.d.ts +2 -3
  272. package/dist/server/app-mounted-slots-header.js +2 -2
  273. package/dist/server/app-optimistic-routing.d.ts +10 -11
  274. package/dist/server/app-optimistic-routing.js +3 -2
  275. package/dist/server/app-page-boundary-render.d.ts +6 -6
  276. package/dist/server/app-page-boundary-render.js +10 -4
  277. package/dist/server/app-page-boundary.d.ts +9 -10
  278. package/dist/server/app-page-boundary.js +1 -1
  279. package/dist/server/app-page-cache-finalizer.d.ts +18 -9
  280. package/dist/server/app-page-cache-finalizer.js +51 -16
  281. package/dist/server/app-page-cache-render.d.ts +8 -5
  282. package/dist/server/app-page-cache-render.js +22 -4
  283. package/dist/server/app-page-cache.d.ts +28 -9
  284. package/dist/server/app-page-cache.js +95 -24
  285. package/dist/server/app-page-dispatch.d.ts +34 -12
  286. package/dist/server/app-page-dispatch.js +181 -64
  287. package/dist/server/app-page-element-builder.d.ts +13 -11
  288. package/dist/server/app-page-element-builder.js +104 -61
  289. package/dist/server/app-page-execution.d.ts +14 -14
  290. package/dist/server/app-page-execution.js +11 -7
  291. package/dist/server/app-page-head.d.ts +19 -16
  292. package/dist/server/app-page-head.js +25 -25
  293. package/dist/server/app-page-http-access-fallback-metadata.d.ts +6 -5
  294. package/dist/server/app-page-http-access-fallback-metadata.js +9 -2
  295. package/dist/server/app-page-method.d.ts +5 -11
  296. package/dist/server/app-page-method.js +2 -9
  297. package/dist/server/app-page-params.d.ts +5 -6
  298. package/dist/server/app-page-ppr-runtime.d.ts +2 -2
  299. package/dist/server/app-page-probe.d.ts +5 -6
  300. package/dist/server/app-page-probe.js +5 -4
  301. package/dist/server/app-page-render-identity.d.ts +4 -5
  302. package/dist/server/app-page-render-observation.d.ts +8 -9
  303. package/dist/server/app-page-render-observation.js +1 -1
  304. package/dist/server/app-page-render.d.ts +41 -6
  305. package/dist/server/app-page-render.js +171 -24
  306. package/dist/server/app-page-request.d.ts +10 -9
  307. package/dist/server/app-page-request.js +16 -12
  308. package/dist/server/app-page-response.d.ts +20 -9
  309. package/dist/server/app-page-response.js +30 -12
  310. package/dist/server/app-page-route-wiring.d.ts +15 -15
  311. package/dist/server/app-page-route-wiring.js +31 -24
  312. package/dist/server/app-page-search-params-observation.d.ts +26 -5
  313. package/dist/server/app-page-search-params-observation.js +43 -7
  314. package/dist/server/app-page-segment-plan.d.ts +2 -3
  315. package/dist/server/app-page-segment-state.d.ts +11 -12
  316. package/dist/server/app-page-stream.d.ts +27 -11
  317. package/dist/server/app-page-stream.js +34 -6
  318. package/dist/server/app-page-tracing.d.ts +33 -0
  319. package/dist/server/app-page-tracing.js +50 -0
  320. package/dist/server/app-pages-bridge.d.ts +6 -6
  321. package/dist/server/app-pages-bridge.js +18 -4
  322. package/dist/server/app-post-middleware-context.d.ts +2 -3
  323. package/dist/server/app-ppr-fallback-shell-render.d.ts +3 -4
  324. package/dist/server/app-ppr-fallback-shell-render.js +3 -2
  325. package/dist/server/app-ppr-fallback-shell.d.ts +6 -7
  326. package/dist/server/app-prerender-endpoints.d.ts +5 -5
  327. package/dist/server/app-prerender-endpoints.js +3 -1
  328. package/dist/server/app-prerender-static-params.d.ts +15 -7
  329. package/dist/server/app-prerender-static-params.js +24 -9
  330. package/dist/server/app-render-abort-error.d.ts +3 -0
  331. package/dist/server/app-render-abort-error.js +8 -0
  332. package/dist/server/app-render-dependency.d.ts +14 -13
  333. package/dist/server/app-render-dependency.js +5 -1
  334. package/dist/server/app-request-context.d.ts +3 -4
  335. package/dist/server/app-request-stage-context.d.ts +5 -0
  336. package/dist/server/app-request-stage-context.js +11 -0
  337. package/dist/server/app-request-stage-dispatch.d.ts +25 -0
  338. package/dist/server/app-request-stage-dispatch.js +54 -0
  339. package/dist/server/app-request-stage-independent-entry.d.ts +8 -0
  340. package/dist/server/app-request-stage-independent-entry.js +112 -0
  341. package/dist/server/app-response-header-provenance.d.ts +13 -7
  342. package/dist/server/app-response-header-provenance.js +34 -1
  343. package/dist/server/app-response-stage-entry.d.ts +9 -0
  344. package/dist/server/app-response-stage-entry.js +87 -0
  345. package/dist/server/app-route-handler-cache.d.ts +4 -4
  346. package/dist/server/app-route-handler-cache.js +51 -35
  347. package/dist/server/app-route-handler-dispatch.d.ts +3 -3
  348. package/dist/server/app-route-handler-dispatch.js +77 -56
  349. package/dist/server/app-route-handler-execution.d.ts +26 -14
  350. package/dist/server/app-route-handler-execution.js +94 -28
  351. package/dist/server/app-route-handler-middleware-context.d.ts +8 -0
  352. package/dist/server/app-route-handler-middleware-context.js +15 -0
  353. package/dist/server/app-route-handler-policy.d.ts +11 -11
  354. package/dist/server/app-route-handler-policy.js +2 -2
  355. package/dist/server/app-route-handler-response.d.ts +9 -10
  356. package/dist/server/app-route-handler-response.js +14 -3
  357. package/dist/server/app-route-handler-runtime.d.ts +9 -10
  358. package/dist/server/app-route-handler-runtime.js +20 -16
  359. package/dist/server/app-route-module-loader.d.ts +6 -7
  360. package/dist/server/app-route-request-built-ins.d.ts +3 -4
  361. package/dist/server/app-route-tree-prefetch.d.ts +6 -7
  362. package/dist/server/app-route-tree-prefetch.js +2 -1
  363. package/dist/server/app-router-entry.d.ts +4 -1
  364. package/dist/server/app-router-entry.js +33 -17
  365. package/dist/server/app-rsc-cache-busting.d.ts +34 -27
  366. package/dist/server/app-rsc-cache-busting.js +14 -2
  367. package/dist/server/app-rsc-combined-handler.d.ts +9 -0
  368. package/dist/server/app-rsc-combined-handler.js +11 -0
  369. package/dist/server/app-rsc-embedded-chunks.d.ts +6 -7
  370. package/dist/server/app-rsc-error-handler.d.ts +12 -6
  371. package/dist/server/app-rsc-error-handler.js +15 -6
  372. package/dist/server/app-rsc-errors.d.ts +11 -9
  373. package/dist/server/app-rsc-errors.js +14 -16
  374. package/dist/server/app-rsc-handler.d.ts +32 -6
  375. package/dist/server/app-rsc-handler.js +425 -64
  376. package/dist/server/app-rsc-redirect-flight.d.ts +4 -5
  377. package/dist/server/app-rsc-render-mode.d.ts +8 -9
  378. package/dist/server/app-rsc-request-normalization.d.ts +3 -3
  379. package/dist/server/app-rsc-request-normalization.js +5 -3
  380. package/dist/server/app-rsc-response-finalizer.d.ts +8 -5
  381. package/dist/server/app-rsc-response-finalizer.js +10 -7
  382. package/dist/server/app-rsc-response-stage.d.ts +6 -0
  383. package/dist/server/app-rsc-response-stage.js +251 -0
  384. package/dist/server/app-rsc-route-matching.d.ts +3 -4
  385. package/dist/server/app-rsc-route-matching.js +3 -2
  386. package/dist/server/app-rsc-state-fingerprint.d.ts +3 -4
  387. package/dist/server/app-rsc-vary.d.ts +16 -0
  388. package/dist/server/app-rsc-vary.js +31 -0
  389. package/dist/server/app-segment-config.d.ts +119 -7
  390. package/dist/server/app-segment-config.js +242 -2
  391. package/dist/server/app-server-action-execution.d.ts +18 -13
  392. package/dist/server/app-server-action-execution.js +86 -33
  393. package/dist/server/app-ssr-entry.d.ts +14 -4
  394. package/dist/server/app-ssr-entry.js +62 -15
  395. package/dist/server/app-ssr-error-meta.d.ts +3 -4
  396. package/dist/server/app-ssr-error-meta.js +2 -1
  397. package/dist/server/app-ssr-router-instance.d.ts +2 -3
  398. package/dist/server/app-ssr-search-params-gate.d.ts +20 -0
  399. package/dist/server/app-ssr-search-params-gate.js +54 -0
  400. package/dist/server/app-ssr-stream.d.ts +13 -9
  401. package/dist/server/app-ssr-stream.js +34 -8
  402. package/dist/server/app-static-generation.d.ts +4 -5
  403. package/dist/server/app-visited-response-cache.d.ts +11 -12
  404. package/dist/server/app-visited-response-cache.js +2 -2
  405. package/dist/server/app-worker-stages.d.ts +112 -0
  406. package/dist/server/app-worker-stages.js +105 -0
  407. package/dist/server/artifact-compatibility.d.ts +11 -12
  408. package/dist/server/before-interactive-head.d.ts +2 -3
  409. package/dist/server/bfcache-identity.d.ts +7 -8
  410. package/dist/server/cache-control.d.ts +35 -13
  411. package/dist/server/cache-control.js +64 -6
  412. package/dist/server/cache-headers.d.ts +3 -4
  413. package/dist/server/cache-proof.d.ts +75 -70
  414. package/dist/server/cache-proof.js +9 -1
  415. package/dist/server/cacheability-limits.d.ts +4 -5
  416. package/dist/server/cacheability-limits.js +2 -2
  417. package/dist/server/cacheability-manifest.d.ts +42 -16
  418. package/dist/server/cacheability-manifest.js +60 -10
  419. package/dist/server/cacheability-request.d.ts +37 -8
  420. package/dist/server/cacheability-request.js +192 -90
  421. package/dist/server/client-reuse-manifest.d.ts +17 -18
  422. package/dist/server/client-reuse-manifest.js +2 -2
  423. package/dist/server/client-trace-metadata.d.ts +9 -6
  424. package/dist/server/client-trace-metadata.js +27 -15
  425. package/dist/server/cloudflare-workers-tracing.d.ts +1 -0
  426. package/dist/server/cloudflare-workers-tracing.js +8 -0
  427. package/dist/server/config-headers.d.ts +19 -5
  428. package/dist/server/config-headers.js +25 -11
  429. package/dist/server/cookie-utils.d.ts +2 -3
  430. package/dist/server/csp.d.ts +5 -6
  431. package/dist/server/default-global-error-module.d.ts +2 -3
  432. package/dist/server/default-global-not-found-module.d.ts +2 -3
  433. package/dist/server/default-not-found-module.d.ts +2 -3
  434. package/dist/server/defer-until-stream-consumed.d.ts +2 -3
  435. package/dist/server/defer-until-stream-consumed.js +2 -1
  436. package/dist/server/dev-initial-server-error.d.ts +3 -4
  437. package/dist/server/dev-initial-server-error.js +2 -1
  438. package/dist/server/dev-lockfile.d.ts +7 -8
  439. package/dist/server/dev-lockfile.js +4 -1
  440. package/dist/server/dev-module-runner.d.ts +2 -3
  441. package/dist/server/dev-origin-check.d.ts +5 -6
  442. package/dist/server/dev-route-files.d.ts +2 -3
  443. package/dist/server/dev-server.d.ts +4 -5
  444. package/dist/server/dev-server.js +141 -64
  445. package/dist/server/dev-stack-sourcemap.d.ts +7 -7
  446. package/dist/server/dev-stack-sourcemap.js +1 -1
  447. package/dist/server/document-initial-head.d.ts +3 -4
  448. package/dist/server/edge-api-runtime.d.ts +4 -5
  449. package/dist/server/fetch-handler.d.ts +3 -2
  450. package/dist/server/fetch-handler.js +3 -18
  451. package/dist/server/file-based-metadata.d.ts +2 -3
  452. package/dist/server/framework-tracer.d.ts +46 -0
  453. package/dist/server/framework-tracer.js +125 -0
  454. package/dist/server/fully-buffered-response.d.ts +11 -0
  455. package/dist/server/fully-buffered-response.js +19 -0
  456. package/dist/server/headers.d.ts +56 -61
  457. package/dist/server/headers.js +22 -31
  458. package/dist/server/html.d.ts +6 -27
  459. package/dist/server/html.js +16 -1
  460. package/dist/server/http-conditional.d.ts +5 -6
  461. package/dist/server/http-date.d.ts +2 -3
  462. package/dist/server/http-error-responses.d.ts +9 -10
  463. package/dist/server/http-error-responses.js +1 -0
  464. package/dist/server/http-range.d.ts +4 -5
  465. package/dist/server/hybrid-route-priority.d.ts +4 -5
  466. package/dist/server/image-optimization.d.ts +20 -21
  467. package/dist/server/implicit-tags.d.ts +3 -4
  468. package/dist/server/instrumentation-runtime.d.ts +17 -21
  469. package/dist/server/instrumentation-runtime.js +26 -8
  470. package/dist/server/instrumentation.d.ts +26 -30
  471. package/dist/server/instrumentation.js +18 -23
  472. package/dist/server/isr-cache.d.ts +30 -27
  473. package/dist/server/isr-cache.js +23 -70
  474. package/dist/server/isr-decision.d.ts +4 -4
  475. package/dist/server/metadata-route-build-data.d.ts +4 -5
  476. package/dist/server/metadata-route-response.d.ts +7 -7
  477. package/dist/server/metadata-route-response.js +158 -35
  478. package/dist/server/metadata-routes.d.ts +18 -19
  479. package/dist/server/middleware-matcher-pattern.d.ts +6 -7
  480. package/dist/server/middleware-matcher.d.ts +6 -7
  481. package/dist/server/middleware-path-to-regexp.d.ts +6 -7
  482. package/dist/server/middleware-path-to-regexp.js +11 -9
  483. package/dist/server/middleware-response-headers.d.ts +3 -4
  484. package/dist/server/middleware-runtime.d.ts +7 -8
  485. package/dist/server/middleware-runtime.js +36 -7
  486. package/dist/server/middleware.d.ts +5 -5
  487. package/dist/server/multi-stage.d.ts +141 -0
  488. package/dist/server/multi-stage.js +8 -0
  489. package/dist/server/navigation-planner.d.ts +26 -26
  490. package/dist/server/navigation-trace.d.ts +11 -12
  491. package/dist/server/next-error-digest.d.ts +4 -5
  492. package/dist/server/normalize-path.d.ts +5 -6
  493. package/dist/server/open-redirect.d.ts +2 -3
  494. package/dist/server/opentelemetry-api.d.ts +59 -0
  495. package/dist/server/opentelemetry-api.js +53 -0
  496. package/dist/server/opentelemetry-tracing.d.ts +5 -0
  497. package/dist/server/opentelemetry-tracing.js +83 -0
  498. package/dist/server/operation-token.d.ts +11 -12
  499. package/dist/server/otel-tracer-extension.d.ts +7 -9
  500. package/dist/server/otel-tracer-extension.js +37 -36
  501. package/dist/server/pages-api-route.d.ts +5 -4
  502. package/dist/server/pages-api-route.js +28 -9
  503. package/dist/server/pages-asset-tags.d.ts +7 -6
  504. package/dist/server/pages-asset-tags.js +104 -18
  505. package/dist/server/pages-body-parser-config.d.ts +4 -5
  506. package/dist/server/pages-body-parser-config.js +4 -4
  507. package/dist/server/pages-client-assets.d.ts +13 -5
  508. package/dist/server/pages-data-route.d.ts +11 -12
  509. package/dist/server/pages-data-route.js +1 -1
  510. package/dist/server/pages-default-404.d.ts +3 -4
  511. package/dist/server/pages-dev-hydration.d.ts +9 -4
  512. package/dist/server/pages-dev-hydration.js +19 -7
  513. package/dist/server/pages-dev-module-url.d.ts +3 -4
  514. package/dist/server/pages-dev-stylesheets.d.ts +5 -6
  515. package/dist/server/pages-document-asset-props.d.ts +6 -7
  516. package/dist/server/pages-document-initial-props.d.ts +5 -5
  517. package/dist/server/pages-document-initial-props.js +4 -2
  518. package/dist/server/pages-execution-tracing.d.ts +40 -0
  519. package/dist/server/pages-execution-tracing.js +80 -0
  520. package/dist/server/pages-get-initial-props.d.ts +9 -10
  521. package/dist/server/pages-i18n.d.ts +8 -8
  522. package/dist/server/pages-media-type.d.ts +4 -5
  523. package/dist/server/pages-node-compat.d.ts +11 -10
  524. package/dist/server/pages-node-compat.js +12 -4
  525. package/dist/server/pages-page-data.d.ts +23 -19
  526. package/dist/server/pages-page-data.js +82 -75
  527. package/dist/server/pages-page-handler.d.ts +7 -6
  528. package/dist/server/pages-page-handler.js +103 -47
  529. package/dist/server/pages-page-method.d.ts +2 -3
  530. package/dist/server/pages-page-response.d.ts +14 -10
  531. package/dist/server/pages-page-response.js +52 -32
  532. package/dist/server/pages-preview.d.ts +10 -11
  533. package/dist/server/pages-readiness.d.ts +2 -3
  534. package/dist/server/pages-request-pipeline.d.ts +15 -12
  535. package/dist/server/pages-request-pipeline.js +80 -35
  536. package/dist/server/pages-request-stage-entry.d.ts +23 -0
  537. package/dist/server/pages-request-stage-entry.js +316 -0
  538. package/dist/server/pages-response-stage-entry.d.ts +11 -0
  539. package/dist/server/pages-response-stage-entry.js +106 -0
  540. package/dist/server/pages-response-stage.d.ts +31 -0
  541. package/dist/server/pages-response-stage.js +49 -0
  542. package/dist/server/pages-revalidate.d.ts +3 -4
  543. package/dist/server/pages-revalidate.js +9 -4
  544. package/dist/server/pages-route-data-kind.d.ts +18 -0
  545. package/dist/server/pages-route-data-kind.js +11 -0
  546. package/dist/server/pages-router-entry.d.ts +1 -25
  547. package/dist/server/pages-router-entry.js +35 -148
  548. package/dist/server/pages-serializable-props.d.ts +3 -4
  549. package/dist/server/pregenerated-concrete-paths.d.ts +9 -7
  550. package/dist/server/pregenerated-concrete-paths.js +12 -6
  551. package/dist/server/prerender-cache-life-header.d.ts +3 -4
  552. package/dist/server/prerender-manifest.d.ts +17 -11
  553. package/dist/server/prerender-manifest.js +7 -4
  554. package/dist/server/prerender-route-params.d.ts +16 -9
  555. package/dist/server/prerender-route-params.js +18 -3
  556. package/dist/server/prerender-work-unit-setup.d.ts +2 -3
  557. package/dist/server/prerender-work-unit-setup.js +5 -5
  558. package/dist/server/prod-server.d.ts +12 -9
  559. package/dist/server/prod-server.js +127 -44
  560. package/dist/server/proxy-trust.d.ts +5 -6
  561. package/dist/server/request-log.d.ts +3 -4
  562. package/dist/server/request-pipeline.d.ts +16 -16
  563. package/dist/server/request-pipeline.js +7 -2
  564. package/dist/server/request-stage.d.ts +5 -0
  565. package/dist/server/request-stage.js +7 -0
  566. package/dist/server/request-tracing.d.ts +22 -0
  567. package/dist/server/request-tracing.js +180 -0
  568. package/dist/server/response-stage-cacheability.d.ts +37 -0
  569. package/dist/server/response-stage-cacheability.js +55 -0
  570. package/dist/server/response-stage-policy.d.ts +23 -0
  571. package/dist/server/response-stage-policy.js +89 -0
  572. package/dist/server/response-stage.d.ts +5 -0
  573. package/dist/server/response-stage.js +7 -0
  574. package/dist/server/response-start-tracing.d.ts +14 -0
  575. package/dist/server/response-start-tracing.js +80 -0
  576. package/dist/server/revalidation-host.d.ts +2 -3
  577. package/dist/server/revalidation-host.js +1 -1
  578. package/dist/server/revalidation-request.d.ts +8 -0
  579. package/dist/server/revalidation-request.js +37 -0
  580. package/dist/server/rsc-completion-metadata.d.ts +6 -7
  581. package/dist/server/rsc-stream-hints.d.ts +18 -7
  582. package/dist/server/rsc-stream-hints.js +70 -35
  583. package/dist/server/seed-cache.d.ts +2 -3
  584. package/dist/server/seed-cache.js +8 -7
  585. package/dist/server/server-action-not-found.d.ts +5 -6
  586. package/dist/server/server-globals.d.ts +2 -3
  587. package/dist/server/skip-cache-proof.d.ts +4 -4
  588. package/dist/server/socket-error-backstop.d.ts +5 -6
  589. package/dist/server/socket-error-backstop.js +1 -1
  590. package/dist/server/static-file-cache.d.ts +5 -6
  591. package/dist/server/static-file-cache.js +9 -7
  592. package/dist/server/static-file-signal.d.ts +9 -6
  593. package/dist/server/static-file-signal.js +51 -2
  594. package/dist/server/static-layout-client-reuse-proof.d.ts +4 -5
  595. package/dist/server/streaming-metadata.d.ts +2 -3
  596. package/dist/server/tracer.d.ts +5 -0
  597. package/dist/server/tracer.js +13 -0
  598. package/dist/server/worker-prerender-discovery.d.ts +5 -6
  599. package/dist/server/worker-revalidation-context.d.ts +4 -4
  600. package/dist/server/worker-revalidation-context.js +6 -5
  601. package/dist/server/worker-stages.d.ts +43 -0
  602. package/dist/server/worker-stages.js +25 -0
  603. package/dist/server/worker-utils.d.ts +5 -6
  604. package/dist/server/worker-utils.js +2 -1
  605. package/dist/server/workers-tracing.d.ts +34 -0
  606. package/dist/server/workers-tracing.js +67 -0
  607. package/dist/shims/amp.d.ts +3 -4
  608. package/dist/shims/app-router-scroll-state.d.ts +9 -10
  609. package/dist/shims/app-router-scroll.d.ts +4 -5
  610. package/dist/shims/app-router-scroll.js +2 -1
  611. package/dist/shims/app.d.ts +5 -6
  612. package/dist/shims/before-interactive-context.d.ts +5 -6
  613. package/dist/shims/cache-callable-runtime.d.ts +44 -4
  614. package/dist/shims/cache-callable-runtime.js +168 -8
  615. package/dist/shims/cache-for-request.d.ts +2 -3
  616. package/dist/shims/cache-handler.d.ts +33 -20
  617. package/dist/shims/cache-handler.js +61 -2
  618. package/dist/shims/cache-request-state.d.ts +26 -38
  619. package/dist/shims/cache-request-state.js +2 -13
  620. package/dist/shims/cache-runtime.d.ts +23 -21
  621. package/dist/shims/cache-runtime.js +110 -28
  622. package/dist/shims/cache.d.ts +17 -16
  623. package/dist/shims/cache.js +19 -15
  624. package/dist/shims/cacheability-classification.d.ts +50 -29
  625. package/dist/shims/cacheability-classification.js +29 -14
  626. package/dist/shims/cdn-cache-state.d.ts +13 -0
  627. package/dist/shims/cdn-cache-state.js +23 -0
  628. package/dist/shims/cdn-cache.d.ts +59 -21
  629. package/dist/shims/cdn-cache.js +31 -47
  630. package/dist/shims/client-hook-error.d.ts +3 -4
  631. package/dist/shims/client-locale.d.ts +2 -3
  632. package/dist/shims/client-page-root.d.ts +24 -0
  633. package/dist/shims/client-page-root.js +121 -0
  634. package/dist/shims/compat-router.d.ts +2 -3
  635. package/dist/shims/config.d.ts +3 -4
  636. package/dist/shims/constants.d.ts +73 -74
  637. package/dist/shims/constants.js +1 -1
  638. package/dist/shims/default-not-found.d.ts +2 -3
  639. package/dist/shims/document.d.ts +9 -9
  640. package/dist/shims/dynamic-preload-chunks.d.ts +2 -3
  641. package/dist/shims/dynamic-preload-chunks.js +17 -13
  642. package/dist/shims/dynamic.d.ts +3 -3
  643. package/dist/shims/error-boundary-navigation.d.ts +3 -4
  644. package/dist/shims/error-boundary.d.ts +17 -18
  645. package/dist/shims/error-boundary.js +17 -11
  646. package/dist/shims/error.d.ts +5 -19
  647. package/dist/shims/error.js +17 -10
  648. package/dist/shims/error.react-server.d.ts +4 -7
  649. package/dist/shims/error.react-server.js +4 -1
  650. package/dist/shims/fetch-cache.d.ts +22 -22
  651. package/dist/shims/fetch-cache.js +46 -20
  652. package/dist/shims/font-google-base.d.ts +9 -9
  653. package/dist/shims/font-google-base.js +2 -1
  654. package/dist/shims/font-local.d.ts +3 -3
  655. package/dist/shims/font-local.js +1 -1
  656. package/dist/shims/font-utils.d.ts +14 -15
  657. package/dist/shims/form.d.ts +2 -2
  658. package/dist/shims/form.js +10 -7
  659. package/dist/shims/hash-scroll.d.ts +5 -6
  660. package/dist/shims/head-state.d.ts +4 -5
  661. package/dist/shims/head.d.ts +16 -16
  662. package/dist/shims/head.js +5 -4
  663. package/dist/shims/headers.d.ts +44 -73
  664. package/dist/shims/headers.js +87 -144
  665. package/dist/shims/i18n-context.d.ts +5 -6
  666. package/dist/shims/i18n-state.d.ts +4 -5
  667. package/dist/shims/image-config.d.ts +5 -6
  668. package/dist/shims/image-config.js +2 -0
  669. package/dist/shims/image.d.ts +5 -5
  670. package/dist/shims/image.js +12 -8
  671. package/dist/shims/internal/als-registry.d.ts +4 -5
  672. package/dist/shims/internal/api-utils.d.ts +3 -4
  673. package/dist/shims/internal/app-page-props-cache-key.d.ts +32 -4
  674. package/dist/shims/internal/app-page-props-cache-key.js +53 -1
  675. package/dist/shims/internal/app-prefetch-fetch-queue.d.ts +5 -6
  676. package/dist/shims/internal/app-prefetch-rsc-request.d.ts +5 -17
  677. package/dist/shims/internal/app-prefetch-rsc-request.js +5 -14
  678. package/dist/shims/internal/app-route-detection.d.ts +2 -2
  679. package/dist/shims/internal/app-route-prefetch-policy.d.ts +5 -8
  680. package/dist/shims/internal/app-route-prefetch-policy.js +0 -1
  681. package/dist/shims/internal/app-router-context.d.ts +9 -10
  682. package/dist/shims/internal/cache-context-accessor.d.ts +16 -0
  683. package/dist/shims/internal/cache-context-accessor.js +15 -0
  684. package/dist/shims/internal/cookie-serialize.d.ts +4 -5
  685. package/dist/shims/internal/format-url-object.d.ts +7 -0
  686. package/dist/shims/internal/format-url-object.js +53 -0
  687. package/dist/shims/internal/headers-state.d.ts +74 -0
  688. package/dist/shims/internal/headers-state.js +157 -0
  689. package/dist/shims/internal/hybrid-client-route-owner-direct.d.ts +6 -7
  690. package/dist/shims/internal/hybrid-client-route-owner.d.ts +3 -3
  691. package/dist/shims/internal/hybrid-client-route-owner.js +3 -2
  692. package/dist/shims/internal/interpolate-as.d.ts +5 -6
  693. package/dist/shims/internal/interpolate-as.js +4 -2
  694. package/dist/shims/internal/link-status-registry.d.ts +5 -6
  695. package/dist/shims/internal/make-hanging-promise.d.ts +3 -4
  696. package/dist/shims/internal/navigation-untracked.d.ts +2 -3
  697. package/dist/shims/internal/normalize-router-href.d.ts +15 -0
  698. package/dist/shims/internal/normalize-router-href.js +41 -0
  699. package/dist/shims/internal/pages-data-fetch-dedup.d.ts +8 -9
  700. package/dist/shims/internal/pages-data-target.d.ts +8 -6
  701. package/dist/shims/internal/pages-data-target.js +32 -36
  702. package/dist/shims/internal/pages-data-url.d.ts +4 -5
  703. package/dist/shims/internal/pages-data-url.js +2 -1
  704. package/dist/shims/internal/pages-router-accessor.d.ts +3 -4
  705. package/dist/shims/internal/pages-router-components.d.ts +3 -4
  706. package/dist/shims/internal/route-pattern-for-warning.d.ts +5 -6
  707. package/dist/shims/internal/route-pattern-for-warning.js +3 -3
  708. package/dist/shims/internal/router-context.d.ts +2 -3
  709. package/dist/shims/internal/thenable-well-known-properties.d.ts +10 -0
  710. package/dist/shims/internal/thenable-well-known-properties.js +33 -0
  711. package/dist/shims/internal/utils.d.ts +7 -8
  712. package/dist/shims/internal/work-unit-async-storage.d.ts +10 -11
  713. package/dist/shims/layout-segment-context.d.ts +3 -4
  714. package/dist/shims/link-prefetch.d.ts +9 -10
  715. package/dist/shims/link.d.ts +4 -4
  716. package/dist/shims/link.js +56 -116
  717. package/dist/shims/metadata.d.ts +15 -16
  718. package/dist/shims/metadata.js +40 -36
  719. package/dist/shims/navigation-context-accessors.d.ts +9 -0
  720. package/dist/shims/navigation-context-accessors.js +19 -0
  721. package/dist/shims/navigation-context-state.d.ts +27 -18
  722. package/dist/shims/navigation-errors.d.ts +18 -19
  723. package/dist/shims/navigation-state.d.ts +6 -7
  724. package/dist/shims/navigation.d.ts +80 -68
  725. package/dist/shims/navigation.js +26 -18
  726. package/dist/shims/navigation.react-server.d.ts +9 -9
  727. package/dist/shims/offline.d.ts +2 -3
  728. package/dist/shims/og.d.ts +2 -2
  729. package/dist/shims/pages-router-runtime.d.ts +4 -5
  730. package/dist/shims/ppr-fallback-shell.d.ts +13 -14
  731. package/dist/shims/readonly-url-search-params.d.ts +2 -3
  732. package/dist/shims/request-context.d.ts +5 -6
  733. package/dist/shims/request-state-types.d.ts +2 -1
  734. package/dist/shims/root-params.d.ts +14 -15
  735. package/dist/shims/root-params.js +1 -1
  736. package/dist/shims/router-state.d.ts +5 -6
  737. package/dist/shims/router-state.js +1 -1
  738. package/dist/shims/router.d.ts +22 -21
  739. package/dist/shims/router.js +339 -164
  740. package/dist/shims/script-nonce-context.d.ts +8 -6
  741. package/dist/shims/script-nonce-context.js +15 -6
  742. package/dist/shims/script.d.ts +4 -4
  743. package/dist/shims/script.js +9 -7
  744. package/dist/shims/search-params-gate.d.ts +35 -0
  745. package/dist/shims/search-params-gate.js +32 -0
  746. package/dist/shims/server.d.ts +19 -51
  747. package/dist/shims/server.js +66 -30
  748. package/dist/shims/slot.d.ts +33 -15
  749. package/dist/shims/slot.js +41 -9
  750. package/dist/shims/streamed-icons.d.ts +3 -4
  751. package/dist/shims/thenable-params.d.ts +5 -7
  752. package/dist/shims/thenable-params.js +3 -24
  753. package/dist/shims/unified-request-context.d.ts +35 -32
  754. package/dist/shims/unified-request-context.js +34 -24
  755. package/dist/shims/unrecognized-action-error.d.ts +3 -4
  756. package/dist/shims/url-safety.d.ts +5 -6
  757. package/dist/shims/url-utils.d.ts +12 -13
  758. package/dist/shims/use-merged-ref.d.ts +2 -3
  759. package/dist/shims/user-agent.d.ts +31 -0
  760. package/dist/shims/user-agent.js +16 -0
  761. package/dist/shims/web-vitals.d.ts +2 -2
  762. package/dist/typegen.d.ts +3 -4
  763. package/dist/utils/asset-prefix.d.ts +7 -8
  764. package/dist/utils/base-path.d.ts +5 -6
  765. package/dist/utils/built-asset-url.d.ts +2 -3
  766. package/dist/utils/built-asset-url.js +1 -1
  767. package/dist/utils/cache-control-metadata.d.ts +4 -5
  768. package/dist/utils/client-build-manifest.d.ts +6 -7
  769. package/dist/utils/client-build-manifest.js +2 -1
  770. package/dist/utils/client-entry-manifest.d.ts +6 -7
  771. package/dist/utils/client-runtime-metadata.d.ts +8 -3
  772. package/dist/utils/client-runtime-metadata.js +18 -1
  773. package/dist/utils/commonjs-loader.d.ts +4 -5
  774. package/dist/utils/compare.d.ts +2 -3
  775. package/dist/utils/deployment-id.d.ts +6 -7
  776. package/dist/utils/dev-error-recovery-event.d.ts +2 -3
  777. package/dist/utils/dev-stack-sourcemap-endpoint.d.ts +2 -3
  778. package/dist/utils/domain-locale.d.ts +7 -8
  779. package/dist/utils/encode-cache-tag.d.ts +4 -4
  780. package/dist/utils/encode-cache-tag.js +11 -1
  781. package/dist/utils/error-cause.d.ts +2 -3
  782. package/dist/utils/external-url.d.ts +2 -3
  783. package/dist/utils/has-trailing-comma.d.ts +3 -4
  784. package/dist/utils/hash.d.ts +3 -4
  785. package/dist/utils/html-limited-bots.d.ts +3 -4
  786. package/dist/utils/lazy-chunks.d.ts +8 -9
  787. package/dist/utils/lazy-chunks.js +4 -4
  788. package/dist/utils/manifest-paths.d.ts +5 -6
  789. package/dist/utils/mdx-scan.d.ts +11 -4
  790. package/dist/utils/mdx-scan.js +27 -1
  791. package/dist/utils/middleware-request-headers.d.ts +7 -6
  792. package/dist/utils/middleware-request-headers.js +6 -1
  793. package/dist/utils/navigation-signal.d.ts +3 -3
  794. package/dist/utils/navigation-signal.js +16 -1
  795. package/dist/utils/number.d.ts +2 -3
  796. package/dist/utils/package-name.d.ts +3 -4
  797. package/dist/utils/parse-cookie.d.ts +4 -5
  798. package/dist/utils/path.d.ts +8 -9
  799. package/dist/utils/plugin-options.d.ts +2 -3
  800. package/dist/utils/precompressed-variant.d.ts +3 -4
  801. package/dist/utils/prerender-output-paths.d.ts +4 -5
  802. package/dist/utils/project.d.ts +19 -30
  803. package/dist/utils/project.js +20 -29
  804. package/dist/utils/promise.d.ts +2 -3
  805. package/dist/utils/protocol-headers.d.ts +14 -15
  806. package/dist/utils/public-file-path.d.ts +2 -3
  807. package/dist/utils/public-routes.d.ts +2 -3
  808. package/dist/utils/query.d.ts +14 -9
  809. package/dist/utils/query.js +22 -1
  810. package/dist/utils/react-compiler-support.d.ts +6 -7
  811. package/dist/utils/react-version.d.ts +4 -3
  812. package/dist/utils/react-version.js +19 -1
  813. package/dist/utils/record.d.ts +2 -3
  814. package/dist/utils/redirect-digest.d.ts +3 -4
  815. package/dist/utils/regex-safety.d.ts +4 -5
  816. package/dist/utils/regex.d.ts +2 -3
  817. package/dist/utils/safe-json-file.d.ts +2 -3
  818. package/dist/utils/sorted-array.d.ts +2 -3
  819. package/dist/utils/text-stream.d.ts +3 -4
  820. package/dist/utils/vinext-root.d.ts +2 -3
  821. package/dist/utils/virtual-module.d.ts +3 -4
  822. package/dist/utils/vite-cli-invocation.d.ts +21 -0
  823. package/dist/utils/vite-cli-invocation.js +151 -0
  824. package/dist/utils/vite-version.d.ts +5 -6
  825. package/next-package.json +4 -0
  826. package/package.json +51 -6
  827. package/dist/server/metadata-route-cache-policy.d.ts +0 -6
  828. package/dist/server/metadata-route-cache-policy.js +0 -6
@@ -1,15 +1,17 @@
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
- import { HeadersAccessPhase } from "../shims/headers.js";
7
+ import { HeadersAccessPhase } from "../shims/internal/headers-state.js";
8
+ import "../shims/headers.js";
7
9
  import { RouteHandlerMiddlewareContext } from "./app-route-handler-response.js";
8
10
  import { AppRouteHandlerModule } from "./app-route-handler-policy.js";
9
11
  //#region src/server/app-route-handler-execution.d.ts
10
- type AppRouteParams = Record<string, string | string[]>;
11
- type AppRouteDynamicUsageFn = () => boolean;
12
- type MarkAppRouteDynamicUsageFn = () => void;
12
+ export type AppRouteParams = Record<string, string | string[]>;
13
+ export type AppRouteDynamicUsageFn = () => boolean;
14
+ export type MarkAppRouteDynamicUsageFn = () => void;
13
15
  /**
14
16
  * Route handler context.
15
17
  *
@@ -21,11 +23,11 @@ type MarkAppRouteDynamicUsageFn = () => void;
21
23
  * See: test/e2e/app-dir/app-routes/app-custom-routes.test.ts in Next.js for
22
24
  * the authoritative assertion (`expect(meta.params).toEqual(null)`).
23
25
  */
24
- type AppRouteHandlerFunction = (request: NextRequest, context: {
26
+ export type AppRouteHandlerFunction = (request: NextRequest, context: {
25
27
  params: AppRouteParams | null;
26
28
  }) => Response | Promise<Response>;
27
- type RouteHandlerCacheSetter = (key: string, data: CachedRouteValue, policy: IsrWritePolicy) => Promise<void>;
28
- type AppRouteErrorReporter = (error: Error, request: {
29
+ export type RouteHandlerCacheSetter = (key: string, data: CachedRouteValue, policy: IsrWritePolicy) => Promise<void>;
30
+ type AppRouteErrorReporter = (error: unknown, request: {
29
31
  path: string;
30
32
  method: string;
31
33
  headers: Record<string, string>;
@@ -33,8 +35,9 @@ type AppRouteErrorReporter = (error: Error, request: {
33
35
  routerKind: "App Router";
34
36
  routePath: string;
35
37
  routeType: "route";
36
- }) => void;
37
- type AppRouteDebugLogger = (event: string, detail: string) => void;
38
+ revalidateReason: "on-demand" | "stale" | undefined;
39
+ }) => void | Promise<void>;
40
+ export type AppRouteDebugLogger = (event: string, detail: string) => void;
38
41
  type RunAppRouteHandlerOptions = {
39
42
  basePath?: string;
40
43
  consumeDynamicUsage: AppRouteDynamicUsageFn;
@@ -60,9 +63,15 @@ type RunAppRouteHandlerResult = {
60
63
  dynamicUsedInHandler: boolean;
61
64
  response: Response;
62
65
  };
63
- declare function applyDraftModeCachePolicy(response: Response, isDraftMode: boolean): Response;
66
+ type CompletedAppRouteHandlerResponse = {
67
+ completed: boolean;
68
+ response: Response;
69
+ };
70
+ export declare function completeAppRouteHandlerResponse(response: Response): Promise<CompletedAppRouteHandlerResponse>;
71
+ export declare function applyDraftModeCachePolicy(response: Response, isDraftMode: boolean): Response;
64
72
  type ExecuteAppRouteHandlerOptions = {
65
73
  buildPageCacheTags: (pathname: string, extraTags: string[]) => string[];
74
+ bypassSharedCache?: boolean;
66
75
  clearRequestContext: () => void;
67
76
  cleanPathname: string;
68
77
  executionContext: ExecutionContextLike | null;
@@ -75,6 +84,8 @@ type ExecuteAppRouteHandlerOptions = {
75
84
  initialDraftModeCookie?: string | null;
76
85
  isDraftMode?: boolean;
77
86
  isProduction: boolean;
87
+ /** An existing entry may require foreground regeneration after hard expiry. */
88
+ isRevalidation?: boolean;
78
89
  isrDebug?: AppRouteDebugLogger;
79
90
  isrRouteKey: (pathname: string) => string;
80
91
  isrSet: RouteHandlerCacheSetter;
@@ -83,10 +94,11 @@ type ExecuteAppRouteHandlerOptions = {
83
94
  reportRequestError: AppRouteErrorReporter;
84
95
  expireSeconds?: number;
85
96
  revalidateSeconds: number | null;
97
+ revalidateReason?: "on-demand" | "stale";
86
98
  routePattern: string;
87
99
  setHeadersAccessPhase: (phase: HeadersAccessPhase) => HeadersAccessPhase;
88
100
  } & RunAppRouteHandlerOptions;
89
- declare function runAppRouteHandler(options: RunAppRouteHandlerOptions): Promise<RunAppRouteHandlerResult>;
90
- declare function executeAppRouteHandler(options: ExecuteAppRouteHandlerOptions): Promise<Response>;
91
- //#endregion
92
- export { AppRouteDebugLogger, AppRouteDynamicUsageFn, AppRouteHandlerFunction, AppRouteParams, MarkAppRouteDynamicUsageFn, RouteHandlerCacheSetter, applyDraftModeCachePolicy, executeAppRouteHandler, runAppRouteHandler };
101
+ export declare function runAppRouteHandler(options: RunAppRouteHandlerOptions): Promise<RunAppRouteHandlerResult>;
102
+ export declare function executeAppRouteHandler(options: ExecuteAppRouteHandlerOptions): Promise<Response>;
103
+ export declare function traceAppRouteHandlerExecution<T>(routePattern: string, callback: (span: FrameworkSpan) => T): T;
104
+ //#endregion
@@ -1,21 +1,29 @@
1
- import { NEVER_CACHE_CONTROL, applyCdnResponseHeaders, hasExplicitNonCacheableResponsePolicy } from "./cache-control.js";
2
- import { isrCacheControl } from "./isr-cache.js";
1
+ import { isFullyBufferedBody } from "./fully-buffered-response.js";
2
+ import { patternToNextFormat } from "../routing/route-validation.js";
3
+ import { frameworkTracer } from "./tracer.js";
4
+ import { getRouteCacheabilityCaptureOptions, getRouteCacheabilityDynamicReason, isRouteCacheabilityEvaluation, markRouteCacheabilityExplicitResponsePolicy, markRouteCacheabilityResponseBodyComplete, recordRouteCacheability } from "../shims/cacheability-classification.js";
5
+ import { NEVER_CACHE_CONTROL, applyCdnResponseHeaders, hasCdnResponsePolicy, hasExplicitNonCacheableResponsePolicy } from "./cache-control.js";
6
+ import { buildAppRouteMissIsrCacheControl } from "./isr-decision.js";
7
+ import { isrCacheControl, resolveRouteExpireSeconds } from "./isr-cache.js";
3
8
  import { isDraftModeRequest, setHeadersContext } from "../shims/headers.js";
4
9
  import { _drainPendingRevalidations } from "../shims/cache-request-state.js";
5
10
  import { copyLinkHeaderProvenance } from "./app-response-header-provenance.js";
6
- import { CACHEABILITY_POLICY_HEADERS, getRouteCacheabilityCaptureOptions, getRouteCacheabilityDynamicReason, isRouteCacheabilityEvaluation, markRouteCacheabilityExplicitResponsePolicy, markRouteCacheabilityResponseBodyComplete } from "../shims/cacheability-classification.js";
7
11
  import { applyRouteHandlerMiddlewareContext, applyRouteHandlerRevalidateHeader, assertSupportedAppRouteHandlerResponse, buildAppRouteCacheValue, finalizeRouteHandlerResponse, markRouteHandlerCacheMiss } from "./app-route-handler-response.js";
8
12
  import { isPossibleAppRouteActionRequest } from "./app-action-request.js";
9
13
  import { runWithRootParamsUsage } from "../shims/root-params.js";
10
14
  import { createTrackedAppRouteRequest, markKnownDynamicAppRoute } from "./app-route-handler-runtime.js";
11
- import { createStaticGenerationHeadersContext, getAppRouteStaticGenerationErrorMessage } from "./app-static-generation.js";
12
15
  import { resolveAppRouteHandlerSpecialError, shouldApplyAppRouteHandlerRevalidateHeader, shouldCompleteAppRouteHandlerResponse, shouldWriteAppRouteHandlerCache } from "./app-route-handler-policy.js";
16
+ import { createStaticGenerationHeadersContext, getAppRouteStaticGenerationErrorMessage } from "./app-static-generation.js";
13
17
  import { CACHEABILITY_ADMISSION_RESPONSE_BODY_LIMIT } from "./cacheability-limits.js";
14
18
  //#region src/server/app-route-handler-execution.ts
15
19
  function hasExplicitCacheableResponsePolicy(headers) {
16
- return !hasExplicitNonCacheableResponsePolicy(headers) && CACHEABILITY_POLICY_HEADERS.some((name) => headers.has(name));
20
+ return !hasExplicitNonCacheableResponsePolicy(headers) && hasCdnResponsePolicy(headers);
17
21
  }
18
22
  async function completeAppRouteHandlerResponse(response) {
23
+ if (isFullyBufferedBody(response)) return {
24
+ completed: true,
25
+ response
26
+ };
19
27
  const { captureCacheabilityAdmissionBody } = await import("./cacheability-request.js");
20
28
  const captureOptions = getRouteCacheabilityCaptureOptions();
21
29
  const captured = await captureCacheabilityAdmissionBody(response.body, captureOptions?.captureDeadlineAt ?? Date.now() + 2e4, CACHEABILITY_ADMISSION_RESPONSE_BODY_LIMIT, captureOptions?.captureBudget);
@@ -86,8 +94,9 @@ function applyDraftModeCachePolicy(response, isDraftMode) {
86
94
  }
87
95
  function configureAppRouteStaticGenerationContext(options) {
88
96
  if (options.dynamicConfig === "force-static" || options.dynamicConfig === "error") {
97
+ const isDraftMode = options.isDraftMode ?? (options.draftModeSecret !== void 0 && isDraftModeRequest(options.request, options.draftModeSecret));
89
98
  setHeadersContext(createStaticGenerationHeadersContext({
90
- draftModeEnabled: options.isDraftMode ?? (options.draftModeSecret !== void 0 && isDraftModeRequest(options.request, options.draftModeSecret)),
99
+ draftModeEnabled: isDraftMode,
91
100
  draftModeSecret: options.draftModeSecret,
92
101
  dynamicConfig: options.dynamicConfig,
93
102
  routeKind: "route",
@@ -112,9 +121,10 @@ async function runAppRouteHandler(options) {
112
121
  return getAppRouteStaticGenerationErrorMessage(options.routePattern, expression);
113
122
  }
114
123
  });
124
+ const routePattern = options.routePattern ?? new URL(options.request.url).pathname;
115
125
  const response = await runWithRootParamsUsage({
116
126
  kind: "route-handler",
117
- routePattern: options.routePattern ?? new URL(options.request.url).pathname
127
+ routePattern
118
128
  }, () => options.handlerFn(trackedRequest.request, { params: options.params }));
119
129
  const dynamicUsedInContext = options.consumeDynamicUsage();
120
130
  return {
@@ -124,31 +134,74 @@ async function runAppRouteHandler(options) {
124
134
  };
125
135
  }
126
136
  async function executeAppRouteHandler(options) {
137
+ return executeAppRouteHandlerImpl(options);
138
+ }
139
+ function traceAppRouteHandlerExecution(routePattern, callback) {
140
+ const route = patternToNextFormat(routePattern);
141
+ return frameworkTracer.trace({
142
+ attributes: { "next.route": route },
143
+ name: `executing api route (app) ${route}`,
144
+ type: "AppRouteRouteHandlers.runHandler"
145
+ }, callback);
146
+ }
147
+ async function executeAppRouteHandlerImpl(options) {
127
148
  const previousHeadersPhase = options.setHeadersAccessPhase("route-handler");
128
149
  let cleanupDeferredToBody = false;
129
150
  const middlewareMergeOptions = { appendResponseLink: options.handler.runtime === "edge" || options.handler.runtime === "experimental-edge" };
130
151
  try {
131
- let handlerResult;
152
+ let tracedResult;
153
+ let traceError;
154
+ let traceFailed = false;
155
+ let pendingRevalidations = Promise.resolve();
132
156
  try {
133
- handlerResult = await runAppRouteHandler({
134
- ...options,
135
- dynamicConfig: options.handler.dynamic
157
+ tracedResult = await traceAppRouteHandlerExecution(options.routePattern, async () => {
158
+ try {
159
+ try {
160
+ return {
161
+ kind: "handler",
162
+ handlerResult: await runAppRouteHandler({
163
+ ...options,
164
+ dynamicConfig: options.handler.dynamic
165
+ })
166
+ };
167
+ } catch (error) {
168
+ if (resolveAppRouteHandlerSpecialError(error, options.request.url, { isAction: isPossibleAppRouteActionRequest(options.request) })) return {
169
+ kind: "special",
170
+ error
171
+ };
172
+ throw error;
173
+ }
174
+ } finally {
175
+ pendingRevalidations = _drainPendingRevalidations();
176
+ pendingRevalidations.catch(() => {});
177
+ }
136
178
  });
137
- } finally {
138
- await _drainPendingRevalidations();
179
+ } catch (error) {
180
+ traceFailed = true;
181
+ traceError = error;
182
+ }
183
+ let revalidationError;
184
+ let revalidationFailed = false;
185
+ try {
186
+ await pendingRevalidations;
187
+ } catch (error) {
188
+ revalidationFailed = true;
189
+ revalidationError = error;
139
190
  }
191
+ if (traceFailed) throw traceError;
192
+ if (revalidationFailed) throw revalidationError;
193
+ if (!tracedResult) throw new Error("App Route Handler tracing completed without a result");
194
+ if (tracedResult.kind === "special") throw tracedResult.error;
195
+ const handlerResult = tracedResult.handlerResult;
140
196
  let { dynamicUsedInHandler, response } = handlerResult;
141
197
  assertSupportedAppRouteHandlerResponse(response);
142
- const handlerSetCachePolicy = CACHEABILITY_POLICY_HEADERS.some((name) => response.headers.has(name));
143
- const hasExplicitCacheablePolicy = hasExplicitCacheableResponsePolicy(response.headers);
144
- if (hasExplicitCacheablePolicy) markRouteCacheabilityExplicitResponsePolicy();
145
198
  const draftModeBeforeCompletion = options.getActiveDraftModeState?.() ?? options.isDraftMode === true;
146
199
  const handlerDraftCookieBeforeCompletion = options.getDraftModeCookieHeader() ?? options.initialDraftModeCookie;
147
200
  if (shouldCompleteAppRouteHandlerResponse({
148
201
  dynamicConfig: options.handler.dynamic,
149
202
  dynamicUsedInHandler,
150
- hasExplicitCacheablePolicy,
151
- handlerSetCachePolicy,
203
+ hasExplicitCacheablePolicy: hasExplicitCacheableResponsePolicy(response.headers),
204
+ handlerSetCachePolicy: hasCdnResponsePolicy(response.headers),
152
205
  isAutoHead: options.isAutoHead,
153
206
  isDraftMode: draftModeBeforeCompletion || handlerDraftCookieBeforeCompletion != null,
154
207
  isProduction: options.isProduction,
@@ -163,8 +216,11 @@ async function executeAppRouteHandler(options) {
163
216
  const dynamicUsedDuringCompletion = options.consumeDynamicUsage();
164
217
  dynamicUsedInHandler = handlerResult.didAccessDynamicRequest() || dynamicUsedDuringCompletion || dynamicUsedInHandler;
165
218
  }
219
+ const browserCacheControl = response.headers.get("Cache-Control") ?? void 0;
220
+ const handlerSetCachePolicy = hasCdnResponsePolicy(response.headers);
221
+ if (handlerSetCachePolicy) markRouteCacheabilityExplicitResponsePolicy();
166
222
  const requestCacheabilityVeto = getRouteCacheabilityDynamicReason();
167
- const responseMustStayPrivate = Boolean(options.handler.dynamic === "force-dynamic" || dynamicUsedInHandler || requestCacheabilityVeto || cleanupDeferredToBody);
223
+ const responseMustStayPrivate = Boolean(options.bypassSharedCache === true || options.handler.dynamic === "force-dynamic" || dynamicUsedInHandler || requestCacheabilityVeto || cleanupDeferredToBody);
168
224
  if (dynamicUsedInHandler) markKnownDynamicAppRoute(options.routePattern);
169
225
  const pendingCookies = options.getAndClearPendingCookies();
170
226
  const handlerDraftCookie = options.getDraftModeCookieHeader() ?? handlerDraftCookieBeforeCompletion;
@@ -172,6 +228,15 @@ async function executeAppRouteHandler(options) {
172
228
  const shouldApplyDraftPolicy = (options.getActiveDraftModeState?.() ?? options.isDraftMode === true) || draftCookie != null;
173
229
  if (handlerDraftCookie != null) markKnownDynamicAppRoute(options.routePattern);
174
230
  const routeTags = options.buildPageCacheTags(options.cleanPathname, options.getCollectedFetchTags());
231
+ const frameworkCacheable = (options.isRevalidation === true || response.status < 400 || response.status === 404) && options.revalidateSeconds !== null && options.revalidateSeconds > 0 && !responseMustStayPrivate && !shouldApplyDraftPolicy && pendingCookies.length === 0 && !response.headers.has("set-cookie") && (options.method === "GET" || options.isAutoHead);
232
+ recordRouteCacheability(frameworkCacheable ? {
233
+ cacheable: true,
234
+ cacheControl: buildAppRouteMissIsrCacheControl(options.revalidateSeconds, options.expireSeconds),
235
+ tags: routeTags
236
+ } : {
237
+ cacheable: false,
238
+ dynamicUsage: responseMustStayPrivate || shouldApplyDraftPolicy || options.revalidateSeconds === 0
239
+ });
175
240
  if (shouldApplyAppRouteHandlerRevalidateHeader({
176
241
  dynamicUsedInHandler: responseMustStayPrivate,
177
242
  handlerSetCachePolicy,
@@ -184,9 +249,9 @@ async function executeAppRouteHandler(options) {
184
249
  if (revalidateSeconds == null) throw new Error("Expected route handler revalidate seconds");
185
250
  applyRouteHandlerRevalidateHeader(response, revalidateSeconds, options.expireSeconds, routeTags);
186
251
  }
187
- if (shouldWriteAppRouteHandlerCache({
252
+ if (frameworkCacheable && shouldWriteAppRouteHandlerCache({
188
253
  dynamicConfig: options.handler.dynamic,
189
- dynamicUsedInHandler: responseMustStayPrivate,
254
+ dynamicUsedInHandler: responseMustStayPrivate || pendingCookies.length > 0 || response.headers.has("set-cookie"),
190
255
  handlerSetCachePolicy,
191
256
  isAutoHead: options.isAutoHead,
192
257
  isDraftMode: shouldApplyDraftPolicy,
@@ -201,9 +266,9 @@ async function executeAppRouteHandler(options) {
201
266
  if (revalidateSeconds == null) throw new Error("Expected route handler cache revalidate seconds");
202
267
  const routeWritePromise = (async () => {
203
268
  try {
204
- const routeCacheValue = await buildAppRouteCacheValue(routeClone);
269
+ const routeCacheValue = await buildAppRouteCacheValue(routeClone, browserCacheControl);
205
270
  await options.isrSet(routeKey, routeCacheValue, {
206
- cacheControl: isrCacheControl(revalidateSeconds, { expireSeconds: options.expireSeconds }),
271
+ cacheControl: isrCacheControl(revalidateSeconds === Infinity ? false : revalidateSeconds, { expireSeconds: resolveRouteExpireSeconds(options.revalidateSeconds, options.expireSeconds) }),
207
272
  tags: routeTags
208
273
  });
209
274
  options.isrDebug?.("route cache written", routeKey);
@@ -218,8 +283,8 @@ async function executeAppRouteHandler(options) {
218
283
  draftCookie,
219
284
  isHead: options.isAutoHead
220
285
  }), options.middlewareContext, middlewareMergeOptions), shouldApplyDraftPolicy);
221
- const preserveHandlerPolicy = isRouteCacheabilityEvaluation() ? hasExplicitCacheablePolicy : handlerSetCachePolicy;
222
- if (responseMustStayPrivate && !preserveHandlerPolicy) {
286
+ const preserveHandlerPolicy = handlerSetCachePolicy;
287
+ if (options.bypassSharedCache === true || responseMustStayPrivate && !preserveHandlerPolicy) {
223
288
  const headers = new Headers(finalized.headers);
224
289
  applyCdnResponseHeaders(headers, { cacheControl: NEVER_CACHE_CONTROL });
225
290
  finalized = new Response(finalized.body, {
@@ -262,14 +327,15 @@ async function executeAppRouteHandler(options) {
262
327
  return applyDraftModeCachePolicy(applyRouteHandlerMiddlewareContext(new Response(null, { status: specialError.statusCode }), options.middlewareContext, middlewareMergeOptions), shouldApplyDraftPolicy);
263
328
  }
264
329
  console.error("[vinext] Route handler error:", error);
265
- options.reportRequestError(error instanceof Error ? error : new Error(String(error)), {
330
+ await options.reportRequestError(error, {
266
331
  path: options.cleanPathname,
267
332
  method: options.request.method,
268
333
  headers: Object.fromEntries(options.request.headers.entries())
269
334
  }, {
270
335
  routerKind: "App Router",
271
336
  routePath: options.routePattern,
272
- routeType: "route"
337
+ routeType: "route",
338
+ revalidateReason: options.revalidateReason
273
339
  });
274
340
  return applyDraftModeCachePolicy(applyRouteHandlerMiddlewareContext(new Response(null, { status: 500 }), options.middlewareContext, middlewareMergeOptions), shouldApplyDraftPolicy);
275
341
  } finally {
@@ -277,4 +343,4 @@ async function executeAppRouteHandler(options) {
277
343
  }
278
344
  }
279
345
  //#endregion
280
- export { applyDraftModeCachePolicy, executeAppRouteHandler, runAppRouteHandler };
346
+ export { applyDraftModeCachePolicy, completeAppRouteHandlerResponse, 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,7 +1,7 @@
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
7
  generateStaticParams?: unknown;
@@ -49,21 +49,21 @@ type AppRouteHandlerSpecialError = {
49
49
  type AppRouteHandlerSpecialErrorOptions = {
50
50
  isAction: boolean;
51
51
  };
52
- declare function getAppRouteHandlerRevalidateSeconds(handler: Pick<AppRouteHandlerModule, "dynamic" | "generateStaticParams" | "revalidate">): number | null;
53
- declare function hasAppRouteHandlerDefaultExport(handler: RouteHandlerModule): boolean;
52
+ export declare function getAppRouteHandlerRevalidateSeconds(handler: Pick<AppRouteHandlerModule, "dynamic" | "generateStaticParams" | "revalidate">): number | null;
53
+ export declare function hasAppRouteHandlerDefaultExport(handler: RouteHandlerModule): boolean;
54
54
  /** Match Next.js methods that force an App Route out of static generation. */
55
- declare function hasNonStaticAppRouteHandlerMethods(handler: RouteHandlerModule): boolean;
56
- declare function resolveAppRouteHandlerMethod(handler: AppRouteHandlerModule, method: string): ResolvedAppRouteHandlerMethod;
57
- declare function shouldReadAppRouteHandlerCache(options: AppRouteHandlerCacheReadOptions): boolean;
58
- declare function shouldApplyAppRouteHandlerRevalidateHeader(options: Omit<AppRouteHandlerResponseCacheOptions, "dynamicConfig" | "isProduction">): boolean;
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
59
  /**
60
60
  * Next.js consumes the full body before completing static generation for an
61
61
  * App Route. Keep that completion boundary for every response that can still
62
62
  * receive a public framework cache policy, including
63
63
  * `revalidate = false` (represented by Infinity).
64
64
  */
65
- declare function shouldCompleteAppRouteHandlerResponse(options: AppRouteHandlerResponseCacheOptions): boolean;
66
- declare function shouldWriteAppRouteHandlerCache(options: AppRouteHandlerResponseCacheOptions): boolean;
67
- declare function resolveAppRouteHandlerSpecialError(error: unknown, requestUrl: string, options?: AppRouteHandlerSpecialErrorOptions): AppRouteHandlerSpecialError | null;
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;
68
68
  //#endregion
69
- export { AppRouteHandlerModule, getAppRouteHandlerRevalidateSeconds, hasAppRouteHandlerDefaultExport, hasNonStaticAppRouteHandlerMethods, isPossibleAppRouteActionRequest, resolveAppRouteHandlerMethod, resolveAppRouteHandlerSpecialError, shouldApplyAppRouteHandlerRevalidateHeader, shouldCompleteAppRouteHandlerResponse, shouldReadAppRouteHandlerCache, shouldWriteAppRouteHandlerCache };
69
+ export { isPossibleAppRouteActionRequest };
@@ -36,7 +36,7 @@ function resolveAppRouteHandlerMethod(handler, method) {
36
36
  };
37
37
  }
38
38
  function shouldReadAppRouteHandlerCache(options) {
39
- return options.isProduction && options.revalidateSeconds !== null && options.revalidateSeconds > 0 && options.revalidateSeconds !== Infinity && options.dynamicConfig !== "force-dynamic" && !options.isDraftMode && !options.isKnownDynamic && (options.method === "GET" || options.isAutoHead) && typeof options.handlerFn === "function";
39
+ return options.isProduction && options.revalidateSeconds !== null && options.revalidateSeconds > 0 && options.dynamicConfig !== "force-dynamic" && !options.isDraftMode && !options.isKnownDynamic && (options.method === "GET" || options.isAutoHead) && typeof options.handlerFn === "function";
40
40
  }
41
41
  function shouldApplyAppRouteHandlerRevalidateHeader(options) {
42
42
  return options.revalidateSeconds !== null && !options.isDraftMode && !options.dynamicUsedInHandler && (options.method === "GET" || options.isAutoHead) && !options.handlerSetCachePolicy;
@@ -51,7 +51,7 @@ function shouldCompleteAppRouteHandlerResponse(options) {
51
51
  return options.isProduction && (options.revalidateSeconds !== null && options.revalidateSeconds > 0 || options.requiresCompletedResponseAdmission === true || options.hasExplicitCacheablePolicy === true) && options.dynamicConfig !== "force-dynamic" && !options.isDraftMode && !options.dynamicUsedInHandler && (options.method === "GET" || options.isAutoHead);
52
52
  }
53
53
  function shouldWriteAppRouteHandlerCache(options) {
54
- return options.isProduction && options.revalidateSeconds !== null && options.revalidateSeconds > 0 && options.revalidateSeconds !== Infinity && options.dynamicConfig !== "force-dynamic" && !options.isDraftMode && shouldApplyAppRouteHandlerRevalidateHeader(options);
54
+ return options.isProduction && options.revalidateSeconds !== null && options.revalidateSeconds > 0 && options.dynamicConfig !== "force-dynamic" && !options.isDraftMode && !options.dynamicUsedInHandler && (options.method === "GET" || options.isAutoHead);
55
55
  }
56
56
  function resolveAppRouteHandlerSpecialError(error, requestUrl, options) {
57
57
  if (!(error && typeof error === "object" && "digest" in error)) return null;
@@ -1,6 +1,6 @@
1
1
  import { CacheControlMetadata, CachedRouteValue } from "../shims/cache-handler.js";
2
2
  //#region src/server/app-route-handler-response.d.ts
3
- type RouteHandlerMiddlewareContext = {
3
+ export type RouteHandlerMiddlewareContext = {
4
4
  headers: Headers | null;
5
5
  status: number | null;
6
6
  };
@@ -16,14 +16,13 @@ type FinalizeRouteHandlerResponseOptions = {
16
16
  draftCookie?: string | null;
17
17
  isHead: boolean;
18
18
  };
19
- declare function applyRouteHandlerMiddlewareContext(response: Response, middlewareContext: RouteHandlerMiddlewareContext, options?: {
19
+ export declare function applyRouteHandlerMiddlewareContext(response: Response, middlewareContext: RouteHandlerMiddlewareContext, options?: {
20
20
  appendResponseLink?: boolean;
21
21
  }): Response;
22
- declare function assertSupportedAppRouteHandlerResponse(response: Response): void;
23
- declare function buildRouteHandlerCachedResponse(cachedValue: CachedRouteValue, options: BuildRouteHandlerCachedResponseOptions): Response;
24
- declare function applyRouteHandlerRevalidateHeader(response: Response, revalidateSeconds: number, expireSeconds?: number, tags?: readonly string[]): void;
25
- declare function markRouteHandlerCacheMiss(response: Response): void;
26
- declare function buildAppRouteCacheValue(response: Response): Promise<CachedRouteValue>;
27
- declare function finalizeRouteHandlerResponse(response: Response, options: FinalizeRouteHandlerResponseOptions): Response;
28
- //#endregion
29
- export { RouteHandlerMiddlewareContext, applyRouteHandlerMiddlewareContext, applyRouteHandlerRevalidateHeader, assertSupportedAppRouteHandlerResponse, buildAppRouteCacheValue, buildRouteHandlerCachedResponse, finalizeRouteHandlerResponse, markRouteHandlerCacheMiss };
22
+ export declare function assertSupportedAppRouteHandlerResponse(response: Response): void;
23
+ export declare function buildRouteHandlerCachedResponse(cachedValue: CachedRouteValue, options: BuildRouteHandlerCachedResponseOptions): Response;
24
+ export declare function applyRouteHandlerRevalidateHeader(response: Response, revalidateSeconds: number, expireSeconds?: number, tags?: readonly string[]): void;
25
+ export declare function markRouteHandlerCacheMiss(response: Response): void;
26
+ export declare function buildAppRouteCacheValue(response: Response, browserCacheControl?: string): Promise<CachedRouteValue>;
27
+ export declare function finalizeRouteHandlerResponse(response: Response, options: FinalizeRouteHandlerResponseOptions): Response;
28
+ //#endregion
@@ -1,6 +1,7 @@
1
1
  import "../utils/protocol-headers.js";
2
2
  import { NEXT_CACHE_TAGS_HEADER, VINEXT_METADATA_ROUTE_CACHE_HEADER } from "./headers.js";
3
3
  import { processMiddlewareHeaders } from "./request-pipeline.js";
4
+ import { markRouteCacheabilityExplicitResponsePolicy, recordRouteCacheability } from "../shims/cacheability-classification.js";
4
5
  import { applyCdnResponseHeaders } from "./cache-control.js";
5
6
  import { buildAppRouteMissIsrCacheControl, decideIsr } from "./isr-decision.js";
6
7
  import { setCacheStateHeaders } from "./cache-headers.js";
@@ -49,8 +50,17 @@ function buildRouteHandlerCachedResponse(cachedValue, options) {
49
50
  expireSeconds: options.expireSeconds,
50
51
  cacheControlMeta: options.cacheControl
51
52
  });
52
- applyCdnResponseHeaders(headers, { cacheControl });
53
- return new Response(options.isHead ? null : cachedValue.body, {
53
+ recordRouteCacheability({
54
+ cacheable: true,
55
+ cacheControl
56
+ });
57
+ if (headers.has("Cache-Control")) markRouteCacheabilityExplicitResponsePolicy();
58
+ applyCdnResponseHeaders(headers, {
59
+ cacheControl,
60
+ browserCacheControl: headers.get("Cache-Control") ?? void 0
61
+ });
62
+ const hasNoBody = options.isHead || cachedValue.status === 204 || cachedValue.status === 205 || cachedValue.status === 304;
63
+ return new Response(hasNoBody ? null : cachedValue.body, {
54
64
  status: cachedValue.status,
55
65
  headers
56
66
  });
@@ -123,13 +133,14 @@ function applyMutableCookieFallbacks(headers, pendingCookies) {
123
133
  for (const cookie of fallbackCookies.values()) headers.append("Set-Cookie", cookie);
124
134
  for (const cookie of returnedCookies) headers.append("Set-Cookie", normalizeReturnedCookie(cookie));
125
135
  }
126
- async function buildAppRouteCacheValue(response) {
136
+ async function buildAppRouteCacheValue(response, browserCacheControl) {
127
137
  const body = await response.arrayBuffer();
128
138
  const headers = {};
129
139
  response.headers.forEach((value, key) => {
130
140
  if (key === "set-cookie" || key === "connection" || key === "content-length" || key === "date" || key === "keep-alive" || key === "transfer-encoding" || key === "x-next-cache-tags" || key === "x-vinext-metadata-route-cache" || key === "x-vinext-prerender-cache-life" || key === "X-Vinext-Cache".toLowerCase() || key === "x-nextjs-cache".toLowerCase() || key === "cache-control" || key.startsWith("x-middleware-")) return;
131
141
  headers[key] = value;
132
142
  });
143
+ if (browserCacheControl !== void 0) headers["cache-control"] = browserCacheControl;
133
144
  const setCookies = response.headers.getSetCookie?.() ?? [];
134
145
  if (setCookies.length > 0) headers["set-cookie"] = setCookies;
135
146
  return {
@@ -2,8 +2,8 @@ import { NextI18nConfig } from "../config/next-config.js";
2
2
  import { NextRequest } from "../shims/server.js";
3
3
  //#region src/server/app-route-handler-runtime.d.ts
4
4
  declare const ROUTE_HANDLER_HTTP_METHODS: readonly ["GET", "HEAD", "POST", "PUT", "DELETE", "PATCH", "OPTIONS"];
5
- type RouteHandlerHttpMethod = (typeof ROUTE_HANDLER_HTTP_METHODS)[number];
6
- type RouteHandlerModule = Partial<Record<RouteHandlerHttpMethod | "default", unknown>>;
5
+ export type RouteHandlerHttpMethod = (typeof ROUTE_HANDLER_HTTP_METHODS)[number];
6
+ export type RouteHandlerModule = Partial<Record<RouteHandlerHttpMethod | "default", unknown>>;
7
7
  /**
8
8
  * Checks whether a string is a recognized HTTP method for App Router route
9
9
  * handlers. Invalid methods must be rejected with 400 before any auto-OPTIONS
@@ -11,11 +11,11 @@ type RouteHandlerModule = Partial<Record<RouteHandlerHttpMethod | "default", unk
11
11
  *
12
12
  * @see https://github.com/vercel/next.js/blob/canary/packages/next/src/server/web/http.ts
13
13
  */
14
- declare function isValidHTTPMethod(maybeMethod: string): maybeMethod is RouteHandlerHttpMethod;
15
- declare function collectRouteHandlerMethods(handler: RouteHandlerModule): RouteHandlerHttpMethod[];
16
- declare function buildRouteHandlerAllowHeader(exportedMethods: readonly string[]): string;
17
- declare function isKnownDynamicAppRoute(pattern: string): boolean;
18
- declare function markKnownDynamicAppRoute(pattern: string): void;
14
+ export declare function isValidHTTPMethod(maybeMethod: string): maybeMethod is RouteHandlerHttpMethod;
15
+ export declare function collectRouteHandlerMethods(handler: RouteHandlerModule): RouteHandlerHttpMethod[];
16
+ export declare function buildRouteHandlerAllowHeader(exportedMethods: readonly string[]): string;
17
+ export declare function isKnownDynamicAppRoute(pattern: string): boolean;
18
+ export declare function markKnownDynamicAppRoute(pattern: string): void;
19
19
  type RequestDynamicAccess = "request.headers" | "request.cookies" | "request.cf" | "request.ip" | "request.geo" | "request.url" | "request.body" | "request.blob" | "request.bytes" | "request.json" | "request.text" | "request.arrayBuffer" | "request.formData";
20
20
  type NextUrlDynamicAccess = "nextUrl.search" | "nextUrl.searchParams" | "nextUrl.url" | "nextUrl.href" | "nextUrl.toJSON" | "nextUrl.toString" | "nextUrl.origin";
21
21
  type AppRouteDynamicRequestAccess = RequestDynamicAccess | NextUrlDynamicAccess;
@@ -33,6 +33,5 @@ type TrackedAppRouteRequest = {
33
33
  request: NextRequest;
34
34
  didAccessDynamicRequest(): boolean;
35
35
  };
36
- declare function createTrackedAppRouteRequest(request: Request, options?: TrackedAppRouteRequestOptions): TrackedAppRouteRequest;
37
- //#endregion
38
- export { RouteHandlerHttpMethod, RouteHandlerModule, buildRouteHandlerAllowHeader, collectRouteHandlerMethods, createTrackedAppRouteRequest, isKnownDynamicAppRoute, isValidHTTPMethod, markKnownDynamicAppRoute };
36
+ export declare function createTrackedAppRouteRequest(request: Request, options?: TrackedAppRouteRequestOptions): TrackedAppRouteRequest;
37
+ //#endregion
@@ -1,5 +1,5 @@
1
- import { addBasePathToPathname } from "../utils/base-path.js";
2
1
  import { buildRequestHeadersFromMiddlewareResponse } from "../utils/middleware-request-headers.js";
2
+ import { addBasePathToPathname } from "../utils/base-path.js";
3
3
  import { NextRequest, RequestCookies, sealRequestCookies, sealRequestHeaders } from "../shims/server.js";
4
4
  import { cloneRequestWithHeaders, cloneRequestWithUrl } from "./request-pipeline.js";
5
5
  import { BUILT_IN_REQUEST_PROPERTIES } from "./app-route-request-built-ins.js";
@@ -191,10 +191,12 @@ function createTrackedAppRouteRequest(request, options = {}) {
191
191
  }
192
192
  const requestHeaders = options.middlewareHeaders ? buildRequestHeadersFromMiddlewareResponse(input.headers, options.middlewareHeaders) : null;
193
193
  const requestWithOverrides = requestHeaders ? cloneRequestWithHeaders(input, requestHeaders) : input;
194
- const sourceCfMetadata = Reflect.get(requestWithOverrides, "cf", requestWithOverrides);
195
194
  const sourceCfDescriptor = Reflect.getOwnPropertyDescriptor(requestWithOverrides, "cf");
195
+ const sourceCfAccessor = sourceCfDescriptor?.get;
196
+ const sourceCfMetadata = sourceCfAccessor ? void 0 : Reflect.get(requestWithOverrides, "cf", requestWithOverrides);
196
197
  const nextRequest = requestMode === "force-static" ? createForceStaticNextRequest(requestWithOverrides, nextConfig) : requestWithOverrides instanceof NextRequest && sourceCfDescriptor?.configurable !== false ? requestWithOverrides : new NextRequest(requestWithOverrides, { nextConfig: nextConfig ?? void 0 });
197
- const rawCfMetadata = sourceCfMetadata === void 0 ? Reflect.get(nextRequest, "cf", nextRequest) : sourceCfMetadata;
198
+ const rawCfMetadata = sourceCfAccessor ? void 0 : sourceCfMetadata === void 0 ? Reflect.get(nextRequest, "cf", nextRequest) : sourceCfMetadata;
199
+ const hasCfMetadata = sourceCfAccessor !== void 0 || rawCfMetadata !== void 0;
198
200
  const originalCfDescriptor = sourceCfDescriptor ?? Reflect.getOwnPropertyDescriptor(nextRequest, "cf");
199
201
  const accessCf = (read, forceStaticValue) => {
200
202
  if (requestMode === "force-static") return forceStaticValue;
@@ -202,8 +204,8 @@ function createTrackedAppRouteRequest(request, options = {}) {
202
204
  markDynamicAccess("request.cf");
203
205
  return read();
204
206
  };
205
- const controlledCfGetter = () => accessCf(() => rawCfMetadata, void 0);
206
- if (rawCfMetadata !== void 0) {
207
+ const controlledCfGetter = () => accessCf(sourceCfAccessor ? () => Reflect.apply(sourceCfAccessor, requestWithOverrides, []) : () => rawCfMetadata, void 0);
208
+ if (hasCfMetadata) {
207
209
  if (requestMode === "force-static") Object.defineProperty(nextRequest, "cf", {
208
210
  configurable: true,
209
211
  enumerable: originalCfDescriptor?.enumerable ?? false,
@@ -217,7 +219,7 @@ function createTrackedAppRouteRequest(request, options = {}) {
217
219
  }
218
220
  const cloneTrackedRequest = () => {
219
221
  const cloned = nextRequest.clone();
220
- if (rawCfMetadata !== void 0) Object.defineProperty(cloned, "cf", {
222
+ if (hasCfMetadata) Object.defineProperty(cloned, "cf", sourceCfDescriptor ?? {
221
223
  value: rawCfMetadata,
222
224
  enumerable: originalCfDescriptor?.enumerable ?? false,
223
225
  configurable: true
@@ -356,16 +358,18 @@ function createTrackedAppRouteRequest(request, options = {}) {
356
358
  },
357
359
  preventExtensions(target) {
358
360
  const descriptor = Reflect.getOwnPropertyDescriptor(target, "cf");
359
- if (descriptor?.get === controlledCfGetter) if (requestMode === "force-static") {
360
- if (!Reflect.deleteProperty(target, "cf")) return false;
361
- } else {
362
- accessCf(() => void 0, void 0);
363
- Object.defineProperty(target, "cf", {
364
- configurable: true,
365
- enumerable: descriptor.enumerable,
366
- value: rawCfMetadata,
367
- writable: false
368
- });
361
+ if (descriptor?.get === controlledCfGetter) {
362
+ if (requestMode === "force-static") {
363
+ if (!Reflect.deleteProperty(target, "cf")) return false;
364
+ } else {
365
+ accessCf(() => void 0, void 0);
366
+ Object.defineProperty(target, "cf", {
367
+ configurable: true,
368
+ enumerable: descriptor.enumerable,
369
+ value: rawCfMetadata,
370
+ writable: false
371
+ });
372
+ }
369
373
  }
370
374
  return Reflect.preventExtensions(target);
371
375
  }
@@ -71,7 +71,7 @@ type LazyLoadableSlot = {
71
71
  /** Hydrated only after an intercept matches, not with the slot's base modules. */
72
72
  intercepts?: LazyLoadableIntercept[];
73
73
  };
74
- type LazyLoadableRoute = {
74
+ export type LazyLoadableRoute = {
75
75
  page?: unknown;
76
76
  routeHandler?: unknown;
77
77
  layouts?: unknown[];
@@ -112,16 +112,15 @@ type LazyLoadableRoute = {
112
112
  __loading?: Promise<unknown> | null;
113
113
  };
114
114
  /** Hydrate an intercepting route's page module onto `intercept.page`. */
115
- declare function loadAppInterceptPage(intercept: LazyLoadableIntercept): Promise<void>;
115
+ export declare function loadAppInterceptPage(intercept: LazyLoadableIntercept): Promise<void>;
116
116
  /** Hydrate an intercepting route's not-found boundary onto `intercept.notFound`. */
117
- declare function loadAppInterceptNotFound(intercept: LazyLoadableIntercept): Promise<void>;
118
- declare function loadAppInterceptLayouts(intercept: LazyLoadableIntercept): Promise<readonly unknown[]>;
117
+ export declare function loadAppInterceptNotFound(intercept: LazyLoadableIntercept): Promise<void>;
118
+ export declare function loadAppInterceptLayouts(intercept: LazyLoadableIntercept): Promise<readonly unknown[]>;
119
119
  /**
120
120
  * Resolve a route's lazy modules and assign them onto the route's synchronous
121
121
  * module fields. Returns the same route reference (synchronously when already
122
122
  * loaded, otherwise after the in-flight import resolves). Safe to call on
123
123
  * `null`/`undefined` routes and on eager routes that have no lazy thunks.
124
124
  */
125
- declare function ensureAppRouteModulesLoaded<TRoute extends LazyLoadableRoute>(route: TRoute | null | undefined): TRoute | Promise<TRoute>;
126
- //#endregion
127
- export { LazyLoadableRoute, ensureAppRouteModulesLoaded, loadAppInterceptLayouts, loadAppInterceptNotFound, loadAppInterceptPage };
125
+ export declare function ensureAppRouteModulesLoaded<TRoute extends LazyLoadableRoute>(route: TRoute | null | undefined): TRoute | Promise<TRoute>;
126
+ //#endregion