vinext 0.0.55 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (985) hide show
  1. package/README.md +51 -15
  2. package/dist/build/clean-output.d.ts +1 -2
  3. package/dist/build/clean-output.js +0 -2
  4. package/dist/build/client-build-config.d.ts +16 -3
  5. package/dist/build/client-build-config.js +29 -4
  6. package/dist/build/css-url-assets.d.ts +29 -0
  7. package/dist/build/css-url-assets.js +211 -0
  8. package/dist/build/google-fonts/build-url.d.ts +1 -2
  9. package/dist/build/google-fonts/build-url.js +0 -2
  10. package/dist/build/google-fonts/fallback-metrics-data.js +0 -2
  11. package/dist/build/google-fonts/fallback-metrics.d.ts +1 -2
  12. package/dist/build/google-fonts/fallback-metrics.js +0 -2
  13. package/dist/build/google-fonts/font-data.js +0 -2
  14. package/dist/build/google-fonts/font-metadata.d.ts +1 -2
  15. package/dist/build/google-fonts/font-metadata.js +0 -2
  16. package/dist/build/google-fonts/get-axes.d.ts +1 -2
  17. package/dist/build/google-fonts/get-axes.js +0 -2
  18. package/dist/build/google-fonts/sort-variants.d.ts +1 -2
  19. package/dist/build/google-fonts/sort-variants.js +0 -2
  20. package/dist/build/google-fonts/validate.d.ts +1 -2
  21. package/dist/build/google-fonts/validate.js +0 -2
  22. package/dist/build/inline-css.d.ts +1 -2
  23. package/dist/build/inline-css.js +0 -2
  24. package/dist/build/layout-classification-types.d.ts +1 -2
  25. package/dist/build/layout-classification.d.ts +2 -3
  26. package/dist/build/layout-classification.js +1 -3
  27. package/dist/build/next-client-runtime-manifests.d.ts +14 -0
  28. package/dist/build/next-client-runtime-manifests.js +39 -0
  29. package/dist/build/nitro-route-rules.d.ts +1 -2
  30. package/dist/build/nitro-route-rules.js +0 -2
  31. package/dist/build/precompress.d.ts +1 -2
  32. package/dist/build/precompress.js +0 -2
  33. package/dist/build/prerender.d.ts +2 -3
  34. package/dist/build/prerender.js +14 -2
  35. package/dist/build/report.d.ts +1 -2
  36. package/dist/build/report.js +0 -2
  37. package/dist/build/route-classification-injector.d.ts +1 -2
  38. package/dist/build/route-classification-injector.js +4 -6
  39. package/dist/build/route-classification-manifest.d.ts +5 -6
  40. package/dist/build/route-classification-manifest.js +5 -7
  41. package/dist/build/run-prerender.d.ts +1 -2
  42. package/dist/build/run-prerender.js +15 -7
  43. package/dist/build/server-manifest.d.ts +1 -2
  44. package/dist/build/server-manifest.js +0 -2
  45. package/dist/build/ssr-manifest.d.ts +1 -2
  46. package/dist/build/ssr-manifest.js +2 -4
  47. package/dist/build/standalone.d.ts +1 -2
  48. package/dist/build/standalone.js +0 -2
  49. package/dist/build/static-export.d.ts +2 -3
  50. package/dist/build/static-export.js +0 -2
  51. package/dist/cache/cache-adapters-virtual.d.ts +50 -0
  52. package/dist/cache/cache-adapters-virtual.js +45 -0
  53. package/dist/check.d.ts +33 -2
  54. package/dist/check.js +306 -24
  55. package/dist/cli-args.d.ts +1 -2
  56. package/dist/cli-args.js +0 -2
  57. package/dist/cli.js +7 -13
  58. package/dist/client/instrumentation-client-inject.d.ts +1 -2
  59. package/dist/client/instrumentation-client-inject.js +0 -2
  60. package/dist/client/instrumentation-client-state.d.ts +1 -2
  61. package/dist/client/instrumentation-client-state.js +0 -2
  62. package/dist/client/instrumentation-client.d.ts +1 -2
  63. package/dist/client/instrumentation-client.js +0 -2
  64. package/dist/client/navigation-runtime.d.ts +1 -2
  65. package/dist/client/navigation-runtime.js +0 -2
  66. package/dist/client/pages-router-link-navigation.d.ts +1 -2
  67. package/dist/client/pages-router-link-navigation.js +0 -2
  68. package/dist/client/validate-module-path.d.ts +1 -2
  69. package/dist/client/validate-module-path.js +0 -2
  70. package/dist/client/vinext-next-data.d.ts +1 -2
  71. package/dist/client/vinext-next-data.js +0 -2
  72. package/dist/client/window-next.d.ts +1 -2
  73. package/dist/client/window-next.js +0 -2
  74. package/dist/cloudflare/index.d.ts +1 -1
  75. package/dist/cloudflare/index.js +1 -1
  76. package/dist/cloudflare/src/cache/cdn-adapter.runtime.js +97 -0
  77. package/dist/cloudflare/{kv-cache-handler.d.ts → src/cache/kv-data-adapter.runtime.d.ts} +25 -6
  78. package/dist/cloudflare/{kv-cache-handler.js → src/cache/kv-data-adapter.runtime.js} +36 -28
  79. package/dist/cloudflare/src/utils/cache-control-metadata.js +20 -0
  80. package/dist/cloudflare/tpr.d.ts +2 -3
  81. package/dist/cloudflare/tpr.js +8 -8
  82. package/dist/config/config-matchers.d.ts +1 -2
  83. package/dist/config/config-matchers.js +0 -2
  84. package/dist/config/dotenv.d.ts +1 -2
  85. package/dist/config/dotenv.js +0 -2
  86. package/dist/config/next-config.d.ts +16 -2
  87. package/dist/config/next-config.js +23 -4
  88. package/dist/config/tsconfig-paths.d.ts +1 -2
  89. package/dist/config/tsconfig-paths.js +3 -7
  90. package/dist/deploy.d.ts +48 -3
  91. package/dist/deploy.js +141 -112
  92. package/dist/entries/app-browser-entry.d.ts +1 -2
  93. package/dist/entries/app-browser-entry.js +0 -2
  94. package/dist/entries/app-rsc-entry.d.ts +4 -4
  95. package/dist/entries/app-rsc-entry.js +50 -61
  96. package/dist/entries/app-rsc-manifest.d.ts +1 -2
  97. package/dist/entries/app-rsc-manifest.js +20 -7
  98. package/dist/entries/app-ssr-entry.d.ts +1 -2
  99. package/dist/entries/app-ssr-entry.js +0 -2
  100. package/dist/entries/pages-client-entry.d.ts +3 -3
  101. package/dist/entries/pages-client-entry.js +16 -5
  102. package/dist/entries/pages-entry-helpers.d.ts +2 -11
  103. package/dist/entries/pages-entry-helpers.js +1 -20
  104. package/dist/entries/pages-server-entry.d.ts +2 -3
  105. package/dist/entries/pages-server-entry.js +89 -702
  106. package/dist/entries/runtime-entry-module.d.ts +1 -2
  107. package/dist/entries/runtime-entry-module.js +0 -2
  108. package/dist/index.d.ts +22 -2
  109. package/dist/index.js +216 -101
  110. package/dist/init.d.ts +1 -2
  111. package/dist/init.js +1 -3
  112. package/dist/plugins/ast-utils.d.ts +20 -0
  113. package/dist/plugins/ast-utils.js +78 -0
  114. package/dist/plugins/async-hooks-stub.d.ts +1 -2
  115. package/dist/plugins/async-hooks-stub.js +0 -2
  116. package/dist/plugins/client-reference-dedup.d.ts +1 -2
  117. package/dist/plugins/client-reference-dedup.js +4 -8
  118. package/dist/plugins/css-data-url.d.ts +1 -2
  119. package/dist/plugins/css-data-url.js +0 -2
  120. package/dist/plugins/fonts.d.ts +13 -3
  121. package/dist/plugins/fonts.js +19 -13
  122. package/dist/plugins/import-meta-url.d.ts +2 -2
  123. package/dist/plugins/import-meta-url.js +187 -33
  124. package/dist/plugins/instrumentation-client.d.ts +1 -2
  125. package/dist/plugins/instrumentation-client.js +0 -2
  126. package/dist/plugins/middleware-server-only.d.ts +1 -2
  127. package/dist/plugins/middleware-server-only.js +0 -2
  128. package/dist/plugins/og-assets.d.ts +32 -8
  129. package/dist/plugins/og-assets.js +126 -34
  130. package/dist/plugins/optimize-imports.d.ts +1 -2
  131. package/dist/plugins/optimize-imports.js +9 -17
  132. package/dist/plugins/postcss.d.ts +1 -2
  133. package/dist/plugins/postcss.js +0 -2
  134. package/dist/plugins/remove-console.d.ts +1 -2
  135. package/dist/plugins/remove-console.js +0 -2
  136. package/dist/plugins/rsc-client-reference-loaders.d.ts +1 -2
  137. package/dist/plugins/rsc-client-reference-loaders.js +0 -2
  138. package/dist/plugins/rsc-client-shim-excludes.d.ts +1 -2
  139. package/dist/plugins/rsc-client-shim-excludes.js +0 -2
  140. package/dist/plugins/sass.d.ts +1 -2
  141. package/dist/plugins/sass.js +0 -2
  142. package/dist/plugins/server-externals-manifest.d.ts +1 -2
  143. package/dist/plugins/server-externals-manifest.js +0 -2
  144. package/dist/plugins/strip-server-exports.d.ts +1 -2
  145. package/dist/plugins/strip-server-exports.js +0 -2
  146. package/dist/routing/app-route-graph.d.ts +2 -9
  147. package/dist/routing/app-route-graph.js +9 -30
  148. package/dist/routing/app-router.d.ts +1 -2
  149. package/dist/routing/app-router.js +0 -2
  150. package/dist/routing/file-matcher.d.ts +6 -2
  151. package/dist/routing/file-matcher.js +15 -7
  152. package/dist/routing/pages-router.d.ts +1 -2
  153. package/dist/routing/pages-router.js +0 -2
  154. package/dist/routing/route-matching.d.ts +1 -2
  155. package/dist/routing/route-matching.js +0 -2
  156. package/dist/routing/route-pattern.d.ts +1 -2
  157. package/dist/routing/route-pattern.js +0 -2
  158. package/dist/routing/route-trie.d.ts +1 -2
  159. package/dist/routing/route-trie.js +0 -2
  160. package/dist/routing/route-validation.d.ts +1 -2
  161. package/dist/routing/route-validation.js +0 -2
  162. package/dist/routing/utils.d.ts +44 -2
  163. package/dist/routing/utils.js +62 -3
  164. package/dist/server/api-handler.d.ts +1 -2
  165. package/dist/server/api-handler.js +0 -2
  166. package/dist/server/app-bfcache-id.d.ts +5 -0
  167. package/dist/server/app-bfcache-id.js +5 -0
  168. package/dist/server/app-browser-action-result.d.ts +1 -2
  169. package/dist/server/app-browser-action-result.js +0 -2
  170. package/dist/server/app-browser-client-reuse-manifest.d.ts +12 -0
  171. package/dist/server/app-browser-client-reuse-manifest.js +101 -0
  172. package/dist/server/app-browser-entry.js +186 -75
  173. package/dist/server/app-browser-error.d.ts +1 -2
  174. package/dist/server/app-browser-error.js +0 -2
  175. package/dist/server/app-browser-hydration.d.ts +1 -2
  176. package/dist/server/app-browser-hydration.js +0 -2
  177. package/dist/server/app-browser-interception-context.d.ts +1 -2
  178. package/dist/server/app-browser-interception-context.js +0 -2
  179. package/dist/server/app-browser-mpa-navigation.d.ts +2 -2
  180. package/dist/server/app-browser-mpa-navigation.js +9 -3
  181. package/dist/server/app-browser-navigation-controller.d.ts +5 -4
  182. package/dist/server/app-browser-navigation-controller.js +3 -3
  183. package/dist/server/app-browser-popstate.d.ts +1 -2
  184. package/dist/server/app-browser-popstate.js +0 -2
  185. package/dist/server/app-browser-rsc-redirect.d.ts +1 -2
  186. package/dist/server/app-browser-rsc-redirect.js +0 -2
  187. package/dist/server/app-browser-state.d.ts +28 -4
  188. package/dist/server/app-browser-state.js +193 -10
  189. package/dist/server/app-browser-stream.d.ts +1 -2
  190. package/dist/server/app-browser-stream.js +0 -2
  191. package/dist/server/app-browser-visible-commit.d.ts +2 -3
  192. package/dist/server/app-browser-visible-commit.js +24 -17
  193. package/dist/server/app-client-reference-preloader.d.ts +1 -2
  194. package/dist/server/app-client-reference-preloader.js +0 -2
  195. package/dist/server/app-elements-wire.d.ts +14 -8
  196. package/dist/server/app-elements-wire.js +45 -24
  197. package/dist/server/app-elements.d.ts +2 -3
  198. package/dist/server/app-elements.js +2 -4
  199. package/dist/server/app-fallback-renderer.d.ts +5 -5
  200. package/dist/server/app-fallback-renderer.js +4 -3
  201. package/dist/server/app-history-state.d.ts +18 -2
  202. package/dist/server/app-history-state.js +68 -10
  203. package/dist/server/app-hook-warning-suppression.d.ts +1 -2
  204. package/dist/server/app-hook-warning-suppression.js +0 -2
  205. package/dist/server/app-inline-css-client.d.ts +1 -2
  206. package/dist/server/app-inline-css-client.js +0 -2
  207. package/dist/server/app-interception-context-header.d.ts +1 -2
  208. package/dist/server/app-interception-context-header.js +0 -2
  209. package/dist/server/app-layout-param-observation.d.ts +15 -2
  210. package/dist/server/app-layout-param-observation.js +46 -8
  211. package/dist/server/app-middleware.d.ts +1 -2
  212. package/dist/server/app-middleware.js +0 -2
  213. package/dist/server/app-mounted-slots-header.d.ts +1 -2
  214. package/dist/server/app-mounted-slots-header.js +0 -2
  215. package/dist/server/app-optimistic-routing.d.ts +1 -2
  216. package/dist/server/app-optimistic-routing.js +0 -2
  217. package/dist/server/app-page-boundary-render.d.ts +4 -3
  218. package/dist/server/app-page-boundary-render.js +18 -9
  219. package/dist/server/app-page-boundary.d.ts +11 -2
  220. package/dist/server/app-page-boundary.js +13 -4
  221. package/dist/server/app-page-cache.d.ts +3 -3
  222. package/dist/server/app-page-cache.js +36 -11
  223. package/dist/server/app-page-dispatch.d.ts +19 -5
  224. package/dist/server/app-page-dispatch.js +119 -24
  225. package/dist/server/app-page-element-builder.d.ts +3 -2
  226. package/dist/server/app-page-element-builder.js +9 -11
  227. package/dist/server/app-page-execution.d.ts +8 -3
  228. package/dist/server/app-page-execution.js +55 -24
  229. package/dist/server/app-page-head.d.ts +1 -2
  230. package/dist/server/app-page-head.js +6 -6
  231. package/dist/server/app-page-method.d.ts +1 -2
  232. package/dist/server/app-page-method.js +0 -2
  233. package/dist/server/app-page-params.d.ts +1 -2
  234. package/dist/server/app-page-params.js +0 -2
  235. package/dist/server/app-page-probe.d.ts +79 -2
  236. package/dist/server/app-page-probe.js +89 -9
  237. package/dist/server/app-page-render-identity.d.ts +1 -2
  238. package/dist/server/app-page-render-identity.js +0 -2
  239. package/dist/server/app-page-render-observation.d.ts +1 -2
  240. package/dist/server/app-page-render-observation.js +0 -2
  241. package/dist/server/app-page-render.d.ts +9 -3
  242. package/dist/server/app-page-render.js +167 -10
  243. package/dist/server/app-page-request.d.ts +4 -3
  244. package/dist/server/app-page-request.js +1 -3
  245. package/dist/server/app-page-response.d.ts +2 -2
  246. package/dist/server/app-page-response.js +5 -3
  247. package/dist/server/app-page-route-wiring.d.ts +14 -3
  248. package/dist/server/app-page-route-wiring.js +63 -11
  249. package/dist/server/app-page-search-params-observation.d.ts +10 -0
  250. package/dist/server/app-page-search-params-observation.js +20 -0
  251. package/dist/server/app-page-segment-state.d.ts +1 -2
  252. package/dist/server/app-page-segment-state.js +1 -8
  253. package/dist/server/app-page-stream.d.ts +19 -9
  254. package/dist/server/app-page-stream.js +28 -10
  255. package/dist/server/app-pages-bridge.d.ts +25 -0
  256. package/dist/server/app-pages-bridge.js +34 -0
  257. package/dist/server/app-post-middleware-context.d.ts +1 -2
  258. package/dist/server/app-post-middleware-context.js +0 -2
  259. package/dist/server/app-ppr-fallback-shell.d.ts +21 -0
  260. package/dist/server/app-ppr-fallback-shell.js +82 -0
  261. package/dist/server/app-prerender-endpoints.d.ts +1 -2
  262. package/dist/server/app-prerender-endpoints.js +0 -2
  263. package/dist/server/app-prerender-static-params.d.ts +15 -2
  264. package/dist/server/app-prerender-static-params.js +44 -13
  265. package/dist/server/app-render-dependency.d.ts +3 -2
  266. package/dist/server/app-render-dependency.js +9 -3
  267. package/dist/server/app-request-context.d.ts +1 -2
  268. package/dist/server/app-request-context.js +0 -2
  269. package/dist/server/app-route-handler-cache.d.ts +1 -2
  270. package/dist/server/app-route-handler-cache.js +0 -2
  271. package/dist/server/app-route-handler-dispatch.d.ts +1 -2
  272. package/dist/server/app-route-handler-dispatch.js +0 -2
  273. package/dist/server/app-route-handler-execution.d.ts +1 -2
  274. package/dist/server/app-route-handler-execution.js +2 -4
  275. package/dist/server/app-route-handler-policy.d.ts +1 -2
  276. package/dist/server/app-route-handler-policy.js +0 -2
  277. package/dist/server/app-route-handler-response.d.ts +2 -3
  278. package/dist/server/app-route-handler-response.js +7 -6
  279. package/dist/server/app-route-handler-runtime.d.ts +1 -2
  280. package/dist/server/app-route-handler-runtime.js +0 -2
  281. package/dist/server/app-route-module-loader.d.ts +43 -0
  282. package/dist/server/app-route-module-loader.js +32 -0
  283. package/dist/server/app-router-entry.d.ts +1 -2
  284. package/dist/server/app-router-entry.js +2 -2
  285. package/dist/server/app-rsc-cache-busting.d.ts +10 -2
  286. package/dist/server/app-rsc-cache-busting.js +13 -4
  287. package/dist/server/app-rsc-embedded-chunks.d.ts +1 -2
  288. package/dist/server/app-rsc-embedded-chunks.js +0 -2
  289. package/dist/server/app-rsc-error-handler.d.ts +1 -2
  290. package/dist/server/app-rsc-error-handler.js +0 -2
  291. package/dist/server/app-rsc-errors.d.ts +1 -2
  292. package/dist/server/app-rsc-errors.js +0 -2
  293. package/dist/server/app-rsc-handler.d.ts +16 -2
  294. package/dist/server/app-rsc-handler.js +21 -13
  295. package/dist/server/app-rsc-render-mode.d.ts +1 -2
  296. package/dist/server/app-rsc-render-mode.js +0 -2
  297. package/dist/server/app-rsc-request-normalization.d.ts +4 -5
  298. package/dist/server/app-rsc-request-normalization.js +2 -4
  299. package/dist/server/app-rsc-response-finalizer.d.ts +1 -2
  300. package/dist/server/app-rsc-response-finalizer.js +2 -2
  301. package/dist/server/app-rsc-route-matching.d.ts +1 -2
  302. package/dist/server/app-rsc-route-matching.js +0 -2
  303. package/dist/server/app-segment-config.d.ts +4 -2
  304. package/dist/server/app-segment-config.js +8 -2
  305. package/dist/server/app-server-action-execution.d.ts +7 -2
  306. package/dist/server/app-server-action-execution.js +7 -8
  307. package/dist/server/app-ssr-entry.d.ts +5 -4
  308. package/dist/server/app-ssr-entry.js +31 -15
  309. package/dist/server/app-ssr-error-meta.d.ts +1 -2
  310. package/dist/server/app-ssr-error-meta.js +0 -2
  311. package/dist/server/app-ssr-stream.d.ts +1 -2
  312. package/dist/server/app-ssr-stream.js +31 -3
  313. package/dist/server/app-static-generation.d.ts +1 -2
  314. package/dist/server/app-static-generation.js +0 -2
  315. package/dist/server/app-visited-response-cache.d.ts +23 -0
  316. package/dist/server/app-visited-response-cache.js +19 -0
  317. package/dist/server/artifact-compatibility.d.ts +1 -2
  318. package/dist/server/artifact-compatibility.js +2 -6
  319. package/dist/server/cache-control.d.ts +15 -2
  320. package/dist/server/cache-control.js +21 -3
  321. package/dist/server/cache-headers.d.ts +1 -2
  322. package/dist/server/cache-headers.js +0 -2
  323. package/dist/server/cache-proof.d.ts +1 -2
  324. package/dist/server/cache-proof.js +0 -2
  325. package/dist/server/client-reuse-manifest.d.ts +3 -3
  326. package/dist/server/client-reuse-manifest.js +6 -10
  327. package/dist/server/client-trace-metadata.d.ts +1 -2
  328. package/dist/server/client-trace-metadata.js +0 -2
  329. package/dist/server/cookie-utils.d.ts +1 -2
  330. package/dist/server/cookie-utils.js +0 -2
  331. package/dist/server/csp.d.ts +1 -2
  332. package/dist/server/csp.js +0 -2
  333. package/dist/server/default-global-error-module.d.ts +1 -2
  334. package/dist/server/default-global-error-module.js +0 -2
  335. package/dist/server/default-not-found-module.d.ts +1 -2
  336. package/dist/server/default-not-found-module.js +0 -2
  337. package/dist/server/dev-error-overlay-store.d.ts +20 -4
  338. package/dist/server/dev-error-overlay-store.js +23 -4
  339. package/dist/server/dev-error-overlay.d.ts +39 -3
  340. package/dist/server/dev-error-overlay.js +952 -164
  341. package/dist/server/dev-initial-server-error.d.ts +9 -0
  342. package/dist/server/dev-initial-server-error.js +26 -0
  343. package/dist/server/dev-lockfile.d.ts +1 -2
  344. package/dist/server/dev-lockfile.js +0 -2
  345. package/dist/server/dev-module-runner.d.ts +1 -2
  346. package/dist/server/dev-module-runner.js +0 -2
  347. package/dist/server/dev-origin-check.d.ts +1 -2
  348. package/dist/server/dev-origin-check.js +0 -2
  349. package/dist/server/dev-route-files.d.ts +1 -2
  350. package/dist/server/dev-route-files.js +0 -2
  351. package/dist/server/dev-server.d.ts +2 -3
  352. package/dist/server/dev-server.js +75 -18
  353. package/dist/server/dev-stack-sourcemap-endpoint.d.ts +4 -0
  354. package/dist/server/dev-stack-sourcemap-endpoint.js +4 -0
  355. package/dist/server/dev-stack-sourcemap.d.ts +43 -0
  356. package/dist/server/dev-stack-sourcemap.js +443 -0
  357. package/dist/server/document-initial-head.d.ts +1 -2
  358. package/dist/server/document-initial-head.js +0 -2
  359. package/dist/server/edge-api-runtime.d.ts +1 -2
  360. package/dist/server/edge-api-runtime.js +0 -2
  361. package/dist/server/file-based-metadata.d.ts +1 -2
  362. package/dist/server/file-based-metadata.js +0 -2
  363. package/dist/server/headers.d.ts +3 -2
  364. package/dist/server/headers.js +3 -3
  365. package/dist/server/html.d.ts +1 -2
  366. package/dist/server/html.js +0 -2
  367. package/dist/server/http-error-responses.d.ts +1 -2
  368. package/dist/server/http-error-responses.js +0 -2
  369. package/dist/server/image-optimization.d.ts +1 -2
  370. package/dist/server/image-optimization.js +0 -2
  371. package/dist/server/implicit-tags.d.ts +1 -2
  372. package/dist/server/implicit-tags.js +0 -2
  373. package/dist/server/instrumentation-runtime.d.ts +1 -2
  374. package/dist/server/instrumentation-runtime.js +0 -2
  375. package/dist/server/instrumentation.d.ts +1 -2
  376. package/dist/server/instrumentation.js +0 -2
  377. package/dist/server/isr-cache.d.ts +10 -3
  378. package/dist/server/isr-cache.js +13 -28
  379. package/dist/server/metadata-route-build-data.d.ts +1 -2
  380. package/dist/server/metadata-route-build-data.js +0 -2
  381. package/dist/server/metadata-route-response.d.ts +1 -2
  382. package/dist/server/metadata-route-response.js +0 -2
  383. package/dist/server/metadata-routes.d.ts +1 -2
  384. package/dist/server/metadata-routes.js +0 -2
  385. package/dist/server/middleware-matcher.d.ts +1 -2
  386. package/dist/server/middleware-matcher.js +0 -2
  387. package/dist/server/middleware-request-headers.d.ts +1 -2
  388. package/dist/server/middleware-request-headers.js +0 -2
  389. package/dist/server/middleware-response-headers.d.ts +1 -2
  390. package/dist/server/middleware-response-headers.js +0 -2
  391. package/dist/server/middleware-runtime.d.ts +1 -2
  392. package/dist/server/middleware-runtime.js +14 -5
  393. package/dist/server/middleware.d.ts +2 -3
  394. package/dist/server/middleware.js +0 -2
  395. package/dist/server/navigation-planner.d.ts +16 -2
  396. package/dist/server/navigation-planner.js +1 -3
  397. package/dist/server/navigation-trace.d.ts +1 -2
  398. package/dist/server/navigation-trace.js +0 -2
  399. package/dist/server/next-error-digest.d.ts +1 -2
  400. package/dist/server/next-error-digest.js +0 -2
  401. package/dist/server/normalize-path.d.ts +1 -2
  402. package/dist/server/normalize-path.js +0 -2
  403. package/dist/server/pages-api-route.d.ts +1 -2
  404. package/dist/server/pages-api-route.js +1 -3
  405. package/dist/server/pages-asset-tags.d.ts +66 -0
  406. package/dist/server/pages-asset-tags.js +116 -0
  407. package/dist/server/pages-body-parser-config.d.ts +1 -2
  408. package/dist/server/pages-body-parser-config.js +0 -2
  409. package/dist/server/pages-data-route.d.ts +39 -2
  410. package/dist/server/pages-data-route.js +46 -3
  411. package/dist/server/pages-default-404.d.ts +1 -2
  412. package/dist/server/pages-default-404.js +0 -2
  413. package/dist/server/pages-document-initial-props.d.ts +1 -2
  414. package/dist/server/pages-document-initial-props.js +0 -2
  415. package/dist/server/pages-get-initial-props.d.ts +17 -0
  416. package/dist/server/pages-get-initial-props.js +50 -0
  417. package/dist/server/pages-i18n.d.ts +1 -2
  418. package/dist/server/pages-i18n.js +0 -2
  419. package/dist/server/pages-media-type.d.ts +1 -2
  420. package/dist/server/pages-media-type.js +1 -2
  421. package/dist/server/pages-node-compat.d.ts +9 -2
  422. package/dist/server/pages-node-compat.js +34 -3
  423. package/dist/server/pages-page-data.d.ts +7 -3
  424. package/dist/server/pages-page-data.js +75 -33
  425. package/dist/server/pages-page-handler.d.ts +90 -0
  426. package/dist/server/pages-page-handler.js +335 -0
  427. package/dist/server/pages-page-method.d.ts +1 -2
  428. package/dist/server/pages-page-method.js +0 -2
  429. package/dist/server/pages-page-response.d.ts +1 -2
  430. package/dist/server/pages-page-response.js +8 -4
  431. package/dist/server/pages-serializable-props.d.ts +1 -2
  432. package/dist/server/pages-serializable-props.js +0 -2
  433. package/dist/server/pregenerated-concrete-paths.d.ts +32 -0
  434. package/dist/server/pregenerated-concrete-paths.js +78 -0
  435. package/dist/server/prerender-route-params.d.ts +13 -3
  436. package/dist/server/prerender-route-params.js +30 -11
  437. package/dist/server/prerender-work-unit-setup.d.ts +1 -2
  438. package/dist/server/prerender-work-unit-setup.js +0 -2
  439. package/dist/server/prod-server.d.ts +2 -4
  440. package/dist/server/prod-server.js +0 -2
  441. package/dist/server/proxy-trust.d.ts +1 -2
  442. package/dist/server/proxy-trust.js +0 -2
  443. package/dist/server/request-log.d.ts +1 -2
  444. package/dist/server/request-log.js +0 -2
  445. package/dist/server/request-pipeline.d.ts +14 -2
  446. package/dist/server/request-pipeline.js +42 -3
  447. package/dist/server/rsc-stream-hints.d.ts +1 -2
  448. package/dist/server/rsc-stream-hints.js +0 -2
  449. package/dist/server/seed-cache.d.ts +6 -2
  450. package/dist/server/seed-cache.js +10 -8
  451. package/dist/server/server-action-not-found.d.ts +1 -2
  452. package/dist/server/server-action-not-found.js +0 -2
  453. package/dist/server/server-globals.d.ts +1 -2
  454. package/dist/server/server-globals.js +0 -2
  455. package/dist/server/skip-cache-proof.d.ts +1 -2
  456. package/dist/server/skip-cache-proof.js +0 -2
  457. package/dist/server/socket-error-backstop.d.ts +1 -2
  458. package/dist/server/socket-error-backstop.js +0 -2
  459. package/dist/server/static-file-cache.d.ts +1 -2
  460. package/dist/server/static-file-cache.js +0 -2
  461. package/dist/server/static-layout-client-reuse-proof.d.ts +1 -2
  462. package/dist/server/static-layout-client-reuse-proof.js +0 -2
  463. package/dist/server/streaming-metadata.d.ts +1 -2
  464. package/dist/server/streaming-metadata.js +0 -2
  465. package/dist/server/worker-utils.d.ts +1 -2
  466. package/dist/server/worker-utils.js +3 -6
  467. package/dist/shims/amp.d.ts +1 -2
  468. package/dist/shims/amp.js +0 -2
  469. package/dist/shims/app-router-scroll-state.d.ts +1 -2
  470. package/dist/shims/app-router-scroll-state.js +0 -2
  471. package/dist/shims/app-router-scroll.d.ts +3 -5
  472. package/dist/shims/app-router-scroll.js +0 -2
  473. package/dist/shims/app.d.ts +1 -2
  474. package/dist/shims/app.js +0 -2
  475. package/dist/shims/before-interactive-context.d.ts +1 -2
  476. package/dist/shims/before-interactive-context.js +0 -2
  477. package/dist/shims/cache-for-request.d.ts +1 -2
  478. package/dist/shims/cache-for-request.js +0 -2
  479. package/dist/shims/cache-runtime.d.ts +20 -5
  480. package/dist/shims/cache-runtime.js +35 -30
  481. package/dist/shims/cache.d.ts +48 -7
  482. package/dist/shims/cache.js +79 -20
  483. package/dist/shims/cdn-cache.d.ts +125 -0
  484. package/dist/shims/cdn-cache.js +100 -0
  485. package/dist/shims/client-hook-error.d.ts +1 -2
  486. package/dist/shims/client-hook-error.js +0 -2
  487. package/dist/shims/client-locale.d.ts +1 -2
  488. package/dist/shims/client-locale.js +1 -3
  489. package/dist/shims/compat-router.d.ts +1 -2
  490. package/dist/shims/compat-router.js +0 -2
  491. package/dist/shims/config.d.ts +1 -2
  492. package/dist/shims/config.js +0 -2
  493. package/dist/shims/constants.d.ts +1 -2
  494. package/dist/shims/constants.js +0 -2
  495. package/dist/shims/default-global-error.d.ts +3 -4
  496. package/dist/shims/default-global-error.js +0 -2
  497. package/dist/shims/default-not-found.d.ts +1 -2
  498. package/dist/shims/default-not-found.js +0 -2
  499. package/dist/shims/document.d.ts +5 -7
  500. package/dist/shims/document.js +0 -2
  501. package/dist/shims/dynamic.d.ts +1 -2
  502. package/dist/shims/dynamic.js +0 -2
  503. package/dist/shims/error-boundary.d.ts +16 -12
  504. package/dist/shims/error-boundary.js +35 -2
  505. package/dist/shims/error.d.ts +1 -2
  506. package/dist/shims/error.js +0 -2
  507. package/dist/shims/fetch-cache.d.ts +1 -2
  508. package/dist/shims/fetch-cache.js +2 -4
  509. package/dist/shims/font-google-base.d.ts +1 -2
  510. package/dist/shims/font-google-base.js +1 -13
  511. package/dist/shims/font-local.d.ts +1 -2
  512. package/dist/shims/font-local.js +1 -15
  513. package/dist/shims/font-utils.d.ts +7 -2
  514. package/dist/shims/font-utils.js +13 -3
  515. package/dist/shims/form.d.ts +12 -5
  516. package/dist/shims/form.js +98 -21
  517. package/dist/shims/hash-scroll.d.ts +1 -2
  518. package/dist/shims/hash-scroll.js +0 -2
  519. package/dist/shims/head-state.d.ts +1 -2
  520. package/dist/shims/head-state.js +0 -2
  521. package/dist/shims/head.d.ts +1 -2
  522. package/dist/shims/head.js +0 -2
  523. package/dist/shims/headers.d.ts +9 -2
  524. package/dist/shims/headers.js +13 -3
  525. package/dist/shims/i18n-context.d.ts +1 -2
  526. package/dist/shims/i18n-context.js +0 -2
  527. package/dist/shims/i18n-state.d.ts +1 -2
  528. package/dist/shims/i18n-state.js +0 -2
  529. package/dist/shims/image-config.d.ts +1 -2
  530. package/dist/shims/image-config.js +0 -2
  531. package/dist/shims/image.d.ts +1 -2
  532. package/dist/shims/image.js +1 -3
  533. package/dist/shims/internal/als-registry.d.ts +1 -2
  534. package/dist/shims/internal/als-registry.js +0 -2
  535. package/dist/shims/internal/api-utils.d.ts +1 -2
  536. package/dist/shims/internal/app-route-detection.d.ts +1 -2
  537. package/dist/shims/internal/app-route-detection.js +0 -2
  538. package/dist/shims/internal/app-router-context.d.ts +1 -2
  539. package/dist/shims/internal/app-router-context.js +0 -2
  540. package/dist/shims/internal/cookie-serialize.d.ts +1 -2
  541. package/dist/shims/internal/cookie-serialize.js +0 -2
  542. package/dist/shims/internal/make-hanging-promise.d.ts +1 -2
  543. package/dist/shims/internal/make-hanging-promise.js +0 -2
  544. package/dist/shims/internal/pages-data-fetch-dedup.d.ts +1 -2
  545. package/dist/shims/internal/pages-data-fetch-dedup.js +0 -2
  546. package/dist/shims/internal/pages-data-target.d.ts +1 -2
  547. package/dist/shims/internal/pages-data-target.js +0 -2
  548. package/dist/shims/internal/pages-data-url.d.ts +1 -2
  549. package/dist/shims/internal/pages-data-url.js +0 -2
  550. package/dist/shims/internal/parse-cookie-header.d.ts +1 -2
  551. package/dist/shims/internal/parse-cookie-header.js +0 -2
  552. package/dist/shims/internal/router-context.d.ts +2 -4
  553. package/dist/shims/internal/router-context.js +0 -2
  554. package/dist/shims/internal/utils.d.ts +1 -2
  555. package/dist/shims/internal/utils.js +0 -2
  556. package/dist/shims/internal/work-unit-async-storage.d.ts +1 -2
  557. package/dist/shims/internal/work-unit-async-storage.js +0 -2
  558. package/dist/shims/layout-segment-context.d.ts +2 -4
  559. package/dist/shims/layout-segment-context.js +0 -2
  560. package/dist/shims/legacy-image.d.ts +1 -2
  561. package/dist/shims/legacy-image.js +0 -2
  562. package/dist/shims/link-prefetch.d.ts +1 -2
  563. package/dist/shims/link-prefetch.js +0 -2
  564. package/dist/shims/link.d.ts +2 -2
  565. package/dist/shims/link.js +20 -14
  566. package/dist/shims/metadata.d.ts +4 -5
  567. package/dist/shims/metadata.js +1 -3
  568. package/dist/shims/navigation-state.d.ts +1 -2
  569. package/dist/shims/navigation-state.js +0 -2
  570. package/dist/shims/navigation.d.ts +23 -7
  571. package/dist/shims/navigation.js +188 -39
  572. package/dist/shims/navigation.react-server.d.ts +1 -2
  573. package/dist/shims/navigation.react-server.js +0 -2
  574. package/dist/shims/offline.d.ts +1 -2
  575. package/dist/shims/offline.js +0 -2
  576. package/dist/shims/og.d.ts +1 -2
  577. package/dist/shims/og.js +2 -4
  578. package/dist/shims/pages-router-runtime.d.ts +7 -2
  579. package/dist/shims/pages-router-runtime.js +11 -3
  580. package/dist/shims/ppr-fallback-shell.d.ts +29 -0
  581. package/dist/shims/ppr-fallback-shell.js +149 -0
  582. package/dist/shims/readonly-url-search-params.d.ts +1 -2
  583. package/dist/shims/readonly-url-search-params.js +0 -2
  584. package/dist/shims/request-context.d.ts +9 -5
  585. package/dist/shims/request-context.js +0 -2
  586. package/dist/shims/request-state-types.d.ts +1 -1
  587. package/dist/shims/root-params.d.ts +1 -2
  588. package/dist/shims/root-params.js +0 -2
  589. package/dist/shims/router-state.d.ts +1 -2
  590. package/dist/shims/router-state.js +0 -2
  591. package/dist/shims/router.d.ts +1 -2
  592. package/dist/shims/router.js +135 -20
  593. package/dist/shims/script-nonce-context.d.ts +1 -2
  594. package/dist/shims/script-nonce-context.js +0 -2
  595. package/dist/shims/script.d.ts +1 -2
  596. package/dist/shims/script.js +0 -2
  597. package/dist/shims/server.d.ts +1 -2
  598. package/dist/shims/server.js +0 -2
  599. package/dist/shims/slot.d.ts +11 -4
  600. package/dist/shims/slot.js +121 -9
  601. package/dist/shims/thenable-params.d.ts +2 -2
  602. package/dist/shims/thenable-params.js +107 -12
  603. package/dist/shims/unified-request-context.d.ts +1 -2
  604. package/dist/shims/unified-request-context.js +0 -2
  605. package/dist/shims/unrecognized-action-error.d.ts +1 -2
  606. package/dist/shims/unrecognized-action-error.js +0 -2
  607. package/dist/shims/url-safety.d.ts +1 -2
  608. package/dist/shims/url-safety.js +0 -2
  609. package/dist/shims/url-utils.d.ts +1 -2
  610. package/dist/shims/url-utils.js +0 -2
  611. package/dist/shims/use-merged-ref.d.ts +1 -2
  612. package/dist/shims/use-merged-ref.js +0 -2
  613. package/dist/shims/web-vitals.d.ts +1 -2
  614. package/dist/shims/web-vitals.js +0 -2
  615. package/dist/typegen.d.ts +1 -2
  616. package/dist/typegen.js +2 -9
  617. package/dist/utils/asset-prefix.d.ts +1 -2
  618. package/dist/utils/asset-prefix.js +0 -2
  619. package/dist/utils/base-path.d.ts +1 -2
  620. package/dist/utils/base-path.js +0 -2
  621. package/dist/utils/cache-control-metadata.d.ts +1 -4
  622. package/dist/utils/cache-control-metadata.js +1 -3
  623. package/dist/utils/client-build-manifest.d.ts +1 -2
  624. package/dist/utils/client-build-manifest.js +0 -2
  625. package/dist/utils/compare.d.ts +4 -0
  626. package/dist/utils/compare.js +8 -0
  627. package/dist/utils/dev-error-recovery-event.d.ts +4 -0
  628. package/dist/utils/dev-error-recovery-event.js +4 -0
  629. package/dist/utils/domain-locale.d.ts +1 -2
  630. package/dist/utils/domain-locale.js +2 -4
  631. package/dist/utils/encode-cache-tag.d.ts +1 -2
  632. package/dist/utils/encode-cache-tag.js +0 -2
  633. package/dist/utils/error-cause.d.ts +1 -2
  634. package/dist/utils/error-cause.js +0 -2
  635. package/dist/utils/hash.d.ts +1 -2
  636. package/dist/utils/hash.js +0 -2
  637. package/dist/utils/html-limited-bots.d.ts +1 -2
  638. package/dist/utils/html-limited-bots.js +0 -2
  639. package/dist/utils/lazy-chunks.d.ts +1 -2
  640. package/dist/utils/lazy-chunks.js +0 -2
  641. package/dist/utils/manifest-paths.d.ts +8 -3
  642. package/dist/utils/manifest-paths.js +15 -3
  643. package/dist/utils/mdx-scan.d.ts +1 -2
  644. package/dist/utils/mdx-scan.js +0 -2
  645. package/dist/utils/navigation-signal.d.ts +1 -2
  646. package/dist/utils/navigation-signal.js +0 -2
  647. package/dist/utils/number.d.ts +4 -0
  648. package/dist/utils/number.js +6 -0
  649. package/dist/utils/path.d.ts +4 -2
  650. package/dist/utils/path.js +5 -3
  651. package/dist/utils/prerender-output-paths.d.ts +1 -2
  652. package/dist/utils/prerender-output-paths.js +0 -2
  653. package/dist/utils/project.d.ts +1 -2
  654. package/dist/utils/project.js +0 -2
  655. package/dist/utils/promise.d.ts +4 -0
  656. package/dist/utils/promise.js +6 -0
  657. package/dist/utils/public-routes.d.ts +1 -2
  658. package/dist/utils/public-routes.js +0 -2
  659. package/dist/utils/query.d.ts +1 -2
  660. package/dist/utils/query.js +0 -2
  661. package/dist/utils/record.d.ts +1 -2
  662. package/dist/utils/record.js +0 -2
  663. package/dist/utils/regex.d.ts +4 -0
  664. package/dist/utils/regex.js +6 -0
  665. package/dist/utils/safe-json-file.d.ts +1 -2
  666. package/dist/utils/safe-json-file.js +0 -2
  667. package/dist/utils/sorted-array.d.ts +1 -2
  668. package/dist/utils/sorted-array.js +0 -2
  669. package/dist/utils/text-stream.d.ts +1 -2
  670. package/dist/utils/text-stream.js +0 -2
  671. package/dist/utils/vinext-root.d.ts +1 -2
  672. package/dist/utils/vinext-root.js +0 -2
  673. package/dist/utils/vite-version.d.ts +1 -2
  674. package/dist/utils/vite-version.js +0 -2
  675. package/package.json +19 -6
  676. package/dist/build/clean-output.js.map +0 -1
  677. package/dist/build/client-build-config.js.map +0 -1
  678. package/dist/build/google-fonts/build-url.js.map +0 -1
  679. package/dist/build/google-fonts/fallback-metrics-data.js.map +0 -1
  680. package/dist/build/google-fonts/fallback-metrics.js.map +0 -1
  681. package/dist/build/google-fonts/font-data.js.map +0 -1
  682. package/dist/build/google-fonts/font-metadata.js.map +0 -1
  683. package/dist/build/google-fonts/get-axes.js.map +0 -1
  684. package/dist/build/google-fonts/sort-variants.js.map +0 -1
  685. package/dist/build/google-fonts/validate.js.map +0 -1
  686. package/dist/build/inline-css.js.map +0 -1
  687. package/dist/build/layout-classification.js.map +0 -1
  688. package/dist/build/nitro-route-rules.js.map +0 -1
  689. package/dist/build/precompress.js.map +0 -1
  690. package/dist/build/prerender.js.map +0 -1
  691. package/dist/build/report.js.map +0 -1
  692. package/dist/build/route-classification-injector.js.map +0 -1
  693. package/dist/build/route-classification-manifest.js.map +0 -1
  694. package/dist/build/run-prerender.js.map +0 -1
  695. package/dist/build/server-manifest.js.map +0 -1
  696. package/dist/build/ssr-manifest.js.map +0 -1
  697. package/dist/build/standalone.js.map +0 -1
  698. package/dist/build/static-export.js.map +0 -1
  699. package/dist/check.js.map +0 -1
  700. package/dist/cli-args.js.map +0 -1
  701. package/dist/cli.js.map +0 -1
  702. package/dist/client/instrumentation-client-inject.js.map +0 -1
  703. package/dist/client/instrumentation-client-state.js.map +0 -1
  704. package/dist/client/instrumentation-client.js.map +0 -1
  705. package/dist/client/navigation-runtime.js.map +0 -1
  706. package/dist/client/pages-router-link-navigation.js.map +0 -1
  707. package/dist/client/validate-module-path.js.map +0 -1
  708. package/dist/client/vinext-next-data.js.map +0 -1
  709. package/dist/client/window-next.js.map +0 -1
  710. package/dist/cloudflare/kv-cache-handler.js.map +0 -1
  711. package/dist/cloudflare/tpr.js.map +0 -1
  712. package/dist/config/config-matchers.js.map +0 -1
  713. package/dist/config/dotenv.js.map +0 -1
  714. package/dist/config/next-config.js.map +0 -1
  715. package/dist/config/tsconfig-paths.js.map +0 -1
  716. package/dist/deploy.js.map +0 -1
  717. package/dist/entries/app-browser-entry.js.map +0 -1
  718. package/dist/entries/app-rsc-entry.js.map +0 -1
  719. package/dist/entries/app-rsc-manifest.js.map +0 -1
  720. package/dist/entries/app-ssr-entry.js.map +0 -1
  721. package/dist/entries/pages-client-entry.js.map +0 -1
  722. package/dist/entries/pages-entry-helpers.js.map +0 -1
  723. package/dist/entries/pages-server-entry.js.map +0 -1
  724. package/dist/entries/runtime-entry-module.js.map +0 -1
  725. package/dist/index.js.map +0 -1
  726. package/dist/init.js.map +0 -1
  727. package/dist/plugins/async-hooks-stub.js.map +0 -1
  728. package/dist/plugins/client-reference-dedup.js.map +0 -1
  729. package/dist/plugins/css-data-url.js.map +0 -1
  730. package/dist/plugins/fonts.js.map +0 -1
  731. package/dist/plugins/import-meta-url.js.map +0 -1
  732. package/dist/plugins/instrumentation-client.js.map +0 -1
  733. package/dist/plugins/middleware-server-only.js.map +0 -1
  734. package/dist/plugins/og-assets.js.map +0 -1
  735. package/dist/plugins/optimize-imports.js.map +0 -1
  736. package/dist/plugins/postcss.js.map +0 -1
  737. package/dist/plugins/remove-console.js.map +0 -1
  738. package/dist/plugins/rsc-client-reference-loaders.js.map +0 -1
  739. package/dist/plugins/rsc-client-shim-excludes.js.map +0 -1
  740. package/dist/plugins/sass.js.map +0 -1
  741. package/dist/plugins/server-externals-manifest.js.map +0 -1
  742. package/dist/plugins/strip-server-exports.js.map +0 -1
  743. package/dist/routing/app-route-graph.js.map +0 -1
  744. package/dist/routing/app-router.js.map +0 -1
  745. package/dist/routing/file-matcher.js.map +0 -1
  746. package/dist/routing/pages-router.js.map +0 -1
  747. package/dist/routing/route-matching.js.map +0 -1
  748. package/dist/routing/route-pattern.js.map +0 -1
  749. package/dist/routing/route-trie.js.map +0 -1
  750. package/dist/routing/route-validation.js.map +0 -1
  751. package/dist/routing/utils.js.map +0 -1
  752. package/dist/server/api-handler.js.map +0 -1
  753. package/dist/server/app-browser-action-result.js.map +0 -1
  754. package/dist/server/app-browser-entry.js.map +0 -1
  755. package/dist/server/app-browser-error.js.map +0 -1
  756. package/dist/server/app-browser-hydration.js.map +0 -1
  757. package/dist/server/app-browser-interception-context.js.map +0 -1
  758. package/dist/server/app-browser-mpa-navigation.js.map +0 -1
  759. package/dist/server/app-browser-navigation-controller.js.map +0 -1
  760. package/dist/server/app-browser-popstate.js.map +0 -1
  761. package/dist/server/app-browser-rsc-redirect.js.map +0 -1
  762. package/dist/server/app-browser-state.js.map +0 -1
  763. package/dist/server/app-browser-stream.js.map +0 -1
  764. package/dist/server/app-browser-visible-commit.js.map +0 -1
  765. package/dist/server/app-client-reference-preloader.js.map +0 -1
  766. package/dist/server/app-elements-wire.js.map +0 -1
  767. package/dist/server/app-elements.js.map +0 -1
  768. package/dist/server/app-fallback-renderer.js.map +0 -1
  769. package/dist/server/app-history-state.js.map +0 -1
  770. package/dist/server/app-hook-warning-suppression.js.map +0 -1
  771. package/dist/server/app-inline-css-client.js.map +0 -1
  772. package/dist/server/app-interception-context-header.js.map +0 -1
  773. package/dist/server/app-layout-param-observation.js.map +0 -1
  774. package/dist/server/app-middleware.js.map +0 -1
  775. package/dist/server/app-mounted-slots-header.js.map +0 -1
  776. package/dist/server/app-optimistic-routing.js.map +0 -1
  777. package/dist/server/app-page-boundary-render.js.map +0 -1
  778. package/dist/server/app-page-boundary.js.map +0 -1
  779. package/dist/server/app-page-cache.js.map +0 -1
  780. package/dist/server/app-page-dispatch.js.map +0 -1
  781. package/dist/server/app-page-element-builder.js.map +0 -1
  782. package/dist/server/app-page-execution.js.map +0 -1
  783. package/dist/server/app-page-head.js.map +0 -1
  784. package/dist/server/app-page-method.js.map +0 -1
  785. package/dist/server/app-page-params.js.map +0 -1
  786. package/dist/server/app-page-probe.js.map +0 -1
  787. package/dist/server/app-page-render-identity.js.map +0 -1
  788. package/dist/server/app-page-render-observation.js.map +0 -1
  789. package/dist/server/app-page-render.js.map +0 -1
  790. package/dist/server/app-page-request.js.map +0 -1
  791. package/dist/server/app-page-response.js.map +0 -1
  792. package/dist/server/app-page-route-wiring.js.map +0 -1
  793. package/dist/server/app-page-segment-state.js.map +0 -1
  794. package/dist/server/app-page-stream.js.map +0 -1
  795. package/dist/server/app-post-middleware-context.js.map +0 -1
  796. package/dist/server/app-prerender-endpoints.js.map +0 -1
  797. package/dist/server/app-prerender-static-params.js.map +0 -1
  798. package/dist/server/app-render-dependency.js.map +0 -1
  799. package/dist/server/app-request-context.js.map +0 -1
  800. package/dist/server/app-route-handler-cache.js.map +0 -1
  801. package/dist/server/app-route-handler-dispatch.js.map +0 -1
  802. package/dist/server/app-route-handler-execution.js.map +0 -1
  803. package/dist/server/app-route-handler-policy.js.map +0 -1
  804. package/dist/server/app-route-handler-response.js.map +0 -1
  805. package/dist/server/app-route-handler-runtime.js.map +0 -1
  806. package/dist/server/app-router-entry.js.map +0 -1
  807. package/dist/server/app-rsc-cache-busting.js.map +0 -1
  808. package/dist/server/app-rsc-embedded-chunks.js.map +0 -1
  809. package/dist/server/app-rsc-error-handler.js.map +0 -1
  810. package/dist/server/app-rsc-errors.js.map +0 -1
  811. package/dist/server/app-rsc-handler.js.map +0 -1
  812. package/dist/server/app-rsc-render-mode.js.map +0 -1
  813. package/dist/server/app-rsc-request-normalization.js.map +0 -1
  814. package/dist/server/app-rsc-response-finalizer.js.map +0 -1
  815. package/dist/server/app-rsc-route-matching.js.map +0 -1
  816. package/dist/server/app-segment-config.js.map +0 -1
  817. package/dist/server/app-server-action-execution.js.map +0 -1
  818. package/dist/server/app-ssr-entry.js.map +0 -1
  819. package/dist/server/app-ssr-error-meta.js.map +0 -1
  820. package/dist/server/app-ssr-stream.js.map +0 -1
  821. package/dist/server/app-static-generation.js.map +0 -1
  822. package/dist/server/artifact-compatibility.js.map +0 -1
  823. package/dist/server/cache-control.js.map +0 -1
  824. package/dist/server/cache-headers.js.map +0 -1
  825. package/dist/server/cache-proof.js.map +0 -1
  826. package/dist/server/client-reuse-manifest.js.map +0 -1
  827. package/dist/server/client-trace-metadata.js.map +0 -1
  828. package/dist/server/cookie-utils.js.map +0 -1
  829. package/dist/server/csp.js.map +0 -1
  830. package/dist/server/default-global-error-module.js.map +0 -1
  831. package/dist/server/default-not-found-module.js.map +0 -1
  832. package/dist/server/dev-error-overlay-store.js.map +0 -1
  833. package/dist/server/dev-error-overlay.js.map +0 -1
  834. package/dist/server/dev-lockfile.js.map +0 -1
  835. package/dist/server/dev-module-runner.js.map +0 -1
  836. package/dist/server/dev-origin-check.js.map +0 -1
  837. package/dist/server/dev-route-files.js.map +0 -1
  838. package/dist/server/dev-server.js.map +0 -1
  839. package/dist/server/document-initial-head.js.map +0 -1
  840. package/dist/server/edge-api-runtime.js.map +0 -1
  841. package/dist/server/file-based-metadata.js.map +0 -1
  842. package/dist/server/headers.js.map +0 -1
  843. package/dist/server/html.js.map +0 -1
  844. package/dist/server/http-error-responses.js.map +0 -1
  845. package/dist/server/image-optimization.js.map +0 -1
  846. package/dist/server/implicit-tags.js.map +0 -1
  847. package/dist/server/instrumentation-runtime.js.map +0 -1
  848. package/dist/server/instrumentation.js.map +0 -1
  849. package/dist/server/isr-cache.js.map +0 -1
  850. package/dist/server/metadata-route-build-data.js.map +0 -1
  851. package/dist/server/metadata-route-response.js.map +0 -1
  852. package/dist/server/metadata-routes.js.map +0 -1
  853. package/dist/server/middleware-matcher.js.map +0 -1
  854. package/dist/server/middleware-request-headers.js.map +0 -1
  855. package/dist/server/middleware-response-headers.js.map +0 -1
  856. package/dist/server/middleware-runtime.js.map +0 -1
  857. package/dist/server/middleware.js.map +0 -1
  858. package/dist/server/navigation-planner.js.map +0 -1
  859. package/dist/server/navigation-trace.js.map +0 -1
  860. package/dist/server/next-error-digest.js.map +0 -1
  861. package/dist/server/normalize-path.js.map +0 -1
  862. package/dist/server/pages-api-route.js.map +0 -1
  863. package/dist/server/pages-body-parser-config.js.map +0 -1
  864. package/dist/server/pages-data-route.js.map +0 -1
  865. package/dist/server/pages-default-404.js.map +0 -1
  866. package/dist/server/pages-document-initial-props.js.map +0 -1
  867. package/dist/server/pages-i18n.js.map +0 -1
  868. package/dist/server/pages-media-type.js.map +0 -1
  869. package/dist/server/pages-node-compat.js.map +0 -1
  870. package/dist/server/pages-page-data.js.map +0 -1
  871. package/dist/server/pages-page-method.js.map +0 -1
  872. package/dist/server/pages-page-response.js.map +0 -1
  873. package/dist/server/pages-serializable-props.js.map +0 -1
  874. package/dist/server/prerender-route-params.js.map +0 -1
  875. package/dist/server/prerender-work-unit-setup.js.map +0 -1
  876. package/dist/server/prod-server.js.map +0 -1
  877. package/dist/server/proxy-trust.js.map +0 -1
  878. package/dist/server/request-log.js.map +0 -1
  879. package/dist/server/request-pipeline.js.map +0 -1
  880. package/dist/server/rsc-stream-hints.js.map +0 -1
  881. package/dist/server/seed-cache.js.map +0 -1
  882. package/dist/server/server-action-not-found.js.map +0 -1
  883. package/dist/server/server-globals.js.map +0 -1
  884. package/dist/server/skip-cache-proof.js.map +0 -1
  885. package/dist/server/socket-error-backstop.js.map +0 -1
  886. package/dist/server/static-file-cache.js.map +0 -1
  887. package/dist/server/static-layout-client-reuse-proof.js.map +0 -1
  888. package/dist/server/streaming-metadata.js.map +0 -1
  889. package/dist/server/worker-utils.js.map +0 -1
  890. package/dist/shims/amp.js.map +0 -1
  891. package/dist/shims/app-router-scroll-state.js.map +0 -1
  892. package/dist/shims/app-router-scroll.js.map +0 -1
  893. package/dist/shims/app.js.map +0 -1
  894. package/dist/shims/before-interactive-context.js.map +0 -1
  895. package/dist/shims/cache-for-request.js.map +0 -1
  896. package/dist/shims/cache-runtime.js.map +0 -1
  897. package/dist/shims/cache.js.map +0 -1
  898. package/dist/shims/client-hook-error.js.map +0 -1
  899. package/dist/shims/client-locale.js.map +0 -1
  900. package/dist/shims/compat-router.js.map +0 -1
  901. package/dist/shims/config.js.map +0 -1
  902. package/dist/shims/constants.js.map +0 -1
  903. package/dist/shims/default-global-error.js.map +0 -1
  904. package/dist/shims/default-not-found.js.map +0 -1
  905. package/dist/shims/document.js.map +0 -1
  906. package/dist/shims/dynamic.js.map +0 -1
  907. package/dist/shims/error-boundary.js.map +0 -1
  908. package/dist/shims/error.js.map +0 -1
  909. package/dist/shims/fetch-cache.js.map +0 -1
  910. package/dist/shims/font-google-base.js.map +0 -1
  911. package/dist/shims/font-local.js.map +0 -1
  912. package/dist/shims/font-utils.js.map +0 -1
  913. package/dist/shims/form.js.map +0 -1
  914. package/dist/shims/hash-scroll.js.map +0 -1
  915. package/dist/shims/head-state.js.map +0 -1
  916. package/dist/shims/head.js.map +0 -1
  917. package/dist/shims/headers.js.map +0 -1
  918. package/dist/shims/i18n-context.js.map +0 -1
  919. package/dist/shims/i18n-state.js.map +0 -1
  920. package/dist/shims/image-config.js.map +0 -1
  921. package/dist/shims/image.js.map +0 -1
  922. package/dist/shims/internal/als-registry.js.map +0 -1
  923. package/dist/shims/internal/app-route-detection.js.map +0 -1
  924. package/dist/shims/internal/app-router-context.js.map +0 -1
  925. package/dist/shims/internal/cookie-serialize.js.map +0 -1
  926. package/dist/shims/internal/make-hanging-promise.js.map +0 -1
  927. package/dist/shims/internal/pages-data-fetch-dedup.js.map +0 -1
  928. package/dist/shims/internal/pages-data-target.js.map +0 -1
  929. package/dist/shims/internal/pages-data-url.js.map +0 -1
  930. package/dist/shims/internal/parse-cookie-header.js.map +0 -1
  931. package/dist/shims/internal/router-context.js.map +0 -1
  932. package/dist/shims/internal/utils.js.map +0 -1
  933. package/dist/shims/internal/work-unit-async-storage.js.map +0 -1
  934. package/dist/shims/layout-segment-context.js.map +0 -1
  935. package/dist/shims/legacy-image.js.map +0 -1
  936. package/dist/shims/link-prefetch.js.map +0 -1
  937. package/dist/shims/link.js.map +0 -1
  938. package/dist/shims/metadata.js.map +0 -1
  939. package/dist/shims/navigation-state.js.map +0 -1
  940. package/dist/shims/navigation.js.map +0 -1
  941. package/dist/shims/navigation.react-server.js.map +0 -1
  942. package/dist/shims/offline.js.map +0 -1
  943. package/dist/shims/og.js.map +0 -1
  944. package/dist/shims/pages-router-runtime.js.map +0 -1
  945. package/dist/shims/readonly-url-search-params.js.map +0 -1
  946. package/dist/shims/request-context.js.map +0 -1
  947. package/dist/shims/root-params.js.map +0 -1
  948. package/dist/shims/router-state.js.map +0 -1
  949. package/dist/shims/router.js.map +0 -1
  950. package/dist/shims/script-nonce-context.js.map +0 -1
  951. package/dist/shims/script.js.map +0 -1
  952. package/dist/shims/server.js.map +0 -1
  953. package/dist/shims/slot.js.map +0 -1
  954. package/dist/shims/thenable-params.js.map +0 -1
  955. package/dist/shims/unified-request-context.js.map +0 -1
  956. package/dist/shims/unrecognized-action-error.js.map +0 -1
  957. package/dist/shims/url-safety.js.map +0 -1
  958. package/dist/shims/url-utils.js.map +0 -1
  959. package/dist/shims/use-merged-ref.js.map +0 -1
  960. package/dist/shims/web-vitals.js.map +0 -1
  961. package/dist/typegen.js.map +0 -1
  962. package/dist/utils/asset-prefix.js.map +0 -1
  963. package/dist/utils/base-path.js.map +0 -1
  964. package/dist/utils/cache-control-metadata.js.map +0 -1
  965. package/dist/utils/client-build-manifest.js.map +0 -1
  966. package/dist/utils/domain-locale.js.map +0 -1
  967. package/dist/utils/encode-cache-tag.js.map +0 -1
  968. package/dist/utils/error-cause.js.map +0 -1
  969. package/dist/utils/hash.js.map +0 -1
  970. package/dist/utils/html-limited-bots.js.map +0 -1
  971. package/dist/utils/lazy-chunks.js.map +0 -1
  972. package/dist/utils/manifest-paths.js.map +0 -1
  973. package/dist/utils/mdx-scan.js.map +0 -1
  974. package/dist/utils/navigation-signal.js.map +0 -1
  975. package/dist/utils/path.js.map +0 -1
  976. package/dist/utils/prerender-output-paths.js.map +0 -1
  977. package/dist/utils/project.js.map +0 -1
  978. package/dist/utils/public-routes.js.map +0 -1
  979. package/dist/utils/query.js.map +0 -1
  980. package/dist/utils/record.js.map +0 -1
  981. package/dist/utils/safe-json-file.js.map +0 -1
  982. package/dist/utils/sorted-array.js.map +0 -1
  983. package/dist/utils/text-stream.js.map +0 -1
  984. package/dist/utils/vinext-root.js.map +0 -1
  985. package/dist/utils/vite-version.js.map +0 -1
