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,15 +1,16 @@
1
1
  "use client";
2
+ import { isBotUserAgent } from "../utils/html-limited-bots.js";
2
3
  import { isDangerousScheme, reportBlockedDangerousNavigation } from "./url-safety.js";
3
4
  import { addLocalePrefix, getDomainLocaleUrl } from "../utils/domain-locale.js";
4
5
  import { RouterContext } from "./internal/router-context.js";
5
6
  import { getPagesMiddlewareDataHref, prefetchPagesData, resolvePagesDataNavigationTarget } from "./internal/pages-data-target.js";
6
7
  import { markAppRouteDetectedOnPrefetch } from "./internal/app-route-detection.js";
7
- import { isAbsoluteOrProtocolRelativeUrl, normalizePathTrailingSlash, toBrowserNavigationHref, toSameOriginAppPath, withBasePath } from "./url-utils.js";
8
- import { appendSearchParamsToUrl, urlQueryToSearchParams } from "../utils/query.js";
8
+ import { isAbsoluteOrProtocolRelativeUrl, normalizePathTrailingSlash, toCanonicalBrowserNavigationHref, toSameOriginAppPath, withBasePath } from "./url-utils.js";
9
9
  import { interpolateDynamicRouteHref, resolveDynamicRouteHref } from "./internal/interpolate-as.js";
10
- import { getCurrentBrowserLocale } from "./client-locale.js";
10
+ import { formatUrlObject, formatUrlObjectWithValidation } from "./internal/format-url-object.js";
11
+ import { normalizeRouterHref, resolvePagesRouterHref } from "./internal/normalize-router-href.js";
11
12
  import { getCurrentRoutePathnameForWarning } from "./internal/route-pattern-for-warning.js";
12
- import { isBotUserAgent } from "../utils/html-limited-bots.js";
13
+ import { getCurrentBrowserLocale } from "./client-locale.js";
13
14
  import { getNavigationRuntime, hasAppNavigationRuntime, registerNavigationRuntimeFunctions } from "../client/navigation-runtime.js";
14
15
  import { navigatePagesRouterLinkWithFallback, resolvePagesRouterQueryOnlyHref } from "../client/pages-router-link-navigation.js";
15
16
  import { scheduleAppPrefetchFetch } from "./internal/app-prefetch-fetch-queue.js";
@@ -65,22 +66,23 @@ const __basePath = process.env.__NEXT_ROUTER_BASEPATH ?? "";
65
66
  /** trailingSlash from next.config.js, injected by the plugin at build time */
66
67
  const __trailingSlash = process.env.__VINEXT_TRAILING_SLASH === "true";
67
68
  const __prefetchInlining = process.env.__VINEXT_PREFETCH_INLINING === "true";
