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,76 +1,15 @@
1
- import { getRequestExecutionContext } from "../shims/request-context.js";
2
1
  import { PRERENDER_REVALIDATE_HEADER, PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER } from "../utils/protocol-headers.js";
2
+ import { normalizePathnameForRouteMatch } from "../routing/utils.js";
3
+ import { getRequestExecutionContext } from "../shims/request-context.js";
3
4
  import { reportRequestError } from "./instrumentation.js";
4
5
  import { getCdnCacheAdapter } from "../shims/cdn-cache.js";
5
6
  import { fnv1a64 } from "../utils/hash.js";
6
7
  import { normalizeMountedSlotsHeader } from "./app-mounted-slots-header.js";
7
8
  import { APP_RSC_RENDER_MODE_NAVIGATION, getRscRenderModeCacheVariant } from "./app-rsc-render-mode.js";
8
9
  import { normalizeAppPageInterceptionProofPathname } from "./app-page-render-identity.js";
10
+ import { getRevalidateSecret, isOnDemandRevalidateRequest, isRevalidateSecret } from "./revalidation-request.js";
9
11
  //#region src/server/isr-cache.ts
10
12
  /**
11
- * Build-time secret that authenticates on-demand revalidation requests, the
12
- * vinext analog of Next.js's prerender-manifest `previewModeId`.
13
- *
14
- * `res.revalidate()` loops back into the server via an internal `fetch()`. On
15
- * Cloudflare Workers that loopback can land on a *different* isolate than the
16
- * sender, so a per-process random secret would mismatch across isolates and
17
- * false-reject legitimate revalidations (and, symmetrically, two isolates with
18
- * independently-rolled secrets could never agree). The fix mirrors Next.js's
19
- * `previewModeId`: the secret is generated once at BUILD time and baked
20
- * (server-only — never into the client bundle) into every server bundle via the
21
- * `__VINEXT_REVALIDATE_SECRET` Vite `define`, so it is byte-for-byte identical in
22
- * every isolate. See `vinext build` CLI (`__VINEXT_SHARED_REVALIDATE_SECRET`) and
23
- * the `vinext:compiler-define-server` plugin. The sender attaches it as the
24
- * {@link PRERENDER_REVALIDATE_HEADER} value; the receiver authorizes a request
25
- * only when the incoming value equals this secret (see
26
- * {@link isOnDemandRevalidateRequest}).
27
- *
28
- * When the build-time define is absent — dev mode, and any path that doesn't
29
- * run through `vinext build` — we fall back to a lazily-generated random secret.
30
- * Those paths are single-process, but Vite can evaluate this module separately
31
- * in its RSC and SSR module graphs. Store the fallback on `globalThis` under a
32
- * registry symbol so every module copy in the process reads the same value.
33
- */
34
- const _DEV_REVALIDATE_SECRET_KEY = Symbol.for("vinext.isrCache.devRevalidateSecret");
35
- function getRevalidateSecret() {
36
- const baked = process.env.__VINEXT_REVALIDATE_SECRET;
37
- if (baked) return baked;
38
- const globals = globalThis;
39
- const existing = globals[_DEV_REVALIDATE_SECRET_KEY];
40
- if (typeof existing === "string") return existing;
41
- const bytes = /* @__PURE__ */ new Uint8Array(32);
42
- crypto.getRandomValues(bytes);
43
- const secret = Array.from(bytes, (b) => b.toString(16).padStart(2, "0")).join("");
44
- globals[_DEV_REVALIDATE_SECRET_KEY] = secret;
45
- return secret;
46
- }
47
- /**
48
- * Constant-time string equality. Avoids leaking secret length / prefix via
49
- * early-exit timing on the on-demand revalidation auth check. Returns false
50
- * for length mismatch (the only safe option without revealing the secret
51
- * length, and equality is impossible anyway).
52
- */
53
- function safeEqual(a, b) {
54
- if (a.length !== b.length) return false;
55
- let mismatch = 0;
56
- for (let i = 0; i < a.length; i++) mismatch |= a.charCodeAt(i) ^ b.charCodeAt(i);
57
- return mismatch === 0;
58
- }
59
- function isRevalidateSecret(value) {
60
- if (typeof value !== "string" || value.length === 0) return false;
61
- return safeEqual(value, getRevalidateSecret());
62
- }
63
- /**
64
- * Authorize an incoming request as an on-demand revalidation trigger. Mirrors
65
- * Next.js's `checkIsOnDemandRevalidate`: the {@link PRERENDER_REVALIDATE_HEADER}
66
- * value must *equal* the process revalidate secret. Header presence alone is
67
- * NOT sufficient — see the security note on {@link PRERENDER_REVALIDATE_HEADER}.
68
- */
69
- function isOnDemandRevalidateRequest(headerValue) {
70
- if (typeof headerValue !== "string") return false;
71
- return isRevalidateSecret(headerValue);
72
- }
73
- /**
74
13
  * Get a cache entry with staleness information.
75
14
  *
76
15
  * Returns { value, isStale: false } for fresh entries,
@@ -101,6 +40,15 @@ function isrCacheControl(revalidateSeconds, claims = {}) {
101
40
  };
102
41
  }
103
42
  /**
43
+ * The route-level `expireTime` only bounds a finite revalidate. Like Next.js,
44
+ * a `revalidate = false` entry keeps no expire of its own and stays until it
45
+ * is invalidated; only a cacheLife expire can bound it.
46
+ * https://github.com/vercel/next.js/blob/v16.2.7/packages/next/src/build/index.ts#L3035-L3058
47
+ */
48
+ function resolveRouteExpireSeconds(revalidateSeconds, expireSeconds) {
49
+ return revalidateSeconds === false || revalidateSeconds === Infinity ? void 0 : expireSeconds;
50
+ }
51
+ /**
104
52
  * Store a value in the ISR cache under the given write policy.
105
53
  */
