vinext 0.0.55 → 0.1.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 (985) hide show
  1. package/README.md +51 -15
  2. package/dist/build/clean-output.d.ts +1 -2
  3. package/dist/build/clean-output.js +0 -2
  4. package/dist/build/client-build-config.d.ts +16 -3
  5. package/dist/build/client-build-config.js +29 -4
  6. package/dist/build/css-url-assets.d.ts +29 -0
  7. package/dist/build/css-url-assets.js +211 -0
  8. package/dist/build/google-fonts/build-url.d.ts +1 -2
  9. package/dist/build/google-fonts/build-url.js +0 -2
  10. package/dist/build/google-fonts/fallback-metrics-data.js +0 -2
  11. package/dist/build/google-fonts/fallback-metrics.d.ts +1 -2
  12. package/dist/build/google-fonts/fallback-metrics.js +0 -2
  13. package/dist/build/google-fonts/font-data.js +0 -2
  14. package/dist/build/google-fonts/font-metadata.d.ts +1 -2
  15. package/dist/build/google-fonts/font-metadata.js +0 -2
  16. package/dist/build/google-fonts/get-axes.d.ts +1 -2
  17. package/dist/build/google-fonts/get-axes.js +0 -2
  18. package/dist/build/google-fonts/sort-variants.d.ts +1 -2
  19. package/dist/build/google-fonts/sort-variants.js +0 -2
  20. package/dist/build/google-fonts/validate.d.ts +1 -2
  21. package/dist/build/google-fonts/validate.js +0 -2
  22. package/dist/build/inline-css.d.ts +1 -2
  23. package/dist/build/inline-css.js +0 -2
  24. package/dist/build/layout-classification-types.d.ts +1 -2
  25. package/dist/build/layout-classification.d.ts +2 -3
  26. package/dist/build/layout-classification.js +1 -3
  27. package/dist/build/next-client-runtime-manifests.d.ts +14 -0
  28. package/dist/build/next-client-runtime-manifests.js +39 -0
  29. package/dist/build/nitro-route-rules.d.ts +1 -2
  30. package/dist/build/nitro-route-rules.js +0 -2
  31. package/dist/build/precompress.d.ts +1 -2
  32. package/dist/build/precompress.js +0 -2
  33. package/dist/build/prerender.d.ts +2 -3
  34. package/dist/build/prerender.js +14 -2
  35. package/dist/build/report.d.ts +1 -2
  36. package/dist/build/report.js +0 -2
  37. package/dist/build/route-classification-injector.d.ts +1 -2
  38. package/dist/build/route-classification-injector.js +4 -6
  39. package/dist/build/route-classification-manifest.d.ts +5 -6
  40. package/dist/build/route-classification-manifest.js +5 -7
  41. package/dist/build/run-prerender.d.ts +1 -2
  42. package/dist/build/run-prerender.js +15 -7
  43. package/dist/build/server-manifest.d.ts +1 -2
  44. package/dist/build/server-manifest.js +0 -2
  45. package/dist/build/ssr-manifest.d.ts +1 -2
  46. package/dist/build/ssr-manifest.js +2 -4
  47. package/dist/build/standalone.d.ts +1 -2
  48. package/dist/build/standalone.js +0 -2
  49. package/dist/build/static-export.d.ts +2 -3
  50. package/dist/build/static-export.js +0 -2
  51. package/dist/cache/cache-adapters-virtual.d.ts +50 -0
  52. package/dist/cache/cache-adapters-virtual.js +45 -0
  53. package/dist/check.d.ts +33 -2
  54. package/dist/check.js +306 -24
  55. package/dist/cli-args.d.ts +1 -2
  56. package/dist/cli-args.js +0 -2
  57. package/dist/cli.js +7 -13
  58. package/dist/client/instrumentation-client-inject.d.ts +1 -2
  59. package/dist/client/instrumentation-client-inject.js +0 -2
  60. package/dist/client/instrumentation-client-state.d.ts +1 -2
  61. package/dist/client/instrumentation-client-state.js +0 -2
  62. package/dist/client/instrumentation-client.d.ts +1 -2
  63. package/dist/client/instrumentation-client.js +0 -2
  64. package/dist/client/navigation-runtime.d.ts +1 -2
  65. package/dist/client/navigation-runtime.js +0 -2
  66. package/dist/client/pages-router-link-navigation.d.ts +1 -2
  67. package/dist/client/pages-router-link-navigation.js +0 -2
  68. package/dist/client/validate-module-path.d.ts +1 -2
  69. package/dist/client/validate-module-path.js +0 -2
  70. package/dist/client/vinext-next-data.d.ts +1 -2
  71. package/dist/client/vinext-next-data.js +0 -2
  72. package/dist/client/window-next.d.ts +1 -2
  73. package/dist/client/window-next.js +0 -2
  74. package/dist/cloudflare/index.d.ts +1 -1
  75. package/dist/cloudflare/index.js +1 -1
  76. package/dist/cloudflare/src/cache/cdn-adapter.runtime.js +97 -0
  77. package/dist/cloudflare/{kv-cache-handler.d.ts → src/cache/kv-data-adapter.runtime.d.ts} +25 -6
  78. package/dist/cloudflare/{kv-cache-handler.js → src/cache/kv-data-adapter.runtime.js} +36 -28
  79. package/dist/cloudflare/src/utils/cache-control-metadata.js +20 -0
  80. package/dist/cloudflare/tpr.d.ts +2 -3
  81. package/dist/cloudflare/tpr.js +8 -8
  82. package/dist/config/config-matchers.d.ts +1 -2
  83. package/dist/config/config-matchers.js +0 -2
  84. package/dist/config/dotenv.d.ts +1 -2
  85. package/dist/config/dotenv.js +0 -2
  86. package/dist/config/next-config.d.ts +16 -2
  87. package/dist/config/next-config.js +23 -4
  88. package/dist/config/tsconfig-paths.d.ts +1 -2
  89. package/dist/config/tsconfig-paths.js +3 -7
  90. package/dist/deploy.d.ts +48 -3
  91. package/dist/deploy.js +141 -112
  92. package/dist/entries/app-browser-entry.d.ts +1 -2
  93. package/dist/entries/app-browser-entry.js +0 -2
  94. package/dist/entries/app-rsc-entry.d.ts +4 -4
  95. package/dist/entries/app-rsc-entry.js +50 -61
  96. package/dist/entries/app-rsc-manifest.d.ts +1 -2
  97. package/dist/entries/app-rsc-manifest.js +20 -7
  98. package/dist/entries/app-ssr-entry.d.ts +1 -2
  99. package/dist/entries/app-ssr-entry.js +0 -2
  100. package/dist/entries/pages-client-entry.d.ts +3 -3
  101. package/dist/entries/pages-client-entry.js +16 -5
  102. package/dist/entries/pages-entry-helpers.d.ts +2 -11
  103. package/dist/entries/pages-entry-helpers.js +1 -20
  104. package/dist/entries/pages-server-entry.d.ts +2 -3
  105. package/dist/entries/pages-server-entry.js +89 -702
  106. package/dist/entries/runtime-entry-module.d.ts +1 -2
  107. package/dist/entries/runtime-entry-module.js +0 -2
  108. package/dist/index.d.ts +22 -2
  109. package/dist/index.js +216 -101
  110. package/dist/init.d.ts +1 -2
  111. package/dist/init.js +1 -3
  112. package/dist/plugins/ast-utils.d.ts +20 -0
  113. package/dist/plugins/ast-utils.js +78 -0
  114. package/dist/plugins/async-hooks-stub.d.ts +1 -2
  115. package/dist/plugins/async-hooks-stub.js +0 -2
  116. package/dist/plugins/client-reference-dedup.d.ts +1 -2
  117. package/dist/plugins/client-reference-dedup.js +4 -8
  118. package/dist/plugins/css-data-url.d.ts +1 -2
  119. package/dist/plugins/css-data-url.js +0 -2
  120. package/dist/plugins/fonts.d.ts +13 -3
  121. package/dist/plugins/fonts.js +19 -13
  122. package/dist/plugins/import-meta-url.d.ts +2 -2
  123. package/dist/plugins/import-meta-url.js +187 -33
  124. package/dist/plugins/instrumentation-client.d.ts +1 -2
  125. package/dist/plugins/instrumentation-client.js +0 -2
  126. package/dist/plugins/middleware-server-only.d.ts +1 -2
  127. package/dist/plugins/middleware-server-only.js +0 -2
  128. package/dist/plugins/og-assets.d.ts +32 -8
  129. package/dist/plugins/og-assets.js +126 -34
  130. package/dist/plugins/optimize-imports.d.ts +1 -2
  131. package/dist/plugins/optimize-imports.js +9 -17
  132. package/dist/plugins/postcss.d.ts +1 -2
  133. package/dist/plugins/postcss.js +0 -2
  134. package/dist/plugins/remove-console.d.ts +1 -2
  135. package/dist/plugins/remove-console.js +0 -2
  136. package/dist/plugins/rsc-client-reference-loaders.d.ts +1 -2
  137. package/dist/plugins/rsc-client-reference-loaders.js +0 -2
  138. package/dist/plugins/rsc-client-shim-excludes.d.ts +1 -2
  139. package/dist/plugins/rsc-client-shim-excludes.js +0 -2
  140. package/dist/plugins/sass.d.ts +1 -2
  141. package/dist/plugins/sass.js +0 -2
  142. package/dist/plugins/server-externals-manifest.d.ts +1 -2
  143. package/dist/plugins/server-externals-manifest.js +0 -2
  144. package/dist/plugins/strip-server-exports.d.ts +1 -2
  145. package/dist/plugins/strip-server-exports.js +0 -2
  146. package/dist/routing/app-route-graph.d.ts +2 -9
  147. package/dist/routing/app-route-graph.js +9 -30
  148. package/dist/routing/app-router.d.ts +1 -2
  149. package/dist/routing/app-router.js +0 -2
  150. package/dist/routing/file-matcher.d.ts +6 -2
  151. package/dist/routing/file-matcher.js +15 -7
  152. package/dist/routing/pages-router.d.ts +1 -2
  153. package/dist/routing/pages-router.js +0 -2
  154. package/dist/routing/route-matching.d.ts +1 -2
  155. package/dist/routing/route-matching.js +0 -2
  156. package/dist/routing/route-pattern.d.ts +1 -2
  157. package/dist/routing/route-pattern.js +0 -2
  158. package/dist/routing/route-trie.d.ts +1 -2
  159. package/dist/routing/route-trie.js +0 -2
  160. package/dist/routing/route-validation.d.ts +1 -2
  161. package/dist/routing/route-validation.js +0 -2
  162. package/dist/routing/utils.d.ts +44 -2
  163. package/dist/routing/utils.js +62 -3
  164. package/dist/server/api-handler.d.ts +1 -2
  165. package/dist/server/api-handler.js +0 -2
  166. package/dist/server/app-bfcache-id.d.ts +5 -0
  167. package/dist/server/app-bfcache-id.js +5 -0
  168. package/dist/server/app-browser-action-result.d.ts +1 -2
  169. package/dist/server/app-browser-action-result.js +0 -2
  170. package/dist/server/app-browser-client-reuse-manifest.d.ts +12 -0
  171. package/dist/server/app-browser-client-reuse-manifest.js +101 -0
  172. package/dist/server/app-browser-entry.js +186 -75
  173. package/dist/server/app-browser-error.d.ts +1 -2
  174. package/dist/server/app-browser-error.js +0 -2
  175. package/dist/server/app-browser-hydration.d.ts +1 -2
  176. package/dist/server/app-browser-hydration.js +0 -2
  177. package/dist/server/app-browser-interception-context.d.ts +1 -2
  178. package/dist/server/app-browser-interception-context.js +0 -2
  179. package/dist/server/app-browser-mpa-navigation.d.ts +2 -2
  180. package/dist/server/app-browser-mpa-navigation.js +9 -3
  181. package/dist/server/app-browser-navigation-controller.d.ts +5 -4
  182. package/dist/server/app-browser-navigation-controller.js +3 -3
  183. package/dist/server/app-browser-popstate.d.ts +1 -2
  184. package/dist/server/app-browser-popstate.js +0 -2
  185. package/dist/server/app-browser-rsc-redirect.d.ts +1 -2
  186. package/dist/server/app-browser-rsc-redirect.js +0 -2
  187. package/dist/server/app-browser-state.d.ts +28 -4
  188. package/dist/server/app-browser-state.js +193 -10
  189. package/dist/server/app-browser-stream.d.ts +1 -2
  190. package/dist/server/app-browser-stream.js +0 -2
  191. package/dist/server/app-browser-visible-commit.d.ts +2 -3
  192. package/dist/server/app-browser-visible-commit.js +24 -17
  193. package/dist/server/app-client-reference-preloader.d.ts +1 -2
  194. package/dist/server/app-client-reference-preloader.js +0 -2
  195. package/dist/server/app-elements-wire.d.ts +14 -8
  196. package/dist/server/app-elements-wire.js +45 -24
  197. package/dist/server/app-elements.d.ts +2 -3
  198. package/dist/server/app-elements.js +2 -4
  199. package/dist/server/app-fallback-renderer.d.ts +5 -5
  200. package/dist/server/app-fallback-renderer.js +4 -3
  201. package/dist/server/app-history-state.d.ts +18 -2
  202. package/dist/server/app-history-state.js +68 -10
  203. package/dist/server/app-hook-warning-suppression.d.ts +1 -2
  204. package/dist/server/app-hook-warning-suppression.js +0 -2
  205. package/dist/server/app-inline-css-client.d.ts +1 -2
  206. package/dist/server/app-inline-css-client.js +0 -2
  207. package/dist/server/app-interception-context-header.d.ts +1 -2
  208. package/dist/server/app-interception-context-header.js +0 -2
  209. package/dist/server/app-layout-param-observation.d.ts +15 -2
  210. package/dist/server/app-layout-param-observation.js +46 -8
  211. package/dist/server/app-middleware.d.ts +1 -2
  212. package/dist/server/app-middleware.js +0 -2
  213. package/dist/server/app-mounted-slots-header.d.ts +1 -2
  214. package/dist/server/app-mounted-slots-header.js +0 -2
  215. package/dist/server/app-optimistic-routing.d.ts +1 -2
  216. package/dist/server/app-optimistic-routing.js +0 -2
  217. package/dist/server/app-page-boundary-render.d.ts +4 -3
  218. package/dist/server/app-page-boundary-render.js +18 -9
  219. package/dist/server/app-page-boundary.d.ts +11 -2
  220. package/dist/server/app-page-boundary.js +13 -4
  221. package/dist/server/app-page-cache.d.ts +3 -3
  222. package/dist/server/app-page-cache.js +36 -11
  223. package/dist/server/app-page-dispatch.d.ts +19 -5
  224. package/dist/server/app-page-dispatch.js +119 -24
  225. package/dist/server/app-page-element-builder.d.ts +3 -2
  226. package/dist/server/app-page-element-builder.js +9 -11
  227. package/dist/server/app-page-execution.d.ts +8 -3
  228. package/dist/server/app-page-execution.js +55 -24
  229. package/dist/server/app-page-head.d.ts +1 -2
  230. package/dist/server/app-page-head.js +6 -6
  231. package/dist/server/app-page-method.d.ts +1 -2
  232. package/dist/server/app-page-method.js +0 -2
  233. package/dist/server/app-page-params.d.ts +1 -2
  234. package/dist/server/app-page-params.js +0 -2
  235. package/dist/server/app-page-probe.d.ts +79 -2
  236. package/dist/server/app-page-probe.js +89 -9
  237. package/dist/server/app-page-render-identity.d.ts +1 -2
  238. package/dist/server/app-page-render-identity.js +0 -2
  239. package/dist/server/app-page-render-observation.d.ts +1 -2
  240. package/dist/server/app-page-render-observation.js +0 -2
  241. package/dist/server/app-page-render.d.ts +9 -3
  242. package/dist/server/app-page-render.js +167 -10
  243. package/dist/server/app-page-request.d.ts +4 -3
  244. package/dist/server/app-page-request.js +1 -3
  245. package/dist/server/app-page-response.d.ts +2 -2
  246. package/dist/server/app-page-response.js +5 -3
  247. package/dist/server/app-page-route-wiring.d.ts +14 -3
  248. package/dist/server/app-page-route-wiring.js +63 -11
  249. package/dist/server/app-page-search-params-observation.d.ts +10 -0
  250. package/dist/server/app-page-search-params-observation.js +20 -0
  251. package/dist/server/app-page-segment-state.d.ts +1 -2
  252. package/dist/server/app-page-segment-state.js +1 -8
  253. package/dist/server/app-page-stream.d.ts +19 -9
  254. package/dist/server/app-page-stream.js +28 -10
  255. package/dist/server/app-pages-bridge.d.ts +25 -0
  256. package/dist/server/app-pages-bridge.js +34 -0
  257. package/dist/server/app-post-middleware-context.d.ts +1 -2
  258. package/dist/server/app-post-middleware-context.js +0 -2
  259. package/dist/server/app-ppr-fallback-shell.d.ts +21 -0
  260. package/dist/server/app-ppr-fallback-shell.js +82 -0
  261. package/dist/server/app-prerender-endpoints.d.ts +1 -2
  262. package/dist/server/app-prerender-endpoints.js +0 -2
  263. package/dist/server/app-prerender-static-params.d.ts +15 -2
  264. package/dist/server/app-prerender-static-params.js +44 -13
  265. package/dist/server/app-render-dependency.d.ts +3 -2
  266. package/dist/server/app-render-dependency.js +9 -3
  267. package/dist/server/app-request-context.d.ts +1 -2
  268. package/dist/server/app-request-context.js +0 -2
  269. package/dist/server/app-route-handler-cache.d.ts +1 -2
  270. package/dist/server/app-route-handler-cache.js +0 -2
  271. package/dist/server/app-route-handler-dispatch.d.ts +1 -2
  272. package/dist/server/app-route-handler-dispatch.js +0 -2
  273. package/dist/server/app-route-handler-execution.d.ts +1 -2
  274. package/dist/server/app-route-handler-execution.js +2 -4
  275. package/dist/server/app-route-handler-policy.d.ts +1 -2
  276. package/dist/server/app-route-handler-policy.js +0 -2
  277. package/dist/server/app-route-handler-response.d.ts +2 -3
  278. package/dist/server/app-route-handler-response.js +7 -6
  279. package/dist/server/app-route-handler-runtime.d.ts +1 -2
  280. package/dist/server/app-route-handler-runtime.js +0 -2
  281. package/dist/server/app-route-module-loader.d.ts +43 -0
  282. package/dist/server/app-route-module-loader.js +32 -0
  283. package/dist/server/app-router-entry.d.ts +1 -2
  284. package/dist/server/app-router-entry.js +2 -2
  285. package/dist/server/app-rsc-cache-busting.d.ts +10 -2
  286. package/dist/server/app-rsc-cache-busting.js +13 -4
  287. package/dist/server/app-rsc-embedded-chunks.d.ts +1 -2
  288. package/dist/server/app-rsc-embedded-chunks.js +0 -2
  289. package/dist/server/app-rsc-error-handler.d.ts +1 -2
  290. package/dist/server/app-rsc-error-handler.js +0 -2
  291. package/dist/server/app-rsc-errors.d.ts +1 -2
  292. package/dist/server/app-rsc-errors.js +0 -2
  293. package/dist/server/app-rsc-handler.d.ts +16 -2
  294. package/dist/server/app-rsc-handler.js +21 -13
  295. package/dist/server/app-rsc-render-mode.d.ts +1 -2
  296. package/dist/server/app-rsc-render-mode.js +0 -2
  297. package/dist/server/app-rsc-request-normalization.d.ts +4 -5
  298. package/dist/server/app-rsc-request-normalization.js +2 -4
  299. package/dist/server/app-rsc-response-finalizer.d.ts +1 -2
  300. package/dist/server/app-rsc-response-finalizer.js +2 -2
  301. package/dist/server/app-rsc-route-matching.d.ts +1 -2
  302. package/dist/server/app-rsc-route-matching.js +0 -2
  303. package/dist/server/app-segment-config.d.ts +4 -2
  304. package/dist/server/app-segment-config.js +8 -2
  305. package/dist/server/app-server-action-execution.d.ts +7 -2
  306. package/dist/server/app-server-action-execution.js +7 -8
  307. package/dist/server/app-ssr-entry.d.ts +5 -4
  308. package/dist/server/app-ssr-entry.js +31 -15
  309. package/dist/server/app-ssr-error-meta.d.ts +1 -2
  310. package/dist/server/app-ssr-error-meta.js +0 -2
  311. package/dist/server/app-ssr-stream.d.ts +1 -2
  312. package/dist/server/app-ssr-stream.js +31 -3
  313. package/dist/server/app-static-generation.d.ts +1 -2
  314. package/dist/server/app-static-generation.js +0 -2
  315. package/dist/server/app-visited-response-cache.d.ts +23 -0
  316. package/dist/server/app-visited-response-cache.js +19 -0
  317. package/dist/server/artifact-compatibility.d.ts +1 -2
  318. package/dist/server/artifact-compatibility.js +2 -6
  319. package/dist/server/cache-control.d.ts +15 -2
  320. package/dist/server/cache-control.js +21 -3
  321. package/dist/server/cache-headers.d.ts +1 -2
  322. package/dist/server/cache-headers.js +0 -2
  323. package/dist/server/cache-proof.d.ts +1 -2
  324. package/dist/server/cache-proof.js +0 -2
  325. package/dist/server/client-reuse-manifest.d.ts +3 -3
  326. package/dist/server/client-reuse-manifest.js +6 -10
  327. package/dist/server/client-trace-metadata.d.ts +1 -2
  328. package/dist/server/client-trace-metadata.js +0 -2
  329. package/dist/server/cookie-utils.d.ts +1 -2
  330. package/dist/server/cookie-utils.js +0 -2
  331. package/dist/server/csp.d.ts +1 -2
  332. package/dist/server/csp.js +0 -2
  333. package/dist/server/default-global-error-module.d.ts +1 -2
  334. package/dist/server/default-global-error-module.js +0 -2
  335. package/dist/server/default-not-found-module.d.ts +1 -2
  336. package/dist/server/default-not-found-module.js +0 -2
  337. package/dist/server/dev-error-overlay-store.d.ts +20 -4
  338. package/dist/server/dev-error-overlay-store.js +23 -4
  339. package/dist/server/dev-error-overlay.d.ts +39 -3
  340. package/dist/server/dev-error-overlay.js +952 -164
  341. package/dist/server/dev-initial-server-error.d.ts +9 -0
  342. package/dist/server/dev-initial-server-error.js +26 -0
  343. package/dist/server/dev-lockfile.d.ts +1 -2
  344. package/dist/server/dev-lockfile.js +0 -2
  345. package/dist/server/dev-module-runner.d.ts +1 -2
  346. package/dist/server/dev-module-runner.js +0 -2
  347. package/dist/server/dev-origin-check.d.ts +1 -2
  348. package/dist/server/dev-origin-check.js +0 -2
  349. package/dist/server/dev-route-files.d.ts +1 -2
  350. package/dist/server/dev-route-files.js +0 -2
  351. package/dist/server/dev-server.d.ts +2 -3
  352. package/dist/server/dev-server.js +75 -18
  353. package/dist/server/dev-stack-sourcemap-endpoint.d.ts +4 -0
  354. package/dist/server/dev-stack-sourcemap-endpoint.js +4 -0
  355. package/dist/server/dev-stack-sourcemap.d.ts +43 -0
  356. package/dist/server/dev-stack-sourcemap.js +443 -0
  357. package/dist/server/document-initial-head.d.ts +1 -2
  358. package/dist/server/document-initial-head.js +0 -2
  359. package/dist/server/edge-api-runtime.d.ts +1 -2
  360. package/dist/server/edge-api-runtime.js +0 -2
  361. package/dist/server/file-based-metadata.d.ts +1 -2
  362. package/dist/server/file-based-metadata.js +0 -2
  363. package/dist/server/headers.d.ts +3 -2
  364. package/dist/server/headers.js +3 -3
  365. package/dist/server/html.d.ts +1 -2
  366. package/dist/server/html.js +0 -2
  367. package/dist/server/http-error-responses.d.ts +1 -2
  368. package/dist/server/http-error-responses.js +0 -2
  369. package/dist/server/image-optimization.d.ts +1 -2
  370. package/dist/server/image-optimization.js +0 -2
  371. package/dist/server/implicit-tags.d.ts +1 -2
  372. package/dist/server/implicit-tags.js +0 -2
  373. package/dist/server/instrumentation-runtime.d.ts +1 -2
  374. package/dist/server/instrumentation-runtime.js +0 -2
  375. package/dist/server/instrumentation.d.ts +1 -2
  376. package/dist/server/instrumentation.js +0 -2
  377. package/dist/server/isr-cache.d.ts +10 -3
  378. package/dist/server/isr-cache.js +13 -28
  379. package/dist/server/metadata-route-build-data.d.ts +1 -2
  380. package/dist/server/metadata-route-build-data.js +0 -2
  381. package/dist/server/metadata-route-response.d.ts +1 -2
  382. package/dist/server/metadata-route-response.js +0 -2
  383. package/dist/server/metadata-routes.d.ts +1 -2
  384. package/dist/server/metadata-routes.js +0 -2
  385. package/dist/server/middleware-matcher.d.ts +1 -2
  386. package/dist/server/middleware-matcher.js +0 -2
  387. package/dist/server/middleware-request-headers.d.ts +1 -2
  388. package/dist/server/middleware-request-headers.js +0 -2
  389. package/dist/server/middleware-response-headers.d.ts +1 -2
  390. package/dist/server/middleware-response-headers.js +0 -2
  391. package/dist/server/middleware-runtime.d.ts +1 -2
  392. package/dist/server/middleware-runtime.js +14 -5
  393. package/dist/server/middleware.d.ts +2 -3
  394. package/dist/server/middleware.js +0 -2
  395. package/dist/server/navigation-planner.d.ts +16 -2
  396. package/dist/server/navigation-planner.js +1 -3
  397. package/dist/server/navigation-trace.d.ts +1 -2
  398. package/dist/server/navigation-trace.js +0 -2
  399. package/dist/server/next-error-digest.d.ts +1 -2
  400. package/dist/server/next-error-digest.js +0 -2
  401. package/dist/server/normalize-path.d.ts +1 -2
  402. package/dist/server/normalize-path.js +0 -2
  403. package/dist/server/pages-api-route.d.ts +1 -2
  404. package/dist/server/pages-api-route.js +1 -3
  405. package/dist/server/pages-asset-tags.d.ts +66 -0
  406. package/dist/server/pages-asset-tags.js +116 -0
  407. package/dist/server/pages-body-parser-config.d.ts +1 -2
  408. package/dist/server/pages-body-parser-config.js +0 -2
  409. package/dist/server/pages-data-route.d.ts +39 -2
  410. package/dist/server/pages-data-route.js +46 -3
  411. package/dist/server/pages-default-404.d.ts +1 -2
  412. package/dist/server/pages-default-404.js +0 -2
  413. package/dist/server/pages-document-initial-props.d.ts +1 -2
  414. package/dist/server/pages-document-initial-props.js +0 -2
  415. package/dist/server/pages-get-initial-props.d.ts +17 -0
  416. package/dist/server/pages-get-initial-props.js +50 -0
  417. package/dist/server/pages-i18n.d.ts +1 -2
  418. package/dist/server/pages-i18n.js +0 -2
  419. package/dist/server/pages-media-type.d.ts +1 -2
  420. package/dist/server/pages-media-type.js +1 -2
  421. package/dist/server/pages-node-compat.d.ts +9 -2
  422. package/dist/server/pages-node-compat.js +34 -3
  423. package/dist/server/pages-page-data.d.ts +7 -3
  424. package/dist/server/pages-page-data.js +75 -33
  425. package/dist/server/pages-page-handler.d.ts +90 -0
  426. package/dist/server/pages-page-handler.js +335 -0
  427. package/dist/server/pages-page-method.d.ts +1 -2
  428. package/dist/server/pages-page-method.js +0 -2
  429. package/dist/server/pages-page-response.d.ts +1 -2
  430. package/dist/server/pages-page-response.js +8 -4
  431. package/dist/server/pages-serializable-props.d.ts +1 -2
  432. package/dist/server/pages-serializable-props.js +0 -2
  433. package/dist/server/pregenerated-concrete-paths.d.ts +32 -0
  434. package/dist/server/pregenerated-concrete-paths.js +78 -0
  435. package/dist/server/prerender-route-params.d.ts +13 -3
  436. package/dist/server/prerender-route-params.js +30 -11
  437. package/dist/server/prerender-work-unit-setup.d.ts +1 -2
  438. package/dist/server/prerender-work-unit-setup.js +0 -2
  439. package/dist/server/prod-server.d.ts +2 -4
  440. package/dist/server/prod-server.js +0 -2
  441. package/dist/server/proxy-trust.d.ts +1 -2
  442. package/dist/server/proxy-trust.js +0 -2
  443. package/dist/server/request-log.d.ts +1 -2
  444. package/dist/server/request-log.js +0 -2
  445. package/dist/server/request-pipeline.d.ts +14 -2
  446. package/dist/server/request-pipeline.js +42 -3
  447. package/dist/server/rsc-stream-hints.d.ts +1 -2
  448. package/dist/server/rsc-stream-hints.js +0 -2
  449. package/dist/server/seed-cache.d.ts +6 -2
  450. package/dist/server/seed-cache.js +10 -8
  451. package/dist/server/server-action-not-found.d.ts +1 -2
  452. package/dist/server/server-action-not-found.js +0 -2
  453. package/dist/server/server-globals.d.ts +1 -2
  454. package/dist/server/server-globals.js +0 -2
  455. package/dist/server/skip-cache-proof.d.ts +1 -2
  456. package/dist/server/skip-cache-proof.js +0 -2
  457. package/dist/server/socket-error-backstop.d.ts +1 -2
  458. package/dist/server/socket-error-backstop.js +0 -2
  459. package/dist/server/static-file-cache.d.ts +1 -2
  460. package/dist/server/static-file-cache.js +0 -2
  461. package/dist/server/static-layout-client-reuse-proof.d.ts +1 -2
  462. package/dist/server/static-layout-client-reuse-proof.js +0 -2
  463. package/dist/server/streaming-metadata.d.ts +1 -2
  464. package/dist/server/streaming-metadata.js +0 -2
  465. package/dist/server/worker-utils.d.ts +1 -2
  466. package/dist/server/worker-utils.js +3 -6
  467. package/dist/shims/amp.d.ts +1 -2
  468. package/dist/shims/amp.js +0 -2
  469. package/dist/shims/app-router-scroll-state.d.ts +1 -2
  470. package/dist/shims/app-router-scroll-state.js +0 -2
  471. package/dist/shims/app-router-scroll.d.ts +3 -5
  472. package/dist/shims/app-router-scroll.js +0 -2
  473. package/dist/shims/app.d.ts +1 -2
  474. package/dist/shims/app.js +0 -2
  475. package/dist/shims/before-interactive-context.d.ts +1 -2
  476. package/dist/shims/before-interactive-context.js +0 -2
  477. package/dist/shims/cache-for-request.d.ts +1 -2
  478. package/dist/shims/cache-for-request.js +0 -2
  479. package/dist/shims/cache-runtime.d.ts +20 -5
  480. package/dist/shims/cache-runtime.js +35 -30
  481. package/dist/shims/cache.d.ts +48 -7
  482. package/dist/shims/cache.js +79 -20
  483. package/dist/shims/cdn-cache.d.ts +125 -0
  484. package/dist/shims/cdn-cache.js +100 -0
  485. package/dist/shims/client-hook-error.d.ts +1 -2
  486. package/dist/shims/client-hook-error.js +0 -2
  487. package/dist/shims/client-locale.d.ts +1 -2
  488. package/dist/shims/client-locale.js +1 -3
  489. package/dist/shims/compat-router.d.ts +1 -2
  490. package/dist/shims/compat-router.js +0 -2
  491. package/dist/shims/config.d.ts +1 -2
  492. package/dist/shims/config.js +0 -2
  493. package/dist/shims/constants.d.ts +1 -2
  494. package/dist/shims/constants.js +0 -2
  495. package/dist/shims/default-global-error.d.ts +3 -4
  496. package/dist/shims/default-global-error.js +0 -2
  497. package/dist/shims/default-not-found.d.ts +1 -2
  498. package/dist/shims/default-not-found.js +0 -2
  499. package/dist/shims/document.d.ts +5 -7
  500. package/dist/shims/document.js +0 -2
  501. package/dist/shims/dynamic.d.ts +1 -2
  502. package/dist/shims/dynamic.js +0 -2
  503. package/dist/shims/error-boundary.d.ts +16 -12
  504. package/dist/shims/error-boundary.js +35 -2
  505. package/dist/shims/error.d.ts +1 -2
  506. package/dist/shims/error.js +0 -2
  507. package/dist/shims/fetch-cache.d.ts +1 -2
  508. package/dist/shims/fetch-cache.js +2 -4
  509. package/dist/shims/font-google-base.d.ts +1 -2
  510. package/dist/shims/font-google-base.js +1 -13
  511. package/dist/shims/font-local.d.ts +1 -2
  512. package/dist/shims/font-local.js +1 -15
  513. package/dist/shims/font-utils.d.ts +7 -2
  514. package/dist/shims/font-utils.js +13 -3
  515. package/dist/shims/form.d.ts +12 -5
  516. package/dist/shims/form.js +98 -21
  517. package/dist/shims/hash-scroll.d.ts +1 -2
  518. package/dist/shims/hash-scroll.js +0 -2
  519. package/dist/shims/head-state.d.ts +1 -2
  520. package/dist/shims/head-state.js +0 -2
  521. package/dist/shims/head.d.ts +1 -2
  522. package/dist/shims/head.js +0 -2
  523. package/dist/shims/headers.d.ts +9 -2
  524. package/dist/shims/headers.js +13 -3
  525. package/dist/shims/i18n-context.d.ts +1 -2
  526. package/dist/shims/i18n-context.js +0 -2
  527. package/dist/shims/i18n-state.d.ts +1 -2
  528. package/dist/shims/i18n-state.js +0 -2
  529. package/dist/shims/image-config.d.ts +1 -2
  530. package/dist/shims/image-config.js +0 -2
  531. package/dist/shims/image.d.ts +1 -2
  532. package/dist/shims/image.js +1 -3
  533. package/dist/shims/internal/als-registry.d.ts +1 -2
  534. package/dist/shims/internal/als-registry.js +0 -2
  535. package/dist/shims/internal/api-utils.d.ts +1 -2
  536. package/dist/shims/internal/app-route-detection.d.ts +1 -2
  537. package/dist/shims/internal/app-route-detection.js +0 -2
  538. package/dist/shims/internal/app-router-context.d.ts +1 -2
  539. package/dist/shims/internal/app-router-context.js +0 -2
  540. package/dist/shims/internal/cookie-serialize.d.ts +1 -2
  541. package/dist/shims/internal/cookie-serialize.js +0 -2
  542. package/dist/shims/internal/make-hanging-promise.d.ts +1 -2
  543. package/dist/shims/internal/make-hanging-promise.js +0 -2
  544. package/dist/shims/internal/pages-data-fetch-dedup.d.ts +1 -2
  545. package/dist/shims/internal/pages-data-fetch-dedup.js +0 -2
  546. package/dist/shims/internal/pages-data-target.d.ts +1 -2
  547. package/dist/shims/internal/pages-data-target.js +0 -2
  548. package/dist/shims/internal/pages-data-url.d.ts +1 -2
  549. package/dist/shims/internal/pages-data-url.js +0 -2
  550. package/dist/shims/internal/parse-cookie-header.d.ts +1 -2
  551. package/dist/shims/internal/parse-cookie-header.js +0 -2
  552. package/dist/shims/internal/router-context.d.ts +2 -4
  553. package/dist/shims/internal/router-context.js +0 -2
  554. package/dist/shims/internal/utils.d.ts +1 -2
  555. package/dist/shims/internal/utils.js +0 -2
  556. package/dist/shims/internal/work-unit-async-storage.d.ts +1 -2
  557. package/dist/shims/internal/work-unit-async-storage.js +0 -2
  558. package/dist/shims/layout-segment-context.d.ts +2 -4
  559. package/dist/shims/layout-segment-context.js +0 -2
  560. package/dist/shims/legacy-image.d.ts +1 -2
  561. package/dist/shims/legacy-image.js +0 -2
  562. package/dist/shims/link-prefetch.d.ts +1 -2
  563. package/dist/shims/link-prefetch.js +0 -2
  564. package/dist/shims/link.d.ts +2 -2
  565. package/dist/shims/link.js +20 -14
  566. package/dist/shims/metadata.d.ts +4 -5
  567. package/dist/shims/metadata.js +1 -3
  568. package/dist/shims/navigation-state.d.ts +1 -2
  569. package/dist/shims/navigation-state.js +0 -2
  570. package/dist/shims/navigation.d.ts +23 -7
  571. package/dist/shims/navigation.js +188 -39
  572. package/dist/shims/navigation.react-server.d.ts +1 -2
  573. package/dist/shims/navigation.react-server.js +0 -2
  574. package/dist/shims/offline.d.ts +1 -2
  575. package/dist/shims/offline.js +0 -2
  576. package/dist/shims/og.d.ts +1 -2
  577. package/dist/shims/og.js +2 -4
  578. package/dist/shims/pages-router-runtime.d.ts +7 -2
  579. package/dist/shims/pages-router-runtime.js +11 -3
  580. package/dist/shims/ppr-fallback-shell.d.ts +29 -0
  581. package/dist/shims/ppr-fallback-shell.js +149 -0
  582. package/dist/shims/readonly-url-search-params.d.ts +1 -2
  583. package/dist/shims/readonly-url-search-params.js +0 -2
  584. package/dist/shims/request-context.d.ts +9 -5
  585. package/dist/shims/request-context.js +0 -2
  586. package/dist/shims/request-state-types.d.ts +1 -1
  587. package/dist/shims/root-params.d.ts +1 -2
  588. package/dist/shims/root-params.js +0 -2
  589. package/dist/shims/router-state.d.ts +1 -2
  590. package/dist/shims/router-state.js +0 -2
  591. package/dist/shims/router.d.ts +1 -2
  592. package/dist/shims/router.js +135 -20
  593. package/dist/shims/script-nonce-context.d.ts +1 -2
  594. package/dist/shims/script-nonce-context.js +0 -2
  595. package/dist/shims/script.d.ts +1 -2
  596. package/dist/shims/script.js +0 -2
  597. package/dist/shims/server.d.ts +1 -2
  598. package/dist/shims/server.js +0 -2
  599. package/dist/shims/slot.d.ts +11 -4
  600. package/dist/shims/slot.js +121 -9
  601. package/dist/shims/thenable-params.d.ts +2 -2
  602. package/dist/shims/thenable-params.js +107 -12
  603. package/dist/shims/unified-request-context.d.ts +1 -2
  604. package/dist/shims/unified-request-context.js +0 -2
  605. package/dist/shims/unrecognized-action-error.d.ts +1 -2
  606. package/dist/shims/unrecognized-action-error.js +0 -2
  607. package/dist/shims/url-safety.d.ts +1 -2
  608. package/dist/shims/url-safety.js +0 -2
  609. package/dist/shims/url-utils.d.ts +1 -2
  610. package/dist/shims/url-utils.js +0 -2
  611. package/dist/shims/use-merged-ref.d.ts +1 -2
  612. package/dist/shims/use-merged-ref.js +0 -2
  613. package/dist/shims/web-vitals.d.ts +1 -2
  614. package/dist/shims/web-vitals.js +0 -2
  615. package/dist/typegen.d.ts +1 -2
  616. package/dist/typegen.js +2 -9
  617. package/dist/utils/asset-prefix.d.ts +1 -2
  618. package/dist/utils/asset-prefix.js +0 -2
  619. package/dist/utils/base-path.d.ts +1 -2
  620. package/dist/utils/base-path.js +0 -2
  621. package/dist/utils/cache-control-metadata.d.ts +1 -4
  622. package/dist/utils/cache-control-metadata.js +1 -3
  623. package/dist/utils/client-build-manifest.d.ts +1 -2
  624. package/dist/utils/client-build-manifest.js +0 -2
  625. package/dist/utils/compare.d.ts +4 -0
  626. package/dist/utils/compare.js +8 -0
  627. package/dist/utils/dev-error-recovery-event.d.ts +4 -0
  628. package/dist/utils/dev-error-recovery-event.js +4 -0
  629. package/dist/utils/domain-locale.d.ts +1 -2
  630. package/dist/utils/domain-locale.js +2 -4
  631. package/dist/utils/encode-cache-tag.d.ts +1 -2
  632. package/dist/utils/encode-cache-tag.js +0 -2
  633. package/dist/utils/error-cause.d.ts +1 -2
  634. package/dist/utils/error-cause.js +0 -2
  635. package/dist/utils/hash.d.ts +1 -2
  636. package/dist/utils/hash.js +0 -2
  637. package/dist/utils/html-limited-bots.d.ts +1 -2
  638. package/dist/utils/html-limited-bots.js +0 -2
  639. package/dist/utils/lazy-chunks.d.ts +1 -2
  640. package/dist/utils/lazy-chunks.js +0 -2
  641. package/dist/utils/manifest-paths.d.ts +8 -3
  642. package/dist/utils/manifest-paths.js +15 -3
  643. package/dist/utils/mdx-scan.d.ts +1 -2
  644. package/dist/utils/mdx-scan.js +0 -2
  645. package/dist/utils/navigation-signal.d.ts +1 -2
  646. package/dist/utils/navigation-signal.js +0 -2
  647. package/dist/utils/number.d.ts +4 -0
  648. package/dist/utils/number.js +6 -0
  649. package/dist/utils/path.d.ts +4 -2
  650. package/dist/utils/path.js +5 -3
  651. package/dist/utils/prerender-output-paths.d.ts +1 -2
  652. package/dist/utils/prerender-output-paths.js +0 -2
  653. package/dist/utils/project.d.ts +1 -2
  654. package/dist/utils/project.js +0 -2
  655. package/dist/utils/promise.d.ts +4 -0
  656. package/dist/utils/promise.js +6 -0
  657. package/dist/utils/public-routes.d.ts +1 -2
  658. package/dist/utils/public-routes.js +0 -2
  659. package/dist/utils/query.d.ts +1 -2
  660. package/dist/utils/query.js +0 -2
  661. package/dist/utils/record.d.ts +1 -2
  662. package/dist/utils/record.js +0 -2
  663. package/dist/utils/regex.d.ts +4 -0
  664. package/dist/utils/regex.js +6 -0
  665. package/dist/utils/safe-json-file.d.ts +1 -2
  666. package/dist/utils/safe-json-file.js +0 -2
  667. package/dist/utils/sorted-array.d.ts +1 -2
  668. package/dist/utils/sorted-array.js +0 -2
  669. package/dist/utils/text-stream.d.ts +1 -2
  670. package/dist/utils/text-stream.js +0 -2
  671. package/dist/utils/vinext-root.d.ts +1 -2
  672. package/dist/utils/vinext-root.js +0 -2
  673. package/dist/utils/vite-version.d.ts +1 -2
  674. package/dist/utils/vite-version.js +0 -2
  675. package/package.json +19 -6
  676. package/dist/build/clean-output.js.map +0 -1
  677. package/dist/build/client-build-config.js.map +0 -1
  678. package/dist/build/google-fonts/build-url.js.map +0 -1
  679. package/dist/build/google-fonts/fallback-metrics-data.js.map +0 -1
  680. package/dist/build/google-fonts/fallback-metrics.js.map +0 -1
  681. package/dist/build/google-fonts/font-data.js.map +0 -1
  682. package/dist/build/google-fonts/font-metadata.js.map +0 -1
  683. package/dist/build/google-fonts/get-axes.js.map +0 -1
  684. package/dist/build/google-fonts/sort-variants.js.map +0 -1
  685. package/dist/build/google-fonts/validate.js.map +0 -1
  686. package/dist/build/inline-css.js.map +0 -1
  687. package/dist/build/layout-classification.js.map +0 -1
  688. package/dist/build/nitro-route-rules.js.map +0 -1
  689. package/dist/build/precompress.js.map +0 -1
  690. package/dist/build/prerender.js.map +0 -1
  691. package/dist/build/report.js.map +0 -1
  692. package/dist/build/route-classification-injector.js.map +0 -1
  693. package/dist/build/route-classification-manifest.js.map +0 -1
  694. package/dist/build/run-prerender.js.map +0 -1
  695. package/dist/build/server-manifest.js.map +0 -1
  696. package/dist/build/ssr-manifest.js.map +0 -1
  697. package/dist/build/standalone.js.map +0 -1
  698. package/dist/build/static-export.js.map +0 -1
  699. package/dist/check.js.map +0 -1
  700. package/dist/cli-args.js.map +0 -1
  701. package/dist/cli.js.map +0 -1
  702. package/dist/client/instrumentation-client-inject.js.map +0 -1
  703. package/dist/client/instrumentation-client-state.js.map +0 -1
  704. package/dist/client/instrumentation-client.js.map +0 -1
  705. package/dist/client/navigation-runtime.js.map +0 -1
  706. package/dist/client/pages-router-link-navigation.js.map +0 -1
  707. package/dist/client/validate-module-path.js.map +0 -1
  708. package/dist/client/vinext-next-data.js.map +0 -1
  709. package/dist/client/window-next.js.map +0 -1
  710. package/dist/cloudflare/kv-cache-handler.js.map +0 -1
  711. package/dist/cloudflare/tpr.js.map +0 -1
  712. package/dist/config/config-matchers.js.map +0 -1
  713. package/dist/config/dotenv.js.map +0 -1
  714. package/dist/config/next-config.js.map +0 -1
  715. package/dist/config/tsconfig-paths.js.map +0 -1
  716. package/dist/deploy.js.map +0 -1
  717. package/dist/entries/app-browser-entry.js.map +0 -1
  718. package/dist/entries/app-rsc-entry.js.map +0 -1
  719. package/dist/entries/app-rsc-manifest.js.map +0 -1
  720. package/dist/entries/app-ssr-entry.js.map +0 -1
  721. package/dist/entries/pages-client-entry.js.map +0 -1
  722. package/dist/entries/pages-entry-helpers.js.map +0 -1
  723. package/dist/entries/pages-server-entry.js.map +0 -1
  724. package/dist/entries/runtime-entry-module.js.map +0 -1
  725. package/dist/index.js.map +0 -1
  726. package/dist/init.js.map +0 -1
  727. package/dist/plugins/async-hooks-stub.js.map +0 -1
  728. package/dist/plugins/client-reference-dedup.js.map +0 -1
  729. package/dist/plugins/css-data-url.js.map +0 -1
  730. package/dist/plugins/fonts.js.map +0 -1
  731. package/dist/plugins/import-meta-url.js.map +0 -1
  732. package/dist/plugins/instrumentation-client.js.map +0 -1
  733. package/dist/plugins/middleware-server-only.js.map +0 -1
  734. package/dist/plugins/og-assets.js.map +0 -1
  735. package/dist/plugins/optimize-imports.js.map +0 -1
  736. package/dist/plugins/postcss.js.map +0 -1
  737. package/dist/plugins/remove-console.js.map +0 -1
  738. package/dist/plugins/rsc-client-reference-loaders.js.map +0 -1
  739. package/dist/plugins/rsc-client-shim-excludes.js.map +0 -1
  740. package/dist/plugins/sass.js.map +0 -1
  741. package/dist/plugins/server-externals-manifest.js.map +0 -1
  742. package/dist/plugins/strip-server-exports.js.map +0 -1
  743. package/dist/routing/app-route-graph.js.map +0 -1
  744. package/dist/routing/app-router.js.map +0 -1
  745. package/dist/routing/file-matcher.js.map +0 -1
  746. package/dist/routing/pages-router.js.map +0 -1
  747. package/dist/routing/route-matching.js.map +0 -1
  748. package/dist/routing/route-pattern.js.map +0 -1
  749. package/dist/routing/route-trie.js.map +0 -1
  750. package/dist/routing/route-validation.js.map +0 -1
  751. package/dist/routing/utils.js.map +0 -1
  752. package/dist/server/api-handler.js.map +0 -1
  753. package/dist/server/app-browser-action-result.js.map +0 -1
  754. package/dist/server/app-browser-entry.js.map +0 -1
  755. package/dist/server/app-browser-error.js.map +0 -1
  756. package/dist/server/app-browser-hydration.js.map +0 -1
  757. package/dist/server/app-browser-interception-context.js.map +0 -1
  758. package/dist/server/app-browser-mpa-navigation.js.map +0 -1
  759. package/dist/server/app-browser-navigation-controller.js.map +0 -1
  760. package/dist/server/app-browser-popstate.js.map +0 -1
  761. package/dist/server/app-browser-rsc-redirect.js.map +0 -1
  762. package/dist/server/app-browser-state.js.map +0 -1
  763. package/dist/server/app-browser-stream.js.map +0 -1
  764. package/dist/server/app-browser-visible-commit.js.map +0 -1
  765. package/dist/server/app-client-reference-preloader.js.map +0 -1
  766. package/dist/server/app-elements-wire.js.map +0 -1
  767. package/dist/server/app-elements.js.map +0 -1
  768. package/dist/server/app-fallback-renderer.js.map +0 -1
  769. package/dist/server/app-history-state.js.map +0 -1
  770. package/dist/server/app-hook-warning-suppression.js.map +0 -1
  771. package/dist/server/app-inline-css-client.js.map +0 -1
  772. package/dist/server/app-interception-context-header.js.map +0 -1
  773. package/dist/server/app-layout-param-observation.js.map +0 -1
  774. package/dist/server/app-middleware.js.map +0 -1
  775. package/dist/server/app-mounted-slots-header.js.map +0 -1
  776. package/dist/server/app-optimistic-routing.js.map +0 -1
  777. package/dist/server/app-page-boundary-render.js.map +0 -1
  778. package/dist/server/app-page-boundary.js.map +0 -1
  779. package/dist/server/app-page-cache.js.map +0 -1
  780. package/dist/server/app-page-dispatch.js.map +0 -1
  781. package/dist/server/app-page-element-builder.js.map +0 -1
  782. package/dist/server/app-page-execution.js.map +0 -1
  783. package/dist/server/app-page-head.js.map +0 -1
  784. package/dist/server/app-page-method.js.map +0 -1
  785. package/dist/server/app-page-params.js.map +0 -1
  786. package/dist/server/app-page-probe.js.map +0 -1
  787. package/dist/server/app-page-render-identity.js.map +0 -1
  788. package/dist/server/app-page-render-observation.js.map +0 -1
  789. package/dist/server/app-page-render.js.map +0 -1
  790. package/dist/server/app-page-request.js.map +0 -1
  791. package/dist/server/app-page-response.js.map +0 -1
  792. package/dist/server/app-page-route-wiring.js.map +0 -1
  793. package/dist/server/app-page-segment-state.js.map +0 -1
  794. package/dist/server/app-page-stream.js.map +0 -1
  795. package/dist/server/app-post-middleware-context.js.map +0 -1
  796. package/dist/server/app-prerender-endpoints.js.map +0 -1
  797. package/dist/server/app-prerender-static-params.js.map +0 -1
  798. package/dist/server/app-render-dependency.js.map +0 -1
  799. package/dist/server/app-request-context.js.map +0 -1
  800. package/dist/server/app-route-handler-cache.js.map +0 -1
  801. package/dist/server/app-route-handler-dispatch.js.map +0 -1
  802. package/dist/server/app-route-handler-execution.js.map +0 -1
  803. package/dist/server/app-route-handler-policy.js.map +0 -1
  804. package/dist/server/app-route-handler-response.js.map +0 -1
  805. package/dist/server/app-route-handler-runtime.js.map +0 -1
  806. package/dist/server/app-router-entry.js.map +0 -1
  807. package/dist/server/app-rsc-cache-busting.js.map +0 -1
  808. package/dist/server/app-rsc-embedded-chunks.js.map +0 -1
  809. package/dist/server/app-rsc-error-handler.js.map +0 -1
  810. package/dist/server/app-rsc-errors.js.map +0 -1
  811. package/dist/server/app-rsc-handler.js.map +0 -1
  812. package/dist/server/app-rsc-render-mode.js.map +0 -1
  813. package/dist/server/app-rsc-request-normalization.js.map +0 -1
  814. package/dist/server/app-rsc-response-finalizer.js.map +0 -1
  815. package/dist/server/app-rsc-route-matching.js.map +0 -1
  816. package/dist/server/app-segment-config.js.map +0 -1
  817. package/dist/server/app-server-action-execution.js.map +0 -1
  818. package/dist/server/app-ssr-entry.js.map +0 -1
  819. package/dist/server/app-ssr-error-meta.js.map +0 -1
  820. package/dist/server/app-ssr-stream.js.map +0 -1
  821. package/dist/server/app-static-generation.js.map +0 -1
  822. package/dist/server/artifact-compatibility.js.map +0 -1
  823. package/dist/server/cache-control.js.map +0 -1
  824. package/dist/server/cache-headers.js.map +0 -1
  825. package/dist/server/cache-proof.js.map +0 -1
  826. package/dist/server/client-reuse-manifest.js.map +0 -1
  827. package/dist/server/client-trace-metadata.js.map +0 -1
  828. package/dist/server/cookie-utils.js.map +0 -1
  829. package/dist/server/csp.js.map +0 -1
  830. package/dist/server/default-global-error-module.js.map +0 -1
  831. package/dist/server/default-not-found-module.js.map +0 -1
  832. package/dist/server/dev-error-overlay-store.js.map +0 -1
  833. package/dist/server/dev-error-overlay.js.map +0 -1
  834. package/dist/server/dev-lockfile.js.map +0 -1
  835. package/dist/server/dev-module-runner.js.map +0 -1
  836. package/dist/server/dev-origin-check.js.map +0 -1
  837. package/dist/server/dev-route-files.js.map +0 -1
  838. package/dist/server/dev-server.js.map +0 -1
  839. package/dist/server/document-initial-head.js.map +0 -1
  840. package/dist/server/edge-api-runtime.js.map +0 -1
  841. package/dist/server/file-based-metadata.js.map +0 -1
  842. package/dist/server/headers.js.map +0 -1
  843. package/dist/server/html.js.map +0 -1
  844. package/dist/server/http-error-responses.js.map +0 -1
  845. package/dist/server/image-optimization.js.map +0 -1
  846. package/dist/server/implicit-tags.js.map +0 -1
  847. package/dist/server/instrumentation-runtime.js.map +0 -1
  848. package/dist/server/instrumentation.js.map +0 -1
  849. package/dist/server/isr-cache.js.map +0 -1
  850. package/dist/server/metadata-route-build-data.js.map +0 -1
  851. package/dist/server/metadata-route-response.js.map +0 -1
  852. package/dist/server/metadata-routes.js.map +0 -1
  853. package/dist/server/middleware-matcher.js.map +0 -1
  854. package/dist/server/middleware-request-headers.js.map +0 -1
  855. package/dist/server/middleware-response-headers.js.map +0 -1
  856. package/dist/server/middleware-runtime.js.map +0 -1
  857. package/dist/server/middleware.js.map +0 -1
  858. package/dist/server/navigation-planner.js.map +0 -1
  859. package/dist/server/navigation-trace.js.map +0 -1
  860. package/dist/server/next-error-digest.js.map +0 -1
  861. package/dist/server/normalize-path.js.map +0 -1
  862. package/dist/server/pages-api-route.js.map +0 -1
  863. package/dist/server/pages-body-parser-config.js.map +0 -1
  864. package/dist/server/pages-data-route.js.map +0 -1
  865. package/dist/server/pages-default-404.js.map +0 -1
  866. package/dist/server/pages-document-initial-props.js.map +0 -1
  867. package/dist/server/pages-i18n.js.map +0 -1
  868. package/dist/server/pages-media-type.js.map +0 -1
  869. package/dist/server/pages-node-compat.js.map +0 -1
  870. package/dist/server/pages-page-data.js.map +0 -1
  871. package/dist/server/pages-page-method.js.map +0 -1
  872. package/dist/server/pages-page-response.js.map +0 -1
  873. package/dist/server/pages-serializable-props.js.map +0 -1
  874. package/dist/server/prerender-route-params.js.map +0 -1
  875. package/dist/server/prerender-work-unit-setup.js.map +0 -1
  876. package/dist/server/prod-server.js.map +0 -1
  877. package/dist/server/proxy-trust.js.map +0 -1
  878. package/dist/server/request-log.js.map +0 -1
  879. package/dist/server/request-pipeline.js.map +0 -1
  880. package/dist/server/rsc-stream-hints.js.map +0 -1
  881. package/dist/server/seed-cache.js.map +0 -1
  882. package/dist/server/server-action-not-found.js.map +0 -1
  883. package/dist/server/server-globals.js.map +0 -1
  884. package/dist/server/skip-cache-proof.js.map +0 -1
  885. package/dist/server/socket-error-backstop.js.map +0 -1
  886. package/dist/server/static-file-cache.js.map +0 -1
  887. package/dist/server/static-layout-client-reuse-proof.js.map +0 -1
  888. package/dist/server/streaming-metadata.js.map +0 -1
  889. package/dist/server/worker-utils.js.map +0 -1
  890. package/dist/shims/amp.js.map +0 -1
  891. package/dist/shims/app-router-scroll-state.js.map +0 -1
  892. package/dist/shims/app-router-scroll.js.map +0 -1
  893. package/dist/shims/app.js.map +0 -1
  894. package/dist/shims/before-interactive-context.js.map +0 -1
  895. package/dist/shims/cache-for-request.js.map +0 -1
  896. package/dist/shims/cache-runtime.js.map +0 -1
  897. package/dist/shims/cache.js.map +0 -1
  898. package/dist/shims/client-hook-error.js.map +0 -1
  899. package/dist/shims/client-locale.js.map +0 -1
  900. package/dist/shims/compat-router.js.map +0 -1
  901. package/dist/shims/config.js.map +0 -1
  902. package/dist/shims/constants.js.map +0 -1
  903. package/dist/shims/default-global-error.js.map +0 -1
  904. package/dist/shims/default-not-found.js.map +0 -1
  905. package/dist/shims/document.js.map +0 -1
  906. package/dist/shims/dynamic.js.map +0 -1
  907. package/dist/shims/error-boundary.js.map +0 -1
  908. package/dist/shims/error.js.map +0 -1
  909. package/dist/shims/fetch-cache.js.map +0 -1
  910. package/dist/shims/font-google-base.js.map +0 -1
  911. package/dist/shims/font-local.js.map +0 -1
  912. package/dist/shims/font-utils.js.map +0 -1
  913. package/dist/shims/form.js.map +0 -1
  914. package/dist/shims/hash-scroll.js.map +0 -1
  915. package/dist/shims/head-state.js.map +0 -1
  916. package/dist/shims/head.js.map +0 -1
  917. package/dist/shims/headers.js.map +0 -1
  918. package/dist/shims/i18n-context.js.map +0 -1
  919. package/dist/shims/i18n-state.js.map +0 -1
  920. package/dist/shims/image-config.js.map +0 -1
  921. package/dist/shims/image.js.map +0 -1
  922. package/dist/shims/internal/als-registry.js.map +0 -1
  923. package/dist/shims/internal/app-route-detection.js.map +0 -1
  924. package/dist/shims/internal/app-router-context.js.map +0 -1
  925. package/dist/shims/internal/cookie-serialize.js.map +0 -1
  926. package/dist/shims/internal/make-hanging-promise.js.map +0 -1
  927. package/dist/shims/internal/pages-data-fetch-dedup.js.map +0 -1
  928. package/dist/shims/internal/pages-data-target.js.map +0 -1
  929. package/dist/shims/internal/pages-data-url.js.map +0 -1
  930. package/dist/shims/internal/parse-cookie-header.js.map +0 -1
  931. package/dist/shims/internal/router-context.js.map +0 -1
  932. package/dist/shims/internal/utils.js.map +0 -1
  933. package/dist/shims/internal/work-unit-async-storage.js.map +0 -1
  934. package/dist/shims/layout-segment-context.js.map +0 -1
  935. package/dist/shims/legacy-image.js.map +0 -1
  936. package/dist/shims/link-prefetch.js.map +0 -1
  937. package/dist/shims/link.js.map +0 -1
  938. package/dist/shims/metadata.js.map +0 -1
  939. package/dist/shims/navigation-state.js.map +0 -1
  940. package/dist/shims/navigation.js.map +0 -1
  941. package/dist/shims/navigation.react-server.js.map +0 -1
  942. package/dist/shims/offline.js.map +0 -1
  943. package/dist/shims/og.js.map +0 -1
  944. package/dist/shims/pages-router-runtime.js.map +0 -1
  945. package/dist/shims/readonly-url-search-params.js.map +0 -1
  946. package/dist/shims/request-context.js.map +0 -1
  947. package/dist/shims/root-params.js.map +0 -1
  948. package/dist/shims/router-state.js.map +0 -1
  949. package/dist/shims/router.js.map +0 -1
  950. package/dist/shims/script-nonce-context.js.map +0 -1
  951. package/dist/shims/script.js.map +0 -1
  952. package/dist/shims/server.js.map +0 -1
  953. package/dist/shims/slot.js.map +0 -1
  954. package/dist/shims/thenable-params.js.map +0 -1
  955. package/dist/shims/unified-request-context.js.map +0 -1
  956. package/dist/shims/unrecognized-action-error.js.map +0 -1
  957. package/dist/shims/url-safety.js.map +0 -1
  958. package/dist/shims/url-utils.js.map +0 -1
  959. package/dist/shims/use-merged-ref.js.map +0 -1
  960. package/dist/shims/web-vitals.js.map +0 -1
  961. package/dist/typegen.js.map +0 -1
  962. package/dist/utils/asset-prefix.js.map +0 -1
  963. package/dist/utils/base-path.js.map +0 -1
  964. package/dist/utils/cache-control-metadata.js.map +0 -1
  965. package/dist/utils/client-build-manifest.js.map +0 -1
  966. package/dist/utils/domain-locale.js.map +0 -1
  967. package/dist/utils/encode-cache-tag.js.map +0 -1
  968. package/dist/utils/error-cause.js.map +0 -1
  969. package/dist/utils/hash.js.map +0 -1
  970. package/dist/utils/html-limited-bots.js.map +0 -1
  971. package/dist/utils/lazy-chunks.js.map +0 -1
  972. package/dist/utils/manifest-paths.js.map +0 -1
  973. package/dist/utils/mdx-scan.js.map +0 -1
  974. package/dist/utils/navigation-signal.js.map +0 -1
  975. package/dist/utils/path.js.map +0 -1
  976. package/dist/utils/prerender-output-paths.js.map +0 -1
  977. package/dist/utils/project.js.map +0 -1
  978. package/dist/utils/public-routes.js.map +0 -1
  979. package/dist/utils/query.js.map +0 -1
  980. package/dist/utils/record.js.map +0 -1
  981. package/dist/utils/safe-json-file.js.map +0 -1
  982. package/dist/utils/sorted-array.js.map +0 -1
  983. package/dist/utils/text-stream.js.map +0 -1
  984. package/dist/utils/vinext-root.js.map +0 -1
  985. package/dist/utils/vite-version.js.map +0 -1
