vinext 0.0.54 → 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 (977) hide show
  1. package/README.md +52 -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 +321 -27
  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 +2 -2
  65. package/dist/client/navigation-runtime.js +1 -3
  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 +30 -3
  87. package/dist/config/next-config.js +47 -8
  88. package/dist/config/tsconfig-paths.d.ts +12 -4
  89. package/dist/config/tsconfig-paths.js +58 -31
  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 +6 -5
  95. package/dist/entries/app-rsc-entry.js +62 -61
  96. package/dist/entries/app-rsc-manifest.d.ts +1 -2
  97. package/dist/entries/app-rsc-manifest.js +42 -12
  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 +94 -670
  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 +297 -140
  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 +16 -0
  123. package/dist/plugins/import-meta-url.js +347 -0
  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 +9 -17
  169. package/dist/server/app-browser-action-result.js +25 -16
  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 +352 -115
  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 +16 -0
  180. package/dist/server/app-browser-mpa-navigation.js +42 -0
  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 +4 -3
  184. package/dist/server/app-browser-popstate.js +15 -3
  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 +195 -11
  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 +43 -0
  210. package/dist/server/app-layout-param-observation.js +168 -0
  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 +20 -11
  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 +2 -2
  234. package/dist/server/app-page-params.js +14 -3
  235. package/dist/server/app-page-probe.d.ts +90 -2
  236. package/dist/server/app-page-probe.js +201 -6
  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 +8 -7
  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 +12 -3
  286. package/dist/server/app-rsc-cache-busting.js +21 -10
  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 +32 -14
  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 +5 -3
  304. package/dist/server/app-segment-config.js +12 -3
  305. package/dist/server/app-server-action-execution.d.ts +12 -2
  306. package/dist/server/app-server-action-execution.js +200 -25
  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 +2 -2
  318. package/dist/server/artifact-compatibility.js +12 -7
  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 +10 -5
  326. package/dist/server/client-reuse-manifest.js +7 -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 +127 -28
  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 +6 -0
  358. package/dist/server/document-initial-head.js +33 -0
  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 +84 -3
  414. package/dist/server/pages-document-initial-props.js +127 -3
  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 +35 -4
  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 +15 -2
  430. package/dist/server/pages-page-response.js +39 -12
  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 +13 -8
  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 +23 -3
  456. package/dist/server/skip-cache-proof.js +81 -14
  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 +15 -0
  462. package/dist/server/static-layout-client-reuse-proof.js +33 -0
  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 +68 -7
  482. package/dist/shims/cache.js +179 -25
  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 +11 -7
  500. package/dist/shims/document.js +7 -10
  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 +60 -28
  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 +3 -2
  508. package/dist/shims/fetch-cache.js +18 -9
  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 +4 -2
  518. package/dist/shims/hash-scroll.js +13 -3
  519. package/dist/shims/head-state.d.ts +2 -2
  520. package/dist/shims/head-state.js +18 -5
  521. package/dist/shims/head.d.ts +35 -2
  522. package/dist/shims/head.js +113 -16
  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 +55 -0
  545. package/dist/shims/internal/pages-data-fetch-dedup.js +68 -0
  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 +47 -15
  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 +61 -7
  571. package/dist/shims/navigation.js +244 -47
  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 +172 -37
  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 +6 -3
  602. package/dist/shims/thenable-params.js +131 -12
  603. package/dist/shims/unified-request-context.d.ts +1 -2
  604. package/dist/shims/unified-request-context.js +3 -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 +14 -0
  624. package/dist/utils/client-build-manifest.js +52 -0
  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 +1 -3
  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 +10 -0
  674. package/dist/utils/vite-version.js +34 -0
  675. package/package.json +20 -7
  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/instrumentation-client.js.map +0 -1
  732. package/dist/plugins/middleware-server-only.js.map +0 -1
  733. package/dist/plugins/og-assets.js.map +0 -1
  734. package/dist/plugins/optimize-imports.js.map +0 -1
  735. package/dist/plugins/postcss.js.map +0 -1
  736. package/dist/plugins/remove-console.js.map +0 -1
  737. package/dist/plugins/rsc-client-reference-loaders.js.map +0 -1
  738. package/dist/plugins/rsc-client-shim-excludes.js.map +0 -1
  739. package/dist/plugins/sass.js.map +0 -1
  740. package/dist/plugins/server-externals-manifest.js.map +0 -1
  741. package/dist/plugins/strip-server-exports.js.map +0 -1
  742. package/dist/routing/app-route-graph.js.map +0 -1
  743. package/dist/routing/app-router.js.map +0 -1
  744. package/dist/routing/file-matcher.js.map +0 -1
  745. package/dist/routing/pages-router.js.map +0 -1
  746. package/dist/routing/route-matching.js.map +0 -1
  747. package/dist/routing/route-pattern.js.map +0 -1
  748. package/dist/routing/route-trie.js.map +0 -1
  749. package/dist/routing/route-validation.js.map +0 -1
  750. package/dist/routing/utils.js.map +0 -1
  751. package/dist/server/api-handler.js.map +0 -1
  752. package/dist/server/app-browser-action-result.js.map +0 -1
  753. package/dist/server/app-browser-entry.js.map +0 -1
  754. package/dist/server/app-browser-error.js.map +0 -1
  755. package/dist/server/app-browser-hydration.js.map +0 -1
  756. package/dist/server/app-browser-interception-context.js.map +0 -1
  757. package/dist/server/app-browser-navigation-controller.js.map +0 -1
  758. package/dist/server/app-browser-popstate.js.map +0 -1
  759. package/dist/server/app-browser-rsc-redirect.js.map +0 -1
  760. package/dist/server/app-browser-state.js.map +0 -1
  761. package/dist/server/app-browser-stream.js.map +0 -1
  762. package/dist/server/app-browser-visible-commit.js.map +0 -1
  763. package/dist/server/app-client-reference-preloader.js.map +0 -1
  764. package/dist/server/app-elements-wire.js.map +0 -1
  765. package/dist/server/app-elements.js.map +0 -1
  766. package/dist/server/app-fallback-renderer.js.map +0 -1
  767. package/dist/server/app-history-state.js.map +0 -1
  768. package/dist/server/app-hook-warning-suppression.js.map +0 -1
  769. package/dist/server/app-inline-css-client.js.map +0 -1
  770. package/dist/server/app-interception-context-header.js.map +0 -1
  771. package/dist/server/app-middleware.js.map +0 -1
  772. package/dist/server/app-mounted-slots-header.js.map +0 -1
  773. package/dist/server/app-optimistic-routing.js.map +0 -1
  774. package/dist/server/app-page-boundary-render.js.map +0 -1
  775. package/dist/server/app-page-boundary.js.map +0 -1
  776. package/dist/server/app-page-cache.js.map +0 -1
  777. package/dist/server/app-page-dispatch.js.map +0 -1
  778. package/dist/server/app-page-element-builder.js.map +0 -1
  779. package/dist/server/app-page-execution.js.map +0 -1
  780. package/dist/server/app-page-head.js.map +0 -1
  781. package/dist/server/app-page-method.js.map +0 -1
  782. package/dist/server/app-page-params.js.map +0 -1
  783. package/dist/server/app-page-probe.js.map +0 -1
  784. package/dist/server/app-page-render-identity.js.map +0 -1
  785. package/dist/server/app-page-render-observation.js.map +0 -1
  786. package/dist/server/app-page-render.js.map +0 -1
  787. package/dist/server/app-page-request.js.map +0 -1
  788. package/dist/server/app-page-response.js.map +0 -1
  789. package/dist/server/app-page-route-wiring.js.map +0 -1
  790. package/dist/server/app-page-segment-state.js.map +0 -1
  791. package/dist/server/app-page-stream.js.map +0 -1
  792. package/dist/server/app-post-middleware-context.js.map +0 -1
  793. package/dist/server/app-prerender-endpoints.js.map +0 -1
  794. package/dist/server/app-prerender-static-params.js.map +0 -1
  795. package/dist/server/app-render-dependency.js.map +0 -1
  796. package/dist/server/app-request-context.js.map +0 -1
  797. package/dist/server/app-route-handler-cache.js.map +0 -1
  798. package/dist/server/app-route-handler-dispatch.js.map +0 -1
  799. package/dist/server/app-route-handler-execution.js.map +0 -1
  800. package/dist/server/app-route-handler-policy.js.map +0 -1
  801. package/dist/server/app-route-handler-response.js.map +0 -1
  802. package/dist/server/app-route-handler-runtime.js.map +0 -1
  803. package/dist/server/app-router-entry.js.map +0 -1
  804. package/dist/server/app-rsc-cache-busting.js.map +0 -1
  805. package/dist/server/app-rsc-embedded-chunks.js.map +0 -1
  806. package/dist/server/app-rsc-error-handler.js.map +0 -1
  807. package/dist/server/app-rsc-errors.js.map +0 -1
  808. package/dist/server/app-rsc-handler.js.map +0 -1
  809. package/dist/server/app-rsc-render-mode.js.map +0 -1
  810. package/dist/server/app-rsc-request-normalization.js.map +0 -1
  811. package/dist/server/app-rsc-response-finalizer.js.map +0 -1
  812. package/dist/server/app-rsc-route-matching.js.map +0 -1
  813. package/dist/server/app-segment-config.js.map +0 -1
  814. package/dist/server/app-server-action-execution.js.map +0 -1
  815. package/dist/server/app-ssr-entry.js.map +0 -1
  816. package/dist/server/app-ssr-error-meta.js.map +0 -1
  817. package/dist/server/app-ssr-stream.js.map +0 -1
  818. package/dist/server/app-static-generation.js.map +0 -1
  819. package/dist/server/artifact-compatibility.js.map +0 -1
  820. package/dist/server/cache-control.js.map +0 -1
  821. package/dist/server/cache-headers.js.map +0 -1
  822. package/dist/server/cache-proof.js.map +0 -1
  823. package/dist/server/client-reuse-manifest.js.map +0 -1
  824. package/dist/server/client-trace-metadata.js.map +0 -1
  825. package/dist/server/cookie-utils.js.map +0 -1
  826. package/dist/server/csp.js.map +0 -1
  827. package/dist/server/default-global-error-module.js.map +0 -1
  828. package/dist/server/default-not-found-module.js.map +0 -1
  829. package/dist/server/dev-error-overlay-store.js.map +0 -1
  830. package/dist/server/dev-error-overlay.js.map +0 -1
  831. package/dist/server/dev-lockfile.js.map +0 -1
  832. package/dist/server/dev-module-runner.js.map +0 -1
  833. package/dist/server/dev-origin-check.js.map +0 -1
  834. package/dist/server/dev-route-files.js.map +0 -1
  835. package/dist/server/dev-server.js.map +0 -1
  836. package/dist/server/edge-api-runtime.js.map +0 -1
  837. package/dist/server/file-based-metadata.js.map +0 -1
  838. package/dist/server/headers.js.map +0 -1
  839. package/dist/server/html.js.map +0 -1
  840. package/dist/server/http-error-responses.js.map +0 -1
  841. package/dist/server/image-optimization.js.map +0 -1
  842. package/dist/server/implicit-tags.js.map +0 -1
  843. package/dist/server/instrumentation-runtime.js.map +0 -1
  844. package/dist/server/instrumentation.js.map +0 -1
  845. package/dist/server/isr-cache.js.map +0 -1
  846. package/dist/server/metadata-route-build-data.js.map +0 -1
  847. package/dist/server/metadata-route-response.js.map +0 -1
  848. package/dist/server/metadata-routes.js.map +0 -1
  849. package/dist/server/middleware-matcher.js.map +0 -1
  850. package/dist/server/middleware-request-headers.js.map +0 -1
  851. package/dist/server/middleware-response-headers.js.map +0 -1
  852. package/dist/server/middleware-runtime.js.map +0 -1
  853. package/dist/server/middleware.js.map +0 -1
  854. package/dist/server/navigation-planner.js.map +0 -1
  855. package/dist/server/navigation-trace.js.map +0 -1
  856. package/dist/server/next-error-digest.js.map +0 -1
  857. package/dist/server/normalize-path.js.map +0 -1
  858. package/dist/server/pages-api-route.js.map +0 -1
  859. package/dist/server/pages-body-parser-config.js.map +0 -1
  860. package/dist/server/pages-data-route.js.map +0 -1
  861. package/dist/server/pages-default-404.js.map +0 -1
  862. package/dist/server/pages-document-initial-props.js.map +0 -1
  863. package/dist/server/pages-i18n.js.map +0 -1
  864. package/dist/server/pages-media-type.js.map +0 -1
  865. package/dist/server/pages-node-compat.js.map +0 -1
  866. package/dist/server/pages-page-data.js.map +0 -1
  867. package/dist/server/pages-page-method.js.map +0 -1
  868. package/dist/server/pages-page-response.js.map +0 -1
  869. package/dist/server/pages-serializable-props.js.map +0 -1
  870. package/dist/server/prerender-route-params.js.map +0 -1
  871. package/dist/server/prerender-work-unit-setup.js.map +0 -1
  872. package/dist/server/prod-server.js.map +0 -1
  873. package/dist/server/proxy-trust.js.map +0 -1
  874. package/dist/server/request-log.js.map +0 -1
  875. package/dist/server/request-pipeline.js.map +0 -1
  876. package/dist/server/rsc-stream-hints.js.map +0 -1
  877. package/dist/server/seed-cache.js.map +0 -1
  878. package/dist/server/server-action-not-found.js.map +0 -1
  879. package/dist/server/server-globals.js.map +0 -1
  880. package/dist/server/skip-cache-proof.js.map +0 -1
  881. package/dist/server/socket-error-backstop.js.map +0 -1
  882. package/dist/server/static-file-cache.js.map +0 -1
  883. package/dist/server/streaming-metadata.js.map +0 -1
  884. package/dist/server/worker-utils.js.map +0 -1
  885. package/dist/shims/amp.js.map +0 -1
  886. package/dist/shims/app-router-scroll-state.js.map +0 -1
  887. package/dist/shims/app-router-scroll.js.map +0 -1
  888. package/dist/shims/app.js.map +0 -1
  889. package/dist/shims/before-interactive-context.js.map +0 -1
  890. package/dist/shims/cache-for-request.js.map +0 -1
  891. package/dist/shims/cache-runtime.js.map +0 -1
  892. package/dist/shims/cache.js.map +0 -1
  893. package/dist/shims/client-hook-error.js.map +0 -1
  894. package/dist/shims/client-locale.js.map +0 -1
  895. package/dist/shims/compat-router.js.map +0 -1
  896. package/dist/shims/config.js.map +0 -1
  897. package/dist/shims/constants.js.map +0 -1
  898. package/dist/shims/default-global-error.js.map +0 -1
  899. package/dist/shims/default-not-found.js.map +0 -1
  900. package/dist/shims/document.js.map +0 -1
  901. package/dist/shims/dynamic.js.map +0 -1
  902. package/dist/shims/error-boundary.js.map +0 -1
  903. package/dist/shims/error.js.map +0 -1
  904. package/dist/shims/fetch-cache.js.map +0 -1
  905. package/dist/shims/font-google-base.js.map +0 -1
  906. package/dist/shims/font-local.js.map +0 -1
  907. package/dist/shims/font-utils.js.map +0 -1
  908. package/dist/shims/form.js.map +0 -1
  909. package/dist/shims/hash-scroll.js.map +0 -1
  910. package/dist/shims/head-state.js.map +0 -1
  911. package/dist/shims/head.js.map +0 -1
  912. package/dist/shims/headers.js.map +0 -1
  913. package/dist/shims/i18n-context.js.map +0 -1
  914. package/dist/shims/i18n-state.js.map +0 -1
  915. package/dist/shims/image-config.js.map +0 -1
  916. package/dist/shims/image.js.map +0 -1
  917. package/dist/shims/internal/als-registry.js.map +0 -1
  918. package/dist/shims/internal/app-route-detection.js.map +0 -1
  919. package/dist/shims/internal/app-router-context.js.map +0 -1
  920. package/dist/shims/internal/cookie-serialize.js.map +0 -1
  921. package/dist/shims/internal/make-hanging-promise.js.map +0 -1
  922. package/dist/shims/internal/pages-data-target.js.map +0 -1
  923. package/dist/shims/internal/pages-data-url.js.map +0 -1
  924. package/dist/shims/internal/parse-cookie-header.js.map +0 -1
  925. package/dist/shims/internal/router-context.js.map +0 -1
  926. package/dist/shims/internal/utils.js.map +0 -1
  927. package/dist/shims/internal/work-unit-async-storage.js.map +0 -1
  928. package/dist/shims/layout-segment-context.js.map +0 -1
  929. package/dist/shims/legacy-image.js.map +0 -1
  930. package/dist/shims/link-prefetch.js.map +0 -1
  931. package/dist/shims/link.js.map +0 -1
  932. package/dist/shims/metadata.js.map +0 -1
  933. package/dist/shims/navigation-state.js.map +0 -1
  934. package/dist/shims/navigation.js.map +0 -1
  935. package/dist/shims/navigation.react-server.js.map +0 -1
  936. package/dist/shims/offline.js.map +0 -1
  937. package/dist/shims/og.js.map +0 -1
  938. package/dist/shims/pages-router-runtime.js.map +0 -1
  939. package/dist/shims/readonly-url-search-params.js.map +0 -1
  940. package/dist/shims/request-context.js.map +0 -1
  941. package/dist/shims/root-params.js.map +0 -1
  942. package/dist/shims/router-state.js.map +0 -1
  943. package/dist/shims/router.js.map +0 -1
  944. package/dist/shims/script-nonce-context.js.map +0 -1
  945. package/dist/shims/script.js.map +0 -1
  946. package/dist/shims/server.js.map +0 -1
  947. package/dist/shims/slot.js.map +0 -1
  948. package/dist/shims/thenable-params.js.map +0 -1
  949. package/dist/shims/unified-request-context.js.map +0 -1
  950. package/dist/shims/unrecognized-action-error.js.map +0 -1
  951. package/dist/shims/url-safety.js.map +0 -1
  952. package/dist/shims/url-utils.js.map +0 -1
  953. package/dist/shims/use-merged-ref.js.map +0 -1
  954. package/dist/shims/web-vitals.js.map +0 -1
  955. package/dist/typegen.js.map +0 -1
  956. package/dist/utils/asset-prefix.js.map +0 -1
  957. package/dist/utils/base-path.js.map +0 -1
  958. package/dist/utils/cache-control-metadata.js.map +0 -1
  959. package/dist/utils/domain-locale.js.map +0 -1
  960. package/dist/utils/encode-cache-tag.js.map +0 -1
  961. package/dist/utils/error-cause.js.map +0 -1
  962. package/dist/utils/hash.js.map +0 -1
  963. package/dist/utils/html-limited-bots.js.map +0 -1
  964. package/dist/utils/lazy-chunks.js.map +0 -1
  965. package/dist/utils/manifest-paths.js.map +0 -1
  966. package/dist/utils/mdx-scan.js.map +0 -1
  967. package/dist/utils/navigation-signal.js.map +0 -1
  968. package/dist/utils/path.js.map +0 -1
  969. package/dist/utils/prerender-output-paths.js.map +0 -1
  970. package/dist/utils/project.js.map +0 -1
  971. package/dist/utils/public-routes.js.map +0 -1
  972. package/dist/utils/query.js.map +0 -1
  973. package/dist/utils/record.js.map +0 -1
  974. package/dist/utils/safe-json-file.js.map +0 -1
  975. package/dist/utils/sorted-array.js.map +0 -1
  976. package/dist/utils/text-stream.js.map +0 -1
  977. package/dist/utils/vinext-root.js.map +0 -1
