vinext 1.0.0-beta.8 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (813) hide show
  1. package/README.md +158 -84
  2. package/THIRD_PARTY_LICENSES.md +25 -0
  3. package/dist/_virtual/_rolldown/runtime.js +25 -0
  4. package/dist/build/action-owner-manifest.d.ts +8 -9
  5. package/dist/build/action-owner-manifest.js +23 -5
  6. package/dist/build/assets-ignore.d.ts +3 -4
  7. package/dist/build/clean-output.d.ts +2 -3
  8. package/dist/build/client-build-config.d.ts +40 -12
  9. package/dist/build/client-build-config.js +76 -6
  10. package/dist/build/css-url-assets.d.ts +4 -5
  11. package/dist/build/css-url-assets.js +5 -2
  12. package/dist/build/google-fonts/build-url.d.ts +3 -4
  13. package/dist/build/google-fonts/fallback-metrics.d.ts +3 -4
  14. package/dist/build/google-fonts/find-font-files-in-css.d.ts +2 -3
  15. package/dist/build/google-fonts/font-metadata.d.ts +2 -3
  16. package/dist/build/google-fonts/get-axes.d.ts +2 -3
  17. package/dist/build/google-fonts/sort-variants.d.ts +2 -3
  18. package/dist/build/google-fonts/validate.d.ts +2 -3
  19. package/dist/build/google-fonts/validate.js +8 -4
  20. package/dist/build/inject-pregenerated-paths.d.ts +2 -3
  21. package/dist/build/inject-pregenerated-paths.js +16 -14
  22. package/dist/build/inline-css.d.ts +3 -4
  23. package/dist/build/layout-classification-types.d.ts +4 -5
  24. package/dist/build/layout-classification.d.ts +7 -8
  25. package/dist/build/lifecycle.d.ts +42 -0
  26. package/dist/build/lifecycle.js +253 -0
  27. package/dist/build/module-dependency-cache.d.ts +2 -3
  28. package/dist/build/next-client-runtime-manifests.d.ts +4 -5
  29. package/dist/build/nitro-route-rules.d.ts +6 -7
  30. package/dist/build/nitro-route-rules.js +1 -1
  31. package/dist/build/pages-client-assets-module.d.ts +4 -8
  32. package/dist/build/pages-client-assets-module.js +1 -13
  33. package/dist/build/precompress.d.ts +2 -3
  34. package/dist/build/prerender-cloudflare-loader.d.ts +4 -0
  35. package/dist/build/prerender-cloudflare-loader.js +49 -0
  36. package/dist/build/prerender-paths.d.ts +82 -8
  37. package/dist/build/prerender-paths.js +814 -99
  38. package/dist/build/prerender-phase.d.ts +2 -3
  39. package/dist/build/prerender-server-entry.js +11 -3
  40. package/dist/build/prerender-server-pool.d.ts +9 -6
  41. package/dist/build/prerender-server-pool.js +8 -5
  42. package/dist/build/prerender.d.ts +67 -15
  43. package/dist/build/prerender.js +177 -64
  44. package/dist/build/preview-credentials.d.ts +5 -6
  45. package/dist/build/preview-credentials.js +2 -2
  46. package/dist/build/public-dir-conflict.d.ts +5 -6
  47. package/dist/build/public-dir-conflict.js +2 -1
  48. package/dist/build/report.d.ts +38 -19
  49. package/dist/build/report.js +73 -4
  50. package/dist/build/route-classification-injector.d.ts +2 -3
  51. package/dist/build/route-classification-manifest.d.ts +5 -6
  52. package/dist/build/run-prerender.d.ts +11 -9
  53. package/dist/build/run-prerender.js +25 -16
  54. package/dist/build/server-entry.d.ts +4 -0
  55. package/dist/build/server-entry.js +28 -0
  56. package/dist/build/server-manifest.d.ts +8 -3
  57. package/dist/build/server-manifest.js +14 -2
  58. package/dist/build/ssr-manifest.d.ts +5 -6
  59. package/dist/build/standalone.d.ts +2 -3
  60. package/dist/build/standalone.js +2 -2
  61. package/dist/build/static-export.d.ts +7 -8
  62. package/dist/cache/cache-adapters-virtual.d.ts +95 -9
  63. package/dist/cache/cache-adapters-virtual.js +58 -6
  64. package/dist/check.d.ts +11 -10
  65. package/dist/check.js +467 -176
  66. package/dist/cli-args.d.ts +7 -16
  67. package/dist/cli-args.js +2 -45
  68. package/dist/cli-dev-config.d.ts +10 -7
  69. package/dist/cli-dev-config.js +160 -3
  70. package/dist/cli.js +124 -435
  71. package/dist/client/app-nav-failure-handler.d.ts +6 -7
  72. package/dist/client/client-rewrite-matcher.d.ts +2 -3
  73. package/dist/client/client-rewrites.d.ts +4 -5
  74. package/dist/client/dev-error-overlay-store.d.ts +13 -14
  75. package/dist/client/dev-error-overlay.d.ts +15 -15
  76. package/dist/client/dev-error-overlay.js +8 -5
  77. package/dist/client/instrumentation-client-inject.d.ts +3 -4
  78. package/dist/client/instrumentation-client-state.d.ts +5 -6
  79. package/dist/client/instrumentation-client.d.ts +3 -4
  80. package/dist/client/navigation-runtime.d.ts +21 -17
  81. package/dist/client/navigation-runtime.js +2 -1
  82. package/dist/client/pages-router-link-navigation.d.ts +4 -5
  83. package/dist/client/react-instance.d.ts +2 -3
  84. package/dist/client/validate-module-path.d.ts +2 -3
  85. package/dist/client/vinext-next-data.d.ts +7 -8
  86. package/dist/client/window-next.d.ts +4 -5
  87. package/dist/config/config-matchers.d.ts +16 -16
  88. package/dist/config/config-matchers.js +10 -7
  89. package/dist/config/dotenv.d.ts +3 -4
  90. package/dist/config/dotenv.js +2 -1
  91. package/dist/config/next-config.d.ts +31 -27
  92. package/dist/config/next-config.js +163 -16
  93. package/dist/config/prerender.d.ts +20 -16
  94. package/dist/config/prerender.js +10 -4
  95. package/dist/config/request-context.d.ts +5 -6
  96. package/dist/config/server-external-packages.d.ts +14 -3
  97. package/dist/config/server-external-packages.js +37 -3
  98. package/dist/config/tsconfig-paths.d.ts +3 -4
  99. package/dist/deps/.pnpm/ignore@5.3.2/deps/ignore/index.js +189 -0
  100. package/dist/deps/.pnpm/ua-parser-js@1.0.35/deps/ua-parser-js/src/ua-parser.js +1057 -0
  101. package/dist/entries/app-browser-entry.d.ts +5 -6
  102. package/dist/entries/app-browser-entry.js +3 -2
  103. package/dist/entries/app-rsc-entry.d.ts +12 -3
  104. package/dist/entries/app-rsc-entry.js +530 -55
  105. package/dist/entries/app-rsc-manifest.d.ts +4 -3
  106. package/dist/entries/app-rsc-manifest.js +27 -8
  107. package/dist/entries/app-ssr-entry.d.ts +2 -3
  108. package/dist/entries/app-ssr-entry.js +8 -1
  109. package/dist/entries/pages-client-entry.d.ts +3 -3
  110. package/dist/entries/pages-client-entry.js +17 -2
  111. package/dist/entries/pages-server-entry.d.ts +13 -3
  112. package/dist/entries/pages-server-entry.js +237 -33
  113. package/dist/entries/runtime-entry-module.d.ts +4 -5
  114. package/dist/image/image-adapters-virtual.d.ts +4 -5
  115. package/dist/index.d.ts +10 -11
  116. package/dist/index.js +832 -199
  117. package/dist/init-cloudflare.d.ts +27 -16
  118. package/dist/init-cloudflare.js +754 -113
  119. package/dist/init-platform.d.ts +26 -22
  120. package/dist/init-platform.js +85 -29
  121. package/dist/init.d.ts +19 -13
  122. package/dist/init.js +123 -41
  123. package/dist/plugins/action-owner-manifest.d.ts +3 -4
  124. package/dist/plugins/action-owner-manifest.js +10 -3
  125. package/dist/plugins/ast-scope.d.ts +10 -11
  126. package/dist/plugins/ast-scope.js +10 -22
  127. package/dist/plugins/ast-utils.d.ts +16 -29
  128. package/dist/plugins/ast-utils.js +27 -71
  129. package/dist/plugins/async-hooks-stub.d.ts +2 -3
  130. package/dist/plugins/client-reference-dedup.d.ts +4 -5
  131. package/dist/plugins/css-data-url.d.ts +2 -3
  132. package/dist/plugins/css-module-imports.d.ts +3 -4
  133. package/dist/plugins/css-module-imports.js +1 -1
  134. package/dist/plugins/dynamic-preload-metadata.d.ts +3 -4
  135. package/dist/plugins/dynamic-preload-metadata.js +55 -154
  136. package/dist/plugins/environment.d.ts +2 -3
  137. package/dist/plugins/extensionless-dynamic-import.d.ts +2 -3
  138. package/dist/plugins/extensionless-dynamic-import.js +6 -10
  139. package/dist/plugins/fonts.d.ts +10 -11
  140. package/dist/plugins/fonts.js +4 -3
  141. package/dist/plugins/ignore-dynamic-requests.d.ts +3 -4
  142. package/dist/plugins/ignore-dynamic-requests.js +60 -89
  143. package/dist/plugins/import-meta-url.d.ts +6 -7
  144. package/dist/plugins/import-meta-url.js +31 -43
  145. package/dist/plugins/instrumentation-client.d.ts +3 -3
  146. package/dist/plugins/instrumentation-client.js +46 -10
  147. package/dist/plugins/middleware-export-validation.d.ts +3 -4
  148. package/dist/plugins/middleware-export-validation.js +3 -3
  149. package/dist/plugins/middleware-server-only.d.ts +2 -3
  150. package/dist/plugins/og-asset-ownership.d.ts +3 -4
  151. package/dist/plugins/og-assets.d.ts +4 -5
  152. package/dist/plugins/og-assets.js +32 -13
  153. package/dist/plugins/og-harfbuzz.d.ts +24 -0
  154. package/dist/plugins/og-harfbuzz.js +260 -0
  155. package/dist/plugins/optimize-imports.d.ts +7 -7
  156. package/dist/plugins/optimize-imports.js +32 -44
  157. package/dist/plugins/pages-node-externals.d.ts +2 -3
  158. package/dist/plugins/pages-node-externals.js +6 -11
  159. package/dist/plugins/postcss.d.ts +8 -4
  160. package/dist/plugins/postcss.js +1 -1
  161. package/dist/plugins/remove-console.d.ts +2 -3
  162. package/dist/plugins/remove-console.js +0 -1
  163. package/dist/plugins/require-condition-resolution.d.ts +3 -4
  164. package/dist/plugins/require-condition-resolution.js +17 -18
  165. package/dist/plugins/require-context.d.ts +2 -3
  166. package/dist/plugins/require-context.js +13 -21
  167. package/dist/plugins/rsc-client-reference-loaders.d.ts +2 -3
  168. package/dist/plugins/rsc-client-shim-excludes.d.ts +4 -5
  169. package/dist/plugins/rsc-client-shim-excludes.js +1 -0
  170. package/dist/plugins/rsc-reference-validation-normalizer.d.ts +2 -3
  171. package/dist/plugins/sass.d.ts +7 -8
  172. package/dist/plugins/sass.js +7 -4
  173. package/dist/plugins/server-externals-manifest.d.ts +2 -3
  174. package/dist/plugins/strip-server-exports.d.ts +5 -6
  175. package/dist/plugins/strip-server-exports.js +1 -1
  176. package/dist/plugins/styled-jsx.d.ts +2 -3
  177. package/dist/plugins/styled-jsx.js +7 -7
  178. package/dist/plugins/transform-cache.d.ts +2 -3
  179. package/dist/plugins/transform-result.d.ts +3 -4
  180. package/dist/plugins/transitive-externals.d.ts +2 -3
  181. package/dist/plugins/typeof-window.d.ts +6 -7
  182. package/dist/plugins/typeof-window.js +30 -31
  183. package/dist/plugins/use-cache-callable.d.ts +2 -5
  184. package/dist/plugins/use-cache-callable.js +43 -22
  185. package/dist/plugins/wasm-module-import.d.ts +2 -3
  186. package/dist/plugins/worker-image-imports.d.ts +2 -3
  187. package/dist/plugins/worker-image-imports.js +6 -8
  188. package/dist/routing/app-route-graph.d.ts +19 -19
  189. package/dist/routing/app-route-graph.js +3 -2
  190. package/dist/routing/app-router.d.ts +20 -5
  191. package/dist/routing/app-router.js +28 -2
  192. package/dist/routing/file-matcher.d.ts +9 -10
  193. package/dist/routing/pages-router.d.ts +6 -6
  194. package/dist/routing/pages-router.js +1 -1
  195. package/dist/routing/route-matching.d.ts +4 -5
  196. package/dist/routing/route-matching.js +4 -2
  197. package/dist/routing/route-pattern.d.ts +13 -14
  198. package/dist/routing/route-trie.d.ts +5 -6
  199. package/dist/routing/route-validation.d.ts +3 -4
  200. package/dist/routing/route-validation.js +12 -11
  201. package/dist/routing/utils.d.ts +13 -14
  202. package/dist/server/accept-encoding.d.ts +9 -10
  203. package/dist/server/api-handler.d.ts +2 -3
  204. package/dist/server/api-handler.js +9 -6
  205. package/dist/server/app-action-forwarding.d.ts +3 -4
  206. package/dist/server/app-action-forwarding.js +1 -1
  207. package/dist/server/app-action-request.d.ts +2 -3
  208. package/dist/server/app-bfcache-id.d.ts +3 -4
  209. package/dist/server/app-bfcache-identity.d.ts +8 -9
  210. package/dist/server/app-browser-action-result.d.ts +15 -16
  211. package/dist/server/app-browser-client-reuse-manifest.d.ts +2 -3
  212. package/dist/server/app-browser-entry.js +121 -40
  213. package/dist/server/app-browser-error.d.ts +5 -6
  214. package/dist/server/app-browser-error.js +9 -3
  215. package/dist/server/app-browser-history-controller.d.ts +4 -5
  216. package/dist/server/app-browser-hydration.d.ts +16 -6
  217. package/dist/server/app-browser-hydration.js +14 -1
  218. package/dist/server/app-browser-interception-context.d.ts +3 -4
  219. package/dist/server/app-browser-mpa-navigation.d.ts +4 -5
  220. package/dist/server/app-browser-navigation-abort.d.ts +3 -4
  221. package/dist/server/app-browser-navigation-controller.d.ts +8 -8
  222. package/dist/server/app-browser-navigation-controller.js +9 -5
  223. package/dist/server/app-browser-navigation-response.d.ts +2 -3
  224. package/dist/server/app-browser-popstate.d.ts +4 -5
  225. package/dist/server/app-browser-prefetch-response.d.ts +5 -6
  226. package/dist/server/app-browser-rsc-redirect.d.ts +4 -5
  227. package/dist/server/app-browser-server-action-client.d.ts +7 -6
  228. package/dist/server/app-browser-server-action-client.js +9 -5
  229. package/dist/server/app-browser-server-action-navigation.d.ts +2 -3
  230. package/dist/server/app-browser-state.d.ts +17 -17
  231. package/dist/server/app-browser-state.js +7 -3
  232. package/dist/server/app-browser-stream.d.ts +4 -5
  233. package/dist/server/app-browser-stream.js +8 -6
  234. package/dist/server/app-browser-supplemental-refresh.d.ts +11 -12
  235. package/dist/server/app-browser-visible-commit.d.ts +6 -7
  236. package/dist/server/app-browser-visible-commit.js +1 -1
  237. package/dist/server/app-client-reference-preloader.d.ts +2 -3
  238. package/dist/server/app-elements-wire-key.d.ts +25 -0
  239. package/dist/server/app-elements-wire-key.js +69 -0
  240. package/dist/server/app-elements-wire.d.ts +34 -53
  241. package/dist/server/app-elements-wire.js +4 -75
  242. package/dist/server/app-elements.d.ts +5 -5
  243. package/dist/server/app-elements.js +1 -1
  244. package/dist/server/app-fallback-renderer.d.ts +4 -4
  245. package/dist/server/app-fallback-renderer.js +6 -6
  246. package/dist/server/app-fetch-tracing.d.ts +15 -0
  247. package/dist/server/app-fetch-tracing.js +38 -0
  248. package/dist/server/app-history-state.d.ts +26 -27
  249. package/dist/server/app-history-state.js +19 -11
  250. package/dist/server/app-hook-warning-suppression.d.ts +2 -3
  251. package/dist/server/app-hydration-cache-publication.d.ts +3 -4
  252. package/dist/server/app-inline-css-client.d.ts +3 -4
  253. package/dist/server/app-interception-context-header.d.ts +2 -3
  254. package/dist/server/app-layout-param-observation.d.ts +7 -8
  255. package/dist/server/app-metadata-tracing.d.ts +12 -0
  256. package/dist/server/app-metadata-tracing.js +17 -0
  257. package/dist/server/app-middleware.d.ts +15 -7
  258. package/dist/server/app-middleware.js +30 -5
  259. package/dist/server/app-mounted-slots-header.d.ts +2 -3
  260. package/dist/server/app-mounted-slots-header.js +2 -2
  261. package/dist/server/app-optimistic-routing.d.ts +14 -10
  262. package/dist/server/app-optimistic-routing.js +16 -3
  263. package/dist/server/app-page-boundary-render.d.ts +6 -6
  264. package/dist/server/app-page-boundary-render.js +10 -4
  265. package/dist/server/app-page-boundary.d.ts +9 -10
  266. package/dist/server/app-page-boundary.js +2 -1
  267. package/dist/server/app-page-cache-finalizer.d.ts +32 -8
  268. package/dist/server/app-page-cache-finalizer.js +118 -14
  269. package/dist/server/app-page-cache-render.d.ts +8 -5
  270. package/dist/server/app-page-cache-render.js +22 -5
  271. package/dist/server/app-page-cache.d.ts +28 -9
  272. package/dist/server/app-page-cache.js +96 -25
  273. package/dist/server/app-page-dispatch.d.ts +36 -12
  274. package/dist/server/app-page-dispatch.js +188 -63
  275. package/dist/server/app-page-element-builder.d.ts +13 -11
  276. package/dist/server/app-page-element-builder.js +104 -61
  277. package/dist/server/app-page-execution.d.ts +14 -14
  278. package/dist/server/app-page-execution.js +12 -8
  279. package/dist/server/app-page-head.d.ts +19 -16
  280. package/dist/server/app-page-head.js +25 -25
  281. package/dist/server/app-page-http-access-fallback-metadata.d.ts +6 -5
  282. package/dist/server/app-page-http-access-fallback-metadata.js +9 -2
  283. package/dist/server/app-page-method.d.ts +5 -11
  284. package/dist/server/app-page-method.js +2 -9
  285. package/dist/server/app-page-params.d.ts +5 -6
  286. package/dist/server/app-page-ppr-runtime.d.ts +2 -2
  287. package/dist/server/app-page-probe.d.ts +5 -6
  288. package/dist/server/app-page-probe.js +5 -4
  289. package/dist/server/app-page-render-identity.d.ts +4 -5
  290. package/dist/server/app-page-render-observation.d.ts +8 -9
  291. package/dist/server/app-page-render-observation.js +1 -1
  292. package/dist/server/app-page-render.d.ts +42 -6
  293. package/dist/server/app-page-render.js +192 -28
  294. package/dist/server/app-page-request.d.ts +10 -9
  295. package/dist/server/app-page-request.js +16 -12
  296. package/dist/server/app-page-response.d.ts +20 -9
  297. package/dist/server/app-page-response.js +31 -13
  298. package/dist/server/app-page-route-wiring.d.ts +15 -15
  299. package/dist/server/app-page-route-wiring.js +31 -24
  300. package/dist/server/app-page-search-params-observation.d.ts +26 -5
  301. package/dist/server/app-page-search-params-observation.js +42 -6
  302. package/dist/server/app-page-segment-plan.d.ts +2 -3
  303. package/dist/server/app-page-segment-state.d.ts +11 -12
  304. package/dist/server/app-page-stream.d.ts +27 -11
  305. package/dist/server/app-page-stream.js +35 -6
  306. package/dist/server/app-page-tracing.d.ts +33 -0
  307. package/dist/server/app-page-tracing.js +49 -0
  308. package/dist/server/app-pages-bridge.d.ts +6 -6
  309. package/dist/server/app-pages-bridge.js +19 -4
  310. package/dist/server/app-post-middleware-context.d.ts +2 -3
  311. package/dist/server/app-ppr-fallback-shell-render.d.ts +3 -4
  312. package/dist/server/app-ppr-fallback-shell-render.js +3 -2
  313. package/dist/server/app-ppr-fallback-shell.d.ts +6 -7
  314. package/dist/server/app-prerender-endpoints.d.ts +5 -5
  315. package/dist/server/app-prerender-endpoints.js +26 -12
  316. package/dist/server/app-prerender-static-params.d.ts +15 -7
  317. package/dist/server/app-prerender-static-params.js +33 -11
  318. package/dist/server/app-render-dependency.d.ts +14 -13
  319. package/dist/server/app-render-dependency.js +5 -1
  320. package/dist/server/app-request-context.d.ts +3 -4
  321. package/dist/server/app-request-stage-context.d.ts +5 -0
  322. package/dist/server/app-request-stage-context.js +11 -0
  323. package/dist/server/app-request-stage-dispatch.d.ts +25 -0
  324. package/dist/server/app-request-stage-dispatch.js +54 -0
  325. package/dist/server/app-request-stage-independent-entry.d.ts +8 -0
  326. package/dist/server/app-request-stage-independent-entry.js +115 -0
  327. package/dist/server/app-response-header-provenance.d.ts +13 -7
  328. package/dist/server/app-response-header-provenance.js +34 -1
  329. package/dist/server/app-response-stage-entry.d.ts +9 -0
  330. package/dist/server/app-response-stage-entry.js +87 -0
  331. package/dist/server/app-route-handler-cache.d.ts +2 -3
  332. package/dist/server/app-route-handler-cache.js +46 -34
  333. package/dist/server/app-route-handler-dispatch.d.ts +3 -3
  334. package/dist/server/app-route-handler-dispatch.js +75 -57
  335. package/dist/server/app-route-handler-execution.d.ts +18 -13
  336. package/dist/server/app-route-handler-execution.js +189 -25
  337. package/dist/server/app-route-handler-middleware-context.d.ts +8 -0
  338. package/dist/server/app-route-handler-middleware-context.js +15 -0
  339. package/dist/server/app-route-handler-policy.d.ts +22 -10
  340. package/dist/server/app-route-handler-policy.js +19 -4
  341. package/dist/server/app-route-handler-response.d.ts +9 -10
  342. package/dist/server/app-route-handler-response.js +2 -0
  343. package/dist/server/app-route-handler-runtime.d.ts +9 -10
  344. package/dist/server/app-route-handler-runtime.js +20 -16
  345. package/dist/server/app-route-module-loader.d.ts +6 -7
  346. package/dist/server/app-route-request-built-ins.d.ts +3 -4
  347. package/dist/server/app-route-tree-prefetch.d.ts +6 -7
  348. package/dist/server/app-route-tree-prefetch.js +2 -1
  349. package/dist/server/app-router-entry.d.ts +2 -0
  350. package/dist/server/app-router-entry.js +76 -12
  351. package/dist/server/app-rsc-cache-busting.d.ts +47 -22
  352. package/dist/server/app-rsc-cache-busting.js +80 -18
  353. package/dist/server/app-rsc-combined-handler.d.ts +9 -0
  354. package/dist/server/app-rsc-combined-handler.js +11 -0
  355. package/dist/server/app-rsc-embedded-chunks.d.ts +6 -7
  356. package/dist/server/app-rsc-error-handler.d.ts +12 -6
  357. package/dist/server/app-rsc-error-handler.js +15 -6
  358. package/dist/server/app-rsc-errors.d.ts +12 -9
  359. package/dist/server/app-rsc-errors.js +15 -13
  360. package/dist/server/app-rsc-handler.d.ts +33 -6
  361. package/dist/server/app-rsc-handler.js +498 -83
  362. package/dist/server/app-rsc-redirect-flight.d.ts +4 -5
  363. package/dist/server/app-rsc-render-mode.d.ts +8 -9
  364. package/dist/server/app-rsc-request-normalization.d.ts +3 -3
  365. package/dist/server/app-rsc-request-normalization.js +2 -1
  366. package/dist/server/app-rsc-response-finalizer.d.ts +8 -5
  367. package/dist/server/app-rsc-response-finalizer.js +24 -7
  368. package/dist/server/app-rsc-response-stage.d.ts +6 -0
  369. package/dist/server/app-rsc-response-stage.js +251 -0
  370. package/dist/server/app-rsc-route-matching.d.ts +4 -4
  371. package/dist/server/app-rsc-route-matching.js +4 -2
  372. package/dist/server/app-rsc-state-fingerprint.d.ts +3 -4
  373. package/dist/server/app-rsc-vary.d.ts +16 -0
  374. package/dist/server/app-rsc-vary.js +31 -0
  375. package/dist/server/app-segment-config.d.ts +120 -6
  376. package/dist/server/app-segment-config.js +264 -12
  377. package/dist/server/app-server-action-execution.d.ts +16 -12
  378. package/dist/server/app-server-action-execution.js +88 -35
  379. package/dist/server/app-ssr-entry.d.ts +14 -4
  380. package/dist/server/app-ssr-entry.js +64 -17
  381. package/dist/server/app-ssr-error-meta.d.ts +3 -4
  382. package/dist/server/app-ssr-error-meta.js +2 -1
  383. package/dist/server/app-ssr-router-instance.d.ts +2 -3
  384. package/dist/server/app-ssr-search-params-gate.d.ts +20 -0
  385. package/dist/server/app-ssr-search-params-gate.js +54 -0
  386. package/dist/server/app-ssr-stream.d.ts +13 -9
  387. package/dist/server/app-ssr-stream.js +33 -7
  388. package/dist/server/app-static-generation.d.ts +4 -5
  389. package/dist/server/app-visited-response-cache.d.ts +11 -12
  390. package/dist/server/app-visited-response-cache.js +2 -2
  391. package/dist/server/app-worker-stages.d.ts +112 -0
  392. package/dist/server/app-worker-stages.js +105 -0
  393. package/dist/server/artifact-compatibility.d.ts +11 -12
  394. package/dist/server/before-interactive-head.d.ts +2 -3
  395. package/dist/server/bfcache-identity.d.ts +7 -8
  396. package/dist/server/cache-control.d.ts +39 -11
  397. package/dist/server/cache-control.js +104 -7
  398. package/dist/server/cache-headers.d.ts +3 -4
  399. package/dist/server/cache-proof.d.ts +75 -70
  400. package/dist/server/cache-proof.js +9 -1
  401. package/dist/server/cacheability-limits.d.ts +8 -0
  402. package/dist/server/cacheability-limits.js +9 -0
  403. package/dist/server/cacheability-manifest.d.ts +68 -0
  404. package/dist/server/cacheability-manifest.js +241 -0
  405. package/dist/server/cacheability-request.d.ts +49 -0
  406. package/dist/server/cacheability-request.js +559 -0
  407. package/dist/server/client-reuse-manifest.d.ts +17 -18
  408. package/dist/server/client-reuse-manifest.js +2 -2
  409. package/dist/server/client-trace-metadata.d.ts +9 -6
  410. package/dist/server/client-trace-metadata.js +27 -15
  411. package/dist/server/cloudflare-workers-tracing.d.ts +1 -0
  412. package/dist/server/cloudflare-workers-tracing.js +8 -0
  413. package/dist/server/config-headers.d.ts +19 -5
  414. package/dist/server/config-headers.js +39 -5
  415. package/dist/server/cookie-utils.d.ts +2 -3
  416. package/dist/server/csp.d.ts +5 -6
  417. package/dist/server/default-global-error-module.d.ts +2 -3
  418. package/dist/server/default-global-not-found-module.d.ts +2 -3
  419. package/dist/server/default-not-found-module.d.ts +2 -3
  420. package/dist/server/defer-until-stream-consumed.d.ts +2 -3
  421. package/dist/server/defer-until-stream-consumed.js +2 -1
  422. package/dist/server/dev-initial-server-error.d.ts +3 -4
  423. package/dist/server/dev-initial-server-error.js +2 -1
  424. package/dist/server/dev-lockfile.d.ts +7 -8
  425. package/dist/server/dev-lockfile.js +4 -1
  426. package/dist/server/dev-module-runner.d.ts +2 -3
  427. package/dist/server/dev-origin-check.d.ts +5 -6
  428. package/dist/server/dev-route-files.d.ts +2 -3
  429. package/dist/server/dev-server.d.ts +4 -5
  430. package/dist/server/dev-server.js +130 -61
  431. package/dist/server/dev-stack-sourcemap.d.ts +7 -7
  432. package/dist/server/dev-stack-sourcemap.js +1 -1
  433. package/dist/server/document-initial-head.d.ts +3 -4
  434. package/dist/server/edge-api-runtime.d.ts +4 -5
  435. package/dist/server/fetch-handler.d.ts +3 -2
  436. package/dist/server/fetch-handler.js +3 -18
  437. package/dist/server/file-based-metadata.d.ts +2 -3
  438. package/dist/server/framework-tracer.d.ts +46 -0
  439. package/dist/server/framework-tracer.js +125 -0
  440. package/dist/server/fully-buffered-response.d.ts +11 -0
  441. package/dist/server/fully-buffered-response.js +19 -0
  442. package/dist/server/headers.d.ts +62 -56
  443. package/dist/server/headers.js +33 -20
  444. package/dist/server/html.d.ts +6 -27
  445. package/dist/server/html.js +16 -1
  446. package/dist/server/http-conditional.d.ts +5 -6
  447. package/dist/server/http-date.d.ts +2 -3
  448. package/dist/server/http-error-responses.d.ts +9 -10
  449. package/dist/server/http-range.d.ts +4 -5
  450. package/dist/server/hybrid-route-priority.d.ts +4 -5
  451. package/dist/server/image-optimization.d.ts +20 -21
  452. package/dist/server/implicit-tags.d.ts +3 -4
  453. package/dist/server/instrumentation-runtime.d.ts +17 -21
  454. package/dist/server/instrumentation-runtime.js +26 -8
  455. package/dist/server/instrumentation.d.ts +26 -30
  456. package/dist/server/instrumentation.js +18 -23
  457. package/dist/server/isr-cache.d.ts +28 -27
  458. package/dist/server/isr-cache.js +18 -70
  459. package/dist/server/isr-decision.d.ts +4 -4
  460. package/dist/server/metadata-route-build-data.d.ts +4 -5
  461. package/dist/server/metadata-route-cache-policy.d.ts +2 -3
  462. package/dist/server/metadata-route-response.d.ts +7 -7
  463. package/dist/server/metadata-route-response.js +68 -2
  464. package/dist/server/metadata-routes.d.ts +18 -19
  465. package/dist/server/middleware-matcher-pattern.d.ts +6 -7
  466. package/dist/server/middleware-matcher.d.ts +13 -6
  467. package/dist/server/middleware-matcher.js +22 -1
  468. package/dist/server/middleware-path-to-regexp.d.ts +6 -7
  469. package/dist/server/middleware-path-to-regexp.js +11 -9
  470. package/dist/server/middleware-response-headers.d.ts +3 -4
  471. package/dist/server/middleware-runtime.d.ts +13 -8
  472. package/dist/server/middleware-runtime.js +54 -10
  473. package/dist/server/middleware.d.ts +5 -5
  474. package/dist/server/multi-stage.d.ts +141 -0
  475. package/dist/server/multi-stage.js +8 -0
  476. package/dist/server/navigation-planner.d.ts +26 -26
  477. package/dist/server/navigation-trace.d.ts +11 -12
  478. package/dist/server/next-error-digest.d.ts +4 -5
  479. package/dist/server/normalize-path.d.ts +5 -6
  480. package/dist/server/normalize-path.js +1 -1
  481. package/dist/server/open-redirect.d.ts +2 -3
  482. package/dist/server/opentelemetry-api.d.ts +59 -0
  483. package/dist/server/opentelemetry-api.js +53 -0
  484. package/dist/server/opentelemetry-tracing.d.ts +5 -0
  485. package/dist/server/opentelemetry-tracing.js +83 -0
  486. package/dist/server/operation-token.d.ts +11 -12
  487. package/dist/server/otel-tracer-extension.d.ts +7 -9
  488. package/dist/server/otel-tracer-extension.js +37 -36
  489. package/dist/server/pages-api-route.d.ts +5 -4
  490. package/dist/server/pages-api-route.js +21 -8
  491. package/dist/server/pages-asset-tags.d.ts +6 -6
  492. package/dist/server/pages-asset-tags.js +37 -2
  493. package/dist/server/pages-body-parser-config.d.ts +4 -5
  494. package/dist/server/pages-body-parser-config.js +4 -4
  495. package/dist/server/pages-client-assets.d.ts +11 -5
  496. package/dist/server/pages-data-route.d.ts +11 -12
  497. package/dist/server/pages-data-route.js +1 -1
  498. package/dist/server/pages-default-404.d.ts +3 -4
  499. package/dist/server/pages-dev-hydration.d.ts +9 -4
  500. package/dist/server/pages-dev-hydration.js +19 -7
  501. package/dist/server/pages-dev-module-url.d.ts +3 -4
  502. package/dist/server/pages-dev-stylesheets.d.ts +5 -6
  503. package/dist/server/pages-document-asset-props.d.ts +6 -7
  504. package/dist/server/pages-document-initial-props.d.ts +5 -5
  505. package/dist/server/pages-document-initial-props.js +4 -2
  506. package/dist/server/pages-execution-tracing.d.ts +40 -0
  507. package/dist/server/pages-execution-tracing.js +80 -0
  508. package/dist/server/pages-get-initial-props.d.ts +9 -10
  509. package/dist/server/pages-i18n.d.ts +8 -8
  510. package/dist/server/pages-i18n.js +3 -2
  511. package/dist/server/pages-media-type.d.ts +4 -5
  512. package/dist/server/pages-node-compat.d.ts +11 -10
  513. package/dist/server/pages-node-compat.js +12 -4
  514. package/dist/server/pages-page-data.d.ts +18 -19
  515. package/dist/server/pages-page-data.js +11 -10
  516. package/dist/server/pages-page-handler.d.ts +7 -6
  517. package/dist/server/pages-page-handler.js +98 -47
  518. package/dist/server/pages-page-method.d.ts +2 -3
  519. package/dist/server/pages-page-response.d.ts +14 -10
  520. package/dist/server/pages-page-response.js +49 -31
  521. package/dist/server/pages-preview.d.ts +10 -11
  522. package/dist/server/pages-readiness.d.ts +2 -3
  523. package/dist/server/pages-request-pipeline.d.ts +16 -12
  524. package/dist/server/pages-request-pipeline.js +69 -28
  525. package/dist/server/pages-request-stage-entry.d.ts +23 -0
  526. package/dist/server/pages-request-stage-entry.js +314 -0
  527. package/dist/server/pages-response-stage-entry.d.ts +11 -0
  528. package/dist/server/pages-response-stage-entry.js +106 -0
  529. package/dist/server/pages-response-stage.d.ts +31 -0
  530. package/dist/server/pages-response-stage.js +49 -0
  531. package/dist/server/pages-revalidate.d.ts +3 -4
  532. package/dist/server/pages-revalidate.js +9 -4
  533. package/dist/server/pages-route-data-kind.d.ts +18 -0
  534. package/dist/server/pages-route-data-kind.js +11 -0
  535. package/dist/server/pages-router-entry.d.ts +1 -25
  536. package/dist/server/pages-router-entry.js +48 -114
  537. package/dist/server/pages-serializable-props.d.ts +3 -4
  538. package/dist/server/pregenerated-concrete-paths.d.ts +9 -7
  539. package/dist/server/pregenerated-concrete-paths.js +12 -6
  540. package/dist/server/prerender-cache-life-header.d.ts +3 -4
  541. package/dist/server/prerender-manifest.d.ts +11 -11
  542. package/dist/server/prerender-manifest.js +6 -3
  543. package/dist/server/prerender-route-params.d.ts +16 -9
  544. package/dist/server/prerender-route-params.js +18 -2
  545. package/dist/server/prerender-work-unit-setup.d.ts +4 -4
  546. package/dist/server/prerender-work-unit-setup.js +37 -14
  547. package/dist/server/prod-server.d.ts +12 -9
  548. package/dist/server/prod-server.js +129 -36
  549. package/dist/server/proxy-trust.d.ts +5 -6
  550. package/dist/server/request-log.d.ts +3 -4
  551. package/dist/server/request-pipeline.d.ts +17 -21
  552. package/dist/server/request-pipeline.js +8 -10
  553. package/dist/server/request-stage.d.ts +5 -0
  554. package/dist/server/request-stage.js +7 -0
  555. package/dist/server/request-tracing.d.ts +22 -0
  556. package/dist/server/request-tracing.js +180 -0
  557. package/dist/server/response-stage-cacheability.d.ts +37 -0
  558. package/dist/server/response-stage-cacheability.js +55 -0
  559. package/dist/server/response-stage-policy.d.ts +23 -0
  560. package/dist/server/response-stage-policy.js +89 -0
  561. package/dist/server/response-stage.d.ts +5 -0
  562. package/dist/server/response-stage.js +7 -0
  563. package/dist/server/response-start-tracing.d.ts +14 -0
  564. package/dist/server/response-start-tracing.js +80 -0
  565. package/dist/server/revalidation-host.d.ts +2 -3
  566. package/dist/server/revalidation-host.js +2 -1
  567. package/dist/server/revalidation-request.d.ts +8 -0
  568. package/dist/server/revalidation-request.js +37 -0
  569. package/dist/server/rsc-completion-metadata.d.ts +6 -7
  570. package/dist/server/rsc-stream-hints.d.ts +18 -7
  571. package/dist/server/rsc-stream-hints.js +70 -35
  572. package/dist/server/seed-cache.d.ts +2 -3
  573. package/dist/server/seed-cache.js +8 -7
  574. package/dist/server/server-action-not-found.d.ts +5 -6
  575. package/dist/server/server-globals.d.ts +2 -3
  576. package/dist/server/server-globals.js +13 -0
  577. package/dist/server/skip-cache-proof.d.ts +4 -4
  578. package/dist/server/socket-error-backstop.d.ts +5 -6
  579. package/dist/server/socket-error-backstop.js +1 -1
  580. package/dist/server/static-file-cache.d.ts +5 -6
  581. package/dist/server/static-file-cache.js +9 -7
  582. package/dist/server/static-file-signal.d.ts +16 -0
  583. package/dist/server/static-file-signal.js +82 -0
  584. package/dist/server/static-layout-client-reuse-proof.d.ts +4 -5
  585. package/dist/server/streaming-metadata.d.ts +2 -3
  586. package/dist/server/tracer.d.ts +5 -0
  587. package/dist/server/tracer.js +13 -0
  588. package/dist/server/worker-prerender-discovery.d.ts +18 -0
  589. package/dist/server/worker-prerender-discovery.js +55 -0
  590. package/dist/server/worker-revalidation-context.d.ts +2 -3
  591. package/dist/server/worker-revalidation-context.js +5 -5
  592. package/dist/server/worker-stages.d.ts +43 -0
  593. package/dist/server/worker-stages.js +25 -0
  594. package/dist/server/worker-utils.d.ts +5 -6
  595. package/dist/server/worker-utils.js +4 -4
  596. package/dist/server/workers-tracing.d.ts +17 -0
  597. package/dist/server/workers-tracing.js +27 -0
  598. package/dist/shims/amp.d.ts +3 -4
  599. package/dist/shims/app-router-scroll-state.d.ts +9 -10
  600. package/dist/shims/app-router-scroll.d.ts +4 -5
  601. package/dist/shims/app-router-scroll.js +2 -1
  602. package/dist/shims/app.d.ts +5 -6
  603. package/dist/shims/before-interactive-context.d.ts +5 -6
  604. package/dist/shims/cache-callable-runtime.d.ts +44 -4
  605. package/dist/shims/cache-callable-runtime.js +168 -8
  606. package/dist/shims/cache-for-request.d.ts +2 -3
  607. package/dist/shims/cache-handler.d.ts +33 -20
  608. package/dist/shims/cache-handler.js +61 -2
  609. package/dist/shims/cache-request-state.d.ts +28 -29
  610. package/dist/shims/cache-runtime.d.ts +23 -21
  611. package/dist/shims/cache-runtime.js +239 -121
  612. package/dist/shims/cache.d.ts +15 -15
  613. package/dist/shims/cache.js +25 -13
  614. package/dist/shims/cacheability-classification.d.ts +106 -0
  615. package/dist/shims/cacheability-classification.js +161 -0
  616. package/dist/shims/cdn-cache-state.d.ts +13 -0
  617. package/dist/shims/cdn-cache-state.js +23 -0
  618. package/dist/shims/cdn-cache.d.ts +76 -18
  619. package/dist/shims/cdn-cache.js +40 -39
  620. package/dist/shims/client-hook-error.d.ts +3 -4
  621. package/dist/shims/client-locale.d.ts +2 -3
  622. package/dist/shims/client-page-root.d.ts +24 -0
  623. package/dist/shims/client-page-root.js +121 -0
  624. package/dist/shims/compat-router.d.ts +2 -3
  625. package/dist/shims/config.d.ts +3 -4
  626. package/dist/shims/constants.d.ts +73 -74
  627. package/dist/shims/constants.js +1 -1
  628. package/dist/shims/default-not-found.d.ts +2 -3
  629. package/dist/shims/document.d.ts +9 -9
  630. package/dist/shims/dynamic-preload-chunks.d.ts +2 -3
  631. package/dist/shims/dynamic-preload-chunks.js +17 -13
  632. package/dist/shims/dynamic.d.ts +3 -3
  633. package/dist/shims/error-boundary-navigation.d.ts +3 -4
  634. package/dist/shims/error-boundary.d.ts +17 -18
  635. package/dist/shims/error-boundary.js +17 -11
  636. package/dist/shims/error.d.ts +4 -4
  637. package/dist/shims/error.js +1 -1
  638. package/dist/shims/error.react-server.d.ts +3 -4
  639. package/dist/shims/fetch-cache.d.ts +22 -22
  640. package/dist/shims/fetch-cache.js +50 -20
  641. package/dist/shims/font-google-base.d.ts +9 -9
  642. package/dist/shims/font-google-base.js +2 -1
  643. package/dist/shims/font-local.d.ts +3 -3
  644. package/dist/shims/font-local.js +1 -1
  645. package/dist/shims/font-utils.d.ts +14 -15
  646. package/dist/shims/form.d.ts +2 -2
  647. package/dist/shims/form.js +10 -7
  648. package/dist/shims/hash-scroll.d.ts +5 -6
  649. package/dist/shims/head-state.d.ts +4 -5
  650. package/dist/shims/head.d.ts +16 -16
  651. package/dist/shims/head.js +5 -4
  652. package/dist/shims/headers.d.ts +68 -32
  653. package/dist/shims/headers.js +101 -10
  654. package/dist/shims/i18n-context.d.ts +5 -6
  655. package/dist/shims/i18n-state.d.ts +4 -5
  656. package/dist/shims/image-config.d.ts +5 -6
  657. package/dist/shims/image-config.js +2 -0
  658. package/dist/shims/image.d.ts +5 -5
  659. package/dist/shims/image.js +12 -8
  660. package/dist/shims/internal/als-registry.d.ts +4 -5
  661. package/dist/shims/internal/api-utils.d.ts +3 -4
  662. package/dist/shims/internal/app-page-props-cache-key.d.ts +32 -4
  663. package/dist/shims/internal/app-page-props-cache-key.js +53 -1
  664. package/dist/shims/internal/app-prefetch-fetch-queue.d.ts +5 -6
  665. package/dist/shims/internal/app-prefetch-rsc-request.d.ts +13 -0
  666. package/dist/shims/internal/app-prefetch-rsc-request.js +12 -0
  667. package/dist/shims/internal/app-route-detection.d.ts +2 -2
  668. package/dist/shims/internal/app-route-prefetch-policy.d.ts +5 -6
  669. package/dist/shims/internal/app-route-prefetch-policy.js +1 -0
  670. package/dist/shims/internal/app-router-context.d.ts +9 -10
  671. package/dist/shims/internal/cookie-serialize.d.ts +4 -5
  672. package/dist/shims/internal/format-url-object.d.ts +7 -0
  673. package/dist/shims/internal/format-url-object.js +53 -0
  674. package/dist/shims/internal/hybrid-client-route-owner-direct.d.ts +6 -7
  675. package/dist/shims/internal/hybrid-client-route-owner-direct.js +29 -11
  676. package/dist/shims/internal/hybrid-client-route-owner.d.ts +3 -3
  677. package/dist/shims/internal/hybrid-client-route-owner.js +5 -4
  678. package/dist/shims/internal/interpolate-as.d.ts +5 -6
  679. package/dist/shims/internal/interpolate-as.js +4 -2
  680. package/dist/shims/internal/link-status-registry.d.ts +5 -6
  681. package/dist/shims/internal/make-hanging-promise.d.ts +8 -3
  682. package/dist/shims/internal/make-hanging-promise.js +13 -2
  683. package/dist/shims/internal/navigation-untracked.d.ts +2 -3
  684. package/dist/shims/internal/normalize-router-href.d.ts +15 -0
  685. package/dist/shims/internal/normalize-router-href.js +41 -0
  686. package/dist/shims/internal/pages-data-fetch-dedup.d.ts +8 -9
  687. package/dist/shims/internal/pages-data-target.d.ts +8 -6
  688. package/dist/shims/internal/pages-data-target.js +32 -36
  689. package/dist/shims/internal/pages-data-url.d.ts +4 -5
  690. package/dist/shims/internal/pages-data-url.js +2 -1
  691. package/dist/shims/internal/pages-router-accessor.d.ts +3 -4
  692. package/dist/shims/internal/pages-router-components.d.ts +3 -4
  693. package/dist/shims/internal/route-pattern-for-warning.d.ts +5 -6
  694. package/dist/shims/internal/route-pattern-for-warning.js +3 -3
  695. package/dist/shims/internal/router-context.d.ts +2 -3
  696. package/dist/shims/internal/thenable-well-known-properties.d.ts +10 -0
  697. package/dist/shims/internal/thenable-well-known-properties.js +33 -0
  698. package/dist/shims/internal/utils.d.ts +7 -8
  699. package/dist/shims/internal/work-unit-async-storage.d.ts +12 -11
  700. package/dist/shims/layout-segment-context.d.ts +3 -4
  701. package/dist/shims/link-prefetch.d.ts +9 -10
  702. package/dist/shims/link.d.ts +4 -4
  703. package/dist/shims/link.js +67 -116
  704. package/dist/shims/metadata.d.ts +15 -16
  705. package/dist/shims/metadata.js +40 -36
  706. package/dist/shims/navigation-context-accessors.d.ts +9 -0
  707. package/dist/shims/navigation-context-accessors.js +19 -0
  708. package/dist/shims/navigation-context-state.d.ts +27 -18
  709. package/dist/shims/navigation-errors.d.ts +18 -19
  710. package/dist/shims/navigation-state.d.ts +6 -7
  711. package/dist/shims/navigation.d.ts +80 -68
  712. package/dist/shims/navigation.js +45 -17
  713. package/dist/shims/navigation.react-server.d.ts +9 -9
  714. package/dist/shims/navigation.react-server.js +1 -1
  715. package/dist/shims/offline.d.ts +2 -3
  716. package/dist/shims/og.d.ts +2 -2
  717. package/dist/shims/pages-router-runtime.d.ts +4 -5
  718. package/dist/shims/ppr-fallback-shell.d.ts +13 -14
  719. package/dist/shims/readonly-url-search-params.d.ts +2 -3
  720. package/dist/shims/request-context.d.ts +7 -6
  721. package/dist/shims/root-params.d.ts +14 -15
  722. package/dist/shims/router-state.d.ts +5 -6
  723. package/dist/shims/router-state.js +1 -1
  724. package/dist/shims/router.d.ts +22 -21
  725. package/dist/shims/router.js +339 -164
  726. package/dist/shims/script-nonce-context.d.ts +8 -6
  727. package/dist/shims/script-nonce-context.js +15 -6
  728. package/dist/shims/script.d.ts +4 -4
  729. package/dist/shims/script.js +9 -7
  730. package/dist/shims/search-params-gate.d.ts +35 -0
  731. package/dist/shims/search-params-gate.js +32 -0
  732. package/dist/shims/server.d.ts +19 -51
  733. package/dist/shims/server.js +14 -28
  734. package/dist/shims/slot.d.ts +33 -15
  735. package/dist/shims/slot.js +41 -9
  736. package/dist/shims/streamed-icons.d.ts +3 -4
  737. package/dist/shims/thenable-params.d.ts +5 -7
  738. package/dist/shims/thenable-params.js +3 -24
  739. package/dist/shims/unified-request-context.d.ts +34 -31
  740. package/dist/shims/unified-request-context.js +34 -24
  741. package/dist/shims/unrecognized-action-error.d.ts +3 -4
  742. package/dist/shims/url-safety.d.ts +5 -6
  743. package/dist/shims/url-utils.d.ts +18 -12
  744. package/dist/shims/url-utils.js +10 -1
  745. package/dist/shims/use-merged-ref.d.ts +2 -3
  746. package/dist/shims/user-agent.d.ts +31 -0
  747. package/dist/shims/user-agent.js +16 -0
  748. package/dist/shims/web-vitals.d.ts +2 -2
  749. package/dist/typegen.d.ts +3 -4
  750. package/dist/utils/asset-prefix.d.ts +7 -8
  751. package/dist/utils/base-path.d.ts +5 -6
  752. package/dist/utils/built-asset-url.d.ts +2 -3
  753. package/dist/utils/built-asset-url.js +1 -1
  754. package/dist/utils/cache-control-metadata.d.ts +4 -5
  755. package/dist/utils/client-build-manifest.d.ts +6 -7
  756. package/dist/utils/client-build-manifest.js +2 -1
  757. package/dist/utils/client-entry-manifest.d.ts +6 -7
  758. package/dist/utils/client-runtime-metadata.d.ts +8 -3
  759. package/dist/utils/client-runtime-metadata.js +18 -1
  760. package/dist/utils/commonjs-loader.d.ts +4 -5
  761. package/dist/utils/compare.d.ts +2 -3
  762. package/dist/utils/deployment-id.d.ts +6 -7
  763. package/dist/utils/dev-error-recovery-event.d.ts +2 -3
  764. package/dist/utils/dev-stack-sourcemap-endpoint.d.ts +2 -3
  765. package/dist/utils/domain-locale.d.ts +7 -8
  766. package/dist/utils/encode-cache-tag.d.ts +3 -4
  767. package/dist/utils/error-cause.d.ts +2 -3
  768. package/dist/utils/external-url.d.ts +2 -3
  769. package/dist/utils/has-trailing-comma.d.ts +3 -4
  770. package/dist/utils/hash.d.ts +3 -4
  771. package/dist/utils/html-limited-bots.d.ts +3 -4
  772. package/dist/utils/lazy-chunks.d.ts +8 -9
  773. package/dist/utils/lazy-chunks.js +4 -4
  774. package/dist/utils/manifest-paths.d.ts +5 -6
  775. package/dist/utils/mdx-scan.d.ts +11 -4
  776. package/dist/utils/mdx-scan.js +27 -1
  777. package/dist/utils/middleware-request-headers.d.ts +7 -6
  778. package/dist/utils/middleware-request-headers.js +6 -1
  779. package/dist/utils/navigation-signal.d.ts +3 -3
  780. package/dist/utils/navigation-signal.js +16 -1
  781. package/dist/utils/number.d.ts +2 -3
  782. package/dist/utils/package-name.d.ts +3 -4
  783. package/dist/utils/parse-cookie.d.ts +4 -5
  784. package/dist/utils/path.d.ts +8 -9
  785. package/dist/utils/plugin-options.d.ts +2 -3
  786. package/dist/utils/precompressed-variant.d.ts +3 -4
  787. package/dist/utils/prerender-output-paths.d.ts +9 -10
  788. package/dist/utils/prerender-output-paths.js +16 -9
  789. package/dist/utils/project.d.ts +19 -30
  790. package/dist/utils/project.js +20 -29
  791. package/dist/utils/promise.d.ts +2 -3
  792. package/dist/utils/protocol-headers.d.ts +14 -15
  793. package/dist/utils/public-file-path.d.ts +2 -3
  794. package/dist/utils/public-routes.d.ts +2 -3
  795. package/dist/utils/query.d.ts +14 -9
  796. package/dist/utils/query.js +22 -1
  797. package/dist/utils/react-compiler-support.d.ts +6 -7
  798. package/dist/utils/react-version.d.ts +4 -3
  799. package/dist/utils/react-version.js +19 -1
  800. package/dist/utils/record.d.ts +2 -3
  801. package/dist/utils/redirect-digest.d.ts +3 -4
  802. package/dist/utils/regex-safety.d.ts +4 -5
  803. package/dist/utils/regex.d.ts +2 -3
  804. package/dist/utils/safe-json-file.d.ts +2 -3
  805. package/dist/utils/sorted-array.d.ts +2 -3
  806. package/dist/utils/text-stream.d.ts +3 -4
  807. package/dist/utils/vinext-root.d.ts +2 -3
  808. package/dist/utils/virtual-module.d.ts +3 -4
  809. package/dist/utils/vite-cli-invocation.d.ts +21 -0
  810. package/dist/utils/vite-cli-invocation.js +144 -0
  811. package/dist/utils/vite-version.d.ts +5 -6
  812. package/next-package.json +4 -0
  813. package/package.json +55 -6