@@ -61,6 +61,7 @@ declare function resolveLinkPrefetchMode(prefetchProp: LinkProps["prefetch"], is
61
61
  declare function canAutoPrefetchFullAppRoute(href: string): boolean;
62
62
  declare function resolveAutoAppRoutePrefetch(href: string): {
63
63
  cacheForNavigation: boolean;
64
+ prefetchShellFirst: boolean;
64
65
  shouldPrefetch: boolean;
65
66
  };
66
67
  declare const Link: React.ForwardRefExoticComponent<{
@@ -98,5 +99,4 @@ declare const Link: React.ForwardRefExoticComponent<{
98
99
  children?: React.ReactNode;
99
100
  } & Omit<React.AnchorHTMLAttributes<HTMLAnchorElement>, "href"> & React.RefAttributes<HTMLAnchorElement>>;
100
101
  //#endregion
101
- export { canAutoPrefetchFullAppRoute, Link as default, resolveAutoAppRoutePrefetch, resolveLinkPrefetchMode, useLinkStatus };
102
- //# sourceMappingURL=link.d.ts.map
102
+ export { canAutoPrefetchFullAppRoute, Link as default, resolveAutoAppRoutePrefetch, resolveLinkPrefetchMode, useLinkStatus };
@@ -14,7 +14,7 @@ import { appendSearchParamsToUrl, urlQueryToSearchParams } from "../utils/query.
14
14
  import { getCurrentBrowserLocale } from "./client-locale.js";
15
15
  import { getNavigationRuntime, hasAppNavigationRuntime, registerNavigationRuntimeFunctions } from "../client/navigation-runtime.js";
16
16
  import { createRscRequestHeaders, createRscRequestUrl, stripRscCacheBustingSearchParam, stripRscSuffix } from "../server/app-rsc-cache-busting.js";
17
- import { getMountedSlotsHeader, getPrefetchCache, getPrefetchInterceptionContext, getPrefetchedUrls, navigateClientSide, prefetchRscResponse } from "./navigation.js";
17
+ import { getMountedSlotsHeader, getPrefetchCache, getPrefetchInterceptionContext, getPrefetchedUrls, hasPrefetchCacheEntryForNavigation, navigateClientSide, prefetchRscResponse } from "./navigation.js";
18
18
  import { navigatePagesRouterLink } from "../client/pages-router-link-navigation.js";
19
19
  import { getI18nContext } from "./i18n-context.js";
20
20
  import { canLinkIntentPrefetch, canLinkPrefetch, getLinkPrefetchHref } from "./link-prefetch.js";
@@ -115,6 +115,13 @@ function toSameOriginRouteHref(href) {
115
115
  function getLinkPrefetchRouterMode() {
116
116
  return hasAppNavigationRuntime() ? "app" : "pages";
117
117
  }
118
+ function resolveMatchedAutoAppRoutePrefetch(route) {
119
+ return {
120
+ cacheForNavigation: !(route.isDynamic && route.canPrefetchLoadingShell),
121
+ prefetchShellFirst: !route.isDynamic,
122
+ shouldPrefetch: true
123
+ };
124
+ }
118
125
  function canAutoPrefetchFullAppRoute(href) {
119
126
  if (typeof window === "undefined") return false;
120
127
  const routes = window.__VINEXT_LINK_PREFETCH_ROUTES__;
@@ -123,32 +130,33 @@ function canAutoPrefetchFullAppRoute(href) {
123
130
  if (routeHref === null) return false;
124
131
  const match = matchRouteWithTrie(routeHref, routes, linkPrefetchRouteTrieCache);
125
132
  if (!match) return false;
126
- return !match.route.isDynamic;
133
+ return resolveMatchedAutoAppRoutePrefetch(match.route).cacheForNavigation;
127
134
  }
128
135
  function resolveAutoAppRoutePrefetch(href) {
129
136
  if (typeof window === "undefined") return {
130
137
  cacheForNavigation: false,
138
+ prefetchShellFirst: false,
131
139
  shouldPrefetch: false
132
140
  };
133
141
  const routes = window.__VINEXT_LINK_PREFETCH_ROUTES__;
134
142
  if (!routes) return {
135
143
  cacheForNavigation: false,
144
+ prefetchShellFirst: false,
136
145
  shouldPrefetch: false
137
146
  };
138
147
  const routeHref = toSameOriginRouteHref(href);
139
148
  if (routeHref === null) return {
140
149
  cacheForNavigation: false,
150
+ prefetchShellFirst: false,
141
151
  shouldPrefetch: false
142
152
  };
143
153
  const match = matchRouteWithTrie(routeHref, routes, linkPrefetchRouteTrieCache);
144
154
  if (!match) return {
145
155
  cacheForNavigation: false,
156
+ prefetchShellFirst: false,
146
157
  shouldPrefetch: false
147
158
  };
148
- return {
149
- cacheForNavigation: !match.route.isDynamic,
150
- shouldPrefetch: !match.route.isDynamic || match.route.canPrefetchLoadingShell
151
- };
159
+ return resolveMatchedAutoAppRoutePrefetch(match.route);
152
160
  }
153
161
  /**
154
162
  * Prefetch a URL for faster navigation.
@@ -178,6 +186,7 @@ function prefetchUrl(href, mode, priority = "low") {
178
186
  if (hasAppNavigationRuntime()) {
179
187
  const autoPrefetch = mode === "auto" ? resolveAutoAppRoutePrefetch(prefetchHref) : {
180
188
  cacheForNavigation: true,
189
+ prefetchShellFirst: true,
181
190
  shouldPrefetch: true
182
191
  };
183
192
  if (!autoPrefetch.shouldPrefetch) return;
@@ -194,14 +203,13 @@ function prefetchUrl(href, mode, priority = "low") {
194
203
  const cacheKey = AppElementsWire.encodeCacheKey(rscUrl, interceptionContext);
195
204
  const prefetched = getPrefetchedUrls();
196
205
  if (prefetched.has(cacheKey)) {
197
- if (autoPrefetch.cacheForNavigation) {
198
- const existing = getPrefetchCache().get(cacheKey);
199
- if (existing?.cacheForNavigation === false) existing.cacheForNavigation = true;
200
- }
201
- return;
206
+ if (!autoPrefetch.cacheForNavigation) return;
207
+ const existing = getPrefetchCache().get(cacheKey);
208
+ if (existing?.cacheForNavigation === false) existing.cacheForNavigation = true;
202
209
  }
210
+ if (autoPrefetch.cacheForNavigation && hasPrefetchCacheEntryForNavigation(rscUrl, interceptionContext, mountedSlotsHeader)) return;
203
211
  prefetched.add(cacheKey);
204
- prefetchRscResponse(rscUrl, __prefetchInlining && autoPrefetch.cacheForNavigation ? (async () => {
212
+ prefetchRscResponse(rscUrl, __prefetchInlining && autoPrefetch.cacheForNavigation && autoPrefetch.prefetchShellFirst ? (async () => {
205
213
  const shellHeaders = createRscRequestHeaders({
206
214
  interceptionContext,
207
215
  renderMode: APP_RSC_RENDER_MODE_PREFETCH_LOADING_SHELL
@@ -608,5 +616,3 @@ const Link = forwardRef(function Link({ href, as, replace = false, prefetch: pre
608
616
  });
609
617
  //#endregion
610
618
  export { canAutoPrefetchFullAppRoute, Link as default, resolveAutoAppRoutePrefetch, resolveLinkPrefetchMode, useLinkStatus };
611
-
612
- //# sourceMappingURL=link.js.map
@@ -1,4 +1,4 @@
1
- import * as _$react_jsx_runtime0 from "react/jsx-runtime";
1
+ import React from "react";
2
2
 
3
3
  //#region src/shims/metadata.d.ts
4
4
  type Viewport = {
@@ -32,7 +32,7 @@ declare function ViewportHead({
32
32
  viewport
33
33
  }: {
34
34
  viewport: Viewport;
35
- }): _$react_jsx_runtime0.JSX.Element;
35
+ }): React.JSX.Element;
36
36
  type Metadata = {
37
37
  title?: string | {
38
38
  default?: string;
@@ -276,7 +276,6 @@ declare function renderMetadataToHtml(metadata: Metadata, pathname?: string): st
276
276
  declare function MetadataHead({
277
277
  metadata,
278
278
  pathname
279
- }: MetadataHeadProps): _$react_jsx_runtime0.JSX.Element;
279
+ }: MetadataHeadProps): React.JSX.Element;
280
280
  //#endregion
281
- export { DEFAULT_VIEWPORT, Metadata, MetadataHead, MetadataMergeEntry, Viewport, ViewportHead, mergeMetadata, mergeMetadataEntries, mergeViewport, postProcessMetadata, renderMetadataToHtml, resolveModuleMetadata, resolveModuleViewport };
282
- //# sourceMappingURL=metadata.d.ts.map
281
+ export { DEFAULT_VIEWPORT, Metadata, MetadataHead, MetadataMergeEntry, Viewport, ViewportHead, mergeMetadata, mergeMetadataEntries, mergeViewport, postProcessMetadata, renderMetadataToHtml, resolveModuleMetadata, resolveModuleViewport };
@@ -220,7 +220,7 @@ async function resolveModuleMetadata(mod, params = {}, searchParams, parent = Pr
220
220
  params: asyncParams,
221
221
  searchParams: makeThenableParams(searchParams)
222
222
  };
223
- return await mod.generateMetadata(props, parent);
223
+ return await (mod.generateMetadata.length >= 2 ? mod.generateMetadata(props, parent) : mod.generateMetadata(props));
224
224
  }
225
225
  if (mod.metadata && typeof mod.metadata === "object") return mod.metadata;
226
226
  return null;
@@ -800,5 +800,3 @@ function MetadataHead({ metadata, pathname = "/" }) {
800
800
  }
801
801
  //#endregion
802
802
  export { DEFAULT_VIEWPORT, MetadataHead, ViewportHead, mergeMetadata, mergeMetadataEntries, mergeViewport, postProcessMetadata, renderMetadataToHtml, resolveModuleMetadata, resolveModuleViewport };
803
-
804
- //# sourceMappingURL=metadata.js.map
@@ -23,5 +23,4 @@ declare function runWithNavigationContext<T>(fn: () => T | Promise<T>): T | Prom
23
23
  declare function runWithServerInsertedHTMLState<T>(fn: () => Promise<T>): Promise<T>;
24
24
  declare function runWithServerInsertedHTMLState<T>(fn: () => T | Promise<T>): T | Promise<T>;
25
25
  //#endregion
26
- export { NavigationState, runWithNavigationContext, runWithServerInsertedHTMLState };
27
- //# sourceMappingURL=navigation-state.d.ts.map
26
+ export { NavigationState, runWithNavigationContext, runWithServerInsertedHTMLState };
@@ -63,5 +63,3 @@ _registerStateAccessors(_accessors);
63
63
  globalThis[GLOBAL_ACCESSORS_KEY] = _accessors;
64
64
  //#endregion
65
65
  export { runWithNavigationContext, runWithServerInsertedHTMLState };
66
-
67
- //# sourceMappingURL=navigation-state.js.map
@@ -1,4 +1,4 @@
1
- import { AppRouterInstance } from "./internal/app-router-context.js";
1
+ import { NavigateOptions, PrefetchOptions as PrefetchOptions$1 } from "./internal/app-router-context.js";
2
2
  import { ReadonlyURLSearchParams } from "./readonly-url-search-params.js";
3
3
  import { UnrecognizedActionError, unstable_isUnrecognizedActionError } from "./unrecognized-action-error.js";
4
4
  import * as React$1 from "react";
@@ -21,6 +21,8 @@ declare const ServerInsertedHTMLContext: React$1.Context<((callback: () => unkno
21
21
  * Returns null in the RSC environment (createContext unavailable).
22
22
  */
23
23
  declare function getLayoutSegmentContext(): React$1.Context<SegmentMap> | null;
24
+ declare function getBfcacheIdMapContext(): React$1.Context<Readonly<Record<string, string>> | null> | null;
25
+ declare function getBfcacheSegmentIdContext(): React$1.Context<string | null> | null;
24
26
  type NavigationContext = {
25
27
  pathname: string;
26
28
  searchParams: URLSearchParams;
@@ -59,6 +61,8 @@ type CachedRscResponse = {
59
61
  compatibilityIdHeader?: string | null;
60
62
  buffer: ArrayBuffer;
61
63
  contentType: string;
64
+ dynamicStaleTimeSeconds?: number;
65
+ expiresAt?: number;
62
66
  mountedSlotsHeader?: string | null;
63
67
  paramsHeader: string | null;
64
68
  url: string;
@@ -69,7 +73,9 @@ type PrefetchOptions = {
69
73
  };
70
74
  type PrefetchCacheEntry = {
71
75
  cacheForNavigation?: boolean;
76
+ expiresAt?: number;
72
77
  invalidationTimer?: ReturnType<typeof setTimeout>;
78
+ mountedSlotsHeader?: string | null;
73
79
  onInvalidateCallbacks?: Set<() => void>;
74
80
  optimisticRouteShell?: boolean;
75
81
  outcome: "pending" | "cache-seeded";
@@ -87,6 +93,10 @@ declare function getPrefetchCache(): Map<string, PrefetchCacheEntry>;
87
93
  * Keyed by interception-aware cache key so distinct source routes do not alias.
88
94
  */
89
95
  declare function getPrefetchedUrls(): Set<string>;
96
+ declare function resolveCachedRscResponseTtlMs(cached: Pick<CachedRscResponse, "dynamicStaleTimeSeconds">, fallbackTtlMs: number): number;
97
+ declare function resolveCachedRscResponseExpiresAt(timestamp: number, cached: Pick<CachedRscResponse, "dynamicStaleTimeSeconds" | "expiresAt">, fallbackTtlMs: number): number;
98
+ declare function resolvePrefetchCacheEntryMountedSlotsHeader(entry: PrefetchCacheEntry): string | null;
99
+ declare function hasPrefetchCacheEntryForNavigation(rscUrl: string, interceptionContext?: string | null, mountedSlotsHeader?: string | null): boolean;
90
100
  declare function invalidatePrefetchCache(): void;
91
101
  /**
92
102
  * Store a prefetched RSC response in the cache by snapshotting it to an
@@ -271,11 +281,18 @@ declare const appRouterInstance: {
271
281
  * App Router's useRouter — returns push/replace/back/forward/refresh.
272
282
  * Different from Pages Router's useRouter (next/router).
273
283
  *
274
- * Returns a stable singleton: the same object reference on every call,
275
- * matching Next.js behavior so components using referential equality
276
- * (e.g. useMemo / useEffect deps, React.memo) don't re-render unnecessarily.
284
+ * Preserves the mounted AppRouterContext router as the authority for methods
285
+ * and layers the nearest segment's contextual `bfcacheId` on top.
277
286
  */
278
- declare function useRouter(): AppRouterInstance;
287
+ declare function useRouter(): {
288
+ bfcacheId: string;
289
+ back(): void;
290
+ forward(): void;
291
+ refresh(): void;
292
+ push(href: string, options?: NavigateOptions): void;
293
+ replace(href: string, options?: NavigateOptions): void;
294
+ prefetch(href: string, options?: PrefetchOptions$1): void;
295
+ };
279
296
  /**
280
297
  * Returns the active child segment one level below the layout where it's called.
281
298
  *
@@ -557,5 +574,4 @@ declare function isDynamicServerError(error: unknown): error is DynamicServerErr
557
574
  */
558
575
  declare function unstable_rethrow(error: unknown): void;
559
576
  //#endregion
560
- export { BailoutToCSRError, CachedRscResponse, ClientNavigationRenderSnapshot, DynamicServerError, GLOBAL_ACCESSORS_KEY, HTTP_ERROR_FALLBACK_ERROR_CODE, MAX_PREFETCH_CACHE_SIZE, NavigationContext, PREFETCH_CACHE_TTL, PrefetchCacheEntry, PrefetchOptions, ReadonlyURLSearchParams, RedirectType, SegmentMap, ServerInsertedHTMLContext, UnrecognizedActionError, __basePath, _registerStateAccessors, activateNavigationSnapshot, appRouterInstance, clearPendingPathname, clearServerInsertedHTML, commitClientNavigationState, consumePrefetchResponse, consumePrefetchResponseForNavigation, createCachedRscResponseSnapshot, createClientNavigationRenderSnapshot, decodeRedirectError, flushServerInsertedHTML, forbidden, getAccessFallbackHTTPStatus, getClientNavigationRenderContext, getClientNavigationState, getClientParams, getCurrentInterceptionContext, getCurrentNextUrl, getLayoutSegmentContext, getMountedSlotsHeader, getNavigationContext, getPrefetchCache, getPrefetchInterceptionContext, getPrefetchedUrls, invalidatePrefetchCache, isBailoutToCSRError, isDynamicServerError, isHTTPAccessFallbackError, isNextRouterError, isRedirectError, navigateClientSide, notFound, permanentRedirect, prefetchRscResponse, pushHistoryStateWithoutNotify, redirect, renderServerInsertedHTML, replaceClientParamsWithoutNotify, replaceHistoryStateWithoutNotify, restoreRscResponse, saveScrollPosition, setClientParams, setMountedSlotsHeader, setNavigationContext, setPendingPathname, snapshotRscResponse, storePrefetchResponse, unauthorized, unstable_isUnrecognizedActionError, unstable_rethrow, useParams, usePathname, useRouter, useSearchParams, useSelectedLayoutSegment, useSelectedLayoutSegments, useServerInsertedHTML };
561
- //# sourceMappingURL=navigation.d.ts.map
577
+ export { BailoutToCSRError, CachedRscResponse, ClientNavigationRenderSnapshot, DynamicServerError, GLOBAL_ACCESSORS_KEY, HTTP_ERROR_FALLBACK_ERROR_CODE, MAX_PREFETCH_CACHE_SIZE, NavigationContext, PREFETCH_CACHE_TTL, PrefetchCacheEntry, PrefetchOptions, ReadonlyURLSearchParams, RedirectType, SegmentMap, ServerInsertedHTMLContext, UnrecognizedActionError, __basePath, _registerStateAccessors, activateNavigationSnapshot, appRouterInstance, clearPendingPathname, clearServerInsertedHTML, commitClientNavigationState, consumePrefetchResponse, consumePrefetchResponseForNavigation, createCachedRscResponseSnapshot, createClientNavigationRenderSnapshot, decodeRedirectError, flushServerInsertedHTML, forbidden, getAccessFallbackHTTPStatus, getBfcacheIdMapContext, getBfcacheSegmentIdContext, getClientNavigationRenderContext, getClientNavigationState, getClientParams, getCurrentInterceptionContext, getCurrentNextUrl, getLayoutSegmentContext, getMountedSlotsHeader, getNavigationContext, getPrefetchCache, getPrefetchInterceptionContext, getPrefetchedUrls, hasPrefetchCacheEntryForNavigation, invalidatePrefetchCache, isBailoutToCSRError, isDynamicServerError, isHTTPAccessFallbackError, isNextRouterError, isRedirectError, navigateClientSide, notFound, permanentRedirect, prefetchRscResponse, pushHistoryStateWithoutNotify, redirect, renderServerInsertedHTML, replaceClientParamsWithoutNotify, replaceHistoryStateWithoutNotify, resolveCachedRscResponseExpiresAt, resolveCachedRscResponseTtlMs, resolvePrefetchCacheEntryMountedSlotsHeader, restoreRscResponse, saveScrollPosition, setClientParams, setMountedSlotsHeader, setNavigationContext, setPendingPathname, snapshotRscResponse, storePrefetchResponse, unauthorized, unstable_isUnrecognizedActionError, unstable_rethrow, useParams, usePathname, useRouter, useSearchParams, useSelectedLayoutSegment, useSelectedLayoutSegments, useServerInsertedHTML };
@@ -1,5 +1,5 @@
1
1
  import { stripBasePath } from "../utils/base-path.js";
2
- import { VINEXT_MOUNTED_SLOTS_HEADER, VINEXT_PARAMS_HEADER } from "../server/headers.js";
2
+ import { VINEXT_DYNAMIC_STALE_TIME_HEADER, VINEXT_MOUNTED_SLOTS_HEADER, VINEXT_PARAMS_HEADER } from "../server/headers.js";
3
3
  import { assertSafeNavigationUrl } from "./url-safety.js";
4
4
  import { AppElementsWire } from "../server/app-elements-wire.js";
5
5
  import "../server/app-elements.js";
@@ -8,9 +8,11 @@ import { isAbsoluteOrProtocolRelativeUrl, isHashOnlyBrowserUrlChange, toBrowserN
8
8
  import { retryScrollTo, scrollToHashTarget } from "./hash-scroll.js";
9
9
  import { getNavigationRuntime, hasAppNavigationRuntime } from "../client/navigation-runtime.js";
10
10
  import { notifyAppRouterTransitionStart } from "../client/instrumentation-client-state.js";
11
+ import { PUBLIC_INITIAL_BFCACHE_ID } from "../server/app-bfcache-id.js";
11
12
  import { resolveManifestNavigationInterceptionContext } from "../server/app-browser-interception-context.js";
12
- import { createExternalHistoryStatePreservingMetadata } from "../server/app-history-state.js";
13
- import { VINEXT_RSC_COMPATIBILITY_ID_HEADER, createRscRequestHeaders, createRscRequestUrl } from "../server/app-rsc-cache-busting.js";
13
+ import { createExternalHistoryStatePreservingMetadata, createHashOnlyHistoryStatePreservingNavigationMetadata } from "../server/app-history-state.js";
14
+ import { VINEXT_RSC_COMPATIBILITY_ID_HEADER, createRscRequestHeaders, createRscRequestUrl, stripRscCacheBustingSearchParam } from "../server/app-rsc-cache-busting.js";
15
+ import { hasPendingAppRouterPageRedirect } from "../server/app-browser-mpa-navigation.js";
14
16
  import { ReadonlyURLSearchParams } from "./readonly-url-search-params.js";
15
17
  import { beginAppRouterScrollIntent, clearAppRouterScrollIntent, consumeAppRouterScrollIntent } from "./app-router-scroll-state.js";
16
18
  import { UnrecognizedActionError, unstable_isUnrecognizedActionError } from "./unrecognized-action-error.js";
@@ -25,6 +27,8 @@ import * as React$1 from "react";
25
27
  */
26
28
  const _LAYOUT_SEGMENT_CTX_KEY = Symbol.for("vinext.layoutSegmentContext");
27
29
  const _SERVER_INSERTED_HTML_CTX_KEY = Symbol.for("vinext.serverInsertedHTMLContext");
30
+ const _BFCACHE_ID_MAP_CTX_KEY = Symbol.for("vinext.bfcacheIdMapContext");
31
+ const _BFCACHE_SEGMENT_ID_CTX_KEY = Symbol.for("vinext.bfcacheSegmentIdContext");
28
32
  function getServerInsertedHTMLContext() {
29
33
  if (typeof React$1.createContext !== "function") return null;
30
34
  const globalState = globalThis;
@@ -42,6 +46,18 @@ function getLayoutSegmentContext() {
42
46
  if (!globalState[_LAYOUT_SEGMENT_CTX_KEY]) globalState[_LAYOUT_SEGMENT_CTX_KEY] = React$1.createContext({ children: [] });
43
47
  return globalState[_LAYOUT_SEGMENT_CTX_KEY] ?? null;
44
48
  }
49
+ function getBfcacheIdMapContext() {
50
+ if (typeof React$1.createContext !== "function") return null;
51
+ const globalState = globalThis;
52
+ if (!globalState[_BFCACHE_ID_MAP_CTX_KEY]) globalState[_BFCACHE_ID_MAP_CTX_KEY] = React$1.createContext(null);
53
+ return globalState[_BFCACHE_ID_MAP_CTX_KEY] ?? null;
54
+ }
55
+ function getBfcacheSegmentIdContext() {
56
+ if (typeof React$1.createContext !== "function") return null;
57
+ const globalState = globalThis;
58
+ if (!globalState[_BFCACHE_SEGMENT_ID_CTX_KEY]) globalState[_BFCACHE_SEGMENT_ID_CTX_KEY] = React$1.createContext(null);
59
+ return globalState[_BFCACHE_SEGMENT_ID_CTX_KEY] ?? null;
60
+ }
45
61
  /**
46
62
  * Read the child segments for a parallel route below the current layout.
47
63
  * Returns [] if no context is available (RSC environment, outside React tree)
@@ -200,6 +216,91 @@ function getPrefetchedUrls() {
200
216
  if (!window.__VINEXT_RSC_PREFETCHED_URLS__) window.__VINEXT_RSC_PREFETCHED_URLS__ = /* @__PURE__ */ new Set();
201
217
  return window.__VINEXT_RSC_PREFETCHED_URLS__;
202
218
  }
219
+ function isDynamicStaleTimeSeconds(value) {
220
+ return typeof value === "number" && Number.isFinite(value) && Number.isInteger(value) && value >= 0;
221
+ }
222
+ function isCacheExpiresAt(value) {
223
+ return typeof value === "number" && Number.isFinite(value) && value >= 0;
224
+ }
225
+ function parseDynamicStaleTimeSeconds(value) {
226
+ if (value === null || value === "") return void 0;
227
+ const seconds = Number(value);
228
+ return isDynamicStaleTimeSeconds(seconds) ? seconds : void 0;
229
+ }
230
+ function resolveCachedRscResponseTtlMs(cached, fallbackTtlMs) {
231
+ const seconds = cached.dynamicStaleTimeSeconds;
232
+ if (!isDynamicStaleTimeSeconds(seconds)) return fallbackTtlMs;
233
+ return seconds * 1e3;
234
+ }
235
+ function resolveCachedRscResponseExpiresAt(timestamp, cached, fallbackTtlMs) {
236
+ if (isCacheExpiresAt(cached.expiresAt)) return cached.expiresAt;
237
+ return timestamp + resolveCachedRscResponseTtlMs(cached, fallbackTtlMs);
238
+ }
239
+ function resolvePrefetchCacheEntryExpiresAt(entry) {
240
+ if (entry.expiresAt !== void 0) return entry.expiresAt;
241
+ if (entry.snapshot) return resolveCachedRscResponseExpiresAt(entry.timestamp, entry.snapshot, PREFETCH_CACHE_TTL);
242
+ return entry.timestamp + PREFETCH_CACHE_TTL;
243
+ }
244
+ function resolvePrefetchCacheEntryMountedSlotsHeader(entry) {
245
+ if (entry.mountedSlotsHeader !== void 0) return entry.mountedSlotsHeader;
246
+ return entry.snapshot?.mountedSlotsHeader ?? null;
247
+ }
248
+ function normalizeRscCacheLookupUrl(rscUrl) {
249
+ try {
250
+ const url = new URL(rscUrl, "http://vinext.local");
251
+ stripRscCacheBustingSearchParam(url);
252
+ return `${url.pathname}${url.search}`;
253
+ } catch {
254
+ return null;
255
+ }
256
+ }
257
+ function parsePrefetchCacheKey(cacheKey) {
258
+ const separatorIndex = cacheKey.indexOf("\0");
259
+ if (separatorIndex === -1) return {
260
+ interceptionContext: null,
261
+ rscUrl: cacheKey
262
+ };
263
+ return {
264
+ interceptionContext: cacheKey.slice(separatorIndex + 1),
265
+ rscUrl: cacheKey.slice(0, separatorIndex)
266
+ };
267
+ }
268
+ function isPrefetchCacheEntryCompatibleWithMountedSlots(entry, mountedSlotsHeader) {
269
+ if (resolvePrefetchCacheEntryMountedSlotsHeader(entry) === mountedSlotsHeader) return true;
270
+ return (entry.snapshot?.mountedSlotsHeader ?? null) === mountedSlotsHeader;
271
+ }
272
+ function findPrefetchCacheEntryForNavigation(rscUrl, interceptionContext, mountedSlotsHeader) {
273
+ const exactCacheKey = AppElementsWire.encodeCacheKey(rscUrl, interceptionContext);
274
+ const cache = getPrefetchCache();
275
+ const exactEntry = cache.get(exactCacheKey);
276
+ if (exactEntry && exactEntry.cacheForNavigation !== false && isPrefetchCacheEntryCompatibleWithMountedSlots(exactEntry, mountedSlotsHeader)) return {
277
+ cacheKey: exactCacheKey,
278
+ entry: exactEntry
279
+ };
280
+ const normalizedTarget = normalizeRscCacheLookupUrl(rscUrl);
281
+ if (normalizedTarget === null) return null;
282
+ for (const [cacheKey, entry] of cache) {
283
+ if (cacheKey === exactCacheKey) continue;
284
+ if (entry.cacheForNavigation === false) continue;
285
+ const source = parsePrefetchCacheKey(cacheKey);
286
+ if (source.interceptionContext !== interceptionContext) continue;
287
+ if (normalizeRscCacheLookupUrl(source.rscUrl) !== normalizedTarget) continue;
288
+ if (!isPrefetchCacheEntryCompatibleWithMountedSlots(entry, mountedSlotsHeader)) continue;
289
+ return {
290
+ cacheKey,
291
+ entry
292
+ };
293
+ }
294
+ return null;
295
+ }
296
+ function hasPrefetchCacheEntryForNavigation(rscUrl, interceptionContext = null, mountedSlotsHeader = null) {
297
+ const match = findPrefetchCacheEntryForNavigation(rscUrl, interceptionContext, mountedSlotsHeader);
298
+ if (match === null) return false;
299
+ if (match.entry.pending !== void 0) return true;
300
+ if (resolvePrefetchCacheEntryExpiresAt(match.entry) > Date.now()) return true;
301
+ deletePrefetchCacheEntry(getPrefetchCache(), getPrefetchedUrls(), match.cacheKey, match.entry, true);
302
+ return false;
303
+ }
203
304
  /**
204
305
  * Evict prefetch cache entries if at capacity.
205
306
  * First sweeps expired entries, then falls back to FIFO eviction.
@@ -209,7 +310,7 @@ function evictPrefetchCacheIfNeeded() {
209
310
  if (cache.size < 50) return;
210
311
  const now = Date.now();
211
312
  const prefetched = getPrefetchedUrls();
212
- for (const [key, entry] of cache) if (now - entry.timestamp >= PREFETCH_CACHE_TTL) deletePrefetchCacheEntry(cache, prefetched, key, entry, true);
313
+ for (const [key, entry] of cache) if (resolvePrefetchCacheEntryExpiresAt(entry) <= now) deletePrefetchCacheEntry(cache, prefetched, key, entry, true);
213
314
  while (cache.size >= 50) {
214
315
  const oldest = cache.keys().next().value;
215
316
  if (oldest !== void 0) {
@@ -258,8 +359,7 @@ function invalidatePrefetchCacheEntry(cacheKey) {
258
359
  function schedulePrefetchInvalidation(cacheKey, entry) {
259
360
  if (entry.onInvalidateCallbacks === void 0 || entry.onInvalidateCallbacks.size === 0) return;
260
361
  clearPrefetchInvalidation(entry);
261
- const elapsed = Date.now() - entry.timestamp;
262
- const delay = Math.max(0, PREFETCH_CACHE_TTL - elapsed);
362
+ const delay = Math.max(0, resolvePrefetchCacheEntryExpiresAt(entry) - Date.now());
263
363
  entry.invalidationTimer = setTimeout(() => {
264
364
  invalidatePrefetchCacheEntry(cacheKey);
265
365
  }, delay);
@@ -303,12 +403,15 @@ function storePrefetchResponse(rscUrl, response, interceptionContext = null, opt
303
403
  const cacheKey = AppElementsWire.encodeCacheKey(rscUrl, interceptionContext);
304
404
  evictPrefetchCacheIfNeeded();
305
405
  const entry = {
406
+ mountedSlotsHeader: null,
306
407
  outcome: "pending",
307
408
  timestamp: Date.now()
308
409
  };
309
410
  addPrefetchInvalidationCallback(entry, options?.onInvalidate);
310
411
  entry.pending = snapshotRscResponse(response).then((snapshot) => {
412
+ entry.mountedSlotsHeader = snapshot.mountedSlotsHeader ?? null;
311
413
  entry.snapshot = snapshot;
414
+ entry.expiresAt = resolveCachedRscResponseExpiresAt(entry.timestamp, snapshot, PREFETCH_CACHE_TTL);
312
415
  }).catch(() => {
313
416
  deletePrefetchCacheEntry(getPrefetchCache(), getPrefetchedUrls(), cacheKey, entry, false);
314
417
  }).finally(() => {
@@ -321,10 +424,12 @@ function storePrefetchResponse(rscUrl, response, interceptionContext = null, opt
321
424
  getPrefetchCache().set(cacheKey, entry);
322
425
  }
323
426
  function createCachedRscResponseSnapshot(response, buffer, responseUrl = null) {
427
+ const dynamicStaleTimeSeconds = parseDynamicStaleTimeSeconds(response.headers.get(VINEXT_DYNAMIC_STALE_TIME_HEADER));
324
428
  return {
325
429
  compatibilityIdHeader: response.headers.get(VINEXT_RSC_COMPATIBILITY_ID_HEADER),
326
430
  buffer,
327
431
  contentType: response.headers.get("content-type") ?? "text/x-component",
432
+ ...dynamicStaleTimeSeconds !== void 0 ? { dynamicStaleTimeSeconds } : {},
328
433
  mountedSlotsHeader: response.headers.get(VINEXT_MOUNTED_SLOTS_HEADER),
329
434
  paramsHeader: response.headers.get(VINEXT_PARAMS_HEADER),
330
435
  url: responseUrl ?? response.url
@@ -356,6 +461,7 @@ function restoreRscResponse(cached, copy = true) {
356
461
  const headers = new Headers({ "content-type": cached.contentType });
357
462
  if (cached.mountedSlotsHeader != null) headers.set(VINEXT_MOUNTED_SLOTS_HEADER, cached.mountedSlotsHeader);
358
463
  if (cached.compatibilityIdHeader != null) headers.set(VINEXT_RSC_COMPATIBILITY_ID_HEADER, cached.compatibilityIdHeader);
464
+ if (isDynamicStaleTimeSeconds(cached.dynamicStaleTimeSeconds)) headers.set(VINEXT_DYNAMIC_STALE_TIME_HEADER, String(cached.dynamicStaleTimeSeconds));
359
465
  if (cached.paramsHeader != null) headers.set(VINEXT_PARAMS_HEADER, cached.paramsHeader);
360
466
  return new Response(copy ? cached.buffer.slice(0) : cached.buffer, {
361
467
  status: 200,
@@ -376,17 +482,17 @@ function prefetchRscResponse(rscUrl, fetchPromise, interceptionContext = null, m
376
482
  const now = Date.now();
377
483
  const entry = {
378
484
  cacheForNavigation: behavior.cacheForNavigation ?? true,
485
+ mountedSlotsHeader,
379
486
  optimisticRouteShell: behavior.optimisticRouteShell === true,
380
487
  outcome: "pending",
381
488
  timestamp: now
382
489
  };
383
490
  addPrefetchInvalidationCallback(entry, options?.onInvalidate);
384
491
  entry.pending = fetchPromise.then(async (response) => {
385
- if (response.ok) entry.snapshot = {
386
- ...await snapshotRscResponse(response),
387
- mountedSlotsHeader
388
- };
389
- else deletePrefetchCacheEntry(cache, prefetched, cacheKey, entry, false);
492
+ if (response.ok) {
493
+ entry.snapshot = await snapshotRscResponse(response);
494
+ entry.expiresAt = resolveCachedRscResponseExpiresAt(entry.timestamp, entry.snapshot, PREFETCH_CACHE_TTL);
495
+ } else deletePrefetchCacheEntry(cache, prefetched, cacheKey, entry, false);
390
496
  }).catch(() => {
391
497
  deletePrefetchCacheEntry(cache, prefetched, cacheKey, entry, false);
392
498
  }).finally(() => {
@@ -405,26 +511,32 @@ function prefetchRscResponse(rscUrl, fetchPromise, interceptionContext = null, m
405
511
  * Returns null if the entry is still in flight or doesn't exist.
406
512
  */
407
513
  function consumePrefetchResponse(rscUrl, interceptionContext = null, mountedSlotsHeader = null) {
408
- const cacheKey = AppElementsWire.encodeCacheKey(rscUrl, interceptionContext);
409
514
  const cache = getPrefetchCache();
410
- const entry = cache.get(cacheKey);
411
- if (!entry) return null;
515
+ const exactCacheKey = AppElementsWire.encodeCacheKey(rscUrl, interceptionContext);
516
+ const exactEntry = cache.get(exactCacheKey);
517
+ if (exactEntry && exactEntry.cacheForNavigation !== false && !isPrefetchCacheEntryCompatibleWithMountedSlots(exactEntry, mountedSlotsHeader)) deletePrefetchCacheEntry(cache, getPrefetchedUrls(), exactCacheKey, exactEntry, false);
518
+ const match = findPrefetchCacheEntryForNavigation(rscUrl, interceptionContext, mountedSlotsHeader);
519
+ if (!match) return null;
520
+ const { cacheKey, entry } = match;
412
521
  if (entry.pending || entry.outcome !== "cache-seeded") return null;
413
522
  if (entry.cacheForNavigation === false) return null;
414
523
  deletePrefetchCacheEntry(cache, getPrefetchedUrls(), cacheKey, entry, false);
415
524
  if (entry.snapshot) {
416
- if ((entry.snapshot.mountedSlotsHeader ?? null) !== mountedSlotsHeader) return null;
417
- if (Date.now() - entry.timestamp >= PREFETCH_CACHE_TTL) return null;
525
+ if (!isPrefetchCacheEntryCompatibleWithMountedSlots(entry, mountedSlotsHeader)) return null;
526
+ if (resolvePrefetchCacheEntryExpiresAt(entry) <= Date.now()) return null;
527
+ if (entry.expiresAt !== void 0 || entry.snapshot.expiresAt !== void 0) return {
528
+ ...entry.snapshot,
529
+ expiresAt: resolvePrefetchCacheEntryExpiresAt(entry)
530
+ };
418
531
  return entry.snapshot;
419
532
  }
420
533
  return null;
421
534
  }
422
535
  async function consumePrefetchResponseForNavigation(rscUrl, interceptionContext = null, mountedSlotsHeader = null, options) {
423
- const cacheKey = AppElementsWire.encodeCacheKey(rscUrl, interceptionContext);
424
536
  const cache = getPrefetchCache();
425
- const entry = cache.get(cacheKey);
426
- if (!entry) return null;
427
- if (entry.cacheForNavigation === false) return null;
537
+ const match = findPrefetchCacheEntryForNavigation(rscUrl, interceptionContext, mountedSlotsHeader);
538
+ if (!match) return null;
539
+ const { cacheKey, entry } = match;
428
540
  if (entry.pending !== void 0) {
429
541
  await entry.pending.catch(() => {});
430
542
  if (cache.get(cacheKey) !== entry) return null;
@@ -733,10 +845,7 @@ function commitClientNavigationState(navId, options) {
733
845
  }
734
846
  const shouldNotify = urlChanged || state.hasPendingNavigationUpdate;
735
847
  state.hasPendingNavigationUpdate = false;
736
- if (shouldNotify) {
737
- notifyNavigationListeners();
738
- getNavigationRuntime()?.functions.pingVisibleLinks?.();
739
- }
848
+ if (shouldNotify) notifyNavigationListeners();
740
849
  }
741
850
  function pushHistoryStateWithoutNotify(data, unused, url) {
742
851
  withSuppressedUrlNotifications(() => {
@@ -768,8 +877,9 @@ function commitHashOnlyHistoryState(href, mode, scroll) {
768
877
  commitAppRouterHashNavigation(href, mode, scroll);
769
878
  return;
770
879
  }
771
- if (mode === "replace") replaceHistoryStateWithoutNotify(null, "", href);
772
- else pushHistoryStateWithoutNotify(null, "", href);
880
+ const historyState = createHashOnlyHistoryStatePreservingNavigationMetadata(window.history.state);
881
+ if (mode === "replace") replaceHistoryStateWithoutNotify(historyState, "", href);
882
+ else pushHistoryStateWithoutNotify(historyState, "", href);
773
883
  }
774
884
  function applyAppRouterScrollFallback(intent) {
775
885
  if (typeof document === "undefined" || typeof window === "undefined") return;
@@ -835,6 +945,17 @@ async function navigateClientSide(href, mode, scroll, programmaticTransition = f
835
945
  if (scroll) scrollToHashTarget(hash);
836
946
  return;
837
947
  }
948
+ if (hasPendingAppRouterPageRedirect(typeof document === "undefined" ? void 0 : document)) {
949
+ const mpaNavigate = getNavigationRuntime()?.functions.navigateExternal;
950
+ if (mpaNavigate) {
951
+ await mpaNavigate(fullHref, mode);
952
+ return;
953
+ }
954
+ if (mode === "replace") window.location.replace(fullHref);
955
+ else window.location.assign(fullHref);
956
+ await new Promise(() => {});
957
+ return;
958
+ }
838
959
  const hashIdx = fullHref.indexOf("#");
839
960
  const hash = hashIdx !== -1 ? fullHref.slice(hashIdx) : "";
840
961
  const scrollIntent = scroll ? beginAppRouterScrollIntent(hash || null) : null;
@@ -873,13 +994,15 @@ function releaseScheduledAppRouterNavigationAfterCurrentTask(release) {
873
994
  queueMicrotask(release);
874
995
  }
875
996
  /**
876
- * Public App Router instance, exposed for the browser entry so it can wire
877
- * `window.next.router` to the same singleton returned from `useRouter()`.
997
+ * App Router public router instance. Mirrors Next.js's
998
+ * `publicAppRouterInstance` from
999
+ * `packages/next/src/client/components/app-router-instance.ts`.
878
1000
  *
879
- * Mirrors `publicAppRouterInstance` from Next.js's
880
- * `packages/next/src/client/components/app-router-instance.ts` (line 392).
1001
+ * Exported so the App Router browser entry can install it on
1002
+ * `window.next.router` for Next.js parity (see `client/window-next.ts`).
1003
+ * Internal callers in this file continue to use `_appRouter` for brevity.
881
1004
  */
882
- const appRouterInstance = {
1005
+ const _appRouter = {
883
1006
  bfcacheId: "0",
884
1007
  push(href, options) {
885
1008
  assertSafeNavigationUrl(href);
@@ -967,19 +1090,47 @@ const appRouterInstance = {
967
1090
  });
968
1091
  }
969
1092
  };
1093
+ function formatPublicBfcacheId(value) {
1094
+ if (!value || value === "0") return PUBLIC_INITIAL_BFCACHE_ID;
1095
+ return value;
1096
+ }
1097
+ function readBfcacheIdFromContext() {
1098
+ const segmentContext = getBfcacheSegmentIdContext();
1099
+ const idMapContext = getBfcacheIdMapContext();
1100
+ if (!segmentContext || !idMapContext || typeof React$1.useContext !== "function") return formatPublicBfcacheId(null);
1101
+ try {
1102
+ const segmentId = React$1.useContext(segmentContext);
1103
+ const idMap = React$1.useContext(idMapContext);
1104
+ return formatPublicBfcacheId(segmentId !== null ? idMap?.[segmentId] : null);
1105
+ } catch (error) {
1106
+ if (process.env.NODE_ENV !== "production") console.warn("[vinext] readBfcacheIdFromContext failed:", error);
1107
+ return formatPublicBfcacheId(null);
1108
+ }
1109
+ }
1110
+ /**
1111
+ * Public App Router instance, exposed for the browser entry so it can wire
1112
+ * `window.next.router` to the same singleton returned from `useRouter()`.
1113
+ *
1114
+ * Mirrors `publicAppRouterInstance` from Next.js's
1115
+ * `packages/next/src/client/components/app-router-instance.ts` (line 392).
1116
+ */
1117
+ const appRouterInstance = _appRouter;
970
1118
  /**
971
1119
  * App Router's useRouter — returns push/replace/back/forward/refresh.
972
1120
  * Different from Pages Router's useRouter (next/router).
973
1121
  *
974
- * Returns a stable singleton: the same object reference on every call,
975
- * matching Next.js behavior so components using referential equality
976
- * (e.g. useMemo / useEffect deps, React.memo) don't re-render unnecessarily.
1122
+ * Preserves the mounted AppRouterContext router as the authority for methods
1123
+ * and layers the nearest segment's contextual `bfcacheId` on top.
977
1124
  */
978
1125
  function useRouter() {
979
- if (!AppRouterContext || typeof React$1.useContext !== "function") throw new Error("invariant expected app router to be mounted");
1126
+ if (!AppRouterContext || typeof React$1.useContext !== "function" || typeof React$1.useMemo !== "function") throw new Error("invariant expected app router to be mounted");
980
1127
  const router = React$1.useContext(AppRouterContext);
981
1128
  if (router === null) throw new Error("invariant expected app router to be mounted");
982
- return router;
1129
+ const bfcacheId = readBfcacheIdFromContext();
1130
+ return React$1.useMemo(() => ({
1131
+ ...router,
1132
+ bfcacheId
1133
+ }), [router, bfcacheId]);
983
1134
  }
984
1135
  /**
985
1136
  * Returns the active child segment one level below the layout where it's called.
@@ -1378,6 +1529,4 @@ if (!isServer) {
1378
1529
  }
1379
1530
  }
1380
1531
  //#endregion
1381
- export { BailoutToCSRError, DynamicServerError, GLOBAL_ACCESSORS_KEY, HTTP_ERROR_FALLBACK_ERROR_CODE, MAX_PREFETCH_CACHE_SIZE, PREFETCH_CACHE_TTL, ReadonlyURLSearchParams, RedirectType, ServerInsertedHTMLContext, UnrecognizedActionError, __basePath, _registerStateAccessors, activateNavigationSnapshot, appRouterInstance, clearPendingPathname, clearServerInsertedHTML, commitClientNavigationState, consumePrefetchResponse, consumePrefetchResponseForNavigation, createCachedRscResponseSnapshot, createClientNavigationRenderSnapshot, decodeRedirectError, flushServerInsertedHTML, forbidden, getAccessFallbackHTTPStatus, getClientNavigationRenderContext, getClientNavigationState, getClientParams, getCurrentInterceptionContext, getCurrentNextUrl, getLayoutSegmentContext, getMountedSlotsHeader, getNavigationContext, getPrefetchCache, getPrefetchInterceptionContext, getPrefetchedUrls, invalidatePrefetchCache, isBailoutToCSRError, isDynamicServerError, isHTTPAccessFallbackError, isNextRouterError, isRedirectError, navigateClientSide, notFound, permanentRedirect, prefetchRscResponse, pushHistoryStateWithoutNotify, redirect, renderServerInsertedHTML, replaceClientParamsWithoutNotify, replaceHistoryStateWithoutNotify, restoreRscResponse, saveScrollPosition, setClientParams, setMountedSlotsHeader, setNavigationContext, setPendingPathname, snapshotRscResponse, storePrefetchResponse, unauthorized, unstable_isUnrecognizedActionError, unstable_rethrow, useParams, usePathname, useRouter, useSearchParams, useSelectedLayoutSegment, useSelectedLayoutSegments, useServerInsertedHTML };
1382
-
1383
- //# sourceMappingURL=navigation.js.map
1532
+ export { BailoutToCSRError, DynamicServerError, GLOBAL_ACCESSORS_KEY, HTTP_ERROR_FALLBACK_ERROR_CODE, MAX_PREFETCH_CACHE_SIZE, PREFETCH_CACHE_TTL, ReadonlyURLSearchParams, RedirectType, ServerInsertedHTMLContext, UnrecognizedActionError, __basePath, _registerStateAccessors, activateNavigationSnapshot, appRouterInstance, clearPendingPathname, clearServerInsertedHTML, commitClientNavigationState, consumePrefetchResponse, consumePrefetchResponseForNavigation, createCachedRscResponseSnapshot, createClientNavigationRenderSnapshot, decodeRedirectError, flushServerInsertedHTML, forbidden, getAccessFallbackHTTPStatus, getBfcacheIdMapContext, getBfcacheSegmentIdContext, getClientNavigationRenderContext, getClientNavigationState, getClientParams, getCurrentInterceptionContext, getCurrentNextUrl, getLayoutSegmentContext, getMountedSlotsHeader, getNavigationContext, getPrefetchCache, getPrefetchInterceptionContext, getPrefetchedUrls, hasPrefetchCacheEntryForNavigation, invalidatePrefetchCache, isBailoutToCSRError, isDynamicServerError, isHTTPAccessFallbackError, isNextRouterError, isRedirectError, navigateClientSide, notFound, permanentRedirect, prefetchRscResponse, pushHistoryStateWithoutNotify, redirect, renderServerInsertedHTML, replaceClientParamsWithoutNotify, replaceHistoryStateWithoutNotify, resolveCachedRscResponseExpiresAt, resolveCachedRscResponseTtlMs, resolvePrefetchCacheEntryMountedSlotsHeader, restoreRscResponse, saveScrollPosition, setClientParams, setMountedSlotsHeader, setNavigationContext, setPendingPathname, snapshotRscResponse, storePrefetchResponse, unauthorized, unstable_isUnrecognizedActionError, unstable_rethrow, useParams, usePathname, useRouter, useSearchParams, useSelectedLayoutSegment, useSelectedLayoutSegments, useServerInsertedHTML };
@@ -11,5 +11,4 @@ declare function useSelectedLayoutSegments(): never;
11
11
  declare function useServerInsertedHTML(): never;
12
12
  declare function unstable_isUnrecognizedActionError(): boolean;
13
13
  //#endregion
14
- export { BailoutToCSRError, DynamicServerError, GLOBAL_ACCESSORS_KEY, HTTP_ERROR_FALLBACK_ERROR_CODE, type NavigationContext, ReadonlyURLSearchParams, RedirectType, type SegmentMap, ServerInsertedHTMLContext, _registerStateAccessors, clearServerInsertedHTML, flushServerInsertedHTML, forbidden, getAccessFallbackHTTPStatus, getLayoutSegmentContext, getNavigationContext, isBailoutToCSRError, isDynamicServerError, isHTTPAccessFallbackError, isNextRouterError, isRedirectError, notFound, permanentRedirect, redirect, renderServerInsertedHTML, setNavigationContext, unauthorized, unstable_isUnrecognizedActionError, unstable_rethrow, useParams, usePathname, useRouter, useSearchParams, useSelectedLayoutSegment, useSelectedLayoutSegments, useServerInsertedHTML };
15
- //# sourceMappingURL=navigation.react-server.d.ts.map
14
+ export { BailoutToCSRError, DynamicServerError, GLOBAL_ACCESSORS_KEY, HTTP_ERROR_FALLBACK_ERROR_CODE, type NavigationContext, ReadonlyURLSearchParams, RedirectType, type SegmentMap, ServerInsertedHTMLContext, _registerStateAccessors, clearServerInsertedHTML, flushServerInsertedHTML, forbidden, getAccessFallbackHTTPStatus, getLayoutSegmentContext, getNavigationContext, isBailoutToCSRError, isDynamicServerError, isHTTPAccessFallbackError, isNextRouterError, isRedirectError, notFound, permanentRedirect, redirect, renderServerInsertedHTML, setNavigationContext, unauthorized, unstable_isUnrecognizedActionError, unstable_rethrow, useParams, usePathname, useRouter, useSearchParams, useSelectedLayoutSegment, useSelectedLayoutSegments, useServerInsertedHTML };
@@ -28,5 +28,3 @@ function unstable_isUnrecognizedActionError() {
28
28
  }
29
29
  //#endregion
30
30
  export { BailoutToCSRError, DynamicServerError, GLOBAL_ACCESSORS_KEY, HTTP_ERROR_FALLBACK_ERROR_CODE, ReadonlyURLSearchParams, RedirectType, ServerInsertedHTMLContext, _registerStateAccessors, clearServerInsertedHTML, flushServerInsertedHTML, forbidden, getAccessFallbackHTTPStatus, getLayoutSegmentContext, getNavigationContext, isBailoutToCSRError, isDynamicServerError, isHTTPAccessFallbackError, isNextRouterError, isRedirectError, notFound, permanentRedirect, redirect, renderServerInsertedHTML, setNavigationContext, unauthorized, unstable_isUnrecognizedActionError, unstable_rethrow, useParams, usePathname, useRouter, useSearchParams, useSelectedLayoutSegment, useSelectedLayoutSegments, useServerInsertedHTML };
31
-
32
- //# sourceMappingURL=navigation.react-server.js.map