106
54
  async function isrSet(key, data, policy) {
@@ -149,14 +97,15 @@ function coalesceOnDemandRevalidation(key, renderFn) {
149
97
  *
150
98
  * When `errorContext` is provided and the render function fails, the error
151
99
  * is reported via `reportRequestError` (instrumentation hook) with
152
- * `revalidateReason: "stale"`.
100
+ * `revalidateReason: "stale"`, unless `shouldReport` suppresses an error that
101
+ * an inner render boundary already reported.
153
102
  */
154
103
  function triggerBackgroundRegeneration(key, renderFn, errorContext) {
155
104
  if (!getCdnCacheAdapter().ownsBackgroundRevalidation) return;
156
105
  if (pendingRegenerations.has(key)) return;
157
- const promise = renderFn().catch((err) => {
106
+ const promise = renderFn().catch(async (err) => {
158
107
  console.error(`[vinext] ISR background regeneration failed for ${key}:`, err);
159
- if (errorContext) reportRequestError(err instanceof Error ? err : new Error(String(err)), {
108
+ if (errorContext && (errorContext.shouldReport?.(err) ?? true)) await reportRequestError(err, {
160
109
  path: key,
161
110
  method: "GET",
162
111
  headers: {}
@@ -216,6 +165,10 @@ function buildCacheKey(prefix, pathname, suffix) {
216
165
  function isrCacheKey(router, pathname, buildId) {
217
166
  return buildCacheKey(buildId ? `${router}:${buildId}` : router, pathname);
218
167
  }
168
+ /** Build and request time share the same locale-stripped Pages pathname identity. */
169
+ function pagesIsrCacheKey(pathname, buildId, i18nCacheVariant) {
170
+ return isrCacheKey("pages:v2", normalizeCachePathname(normalizePathnameForRouteMatch(pathname)) + (i18nCacheVariant ? `::i18n=${encodeURIComponent(i18nCacheVariant)}` : ""), buildId);
171
+ }
219
172
  /**
220
173
  * Compute an App Router ISR key for one cache artifact.
221
174
  *
@@ -224,7 +177,7 @@ function isrCacheKey(router, pathname, buildId) {
224
177
  * Cloudflare KV key under its 512-byte limit for long pathnames.
225
178
  */
226
179
  function appIsrCacheKey(pathname, suffix, buildId = process.env.__VINEXT_BUILD_ID) {
227
- return buildCacheKey(buildId ? `app:${buildId}` : "app", pathname, suffix);
180
+ return buildCacheKey(buildId ? `app:v2:${buildId}` : "app:v2", pathname, suffix);
228
181
  }
229
182
  function appIsrHtmlKey(pathname) {
230
183
  return appIsrCacheKey(pathname, "html");
@@ -255,7 +208,7 @@ function appIsrRscKey(pathname, mountedSlotsHeader, renderMode = APP_RSC_RENDER_
255
208
  return appIsrCacheKey(pathname, variant ? `rsc:${variant}` : "rsc");
256
209
  }
257
210
  function appIsrRouteKey(pathname) {
258
- return appIsrCacheKey(pathname, "route");
211
+ return appIsrCacheKey(pathname, pathname !== "/" && pathname.endsWith("/") ? "route:trailing-slash" : "route");
259
212
  }
260
213
  //#endregion
261
- export { PRERENDER_REVALIDATE_HEADER, PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER, appIsrCacheKey, appIsrHtmlKey, appIsrRouteKey, appIsrRscKey, buildAppPageCacheValue, buildPagesCacheValue, coalesceOnDemandRevalidation, getRevalidateSecret, isOnDemandRevalidateRequest, isRevalidateSecret, isrCacheControl, isrCacheKey, isrGet, isrSet, isrSetPrerenderedAppPage, normalizeMountedSlotsHeader, triggerBackgroundRegeneration };
214
+ export { PRERENDER_REVALIDATE_HEADER, PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER, appIsrCacheKey, appIsrHtmlKey, appIsrRouteKey, appIsrRscKey, buildAppPageCacheValue, buildPagesCacheValue, coalesceOnDemandRevalidation, getRevalidateSecret, isOnDemandRevalidateRequest, isRevalidateSecret, isrCacheControl, isrCacheKey, isrGet, isrSet, isrSetPrerenderedAppPage, normalizeMountedSlotsHeader, pagesIsrCacheKey, resolveRouteExpireSeconds, triggerBackgroundRegeneration };
@@ -55,7 +55,7 @@ type DecideIsrOptions = {
55
55
  * caller's responsibility and must happen *before* this call. `cacheState`
56
56
  * must only be `"HIT"` or `"STALE"` when those guards have already passed.
57
57
  */
58
- declare function decideIsr(options: DecideIsrOptions): IsrDecision;
58
+ export declare function decideIsr(options: DecideIsrOptions): IsrDecision;
59
59
  /**
60
60
  * Build the `Cache-Control` string for a fresh MISS response whose ISR policy
61
61
  * is known (i.e. revalidate is set and > 0). Uses the unbounded SWR form when
@@ -65,7 +65,7 @@ declare function decideIsr(options: DecideIsrOptions): IsrDecision;
65
65
  * therefore never has `cacheControlMeta`. `expireSeconds` here is the route
66
66
  * config ceiling passed directly from the caller (not a per-entry fallback).
67
67
  */
68
- declare function buildMissIsrCacheControl(revalidateSeconds: number | false, expireSeconds?: number): string;
68
+ export declare function buildMissIsrCacheControl(revalidateSeconds: number | false, expireSeconds?: number): string;
69
69
  /**
70
70
  * Build the `Cache-Control` string for a fresh (MISS) app-route response.
71
71
  *
@@ -76,6 +76,6 @@ declare function buildMissIsrCacheControl(revalidateSeconds: number | false, exp
76
76
  * Used by `applyRouteHandlerRevalidateHeader` which operates on a fresh
77
77
  * response that has no per-entry cache metadata.
78
78
  */
79
- declare function buildAppRouteMissIsrCacheControl(revalidateSeconds: number, expireSeconds?: number): string;
79
+ export declare function buildAppRouteMissIsrCacheControl(revalidateSeconds: number, expireSeconds?: number): string;
80
80
  //#endregion
81
- export { NEVER_CACHE_CONTROL as ISR_NEVER_CACHE_CONTROL, NO_STORE_CACHE_CONTROL as ISR_NO_STORE_CACHE_CONTROL, buildAppRouteMissIsrCacheControl, buildMissIsrCacheControl, decideIsr };
81
+ export { NEVER_CACHE_CONTROL as ISR_NEVER_CACHE_CONTROL, NO_STORE_CACHE_CONTROL as ISR_NO_STORE_CACHE_CONTROL };
@@ -16,8 +16,7 @@ type MetadataRouteEntryData = {
16
16
  headData?: MetadataRouteHeadData | null;
17
17
  fileDataBase64?: string;
18
18
  };
19
- declare function createMetadataRouteEntryData(route: MetadataFileRoute): MetadataRouteEntryData;
20
- declare function createMetadataRouteEntrySource(input: MetadataRouteEntrySourceInput): string;
21
- declare function createMetadataRouteEntriesSource(routes: readonly MetadataFileRoute[], moduleNames: ReadonlyMap<string, string>): string[];
22
- //#endregion
23
- export { createMetadataRouteEntriesSource, createMetadataRouteEntryData, createMetadataRouteEntrySource };
19
+ export declare function createMetadataRouteEntryData(route: MetadataFileRoute): MetadataRouteEntryData;
20
+ export declare function createMetadataRouteEntrySource(input: MetadataRouteEntrySourceInput): string;
21
+ export declare function createMetadataRouteEntriesSource(routes: readonly MetadataFileRoute[], moduleNames: ReadonlyMap<string, string>): string[];
22
+ //#endregion
@@ -11,7 +11,7 @@ type MetadataRouteBackgroundRegenerator = (key: string, renderFn: () => Promise<
11
11
  routePath: string;
12
12
  routeType: "route";
13
13
  }) => void;
14
- type MetadataRuntimeRoute = MetadataFileRoute & {
14
+ export type MetadataRuntimeRoute = MetadataFileRoute & {
15
15
  fileDataBase64?: string;
16
16
  };
17
17
  type MetadataRouteRequestOptions = {
@@ -21,9 +21,10 @@ type MetadataRouteRequestOptions = {
21
21
  isrRouteKey?: (pathname: string) => string;
22
22
  isrSet?: MetadataRouteCacheSetter;
23
23
  makeThenableParams: MetadataRouteMakeThenableParams;
24
+ routePathname?: string;
24
25
  scheduleBackgroundRegeneration?: MetadataRouteBackgroundRegenerator;
25
26
  };
26
- type PrerenderableMetadataRoute = {
27
+ export type PrerenderableMetadataRoute = {
27
28
  path: string;
28
29
  routePattern: string;
29
30
  routeSegments: string[];
@@ -33,8 +34,7 @@ type PrerenderableMetadataRoute = {
33
34
  * `"use cache"` function. These are safe to invoke during prerendering and the
34
35
  * resulting response can be seeded as an App Route artifact.
35
36
  */
36
- declare function getPrerenderableMetadataRoutePaths(metadataRoutes: readonly MetadataRuntimeRoute[]): Promise<PrerenderableMetadataRoute[]>;
37
- declare function isMetadataRouteRequestPath(metadataRoutes: readonly MetadataRuntimeRoute[], cleanPathname: string): boolean;
38
- declare function handleMetadataRouteRequest(options: MetadataRouteRequestOptions): Promise<Response | null>;
39
- //#endregion
40
- export { MetadataRuntimeRoute, PrerenderableMetadataRoute, getPrerenderableMetadataRoutePaths, handleMetadataRouteRequest, isMetadataRouteRequestPath };
37
+ export declare function getPrerenderableMetadataRoutePaths(metadataRoutes: readonly MetadataRuntimeRoute[]): Promise<PrerenderableMetadataRoute[]>;
38
+ export declare function isMetadataRouteRequestPath(metadataRoutes: readonly MetadataRuntimeRoute[], cleanPathname: string): boolean;
39
+ export declare function handleMetadataRouteRequest(options: MetadataRouteRequestOptions): Promise<Response | null>;
40
+ //#endregion
@@ -1,21 +1,31 @@
1
- import { closeAfterResponse, createRequestContext, markFullyBufferedBody, runWithRequestContext } from "../shims/unified-request-context.js";
1
+ import { markFullyBufferedBody } from "./fully-buffered-response.js";
2
+ import { closeAfterResponse, createRequestContext, runWithRequestContext } from "../shims/unified-request-context.js";
3
+ import { decodeMatchedParams } from "../routing/utils.js";
2
4
  import { getRequestExecutionContext } from "../shims/request-context.js";
3
5
  import { VINEXT_METADATA_ROUTE_CACHE_HEADER } from "./headers.js";
4
6
  import { notFoundResponse } from "./http-error-responses.js";
5
- import { resolveClientStaleTimeSeconds } from "../utils/cache-control-metadata.js";
7
+ import { beginRouteCacheability, markRouteCacheabilityExplicitResponsePolicy, markRouteCacheabilityResponseBodyComplete, recordRouteCacheability } from "../shims/cacheability-classification.js";
8
+ import { NEVER_CACHE_CONTROL, applyCdnResponseHeaders, hasCdnResponsePolicy } from "./cache-control.js";
9
+ import { buildAppRouteMissIsrCacheControl } from "./isr-decision.js";
6
10
  import { isrCacheControl } from "./isr-cache.js";
7
- import { _consumeRequestScopedCacheLife, cacheLifeProfiles } from "../shims/cache-request-state.js";
11
+ import { resolveClientStaleTimeSeconds } from "../utils/cache-control-metadata.js";
12
+ import { isRenderDynamicLatched } from "../shims/internal/headers-state.js";
13
+ import { getActiveDraftModeState, getHeadersContext, hasDraftModeCookieHeader, replaceHeadersContext } from "../shims/headers.js";
14
+ import { _consumeRequestScopedCacheLife } from "../shims/cache-request-state.js";
8
15
  import { ensureFetchPatch, getCollectedFetchTags, setCurrentFetchSoftTags } from "../shims/fetch-cache.js";
9
16
  import { isValidMetadataImageId, manifestToJson, matchMetadataRoutePattern, robotsToText, sitemapToXml } from "./metadata-routes.js";
10
17
  import { applyPrerenderCacheLifeHeader, applyPrerenderCacheTagsHeader } from "./prerender-cache-life-header.js";
18
+ import { canonicalizeAppPageParams } from "./app-page-segment-state.js";
11
19
  import { buildPageCacheTags } from "./implicit-tags.js";
12
20
  import { buildAppRouteCacheValue, buildRouteHandlerCachedResponse } from "./app-route-handler-response.js";
13
- import { isMetadataResponseCacheable } from "./metadata-route-cache-policy.js";
21
+ import { createStaticGenerationHeadersContext } from "./app-static-generation.js";
22
+ import { completeAppRouteHandlerResponse } from "./app-route-handler-execution.js";
14
23
  //#region src/server/metadata-route-response.ts
15
24
  function isOuterMetadataCacheEnabled() {
16
25
  return process.env.NODE_ENV !== "development";
17
26
  }
18
27
  const routeFunctionCache = /* @__PURE__ */ new WeakMap();
28
+ const userMetadataResponses = /* @__PURE__ */ new WeakSet();
19
29
  const USE_CACHE_FUNCTION_SYMBOL = Symbol.for("vinext.useCacheFunction");
20
30
  const CACHE_HEADERS = {
21
31
  noCache: "no-cache, no-store",
@@ -48,14 +58,20 @@ function metadataRouteCacheHeader(route) {
48
58
  if (route.isDynamic && isImageMetadataRoute(route) && process.env.NODE_ENV === "development") return CACHE_HEADERS.noCache;
49
59
  return CACHE_HEADERS.revalidate;
50
60
  }
51
- function withMetadataRouteCacheHeader(response, route) {
52
- const headers = new Headers(response.headers);
53
- if (!headers.has("Cache-Control")) headers.set("Cache-Control", metadataRouteCacheHeader(route));
54
- return new Response(response.body, {
55
- headers,
56
- status: response.status,
57
- statusText: response.statusText
58
- });
61
+ function beginMetadataRouteCacheability(route) {
62
+ const dynamic = route.module?.dynamic;
63
+ if (dynamic === "force-static" || dynamic === "error") {
64
+ const current = getHeadersContext();
65
+ const staticContext = createStaticGenerationHeadersContext({
66
+ dynamicConfig: dynamic,
67
+ routeKind: "route",
68
+ routePattern: route.servedUrl,
69
+ draftModeEnabled: getActiveDraftModeState() ?? void 0,
70
+ draftModeSecret: current?.draftModeSecret
71
+ });
72
+ replaceHeadersContext(staticContext);
73
+ }
74
+ beginRouteCacheability("app-route", route.patternParts ? `/${route.patternParts.join("/")}` : route.servedUrl);
59
75
  }
60
76
  function getMetadataRouteFunctions(route) {
61
77
  const cached = routeFunctionCache.get(route);
@@ -63,7 +79,9 @@ function getMetadataRouteFunctions(route) {
63
79
  const generateImageMetadata = route.isDynamic && isImageMetadataRoute(route) ? readFunction(route.module, "generateImageMetadata") : null;
64
80
  const functions = {
65
81
  defaultExport: route.isDynamic ? readFunction(route.module, "default") : null,
82
+ dynamicParams: route.isDynamic && typeof route.module?.dynamicParams === "boolean" ? route.module.dynamicParams : void 0,
66
83
  generateImageMetadata,
84
+ generateStaticParams: route.isDynamic ? readFunction(route.module, "generateStaticParams") : null,
67
85
  generateSitemaps: route.type === "sitemap" && route.isDynamic ? readFunction(route.module, "generateSitemaps") : null,
68
86
  hasGeneratedImageMetadata: route.isDynamic && isImageMetadataRoute(route) && Boolean(generateImageMetadata)
69
87
  };
@@ -126,29 +144,68 @@ function markMetadataRouteCacheValue(value) {
126
144
  function buildMetadataRouteTags(route, cleanPathname, collectedTags) {
127
145
  return buildPageCacheTags(cleanPathname, collectedTags, route.routeSegments ?? [], "route");
128
146
  }
129
- function captureRenderedMetadataRoute(response) {
130
- const cacheLife = _consumeRequestScopedCacheLife();
147
+ async function captureRenderedMetadataRoute(response, route, cleanPathname) {
148
+ const isUserResponse = userMetadataResponses.has(response);
149
+ let completed = false;
150
+ if (isOuterMetadataCacheEnabled()) {
151
+ const result = await completeAppRouteHandlerResponse(response);
152
+ response = result.response;
153
+ completed = result.completed;
154
+ if (completed) markRouteCacheabilityResponseBodyComplete();
155
+ }
156
+ const browserCacheControl = response.headers.get("Cache-Control") ?? void 0;
157
+ const hasUserPolicy = isUserResponse && hasCdnResponsePolicy(response.headers);
158
+ if (hasUserPolicy) markRouteCacheabilityExplicitResponsePolicy();
159
+ const observedCacheLife = _consumeRequestScopedCacheLife();
131
160
  const collectedTags = getCollectedFetchTags();
161
+ const revalidate = typeof route.module?.revalidate === "number" ? route.module.revalidate : Infinity;
162
+ const frameworkRevalidate = Math.min(observedCacheLife?.revalidate ?? Infinity, revalidate);
163
+ const cacheLife = {
164
+ ...observedCacheLife,
165
+ revalidate: frameworkRevalidate
166
+ };
167
+ const cacheable = (response.status < 400 || response.status === 404) && completed && !isRenderDynamicLatched() && !getActiveDraftModeState() && !hasDraftModeCookieHeader() && route.module?.dynamic !== "force-dynamic" && frameworkRevalidate > 0 && !response.headers.has("set-cookie");
168
+ const cacheControl = cacheable ? buildAppRouteMissIsrCacheControl(frameworkRevalidate, cacheLife?.expire) : NEVER_CACHE_CONTROL;
169
+ if (isUserResponse && !hasUserPolicy) {
170
+ response = new Response(response.body, {
171
+ headers: new Headers(response.headers),
172
+ status: response.status,
173
+ statusText: response.statusText
174
+ });
175
+ applyCdnResponseHeaders(response.headers, { cacheControl: isOuterMetadataCacheEnabled() ? cacheControl : metadataRouteCacheHeader(route) });
176
+ }
177
+ recordRouteCacheability(cacheable ? {
178
+ cacheable: true,
179
+ cacheControl,
180
+ tags: buildMetadataRouteTags(route, cleanPathname, collectedTags)
181
+ } : {
182
+ cacheable: false,
183
+ dynamicUsage: true
184
+ });
132
185
  if (process.env.VINEXT_PRERENDER === "1") {
133
- applyPrerenderCacheLifeHeader(response.headers, cacheLife);
186
+ applyPrerenderCacheLifeHeader(response.headers, {
187
+ ...cacheLife,
188
+ revalidate: cacheable ? frameworkRevalidate : 0
189
+ });
134
190
  applyPrerenderCacheTagsHeader(response.headers, collectedTags);
135
191
  }
136
192
  return {
193
+ browserCacheControl,
137
194
  cacheLife,
195
+ cacheable,
138
196
  collectedTags,
139
197
  response
140
198
  };
141
199
  }
142
200
  async function writeRenderedMetadataRoute(options, route, routeKey, rendered, previousEntry) {
143
- if (!options.isrSet || !rendered.response.ok || !isMetadataResponseCacheable(rendered.response)) return;
201
+ if (!options.isrSet || !rendered.cacheable) return;
144
202
  const previousCacheControl = previousEntry?.value.cacheControl;
145
- const defaultCacheLife = cacheLifeProfiles.default;
146
- const revalidate = rendered.cacheLife?.revalidate ?? previousCacheControl?.revalidate ?? defaultCacheLife.revalidate ?? 900;
147
- const expire = rendered.cacheLife?.expire ?? previousCacheControl?.expire ?? defaultCacheLife.expire;
203
+ const revalidate = rendered.cacheLife?.revalidate ?? previousCacheControl?.revalidate ?? (typeof route.module?.revalidate === "number" ? route.module.revalidate : false);
204
+ const expire = rendered.cacheLife?.expire ?? previousCacheControl?.expire;
148
205
  const stale = resolveClientStaleTimeSeconds(rendered.cacheLife) ?? previousCacheControl?.stale;
149
- const value = markMetadataRouteCacheValue(await buildAppRouteCacheValue(rendered.response));
206
+ const value = markMetadataRouteCacheValue(await buildAppRouteCacheValue(rendered.response, rendered.browserCacheControl));
150
207
  await options.isrSet(routeKey, value, {
151
- cacheControl: isrCacheControl(revalidate, {
208
+ cacheControl: isrCacheControl(revalidate === Infinity ? false : revalidate, {
152
209
  ...typeof expire === "number" ? { expireSeconds: expire } : {},
153
210
  ...typeof stale === "number" ? { staleSeconds: stale } : {}
154
211
  }),
@@ -160,16 +217,21 @@ async function runMetadataRouteRegeneration(options, route, render, routeKey, pr
160
217
  try {
161
218
  await runWithRequestContext(requestContext, async () => {
162
219
  ensureFetchPatch();
220
+ beginMetadataRouteCacheability(route);
163
221
  setCurrentFetchSoftTags(buildMetadataRouteTags(route, options.cleanPathname, []));
164
222
  const rendered = await render();
165
- if (rendered) await writeRenderedMetadataRoute(options, route, routeKey, rendered, previousEntry);
223
+ if (rendered) try {
224
+ await writeRenderedMetadataRoute(options, route, routeKey, rendered, previousEntry);
225
+ } finally {
226
+ rendered.response.body?.cancel().catch(() => {});
227
+ }
166
228
  });
167
229
  } finally {
168
230
  await closeAfterResponse(requestContext);
169
231
  }
170
232
  }
171
- async function readMatchedPrerenderedMetadataRouteResponse(options, route, functions, render) {
172
- if (!isOuterMetadataCacheEnabled() || !options.isrGet || !options.isrRouteKey) return {
233
+ async function readMatchedPrerenderedMetadataRouteResponse(options, route, render) {
234
+ if (!isOuterMetadataCacheEnabled() || !options.isrGet || !options.isrRouteKey || getActiveDraftModeState() || hasDraftModeCookieHeader() || route.module?.dynamic === "force-dynamic" || route.module?.revalidate === 0) return {
173
235
  cachedEntry: null,
174
236
  response: null
175
237
  };
@@ -203,7 +265,7 @@ async function readMatchedPrerenderedMetadataRouteResponse(options, route, funct
203
265
  revalidateSeconds
204
266
  })
205
267
  };
206
- if (isUseCacheFunction(functions.defaultExport) && options.isrSet && options.scheduleBackgroundRegeneration) {
268
+ if (options.isrSet && options.scheduleBackgroundRegeneration) {
207
269
  const executionContext = getRequestExecutionContext();
208
270
  options.scheduleBackgroundRegeneration(routeKey, () => runMetadataRouteRegeneration(options, route, render, routeKey, cached, executionContext), {
209
271
  routerKind: "App Router",
@@ -255,6 +317,39 @@ function matchMetadataRoute(route, cleanPathname, functions, getUrlParts) {
255
317
  imageId: null
256
318
  } : null;
257
319
  }
320
+ function metadataRouteParamNames(patternParts) {
321
+ return patternParts.flatMap((part) => {
322
+ if (!part.startsWith(":")) return [];
323
+ return [part.slice(1, part.endsWith("+") || part.endsWith("*") ? -1 : void 0)];
324
+ });
325
+ }
326
+ function metadataRouteOptionalCatchAllParamNames(patternParts) {
327
+ return patternParts.flatMap((part) => part.startsWith(":") && part.endsWith("*") ? [part.slice(1, -1)] : []);
328
+ }
329
+ function metadataRouteRawParams(route, match, routePathname) {
330
+ const urlParts = routePathname.split("/").filter(Boolean);
331
+ if (match.imageId !== null) urlParts.pop();
332
+ const params = Object.create(null);
333
+ let urlIndex = 0;
334
+ for (const part of route.patternParts ?? []) {
335
+ if (!part.startsWith(":")) {
336
+ urlIndex++;
337
+ continue;
338
+ }
339
+ const isCatchAll = part.endsWith("+") || part.endsWith("*");
340
+ const name = part.slice(1, isCatchAll ? -1 : void 0);
341
+ if (!isCatchAll) {
342
+ const value = urlParts[urlIndex++];
343
+ if (value !== void 0) params[name] = value;
344
+ continue;
345
+ }
346
+ const matchedValue = match.params?.[name];
347
+ const valueCount = Array.isArray(matchedValue) ? matchedValue.length : matchedValue ? 1 : 0;
348
+ if (valueCount > 0) params[name] = urlParts.slice(urlIndex, urlIndex + valueCount);
349
+ urlIndex += valueCount;
350
+ }
351
+ return params;
352
+ }
258
353
  function findGeneratedSitemapId(entries, rawId) {
259
354
  if (!Array.isArray(entries)) return null;
260
355
  for (const entry of entries) {
@@ -286,7 +381,10 @@ async function handleGeneratedSitemap(route, cleanPathname, functions) {
286
381
  const matchedId = findGeneratedSitemapId(await functions.generateSitemaps({}), rawId);
287
382
  if (!matchedId) return notFoundResponse();
288
383
  const result = await functions.defaultExport({ id: makeThenableMetadataRouteId(matchedId) });
289
- if (result instanceof Response) return withMetadataRouteCacheHeader(result, route);
384
+ if (result instanceof Response) {
385
+ userMetadataResponses.add(result);
386
+ return result;
387
+ }
290
388
  if (!isSitemapEntries(result)) throw new TypeError("Metadata sitemap routes must return an array.");
291
389
  return markFullyBufferedBody(new Response(sitemapToXml(result), { headers: {
292
390
  "Content-Type": route.contentType,
@@ -323,7 +421,10 @@ async function callDynamicMetadataRoute(route, match, makeThenableParams, functi
323
421
  id: makeThenableMetadataRouteId(matchedImageId)
324
422
  });
325
423
  } else result = await functions.defaultExport({ params: paramsThenable });
326
- if (result instanceof Response) return withMetadataRouteCacheHeader(result, route);
424
+ if (result instanceof Response) {
425
+ userMetadataResponses.add(result);
426
+ return result;
427
+ }
327
428
  let body;
328
429
  if (route.type === "sitemap") {
329
430
  if (!isSitemapEntries(result)) throw new TypeError("Metadata sitemap routes must return an array.");
@@ -366,8 +467,8 @@ function isMetadataRouteRequestPath(metadataRoutes, cleanPathname) {
366
467
  }
367
468
  return false;
368
469
  }
369
- async function writeMetadataRouteMiss(options, route, functions, rendered, cachedEntry) {
370
- if (process.env.VINEXT_PRERENDER === "1" || !isOuterMetadataCacheEnabled() || !rendered.response.ok || !isMetadataResponseCacheable(rendered.response) || !isUseCacheFunction(functions.defaultExport) || !options.isrRouteKey || !options.isrSet) return;
470
+ async function writeMetadataRouteMiss(options, route, rendered, cachedEntry) {
471
+ if (process.env.VINEXT_PRERENDER === "1" || !isOuterMetadataCacheEnabled() || !rendered.cacheable || !options.isrRouteKey || !options.isrSet) return;
371
472
  try {
372
473
  await writeRenderedMetadataRoute(options, route, options.isrRouteKey(options.cleanPathname), {
373
474
  ...rendered,
@@ -385,16 +486,17 @@ async function handleMetadataRouteRequest(options) {
385
486
  if (route.type === "sitemap" && route.isDynamic) {
386
487
  if (functions.generateSitemaps) {
387
488
  if (isGeneratedSitemapPath(route, options.cleanPathname)) {
489
+ beginMetadataRouteCacheability(route);
388
490
  const render = async () => {
389
491
  setCurrentFetchSoftTags(buildMetadataRouteTags(route, options.cleanPathname, []));
390
492
  const response = await handleGeneratedSitemap(route, options.cleanPathname, functions);
391
- return response ? captureRenderedMetadataRoute(response) : null;
493
+ return response ? captureRenderedMetadataRoute(response, route, options.cleanPathname) : null;
392
494
  };
393
- const cached = await readMatchedPrerenderedMetadataRouteResponse(options, route, functions, render);
495
+ const cached = await readMatchedPrerenderedMetadataRouteResponse(options, route, render);
394
496
  if (cached.response) return cached.response;
395
497
  const rendered = await render();
396
498
  if (rendered) {
397
- await writeMetadataRouteMiss(options, route, functions, rendered, cached.cachedEntry);
499
+ await writeMetadataRouteMiss(options, route, rendered, cached.cachedEntry);
398
500
  return rendered.response;
399
501
  }
400
502
  }
@@ -403,14 +505,35 @@ async function handleMetadataRouteRequest(options) {
403
505
  }
404
506
  const match = matchMetadataRoute(route, options.cleanPathname, functions, getUrlParts);
405
507
  if (!match) continue;
508
+ beginMetadataRouteCacheability(route);
509
+ const rawParams = route.patternParts ? metadataRouteRawParams(route, match, options.routePathname ?? options.cleanPathname) : Object.create(null);
510
+ if (route.patternParts) {
511
+ const runtimeParams = { ...rawParams };
512
+ decodeMatchedParams(runtimeParams);
513
+ match.params = runtimeParams;
514
+ }
515
+ if (route.isDynamic && isImageMetadataRoute(route) && functions.dynamicParams === false) {
516
+ const validationParams = { ...rawParams };
517
+ canonicalizeAppPageParams(validationParams);
518
+ const { validateAppPageDynamicParams } = await import("./app-page-request.js");
519
+ const dynamicParamsResponse = await validateAppPageDynamicParams({
520
+ enforceStaticParamsOnly: true,
521
+ generateStaticParams: functions.generateStaticParams,
522
+ isDynamicRoute: Boolean(route.patternParts),
523
+ optionalCatchAllParamNames: metadataRouteOptionalCatchAllParamNames(route.patternParts ?? []),
524
+ params: validationParams,
525
+ requiredParamNames: metadataRouteParamNames(route.patternParts ?? [])
526
+ });
527
+ if (dynamicParamsResponse) return dynamicParamsResponse;
528
+ }
406
529
  const render = async () => {
407
530
  setCurrentFetchSoftTags(buildMetadataRouteTags(route, options.cleanPathname, []));
408
- return captureRenderedMetadataRoute(route.isDynamic ? await callDynamicMetadataRoute(route, match, options.makeThenableParams, functions) : serveStaticMetadataRoute(route));
531
+ return captureRenderedMetadataRoute(route.isDynamic ? await callDynamicMetadataRoute(route, match, options.makeThenableParams, functions) : serveStaticMetadataRoute(route), route, options.cleanPathname);
409
532
  };
410
- const cached = await readMatchedPrerenderedMetadataRouteResponse(options, route, functions, render);
533
+ const cached = await readMatchedPrerenderedMetadataRouteResponse(options, route, render);
411
534
  if (cached.response) return cached.response;
412
535
  const rendered = await render();
413
- await writeMetadataRouteMiss(options, route, functions, rendered, cached.cachedEntry);
536
+ await writeMetadataRouteMiss(options, route, rendered, cached.cachedEntry);
414
537
  return rendered.response;
415
538
  }
416
539
  return null;
@@ -1,5 +1,5 @@
1
1
  //#region src/server/metadata-routes.d.ts
2
- type SitemapEntry = {
2
+ export type SitemapEntry = {
3
3
  url: string;
4
4
  lastModified?: string | Date;
5
5
  changeFrequency?: "always" | "hourly" | "daily" | "weekly" | "monthly" | "yearly" | "never";
@@ -44,12 +44,12 @@ type RobotsRule = {
44
44
  crawlDelay?: number;
45
45
  other?: Record<string, string | number | Array<string | number>>;
46
46
  };
47
- type RobotsConfig = {
47
+ export type RobotsConfig = {
48
48
  rules: RobotsRule | RobotsRule[];
49
49
  sitemap?: string | string[];
50
50
  host?: string;
51
51
  };
52
- type ManifestConfig = {
52
+ export type ManifestConfig = {
53
53
  name?: string;
54
54
  short_name?: string;
55
55
  description?: string;
@@ -66,7 +66,7 @@ type ManifestConfig = {
66
66
  [key: string]: unknown;
67
67
  };
68
68
  /** Map of metadata file base names to their URL path and content type. */
69
- declare const METADATA_FILE_MAP: Record<string, {
69
+ export declare const METADATA_FILE_MAP: Record<string, {
70
70
  /** URL path this file is served at */
71
71
  urlPath: string;
72
72
  /** Content type for the response */
@@ -83,15 +83,15 @@ declare const METADATA_FILE_MAP: Record<string, {
83
83
  /**
84
84
  * Convert a sitemap array to XML string.
85
85
  */
86
- declare function sitemapToXml(entries: SitemapEntry[]): string;
86
+ export declare function sitemapToXml(entries: SitemapEntry[]): string;
87
87
  /**
88
88
  * Convert a robots config to text format.
89
89
  */
90
- declare function robotsToText(config: RobotsConfig): string;
90
+ export declare function robotsToText(config: RobotsConfig): string;
91
91
  /**
92
92
  * Convert a manifest config to JSON string.
93
93
  */
94
- declare function manifestToJson(config: ManifestConfig): string;
94
+ export declare function manifestToJson(config: ManifestConfig): string;
95
95
  /**
96
96
  * Compute the static URL for a metadata file given its app directory
97
97
  * parent path and filename.
@@ -101,8 +101,8 @@ declare function manifestToJson(config: ManifestConfig): string;
101
101
  * fillStaticMetadataSegment("/blog/[slug]", "favicon.ico") -> "/blog/-/favicon.ico"
102
102
  * fillStaticMetadataSegment("/(group)/group", "icon.png") -> "/group/icon-131tc6.png"
103
103
  */
104
- declare function fillStaticMetadataSegment(appDirPath: string, lastSegment: string): string;
105
- type MetadataFileRoute = {
104
+ export declare function fillStaticMetadataSegment(appDirPath: string, lastSegment: string): string;
105
+ export type MetadataFileRoute = {
106
106
  /** Type of metadata file */
107
107
  type: string;
108
108
  /** Whether this is a dynamic (code-generated) route */
@@ -128,7 +128,7 @@ type MetadataFileRoute = {
128
128
  /** Sibling .alt.txt file for static social image metadata routes. */
129
129
  altFilePath?: string;
130
130
  };
131
- type MetadataRouteHeadData = {
131
+ export type MetadataRouteHeadData = {
132
132
  kind: "favicon" | "icon" | "apple";
133
133
  href: string;
134
134
  type?: string;
@@ -144,16 +144,15 @@ type MetadataRouteHeadData = {
144
144
  kind: "manifest";
145
145
  href: string;
146
146
  };
147
- declare function getMetadataRouteKind(route: Pick<MetadataFileRoute, "type">): MetadataRouteHeadData["kind"] | null;
148
- declare function getMetadataImageRouteKind(route: Pick<MetadataFileRoute, "type">): Extract<MetadataRouteHeadData["kind"], "icon" | "apple" | "openGraph" | "twitter"> | null;
149
- declare function isValidMetadataImageId(id: string): boolean;
150
- declare function matchMetadataRoutePattern(urlParts: string[], patternParts: string[]): Record<string, string | string[]> | null;
151
- declare function matchMetadataFileBaseName(metaType: string, baseName: string): string | null;
147
+ export declare function getMetadataRouteKind(route: Pick<MetadataFileRoute, "type">): MetadataRouteHeadData["kind"] | null;
148
+ export declare function getMetadataImageRouteKind(route: Pick<MetadataFileRoute, "type">): Extract<MetadataRouteHeadData["kind"], "icon" | "apple" | "openGraph" | "twitter"> | null;
149
+ export declare function isValidMetadataImageId(id: string): boolean;
150
+ export declare function matchMetadataRoutePattern(urlParts: string[], patternParts: string[]): Record<string, string | string[]> | null;
151
+ export declare function matchMetadataFileBaseName(metaType: string, baseName: string): string | null;
152
152
  /** Clear the {@link scanMetadataFiles} cache (call when app files change in dev). */
153
- declare function invalidateMetadataFileCache(): void;
153
+ export declare function invalidateMetadataFileCache(): void;
154
154
  /**
155
155
  * Scan an app directory for metadata files.
156
156
  */
157
- declare function scanMetadataFiles(appDir: string): MetadataFileRoute[];
158
- //#endregion
159
- export { METADATA_FILE_MAP, ManifestConfig, MetadataFileRoute, MetadataRouteHeadData, RobotsConfig, SitemapEntry, fillStaticMetadataSegment, getMetadataImageRouteKind, getMetadataRouteKind, invalidateMetadataFileCache, isValidMetadataImageId, manifestToJson, matchMetadataFileBaseName, matchMetadataRoutePattern, robotsToText, scanMetadataFiles, sitemapToXml };
157
+ export declare function scanMetadataFiles(appDir: string): MetadataFileRoute[];
158
+ //#endregion