@@ -1,76 +1,14 @@
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 { getRequestExecutionContext } from "../shims/request-context.js";
3
3
  import { reportRequestError } from "./instrumentation.js";
4
4
  import { getCdnCacheAdapter } from "../shims/cdn-cache.js";
5
5
  import { fnv1a64 } from "../utils/hash.js";
6
6
  import { normalizeMountedSlotsHeader } from "./app-mounted-slots-header.js";
7
7
  import { APP_RSC_RENDER_MODE_NAVIGATION, getRscRenderModeCacheVariant } from "./app-rsc-render-mode.js";
8
8
  import { normalizeAppPageInterceptionProofPathname } from "./app-page-render-identity.js";
9
+ import { getRevalidateSecret, isOnDemandRevalidateRequest, isRevalidateSecret } from "./revalidation-request.js";
9
10
  //#region src/server/isr-cache.ts
10
11
  /**
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
12
  * Get a cache entry with staleness information.
75
13
  *
76
14
  * Returns { value, isStale: false } for fresh entries,
@@ -101,6 +39,15 @@ function isrCacheControl(revalidateSeconds, claims = {}) {
101
39
  };
102
40
  }
103
41
  /**
42
+ * The route-level `expireTime` only bounds a finite revalidate. Like Next.js,
43
+ * a `revalidate = false` entry keeps no expire of its own and stays until it
44
+ * is invalidated; only a cacheLife expire can bound it.
45
+ * https://github.com/vercel/next.js/blob/v16.2.7/packages/next/src/build/index.ts#L3035-L3058
46
+ */
47
+ function resolveRouteExpireSeconds(revalidateSeconds, expireSeconds) {
48
+ return revalidateSeconds === false || revalidateSeconds === Infinity ? void 0 : expireSeconds;
49
+ }
50
+ /**
104
51
  * Store a value in the ISR cache under the given write policy.
105
52
  */