@@ -1,37 +1,40 @@
1
1
  import { stripBasePath } from "../utils/base-path.js";
2
- import { ACTION_REDIRECT_HEADER, VINEXT_MOUNTED_SLOTS_HEADER, VINEXT_PARAMS_HEADER, VINEXT_RSC_REDIRECT_HEADER } from "./headers.js";
2
+ import { ACTION_REDIRECT_HEADER, ACTION_REDIRECT_STATUS_HEADER, VINEXT_CLIENT_REUSE_MANIFEST_HEADER, VINEXT_PARAMS_HEADER, VINEXT_RSC_REDIRECT_HEADER } from "./headers.js";
3
3
  import { DANGEROUS_URL_BLOCK_MESSAGE, isDangerousScheme } from "../shims/url-safety.js";
4
4
  import { AppElementsWire } from "./app-elements-wire.js";
5
5
  import { APP_RSC_RENDER_MODE_REFRESH_PRESERVE_UI } from "./app-rsc-render-mode.js";
6
6
  import { getMountedSlotIdsHeader, resolveVisitedResponseInterceptionContext } from "./app-elements.js";
7
+ import { AppRouterContext } from "../shims/internal/app-router-context.js";
7
8
  import { installWindowNext } from "../client/window-next.js";
8
- import { scrollToHashTargetOnNextFrame } from "../shims/hash-scroll.js";
9
+ import { retryScrollTo, scrollToHashTargetOnNextFrame } from "../shims/hash-scroll.js";
9
10
  import { getNavigationRuntime, registerNavigationRuntimeBootstrap, registerNavigationRuntimeFunctions } from "../client/navigation-runtime.js";