68
- function resolveHref(href) {
69
+ function resolveHref(href, validate = false) {
69
70
  if (typeof href === "string") return href;
70
- let url = href.pathname ?? "";
71
- if (href.query) {
72
- const params = urlQueryToSearchParams(href.query);
73
- url = appendSearchParamsToUrl(url, params);
74
- }
75
- if (href.hash) url += href.hash.startsWith("#") ? href.hash : `#${href.hash}`;
76
- return url;
71
+ return validate ? formatUrlObjectWithValidation(href) : formatUrlObject(href);
72
+ }
73
+ function resolvePagesLinkValue(value, pagesRouter, routePathnameForWarning) {
74
+ const formatted = resolveHref(value, pagesRouter !== null);
75
+ if (pagesRouter === null) return formatted;
76
+ if (typeof pagesRouter.pathname === "string" && typeof pagesRouter.asPath === "string" && !formatted.startsWith("?") && !formatted.startsWith("#")) return resolvePagesRouterHref(formatted, pagesRouter, __basePath);
77
+ return normalizeRouterHref(formatted, routePathnameForWarning);
77
78
  }
78
79
  function resolvePagesQueryOnlyHref(href) {
79
80
  if (!HAS_PAGES_ROUTER) return href;
80
81
  if (!href.startsWith("?") && !href.startsWith("#") || typeof window === "undefined") return href;
81
82
  const pagesRouter = window.next?.appDir === true ? void 0 : window.next?.router;
83
+ const visibleHref = pagesRouter && "reload" in pagesRouter && "asPath" in pagesRouter && typeof pagesRouter.asPath === "string" ? pagesRouter.asPath : void 0;
82
84
  return resolvePagesRouterQueryOnlyHref(href, {
83
- asPath: pagesRouter && "reload" in pagesRouter && "asPath" in pagesRouter && typeof pagesRouter.asPath === "string" ? pagesRouter.asPath : void 0,
85
+ asPath: visibleHref,
84
86
  basePath: __basePath,
85
87
  fallbackHref: window.location.href,
86
88
  locales: window.__VINEXT_LOCALES__
@@ -94,52 +96,6 @@ function applyPagesNavigationFallback(href, replace) {
94
96
  else window.history.pushState({}, "", href);
95
97
  window.dispatchEvent(new PopStateEvent("popstate"));
96
98
  }
97
- /**
98
- * Collapse repeated forward-slashes (and convert backslashes to forward-slashes)
99
- * in the path portion of a URL, preserving any query string.
100
- *
101
- * Ported from Next.js: packages/next/src/shared/lib/utils/normalize-repeated-slashes.ts
102
- * https://github.com/vercel/next.js/blob/canary/packages/next/src/shared/lib/utils/normalize-repeated-slashes.ts
103
- */
104
- function normalizeRepeatedSlashes(url) {
105
- const urlParts = url.split("?");
106
- const urlNoQueryString = urlParts.shift() ?? "";
107
- const queryString = urlParts.join("?");
108
- return urlNoQueryString.replace(/\\/g, "/").replace(/\/\/+/g, "/") + (queryString ? `?${queryString}` : "");
109
- }
110
- /**
111
- * Emit Next.js's "Invalid href" `console.error` when `href` contains repeated
112
- * forward slashes or backslashes in its path portion, and return the
113
- * normalized URL (with `\\` converted to `/` and runs of `/` collapsed). If
114
- * the href is already well-formed, the original string is returned unchanged.
115
- *
116
- * Ported from Next.js: packages/next/src/client/resolve-href.ts
117
- * https://github.com/vercel/next.js/blob/canary/packages/next/src/client/resolve-href.ts
118
- *
119
- * Matches the message asserted by:
120
- * test/e2e/repeated-forward-slashes-error/repeated-forward-slashes-error.test.ts
121
- *
122
- * Note: Next.js fires this warning unconditionally on every call to
123
- * `resolveHref`. We mirror that behaviour (no dedup) for exact parity.
124
- *
125
- * Note: Next.js uses `router.pathname` (the route pattern, e.g.
126
- * `/posts/[id]`) for the "in page" segment of the message. The Next.js
127
- * compat test asserts this exact text (`in page: '/my/path/[name]'`), so we
128
- * source it from the current render's route pattern via
129
- * `getCurrentRoutePathnameForWarning()`: the Pages Router SSR context's route
130
- * pattern on the server, `window.location.pathname` on the client, falling
131
- * back to `"/"`.
132
- */
133
- function warnAndNormalizeRepeatedSlashesInHref(urlAsString) {
134
- if (urlAsString.startsWith("//")) return urlAsString;
135
- const urlProtoMatch = urlAsString.match(/^[a-z][a-z0-9+.-]*:\/\//i);
136
- const urlAsStringNoProto = urlProtoMatch ? urlAsString.slice(urlProtoMatch[0].length) : urlAsString;
137
- if (!(urlAsStringNoProto.split("?", 1)[0] || "").match(/(\/\/|\\)/)) return urlAsString;
138
- const pathname = getCurrentRoutePathnameForWarning();
139
- console.error(`Invalid href '${urlAsString}' passed to next/router in page: '${pathname}'. Repeated forward-slashes (//) or backslashes \\ are not valid in the href.`);
140
- const normalizedNoProto = normalizeRepeatedSlashes(urlAsStringNoProto);
141
- return (urlProtoMatch ? urlProtoMatch[0] : "") + normalizedNoProto;
142
- }
143
99
  function resolveLinkPrefetchMode(prefetchProp, isDangerous) {
144
100
  if (isDangerous || prefetchProp === false) return "disabled";
145
101
  if (prefetchProp === true) return "full";
@@ -169,12 +125,13 @@ function prefetchUrl(href, mode, priority = "low", pagesRouteHref, locale) {
169
125
  currentOrigin: window.location.origin
170
126
  });
171
127
  if (prefetchHref == null) return;
172
- const fullHref = toBrowserNavigationHref(prefetchHref, window.location.href, __basePath);
173
- const fullRouteHref = toBrowserNavigationHref(pagesRouteHref === void 0 ? prefetchHref : getLinkPrefetchHref({
128
+ const fullHref = toCanonicalBrowserNavigationHref(prefetchHref, window.location.href, __basePath, __trailingSlash);
129
+ const routePrefetchHref = pagesRouteHref === void 0 ? prefetchHref : getLinkPrefetchHref({
174
130
  href: pagesRouteHref,
175
131
  basePath: __basePath,
176
132
  currentOrigin: window.location.origin
177
- }) ?? prefetchHref, window.location.href, __basePath);
133
+ }) ?? prefetchHref;
134
+ const fullRouteHref = toCanonicalBrowserNavigationHref(routePrefetchHref, window.location.href, __basePath, __trailingSlash);
178
135
  const target = new URL(fullHref, window.location.href);
179
136
  if (target.origin === window.location.origin && target.pathname === window.location.pathname && target.search === window.location.search) return;
180
137
  if (mode === "auto" && priority === "low" && target.origin === window.location.origin && target.pathname === window.location.pathname && target.search !== window.location.search && target.hash !== "") return;
@@ -182,10 +139,11 @@ function prefetchUrl(href, mode, priority = "low", pagesRouteHref, locale) {
182
139
  (async () => {
183
140
  if (hasAppNavigationRuntime()) {
184
141
  if (isBotUserAgent(window.navigator?.userAgent ?? "")) return;
185
- const [navigation, { AppElementsWire }, rscCacheBusting, { APP_RSC_RENDER_MODE_PREFETCH_DYNAMIC_SHELL, APP_RSC_RENDER_MODE_PREFETCH_LOADING_SHELL }, headersModule, hybridRouteOwner] = await Promise.all([
142
+ const [navigation, { AppElementsWire }, rscCacheBusting, { resolveAppPrefetchRscRequest }, { APP_RSC_RENDER_MODE_PREFETCH_DYNAMIC_SHELL, APP_RSC_RENDER_MODE_PREFETCH_LOADING_SHELL }, headersModule, hybridRouteOwner] = await Promise.all([
186
143
  loadNavigationModule(),
187
144
  import("../server/app-elements.js"),
188
145
  import("../server/app-rsc-cache-busting.js"),
146
+ import("./internal/app-prefetch-rsc-request.js"),
189
147
  import("../server/app-rsc-render-mode.js"),
190
148
  import("../server/headers.js"),
191
149
  HAS_PAGES_ROUTER || HAS_CLIENT_REWRITES ? loadHybridClientRouteOwnerModule() : null
@@ -197,10 +155,11 @@ function prefetchUrl(href, mode, priority = "low", pagesRouteHref, locale) {
197
155
  const hybridOwner = HAS_PAGES_ROUTER ? hybridRouteOwner.resolveHybridClientRouteOwner(prefetchHref, __basePath) : null;
198
156
  if (hybridOwner === "pages" || hybridOwner === "document") return;
199
157
  const rewrittenPrefetchHref = HAS_CLIENT_REWRITES ? hybridRouteOwner.resolveHybridClientRewriteHref(fullHref, __basePath) : null;
200
- const autoPrefetch = mode === "auto" ? resolveAutoAppRoutePrefetch(rewrittenPrefetchHref ?? prefetchHref) : resolveFullAppRoutePrefetch();
201
- if (!autoPrefetch.shouldPrefetch) return;
158
+ const prefetchPolicyHref = rewrittenPrefetchHref ?? prefetchHref;
202
159
  const interceptionContext = getPrefetchInterceptionContext(fullHref);
203
160
  const mountedSlotsHeader = getMountedSlotsHeader();
161
+ const autoPrefetch = mode === "auto" ? resolveAutoAppRoutePrefetch(prefetchPolicyHref) : resolveFullAppRoutePrefetch();
162
+ if (!autoPrefetch.shouldPrefetch) return;
204
163
  const isOptimisticRouteShellPrefetch = !autoPrefetch.cacheForNavigation;
205
164
  const hasSearchParams = new URL(fullHref, window.location.href).search !== "";
206
165
  const isAutomaticSearchParamShell = mode === "auto" && isOptimisticRouteShellPrefetch && hasSearchParams;
@@ -221,8 +180,12 @@ function prefetchUrl(href, mode, priority = "low", pagesRouteHref, locale) {
221
180
  headers.set(NEXT_ROUTER_PREFETCH_HEADER, "1");
222
181
  headers.set(NEXT_ROUTER_SEGMENT_PREFETCH_HEADER, "1");
223
182
  }
224
- const rscUrl = await createRscRequestUrl(fullHref, headers);
225
- const additionalRscUrls = rewrittenPrefetchHref && rewrittenPrefetchHref !== fullHref ? [await createRscRequestUrl(rewrittenPrefetchHref, headers)] : [];
183
+ const { additionalRscUrls, rscUrl } = await resolveAppPrefetchRscRequest({
184
+ fullHref,
185
+ headers,
186
+ rewrittenPrefetchHref
187
+ });
188
+ if (navigationEpoch !== linkPrefetchNavigationEpoch) return;
226
189
  const cacheKey = AppElementsWire.encodeCacheKey(rscUrl, interceptionContext);
227
190
  const prefetched = getPrefetchedUrls();
228
191
  if (autoPrefetch.cacheForNavigation) discardLearningOnlyPrefetchCacheEntry(rscUrl, interceptionContext);
@@ -327,7 +290,7 @@ function prefetchUrl(href, mode, priority = "low", pagesRouteHref, locale) {
327
290
  } else if (HAS_PAGES_ROUTER && window.__NEXT_DATA__) {
328
291
  const dataTarget = resolvePagesDataNavigationTarget(fullRouteHref, __basePath, { locale });
329
292
  if (dataTarget) {
330
- const middlewareDataHref = fullRouteHref === fullHref ? dataTarget.middlewareDataHref : getPagesMiddlewareDataHref(fullHref, __basePath, { locale }) ?? void 0;
293
+ const middlewareDataHref = fullRouteHref === fullHref ? dataTarget.middlewareDataHref : getPagesMiddlewareDataHref(fullHref, __basePath, { locale }, fullRouteHref) ?? void 0;
331
294
  prefetchPagesData({
332
295
  ...dataTarget,
333
296
  middlewareDataHref
@@ -357,7 +320,7 @@ async function promotePrefetchEntriesForNavigation(href) {
357
320
  const [{ getPrefetchCache }, { stripRscCacheBustingSearchParam, stripRscSuffix }] = await Promise.all([loadNavigationModule(), import("../server/app-rsc-cache-busting.js")]);
358
321
  let target;
359
322
  try {
360
- target = new URL(toBrowserNavigationHref(href, window.location.href, __basePath), window.location.href);
323
+ target = new URL(toCanonicalBrowserNavigationHref(href, window.location.href, __basePath, __trailingSlash), window.location.href);
361
324
  } catch {
362
325
  return;
363
326
  }
@@ -489,56 +452,41 @@ function applyLocaleToHref(href, locale) {
489
452
  }
490
453
  return addLocalePrefix(href, resolvedLocale, defaultLocale);
491
454
  }
492
- /**
493
- * For the `<Link href="/blog/[slug]" as="/blog/test-post">` case, project the
494
- * bracket-pattern href + the resolved `as` back into a concrete route URL the
495
- * Pages Router can fetch (`/blog/test-post`). Returns null when:
496
- * - `href` has no bracket params (already concrete; the existing forwarding
497
- * path works as-is)
498
- * - interpolation fails because a required param could not be resolved
499
- * (caller falls back to `as`, matching pre-PR behavior)
500
- *
501
- * The query for interpolation is the href's own query — `as` is the matcher
502
- * input rather than the source of param values. For string hrefs the search
503
- * portion is parsed into the query record; for object hrefs we take
504
- * `href.query` directly.
505
- */
455
+ /** Resolve a dynamic route pattern to the concrete URL used for prefetching. */
506
456
  function resolveConcreteRouteHref(href, as) {
507
457
  if (typeof as !== "string") return null;
508
- return interpolateDynamicRouteHref(typeof href === "string" ? href : resolveHref(href), as, typeof href === "string" || !href.query || typeof href.query === "string" ? void 0 : href.query)?.href || null;
458
+ return interpolateDynamicRouteHref(href, as)?.href || null;
509
459
  }
510
460
  const Link = forwardRef(function Link({ href, as, replace = false, prefetch: prefetchProp, scroll = true, shallow = false, children: childrenProp, onClick, onMouseEnter, onTouchStart, onNavigate, unstable_dynamicOnHover = false, legacyBehavior = false, passHref = false, transitionTypes: _transitionTypes, ...rest }, forwardedRef) {
511
461
  const pagesRouter = useContext(RouterContext);
512
- const asHref = as === void 0 ? void 0 : resolveHref(as);
513
- const hrefStr = resolveHref(href);
462
+ const routePathnameForWarning = getCurrentRoutePathnameForWarning();
463
+ const hrefStr = resolvePagesLinkValue(href, pagesRouter, routePathnameForWarning);
464
+ const asHref = as === void 0 ? void 0 : resolvePagesLinkValue(as, pagesRouter, routePathnameForWarning);
514
465
  const { locale, ...restWithoutLocale } = rest;
515
466
  let children = childrenProp;
516
467
  if (legacyBehavior && (typeof childrenProp === "string" || typeof childrenProp === "number")) children = React.createElement("a", null, childrenProp);
517
468
  const hrefForImplicitInterpolation = isAbsoluteOrProtocolRelativeUrl(hrefStr) ? hrefStr.startsWith("//") ? null : toSameOriginAppPath(hrefStr, __basePath) : hrefStr;
518
469
  const implicitDynamicRouteHref = HAS_PAGES_ROUTER && pagesRouter !== null && asHref === void 0 && hrefForImplicitInterpolation !== null ? resolveDynamicRouteHref(hrefForImplicitInterpolation) : null;
519
- const dynamicRouteHref = implicitDynamicRouteHref ? {
520
- ...implicitDynamicRouteHref,
521
- href: hrefStr
522
- } : null;
523
- const pagesAsHref = asHref ?? dynamicRouteHref?.as;
470
+ const pagesAsHref = asHref ?? implicitDynamicRouteHref?.as;
524
471
  const unresolvedHref = pagesAsHref ?? hrefStr;
525
- const rawResolvedHref = typeof unresolvedHref === "string" && unresolvedHref.startsWith("#") && !getNavigationRuntime()?.functions.navigate ? resolvePagesQueryOnlyHref(unresolvedHref) : unresolvedHref;
526
- const concreteRouteHref = HAS_PAGES_ROUTER ? resolveConcreteRouteHref(dynamicRouteHref ? hrefForImplicitInterpolation ?? href : href, pagesAsHref) : null;
527
- const routeHrefRaw = dynamicRouteHref?.href ?? concreteRouteHref ?? hrefStr;
472
+ const resolvedHref = unresolvedHref.startsWith("#") && !getNavigationRuntime()?.functions.navigate ? resolvePagesQueryOnlyHref(unresolvedHref) : unresolvedHref;
473
+ const concreteRouteHref = HAS_PAGES_ROUTER ? resolveConcreteRouteHref(hrefForImplicitInterpolation ?? hrefStr, pagesAsHref) : null;
474
+ const routeHrefRaw = hrefStr;
528
475
  const prefetchRouteHrefRaw = concreteRouteHref ?? routeHrefRaw;
529
- const hasPagesHrefAsPair = HAS_PAGES_ROUTER && typeof pagesAsHref === "string" && typeof routeHrefRaw === "string" && pagesAsHref !== routeHrefRaw;
530
- const resolvedHref = typeof rawResolvedHref === "string" ? warnAndNormalizeRepeatedSlashesInHref(rawResolvedHref) : rawResolvedHref;
531
- const isDangerous = typeof resolvedHref === "string" && isDangerousScheme(resolvedHref);
532
- const normalizedHref = normalizePathTrailingSlash(applyLocaleToHref(isDangerous ? "/" : resolvedHref, locale), __trailingSlash);
533
- const normalizedRouteHref = hasPagesHrefAsPair ? normalizePathTrailingSlash(applyLocaleToHref(isDangerous ? "/" : prefetchRouteHrefRaw, locale), __trailingSlash) : normalizedHref;
476
+ const hasPagesHrefAsPair = HAS_PAGES_ROUTER && pagesAsHref !== void 0 && pagesAsHref !== routeHrefRaw;
477
+ const isDangerous = isDangerousScheme(resolvedHref);
478
+ const isRouteDangerous = isDangerousScheme(prefetchRouteHrefRaw);
479
+ const isPrefetchDangerous = isDangerous || pagesRouter !== null && isRouteDangerous;
480
+ const localizedHref = applyLocaleToHref(isDangerous ? "/" : resolvedHref, locale);
481
+ const normalizedHref = normalizePathTrailingSlash(localizedHref, __trailingSlash);
482
+ const normalizedRouteHref = hasPagesHrefAsPair ? normalizePathTrailingSlash(applyLocaleToHref(isRouteDangerous ? "/" : prefetchRouteHrefRaw, locale), __trailingSlash) : normalizedHref;
534
483
  const fullHref = normalizePathTrailingSlash(withBasePath(normalizedHref, __basePath), __trailingSlash);
535
484
  const [pending, setPending] = useState(false);
536
485
  const mountedRef = useRef(true);
537
486
  const pendingPagesIntentPrefetchRef = useRef(null);
538
- const setPendingRef = useRef(null);
539
- if (setPendingRef.current === null) setPendingRef.current = (next) => {
487
+ const setPendingRef = useRef((next) => {
540
488
  if (mountedRef.current) setPending(next);
541
- };
489
+ });
542
490
  useEffect(() => {
543
491
  mountedRef.current = true;
544
492
  const setter = setPendingRef.current;
@@ -553,11 +501,11 @@ const Link = forwardRef(function Link({ href, as, replace = false, prefetch: pre
553
501
  const prefetchRouterMode = getLinkPrefetchRouterMode();
554
502
  const isShallowPagesLink = prefetchRouterMode === "pages" && shallow;
555
503
  const effectivePrefetchProp = isShallowPagesLink ? false : prefetchProp;
556
- const prefetchMode = resolveLinkPrefetchMode(effectivePrefetchProp, isDangerous);
504
+ const prefetchMode = resolveLinkPrefetchMode(effectivePrefetchProp, isPrefetchDangerous);
557
505
  const shouldViewportPrefetch = canLinkPrefetch({
558
506
  nodeEnv: process.env.NODE_ENV,
559
507
  prefetch: effectivePrefetchProp,
560
- isDangerous
508
+ isDangerous: isPrefetchDangerous
561
509
  });
562
510
  const setRefs = useCallback((node) => {
563
511
  internalRef.current = node;
@@ -611,7 +559,7 @@ const Link = forwardRef(function Link({ href, as, replace = false, prefetch: pre
611
559
  if (isShallowPagesLink || !canLinkIntentPrefetch({
612
560
  nodeEnv: process.env.NODE_ENV,
613
561
  prefetch: effectivePrefetchProp,
614
- isDangerous,
562
+ isDangerous: isPrefetchDangerous,
615
563
  routerMode: prefetchRouterMode
616
564
  })) return;
617
565
  const intentMode = unstable_dynamicOnHover ? "full-after-shell" : prefetchMode;
@@ -623,7 +571,7 @@ const Link = forwardRef(function Link({ href, as, replace = false, prefetch: pre
623
571
  prefetchUrl(normalizedHref, intentMode, "high", normalizedRouteHref === normalizedHref ? void 0 : normalizedRouteHref, locale);
624
572
  }, [
625
573
  effectivePrefetchProp,
626
- isDangerous,
574
+ isPrefetchDangerous,
627
575
  isShallowPagesLink,
628
576
  prefetchMode,
629
577
  prefetchRouterMode,
@@ -677,7 +625,7 @@ const Link = forwardRef(function Link({ href, as, replace = false, prefetch: pre
677
625
  const pagesNavigateHref = HAS_PAGES_ROUTER && resolvedHref.startsWith("?") ? resolvePagesLinkNavigationHref(resolvedHref, locale) : navigateHref;
678
626
  const pagesAsForLink = hasPagesHrefAsPair ? pagesNavigateHref : void 0;
679
627
  const pagesHrefForLink = pagesAsForLink === void 0 ? pagesNavigateHref : routeHrefRaw;
680
- const absoluteFullHref = toBrowserNavigationHref(hasAppNavigationRuntime ? navigateHref : pagesNavigateHref, window.location.href, __basePath);
628
+ const absoluteFullHref = toCanonicalBrowserNavigationHref(hasAppNavigationRuntime ? navigateHref : pagesNavigateHref, window.location.href, __basePath, __trailingSlash);
681
629
  if (onNavigate) try {
682
630
  const navUrl = new URL(absoluteFullHref, window.location.origin);
683
631
  let prevented = false;
@@ -713,8 +661,9 @@ const Link = forwardRef(function Link({ href, as, replace = false, prefetch: pre
713
661
  return;
714
662
  } else if (HAS_PAGES_ROUTER) {
715
663
  const Router = window.next?.appDir === true ? void 0 : window.next?.router;
664
+ const pagesRouter = Router && "reload" in Router ? Router : void 0;
716
665
  await navigatePagesRouterLinkWithFallback({
717
- router: Router && "reload" in Router ? Router : void 0,
666
+ router: pagesRouter,
718
667
  loadRouter: async () => (await import("next/router")).default,
719
668
  navigation: {
720
669
  href: pagesHrefForLink,
@@ -747,15 +696,16 @@ const Link = forwardRef(function Link({ href, as, replace = false, prefetch: pre
747
696
  if (typeof childRef === "function") childRef(node);
748
697
  else if (childRef) childRef.current = node;
749
698
  };
699
+ const dangerousChild = React.cloneElement(child, {
700
+ ref: setDangerousRefs,
701
+ onClick: (event) => {
702
+ if (childOnClick) childOnClick(event);
703
+ reportBlockedDangerousNavigation();
704
+ }
705
+ });
750
706
  return /* @__PURE__ */ jsx(LinkStatusContext.Provider, {
751
707
  value: linkStatusValue,
752
- children: React.cloneElement(child, {
753
- ref: setDangerousRefs,
754
- onClick: (event) => {
755
- if (childOnClick) childOnClick(event);
756
- reportBlockedDangerousNavigation();
757
- }
758
- })
708
+ children: dangerousChild
759
709
  });
760
710
  }
761
711
  return /* @__PURE__ */ jsx(LinkStatusContext.Provider, {
@@ -805,9 +755,10 @@ const Link = forwardRef(function Link({ href, as, replace = false, prefetch: pre
805
755
  }
806
756
  };
807
757
  if (shouldForwardHref) clonedProps.href = fullHref;
758
+ const clonedChild = React.cloneElement(child, clonedProps);
808
759
  return /* @__PURE__ */ jsx(LinkStatusContext.Provider, {
809
760
  value: linkStatusValue,
810
- children: React.cloneElement(child, clonedProps)
761
+ children: clonedChild
811
762
  });
812
763
  }
813
764
  return /* @__PURE__ */ jsx(LinkStatusContext.Provider, {
@@ -2,26 +2,26 @@ import { ThenableParamsObserver } from "./thenable-params.js";
2
2
  import React from "react";
3
3
  import { ResolvedViewport as ResolvedViewport$1, Viewport as Viewport$1 } from "@vinext/types/next/upstream/dist/lib/metadata/types/metadata-interface";
4
4
  //#region src/shims/metadata.d.ts
5
- type Viewport = Viewport$1;
6
- type ResolvedViewport = ResolvedViewport$1;
5
+ export type Viewport = Viewport$1;
6
+ export type ResolvedViewport = ResolvedViewport$1;
7
7
  /**
8
8
  * Resolve viewport config from a module. Handles both static `viewport` export
9
9
  * and async `generateViewport()` function.
10
10
  */
11
- declare function resolveModuleViewport(mod: Record<string, unknown>, params?: Record<string, string | string[]>, searchParams?: Record<string, string | string[]>, parent?: Promise<ResolvedViewport>, searchParamsObserver?: ThenableParamsObserver): Promise<Viewport | null>;
11
+ export declare function resolveModuleViewport(mod: Record<string, unknown>, params?: Record<string, string | string[]>, searchParams?: Record<string, string | string[]>, parent?: Promise<ResolvedViewport>, searchParamsObserver?: ThenableParamsObserver): Promise<Viewport | null>;
12
12
  /**
13
13
  * Merge viewport configs from multiple sources (layouts + page).
14
14
  * Later entries override earlier ones.
15
15
  */
16
- declare const DEFAULT_VIEWPORT: ResolvedViewport;
17
- declare function mergeViewport(viewportList: readonly Viewport[]): ResolvedViewport;
16
+ export declare const DEFAULT_VIEWPORT: ResolvedViewport;
17
+ export declare function mergeViewport(viewportList: readonly Viewport[]): ResolvedViewport;
18
18
  /**
19
19
  * React component that renders viewport meta tags into <head>.
20
20
  */
21
- declare function ViewportHead({ viewport }: {
21
+ export declare function ViewportHead({ viewport }: {
22
22
  viewport: Viewport;
23
23
  }): React.JSX.Element;
24
- type Metadata = {
24
+ export type Metadata = {
25
25
  title?: string | {
26
26
  default?: string;
27
27
  template?: string;
@@ -193,7 +193,7 @@ type IconsMap = {
193
193
  other?: IconDescriptor | IconDescriptor[];
194
194
  };
195
195
  type IconsMetadata = IconInput | IconInput[] | IconsMap;
196
- type MetadataMergeEntry = {
196
+ export type MetadataMergeEntry = {
197
197
  contributesTitle?: boolean;
198
198
  isPage?: boolean;
199
199
  metadata: Metadata;
@@ -209,7 +209,7 @@ type MetadataMergeEntry = {
209
209
  *
210
210
  * Shallow merge: later entries override earlier ones (per Next.js docs).
211
211
  */
212
- declare function mergeMetadata(metadataList: Metadata[]): Metadata;
212
+ export declare function mergeMetadata(metadataList: Metadata[]): Metadata;
213
213
  /**
214
214
  * Post-process merged metadata to cross-fill openGraph and Twitter fields.
215
215
  *
@@ -222,7 +222,7 @@ declare function mergeMetadata(metadataList: Metadata[]): Metadata;
222
222
  * Ported from Next.js:
223
223
  * https://github.com/vercel/next.js/blob/canary/packages/next/src/lib/metadata/resolve-metadata.ts
224
224
  */
225
- declare function postProcessMetadata(merged: Metadata): Metadata;
225
+ export declare function postProcessMetadata(merged: Metadata): Metadata;
226
226
  /**
227
227
  * Merge metadata from multiple sources (layouts + page).
228
228
  *
@@ -235,7 +235,7 @@ declare function postProcessMetadata(merged: Metadata): Metadata;
235
235
  * For top-level keys, later entries override earlier ones. `other` custom meta
236
236
  * tags are the exception: Next.js merges those across segments.
237
237
  */
238
- declare function mergeMetadataEntries(entries: readonly MetadataMergeEntry[]): Metadata;
238
+ export declare function mergeMetadataEntries(entries: readonly MetadataMergeEntry[]): Metadata;
239
239
  /**
240
240
  * Resolve metadata from a module. Handles both static `metadata` export
241
241
  * and async `generateMetadata()` function.
@@ -246,17 +246,16 @@ declare function mergeMetadataEntries(entries: readonly MetadataMergeEntry[]): M
246
246
  * resolution approach. If not provided, defaults to a promise that resolves
247
247
  * to an empty object (so `await parent` never throws).
248
248
  */
249
- declare function resolveModuleMetadata(mod: Record<string, unknown>, params?: Record<string, string | string[]>, searchParams?: Record<string, string | string[]>, parent?: Promise<Metadata>, searchParamsObserver?: ThenableParamsObserver): Promise<Metadata | null>;
249
+ export declare function resolveModuleMetadata(mod: Record<string, unknown>, params?: Record<string, string | string[]>, searchParams?: Record<string, string | string[]>, parent?: Promise<Metadata>, searchParamsObserver?: ThenableParamsObserver): Promise<Metadata | null>;
250
250
  type MetadataHeadProps = {
251
251
  metadata: Metadata;
252
252
  pathname?: string;
253
253
  trailingSlash?: boolean;
254
254
  streamedIconKey?: string;
255
255
  };
256
- declare function renderMetadataToHtml(metadata: Metadata, pathname?: string, options?: {
256
+ export declare function renderMetadataToHtml(metadata: Metadata, pathname?: string, options?: {
257
257
  trailingSlash?: boolean;
258
258
  streamedIconKey?: string;
259
259
  }): string;
260
- declare function MetadataHead({ metadata, pathname, trailingSlash, streamedIconKey }: MetadataHeadProps): React.JSX.Element;
261
- //#endregion
262
- export { DEFAULT_VIEWPORT, Metadata, MetadataHead, MetadataMergeEntry, ResolvedViewport, Viewport, ViewportHead, mergeMetadata, mergeMetadataEntries, mergeViewport, postProcessMetadata, renderMetadataToHtml, resolveModuleMetadata, resolveModuleViewport };
260
+ export declare function MetadataHead({ metadata, pathname, trailingSlash, streamedIconKey }: MetadataHeadProps): React.JSX.Element;
261
+ //#endregion
@@ -1,5 +1,6 @@
1
1
  import { isAbsoluteOrProtocolRelativeUrl } from "./url-utils.js";
2
2
  import { makeThenableParams } from "./thenable-params.js";
3
+ import { withUseCachePageMarker } from "./internal/app-page-props-cache-key.js";
3
4
  import React from "react";
4
5
  import { Fragment as Fragment$1, jsx } from "react/jsx-runtime";
5
6
  //#region src/shims/metadata.tsx
@@ -18,10 +19,10 @@ const USE_CACHE_ACCEPTS_SECOND_ARGUMENT_SYMBOL = Symbol.for("vinext.useCacheAcce
18
19
  async function resolveModuleViewport(mod, params = {}, searchParams, parent = Promise.resolve(mergeViewport([])), searchParamsObserver) {
19
20
  if (typeof mod.generateViewport === "function") {
20
21
  const asyncParams = makeThenableParams(params);
21
- const props = searchParams === void 0 ? { params: asyncParams } : {
22
+ const props = searchParams === void 0 ? { params: asyncParams } : withUseCachePageMarker(mod.generateViewport, {
22
23
  params: asyncParams,
23
24
  searchParams: makeThenableParams(searchParams, searchParamsObserver)
24
- };
25
+ });
25
26
  return await mod.generateViewport(props, parent);
26
27
  }
27
28
  if (mod.viewport && typeof mod.viewport === "object") return mod.viewport;
@@ -67,10 +68,7 @@ function mergeViewport(viewportList) {
67
68
  case "viewportFit":
68
69
  merged.viewportFit = viewport.viewportFit;
69
70
  break;
70
- case "interactiveWidget":
71
- merged.interactiveWidget = viewport.interactiveWidget;
72
- break;
73
- default:
71
+ case "interactiveWidget": merged.interactiveWidget = viewport.interactiveWidget;
74
72
  }
75
73
  return merged;
76
74
  }
@@ -197,11 +195,13 @@ function postProcessMetadata(merged) {
197
195
  }
198
196
  if (!hasTwDescription) autoFill.description = result.openGraph.description || result.description || void 0;
199
197
  if (!hasTwImages && result.openGraph.images !== void 0) autoFill.images = result.openGraph.images;
200
- if (Object.keys(autoFill).length > 0) if (existingTwitter) result.twitter = {
201
- ...existingTwitter,
202
- ...autoFill
203
- };
204
- else result.twitter = autoFill;
198
+ if (Object.keys(autoFill).length > 0) {
199
+ if (existingTwitter) result.twitter = {
200
+ ...existingTwitter,
201
+ ...autoFill
202
+ };
203
+ else result.twitter = autoFill;
204
+ }
205
205
  }
206
206
  if (result.twitter) {
207
207
  const tw = { ...result.twitter };
@@ -268,10 +268,10 @@ async function resolveModuleMetadata(mod, params = {}, searchParams, parent = Pr
268
268
  if (typeof mod.generateMetadata === "function") {
269
269
  const generateMetadata = mod.generateMetadata;
270
270
  const asyncParams = makeThenableParams(params);
271
- const props = searchParams === void 0 ? { params: asyncParams } : {
271
+ const props = searchParams === void 0 ? { params: asyncParams } : withUseCachePageMarker(generateMetadata, {
272
272
  params: asyncParams,
273
273
  searchParams: makeThenableParams(searchParams, searchParamsObserver)
274
- };
274
+ });
275
275
  const isUseCacheFunction = Reflect.get(generateMetadata, USE_CACHE_FUNCTION_SYMBOL) === true;
276
276
  const acceptsSecondArgument = Reflect.get(generateMetadata, USE_CACHE_ACCEPTS_SECOND_ARGUMENT_SYMBOL);
277
277
  return await (!isUseCacheFunction || (typeof acceptsSecondArgument === "boolean" ? acceptsSecondArgument : generateMetadata.length >= 2) ? generateMetadata(props, parent) : generateMetadata(props));
@@ -509,33 +509,37 @@ function MetadataHead({ metadata, pathname = "/", trailingSlash, streamedIconKey
509
509
  name: "category",
510
510
  content: metadata.category
511
511
  }, key++));
512
- if (metadata.robots) if (typeof metadata.robots === "string") elements.push(/* @__PURE__ */ jsx("meta", {
513
- name: "robots",
514
- content: metadata.robots
515
- }, key++));
516
- else {
517
- const { googleBot, ...robotsRest } = metadata.robots;
518
- const robotParts = [];
519
- for (const [k, v] of Object.entries(robotsRest)) if (v === true) robotParts.push(k);
520
- else if (v === false) robotParts.push(`no${k}`);
521
- else if (typeof v === "string" || typeof v === "number") robotParts.push(`${k}:${v}`);
522
- if (robotParts.length > 0) elements.push(/* @__PURE__ */ jsx("meta", {
512
+ if (metadata.robots) {
513
+ if (typeof metadata.robots === "string") elements.push(/* @__PURE__ */ jsx("meta", {
523
514
  name: "robots",
524
- content: robotParts.join(", ")
525
- }, key++));
526
- if (googleBot) if (typeof googleBot === "string") elements.push(/* @__PURE__ */ jsx("meta", {
527
- name: "googlebot",
528
- content: googleBot
515
+ content: metadata.robots
529
516
  }, key++));
530
517
  else {
531
- const gbParts = [];
532
- for (const [k, v] of Object.entries(googleBot)) if (v === true) gbParts.push(k);
533
- else if (v === false) gbParts.push(`no${k}`);
534
- else if (typeof v === "string" || typeof v === "number") gbParts.push(`${k}:${v}`);
535
- if (gbParts.length > 0) elements.push(/* @__PURE__ */ jsx("meta", {
536
- name: "googlebot",
537
- content: gbParts.join(", ")
518
+ const { googleBot, ...robotsRest } = metadata.robots;
519
+ const robotParts = [];
520
+ for (const [k, v] of Object.entries(robotsRest)) if (v === true) robotParts.push(k);
521
+ else if (v === false) robotParts.push(`no${k}`);
522
+ else if (typeof v === "string" || typeof v === "number") robotParts.push(`${k}:${v}`);
523
+ if (robotParts.length > 0) elements.push(/* @__PURE__ */ jsx("meta", {
524
+ name: "robots",
525
+ content: robotParts.join(", ")
538
526
  }, key++));
527
+ if (googleBot) {
528
+ if (typeof googleBot === "string") elements.push(/* @__PURE__ */ jsx("meta", {
529
+ name: "googlebot",
530
+ content: googleBot
531
+ }, key++));
532
+ else {
533
+ const gbParts = [];
534
+ for (const [k, v] of Object.entries(googleBot)) if (v === true) gbParts.push(k);
535
+ else if (v === false) gbParts.push(`no${k}`);
536
+ else if (typeof v === "string" || typeof v === "number") gbParts.push(`${k}:${v}`);
537
+ if (gbParts.length > 0) elements.push(/* @__PURE__ */ jsx("meta", {
538
+ name: "googlebot",
539
+ content: gbParts.join(", ")
540
+ }, key++));
541
+ }
542
+ }
539
543
  }
540
544
  }
541
545
  if (metadata.openGraph) {
@@ -0,0 +1,9 @@
1
+ //#region src/shims/navigation-context-accessors.d.ts
2
+ export type NavigationContext = {
3
+ pathname: string;
4
+ searchParams: URLSearchParams;
5
+ params: Record<string, string | string[]>;
6
+ };
7
+ /** Lightweight server context setter for request-only runtimes such as middleware. */
8
+ export declare function setNavigationContext(context: NavigationContext | null): void;
9
+ //#endregion
@@ -0,0 +1,19 @@
1
+ //#region src/shims/navigation-context-accessors.ts
2
+ const GLOBAL_ACCESSORS_KEY = Symbol.for("vinext.navigation.globalAccessors");
3
+ const NAVIGATION_FALLBACK_STATE_KEY = Symbol.for("vinext.navigation.fallback");
4
+ /** Lightweight server context setter for request-only runtimes such as middleware. */
5
+ function setNavigationContext(context) {
6
+ const globalState = globalThis;
7
+ const accessors = globalState[GLOBAL_ACCESSORS_KEY];
8
+ if (accessors) {
9
+ accessors.setServerContext(context);
10
+ return;
11
+ }
12
+ const fallback = globalState[NAVIGATION_FALLBACK_STATE_KEY] ??= {
13
+ serverContext: null,
14
+ serverInsertedHTMLCallbacks: []
15
+ };
16
+ fallback.serverContext = context;
17
+ }
18
+ //#endregion
19
+ export { setNavigationContext };