@@ -1,5 +1,5 @@
1
1
  import { stripBasePath } from "../utils/base-path.js";
2
- import { ACTION_REDIRECT_HEADER, ACTION_REDIRECT_STATUS_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";
@@ -10,29 +10,31 @@ import { retryScrollTo, scrollToHashTargetOnNextFrame } from "../shims/hash-scro
10
10
  import { getNavigationRuntime, registerNavigationRuntimeBootstrap, registerNavigationRuntimeFunctions } from "../client/navigation-runtime.js";
11
11
  import { notifyAppRouterTransitionStart } from "../client/instrumentation-client-state.js";
12
12
  import { resolveManifestNavigationInterceptionContext } from "./app-browser-interception-context.js";
13
- import { createHistoryStateWithNavigationMetadata, createHistoryStateWithPreviousNextUrl, readHistoryStatePreviousNextUrl, readHistoryStateTraversalIndex, resolveHistoryTraversalIntent } from "./app-history-state.js";
13
+ import { createHistoryStateWithNavigationMetadata, isHistoryStateBfcacheVersionCurrent, readHistoryStateBfcacheIds, readHistoryStateBfcacheVersion, readHistoryStatePreviousNextUrl, readHistoryStateTraversalIndex, resolveHistoryTraversalIntent } from "./app-history-state.js";
14
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";
15
16
  import { beginAppRouterScrollIntent, consumeAppRouterScrollIntent } from "../shims/app-router-scroll-state.js";
16
- import { __basePath, appRouterInstance, commitClientNavigationState, consumePrefetchResponseForNavigation, createCachedRscResponseSnapshot, createClientNavigationRenderSnapshot, decodeRedirectError, getClientNavigationRenderContext, getPrefetchCache, invalidatePrefetchCache, isRedirectError, pushHistoryStateWithoutNotify, replaceClientParamsWithoutNotify, replaceHistoryStateWithoutNotify, restoreRscResponse, saveScrollPosition, setClientParams, setMountedSlotsHeader, setNavigationContext, setPendingPathname, useRouter } from "../shims/navigation.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
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
- import { AppBrowserMpaNavigationScheduler } from "./app-browser-mpa-navigation.js";
26
27
  import { consumeInitialFormState, createVinextHydrateRootOptions, hydrateRootInTransition } from "./app-browser-hydration.js";
28
+ import { createVisitedResponseCacheEntry, isVisitedResponseCacheEntryFresh } from "./app-visited-response-cache.js";
27
29
  import { createPopstateRestoreHandler } from "./app-browser-popstate.js";
28
30
  import { createOnUncaughtError } from "./app-browser-error.js";
29
31
  import { dismissOverlay } from "./dev-error-overlay-store.js";
30
- import { devOnCaughtError, devOnUncaughtError, installDevErrorOverlay } from "./dev-error-overlay.js";
32
+ import { devOnCaughtError, devOnUncaughtError, installDevErrorOverlay, installViteHmrErrorHandler, reportInitialDevServerErrors } from "./dev-error-overlay.js";
31
33
  import { throwOnServerActionNotFound } from "./server-action-not-found.js";
32
34
  import { resolveRscRedirectLifecycleHop } from "./app-browser-rsc-redirect.js";
33
35
  import { createOptimisticRouteTemplate, getOptimisticPrefetchSourceKey, getOptimisticRouteTemplateKey, resolveOptimisticNavigationPayload } from "./app-optimistic-routing.js";
34
36
  import { removeStylesheetLinksCoveredByInlineCss } from "./app-inline-css-client.js";
35
- import { createElement, startTransition, use, useEffect, useLayoutEffect, useRef, useState } from "react";
37
+ import { createElement, startTransition, use, useEffect, useLayoutEffect, useMemo, useRef, useState } from "react";
36
38
  import { createFromFetch, createFromReadableStream, createTemporaryReferenceSet, encodeReply, setServerCallback } from "@vitejs/plugin-rsc/browser";
37
39
  import { hydrateRoot } from "react-dom/client";
38
40
  //#region src/server/app-browser-entry.ts
@@ -48,8 +50,6 @@ function toOperationLane(kind) {
48
50
  }
49
51
  }