106
53
  async function isrSet(key, data, policy) {
@@ -149,14 +96,15 @@ function coalesceOnDemandRevalidation(key, renderFn) {
149
96
  *
150
97
  * When `errorContext` is provided and the render function fails, the error
151
98
  * is reported via `reportRequestError` (instrumentation hook) with
152
- * `revalidateReason: "stale"`.
99
+ * `revalidateReason: "stale"`, unless `shouldReport` suppresses an error that
100
+ * an inner render boundary already reported.
153
101
  */
154
102
  function triggerBackgroundRegeneration(key, renderFn, errorContext) {
155
103
  if (!getCdnCacheAdapter().ownsBackgroundRevalidation) return;
156
104
  if (pendingRegenerations.has(key)) return;
157
- const promise = renderFn().catch((err) => {
105
+ const promise = renderFn().catch(async (err) => {
158
106
  console.error(`[vinext] ISR background regeneration failed for ${key}:`, err);
159
- if (errorContext) reportRequestError(err instanceof Error ? err : new Error(String(err)), {
107
+ if (errorContext && (errorContext.shouldReport?.(err) ?? true)) await reportRequestError(err, {
160
108
  path: key,
161
109
  method: "GET",
162
110
  headers: {}
@@ -224,7 +172,7 @@ function isrCacheKey(router, pathname, buildId) {
224
172
  * Cloudflare KV key under its 512-byte limit for long pathnames.
225
173
  */
226
174
  function appIsrCacheKey(pathname, suffix, buildId = process.env.__VINEXT_BUILD_ID) {
227
- return buildCacheKey(buildId ? `app:${buildId}` : "app", pathname, suffix);
175
+ return buildCacheKey(buildId ? `app:v2:${buildId}` : "app:v2", pathname, suffix);
228
176
  }
229
177
  function appIsrHtmlKey(pathname) {
230
178
  return appIsrCacheKey(pathname, "html");
@@ -255,7 +203,7 @@ function appIsrRscKey(pathname, mountedSlotsHeader, renderMode = APP_RSC_RENDER_
255
203
  return appIsrCacheKey(pathname, variant ? `rsc:${variant}` : "rsc");
256
204
  }
257
205
  function appIsrRouteKey(pathname) {
258
- return appIsrCacheKey(pathname, "route");
206
+ return appIsrCacheKey(pathname, pathname !== "/" && pathname.endsWith("/") ? "route:trailing-slash" : "route");
259
207
  }
260
208
  //#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 };
209
+ 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, 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
@@ -1,6 +1,5 @@
1
1
  //#region src/server/metadata-route-cache-policy.d.ts
2
- declare function isMetadataResponseCacheable(response: {
2
+ export declare function isMetadataResponseCacheable(response: {
3
3
  headers: Headers;
4
4
  }): boolean;
5
- //#endregion
6
- export { isMetadataResponseCacheable };
5
+ //#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,13 +1,18 @@
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 } from "../shims/cacheability-classification.js";
8
+ import { hasCdnResponsePolicy, hasExplicitNonCacheableResponsePolicy } from "./cache-control.js";
6
9
  import { isrCacheControl } from "./isr-cache.js";
10
+ import { resolveClientStaleTimeSeconds } from "../utils/cache-control-metadata.js";
7
11
  import { _consumeRequestScopedCacheLife, cacheLifeProfiles } from "../shims/cache-request-state.js";
8
12
  import { ensureFetchPatch, getCollectedFetchTags, setCurrentFetchSoftTags } from "../shims/fetch-cache.js";
9
13
  import { isValidMetadataImageId, manifestToJson, matchMetadataRoutePattern, robotsToText, sitemapToXml } from "./metadata-routes.js";
10
14
  import { applyPrerenderCacheLifeHeader, applyPrerenderCacheTagsHeader } from "./prerender-cache-life-header.js";
15
+ import { canonicalizeAppPageParams } from "./app-page-segment-state.js";
11
16
  import { buildPageCacheTags } from "./implicit-tags.js";
12
17
  import { buildAppRouteCacheValue, buildRouteHandlerCachedResponse } from "./app-route-handler-response.js";
13
18
  import { isMetadataResponseCacheable } from "./metadata-route-cache-policy.js";
@@ -49,6 +54,7 @@ function metadataRouteCacheHeader(route) {
49
54
  return CACHE_HEADERS.revalidate;
50
55
  }
51
56
  function withMetadataRouteCacheHeader(response, route) {
57
+ if (hasCdnResponsePolicy(response.headers) && !hasExplicitNonCacheableResponsePolicy(response.headers)) markRouteCacheabilityExplicitResponsePolicy();
52
58
  const headers = new Headers(response.headers);
53
59
  if (!headers.has("Cache-Control")) headers.set("Cache-Control", metadataRouteCacheHeader(route));
54
60
  return new Response(response.body, {
@@ -57,13 +63,18 @@ function withMetadataRouteCacheHeader(response, route) {
57
63
  statusText: response.statusText
58
64
  });
59
65
  }
66
+ function beginMetadataRouteCacheability(route) {
67
+ beginRouteCacheability("app-route", route.patternParts ? `/${route.patternParts.join("/")}` : route.servedUrl);
68
+ }
60
69
  function getMetadataRouteFunctions(route) {
61
70
  const cached = routeFunctionCache.get(route);
62
71
  if (cached) return cached;
63
72
  const generateImageMetadata = route.isDynamic && isImageMetadataRoute(route) ? readFunction(route.module, "generateImageMetadata") : null;
64
73
  const functions = {
65
74
  defaultExport: route.isDynamic ? readFunction(route.module, "default") : null,
75
+ dynamicParams: route.isDynamic && typeof route.module?.dynamicParams === "boolean" ? route.module.dynamicParams : void 0,
66
76
  generateImageMetadata,
77
+ generateStaticParams: route.isDynamic ? readFunction(route.module, "generateStaticParams") : null,
67
78
  generateSitemaps: route.type === "sitemap" && route.isDynamic ? readFunction(route.module, "generateSitemaps") : null,
68
79
  hasGeneratedImageMetadata: route.isDynamic && isImageMetadataRoute(route) && Boolean(generateImageMetadata)
69
80
  };
@@ -255,6 +266,39 @@ function matchMetadataRoute(route, cleanPathname, functions, getUrlParts) {
255
266
  imageId: null
256
267
  } : null;
257
268
  }
269
+ function metadataRouteParamNames(patternParts) {
270
+ return patternParts.flatMap((part) => {
271
+ if (!part.startsWith(":")) return [];
272
+ return [part.slice(1, part.endsWith("+") || part.endsWith("*") ? -1 : void 0)];
273
+ });
274
+ }
275
+ function metadataRouteOptionalCatchAllParamNames(patternParts) {
276
+ return patternParts.flatMap((part) => part.startsWith(":") && part.endsWith("*") ? [part.slice(1, -1)] : []);
277
+ }
278
+ function metadataRouteRawParams(route, match, routePathname) {
279
+ const urlParts = routePathname.split("/").filter(Boolean);
280
+ if (match.imageId !== null) urlParts.pop();
281
+ const params = Object.create(null);
282
+ let urlIndex = 0;
283
+ for (const part of route.patternParts ?? []) {
284
+ if (!part.startsWith(":")) {
285
+ urlIndex++;
286
+ continue;
287
+ }
288
+ const isCatchAll = part.endsWith("+") || part.endsWith("*");
289
+ const name = part.slice(1, isCatchAll ? -1 : void 0);
290
+ if (!isCatchAll) {
291
+ const value = urlParts[urlIndex++];
292
+ if (value !== void 0) params[name] = value;
293
+ continue;
294
+ }
295
+ const matchedValue = match.params?.[name];
296
+ const valueCount = Array.isArray(matchedValue) ? matchedValue.length : matchedValue ? 1 : 0;
297
+ if (valueCount > 0) params[name] = urlParts.slice(urlIndex, urlIndex + valueCount);
298
+ urlIndex += valueCount;
299
+ }
300
+ return params;
301
+ }
258
302
  function findGeneratedSitemapId(entries, rawId) {
259
303
  if (!Array.isArray(entries)) return null;
260
304
  for (const entry of entries) {
@@ -385,6 +429,7 @@ async function handleMetadataRouteRequest(options) {
385
429
  if (route.type === "sitemap" && route.isDynamic) {
386
430
  if (functions.generateSitemaps) {
387
431
  if (isGeneratedSitemapPath(route, options.cleanPathname)) {
432
+ beginMetadataRouteCacheability(route);
388
433
  const render = async () => {
389
434
  setCurrentFetchSoftTags(buildMetadataRouteTags(route, options.cleanPathname, []));
390
435
  const response = await handleGeneratedSitemap(route, options.cleanPathname, functions);
@@ -403,6 +448,27 @@ async function handleMetadataRouteRequest(options) {
403
448
  }
404
449
  const match = matchMetadataRoute(route, options.cleanPathname, functions, getUrlParts);
405
450
  if (!match) continue;
451
+ beginMetadataRouteCacheability(route);
452
+ const rawParams = route.patternParts ? metadataRouteRawParams(route, match, options.routePathname ?? options.cleanPathname) : Object.create(null);
453
+ if (route.patternParts) {
454
+ const runtimeParams = { ...rawParams };
455
+ decodeMatchedParams(runtimeParams);
456
+ match.params = runtimeParams;
457
+ }
458
+ if (route.isDynamic && isImageMetadataRoute(route) && functions.dynamicParams === false) {
459
+ const validationParams = { ...rawParams };
460
+ canonicalizeAppPageParams(validationParams);
461
+ const { validateAppPageDynamicParams } = await import("./app-page-request.js");
462
+ const dynamicParamsResponse = await validateAppPageDynamicParams({
463
+ enforceStaticParamsOnly: true,
464
+ generateStaticParams: functions.generateStaticParams,
465
+ isDynamicRoute: Boolean(route.patternParts),
466
+ optionalCatchAllParamNames: metadataRouteOptionalCatchAllParamNames(route.patternParts ?? []),
467
+ params: validationParams,
468
+ requiredParamNames: metadataRouteParamNames(route.patternParts ?? [])
469
+ });
470
+ if (dynamicParamsResponse) return dynamicParamsResponse;
471
+ }
406
472
  const render = async () => {
407
473
  setCurrentFetchSoftTags(buildMetadataRouteTags(route, options.cleanPathname, []));
408
474
  return captureRenderedMetadataRoute(route.isDynamic ? await callDynamicMetadataRoute(route, match, options.makeThenableParams, functions) : serveStaticMetadataRoute(route));
@@ -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
@@ -1,6 +1,6 @@
1
1
  import { HasCondition } from "../config/next-config.js";
2
2
  //#region src/server/middleware-matcher-pattern.d.ts
3
- type CompiledMiddlewareMatcherPattern = {
3
+ export type CompiledMiddlewareMatcherPattern = {
4
4
  regexp: RegExp;
5
5
  error?: never;
6
6
  } | {
@@ -8,14 +8,13 @@ type CompiledMiddlewareMatcherPattern = {
8
8
  error: string;
9
9
  kind: "invalid" | "unsafe";
10
10
  };
11
- type MiddlewareMatcherObject = {
11
+ export type MiddlewareMatcherObject = {
12
12
  source: string;
13
13
  locale?: false;
14
14
  has?: HasCondition[];
15
15
  missing?: HasCondition[];
16
16
  };
17
- declare function isValidMiddlewareMatcherObjectConfig(value: unknown): value is MiddlewareMatcherObject;
18
- declare function compileMiddlewareMatcherPattern(source: string): CompiledMiddlewareMatcherPattern;
19
- declare function validateMiddlewareMatcherPatterns(value: unknown): void;
20
- //#endregion
21
- export { CompiledMiddlewareMatcherPattern, MiddlewareMatcherObject, compileMiddlewareMatcherPattern, isValidMiddlewareMatcherObjectConfig, validateMiddlewareMatcherPatterns };
17
+ export declare function isValidMiddlewareMatcherObjectConfig(value: unknown): value is MiddlewareMatcherObject;
18
+ export declare function compileMiddlewareMatcherPattern(source: string): CompiledMiddlewareMatcherPattern;
19
+ export declare function validateMiddlewareMatcherPatterns(value: unknown): void;
20
+ //#endregion
@@ -1,14 +1,21 @@
1
1
  import { NextI18nConfig } from "../config/next-config.js";
2
2
  import { MiddlewareMatcherObject } from "./middleware-matcher-pattern.js";
3
3
  //#region src/server/middleware-matcher.d.ts
4
- type MatcherConfig = string | Array<string | MiddlewareMatcherObject>;
5
- type MiddlewareLocaleMatchContext = {
4
+ export type MatcherConfig = string | Array<string | MiddlewareMatcherObject>;
5
+ export type MiddlewareLocaleMatchContext = {
6
6
  kind: "defaulted";
7
7
  defaultLocale: string;
8
8
  } | {
9
9
  kind: "internal" | "literal";
10
10
  };
11
- declare function matchesMiddleware(pathname: string, matcher: MatcherConfig | undefined, request?: Request, i18nConfig?: NextI18nConfig | null, localeContext?: MiddlewareLocaleMatchContext): boolean;
12
- declare function matchPattern(pathname: string, pattern: string): boolean;
13
- //#endregion
14
- export { MatcherConfig, MiddlewareLocaleMatchContext, matchPattern, matchesMiddleware };
11
+ export declare function matchesMiddleware(pathname: string, matcher: MatcherConfig | undefined, request?: Request, i18nConfig?: NextI18nConfig | null, localeContext?: MiddlewareLocaleMatchContext): boolean;
12
+ /**
13
+ * Whether a pathname can reach middleware, ignoring request-specific
14
+ * `has`/`missing` conditions. This is deliberately separate from
15
+ * `matchesMiddleware`: ordinary middleware execution must still evaluate the
16
+ * full request, while cacheability certification needs a stable answer for
17
+ * every request that can share the pathname's cache entry.
18
+ */
19
+ export declare function matchesMiddlewarePathname(pathname: string, matcher: MatcherConfig | undefined, i18nConfig?: NextI18nConfig | null, localeContext?: MiddlewareLocaleMatchContext): boolean;
20
+ export declare function matchPattern(pathname: string, pattern: string): boolean;
21
+ //#endregion
@@ -27,6 +27,27 @@ function matchesMiddleware(pathname, matcher, request, i18nConfig, localeContext
27
27
  }
28
28
  return false;
29
29
  }
30
+ /**
31
+ * Whether a pathname can reach middleware, ignoring request-specific
32
+ * `has`/`missing` conditions. This is deliberately separate from
33
+ * `matchesMiddleware`: ordinary middleware execution must still evaluate the
34
+ * full request, while cacheability certification needs a stable answer for
35
+ * every request that can share the pathname's cache entry.
36
+ */
37
+ function matchesMiddlewarePathname(pathname, matcher, i18nConfig, localeContext) {
38
+ if (!matcher) return true;
39
+ if (typeof matcher === "string") return matchMatcherPattern(pathname, matcher, i18nConfig, localeContext);
40
+ if (!Array.isArray(matcher)) return true;
41
+ for (const item of matcher) {
42
+ if (typeof item === "string") {
43
+ if (matchMatcherPattern(pathname, item, i18nConfig, localeContext)) return true;
44
+ continue;
45
+ }
46
+ if (!isValidMiddlewareMatcherObjectConfig(item)) return true;
47
+ if (matchObjectMatcher(pathname, item, i18nConfig, localeContext)) return true;
48
+ }
49
+ return false;
50
+ }
30
51
  function matchMatcherPattern(pathname, pattern, i18nConfig, localeContext) {
31
52
  if (!i18nConfig) return matchPattern(pathname, pattern);
32
53
  if (localeContext) {
@@ -66,4 +87,4 @@ function compileMatcherPattern(pattern) {
66
87
  return UNSAFE_MATCHER_PATTERN;
67
88
  }
68
89
  //#endregion
69
- export { matchPattern, matchesMiddleware };
90
+ export { matchPattern, matchesMiddleware, matchesMiddlewarePathname };
@@ -1,14 +1,13 @@
1
1
  //#region src/server/middleware-path-to-regexp.d.ts
2
- type MiddlewarePathToken = string | MiddlewarePathKey;
3
- type MiddlewarePathKey = {
2
+ export type MiddlewarePathToken = string | MiddlewarePathKey;
3
+ export type MiddlewarePathKey = {
4
4
  name: string | number;
5
5
  prefix: string;
6
6
  suffix: string;
7
7
  pattern: string;
8
8
  modifier: string;
9
9
  };
10
- declare function parseMiddlewarePath(value: string): MiddlewarePathToken[];
11
- declare function normalizeMiddlewarePathTokens(tokens: MiddlewarePathToken[]): MiddlewarePathToken[];
12
- declare function middlewarePathTokensToRegExp(tokens: MiddlewarePathToken[]): RegExp;
13
- //#endregion
14
- export { MiddlewarePathKey, MiddlewarePathToken, middlewarePathTokensToRegExp, normalizeMiddlewarePathTokens, parseMiddlewarePath };
10
+ export declare function parseMiddlewarePath(value: string): MiddlewarePathToken[];
11
+ export declare function normalizeMiddlewarePathTokens(tokens: MiddlewarePathToken[]): MiddlewarePathToken[];
12
+ export declare function middlewarePathTokensToRegExp(tokens: MiddlewarePathToken[]): RegExp;
13
+ //#endregion
@@ -211,15 +211,17 @@ function middlewarePathTokensToRegExp(tokens) {
211
211
  }
212
212
  const prefix = escapeRegex(token.prefix);
213
213
  const suffix = escapeRegex(token.suffix);
214
- if (token.pattern) if (prefix || suffix) if (token.modifier === "+" || token.modifier === "*") {
215
- const optional = token.modifier === "*" ? "?" : "";
216
- route += `(?:${prefix}((?:${token.pattern})(?:${suffix}${prefix}(?:${token.pattern}))*)${suffix})${optional}`;
217
- } else route += `(?:${prefix}(${token.pattern})${suffix})${token.modifier}`;
218
- else {
219
- if (token.modifier === "+" || token.modifier === "*") throw new TypeError(`Can not repeat "${token.name}" without a prefix and suffix`);
220
- route += `(${token.pattern})${token.modifier}`;
221
- }
222
- else route += `(?:${prefix}${suffix})${token.modifier}`;
214
+ if (token.pattern) {
215
+ if (prefix || suffix) {
216
+ if (token.modifier === "+" || token.modifier === "*") {
217
+ const optional = token.modifier === "*" ? "?" : "";
218
+ route += `(?:${prefix}((?:${token.pattern})(?:${suffix}${prefix}(?:${token.pattern}))*)${suffix})${optional}`;
219
+ } else route += `(?:${prefix}(${token.pattern})${suffix})${token.modifier}`;
220
+ } else {
221
+ if (token.modifier === "+" || token.modifier === "*") throw new TypeError(`Can not repeat "${token.name}" without a prefix and suffix`);
222
+ route += `(${token.pattern})${token.modifier}`;
223
+ }
224
+ } else route += `(?:${prefix}${suffix})${token.modifier}`;
223
225
  }
224
226
  route += `${delimiterRegex}?$`;
225
227
  return new RegExp(route, "i");
@@ -1,5 +1,5 @@
1
1
  //#region src/server/middleware-response-headers.d.ts
2
- declare function mergeVaryHeader(target: Headers, value: string): void;
2
+ export declare function mergeVaryHeader(target: Headers, value: string): void;
3
3
  /**
4
4
  * Merge middleware response headers into a target Headers object.
5
5
  *
@@ -7,6 +7,5 @@ declare function mergeVaryHeader(target: Headers, value: string): void;
7
7
  * contribute values. All other headers use set() so middleware owns singular
8
8
  * response headers like Cache-Control.
9
9
  */
10
- declare function mergeMiddlewareResponseHeaders(target: Headers, middlewareHeaders: Headers | null): void;
11
- //#endregion
12
- export { mergeMiddlewareResponseHeaders, mergeVaryHeader };
10
+ export declare function mergeMiddlewareResponseHeaders(target: Headers, middlewareHeaders: Headers | null): void;
11
+ //#endregion
@@ -2,9 +2,11 @@ import { NextI18nConfig } from "../config/next-config.js";
2
2
  import { ExecutionContextLike } from "../shims/request-context.js";
3
3
  import { NextFetchEvent, NextRequest } from "../shims/server.js";
4
4
  //#region src/server/middleware-runtime.d.ts
5
- type MiddlewareModule = Record<string, unknown>;
6
- type MiddlewareResult = {
5
+ export type MiddlewareModule = Record<string, unknown>;
6
+ export type MiddlewareResult = {
7
7
  continue: boolean;
8
+ /** True when this pathname can match middleware for some request context. */
9
+ pathnameEligible?: boolean;
8
10
  redirectUrl?: string;
9
11
  redirectStatus?: number;
10
12
  rewriteUrl?: string;
@@ -42,6 +44,10 @@ type ExecuteMiddlewareOptions = {
42
44
  isProxy: boolean;
43
45
  module: MiddlewareModule;
44
46
  normalizedPathname?: string;
47
+ /** Called only after the configured matcher accepts this request. */
48
+ onMatch?: () => void;
49
+ /** Called when the pathname matches, before request `has`/`missing` checks. */
50
+ onPathMatch?: () => void;
45
51
  /**
46
52
  * The caller already created an isolated body branch for middleware. This
47
53
  * lets App Router normalize that branch's URL and headers without adding a
@@ -61,12 +67,11 @@ type ExecuteMiddlewareOptions = {
61
67
  type RunGeneratedMiddlewareOptions = ExecuteMiddlewareOptions & {
62
68
  ctx?: ExecutionContextLike;
63
69
  };
64
- declare function createMiddlewareMissingExportError(filePath: string | undefined, isProxy: boolean): Error;
65
- declare function resolveMiddlewareModuleHandler(mod: MiddlewareModule, options: {
70
+ export declare function createMiddlewareMissingExportError(filePath: string | undefined, isProxy: boolean): Error;
71
+ export declare function resolveMiddlewareModuleHandler(mod: MiddlewareModule, options: {
66
72
  filePath?: string;
67
73
  isProxy: boolean;
68
74
  }): MiddlewareHandler;
69
- declare function executeMiddleware(options: ExecuteMiddlewareOptions): Promise<MiddlewareResult>;
70
- declare function runGeneratedMiddleware(options: RunGeneratedMiddlewareOptions): Promise<MiddlewareResult>;
71
- //#endregion
72
- export { MiddlewareModule, MiddlewareResult, createMiddlewareMissingExportError, executeMiddleware, resolveMiddlewareModuleHandler, runGeneratedMiddleware };
75
+ export declare function executeMiddleware(options: ExecuteMiddlewareOptions): Promise<MiddlewareResult>;
76
+ export declare function runGeneratedMiddleware(options: RunGeneratedMiddlewareOptions): Promise<MiddlewareResult>;
77
+ //#endregion