10
11
  import { notifyAppRouterTransitionStart } from "../client/instrumentation-client-state.js";
11
12
  import { resolveManifestNavigationInterceptionContext } from "./app-browser-interception-context.js";
12
- import { createHistoryStateWithNavigationMetadata, createHistoryStateWithPreviousNextUrl, readHistoryStatePreviousNextUrl, readHistoryStateTraversalIndex, resolveHistoryTraversalIntent } from "./app-history-state.js";
13
- import { VINEXT_RSC_COMPATIBILITY_ID_HEADER, createRscRequestHeaders, createRscRequestUrl, getVinextRscCompatibilityId, resolveHardNavigationTargetFromRscResponse, resolveRscCompatibilityNavigationDecision } from "./app-rsc-cache-busting.js";
14
- import { AppRouterContext } from "../shims/internal/app-router-context.js";
15
- import { consumeAppRouterScrollIntent } from "../shims/app-router-scroll-state.js";
16
- import { __basePath, appRouterInstance, commitClientNavigationState, consumePrefetchResponse, createCachedRscResponseSnapshot, createClientNavigationRenderSnapshot, getClientNavigationRenderContext, getPrefetchCache, invalidatePrefetchCache, navigateClientSide, pushHistoryStateWithoutNotify, replaceClientParamsWithoutNotify, replaceHistoryStateWithoutNotify, restoreRscResponse, setClientParams, setMountedSlotsHeader, setNavigationContext, setPendingPathname } from "../shims/navigation.js";
13
+ import { createHistoryStateWithNavigationMetadata, isHistoryStateBfcacheVersionCurrent, readHistoryStateBfcacheIds, readHistoryStateBfcacheVersion, readHistoryStatePreviousNextUrl, readHistoryStateTraversalIndex, resolveHistoryTraversalIntent } from "./app-history-state.js";
14
+ import { VINEXT_RSC_COMPATIBILITY_ID_HEADER, createRscRequestHeaders, createRscRequestUrl, createServerActionRequestUrl, getVinextRscCompatibilityId, resolveHardNavigationTargetFromRscResponse, resolveRscCompatibilityNavigationDecision } from "./app-rsc-cache-busting.js";
15
+ import { AppBrowserMpaNavigationScheduler } from "./app-browser-mpa-navigation.js";
16
+ import { beginAppRouterScrollIntent, consumeAppRouterScrollIntent } from "../shims/app-router-scroll-state.js";
17
+ import { __basePath, appRouterInstance, commitClientNavigationState, consumePrefetchResponseForNavigation, createCachedRscResponseSnapshot, createClientNavigationRenderSnapshot, decodeRedirectError, getBfcacheIdMapContext, getClientNavigationRenderContext, getPrefetchCache, invalidatePrefetchCache, isRedirectError, pushHistoryStateWithoutNotify, replaceClientParamsWithoutNotify, replaceHistoryStateWithoutNotify, resolvePrefetchCacheEntryMountedSlotsHeader, restoreRscResponse, saveScrollPosition, setClientParams, setMountedSlotsHeader, setNavigationContext, setPendingPathname, useRouter } from "../shims/navigation.js";
17
18
  import { DevRecoveryBoundary, RedirectBoundary } from "../shims/error-boundary.js";
18
19
  import { AppRouterScrollCommitProvider } from "../shims/app-router-scroll.js";
19
- import { ElementsContext, Slot } from "../shims/slot.js";
20
+ import { BfcacheStateKeyMapContext, ElementsContext, Slot } from "../shims/slot.js";
20
21
  import "../client/instrumentation-client.js";
21
- import { createDiscardedServerActionRefreshScheduler, createServerActionInitiationSnapshot, isServerActionResult, parseServerActionRevalidationHeader, resolveServerActionRedirectLocation, shouldClearClientNavigationCachesForServerActionResult } from "./app-browser-action-result.js";
22
+ import { createDiscardedServerActionRefreshScheduler, createServerActionInitiationSnapshot, isServerActionResult, normalizeServerActionThrownValue, parseServerActionRevalidationHeader, readInvalidServerActionResponseError, resolveServerActionRedirectCompatibilityHardNavigationTarget, shouldCheckRscCompatibilityForServerActionResponse, shouldClearClientNavigationCachesForServerActionResult } from "./app-browser-action-result.js";
23
+ import { createClientReuseManifestHeaderFromVisibleAppState } from "./app-browser-client-reuse-manifest.js";
22
24
  import { chunksToReadableStream, createProgressiveRscStream, getVinextBrowserGlobal } from "./app-browser-stream.js";
23
- import { FRESH_APP_NAVIGATION_PAYLOAD_ORIGIN, VISITED_CACHE_APP_NAVIGATION_PAYLOAD_ORIGIN, isCacheRestorableAppPayloadMetadata, resolveInterceptionContextFromPreviousNextUrl, resolveServerActionRequestState } from "./app-browser-state.js";
25
+ import { FRESH_APP_NAVIGATION_PAYLOAD_ORIGIN, VISITED_CACHE_APP_NAVIGATION_PAYLOAD_ORIGIN, createBfcacheSegmentStateKeyMap, createInitialBfcacheIdMap, isCacheRestorableAppPayloadMetadata, resolveInterceptionContextFromPreviousNextUrl, resolveServerActionRequestState } from "./app-browser-state.js";
24
26
  import { clearHardNavigationLoopGuard, createAppBrowserNavigationController } from "./app-browser-navigation-controller.js";
25
27
  import { consumeInitialFormState, createVinextHydrateRootOptions, hydrateRootInTransition } from "./app-browser-hydration.js";
28
+ import { createVisitedResponseCacheEntry, isVisitedResponseCacheEntryFresh } from "./app-visited-response-cache.js";
26
29
  import { createPopstateRestoreHandler } from "./app-browser-popstate.js";
27
30
  import { createOnUncaughtError } from "./app-browser-error.js";
28
31
  import { dismissOverlay } from "./dev-error-overlay-store.js";
29
- import { devOnCaughtError, devOnUncaughtError, installDevErrorOverlay } from "./dev-error-overlay.js";
32
+ import { devOnCaughtError, devOnUncaughtError, installDevErrorOverlay, installViteHmrErrorHandler, reportInitialDevServerErrors } from "./dev-error-overlay.js";
30
33
  import { throwOnServerActionNotFound } from "./server-action-not-found.js";
31
34
  import { resolveRscRedirectLifecycleHop } from "./app-browser-rsc-redirect.js";
32
35
  import { createOptimisticRouteTemplate, getOptimisticPrefetchSourceKey, getOptimisticRouteTemplateKey, resolveOptimisticNavigationPayload } from "./app-optimistic-routing.js";
33
36
  import { removeStylesheetLinksCoveredByInlineCss } from "./app-inline-css-client.js";
34
- import { createElement, startTransition, use, useLayoutEffect, useRef, useState } from "react";
37
+ import { createElement, startTransition, use, useEffect, useLayoutEffect, useMemo, useRef, useState } from "react";
35
38
  import { createFromFetch, createFromReadableStream, createTemporaryReferenceSet, encodeReply, setServerCallback } from "@vitejs/plugin-rsc/browser";
36
39
  import { hydrateRoot } from "react-dom/client";
37
40
  //#region src/server/app-browser-entry.ts
@@ -47,8 +50,6 @@ function toOperationLane(kind) {
47
50
  }
48
51
  }
49
52
  const MAX_VISITED_RESPONSE_CACHE_SIZE = 50;
50
- const VISITED_RESPONSE_CACHE_TTL = 5 * 6e4;
51
- const MAX_TRAVERSAL_CACHE_TTL = 30 * 6e4;
52
53
  const CLIENT_RSC_COMPATIBILITY_ID = getVinextRscCompatibilityId();
53
54
  const optimisticRouteTemplates = /* @__PURE__ */ new Map();
54
55
  const optimisticRouteTemplateSources = /* @__PURE__ */ new Set();
@@ -65,6 +66,17 @@ const discardedServerActionRefreshScheduler = createDiscardedServerActionRefresh
65
66
  getNavigationRuntime()?.functions.navigate?.(window.location.href, 0, "refresh", void 0, void 0, true);