50
52
  const MAX_VISITED_RESPONSE_CACHE_SIZE = 50;
51
- const VISITED_RESPONSE_CACHE_TTL = 5 * 6e4;
52
- const MAX_TRAVERSAL_CACHE_TTL = 30 * 6e4;
53
53
  const CLIENT_RSC_COMPATIBILITY_ID = getVinextRscCompatibilityId();
54
54
  const optimisticRouteTemplates = /* @__PURE__ */ new Map();
55
55
  const optimisticRouteTemplateSources = /* @__PURE__ */ new Set();
@@ -76,6 +76,7 @@ function syncServerActionHttpFallbackHead(status) {
76
76
  robots.setAttribute(ACTION_HTTP_FALLBACK_ROBOTS_META_ATTR, "robots");
77
77
  document.head.appendChild(robots);
78
78
  }
79
+ const BfcacheIdMapContext = getBfcacheIdMapContext();
79
80
  function parseEncodedJsonHeader(value) {
80
81
  if (!value) return null;
81
82
  try {
@@ -93,8 +94,28 @@ let browserRouterStateHasEverCommitted = false;
93
94
  let pendingNavigationRecoveryHref = null;
94
95
  const mpaNavigationScheduler = new AppBrowserMpaNavigationScheduler();
95
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;
96
101
  let currentHistoryTraversalIndex = readHistoryStateTraversalIndex(window.history.state) ?? 0;
97
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
+ }
98
119
  function allocateNavigationHistoryTraversalIndex(historyUpdateMode) {
99
120
  switch (historyUpdateMode) {
100
121
  case "push": return nextHistoryTraversalIndex + 1;
@@ -110,7 +131,10 @@ function commitHistoryTraversalIndex(index) {
110
131
  function commitHashOnlyNavigation(href, historyUpdateMode, scroll) {
111
132
  const navigationHistoryIndex = allocateNavigationHistoryTraversalIndex(historyUpdateMode);
112
133
  const previousNextUrl = hasBrowserRouterState() ? getBrowserRouterState().previousNextUrl : readHistoryStatePreviousNextUrl(window.history.state);
134
+ const bfcacheIds = hasBrowserRouterState() ? getBrowserRouterState().bfcacheIds : readCurrentBfcacheVersionHistoryIds(window.history.state);
113
135
  const historyState = createHistoryStateWithNavigationMetadata(createHashOnlyNavigationBaseHistoryState(historyUpdateMode, scroll), {
136
+ bfcacheIds,
137
+ bfcacheVersion: bfcacheIds === null ? void 0 : currentBfcacheVersion,
114
138
  previousNextUrl,
115
139
  traversalIndex: navigationHistoryIndex
116
140
  });
@@ -166,6 +190,7 @@ function clearPrefetchState() {
166
190
  function clearClientNavigationCaches() {
167
191
  clearVisitedResponseCache();
168
192
  clearPrefetchState();
193
+ invalidateRestorableBfcacheIds();
169
194
  }
170
195
  function isSettledPrefetchCacheEntry(entry) {
171
196
  return entry.outcome === "cache-seeded" && entry.pending === void 0 && entry.snapshot !== void 0;
@@ -184,7 +209,7 @@ function parsePrefetchCacheKey(cacheKey) {
184
209
  async function learnOptimisticRouteTemplateFromPrefetch(options) {
185
210
  const source = parsePrefetchCacheKey(options.cacheKey);
186
211
  if (source.interceptionContext !== options.interceptionContext) return false;
187
- if ((options.entry.snapshot.mountedSlotsHeader ?? null) !== options.mountedSlotsHeader) return false;
212
+ if (resolvePrefetchCacheEntryMountedSlotsHeader(options.entry) !== options.mountedSlotsHeader) return false;
188
213
  if (options.interceptionContext !== null) return false;
189
214
  const elements = await decodeAppElementsPromise(createFromFetch(Promise.resolve(restoreRscResponse(options.entry.snapshot))));
190
215
  const template = createOptimisticRouteTemplate({
@@ -233,11 +258,26 @@ async function learnOptimisticRouteTemplatesFromPrefetchCache(options) {
233
258
  if (learning.length === 0) return;
234
259
  await Promise.allSettled(learning);
235
260
  }
236
- function syncCurrentHistoryStatePreviousNextUrl(previousNextUrl) {
237
- if (readHistoryStatePreviousNextUrl(window.history.state) === previousNextUrl) return;
238
- 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
+ });
239
279
  replaceHistoryStateWithoutNotify(nextHistoryState, "", window.location.href);
240
- if (readHistoryStatePreviousNextUrl(window.history.state) === previousNextUrl) return;
280
+ if (isHistoryStateNavigationMetadataInSync(window.history.state, previousNextUrl, bfcacheIds)) return;
241
281
  window.history.replaceState(nextHistoryState, "", window.location.href);
242
282
  }
243
283
  function createActionInitiationSnapshot() {
@@ -249,7 +289,7 @@ function createActionInitiationSnapshot() {
249
289
  });
250
290
  }
251
291
  function createNavigationCommitEffect(options) {
252
- const { href, historyUpdateMode, navId, params, previousNextUrl, targetHistoryIndex } = options;
292
+ const { bfcacheIds, href, historyUpdateMode, navId, params, previousNextUrl, targetHistoryIndex } = options;
253
293
  return () => {
254
294
  if (!browserNavigationController.isCurrentNavigation(navId)) {
255
295
  commitClientNavigationState(void 0, { releaseSnapshot: true });
@@ -259,6 +299,8 @@ function createNavigationCommitEffect(options) {
259
299
  const preserveExistingState = historyUpdateMode === "replace";
260
300
  const navigationHistoryIndex = targetHistoryIndex !== void 0 ? targetHistoryIndex : allocateNavigationHistoryTraversalIndex(historyUpdateMode);
261
301
  const historyState = createHistoryStateWithNavigationMetadata(preserveExistingState ? window.history.state : null, {
302
+ bfcacheIds,
303
+ bfcacheVersion: currentBfcacheVersion,
262
304
  previousNextUrl,
263
305
  traversalIndex: navigationHistoryIndex
264
306
  });
@@ -275,7 +317,7 @@ function createNavigationCommitEffect(options) {
275
317
  commitHistoryTraversalIndex(navigationHistoryIndex);
276
318
  }
277
319
  if (!wroteHistoryState) {
278
- syncCurrentHistoryStatePreviousNextUrl(previousNextUrl);
320
+ syncCurrentHistoryStatePreviousNextUrl(previousNextUrl, bfcacheIds);
279
321
  stageClientParams(params);
280
322
  if (targetHistoryIndex !== void 0) commitHistoryTraversalIndex(targetHistoryIndex);
281
323
  }
@@ -283,7 +325,7 @@ function createNavigationCommitEffect(options) {
283
325
  commitClientNavigationState(navId);
284
326
  };
285
327
  }
286
- 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) {
287
329
  syncServerActionHttpFallbackHead(null);
288
330
  try {
289
331
  return await browserNavigationController.renderNavigationPayload({
@@ -301,6 +343,7 @@ async function renderNavigationPayload(payload, navigationSnapshot, targetHref,
301
343
  pendingRouterState,
302
344
  previousNextUrl,
303
345
  scrollIntent,
346
+ restoredBfcacheIds,
304
347
  targetHistoryIndex: traversalIntent === null ? void 0 : traversalIntent.targetHistoryIndex,
305
348
  targetHref,
306
349
  navId
@@ -382,18 +425,10 @@ function getVisitedResponse(rscUrl, interceptionContext, mountedSlotsHeader, nav
382
425
  visitedResponseCache.delete(cacheKey);
383
426
  return null;
384
427
  }
385
- if (navigationKind === "refresh") return null;
386
- if (navigationKind === "traverse") {
387
- const createdAt = cached.expiresAt - VISITED_RESPONSE_CACHE_TTL;
388
- if (Date.now() - createdAt >= MAX_TRAVERSAL_CACHE_TTL) {
389
- visitedResponseCache.delete(cacheKey);
390
- return null;
391
- }
392
- visitedResponseCache.delete(cacheKey);
393
- visitedResponseCache.set(cacheKey, cached);
394
- return cached;
395
- }
396
- if (cached.expiresAt > Date.now()) {
428
+ if (isVisitedResponseCacheEntryFresh(cached, {
429
+ navigationKind,
430
+ now: Date.now()
431
+ })) {
397
432
  visitedResponseCache.delete(cacheKey);
398
433
  visitedResponseCache.set(cacheKey, cached);
399
434
  return cached;
@@ -401,16 +436,23 @@ function getVisitedResponse(rscUrl, interceptionContext, mountedSlotsHeader, nav
401
436
  visitedResponseCache.delete(cacheKey);
402
437
  return null;
403
438
  }
439
+ function deleteVisitedResponse(rscUrl, interceptionContext) {
440
+ visitedResponseCache.delete(AppElementsWire.encodeCacheKey(rscUrl, interceptionContext));
441
+ }
404
442
  function storeVisitedResponseSnapshot(rscUrl, interceptionContext, snapshot, params) {
405
443
  const cacheKey = AppElementsWire.encodeCacheKey(rscUrl, interceptionContext);
406
444
  visitedResponseCache.delete(cacheKey);
407
445
  evictVisitedResponseCacheIfNeeded();
408
446
  const now = Date.now();
409
- visitedResponseCache.set(cacheKey, {
447
+ visitedResponseCache.set(cacheKey, createVisitedResponseCacheEntry({
448
+ now,
410
449
  params,
411
- expiresAt: now + VISITED_RESPONSE_CACHE_TTL,
412
450
  response: snapshot
413
- });
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();
414
456
  }
415
457
  function getRequestState(navigationKind, targetPathname, previousNextUrlOverride, traverseHistoryState) {
416
458
  if (previousNextUrlOverride !== void 0) return {
@@ -494,8 +536,9 @@ function decodeAppElementsPromise(payload) {
494
536
  function BrowserRoot({ initialElements, initialNavigationSnapshot }) {
495
537
  const resolvedElements = use(initialElements);
496
538
  const initialMetadata = AppElementsWire.readMetadata(resolvedElements);
497
- const [treeStateValue, setTreeStateValue] = useState({
539
+ const [treeStateValue, setTreeStateValue] = useState(() => ({
498
540
  activeOperation: null,
541
+ bfcacheIds: createInitialBfcacheIdMap(resolvedElements),
499
542
  elements: resolvedElements,
500
543
  interception: initialMetadata.interception,
501
544
  interceptionContext: initialMetadata.interceptionContext,
@@ -508,7 +551,7 @@ function BrowserRoot({ initialElements, initialNavigationSnapshot }) {
508
551
  routeId: initialMetadata.routeId,
509
552
  slotBindings: initialMetadata.slotBindings,
510
553
  visibleCommitVersion: 0
511
- });
554
+ }));
512
555
  if (isMpaNavigationState(treeStateValue)) {
513
556
  performMpaNavigation(treeStateValue.href, treeStateValue.historyUpdateMode);
514
557
  throw unresolvedMpaNavigation;
@@ -549,12 +592,24 @@ function BrowserRoot({ initialElements, initialNavigationSnapshot }) {
549
592
  useLayoutEffect(() => {
550
593
  if (treeState.renderId !== 0) return;
551
594
  replaceHistoryStateWithoutNotify(createHistoryStateWithNavigationMetadata(window.history.state, {
595
+ bfcacheIds: treeState.bfcacheIds,
596
+ bfcacheVersion: currentBfcacheVersion,
552
597
  previousNextUrl: treeState.previousNextUrl,
553
598
  traversalIndex: currentHistoryTraversalIndex
554
599
  }), "", window.location.href);
555
- }, [treeState.previousNextUrl, treeState.renderId]);
600
+ }, [
601
+ treeState.bfcacheIds,
602
+ treeState.previousNextUrl,
603
+ treeState.renderId
604
+ ]);
556
605
  const routeTree = createElement(RedirectBoundary, null, createElement(NavigationCommitSignal, { renderId: treeState.renderId }, createElement(ElementsContext.Provider, { value: treeState.elements }, createElement(Slot, { id: treeState.routeId }))));
557
- const innerTree = AppRouterContext ? createElement(AppRouterContext.Provider, { value: appRouterInstance }, createElement(AppRouterRedirectBridge, null, 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;
558
613
  const committedTree = import.meta.env.DEV ? createElement(DevRecoveryBoundary, {
559
614
  resetKey: treeState.renderId,
560
615
  onCatch: handleDevRecoveryBoundaryCatch
@@ -673,7 +728,7 @@ function registerServerActionCallback() {
673
728
  syncServerActionHttpFallbackHead(null);
674
729
  const temporaryReferences = createTemporaryReferenceSet();
675
730
  const actionInitiation = createActionInitiationSnapshot();
676
- syncCurrentHistoryStatePreviousNextUrl(actionInitiation.routerState.previousNextUrl);
731
+ syncCurrentHistoryStatePreviousNextUrl(actionInitiation.routerState.previousNextUrl, actionInitiation.routerState.bfcacheIds);
677
732
  const body = await encodeReply(args, { temporaryReferences });
678
733
  const { headers } = resolveServerActionRequestState({
679
734
  actionId: id,
@@ -758,12 +813,16 @@ function registerServerActionCallback() {
758
813
  }
759
814
  async function main() {
760
815
  registerServerActionCallback();
816
+ if (import.meta.env.DEV) {
817
+ installDevErrorOverlay();
818
+ installViteHmrErrorHandler(import.meta.hot);
819
+ reportInitialDevServerErrors();
820
+ }
761
821
  const rscStream = await readInitialRscStream();
762
822
  if (rscStream === null) return;
763
823
  bootstrapHydration(rscStream);
764
824
  }
765
825
  function bootstrapHydration(rscStream) {
766
- if (import.meta.env.DEV) installDevErrorOverlay();
767
826
  const root = decodeAppElementsPromise(createFromReadableStream(rscStream));
768
827
  const initialNavigationSnapshot = createClientNavigationRenderSnapshot(window.location.href, latestClientParams);
769
828
  replaceHistoryStateWithoutNotify(createHistoryStateWithNavigationMetadata(window.history.state, {
@@ -810,6 +869,7 @@ function bootstrapHydration(rscStream) {
810
869
  consumeAppRouterScrollIntent(scrollIntent ?? null);
811
870
  return browserNavigationController.performHardNavigation(targetHref);
812
871
  };
872
+ let restoredBfcacheIds = navigationKind === "traverse" ? readCurrentBfcacheVersionHistoryIds(activeTraversalIntent?.historyState ?? window.history.state) : null;
813
873
  try {
814
874
  const shouldUsePendingRouterState = programmaticTransition;
815
875
  if (shouldUsePendingRouterState && hasBrowserRouterState()) pendingRouterState = beginPendingBrowserRouterState();
@@ -823,17 +883,19 @@ function bootstrapHydration(rscStream) {
823
883
  const requestState = getRequestState(navigationKind, url.pathname, currentPrevNextUrl, activeTraversalIntent?.historyState);
824
884
  const requestInterceptionContext = requestState.interceptionContext;
825
885
  const requestPreviousNextUrl = requestState.previousNextUrl;
826
- if (navigationKind === "refresh") syncCurrentHistoryStatePreviousNextUrl(requestPreviousNextUrl);
886
+ if (navigationKind === "refresh") syncCurrentHistoryStatePreviousNextUrl(requestPreviousNextUrl, getBrowserRouterState().bfcacheIds);
827
887
  setPendingPathname(url.pathname, navId);
828
- const elementsAtNavStart = getBrowserRouterState().elements;
888
+ const routerStateAtNavStart = getBrowserRouterState();
889
+ const elementsAtNavStart = routerStateAtNavStart.elements;
829
890
  const mountedSlotsHeader = getMountedSlotIdsHeader(elementsAtNavStart);
891
+ const shouldBypassNavigationCache = navigationKind === "navigate" && isSamePageSearchNavigation(routerStateAtNavStart.navigationSnapshot, url);
830
892
  const requestHeaders = createRscRequestHeaders({
831
893
  interceptionContext: requestInterceptionContext,
894
+ mountedSlotsHeader,
832
895
  renderMode: navigationKind === "refresh" ? APP_RSC_RENDER_MODE_REFRESH_PRESERVE_UI : void 0
833
896
  });
834
- if (mountedSlotsHeader) requestHeaders.set(VINEXT_MOUNTED_SLOTS_HEADER, mountedSlotsHeader);
835
897
  const rscUrl = await createRscRequestUrl(url.pathname + url.search, requestHeaders);
836
- const cachedRoute = getVisitedResponse(rscUrl, requestInterceptionContext, mountedSlotsHeader, navigationKind);
898
+ const cachedRoute = shouldBypassNavigationCache ? null : getVisitedResponse(rscUrl, requestInterceptionContext, mountedSlotsHeader, navigationKind);
837
899
  if (cachedRoute) {
838
900
  const compatibilityDecision = resolveRscCompatibilityNavigationDecision({
839
901
  clientCompatibilityId: CLIENT_RSC_COMPATIBILITY_ID,
@@ -846,21 +908,47 @@ function bootstrapHydration(rscStream) {
846
908
  performHardNavigationForScrollIntent(compatibilityDecision.hardNavigationTarget);
847
909
  return;
848
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
+ }
849
932
  if (!browserNavigationController.isCurrentNavigation(navId)) return;
850
933
  const cachedParams = cachedRoute.params;
851
934
  const cachedNavigationSnapshot = createClientNavigationRenderSnapshot(currentHref, cachedParams);
852
935
  const cachedPayload = decodeAppElementsPromise(createFromFetch(Promise.resolve(restoreRscResponse(cachedRoute.response))));
853
936
  if (!browserNavigationController.isCurrentNavigation(navId)) return;
854
- 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
+ }
855
941
  return;
856
942
  }
857
943
  let navResponse;
944
+ let navResponseExpiresAt;
858
945
  let navResponseUrl = null;
859
- if (navigationKind !== "refresh") {
946
+ if (navigationKind !== "refresh" && !shouldBypassNavigationCache) {
860
947
  const prefetchedResponse = await consumePrefetchResponseForNavigation(rscUrl, requestInterceptionContext, mountedSlotsHeader, { shouldConsume: () => browserNavigationController.isCurrentNavigation(navId) });
861
948
  if (!browserNavigationController.isCurrentNavigation(navId)) return;
862
949
  if (prefetchedResponse) {
863
950
  navResponse = restoreRscResponse(prefetchedResponse, false);
951
+ navResponseExpiresAt = prefetchedResponse.expiresAt;
864
952
  navResponseUrl = prefetchedResponse.url;
865
953
  }
866
954
  }
@@ -884,16 +972,22 @@ function bootstrapHydration(rscStream) {
884
972
  if (optimisticPayload !== null) {
885
973
  detachedNavigationCommits = true;
886
974
  const optimisticNavigationSnapshot = createClientNavigationRenderSnapshot(currentHref, optimisticPayload.params);
887
- 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) => {
888
976
  if (browserNavigationController.isCurrentNavigation(navId)) console.error("[vinext] Optimistic RSC navigation error:", error);
889
977
  });
890
978
  }
891
979
  }
892
980
  }
893
- if (!navResponse) navResponse = await fetch(rscUrl, {
894
- headers: requestHeaders,
895
- credentials: "include"
896
- });
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
+ }
897
991
  if (!browserNavigationController.isCurrentNavigation(navId)) return;
898
992
  const isRscResponse = (navResponse.headers.get("content-type") ?? "").startsWith("text/x-component");
899
993
  if (!navResponse.ok || !isRscResponse || !navResponse.body) {
@@ -925,6 +1019,7 @@ function bootstrapHydration(rscStream) {
925
1019
  return;
926
1020
  }
927
1021
  if (redirectDecision.kind === "follow") {
1022
+ if (navigationKind === "traverse") restoredBfcacheIds = null;
928
1023
  currentHref = redirectDecision.href;
929
1024
  currentHistoryMode = redirectDecision.historyUpdateMode;
930
1025
  currentPrevNextUrl = redirectDecision.previousNextUrl;
@@ -944,7 +1039,10 @@ function bootstrapHydration(rscStream) {
944
1039
  performHardNavigationForScrollIntent(resolvedTarget.href);
945
1040
  return;
946
1041
  }
1042
+ if (navigationKind === "traverse") restoredBfcacheIds = null;
947
1043
  currentHref = `${resolvedTarget.pathname}${resolvedTarget.search}${resolvedTarget.hash}`;
1044
+ currentHistoryMode = currentHistoryMode ?? "replace";
1045
+ currentPrevNextUrl = requestPreviousNextUrl;
948
1046
  redirectCount += 1;
949
1047
  continue;
950
1048
  }
@@ -961,17 +1059,22 @@ function bootstrapHydration(rscStream) {
961
1059
  if (!browserNavigationController.isCurrentNavigation(navId)) return;
962
1060
  const rscPayload = decodeAppElementsPromise(createFromFetch(Promise.resolve(reactResponse)));
963
1061
  if (!browserNavigationController.isCurrentNavigation(navId)) return;
964
- 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;
965
1063
  if (!browserNavigationController.isCurrentNavigation(navId)) return;
966
- const resolvedElements = await rscPayload;
967
- const metadata = AppElementsWire.readMetadata(resolvedElements);
968
- if (!isCacheRestorableAppPayloadMetadata(metadata)) {
969
- cacheBufferPromise.catch(() => {});
970
- return;
971
- }
972
- cacheBufferPromise.then((cacheBuffer) => {
973
- storeVisitedResponseSnapshot(rscUrl, resolveVisitedResponseInterceptionContext(requestInterceptionContext, metadata.interceptionContext), createCachedRscResponseSnapshot(navResponse, cacheBuffer, navResponseUrl), navParams);
974
- }).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 {}
975
1078
  return;
976
1079
  }
977
1080
  } catch (error) {
@@ -1009,25 +1112,35 @@ function bootstrapHydration(rscStream) {
1009
1112
  handlePopstate(event);
1010
1113
  });
1011
1114
  if (import.meta.hot) {
1012
- 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) => {
1013
1135
  try {
1014
- if (browserRouterStateHasEverCommitted && !browserNavigationController.hasBrowserRouterState()) {
1015
- window.location.reload();
1016
- return;
1017
- }
1018
- await waitForBrowserRouterStateReady();
1019
- if (!browserNavigationController.hasBrowserRouterState()) return;
1020
- clearClientNavigationCaches();
1021
- const navigationSnapshot = createClientNavigationRenderSnapshot(window.location.href, latestClientParams);
1022
- dismissOverlay();
1023
- const hmrHeaders = createRscRequestHeaders();
1024
- 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);
1025
1138
  } catch (error) {
1026
1139
  console.error("[vinext] RSC HMR error:", error);
1027
1140
  }
1028
1141
  };
1029
1142
  import.meta.hot.on("rsc:update", () => {
1030
- handleRscUpdate();
1143
+ handleRscUpdate(++latestRscHmrUpdateId);
1031
1144
  });
1032
1145
  }
1033
1146
  }
@@ -1047,5 +1160,3 @@ if (typeof document !== "undefined") {
1047
1160
  }
1048
1161
  //#endregion
1049
1162
  export {};
1050
-
1051
- //# sourceMappingURL=app-browser-entry.js.map
@@ -3,5 +3,4 @@ declare function createOnUncaughtError(getRecoveryHref: () => string | null): (e
3
3
  componentStack?: string;
4
4
  }) => void;
5
5
  //#endregion
6
- export { createOnUncaughtError };
7
- //# sourceMappingURL=app-browser-error.d.ts.map
6
+ export { createOnUncaughtError };
@@ -9,5 +9,3 @@ function createOnUncaughtError(getRecoveryHref) {
9
9
  }
10
10
  //#endregion
11
11
  export { createOnUncaughtError };
12
-
13
- //# sourceMappingURL=app-browser-error.js.map
@@ -27,5 +27,4 @@ declare function hydrateRootInTransition(options: {
27
27
  startTransition: StartTransition;
28
28
  }): HydrateRootReturn;
29
29
  //#endregion
30
- export { RSC_FORM_STATE_GLOBAL, consumeInitialFormState, createVinextHydrateRootOptions, hydrateRootInTransition };
31
- //# sourceMappingURL=app-browser-hydration.d.ts.map
30
+ export { RSC_FORM_STATE_GLOBAL, consumeInitialFormState, createVinextHydrateRootOptions, hydrateRootInTransition };
@@ -26,5 +26,3 @@ function hydrateRootInTransition(options) {
26
26
  }
27
27
  //#endregion
28
28
  export { RSC_FORM_STATE_GLOBAL, consumeInitialFormState, createVinextHydrateRootOptions, hydrateRootInTransition };
29
-
30
- //# sourceMappingURL=app-browser-hydration.js.map
@@ -20,5 +20,4 @@ type ResolveManifestNavigationInterceptionContextOptions = {
20
20
  */
21
21
  declare function resolveManifestNavigationInterceptionContext(options: ResolveManifestNavigationInterceptionContextOptions): string | null;
22
22
  //#endregion
23
- export { resolveManifestNavigationInterceptionContext };
24
- //# sourceMappingURL=app-browser-interception-context.d.ts.map
23
+ export { resolveManifestNavigationInterceptionContext };
@@ -28,5 +28,3 @@ function resolveManifestNavigationInterceptionContext(options) {
28
28
  }
29
29
  //#endregion
30
30
  export { resolveManifestNavigationInterceptionContext };
31
-
32
- //# sourceMappingURL=app-browser-interception-context.js.map
@@ -6,11 +6,11 @@ type AppBrowserMpaNavigationWindow = {
6
6
  requestAnimationFrame?: (callback: FrameRequestCallback) => unknown;
7
7
  setTimeout(callback: () => void, timeout: number): unknown;
8
8
  };
9
+ declare function hasPendingAppRouterPageRedirect(targetDocument: unknown): boolean;
9
10
  declare class AppBrowserMpaNavigationScheduler {
10
11
  #private;
11
12
  reset(): void;
12
13
  navigate(targetWindow: AppBrowserMpaNavigationWindow, href: string, historyUpdateMode: HistoryUpdateMode): void;
13
14
  }
14
15
  //#endregion
15
- export { AppBrowserMpaNavigationScheduler, AppBrowserMpaNavigationWindow };
16
- //# sourceMappingURL=app-browser-mpa-navigation.d.ts.map
16
+ export { AppBrowserMpaNavigationScheduler, AppBrowserMpaNavigationWindow, hasPendingAppRouterPageRedirect };
@@ -1,4 +1,12 @@
1
1
  //#region src/server/app-browser-mpa-navigation.ts
2
+ const NEXT_APP_ROUTER_PAGE_REDIRECT_MARKER_ID = "__next-page-redirect";
3
+ function hasPendingAppRouterPageRedirect(targetDocument) {
4
+ if (typeof targetDocument !== "object" || targetDocument === null) return false;
5
+ if (!("getElementById" in targetDocument)) return false;
6
+ const { getElementById } = targetDocument;
7
+ if (typeof getElementById !== "function") return false;
8
+ return getElementById.call(targetDocument, NEXT_APP_ROUTER_PAGE_REDIRECT_MARKER_ID) !== null;
9
+ }
2
10
  var AppBrowserMpaNavigationScheduler = class {
3
11
  #pendingNavigation = null;
4
12
  #nextToken = 0;
@@ -31,6 +39,4 @@ var AppBrowserMpaNavigationScheduler = class {
31
39
  }
32
40
  };
33
41
  //#endregion
34
- export { AppBrowserMpaNavigationScheduler };
35
-
36
- //# sourceMappingURL=app-browser-mpa-navigation.js.map
42
+ export { AppBrowserMpaNavigationScheduler, hasPendingAppRouterPageRedirect };