66
67
  } });
67
68
  const NavigationCommitSignal = browserNavigationController.NavigationCommitSignal;
69
+ const ACTION_HTTP_FALLBACK_ROBOTS_META_ATTR = "data-vinext-action-http-fallback";
70
+ function syncServerActionHttpFallbackHead(status) {
71
+ document.head.querySelectorAll(`meta[${ACTION_HTTP_FALLBACK_ROBOTS_META_ATTR}="robots"]`).forEach((node) => node.remove());
72
+ if (status !== 404) return;
73
+ const robots = document.createElement("meta");
74
+ robots.name = "robots";
75
+ robots.content = "noindex";
76
+ robots.setAttribute(ACTION_HTTP_FALLBACK_ROBOTS_META_ATTR, "robots");
77
+ document.head.appendChild(robots);
78
+ }
79
+ const BfcacheIdMapContext = getBfcacheIdMapContext();
68
80
  function parseEncodedJsonHeader(value) {
69
81
  if (!value) return null;
70
82
  try {
@@ -80,8 +92,30 @@ let latestClientParams = {};
80
92
  const visitedResponseCache = /* @__PURE__ */ new Map();
81
93
  let browserRouterStateHasEverCommitted = false;
82
94
  let pendingNavigationRecoveryHref = null;
95
+ const mpaNavigationScheduler = new AppBrowserMpaNavigationScheduler();
96
+ const unresolvedMpaNavigation = new Promise(() => {});
97
+ const RSC_HMR_SETTLE_DELAY_MS = 150;
98
+ let latestRscHmrUpdateId = 0;
99
+ const initialHistoryBfcacheVersion = readHistoryStateBfcacheVersion(window.history.state);
100
+ let currentBfcacheVersion = initialHistoryBfcacheVersion === null ? 0 : initialHistoryBfcacheVersion + 1;
83
101
  let currentHistoryTraversalIndex = readHistoryStateTraversalIndex(window.history.state) ?? 0;
84
102
  let nextHistoryTraversalIndex = currentHistoryTraversalIndex;
103
+ function isCurrentBfcacheVersion(state) {
104
+ return isHistoryStateBfcacheVersionCurrent(state, currentBfcacheVersion);
105
+ }
106
+ function waitForRscHmrSettle(delayMs = RSC_HMR_SETTLE_DELAY_MS) {
107
+ return new Promise((resolve) => {
108
+ window.setTimeout(resolve, delayMs);
109
+ });
110
+ }
111
+ function readCurrentBfcacheVersionHistoryIds(state) {
112
+ const ids = readHistoryStateBfcacheIds(state);
113
+ if (ids === null) return null;
114
+ return isCurrentBfcacheVersion(state) ? ids : null;
115
+ }
116
+ function invalidateRestorableBfcacheIds() {
117
+ currentBfcacheVersion += 1;
118
+ }
85
119
  function allocateNavigationHistoryTraversalIndex(historyUpdateMode) {
86
120
  switch (historyUpdateMode) {
87
121
  case "push": return nextHistoryTraversalIndex + 1;
@@ -97,7 +131,10 @@ function commitHistoryTraversalIndex(index) {
97
131
  function commitHashOnlyNavigation(href, historyUpdateMode, scroll) {
98
132
  const navigationHistoryIndex = allocateNavigationHistoryTraversalIndex(historyUpdateMode);
99
133
  const previousNextUrl = hasBrowserRouterState() ? getBrowserRouterState().previousNextUrl : readHistoryStatePreviousNextUrl(window.history.state);
134
+ const bfcacheIds = hasBrowserRouterState() ? getBrowserRouterState().bfcacheIds : readCurrentBfcacheVersionHistoryIds(window.history.state);
100
135
  const historyState = createHistoryStateWithNavigationMetadata(createHashOnlyNavigationBaseHistoryState(historyUpdateMode, scroll), {
136
+ bfcacheIds,
137
+ bfcacheVersion: bfcacheIds === null ? void 0 : currentBfcacheVersion,
101
138
  previousNextUrl,
102
139
  traversalIndex: navigationHistoryIndex
103
140
  });
@@ -153,6 +190,7 @@ function clearPrefetchState() {
153
190
  function clearClientNavigationCaches() {
154
191
  clearVisitedResponseCache();
155
192
  clearPrefetchState();
193
+ invalidateRestorableBfcacheIds();
156
194
  }
157
195
  function isSettledPrefetchCacheEntry(entry) {
158
196
  return entry.outcome === "cache-seeded" && entry.pending === void 0 && entry.snapshot !== void 0;
@@ -171,7 +209,7 @@ function parsePrefetchCacheKey(cacheKey) {
171
209
  async function learnOptimisticRouteTemplateFromPrefetch(options) {
172
210
  const source = parsePrefetchCacheKey(options.cacheKey);
173
211
  if (source.interceptionContext !== options.interceptionContext) return false;
174
- if ((options.entry.snapshot.mountedSlotsHeader ?? null) !== options.mountedSlotsHeader) return false;
212
+ if (resolvePrefetchCacheEntryMountedSlotsHeader(options.entry) !== options.mountedSlotsHeader) return false;
175
213
  if (options.interceptionContext !== null) return false;
176
214
  const elements = await decodeAppElementsPromise(createFromFetch(Promise.resolve(restoreRscResponse(options.entry.snapshot))));
177
215
  const template = createOptimisticRouteTemplate({
@@ -220,11 +258,26 @@ async function learnOptimisticRouteTemplatesFromPrefetchCache(options) {
220
258
  if (learning.length === 0) return;
221
259
  await Promise.allSettled(learning);
222
260
  }
223
- function syncCurrentHistoryStatePreviousNextUrl(previousNextUrl) {
224
- if (readHistoryStatePreviousNextUrl(window.history.state) === previousNextUrl) return;
225
- const nextHistoryState = createHistoryStateWithPreviousNextUrl(window.history.state, previousNextUrl);
261
+ function areBfcacheIdMapsEqual(a, b) {
262
+ if (a === b) return true;
263
+ if (a === null || b === null) return false;
264
+ const aEntries = Object.entries(a);
265
+ const bEntries = Object.entries(b);
266
+ if (aEntries.length !== bEntries.length) return false;
267
+ return aEntries.every(([key, value]) => b[key] === value);
268
+ }
269
+ function isHistoryStateNavigationMetadataInSync(state, previousNextUrl, bfcacheIds) {
270
+ return readHistoryStatePreviousNextUrl(state) === previousNextUrl && (bfcacheIds === void 0 || areBfcacheIdMapsEqual(readHistoryStateBfcacheIds(state), bfcacheIds) && isCurrentBfcacheVersion(state));
271
+ }
272
+ function syncCurrentHistoryStatePreviousNextUrl(previousNextUrl, bfcacheIds) {
273
+ if (isHistoryStateNavigationMetadataInSync(window.history.state, previousNextUrl, bfcacheIds)) return;
274
+ const nextHistoryState = createHistoryStateWithNavigationMetadata(window.history.state, {
275
+ bfcacheIds,
276
+ bfcacheVersion: bfcacheIds === void 0 ? void 0 : currentBfcacheVersion,
277
+ previousNextUrl
278
+ });
226
279
  replaceHistoryStateWithoutNotify(nextHistoryState, "", window.location.href);
227
- if (readHistoryStatePreviousNextUrl(window.history.state) === previousNextUrl) return;
280
+ if (isHistoryStateNavigationMetadataInSync(window.history.state, previousNextUrl, bfcacheIds)) return;
228
281
  window.history.replaceState(nextHistoryState, "", window.location.href);
229
282
  }
230
283
  function createActionInitiationSnapshot() {
@@ -236,7 +289,7 @@ function createActionInitiationSnapshot() {
236
289
  });
237
290
  }
238
291
  function createNavigationCommitEffect(options) {
239
- const { href, historyUpdateMode, navId, params, previousNextUrl, targetHistoryIndex } = options;
292
+ const { bfcacheIds, href, historyUpdateMode, navId, params, previousNextUrl, targetHistoryIndex } = options;
240
293
  return () => {
241
294
  if (!browserNavigationController.isCurrentNavigation(navId)) {
242
295
  commitClientNavigationState(void 0, { releaseSnapshot: true });
@@ -246,6 +299,8 @@ function createNavigationCommitEffect(options) {
246
299
  const preserveExistingState = historyUpdateMode === "replace";
247
300
  const navigationHistoryIndex = targetHistoryIndex !== void 0 ? targetHistoryIndex : allocateNavigationHistoryTraversalIndex(historyUpdateMode);
248
301
  const historyState = createHistoryStateWithNavigationMetadata(preserveExistingState ? window.history.state : null, {
302
+ bfcacheIds,
303
+ bfcacheVersion: currentBfcacheVersion,
249
304
  previousNextUrl,
250
305
  traversalIndex: navigationHistoryIndex
251
306
  });
@@ -262,7 +317,7 @@ function createNavigationCommitEffect(options) {
262
317
  commitHistoryTraversalIndex(navigationHistoryIndex);
263
318
  }
264
319
  if (!wroteHistoryState) {
265
- syncCurrentHistoryStatePreviousNextUrl(previousNextUrl);
320
+ syncCurrentHistoryStatePreviousNextUrl(previousNextUrl, bfcacheIds);
266
321
  stageClientParams(params);
267
322
  if (targetHistoryIndex !== void 0) commitHistoryTraversalIndex(targetHistoryIndex);
268
323
  }
@@ -270,7 +325,8 @@ function createNavigationCommitEffect(options) {
270
325
  commitClientNavigationState(navId);
271
326
  };
272
327
  }
273
- async function renderNavigationPayload(payload, navigationSnapshot, targetHref, navId, historyUpdateMode, params, previousNextUrl, pendingRouterState, payloadOrigin, actionType = "navigate", operationLane = "navigation", traversalIntent = null, scrollIntent = null) {
328
+ async function renderNavigationPayload(payload, navigationSnapshot, targetHref, navId, historyUpdateMode, params, previousNextUrl, pendingRouterState, payloadOrigin, actionType = "navigate", operationLane = "navigation", traversalIntent = null, scrollIntent = null, restoredBfcacheIds = null) {
329
+ syncServerActionHttpFallbackHead(null);
274
330
  try {
275
331
  return await browserNavigationController.renderNavigationPayload({
276
332
  actionType,
@@ -287,6 +343,7 @@ async function renderNavigationPayload(payload, navigationSnapshot, targetHref,
287
343
  pendingRouterState,
288
344
  previousNextUrl,
289
345
  scrollIntent,
346
+ restoredBfcacheIds,
290
347
  targetHistoryIndex: traversalIntent === null ? void 0 : traversalIntent.targetHistoryIndex,
291
348
  targetHref,
292
349
  navId
@@ -296,6 +353,52 @@ async function renderNavigationPayload(payload, navigationSnapshot, targetHref,
296
353
  throw error;
297
354
  }
298
355
  }
356
+ function resolveActionRedirectTarget(response) {
357
+ const actionRedirect = response.headers.get(ACTION_REDIRECT_HEADER);
358
+ if (!actionRedirect) return null;
359
+ if (isDangerousScheme(actionRedirect)) {
360
+ console.error(DANGEROUS_URL_BLOCK_MESSAGE);
361
+ return null;
362
+ }
363
+ try {
364
+ let redirectUrl;
365
+ if (actionRedirect.startsWith("/") || /^[a-z]+:/i.test(actionRedirect)) redirectUrl = new URL(actionRedirect, window.location.href);
366
+ else {
367
+ const baseParsed = new URL(window.location.href);
368
+ let baseDir = baseParsed.pathname;
369
+ if (!baseDir.endsWith("/")) baseDir = baseDir + "/";
370
+ redirectUrl = new URL(actionRedirect, `${baseParsed.origin}${baseDir}${baseParsed.search}`);
371
+ }
372
+ if (redirectUrl.origin !== window.location.origin) {
373
+ browserNavigationController.performHardNavigation(actionRedirect);
374
+ return null;
375
+ }
376
+ const statusHeader = response.headers.get(ACTION_REDIRECT_STATUS_HEADER);
377
+ const status = statusHeader ? parseInt(statusHeader, 10) : 307;
378
+ return {
379
+ href: redirectUrl.href,
380
+ type: response.headers.get("x-action-redirect-type") ?? "push",
381
+ status
382
+ };
383
+ } catch {
384
+ browserNavigationController.performHardNavigation(actionRedirect);
385
+ return null;
386
+ }
387
+ }
388
+ var ServerActionRedirectError = class extends Error {
389
+ digest;
390
+ handled = true;
391
+ constructor(target) {
392
+ super("NEXT_REDIRECT");
393
+ const redirectUrl = new URL(target.href, window.location.href);
394
+ const redirectHref = redirectUrl.pathname + redirectUrl.search + redirectUrl.hash;
395
+ const redirectType = target.type === "push" ? "push" : "replace";
396
+ this.digest = `NEXT_REDIRECT;${redirectType};${encodeURIComponent(redirectHref)};${target.status};`;
397
+ }
398
+ };
399
+ function createServerActionRedirectError(target) {
400
+ return new ServerActionRedirectError(target);
401
+ }
299
402
  async function commitSameUrlNavigatePayload(nextElements, actionInitiation, returnValue, revalidation = "none") {
300
403
  const navigationSnapshot = createClientNavigationRenderSnapshot(actionInitiation.href, actionInitiation.routerState.navigationSnapshot.params);
301
404
  return browserNavigationController.commitSameUrlNavigatePayload(nextElements, navigationSnapshot, returnValue, actionInitiation.routerState, {
@@ -322,18 +425,10 @@ function getVisitedResponse(rscUrl, interceptionContext, mountedSlotsHeader, nav
322
425
  visitedResponseCache.delete(cacheKey);
323
426
  return null;
324
427
  }
325
- if (navigationKind === "refresh") return null;
326
- if (navigationKind === "traverse") {
327
- const createdAt = cached.expiresAt - VISITED_RESPONSE_CACHE_TTL;
328
- if (Date.now() - createdAt >= MAX_TRAVERSAL_CACHE_TTL) {
329
- visitedResponseCache.delete(cacheKey);
330
- return null;
331
- }
332
- visitedResponseCache.delete(cacheKey);
333
- visitedResponseCache.set(cacheKey, cached);
334
- return cached;
335
- }
336
- if (cached.expiresAt > Date.now()) {
428
+ if (isVisitedResponseCacheEntryFresh(cached, {
429
+ navigationKind,
430
+ now: Date.now()
431
+ })) {
337
432
  visitedResponseCache.delete(cacheKey);
338
433
  visitedResponseCache.set(cacheKey, cached);
339
434
  return cached;
@@ -341,16 +436,23 @@ function getVisitedResponse(rscUrl, interceptionContext, mountedSlotsHeader, nav
341
436
  visitedResponseCache.delete(cacheKey);
342
437
  return null;
343
438
  }
439
+ function deleteVisitedResponse(rscUrl, interceptionContext) {
440
+ visitedResponseCache.delete(AppElementsWire.encodeCacheKey(rscUrl, interceptionContext));
441
+ }
344
442
  function storeVisitedResponseSnapshot(rscUrl, interceptionContext, snapshot, params) {
345
443
  const cacheKey = AppElementsWire.encodeCacheKey(rscUrl, interceptionContext);
346
444
  visitedResponseCache.delete(cacheKey);
347
445
  evictVisitedResponseCacheIfNeeded();
348
446
  const now = Date.now();
349
- visitedResponseCache.set(cacheKey, {
447
+ visitedResponseCache.set(cacheKey, createVisitedResponseCacheEntry({
448
+ now,
350
449
  params,
351
- expiresAt: now + VISITED_RESPONSE_CACHE_TTL,
352
450
  response: snapshot
353
- });
451
+ }));
452
+ }
453
+ function isSamePageSearchNavigation(currentSnapshot, targetUrl) {
454
+ if (stripBasePath(targetUrl.pathname, __basePath) !== currentSnapshot.pathname) return false;
455
+ return targetUrl.searchParams.toString() !== currentSnapshot.searchParams.toString();
354
456
  }
355
457
  function getRequestState(navigationKind, targetPathname, previousNextUrlOverride, traverseHistoryState) {
356
458
  if (previousNextUrlOverride !== void 0) return {
@@ -399,14 +501,44 @@ function getRequestState(navigationKind, targetPathname, previousNextUrlOverride
399
501
  function handleDevRecoveryBoundaryCatch(resetKey) {
400
502
  browserNavigationController.drainPrePaintEffects(resetKey);
401
503
  }
504
+ function isMpaNavigationState(value) {
505
+ return value !== null && typeof value === "object" && "kind" in value && value.kind === "mpa-navigation";
506
+ }
507
+ function performMpaNavigation(href, historyUpdateMode) {
508
+ mpaNavigationScheduler.navigate(window, href, historyUpdateMode);
509
+ }
510
+ function AppRouterRedirectBridge({ children }) {
511
+ const router = useRouter();
512
+ useEffect(() => {
513
+ const handleUnhandledRedirect = (event) => {
514
+ const error = "reason" in event ? event.reason : event.error;
515
+ if (!isRedirectError(error)) return;
516
+ const result = decodeRedirectError(error.digest);
517
+ if (!result) return;
518
+ event.preventDefault();
519
+ startTransition(() => {
520
+ if (result.type === "push") router.push(result.url);
521
+ else router.replace(result.url);
522
+ });
523
+ };
524
+ window.addEventListener("error", handleUnhandledRedirect);
525
+ window.addEventListener("unhandledrejection", handleUnhandledRedirect);
526
+ return () => {
527
+ window.removeEventListener("error", handleUnhandledRedirect);
528
+ window.removeEventListener("unhandledrejection", handleUnhandledRedirect);
529
+ };
530
+ }, [router]);
531
+ return children ?? null;
532
+ }
402
533
  function decodeAppElementsPromise(payload) {
403
534
  return Promise.resolve(payload).then((elements) => AppElementsWire.decode(elements));
404
535
  }
405
536
  function BrowserRoot({ initialElements, initialNavigationSnapshot }) {
406
537
  const resolvedElements = use(initialElements);
407
538
  const initialMetadata = AppElementsWire.readMetadata(resolvedElements);
408
- const [treeStateValue, setTreeStateValue] = useState({
539
+ const [treeStateValue, setTreeStateValue] = useState(() => ({
409
540
  activeOperation: null,
541
+ bfcacheIds: createInitialBfcacheIdMap(resolvedElements),
410
542
  elements: resolvedElements,
411
543
  interception: initialMetadata.interception,
412
544
  interceptionContext: initialMetadata.interceptionContext,
@@ -419,12 +551,27 @@ function BrowserRoot({ initialElements, initialNavigationSnapshot }) {
419
551
  routeId: initialMetadata.routeId,
420
552
  slotBindings: initialMetadata.slotBindings,
421
553
  visibleCommitVersion: 0
422
- });
554
+ }));
555
+ if (isMpaNavigationState(treeStateValue)) {
556
+ performMpaNavigation(treeStateValue.href, treeStateValue.historyUpdateMode);
557
+ throw unresolvedMpaNavigation;
558
+ }
423
559
  const treeState = isRouterStatePromise(treeStateValue) ? use(treeStateValue) : treeStateValue;
424
560
  const stateRef = useRef(treeState);
425
561
  stateRef.current = treeState;
426
562
  useLayoutEffect(() => {
427
- const detach = browserNavigationController.attachBrowserRouterState(setTreeStateValue, stateRef);
563
+ const setAppRouterStateValue = (value) => {
564
+ setTreeStateValue(value);
565
+ };
566
+ const detach = browserNavigationController.attachBrowserRouterState(setAppRouterStateValue, stateRef);
567
+ registerNavigationRuntimeFunctions({ navigateExternal: (href, historyUpdateMode) => {
568
+ setTreeStateValue({
569
+ href,
570
+ historyUpdateMode,
571
+ kind: "mpa-navigation"
572
+ });
573
+ return new Promise(() => {});
574
+ } });
428
575
  browserRouterStateHasEverCommitted = true;
429
576
  const hydratedAt = performance.now();
430
577
  window.__VINEXT_HYDRATED_AT = hydratedAt;
@@ -432,6 +579,7 @@ function BrowserRoot({ initialElements, initialNavigationSnapshot }) {
432
579
  window.__NEXT_HYDRATED_AT = hydratedAt;
433
580
  window.__NEXT_HYDRATED_CB?.();
434
581
  return () => {
582
+ registerNavigationRuntimeFunctions({ navigateExternal: void 0 });
435
583
  detach();
436
584
  setMountedSlotsHeader(null);
437
585
  };
@@ -444,12 +592,24 @@ function BrowserRoot({ initialElements, initialNavigationSnapshot }) {
444
592
  useLayoutEffect(() => {
445
593
  if (treeState.renderId !== 0) return;
446
594
  replaceHistoryStateWithoutNotify(createHistoryStateWithNavigationMetadata(window.history.state, {
595
+ bfcacheIds: treeState.bfcacheIds,
596
+ bfcacheVersion: currentBfcacheVersion,
447
597
  previousNextUrl: treeState.previousNextUrl,
448
598
  traversalIndex: currentHistoryTraversalIndex
449
599
  }), "", window.location.href);
450
- }, [treeState.previousNextUrl, treeState.renderId]);
600
+ }, [
601
+ treeState.bfcacheIds,
602
+ treeState.previousNextUrl,
603
+ treeState.renderId
604
+ ]);
451
605
  const routeTree = createElement(RedirectBoundary, null, createElement(NavigationCommitSignal, { renderId: treeState.renderId }, createElement(ElementsContext.Provider, { value: treeState.elements }, createElement(Slot, { id: treeState.routeId }))));
452
- const innerTree = AppRouterContext ? createElement(AppRouterContext.Provider, { value: appRouterInstance }, routeTree) : routeTree;
606
+ const bfcacheStateKeys = useMemo(() => createBfcacheSegmentStateKeyMap({
607
+ elements: treeState.elements,
608
+ pathname: treeState.navigationSnapshot.pathname
609
+ }), [treeState.elements, treeState.navigationSnapshot.pathname]);
610
+ const stateKeyTree = createElement(BfcacheStateKeyMapContext.Provider, { value: bfcacheStateKeys }, routeTree);
611
+ const redirectedTree = createElement(AppRouterRedirectBridge, null, BfcacheIdMapContext ? createElement(BfcacheIdMapContext.Provider, { value: treeState.bfcacheIds }, stateKeyTree) : stateKeyTree);
612
+ const innerTree = AppRouterContext ? createElement(AppRouterContext.Provider, { value: appRouterInstance }, redirectedTree) : redirectedTree;
453
613
  const committedTree = import.meta.env.DEV ? createElement(DevRecoveryBoundary, {
454
614
  resetKey: treeState.renderId,
455
615
  onCatch: handleDevRecoveryBoundaryCatch
@@ -466,16 +626,15 @@ function restoreHydrationNavigationContext(pathname, searchParams, params) {
466
626
  params
467
627
  });
468
628
  }
469
- function restorePopstateScrollPosition(state) {
629
+ function restorePopstateScrollPosition(state, options) {
630
+ const shouldContinue = options?.shouldContinue ?? (() => true);
631
+ if (!shouldContinue()) return;
470
632
  if (!(state && typeof state === "object" && "__vinext_scrollY" in state)) {
471
633
  if (window.location.hash) scrollToHashTargetOnNextFrame(window.location.hash);
472
634
  return;
473
635
  }
474
636
  const y = Number(state.__vinext_scrollY);
475
- const x = "__vinext_scrollX" in state ? Number(state.__vinext_scrollX) : 0;
476
- requestAnimationFrame(() => {
477
- window.scrollTo(x, y);
478
- });
637
+ retryScrollTo("__vinext_scrollX" in state ? Number(state.__vinext_scrollX) : 0, y, { shouldContinue });
479
638
  }
480
639
  function isSameAppRoutePopstateTarget(href) {
481
640
  if (!hasBrowserRouterState()) return false;
@@ -566,9 +725,10 @@ function applyRuntimeRscBootstrap(rsc) {
566
725
  }
567
726
  function registerServerActionCallback() {
568
727
  setServerCallback(async (id, args) => {
728
+ syncServerActionHttpFallbackHead(null);
569
729
  const temporaryReferences = createTemporaryReferenceSet();
570
730
  const actionInitiation = createActionInitiationSnapshot();
571
- syncCurrentHistoryStatePreviousNextUrl(actionInitiation.routerState.previousNextUrl);
731
+ syncCurrentHistoryStatePreviousNextUrl(actionInitiation.routerState.previousNextUrl, actionInitiation.routerState.bfcacheIds);
572
732
  const body = await encodeReply(args, { temporaryReferences });
573
733
  const { headers } = resolveServerActionRequestState({
574
734
  actionId: id,
@@ -576,39 +736,26 @@ function registerServerActionCallback() {
576
736
  elements: actionInitiation.routerState.elements,
577
737
  previousNextUrl: actionInitiation.routerState.previousNextUrl
578
738
  });
579
- const fetchResponse = await fetch(await createRscRequestUrl(actionInitiation.path, headers), {
739
+ const fetchResponse = await fetch(createServerActionRequestUrl(actionInitiation.path), {
580
740
  method: "POST",
581
741
  headers,
582
742
  body
583
743
  });
584
744
  throwOnServerActionNotFound(fetchResponse, id);
585
- const actionRedirect = fetchResponse.headers.get(ACTION_REDIRECT_HEADER);
586
- if (actionRedirect) {
587
- if (isDangerousScheme(actionRedirect)) {
588
- console.error(DANGEROUS_URL_BLOCK_MESSAGE);
589
- return;
590
- }
591
- const historyUpdateMode = (fetchResponse.headers.get("x-action-redirect-type") ?? "push") === "push" ? "push" : "replace";
592
- const hardNavigationMode = historyUpdateMode === "push" ? "assign" : "replace";
593
- let redirectLocation;
594
- try {
595
- redirectLocation = resolveServerActionRedirectLocation({
596
- currentHref: actionInitiation.href,
597
- location: actionRedirect,
598
- origin: window.location.origin
599
- });
600
- } catch {
601
- clearClientNavigationCaches();
602
- browserNavigationController.performHardNavigation(actionRedirect, hardNavigationMode);
603
- return;
604
- }
745
+ const hasActionRedirect = fetchResponse.headers.has(ACTION_REDIRECT_HEADER);
746
+ const actionRedirectTarget = resolveActionRedirectTarget(fetchResponse);
747
+ if (hasActionRedirect && !actionRedirectTarget) return;
748
+ const actionRedirectCompatibilityHardNavigationTarget = resolveServerActionRedirectCompatibilityHardNavigationTarget({
749
+ actionRedirectHref: actionRedirectTarget?.href ?? null,
750
+ clientCompatibilityId: CLIENT_RSC_COMPATIBILITY_ID,
751
+ response: fetchResponse
752
+ });
753
+ if (actionRedirectCompatibilityHardNavigationTarget) {
605
754
  clearClientNavigationCaches();
606
- startTransition(() => {
607
- navigateClientSide(redirectLocation.href, historyUpdateMode, true, true);
608
- });
755
+ browserNavigationController.performHardNavigation(actionRedirectCompatibilityHardNavigationTarget, actionRedirectTarget?.type === "push" ? "assign" : "replace");
609
756
  return;
610
757
  }
611
- if (resolveRscCompatibilityNavigationDecision({
758
+ if (!actionRedirectTarget && shouldCheckRscCompatibilityForServerActionResponse(fetchResponse) && resolveRscCompatibilityNavigationDecision({
612
759
  clientCompatibilityId: CLIENT_RSC_COMPATIBILITY_ID,
613
760
  currentHref: actionInitiation.href,
614
761
  origin: window.location.origin,
@@ -619,12 +766,44 @@ function registerServerActionCallback() {
619
766
  return;
620
767
  }
621
768
  const revalidation = parseServerActionRevalidationHeader(fetchResponse.headers);
622
- const result = await createFromFetch(Promise.resolve(fetchResponse), { temporaryReferences });
769
+ const invalidResponseError = await readInvalidServerActionResponseError(fetchResponse.clone(), actionRedirectTarget !== null);
770
+ if (invalidResponseError) throw invalidResponseError;
771
+ if (actionRedirectTarget && !shouldCheckRscCompatibilityForServerActionResponse(fetchResponse)) {
772
+ browserNavigationController.performHardNavigation(actionRedirectTarget.href);
773
+ return;
774
+ }
775
+ const flightResponse = fetchResponse.status === 303 ? new Response(fetchResponse.body, {
776
+ headers: fetchResponse.headers,
777
+ status: 200,
778
+ statusText: "OK"
779
+ }) : fetchResponse;
780
+ const result = await createFromFetch(Promise.resolve(flightResponse), { temporaryReferences });
623
781
  if (shouldClearClientNavigationCachesForServerActionResult(result, revalidation)) clearClientNavigationCaches();
782
+ if (actionRedirectTarget) {
783
+ if (isServerActionResult(result) && result.root !== void 0) {
784
+ const decoded = AppElementsWire.decode(result.root);
785
+ const hashIdx = actionRedirectTarget.href.indexOf("#");
786
+ const actionScrollIntent = beginAppRouterScrollIntent((hashIdx !== -1 ? actionRedirectTarget.href.slice(hashIdx) : "") || null);
787
+ if (actionRedirectTarget.type === "push") saveScrollPosition();
788
+ renderNavigationPayload(Promise.resolve(decoded), createClientNavigationRenderSnapshot(actionRedirectTarget.href, actionInitiation.routerState.navigationSnapshot.params), actionRedirectTarget.href, actionInitiation.navigationId, actionRedirectTarget.type === "push" ? "push" : "replace", {}, null, null, FRESH_APP_NAVIGATION_PAYLOAD_ORIGIN, actionRedirectTarget.type === "push" ? "navigate" : "replace", "server-action", null, actionScrollIntent).catch(() => {
789
+ browserNavigationController.performHardNavigation(actionRedirectTarget.href);
790
+ });
791
+ throw createServerActionRedirectError(actionRedirectTarget);
792
+ }
793
+ browserNavigationController.performHardNavigation(actionRedirectTarget.href);
794
+ return;
795
+ }
796
+ syncServerActionHttpFallbackHead(isServerActionResult(result) && result.root !== void 0 ? null : fetchResponse.status);
624
797
  if (isServerActionResult(result)) {
625
- if (result.root !== void 0) return commitSameUrlNavigatePayload(Promise.resolve(AppElementsWire.decode(result.root)), actionInitiation, result.returnValue, revalidation);
798
+ if (result.root !== void 0) {
799
+ const returnValue = result.returnValue && !result.returnValue.ok ? {
800
+ ok: false,
801
+ data: normalizeServerActionThrownValue(result.returnValue.data, fetchResponse.status)
802
+ } : result.returnValue;
803
+ return commitSameUrlNavigatePayload(Promise.resolve(AppElementsWire.decode(result.root)), actionInitiation, returnValue, revalidation);
804
+ }
626
805
  if (result.returnValue) {
627
- if (!result.returnValue.ok) throw result.returnValue.data;
806
+ if (!result.returnValue.ok) throw normalizeServerActionThrownValue(result.returnValue.data, fetchResponse.status);
628
807
  return result.returnValue.data;
629
808
  }
630
809
  return;
@@ -634,12 +813,16 @@ function registerServerActionCallback() {
634
813
  }
635
814
  async function main() {
636
815
  registerServerActionCallback();
816
+ if (import.meta.env.DEV) {
817
+ installDevErrorOverlay();
818
+ installViteHmrErrorHandler(import.meta.hot);
819
+ reportInitialDevServerErrors();
820
+ }
637
821
  const rscStream = await readInitialRscStream();
638
822
  if (rscStream === null) return;
639
823
  bootstrapHydration(rscStream);
640
824
  }
641
825
  function bootstrapHydration(rscStream) {
642
- if (import.meta.env.DEV) installDevErrorOverlay();
643
826
  const root = decodeAppElementsPromise(createFromReadableStream(rscStream));
644
827
  const initialNavigationSnapshot = createClientNavigationRenderSnapshot(window.location.href, latestClientParams);
645
828
  replaceHistoryStateWithoutNotify(createHistoryStateWithNavigationMetadata(window.history.state, {
@@ -686,6 +869,7 @@ function bootstrapHydration(rscStream) {
686
869
  consumeAppRouterScrollIntent(scrollIntent ?? null);
687
870
  return browserNavigationController.performHardNavigation(targetHref);
688
871
  };
872
+ let restoredBfcacheIds = navigationKind === "traverse" ? readCurrentBfcacheVersionHistoryIds(activeTraversalIntent?.historyState ?? window.history.state) : null;
689
873
  try {
690
874
  const shouldUsePendingRouterState = programmaticTransition;
691
875
  if (shouldUsePendingRouterState && hasBrowserRouterState()) pendingRouterState = beginPendingBrowserRouterState();
@@ -699,17 +883,19 @@ function bootstrapHydration(rscStream) {
699
883
  const requestState = getRequestState(navigationKind, url.pathname, currentPrevNextUrl, activeTraversalIntent?.historyState);
700
884
  const requestInterceptionContext = requestState.interceptionContext;
701
885
  const requestPreviousNextUrl = requestState.previousNextUrl;
702
- if (navigationKind === "refresh") syncCurrentHistoryStatePreviousNextUrl(requestPreviousNextUrl);
886
+ if (navigationKind === "refresh") syncCurrentHistoryStatePreviousNextUrl(requestPreviousNextUrl, getBrowserRouterState().bfcacheIds);
703
887
  setPendingPathname(url.pathname, navId);
704
- const elementsAtNavStart = getBrowserRouterState().elements;
888
+ const routerStateAtNavStart = getBrowserRouterState();
889
+ const elementsAtNavStart = routerStateAtNavStart.elements;
705
890
  const mountedSlotsHeader = getMountedSlotIdsHeader(elementsAtNavStart);
891
+ const shouldBypassNavigationCache = navigationKind === "navigate" && isSamePageSearchNavigation(routerStateAtNavStart.navigationSnapshot, url);
706
892
  const requestHeaders = createRscRequestHeaders({
707
893
  interceptionContext: requestInterceptionContext,
894
+ mountedSlotsHeader,
708
895
  renderMode: navigationKind === "refresh" ? APP_RSC_RENDER_MODE_REFRESH_PRESERVE_UI : void 0
709
896
  });
710
- if (mountedSlotsHeader) requestHeaders.set(VINEXT_MOUNTED_SLOTS_HEADER, mountedSlotsHeader);
711
897
  const rscUrl = await createRscRequestUrl(url.pathname + url.search, requestHeaders);
712
- const cachedRoute = getVisitedResponse(rscUrl, requestInterceptionContext, mountedSlotsHeader, navigationKind);
898
+ const cachedRoute = shouldBypassNavigationCache ? null : getVisitedResponse(rscUrl, requestInterceptionContext, mountedSlotsHeader, navigationKind);
713
899
  if (cachedRoute) {
714
900
  const compatibilityDecision = resolveRscCompatibilityNavigationDecision({
715
901
  clientCompatibilityId: CLIENT_RSC_COMPATIBILITY_ID,
@@ -722,20 +908,47 @@ function bootstrapHydration(rscStream) {
722
908
  performHardNavigationForScrollIntent(compatibilityDecision.hardNavigationTarget);
723
909
  return;
724
910
  }
911
+ const cachedRedirectDecision = resolveRscRedirectLifecycleHop({
912
+ currentHref,
913
+ historyUpdateMode: currentHistoryMode ?? "replace",
914
+ origin: window.location.origin,
915
+ redirectDepth: redirectCount,
916
+ requestPreviousNextUrl,
917
+ responseUrl: cachedRoute.response.url
918
+ });
919
+ if (cachedRedirectDecision.kind === "terminal-hard-navigation") {
920
+ if (cachedRedirectDecision.reason === "maxRedirectsExceeded") console.error("[vinext] Too many RSC redirects — aborting navigation to prevent infinite loop.");
921
+ performHardNavigationForScrollIntent(cachedRedirectDecision.href);
922
+ return;
923
+ }
924
+ if (cachedRedirectDecision.kind === "follow") {
925
+ if (navigationKind === "traverse") restoredBfcacheIds = null;
926
+ currentHref = cachedRedirectDecision.href;
927
+ currentHistoryMode = cachedRedirectDecision.historyUpdateMode;
928
+ currentPrevNextUrl = cachedRedirectDecision.previousNextUrl;
929
+ redirectCount = cachedRedirectDecision.redirectDepth;
930
+ continue;
931
+ }
725
932
  if (!browserNavigationController.isCurrentNavigation(navId)) return;
726
933
  const cachedParams = cachedRoute.params;
727
934
  const cachedNavigationSnapshot = createClientNavigationRenderSnapshot(currentHref, cachedParams);
728
935
  const cachedPayload = decodeAppElementsPromise(createFromFetch(Promise.resolve(restoreRscResponse(cachedRoute.response))));
729
936
  if (!browserNavigationController.isCurrentNavigation(navId)) return;
730
- await renderNavigationPayload(cachedPayload, cachedNavigationSnapshot, currentHref, navId, currentHistoryMode, cachedParams, requestPreviousNextUrl, detachedNavigationCommits ? null : pendingRouterState, VISITED_CACHE_APP_NAVIGATION_PAYLOAD_ORIGIN, toActionType(navigationKind), toOperationLane(navigationKind), activeTraversalIntent, scrollIntent);
937
+ if (await renderNavigationPayload(cachedPayload, cachedNavigationSnapshot, currentHref, navId, currentHistoryMode, cachedParams, requestPreviousNextUrl, detachedNavigationCommits ? null : pendingRouterState, VISITED_CACHE_APP_NAVIGATION_PAYLOAD_ORIGIN, toActionType(navigationKind), toOperationLane(navigationKind), activeTraversalIntent, scrollIntent, restoredBfcacheIds) === "no-commit") {
938
+ deleteVisitedResponse(rscUrl, requestInterceptionContext);
939
+ continue;
940
+ }
731
941
  return;
732
942
  }
733
943
  let navResponse;
944
+ let navResponseExpiresAt;
734
945
  let navResponseUrl = null;
735
- if (navigationKind !== "refresh") {
736
- const prefetchedResponse = consumePrefetchResponse(rscUrl, requestInterceptionContext, mountedSlotsHeader);
946
+ if (navigationKind !== "refresh" && !shouldBypassNavigationCache) {
947
+ const prefetchedResponse = await consumePrefetchResponseForNavigation(rscUrl, requestInterceptionContext, mountedSlotsHeader, { shouldConsume: () => browserNavigationController.isCurrentNavigation(navId) });
948
+ if (!browserNavigationController.isCurrentNavigation(navId)) return;
737
949
  if (prefetchedResponse) {
738
950
  navResponse = restoreRscResponse(prefetchedResponse, false);
951
+ navResponseExpiresAt = prefetchedResponse.expiresAt;
739
952
  navResponseUrl = prefetchedResponse.url;
740
953
  }
741
954
  }
@@ -759,16 +972,22 @@ function bootstrapHydration(rscStream) {
759
972
  if (optimisticPayload !== null) {
760
973
  detachedNavigationCommits = true;
761
974
  const optimisticNavigationSnapshot = createClientNavigationRenderSnapshot(currentHref, optimisticPayload.params);
762
- renderNavigationPayload(Promise.resolve(optimisticPayload.elements), optimisticNavigationSnapshot, currentHref, navId, currentHistoryMode, optimisticPayload.params, requestPreviousNextUrl, null, FRESH_APP_NAVIGATION_PAYLOAD_ORIGIN, toActionType(navigationKind), toOperationLane(navigationKind), activeTraversalIntent, scrollIntent).catch((error) => {
975
+ renderNavigationPayload(Promise.resolve(optimisticPayload.elements), optimisticNavigationSnapshot, currentHref, navId, currentHistoryMode, optimisticPayload.params, requestPreviousNextUrl, null, FRESH_APP_NAVIGATION_PAYLOAD_ORIGIN, toActionType(navigationKind), toOperationLane(navigationKind), activeTraversalIntent, scrollIntent, restoredBfcacheIds).catch((error) => {
763
976
  if (browserNavigationController.isCurrentNavigation(navId)) console.error("[vinext] Optimistic RSC navigation error:", error);
764
977
  });
765
978
  }
766
979
  }
767
980
  }
768
- if (!navResponse) navResponse = await fetch(rscUrl, {
769
- headers: requestHeaders,
770
- credentials: "include"
771
- });
981
+ if (!navResponse) {
982
+ if (navigationKind === "navigate") {
983
+ const clientReuseManifestHeader = createClientReuseManifestHeaderFromVisibleAppState(routerStateAtNavStart);
984
+ if (clientReuseManifestHeader !== null) requestHeaders.set(VINEXT_CLIENT_REUSE_MANIFEST_HEADER, clientReuseManifestHeader);
985
+ }
986
+ navResponse = await fetch(rscUrl, {
987
+ headers: requestHeaders,
988
+ credentials: "include"
989
+ });
990
+ }
772
991
  if (!browserNavigationController.isCurrentNavigation(navId)) return;
773
992
  const isRscResponse = (navResponse.headers.get("content-type") ?? "").startsWith("text/x-component");
774
993
  if (!navResponse.ok || !isRscResponse || !navResponse.body) {
@@ -800,6 +1019,7 @@ function bootstrapHydration(rscStream) {
800
1019
  return;
801
1020
  }
802
1021
  if (redirectDecision.kind === "follow") {
1022
+ if (navigationKind === "traverse") restoredBfcacheIds = null;
803
1023
  currentHref = redirectDecision.href;
804
1024
  currentHistoryMode = redirectDecision.historyUpdateMode;
805
1025
  currentPrevNextUrl = redirectDecision.previousNextUrl;
@@ -819,7 +1039,10 @@ function bootstrapHydration(rscStream) {
819
1039
  performHardNavigationForScrollIntent(resolvedTarget.href);
820
1040
  return;
821
1041
  }
1042
+ if (navigationKind === "traverse") restoredBfcacheIds = null;
822
1043
  currentHref = `${resolvedTarget.pathname}${resolvedTarget.search}${resolvedTarget.hash}`;
1044
+ currentHistoryMode = currentHistoryMode ?? "replace";
1045
+ currentPrevNextUrl = requestPreviousNextUrl;
823
1046
  redirectCount += 1;
824
1047
  continue;
825
1048
  }
@@ -836,17 +1059,22 @@ function bootstrapHydration(rscStream) {
836
1059
  if (!browserNavigationController.isCurrentNavigation(navId)) return;
837
1060
  const rscPayload = decodeAppElementsPromise(createFromFetch(Promise.resolve(reactResponse)));
838
1061
  if (!browserNavigationController.isCurrentNavigation(navId)) return;
839
- if (await renderNavigationPayload(rscPayload, navigationSnapshot, currentHref, navId, currentHistoryMode, navParams, requestPreviousNextUrl, detachedNavigationCommits ? null : pendingRouterState, FRESH_APP_NAVIGATION_PAYLOAD_ORIGIN, toActionType(navigationKind), toOperationLane(navigationKind), activeTraversalIntent, scrollIntent) !== "committed") return;
1062
+ if (await renderNavigationPayload(rscPayload, navigationSnapshot, currentHref, navId, currentHistoryMode, navParams, requestPreviousNextUrl, detachedNavigationCommits ? null : pendingRouterState, FRESH_APP_NAVIGATION_PAYLOAD_ORIGIN, toActionType(navigationKind), toOperationLane(navigationKind), activeTraversalIntent, scrollIntent, restoredBfcacheIds) !== "committed") return;
840
1063
  if (!browserNavigationController.isCurrentNavigation(navId)) return;
841
- const resolvedElements = await rscPayload;
842
- const metadata = AppElementsWire.readMetadata(resolvedElements);
843
- if (!isCacheRestorableAppPayloadMetadata(metadata)) {
844
- cacheBufferPromise.catch(() => {});
845
- return;
846
- }
847
- cacheBufferPromise.then((cacheBuffer) => {
848
- storeVisitedResponseSnapshot(rscUrl, resolveVisitedResponseInterceptionContext(requestInterceptionContext, metadata.interceptionContext), createCachedRscResponseSnapshot(navResponse, cacheBuffer, navResponseUrl), navParams);
849
- }).catch(() => {});
1064
+ try {
1065
+ const renderedElements = await rscPayload;
1066
+ const metadata = AppElementsWire.readMetadata(renderedElements);
1067
+ if (!isCacheRestorableAppPayloadMetadata(metadata)) {
1068
+ cacheBufferPromise.catch(() => {});
1069
+ return;
1070
+ }
1071
+ const cacheBuffer = await cacheBufferPromise;
1072
+ storeVisitedResponseSnapshot(rscUrl, resolveVisitedResponseInterceptionContext(requestInterceptionContext, metadata.interceptionContext), {
1073
+ ...createCachedRscResponseSnapshot(navResponse, cacheBuffer, navResponseUrl),
1074
+ ...navResponseExpiresAt !== void 0 ? { expiresAt: navResponseExpiresAt } : {},
1075
+ mountedSlotsHeader: getMountedSlotIdsHeader(renderedElements)
1076
+ }, navParams);
1077
+ } catch {}
850
1078
  return;
851
1079
  }
852
1080
  } catch (error) {
@@ -884,25 +1112,35 @@ function bootstrapHydration(rscStream) {
884
1112
  handlePopstate(event);
885
1113
  });
886
1114
  if (import.meta.hot) {
887
- const handleRscUpdate = async () => {
1115
+ const applyRscHmrUpdate = async (updateId) => {
1116
+ if (updateId !== latestRscHmrUpdateId) return;
1117
+ if (document.documentElement.id === "__next_error__") {
1118
+ window.location.reload();
1119
+ return;
1120
+ }
1121
+ if (browserRouterStateHasEverCommitted && !browserNavigationController.hasBrowserRouterState()) {
1122
+ window.location.reload();
1123
+ return;
1124
+ }
1125
+ await waitForBrowserRouterStateReady();
1126
+ if (updateId !== latestRscHmrUpdateId) return;
1127
+ if (!browserNavigationController.hasBrowserRouterState()) return;
1128
+ clearClientNavigationCaches();
1129
+ const navigationSnapshot = createClientNavigationRenderSnapshot(window.location.href, latestClientParams);
1130
+ dismissOverlay();
1131
+ const hmrHeaders = createRscRequestHeaders();
1132
+ await browserNavigationController.hmrReplaceTree(decodeAppElementsPromise(createFromFetch(fetch(await createRscRequestUrl(window.location.pathname + window.location.search, hmrHeaders), { headers: hmrHeaders }))), navigationSnapshot);
1133
+ };
1134
+ const handleRscUpdate = async (updateId) => {
888
1135
  try {
889
- if (browserRouterStateHasEverCommitted && !browserNavigationController.hasBrowserRouterState()) {
890
- window.location.reload();
891
- return;
892
- }
893
- await waitForBrowserRouterStateReady();
894
- if (!browserNavigationController.hasBrowserRouterState()) return;
895
- clearClientNavigationCaches();
896
- const navigationSnapshot = createClientNavigationRenderSnapshot(window.location.href, latestClientParams);
897
- dismissOverlay();
898
- const hmrHeaders = createRscRequestHeaders();
899
- await browserNavigationController.hmrReplaceTree(decodeAppElementsPromise(createFromFetch(fetch(await createRscRequestUrl(window.location.pathname + window.location.search, hmrHeaders), { headers: hmrHeaders }))), navigationSnapshot);
1136
+ await waitForRscHmrSettle();
1137
+ await applyRscHmrUpdate(updateId);
900
1138
  } catch (error) {
901
1139
  console.error("[vinext] RSC HMR error:", error);
902
1140
  }
903
1141
  };
904
1142
  import.meta.hot.on("rsc:update", () => {
905
- handleRscUpdate();
1143
+ handleRscUpdate(++latestRscHmrUpdateId);
906
1144
  });
907
1145
  }
908
1146
  }
@@ -914,12 +1152,11 @@ if (typeof document !== "undefined") {
914
1152
  window.addEventListener("pagehide", () => {
915
1153
  isPageUnloading = true;
916
1154
  });
917
- window.addEventListener("pageshow", () => {
1155
+ window.addEventListener("pageshow", (event) => {
918
1156
  isPageUnloading = false;
1157
+ if (event.persisted) mpaNavigationScheduler.reset();
919
1158
  });
920
1159
  main();
921
1160
  }
922
1161
  //#endregion
923
1162
  export {};
924
-
925
- //# sourceMappingURL=app-browser-entry.js.map