@qzsy/vinext 0.1.7

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 (803) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +773 -0
  3. package/dist/build/assets-ignore.d.ts +32 -0
  4. package/dist/build/assets-ignore.js +48 -0
  5. package/dist/build/clean-output.d.ts +13 -0
  6. package/dist/build/clean-output.js +34 -0
  7. package/dist/build/client-build-config.d.ts +171 -0
  8. package/dist/build/client-build-config.js +270 -0
  9. package/dist/build/css-url-assets.d.ts +29 -0
  10. package/dist/build/css-url-assets.js +213 -0
  11. package/dist/build/google-fonts/build-url.d.ts +9 -0
  12. package/dist/build/google-fonts/build-url.js +28 -0
  13. package/dist/build/google-fonts/fallback-metrics-data.js +14029 -0
  14. package/dist/build/google-fonts/fallback-metrics.d.ts +12 -0
  15. package/dist/build/google-fonts/fallback-metrics.js +44 -0
  16. package/dist/build/google-fonts/find-font-files-in-css.d.ts +16 -0
  17. package/dist/build/google-fonts/find-font-files-in-css.js +28 -0
  18. package/dist/build/google-fonts/font-data.js +24983 -0
  19. package/dist/build/google-fonts/font-metadata.d.ts +16 -0
  20. package/dist/build/google-fonts/font-metadata.js +5 -0
  21. package/dist/build/google-fonts/get-axes.d.ts +6 -0
  22. package/dist/build/google-fonts/get-axes.js +37 -0
  23. package/dist/build/google-fonts/sort-variants.d.ts +4 -0
  24. package/dist/build/google-fonts/sort-variants.js +12 -0
  25. package/dist/build/google-fonts/validate.d.ts +27 -0
  26. package/dist/build/google-fonts/validate.js +54 -0
  27. package/dist/build/inline-css.d.ts +6 -0
  28. package/dist/build/inline-css.js +48 -0
  29. package/dist/build/layout-classification-types.d.ts +61 -0
  30. package/dist/build/layout-classification-types.js +1 -0
  31. package/dist/build/layout-classification.d.ts +59 -0
  32. package/dist/build/layout-classification.js +98 -0
  33. package/dist/build/next-client-runtime-manifests.d.ts +14 -0
  34. package/dist/build/next-client-runtime-manifests.js +39 -0
  35. package/dist/build/nitro-route-rules.d.ts +49 -0
  36. package/dist/build/nitro-route-rules.js +79 -0
  37. package/dist/build/precompress.d.ts +27 -0
  38. package/dist/build/precompress.js +110 -0
  39. package/dist/build/prerender.d.ts +209 -0
  40. package/dist/build/prerender.js +932 -0
  41. package/dist/build/report.d.ts +132 -0
  42. package/dist/build/report.js +504 -0
  43. package/dist/build/route-classification-injector.d.ts +34 -0
  44. package/dist/build/route-classification-injector.js +59 -0
  45. package/dist/build/route-classification-manifest.d.ts +52 -0
  46. package/dist/build/route-classification-manifest.js +143 -0
  47. package/dist/build/run-prerender.d.ts +61 -0
  48. package/dist/build/run-prerender.js +224 -0
  49. package/dist/build/server-manifest.d.ts +18 -0
  50. package/dist/build/server-manifest.js +22 -0
  51. package/dist/build/ssr-manifest.d.ts +18 -0
  52. package/dist/build/ssr-manifest.js +69 -0
  53. package/dist/build/standalone.d.ts +31 -0
  54. package/dist/build/standalone.js +203 -0
  55. package/dist/build/static-export.d.ts +55 -0
  56. package/dist/build/static-export.js +60 -0
  57. package/dist/cache/cache-adapters-virtual.d.ts +50 -0
  58. package/dist/cache/cache-adapters-virtual.js +45 -0
  59. package/dist/cache.d.ts +2 -0
  60. package/dist/cache.js +2 -0
  61. package/dist/check.d.ts +87 -0
  62. package/dist/check.js +1037 -0
  63. package/dist/cli-args.d.ts +33 -0
  64. package/dist/cli-args.js +124 -0
  65. package/dist/cli.d.ts +1 -0
  66. package/dist/cli.js +744 -0
  67. package/dist/client/app-nav-failure-handler.d.ts +8 -0
  68. package/dist/client/app-nav-failure-handler.js +44 -0
  69. package/dist/client/empty-module.d.ts +1 -0
  70. package/dist/client/empty-module.js +1 -0
  71. package/dist/client/instrumentation-client-inject.d.ts +33 -0
  72. package/dist/client/instrumentation-client-inject.js +55 -0
  73. package/dist/client/instrumentation-client-state.d.ts +9 -0
  74. package/dist/client/instrumentation-client-state.js +17 -0
  75. package/dist/client/instrumentation-client.d.ts +7 -0
  76. package/dist/client/instrumentation-client.js +6 -0
  77. package/dist/client/navigation-runtime.d.ts +70 -0
  78. package/dist/client/navigation-runtime.js +169 -0
  79. package/dist/client/pages-router-link-navigation.d.ts +61 -0
  80. package/dist/client/pages-router-link-navigation.js +42 -0
  81. package/dist/client/validate-module-path.d.ts +17 -0
  82. package/dist/client/validate-module-path.js +24 -0
  83. package/dist/client/vinext-next-data.d.ts +44 -0
  84. package/dist/client/vinext-next-data.js +50 -0
  85. package/dist/client/window-next.d.ts +168 -0
  86. package/dist/client/window-next.js +57 -0
  87. package/dist/cloudflare/index.d.ts +3 -0
  88. package/dist/cloudflare/index.js +3 -0
  89. package/dist/cloudflare/src/cache/cdn-adapter.runtime.js +102 -0
  90. package/dist/cloudflare/src/cache/kv-data-adapter.runtime.d.ts +126 -0
  91. package/dist/cloudflare/src/cache/kv-data-adapter.runtime.js +435 -0
  92. package/dist/cloudflare/src/utils/cache-control-metadata.js +20 -0
  93. package/dist/cloudflare/tpr.d.ts +82 -0
  94. package/dist/cloudflare/tpr.js +558 -0
  95. package/dist/config/config-matchers.d.ts +257 -0
  96. package/dist/config/config-matchers.js +1046 -0
  97. package/dist/config/dotenv.d.ts +56 -0
  98. package/dist/config/dotenv.js +88 -0
  99. package/dist/config/next-config.d.ts +540 -0
  100. package/dist/config/next-config.js +1050 -0
  101. package/dist/config/tsconfig-paths.d.ts +21 -0
  102. package/dist/config/tsconfig-paths.js +157 -0
  103. package/dist/deploy.d.ts +190 -0
  104. package/dist/deploy.js +1033 -0
  105. package/dist/entries/app-browser-entry.d.ts +29 -0
  106. package/dist/entries/app-browser-entry.js +83 -0
  107. package/dist/entries/app-rsc-entry.d.ts +81 -0
  108. package/dist/entries/app-rsc-entry.js +943 -0
  109. package/dist/entries/app-rsc-manifest.d.ts +53 -0
  110. package/dist/entries/app-rsc-manifest.js +294 -0
  111. package/dist/entries/app-ssr-entry.d.ts +15 -0
  112. package/dist/entries/app-ssr-entry.js +24 -0
  113. package/dist/entries/pages-client-entry.d.ts +11 -0
  114. package/dist/entries/pages-client-entry.js +204 -0
  115. package/dist/entries/pages-entry-helpers.d.ts +2 -0
  116. package/dist/entries/pages-entry-helpers.js +2 -0
  117. package/dist/entries/pages-server-entry.d.ts +11 -0
  118. package/dist/entries/pages-server-entry.js +398 -0
  119. package/dist/entries/runtime-entry-module.d.ts +25 -0
  120. package/dist/entries/runtime-entry-module.js +46 -0
  121. package/dist/index.d.ts +115 -0
  122. package/dist/index.js +2661 -0
  123. package/dist/init.d.ts +69 -0
  124. package/dist/init.js +253 -0
  125. package/dist/plugins/ast-utils.d.ts +20 -0
  126. package/dist/plugins/ast-utils.js +78 -0
  127. package/dist/plugins/async-hooks-stub.d.ts +18 -0
  128. package/dist/plugins/async-hooks-stub.js +40 -0
  129. package/dist/plugins/client-reference-dedup.d.ts +35 -0
  130. package/dist/plugins/client-reference-dedup.js +189 -0
  131. package/dist/plugins/css-data-url.d.ts +6 -0
  132. package/dist/plugins/css-data-url.js +83 -0
  133. package/dist/plugins/dynamic-preload-metadata.d.ts +13 -0
  134. package/dist/plugins/dynamic-preload-metadata.js +413 -0
  135. package/dist/plugins/extensionless-dynamic-import.d.ts +6 -0
  136. package/dist/plugins/extensionless-dynamic-import.js +155 -0
  137. package/dist/plugins/fonts.d.ts +95 -0
  138. package/dist/plugins/fonts.js +711 -0
  139. package/dist/plugins/import-meta-url.d.ts +16 -0
  140. package/dist/plugins/import-meta-url.js +353 -0
  141. package/dist/plugins/instrumentation-client.d.ts +6 -0
  142. package/dist/plugins/instrumentation-client.js +27 -0
  143. package/dist/plugins/middleware-export-validation.d.ts +5 -0
  144. package/dist/plugins/middleware-export-validation.js +36 -0
  145. package/dist/plugins/middleware-server-only.d.ts +53 -0
  146. package/dist/plugins/middleware-server-only.js +90 -0
  147. package/dist/plugins/og-asset-ownership.d.ts +27 -0
  148. package/dist/plugins/og-asset-ownership.js +285 -0
  149. package/dist/plugins/og-assets.d.ts +50 -0
  150. package/dist/plugins/og-assets.js +229 -0
  151. package/dist/plugins/optimize-imports.d.ts +42 -0
  152. package/dist/plugins/optimize-imports.js +587 -0
  153. package/dist/plugins/postcss.d.ts +26 -0
  154. package/dist/plugins/postcss.js +96 -0
  155. package/dist/plugins/remove-console.d.ts +21 -0
  156. package/dist/plugins/remove-console.js +177 -0
  157. package/dist/plugins/require-context.d.ts +6 -0
  158. package/dist/plugins/require-context.js +185 -0
  159. package/dist/plugins/rsc-client-reference-loaders.d.ts +6 -0
  160. package/dist/plugins/rsc-client-reference-loaders.js +46 -0
  161. package/dist/plugins/rsc-client-shim-excludes.d.ts +6 -0
  162. package/dist/plugins/rsc-client-shim-excludes.js +35 -0
  163. package/dist/plugins/sass.d.ts +62 -0
  164. package/dist/plugins/sass.js +268 -0
  165. package/dist/plugins/server-externals-manifest.d.ts +26 -0
  166. package/dist/plugins/server-externals-manifest.js +81 -0
  167. package/dist/plugins/strip-server-exports.d.ts +21 -0
  168. package/dist/plugins/strip-server-exports.js +519 -0
  169. package/dist/plugins/typeof-window.d.ts +14 -0
  170. package/dist/plugins/typeof-window.js +150 -0
  171. package/dist/plugins/wasm-module-import.d.ts +15 -0
  172. package/dist/plugins/wasm-module-import.js +50 -0
  173. package/dist/routing/app-route-graph.d.ts +336 -0
  174. package/dist/routing/app-route-graph.js +1518 -0
  175. package/dist/routing/app-router.d.ts +30 -0
  176. package/dist/routing/app-router.js +59 -0
  177. package/dist/routing/file-matcher.d.ts +60 -0
  178. package/dist/routing/file-matcher.js +147 -0
  179. package/dist/routing/pages-router.d.ts +48 -0
  180. package/dist/routing/pages-router.js +163 -0
  181. package/dist/routing/route-matching.d.ts +27 -0
  182. package/dist/routing/route-matching.js +42 -0
  183. package/dist/routing/route-pattern.d.ts +64 -0
  184. package/dist/routing/route-pattern.js +165 -0
  185. package/dist/routing/route-trie.d.ts +67 -0
  186. package/dist/routing/route-trie.js +143 -0
  187. package/dist/routing/route-validation.d.ts +10 -0
  188. package/dist/routing/route-validation.js +101 -0
  189. package/dist/routing/utils.d.ts +117 -0
  190. package/dist/routing/utils.js +242 -0
  191. package/dist/server/accept-encoding.d.ts +29 -0
  192. package/dist/server/accept-encoding.js +95 -0
  193. package/dist/server/api-handler.d.ts +17 -0
  194. package/dist/server/api-handler.js +276 -0
  195. package/dist/server/app-action-request.d.ts +4 -0
  196. package/dist/server/app-action-request.js +9 -0
  197. package/dist/server/app-bfcache-id.d.ts +5 -0
  198. package/dist/server/app-bfcache-id.js +5 -0
  199. package/dist/server/app-bfcache-identity.d.ts +36 -0
  200. package/dist/server/app-bfcache-identity.js +156 -0
  201. package/dist/server/app-browser-action-result.d.ts +64 -0
  202. package/dist/server/app-browser-action-result.js +111 -0
  203. package/dist/server/app-browser-client-reuse-manifest.d.ts +12 -0
  204. package/dist/server/app-browser-client-reuse-manifest.js +101 -0
  205. package/dist/server/app-browser-entry.d.ts +1 -0
  206. package/dist/server/app-browser-entry.js +1087 -0
  207. package/dist/server/app-browser-error.d.ts +13 -0
  208. package/dist/server/app-browser-error.js +52 -0
  209. package/dist/server/app-browser-history-controller.d.ts +104 -0
  210. package/dist/server/app-browser-history-controller.js +210 -0
  211. package/dist/server/app-browser-hydration.d.ts +32 -0
  212. package/dist/server/app-browser-hydration.js +29 -0
  213. package/dist/server/app-browser-interception-context.d.ts +24 -0
  214. package/dist/server/app-browser-interception-context.js +43 -0
  215. package/dist/server/app-browser-mpa-navigation.d.ts +16 -0
  216. package/dist/server/app-browser-mpa-navigation.js +42 -0
  217. package/dist/server/app-browser-navigation-controller.d.ts +109 -0
  218. package/dist/server/app-browser-navigation-controller.js +465 -0
  219. package/dist/server/app-browser-popstate.d.ts +26 -0
  220. package/dist/server/app-browser-popstate.js +44 -0
  221. package/dist/server/app-browser-rsc-redirect.d.ts +38 -0
  222. package/dist/server/app-browser-rsc-redirect.js +64 -0
  223. package/dist/server/app-browser-server-action-client.d.ts +32 -0
  224. package/dist/server/app-browser-server-action-client.js +128 -0
  225. package/dist/server/app-browser-server-action-navigation.d.ts +6 -0
  226. package/dist/server/app-browser-server-action-navigation.js +9 -0
  227. package/dist/server/app-browser-state.d.ts +140 -0
  228. package/dist/server/app-browser-state.js +315 -0
  229. package/dist/server/app-browser-stream.d.ts +28 -0
  230. package/dist/server/app-browser-stream.js +122 -0
  231. package/dist/server/app-browser-visible-commit.d.ts +78 -0
  232. package/dist/server/app-browser-visible-commit.js +241 -0
  233. package/dist/server/app-client-reference-preloader.d.ts +14 -0
  234. package/dist/server/app-client-reference-preloader.js +44 -0
  235. package/dist/server/app-elements-wire.d.ts +192 -0
  236. package/dist/server/app-elements-wire.js +443 -0
  237. package/dist/server/app-elements.d.ts +9 -0
  238. package/dist/server/app-elements.js +18 -0
  239. package/dist/server/app-fallback-renderer.d.ts +89 -0
  240. package/dist/server/app-fallback-renderer.js +136 -0
  241. package/dist/server/app-history-state.d.ts +85 -0
  242. package/dist/server/app-history-state.js +223 -0
  243. package/dist/server/app-hook-warning-suppression.d.ts +6 -0
  244. package/dist/server/app-hook-warning-suppression.js +10 -0
  245. package/dist/server/app-inline-css-client.d.ts +6 -0
  246. package/dist/server/app-inline-css-client.js +35 -0
  247. package/dist/server/app-interception-context-header.d.ts +32 -0
  248. package/dist/server/app-interception-context-header.js +42 -0
  249. package/dist/server/app-layout-param-observation.d.ts +43 -0
  250. package/dist/server/app-layout-param-observation.js +168 -0
  251. package/dist/server/app-middleware.d.ts +46 -0
  252. package/dist/server/app-middleware.js +168 -0
  253. package/dist/server/app-mounted-slots-header.d.ts +35 -0
  254. package/dist/server/app-mounted-slots-header.js +58 -0
  255. package/dist/server/app-optimistic-routing.d.ts +53 -0
  256. package/dist/server/app-optimistic-routing.js +227 -0
  257. package/dist/server/app-page-boundary-render.d.ts +85 -0
  258. package/dist/server/app-page-boundary-render.js +305 -0
  259. package/dist/server/app-page-boundary.d.ts +102 -0
  260. package/dist/server/app-page-boundary.js +120 -0
  261. package/dist/server/app-page-cache-finalizer.d.ts +62 -0
  262. package/dist/server/app-page-cache-finalizer.js +122 -0
  263. package/dist/server/app-page-cache-render.d.ts +53 -0
  264. package/dist/server/app-page-cache-render.js +91 -0
  265. package/dist/server/app-page-cache.d.ts +83 -0
  266. package/dist/server/app-page-cache.js +272 -0
  267. package/dist/server/app-page-dispatch.d.ts +223 -0
  268. package/dist/server/app-page-dispatch.js +610 -0
  269. package/dist/server/app-page-element-builder.d.ts +96 -0
  270. package/dist/server/app-page-element-builder.js +205 -0
  271. package/dist/server/app-page-execution.d.ts +138 -0
  272. package/dist/server/app-page-execution.js +328 -0
  273. package/dist/server/app-page-head.d.ts +65 -0
  274. package/dist/server/app-page-head.js +228 -0
  275. package/dist/server/app-page-method.d.ts +15 -0
  276. package/dist/server/app-page-method.js +25 -0
  277. package/dist/server/app-page-params.d.ts +8 -0
  278. package/dist/server/app-page-params.js +39 -0
  279. package/dist/server/app-page-ppr-runtime.d.ts +7 -0
  280. package/dist/server/app-page-ppr-runtime.js +70 -0
  281. package/dist/server/app-page-probe.d.ts +134 -0
  282. package/dist/server/app-page-probe.js +276 -0
  283. package/dist/server/app-page-render-identity.d.ts +21 -0
  284. package/dist/server/app-page-render-identity.js +40 -0
  285. package/dist/server/app-page-render-observation.d.ts +36 -0
  286. package/dist/server/app-page-render-observation.js +82 -0
  287. package/dist/server/app-page-render.d.ts +111 -0
  288. package/dist/server/app-page-render.js +602 -0
  289. package/dist/server/app-page-request.d.ts +137 -0
  290. package/dist/server/app-page-request.js +216 -0
  291. package/dist/server/app-page-response.d.ts +68 -0
  292. package/dist/server/app-page-response.js +120 -0
  293. package/dist/server/app-page-route-wiring.d.ts +151 -0
  294. package/dist/server/app-page-route-wiring.js +452 -0
  295. package/dist/server/app-page-search-params-observation.d.ts +10 -0
  296. package/dist/server/app-page-search-params-observation.js +20 -0
  297. package/dist/server/app-page-segment-state.d.ts +9 -0
  298. package/dist/server/app-page-segment-state.js +80 -0
  299. package/dist/server/app-page-stream.d.ts +151 -0
  300. package/dist/server/app-page-stream.js +143 -0
  301. package/dist/server/app-pages-bridge.d.ts +63 -0
  302. package/dist/server/app-pages-bridge.js +63 -0
  303. package/dist/server/app-post-middleware-context.d.ts +15 -0
  304. package/dist/server/app-post-middleware-context.js +26 -0
  305. package/dist/server/app-ppr-fallback-shell-render.d.ts +18 -0
  306. package/dist/server/app-ppr-fallback-shell-render.js +26 -0
  307. package/dist/server/app-ppr-fallback-shell.d.ts +33 -0
  308. package/dist/server/app-ppr-fallback-shell.js +89 -0
  309. package/dist/server/app-prerender-endpoints.d.ts +18 -0
  310. package/dist/server/app-prerender-endpoints.js +94 -0
  311. package/dist/server/app-prerender-static-params.d.ts +30 -0
  312. package/dist/server/app-prerender-static-params.js +81 -0
  313. package/dist/server/app-render-dependency.d.ts +14 -0
  314. package/dist/server/app-render-dependency.js +41 -0
  315. package/dist/server/app-request-context.d.ts +20 -0
  316. package/dist/server/app-request-context.js +29 -0
  317. package/dist/server/app-route-handler-cache.d.ts +46 -0
  318. package/dist/server/app-route-handler-cache.js +78 -0
  319. package/dist/server/app-route-handler-dispatch.d.ts +49 -0
  320. package/dist/server/app-route-handler-dispatch.js +163 -0
  321. package/dist/server/app-route-handler-execution.d.ts +86 -0
  322. package/dist/server/app-route-handler-execution.js +128 -0
  323. package/dist/server/app-route-handler-policy.d.ts +55 -0
  324. package/dist/server/app-route-handler-policy.js +58 -0
  325. package/dist/server/app-route-handler-response.d.ts +28 -0
  326. package/dist/server/app-route-handler-response.js +145 -0
  327. package/dist/server/app-route-handler-runtime.d.ts +39 -0
  328. package/dist/server/app-route-handler-runtime.js +250 -0
  329. package/dist/server/app-route-module-loader.d.ts +91 -0
  330. package/dist/server/app-route-module-loader.js +83 -0
  331. package/dist/server/app-router-entry.d.ts +13 -0
  332. package/dist/server/app-router-entry.js +49 -0
  333. package/dist/server/app-rsc-cache-busting.d.ts +64 -0
  334. package/dist/server/app-rsc-cache-busting.js +206 -0
  335. package/dist/server/app-rsc-embedded-chunks.d.ts +8 -0
  336. package/dist/server/app-rsc-embedded-chunks.js +32 -0
  337. package/dist/server/app-rsc-error-handler.d.ts +20 -0
  338. package/dist/server/app-rsc-error-handler.js +28 -0
  339. package/dist/server/app-rsc-errors.d.ts +40 -0
  340. package/dist/server/app-rsc-errors.js +60 -0
  341. package/dist/server/app-rsc-handler.d.ts +201 -0
  342. package/dist/server/app-rsc-handler.js +538 -0
  343. package/dist/server/app-rsc-render-mode.d.ts +11 -0
  344. package/dist/server/app-rsc-render-mode.js +25 -0
  345. package/dist/server/app-rsc-request-normalization.d.ts +48 -0
  346. package/dist/server/app-rsc-request-normalization.js +75 -0
  347. package/dist/server/app-rsc-response-finalizer.d.ts +37 -0
  348. package/dist/server/app-rsc-response-finalizer.js +54 -0
  349. package/dist/server/app-rsc-route-matching.d.ts +93 -0
  350. package/dist/server/app-rsc-route-matching.js +134 -0
  351. package/dist/server/app-segment-config.d.ts +46 -0
  352. package/dist/server/app-segment-config.js +113 -0
  353. package/dist/server/app-server-action-execution.d.ts +219 -0
  354. package/dist/server/app-server-action-execution.js +767 -0
  355. package/dist/server/app-ssr-entry.d.ts +52 -0
  356. package/dist/server/app-ssr-entry.js +295 -0
  357. package/dist/server/app-ssr-error-meta.d.ts +13 -0
  358. package/dist/server/app-ssr-error-meta.js +48 -0
  359. package/dist/server/app-ssr-router-instance.d.ts +6 -0
  360. package/dist/server/app-ssr-router-instance.js +24 -0
  361. package/dist/server/app-ssr-stream.d.ts +60 -0
  362. package/dist/server/app-ssr-stream.js +408 -0
  363. package/dist/server/app-static-generation.d.ts +15 -0
  364. package/dist/server/app-static-generation.js +19 -0
  365. package/dist/server/app-visited-response-cache.d.ts +23 -0
  366. package/dist/server/app-visited-response-cache.js +19 -0
  367. package/dist/server/artifact-compatibility.d.ts +54 -0
  368. package/dist/server/artifact-compatibility.js +91 -0
  369. package/dist/server/before-interactive-head.d.ts +17 -0
  370. package/dist/server/before-interactive-head.js +35 -0
  371. package/dist/server/cache-control.d.ts +37 -0
  372. package/dist/server/cache-control.js +56 -0
  373. package/dist/server/cache-headers.d.ts +6 -0
  374. package/dist/server/cache-headers.js +17 -0
  375. package/dist/server/cache-proof.d.ts +364 -0
  376. package/dist/server/cache-proof.js +794 -0
  377. package/dist/server/client-reuse-manifest.d.ts +104 -0
  378. package/dist/server/client-reuse-manifest.js +209 -0
  379. package/dist/server/client-trace-metadata.d.ts +30 -0
  380. package/dist/server/client-trace-metadata.js +81 -0
  381. package/dist/server/cookie-utils.d.ts +12 -0
  382. package/dist/server/cookie-utils.js +18 -0
  383. package/dist/server/csp.d.ts +10 -0
  384. package/dist/server/csp.js +41 -0
  385. package/dist/server/default-global-error-module.d.ts +19 -0
  386. package/dist/server/default-global-error-module.js +18 -0
  387. package/dist/server/default-not-found-module.d.ts +19 -0
  388. package/dist/server/default-not-found-module.js +18 -0
  389. package/dist/server/defer-until-stream-consumed.d.ts +7 -0
  390. package/dist/server/defer-until-stream-consumed.js +34 -0
  391. package/dist/server/dev-error-overlay-store.d.ts +39 -0
  392. package/dist/server/dev-error-overlay-store.js +86 -0
  393. package/dist/server/dev-error-overlay.d.ts +51 -0
  394. package/dist/server/dev-error-overlay.js +1341 -0
  395. package/dist/server/dev-initial-server-error.d.ts +9 -0
  396. package/dist/server/dev-initial-server-error.js +26 -0
  397. package/dist/server/dev-lockfile.d.ts +109 -0
  398. package/dist/server/dev-lockfile.js +179 -0
  399. package/dist/server/dev-module-runner.d.ts +30 -0
  400. package/dist/server/dev-module-runner.js +91 -0
  401. package/dist/server/dev-origin-check.d.ts +62 -0
  402. package/dist/server/dev-origin-check.js +156 -0
  403. package/dist/server/dev-route-files.d.ts +6 -0
  404. package/dist/server/dev-route-files.js +71 -0
  405. package/dist/server/dev-server.d.ts +58 -0
  406. package/dist/server/dev-server.js +1114 -0
  407. package/dist/server/dev-stack-sourcemap-endpoint.d.ts +4 -0
  408. package/dist/server/dev-stack-sourcemap-endpoint.js +4 -0
  409. package/dist/server/dev-stack-sourcemap.d.ts +43 -0
  410. package/dist/server/dev-stack-sourcemap.js +443 -0
  411. package/dist/server/document-initial-head.d.ts +6 -0
  412. package/dist/server/document-initial-head.js +33 -0
  413. package/dist/server/edge-api-runtime.d.ts +4 -0
  414. package/dist/server/edge-api-runtime.js +6 -0
  415. package/dist/server/file-based-metadata.d.ts +29 -0
  416. package/dist/server/file-based-metadata.js +401 -0
  417. package/dist/server/headers.d.ts +114 -0
  418. package/dist/server/headers.js +136 -0
  419. package/dist/server/html.d.ts +28 -0
  420. package/dist/server/html.js +41 -0
  421. package/dist/server/http-error-responses.d.ts +91 -0
  422. package/dist/server/http-error-responses.js +105 -0
  423. package/dist/server/hybrid-route-priority.d.ts +22 -0
  424. package/dist/server/hybrid-route-priority.js +33 -0
  425. package/dist/server/image-optimization.d.ts +130 -0
  426. package/dist/server/image-optimization.js +247 -0
  427. package/dist/server/implicit-tags.d.ts +6 -0
  428. package/dist/server/implicit-tags.js +44 -0
  429. package/dist/server/instrumentation-runtime.d.ts +49 -0
  430. package/dist/server/instrumentation-runtime.js +35 -0
  431. package/dist/server/instrumentation.d.ts +85 -0
  432. package/dist/server/instrumentation.js +130 -0
  433. package/dist/server/isr-cache.d.ts +127 -0
  434. package/dist/server/isr-cache.js +282 -0
  435. package/dist/server/isr-decision.d.ts +79 -0
  436. package/dist/server/isr-decision.js +70 -0
  437. package/dist/server/metadata-route-build-data.d.ts +24 -0
  438. package/dist/server/metadata-route-build-data.js +148 -0
  439. package/dist/server/metadata-route-response.d.ts +16 -0
  440. package/dist/server/metadata-route-response.js +205 -0
  441. package/dist/server/metadata-routes.d.ts +139 -0
  442. package/dist/server/metadata-routes.js +433 -0
  443. package/dist/server/middleware-matcher.d.ts +14 -0
  444. package/dist/server/middleware-matcher.js +111 -0
  445. package/dist/server/middleware-request-headers.d.ts +11 -0
  446. package/dist/server/middleware-request-headers.js +65 -0
  447. package/dist/server/middleware-response-headers.d.ts +12 -0
  448. package/dist/server/middleware-response-headers.js +42 -0
  449. package/dist/server/middleware-runtime.d.ts +67 -0
  450. package/dist/server/middleware-runtime.js +240 -0
  451. package/dist/server/middleware.d.ts +62 -0
  452. package/dist/server/middleware.js +114 -0
  453. package/dist/server/navigation-planner.d.ts +308 -0
  454. package/dist/server/navigation-planner.js +831 -0
  455. package/dist/server/navigation-trace.d.ts +68 -0
  456. package/dist/server/navigation-trace.js +71 -0
  457. package/dist/server/next-error-digest.d.ts +44 -0
  458. package/dist/server/next-error-digest.js +40 -0
  459. package/dist/server/normalize-path.d.ts +38 -0
  460. package/dist/server/normalize-path.js +70 -0
  461. package/dist/server/open-redirect.d.ts +12 -0
  462. package/dist/server/open-redirect.js +21 -0
  463. package/dist/server/operation-token.d.ts +40 -0
  464. package/dist/server/operation-token.js +85 -0
  465. package/dist/server/otel-tracer-extension.d.ts +45 -0
  466. package/dist/server/otel-tracer-extension.js +89 -0
  467. package/dist/server/pages-api-route.d.ts +83 -0
  468. package/dist/server/pages-api-route.js +75 -0
  469. package/dist/server/pages-asset-tags.d.ts +78 -0
  470. package/dist/server/pages-asset-tags.js +126 -0
  471. package/dist/server/pages-body-parser-config.d.ts +59 -0
  472. package/dist/server/pages-body-parser-config.js +77 -0
  473. package/dist/server/pages-data-route.d.ts +121 -0
  474. package/dist/server/pages-data-route.js +157 -0
  475. package/dist/server/pages-default-404.d.ts +30 -0
  476. package/dist/server/pages-default-404.js +38 -0
  477. package/dist/server/pages-dev-module-url.d.ts +4 -0
  478. package/dist/server/pages-dev-module-url.js +15 -0
  479. package/dist/server/pages-document-initial-props.d.ts +77 -0
  480. package/dist/server/pages-document-initial-props.js +109 -0
  481. package/dist/server/pages-get-initial-props.d.ts +67 -0
  482. package/dist/server/pages-get-initial-props.js +92 -0
  483. package/dist/server/pages-i18n.d.ts +106 -0
  484. package/dist/server/pages-i18n.js +183 -0
  485. package/dist/server/pages-media-type.d.ts +15 -0
  486. package/dist/server/pages-media-type.js +24 -0
  487. package/dist/server/pages-node-compat.d.ts +55 -0
  488. package/dist/server/pages-node-compat.js +235 -0
  489. package/dist/server/pages-page-data.d.ts +223 -0
  490. package/dist/server/pages-page-data.js +484 -0
  491. package/dist/server/pages-page-handler.d.ts +100 -0
  492. package/dist/server/pages-page-handler.js +403 -0
  493. package/dist/server/pages-page-method.d.ts +47 -0
  494. package/dist/server/pages-page-method.js +17 -0
  495. package/dist/server/pages-page-response.d.ts +138 -0
  496. package/dist/server/pages-page-response.js +285 -0
  497. package/dist/server/pages-readiness.d.ts +36 -0
  498. package/dist/server/pages-readiness.js +21 -0
  499. package/dist/server/pages-request-pipeline.d.ts +116 -0
  500. package/dist/server/pages-request-pipeline.js +311 -0
  501. package/dist/server/pages-revalidate.d.ts +15 -0
  502. package/dist/server/pages-revalidate.js +19 -0
  503. package/dist/server/pages-serializable-props.d.ts +24 -0
  504. package/dist/server/pages-serializable-props.js +67 -0
  505. package/dist/server/pregenerated-concrete-paths.d.ts +16 -0
  506. package/dist/server/pregenerated-concrete-paths.js +61 -0
  507. package/dist/server/prerender-manifest.d.ts +33 -0
  508. package/dist/server/prerender-manifest.js +54 -0
  509. package/dist/server/prerender-route-params.d.ts +23 -0
  510. package/dist/server/prerender-route-params.js +113 -0
  511. package/dist/server/prerender-work-unit-setup.d.ts +6 -0
  512. package/dist/server/prerender-work-unit-setup.js +28 -0
  513. package/dist/server/prod-server.d.ts +148 -0
  514. package/dist/server/prod-server.js +1136 -0
  515. package/dist/server/proxy-trust.d.ts +40 -0
  516. package/dist/server/proxy-trust.js +68 -0
  517. package/dist/server/request-log.d.ts +39 -0
  518. package/dist/server/request-log.js +56 -0
  519. package/dist/server/request-pipeline.d.ts +187 -0
  520. package/dist/server/request-pipeline.js +447 -0
  521. package/dist/server/rsc-stream-hints.d.ts +10 -0
  522. package/dist/server/rsc-stream-hints.js +41 -0
  523. package/dist/server/seed-cache.d.ts +29 -0
  524. package/dist/server/seed-cache.js +125 -0
  525. package/dist/server/server-action-not-found.d.ts +21 -0
  526. package/dist/server/server-action-not-found.js +62 -0
  527. package/dist/server/server-globals.d.ts +4 -0
  528. package/dist/server/server-globals.js +35 -0
  529. package/dist/server/skip-cache-proof.d.ts +61 -0
  530. package/dist/server/skip-cache-proof.js +168 -0
  531. package/dist/server/socket-error-backstop.d.ts +34 -0
  532. package/dist/server/socket-error-backstop.js +200 -0
  533. package/dist/server/static-file-cache.d.ts +56 -0
  534. package/dist/server/static-file-cache.js +231 -0
  535. package/dist/server/static-layout-client-reuse-proof.d.ts +15 -0
  536. package/dist/server/static-layout-client-reuse-proof.js +33 -0
  537. package/dist/server/streaming-metadata.d.ts +4 -0
  538. package/dist/server/streaming-metadata.js +8 -0
  539. package/dist/server/worker-utils.d.ts +7 -0
  540. package/dist/server/worker-utils.js +99 -0
  541. package/dist/shims/amp.d.ts +19 -0
  542. package/dist/shims/amp.js +23 -0
  543. package/dist/shims/app-router-scroll-state.d.ts +15 -0
  544. package/dist/shims/app-router-scroll-state.js +61 -0
  545. package/dist/shims/app-router-scroll.d.ts +29 -0
  546. package/dist/shims/app-router-scroll.js +141 -0
  547. package/dist/shims/app.d.ts +42 -0
  548. package/dist/shims/app.js +48 -0
  549. package/dist/shims/before-interactive-context.d.ts +40 -0
  550. package/dist/shims/before-interactive-context.js +8 -0
  551. package/dist/shims/cache-for-request.d.ts +57 -0
  552. package/dist/shims/cache-for-request.js +72 -0
  553. package/dist/shims/cache-handler.d.ts +106 -0
  554. package/dist/shims/cache-handler.js +176 -0
  555. package/dist/shims/cache-request-state.d.ts +47 -0
  556. package/dist/shims/cache-request-state.js +126 -0
  557. package/dist/shims/cache-runtime.d.ts +83 -0
  558. package/dist/shims/cache-runtime.js +452 -0
  559. package/dist/shims/cache.d.ts +145 -0
  560. package/dist/shims/cache.js +401 -0
  561. package/dist/shims/cdn-cache.d.ts +125 -0
  562. package/dist/shims/cdn-cache.js +100 -0
  563. package/dist/shims/client-hook-error.d.ts +13 -0
  564. package/dist/shims/client-hook-error.js +17 -0
  565. package/dist/shims/client-locale.d.ts +14 -0
  566. package/dist/shims/client-locale.js +11 -0
  567. package/dist/shims/client-only.d.ts +1 -0
  568. package/dist/shims/client-only.js +1 -0
  569. package/dist/shims/compat-router.d.ts +16 -0
  570. package/dist/shims/compat-router.js +25 -0
  571. package/dist/shims/config.d.ts +28 -0
  572. package/dist/shims/config.js +21 -0
  573. package/dist/shims/constants.d.ts +130 -0
  574. package/dist/shims/constants.js +167 -0
  575. package/dist/shims/default-global-error.d.ts +31 -0
  576. package/dist/shims/default-global-error.js +179 -0
  577. package/dist/shims/default-not-found.d.ts +11 -0
  578. package/dist/shims/default-not-found.js +59 -0
  579. package/dist/shims/document.d.ts +92 -0
  580. package/dist/shims/document.js +76 -0
  581. package/dist/shims/dynamic-preload-chunks.d.ts +8 -0
  582. package/dist/shims/dynamic-preload-chunks.js +79 -0
  583. package/dist/shims/dynamic.d.ts +35 -0
  584. package/dist/shims/dynamic.js +204 -0
  585. package/dist/shims/error-boundary-navigation.d.ts +7 -0
  586. package/dist/shims/error-boundary-navigation.js +44 -0
  587. package/dist/shims/error-boundary.d.ts +155 -0
  588. package/dist/shims/error-boundary.js +342 -0
  589. package/dist/shims/error.d.ts +31 -0
  590. package/dist/shims/error.js +123 -0
  591. package/dist/shims/error.react-server.d.ts +9 -0
  592. package/dist/shims/error.react-server.js +6 -0
  593. package/dist/shims/fetch-cache.d.ts +136 -0
  594. package/dist/shims/fetch-cache.js +766 -0
  595. package/dist/shims/font-google-base.d.ts +83 -0
  596. package/dist/shims/font-google-base.js +290 -0
  597. package/dist/shims/font-google.d.ts +2 -0
  598. package/dist/shims/font-google.js +2 -0
  599. package/dist/shims/font-local.d.ts +50 -0
  600. package/dist/shims/font-local.js +195 -0
  601. package/dist/shims/font-utils.d.ts +56 -0
  602. package/dist/shims/font-utils.js +107 -0
  603. package/dist/shims/form.d.ts +19 -0
  604. package/dist/shims/form.js +236 -0
  605. package/dist/shims/hash-scroll.d.ts +10 -0
  606. package/dist/shims/hash-scroll.js +47 -0
  607. package/dist/shims/head-state.d.ts +16 -0
  608. package/dist/shims/head-state.js +43 -0
  609. package/dist/shims/head.d.ts +73 -0
  610. package/dist/shims/head.js +340 -0
  611. package/dist/shims/headers.d.ts +253 -0
  612. package/dist/shims/headers.js +754 -0
  613. package/dist/shims/i18n-context.d.ts +22 -0
  614. package/dist/shims/i18n-context.js +42 -0
  615. package/dist/shims/i18n-state.d.ts +14 -0
  616. package/dist/shims/i18n-state.js +38 -0
  617. package/dist/shims/image-config.d.ts +45 -0
  618. package/dist/shims/image-config.js +85 -0
  619. package/dist/shims/image.d.ts +55 -0
  620. package/dist/shims/image.js +582 -0
  621. package/dist/shims/internal/als-registry.d.ts +14 -0
  622. package/dist/shims/internal/als-registry.js +80 -0
  623. package/dist/shims/internal/api-utils.d.ts +14 -0
  624. package/dist/shims/internal/api-utils.js +1 -0
  625. package/dist/shims/internal/app-page-props-cache-key.d.ts +5 -0
  626. package/dist/shims/internal/app-page-props-cache-key.js +16 -0
  627. package/dist/shims/internal/app-route-detection.d.ts +39 -0
  628. package/dist/shims/internal/app-route-detection.js +62 -0
  629. package/dist/shims/internal/app-router-context.d.ts +31 -0
  630. package/dist/shims/internal/app-router-context.js +28 -0
  631. package/dist/shims/internal/cookie-serialize.d.ts +45 -0
  632. package/dist/shims/internal/cookie-serialize.js +49 -0
  633. package/dist/shims/internal/cookies.d.ts +2 -0
  634. package/dist/shims/internal/cookies.js +2 -0
  635. package/dist/shims/internal/hybrid-client-route-owner.d.ts +31 -0
  636. package/dist/shims/internal/hybrid-client-route-owner.js +143 -0
  637. package/dist/shims/internal/interpolate-as.d.ts +25 -0
  638. package/dist/shims/internal/interpolate-as.js +196 -0
  639. package/dist/shims/internal/link-status-registry.d.ts +43 -0
  640. package/dist/shims/internal/link-status-registry.js +42 -0
  641. package/dist/shims/internal/make-hanging-promise.d.ts +15 -0
  642. package/dist/shims/internal/make-hanging-promise.js +44 -0
  643. package/dist/shims/internal/navigation-untracked.d.ts +35 -0
  644. package/dist/shims/internal/navigation-untracked.js +56 -0
  645. package/dist/shims/internal/pages-data-fetch-dedup.d.ts +54 -0
  646. package/dist/shims/internal/pages-data-fetch-dedup.js +121 -0
  647. package/dist/shims/internal/pages-data-target.d.ts +62 -0
  648. package/dist/shims/internal/pages-data-target.js +98 -0
  649. package/dist/shims/internal/pages-data-url.d.ts +41 -0
  650. package/dist/shims/internal/pages-data-url.js +71 -0
  651. package/dist/shims/internal/pages-router-accessor.d.ts +19 -0
  652. package/dist/shims/internal/pages-router-accessor.js +13 -0
  653. package/dist/shims/internal/route-pattern-for-warning.d.ts +27 -0
  654. package/dist/shims/internal/route-pattern-for-warning.js +40 -0
  655. package/dist/shims/internal/router-context.d.ts +7 -0
  656. package/dist/shims/internal/router-context.js +13 -0
  657. package/dist/shims/internal/utils.d.ts +52 -0
  658. package/dist/shims/internal/utils.js +27 -0
  659. package/dist/shims/internal/work-unit-async-storage.d.ts +30 -0
  660. package/dist/shims/internal/work-unit-async-storage.js +17 -0
  661. package/dist/shims/layout-segment-context.d.ts +24 -0
  662. package/dist/shims/layout-segment-context.js +39 -0
  663. package/dist/shims/legacy-image.d.ts +41 -0
  664. package/dist/shims/legacy-image.js +49 -0
  665. package/dist/shims/link-prefetch.d.ts +41 -0
  666. package/dist/shims/link-prefetch.js +43 -0
  667. package/dist/shims/link.d.ts +102 -0
  668. package/dist/shims/link.js +687 -0
  669. package/dist/shims/metadata.d.ts +285 -0
  670. package/dist/shims/metadata.js +820 -0
  671. package/dist/shims/navigation-context-state.d.ts +40 -0
  672. package/dist/shims/navigation-context-state.js +116 -0
  673. package/dist/shims/navigation-errors.d.ts +55 -0
  674. package/dist/shims/navigation-errors.js +110 -0
  675. package/dist/shims/navigation-server.d.ts +3 -0
  676. package/dist/shims/navigation-server.js +3 -0
  677. package/dist/shims/navigation-state.d.ts +25 -0
  678. package/dist/shims/navigation-state.js +66 -0
  679. package/dist/shims/navigation.d.ts +286 -0
  680. package/dist/shims/navigation.js +1206 -0
  681. package/dist/shims/navigation.react-server.d.ts +14 -0
  682. package/dist/shims/navigation.react-server.js +32 -0
  683. package/dist/shims/offline.d.ts +4 -0
  684. package/dist/shims/offline.js +15 -0
  685. package/dist/shims/og.d.ts +17 -0
  686. package/dist/shims/og.js +48 -0
  687. package/dist/shims/pages-router-runtime.d.ts +12 -0
  688. package/dist/shims/pages-router-runtime.js +24 -0
  689. package/dist/shims/ppr-fallback-shell.d.ts +33 -0
  690. package/dist/shims/ppr-fallback-shell.js +170 -0
  691. package/dist/shims/readonly-url-search-params.d.ts +13 -0
  692. package/dist/shims/readonly-url-search-params.js +26 -0
  693. package/dist/shims/request-context.d.ts +58 -0
  694. package/dist/shims/request-context.js +45 -0
  695. package/dist/shims/request-state-types.d.ts +12 -0
  696. package/dist/shims/request-state-types.js +1 -0
  697. package/dist/shims/root-params.d.ts +12 -0
  698. package/dist/shims/root-params.js +30 -0
  699. package/dist/shims/router-state.d.ts +32 -0
  700. package/dist/shims/router-state.js +39 -0
  701. package/dist/shims/router.d.ts +192 -0
  702. package/dist/shims/router.js +1786 -0
  703. package/dist/shims/script-nonce-context.d.ts +11 -0
  704. package/dist/shims/script-nonce-context.js +23 -0
  705. package/dist/shims/script.d.ts +43 -0
  706. package/dist/shims/script.js +370 -0
  707. package/dist/shims/server-only.d.ts +1 -0
  708. package/dist/shims/server-only.js +1 -0
  709. package/dist/shims/server.d.ts +323 -0
  710. package/dist/shims/server.js +729 -0
  711. package/dist/shims/slot.d.ts +45 -0
  712. package/dist/shims/slot.js +230 -0
  713. package/dist/shims/thenable-params.d.ts +11 -0
  714. package/dist/shims/thenable-params.js +176 -0
  715. package/dist/shims/unified-request-context.d.ts +68 -0
  716. package/dist/shims/unified-request-context.js +86 -0
  717. package/dist/shims/unrecognized-action-error.d.ts +34 -0
  718. package/dist/shims/unrecognized-action-error.js +39 -0
  719. package/dist/shims/url-safety.d.ts +34 -0
  720. package/dist/shims/url-safety.js +70 -0
  721. package/dist/shims/url-utils.d.ts +51 -0
  722. package/dist/shims/url-utils.js +156 -0
  723. package/dist/shims/use-merged-ref.d.ts +6 -0
  724. package/dist/shims/use-merged-ref.js +38 -0
  725. package/dist/shims/web-vitals.d.ts +8 -0
  726. package/dist/shims/web-vitals.js +22 -0
  727. package/dist/typegen.d.ts +9 -0
  728. package/dist/typegen.js +228 -0
  729. package/dist/utils/asset-prefix.d.ts +96 -0
  730. package/dist/utils/asset-prefix.js +122 -0
  731. package/dist/utils/base-path.d.ts +31 -0
  732. package/dist/utils/base-path.js +45 -0
  733. package/dist/utils/built-asset-url.d.ts +4 -0
  734. package/dist/utils/built-asset-url.js +11 -0
  735. package/dist/utils/cache-control-metadata.d.ts +4 -0
  736. package/dist/utils/cache-control-metadata.js +12 -0
  737. package/dist/utils/client-build-manifest.d.ts +21 -0
  738. package/dist/utils/client-build-manifest.js +87 -0
  739. package/dist/utils/client-entry-manifest.d.ts +11 -0
  740. package/dist/utils/client-entry-manifest.js +29 -0
  741. package/dist/utils/client-runtime-metadata.d.ts +45 -0
  742. package/dist/utils/client-runtime-metadata.js +63 -0
  743. package/dist/utils/commonjs-loader.d.ts +16 -0
  744. package/dist/utils/commonjs-loader.js +100 -0
  745. package/dist/utils/compare.d.ts +4 -0
  746. package/dist/utils/compare.js +8 -0
  747. package/dist/utils/deployment-id.d.ts +8 -0
  748. package/dist/utils/deployment-id.js +22 -0
  749. package/dist/utils/dev-error-recovery-event.d.ts +4 -0
  750. package/dist/utils/dev-error-recovery-event.js +4 -0
  751. package/dist/utils/domain-locale.d.ts +26 -0
  752. package/dist/utils/domain-locale.js +50 -0
  753. package/dist/utils/encode-cache-tag.d.ts +30 -0
  754. package/dist/utils/encode-cache-tag.js +36 -0
  755. package/dist/utils/error-cause.d.ts +4 -0
  756. package/dist/utils/error-cause.js +95 -0
  757. package/dist/utils/has-trailing-comma.d.ts +24 -0
  758. package/dist/utils/has-trailing-comma.js +62 -0
  759. package/dist/utils/hash.d.ts +24 -0
  760. package/dist/utils/hash.js +55 -0
  761. package/dist/utils/html-limited-bots.d.ts +21 -0
  762. package/dist/utils/html-limited-bots.js +35 -0
  763. package/dist/utils/lazy-chunks.d.ts +59 -0
  764. package/dist/utils/lazy-chunks.js +112 -0
  765. package/dist/utils/manifest-paths.d.ts +30 -0
  766. package/dist/utils/manifest-paths.js +66 -0
  767. package/dist/utils/mdx-scan.d.ts +9 -0
  768. package/dist/utils/mdx-scan.js +34 -0
  769. package/dist/utils/navigation-signal.d.ts +4 -0
  770. package/dist/utils/navigation-signal.js +12 -0
  771. package/dist/utils/number.d.ts +4 -0
  772. package/dist/utils/number.js +6 -0
  773. package/dist/utils/parse-cookie.d.ts +13 -0
  774. package/dist/utils/parse-cookie.js +52 -0
  775. package/dist/utils/path.d.ts +22 -0
  776. package/dist/utils/path.js +30 -0
  777. package/dist/utils/prerender-output-paths.d.ts +14 -0
  778. package/dist/utils/prerender-output-paths.js +22 -0
  779. package/dist/utils/project.d.ts +76 -0
  780. package/dist/utils/project.js +213 -0
  781. package/dist/utils/promise.d.ts +4 -0
  782. package/dist/utils/promise.js +6 -0
  783. package/dist/utils/public-routes.d.ts +4 -0
  784. package/dist/utils/public-routes.js +48 -0
  785. package/dist/utils/query.d.ts +49 -0
  786. package/dist/utils/query.js +122 -0
  787. package/dist/utils/record.d.ts +4 -0
  788. package/dist/utils/record.js +6 -0
  789. package/dist/utils/regex.d.ts +4 -0
  790. package/dist/utils/regex.js +6 -0
  791. package/dist/utils/safe-json-file.d.ts +17 -0
  792. package/dist/utils/safe-json-file.js +23 -0
  793. package/dist/utils/sorted-array.d.ts +8 -0
  794. package/dist/utils/sorted-array.js +20 -0
  795. package/dist/utils/text-stream.d.ts +28 -0
  796. package/dist/utils/text-stream.js +64 -0
  797. package/dist/utils/vinext-root.d.ts +23 -0
  798. package/dist/utils/vinext-root.js +29 -0
  799. package/dist/utils/virtual-module.d.ts +5 -0
  800. package/dist/utils/virtual-module.js +0 -0
  801. package/dist/utils/vite-version.d.ts +21 -0
  802. package/dist/utils/vite-version.js +42 -0
  803. package/package.json +145 -0
@@ -0,0 +1,1087 @@
1
+ import { VINEXT_CLIENT_REUSE_MANIFEST_HEADER, VINEXT_PARAMS_HEADER, VINEXT_RSC_REDIRECT_HEADER } from "./headers.js";
2
+ import { AppElementsWire } from "./app-elements-wire.js";
3
+ import { APP_RSC_RENDER_MODE_REFRESH_PRESERVE_UI } from "./app-rsc-render-mode.js";
4
+ import { getMountedSlotIdsHeader, resolveVisitedResponseInterceptionContext } from "./app-elements.js";
5
+ import { AppRouterContext } from "../shims/internal/app-router-context.js";
6
+ import { installWindowNext, setWindowNextInternalSourcePage } from "../client/window-next.js";
7
+ import { retryScrollTo, scrollToHashTargetOnNextFrame } from "../shims/hash-scroll.js";
8
+ import { getBfcacheIdMapContext, setNavigationContext } from "../shims/navigation-context-state.js";
9
+ import { decodeRedirectError, isRedirectError } from "../shims/navigation-errors.js";
10
+ import DefaultGlobalError from "../shims/default-global-error.js";
11
+ import { clearAppNavigationFailureTarget, installAppNavigationFailureListeners } from "../client/app-nav-failure-handler.js";
12
+ import { DevRecoveryBoundary, GlobalErrorBoundary, RedirectBoundary } from "../shims/error-boundary.js";
13
+ import { beginAppRouterScrollIntent, consumeAppRouterScrollIntent } from "../shims/app-router-scroll-state.js";
14
+ import { AppRouterScrollCommitProvider } from "../shims/app-router-scroll.js";
15
+ import { BfcacheStateKeyMapContext, ElementsContext, Slot } from "../shims/slot.js";
16
+ import { VINEXT_RSC_COMPATIBILITY_ID_HEADER, VINEXT_RSC_CONTENT_TYPE, createRscRequestHeaders, createRscRequestUrl, getVinextRscCompatibilityId } from "./app-rsc-cache-busting.js";
17
+ import { getNavigationRuntime, registerNavigationRuntimeBootstrap, registerNavigationRuntimeFunctions } from "../client/navigation-runtime.js";
18
+ import { notifyAppRouterTransitionStart } from "../client/instrumentation-client-state.js";
19
+ import "../client/instrumentation-client.js";
20
+ import { resolveManifestNavigationInterceptionContext, resolveMiddlewareRewriteNavigationInterceptionContext } from "./app-browser-interception-context.js";
21
+ import { readHistoryStatePreviousNextUrl } from "./app-history-state.js";
22
+ import { AppBrowserMpaNavigationScheduler } from "./app-browser-mpa-navigation.js";
23
+ import { blockDangerousStreamedRscRedirect } from "./app-browser-rsc-redirect.js";
24
+ import { navigationPlanner } from "./navigation-planner.js";
25
+ import { __basePath, appRouterInstance, commitClientNavigationState, consumePrefetchResponseForNavigation, createCachedRscResponseSnapshot, createClientNavigationRenderSnapshot, createSnapshotPathAndSearch, getClientNavigationRenderContext, getPrefetchCache, hasPrefetchCacheEntryForNavigation, invalidatePrefetchCache, pushHistoryStateWithoutNotify, replaceClientParamsWithoutNotify, replaceHistoryStateWithoutNotify, resolvePrefetchCacheEntryMountedSlotsHeader, restoreRscResponse, saveScrollPosition, setClientParams, setMountedSlotsHeader, setPendingPathname, useRouter } from "../shims/navigation.js";
26
+ import { createBfcacheSegmentStateKeyMap, createInitialBfcacheIdMap } from "./app-bfcache-identity.js";
27
+ import { createDiscardedServerActionRefreshScheduler, createServerActionInitiationSnapshot } from "./app-browser-action-result.js";
28
+ import { createClientReuseManifestHeaderFromVisibleAppState } from "./app-browser-client-reuse-manifest.js";
29
+ import { chunksToReadableStream, createProgressiveRscStream, getVinextBrowserGlobal } from "./app-browser-stream.js";
30
+ import { FRESH_APP_NAVIGATION_PAYLOAD_ORIGIN, VISITED_CACHE_APP_NAVIGATION_PAYLOAD_ORIGIN, isCacheRestorableAppPayloadMetadata, resolveInterceptionContextFromPreviousNextUrl } from "./app-browser-state.js";
31
+ import { clearHardNavigationLoopGuard, createAppBrowserNavigationController, createBasePathStrippedPathAndSearch } from "./app-browser-navigation-controller.js";
32
+ import { consumeInitialFormState, createVinextHydrateRootOptions, hydrateRootInTransition } from "./app-browser-hydration.js";
33
+ import { AppBrowserHistoryController } from "./app-browser-history-controller.js";
34
+ import { createVisitedResponseCacheEntry, isVisitedResponseCacheEntryFresh } from "./app-visited-response-cache.js";
35
+ import { createPopstateRestoreHandler, restoreSynchronousPopstateScrollPosition } from "./app-browser-popstate.js";
36
+ import { createDevOnCaughtError, createOnUncaughtError, createProdOnCaughtError, prodOnRecoverableError } from "./app-browser-error.js";
37
+ import { dismissOverlay } from "./dev-error-overlay-store.js";
38
+ import { devOnCaughtError, installDevErrorOverlay, installViteHmrErrorHandler, reportInitialDevServerErrors } from "./dev-error-overlay.js";
39
+ import { createOptimisticRouteTemplate, getOptimisticPrefetchSourceKey, getOptimisticRouteTemplateKey, resolveOptimisticNavigationPayload } from "./app-optimistic-routing.js";
40
+ import { removeStylesheetLinksCoveredByInlineCss } from "./app-inline-css-client.js";
41
+ import { createElement, startTransition, use, useEffect, useLayoutEffect, useMemo, useRef, useState } from "react";
42
+ import { flushSync } from "react-dom";
43
+ import { createFromFetch, createFromReadableStream, setServerCallback } from "@vitejs/plugin-rsc/browser";
44
+ import { createRoot, hydrateRoot } from "react-dom/client";
45
+ import { hasServerActions, loadServerActionClient } from "virtual:vinext-app-capabilities";
46
+ //#region src/server/app-browser-entry.ts
47
+ function toActionType(kind) {
48
+ return kind === "traverse" ? "traverse" : "navigate";
49
+ }
50
+ function toOperationLane(kind) {
51
+ switch (kind) {
52
+ case "navigate": return "navigation";
53
+ case "refresh": return "refresh";
54
+ case "traverse": return "traverse";
55
+ default: throw new Error("[vinext] Unknown navigation kind: " + String(kind));
56
+ }
57
+ }
58
+ const MAX_VISITED_RESPONSE_CACHE_SIZE = 50;
59
+ const CLIENT_RSC_COMPATIBILITY_ID = getVinextRscCompatibilityId();
60
+ const optimisticRouteTemplates = /* @__PURE__ */ new Map();
61
+ const optimisticRouteTemplateSources = /* @__PURE__ */ new Set();
62
+ const optimisticRouteTemplateLearning = /* @__PURE__ */ new Map();
63
+ function claimInitialAppRouterBootstrap() {
64
+ if (window.__VINEXT_RSC_ROOT__ || window.__VINEXT_RSC_BOOTSTRAP_STATE__) return false;
65
+ window.__VINEXT_RSC_BOOTSTRAP_STATE__ = "starting";
66
+ return true;
67
+ }
68
+ function markInitialAppRouterBootstrapHydrated() {
69
+ window.__VINEXT_RSC_BOOTSTRAP_STATE__ = "hydrated";
70
+ }
71
+ function getBrowserRouteManifest() {
72
+ return getNavigationRuntime()?.bootstrap.routeManifest ?? null;
73
+ }
74
+ const historyController = new AppBrowserHistoryController({
75
+ initialHistoryState: window.history.state,
76
+ maxHistoryStateSnapshots: 50,
77
+ readHistoryState: () => window.history.state,
78
+ readCurrentHref: () => window.location.href,
79
+ pushHistoryState: (state, href) => pushHistoryStateWithoutNotify(state, "", href),
80
+ replaceHistoryState: (state, href) => replaceHistoryStateWithoutNotify(state, "", href),
81
+ readVisibleNavigationMetadata: () => {
82
+ if (!hasBrowserRouterState()) return null;
83
+ const routerState = getBrowserRouterState();
84
+ return {
85
+ bfcacheIds: routerState.bfcacheIds,
86
+ previousNextUrl: routerState.previousNextUrl
87
+ };
88
+ }
89
+ });
90
+ const browserNavigationController = createAppBrowserNavigationController({
91
+ basePath: __basePath,
92
+ getRouteManifest: getBrowserRouteManifest,
93
+ syncHistoryStatePreviousNextUrl: (previousNextUrl, bfcacheIds) => historyController.syncCurrentHistoryStatePreviousNextUrl(previousNextUrl, bfcacheIds)
94
+ });
95
+ const discardedServerActionRefreshScheduler = hasServerActions ? createDiscardedServerActionRefreshScheduler({ runRefresh() {
96
+ clearClientNavigationCaches();
97
+ getNavigationRuntime()?.functions.navigate?.(window.location.href, 0, "refresh", void 0, void 0, true);
98
+ } }) : {
99
+ markNavigationSettled() {},
100
+ markNavigationStart() {},
101
+ schedule() {}
102
+ };
103
+ const NavigationCommitSignal = browserNavigationController.NavigationCommitSignal;
104
+ const ACTION_HTTP_FALLBACK_ROBOTS_META_ATTR = "data-vinext-action-http-fallback";
105
+ function syncServerActionHttpFallbackHead(status) {
106
+ document.head.querySelectorAll(`meta[${ACTION_HTTP_FALLBACK_ROBOTS_META_ATTR}="robots"]`).forEach((node) => node.remove());
107
+ if (status !== 404) return;
108
+ const robots = document.createElement("meta");
109
+ robots.name = "robots";
110
+ robots.content = "noindex";
111
+ robots.setAttribute(ACTION_HTTP_FALLBACK_ROBOTS_META_ATTR, "robots");
112
+ document.head.appendChild(robots);
113
+ }
114
+ const BfcacheIdMapContext = getBfcacheIdMapContext();
115
+ function parseEncodedJsonHeader(value) {
116
+ if (!value) return null;
117
+ try {
118
+ return JSON.parse(decodeURIComponent(value));
119
+ } catch {
120
+ return null;
121
+ }
122
+ }
123
+ function isRouterStatePromise(value) {
124
+ return value instanceof Promise;
125
+ }
126
+ let latestClientParams = {};
127
+ const visitedResponseCache = /* @__PURE__ */ new Map();
128
+ let browserRouterStateHasEverCommitted = false;
129
+ const mpaNavigationScheduler = new AppBrowserMpaNavigationScheduler();
130
+ const unresolvedMpaNavigation = new Promise(() => {});
131
+ const RSC_HMR_SETTLE_DELAY_MS = 150;
132
+ const DEFAULT_GLOBAL_ERROR_COMPONENT = DefaultGlobalError;
133
+ let latestRscHmrUpdateId = 0;
134
+ let synchronousPopstateScrollRestoreNavigationId = null;
135
+ function waitForRscHmrSettle(delayMs = RSC_HMR_SETTLE_DELAY_MS) {
136
+ return new Promise((resolve) => {
137
+ window.setTimeout(resolve, delayMs);
138
+ });
139
+ }
140
+ function restoreHistoryStateSnapshot(historyState) {
141
+ const navId = browserNavigationController.getActiveNavigationId();
142
+ let restored = false;
143
+ flushSync(() => {
144
+ restored = historyController.restoreHistorySnapshot({
145
+ historyState,
146
+ stageClientParams,
147
+ approveVisibleRestore: ({ state, beforeCommit }) => browserNavigationController.restoreHistorySnapshotVisibleState({
148
+ beforeCommit,
149
+ navId,
150
+ state,
151
+ targetHref: window.location.href
152
+ })
153
+ });
154
+ });
155
+ if (!restored) return false;
156
+ commitClientNavigationState();
157
+ return true;
158
+ }
159
+ function getBrowserRouterState() {
160
+ return browserNavigationController.getBrowserRouterState();
161
+ }
162
+ function hasBrowserRouterState() {
163
+ return browserNavigationController.hasBrowserRouterState();
164
+ }
165
+ function waitForBrowserRouterStateReady() {
166
+ return browserNavigationController.waitForBrowserRouterStateReady();
167
+ }
168
+ function beginPendingBrowserRouterState() {
169
+ return browserNavigationController.beginPendingBrowserRouterState();
170
+ }
171
+ function applyClientParams(params) {
172
+ latestClientParams = params;
173
+ setClientParams(params);
174
+ }
175
+ function stageClientParams(params) {
176
+ latestClientParams = params;
177
+ replaceClientParamsWithoutNotify(params);
178
+ }
179
+ function clearVisitedResponseCache() {
180
+ visitedResponseCache.clear();
181
+ }
182
+ function clearPrefetchState() {
183
+ invalidatePrefetchCache();
184
+ optimisticRouteTemplates.clear();
185
+ optimisticRouteTemplateSources.clear();
186
+ optimisticRouteTemplateLearning.clear();
187
+ }
188
+ function clearClientNavigationCaches() {
189
+ clearVisitedResponseCache();
190
+ clearPrefetchState();
191
+ historyController.invalidateRestorableClientState();
192
+ }
193
+ function isSettledPrefetchCacheEntry(entry) {
194
+ return entry.outcome === "cache-seeded" && entry.pending === void 0 && entry.snapshot !== void 0;
195
+ }
196
+ function parsePrefetchCacheKey(cacheKey) {
197
+ const separatorIndex = cacheKey.indexOf("\0");
198
+ if (separatorIndex === -1) return {
199
+ interceptionContext: null,
200
+ rscUrl: cacheKey
201
+ };
202
+ return {
203
+ interceptionContext: cacheKey.slice(separatorIndex + 1),
204
+ rscUrl: cacheKey.slice(0, separatorIndex)
205
+ };
206
+ }
207
+ async function learnOptimisticRouteTemplateFromPrefetch(options) {
208
+ const source = parsePrefetchCacheKey(options.cacheKey);
209
+ if (source.interceptionContext !== options.interceptionContext) return false;
210
+ if (resolvePrefetchCacheEntryMountedSlotsHeader(options.entry) !== options.mountedSlotsHeader) return false;
211
+ if (options.interceptionContext !== null) return false;
212
+ const elements = await decodeAppElementsPromise(createFromFetch(Promise.resolve(restoreRscResponse(options.entry.snapshot))));
213
+ const template = createOptimisticRouteTemplate({
214
+ allowLoadingShell: options.entry.optimisticRouteShell === true,
215
+ basePath: __basePath,
216
+ elements,
217
+ href: options.entry.snapshot.url || source.rscUrl,
218
+ interceptionContext: options.interceptionContext,
219
+ mountedSlotsHeader: options.mountedSlotsHeader,
220
+ routeManifest: options.routeManifest
221
+ });
222
+ if (template === null) return false;
223
+ optimisticRouteTemplates.set(getOptimisticRouteTemplateKey({
224
+ interceptionContext: options.interceptionContext,
225
+ mountedSlotsHeader: options.mountedSlotsHeader,
226
+ routeId: template.routeId
227
+ }), template);
228
+ return true;
229
+ }
230
+ async function learnOptimisticRouteTemplatesFromPrefetchCache(options) {
231
+ if (options.routeManifest === null) return;
232
+ const learning = [...optimisticRouteTemplateLearning.values()];
233
+ for (const [cacheKey, entry] of getPrefetchCache()) {
234
+ const sourceKey = getOptimisticPrefetchSourceKey({
235
+ cacheKey,
236
+ interceptionContext: options.interceptionContext,
237
+ mountedSlotsHeader: options.mountedSlotsHeader
238
+ });
239
+ if (optimisticRouteTemplateSources.has(sourceKey)) continue;
240
+ if (optimisticRouteTemplateLearning.has(sourceKey)) continue;
241
+ if (!isSettledPrefetchCacheEntry(entry)) continue;
242
+ const promise = learnOptimisticRouteTemplateFromPrefetch({
243
+ cacheKey,
244
+ entry,
245
+ interceptionContext: options.interceptionContext,
246
+ mountedSlotsHeader: options.mountedSlotsHeader,
247
+ routeManifest: options.routeManifest
248
+ }).then((learned) => {
249
+ if (learned) optimisticRouteTemplateSources.add(sourceKey);
250
+ }).finally(() => {
251
+ optimisticRouteTemplateLearning.delete(sourceKey);
252
+ });
253
+ optimisticRouteTemplateLearning.set(sourceKey, promise);
254
+ learning.push(promise);
255
+ }
256
+ if (learning.length === 0) return;
257
+ await Promise.allSettled(learning);
258
+ }
259
+ function createActionInitiationSnapshot() {
260
+ const routerState = getBrowserRouterState();
261
+ return createServerActionInitiationSnapshot({
262
+ href: window.location.href,
263
+ navigationId: browserNavigationController.getActiveNavigationId(),
264
+ routerState
265
+ });
266
+ }
267
+ function createNavigationCommitEffect(options) {
268
+ const { bfcacheIds, href, historyUpdateMode, navId, params, previousNextUrl, targetHistoryIndex } = options;
269
+ return () => {
270
+ if (!browserNavigationController.isCurrentNavigation(navId)) {
271
+ commitClientNavigationState(void 0, { releaseSnapshot: true });
272
+ return;
273
+ }
274
+ historyController.commitNavigationHistory({
275
+ bfcacheIds,
276
+ href,
277
+ historyUpdateMode,
278
+ previousNextUrl,
279
+ stageClientParams: () => stageClientParams(params),
280
+ targetHistoryIndex
281
+ });
282
+ clearAppNavigationFailureTarget(href);
283
+ commitClientNavigationState(navId);
284
+ };
285
+ }
286
+ async function renderNavigationPayload(payload, navigationSnapshot, targetHref, navId, historyUpdateMode, params, previousNextUrl, pendingRouterState, payloadOrigin, actionType = "navigate", operationLane = "navigation", traversalIntent = null, scrollIntent = null, restoredBfcacheIds = null, reuseCurrentBfcacheIds = true, visibleCommitMode = "transition") {
287
+ syncServerActionHttpFallbackHead(null);
288
+ return browserNavigationController.renderNavigationPayload({
289
+ actionType,
290
+ createNavigationCommitEffect,
291
+ historyUpdateMode,
292
+ navigationSnapshot,
293
+ nextElements: payload,
294
+ operationLane,
295
+ payloadOrigin,
296
+ params,
297
+ pendingRouterState,
298
+ previousNextUrl,
299
+ scrollIntent,
300
+ restoredBfcacheIds,
301
+ reuseCurrentBfcacheIds,
302
+ targetHistoryIndex: traversalIntent === null ? void 0 : traversalIntent.targetHistoryIndex,
303
+ targetHref,
304
+ navId,
305
+ visibleCommitMode
306
+ });
307
+ }
308
+ async function commitSameUrlNavigatePayload(nextElements, actionInitiation, returnValue, revalidation = "none") {
309
+ const navigationSnapshot = createClientNavigationRenderSnapshot(actionInitiation.href, actionInitiation.routerState.navigationSnapshot.params);
310
+ return browserNavigationController.commitSameUrlNavigatePayload(nextElements, navigationSnapshot, returnValue, actionInitiation.routerState, {
311
+ onDiscardedRevalidation() {
312
+ discardedServerActionRefreshScheduler.schedule();
313
+ },
314
+ revalidation,
315
+ startedNavigationId: actionInitiation.navigationId,
316
+ targetHref: actionInitiation.href
317
+ });
318
+ }
319
+ function evictVisitedResponseCacheIfNeeded() {
320
+ while (visitedResponseCache.size >= MAX_VISITED_RESPONSE_CACHE_SIZE) {
321
+ const oldest = visitedResponseCache.keys().next().value;
322
+ if (oldest === void 0) return;
323
+ visitedResponseCache.delete(oldest);
324
+ }
325
+ }
326
+ function readVisitedResponseCacheCandidate(rscUrl, interceptionContext, mountedSlotsHeader, navigationKind) {
327
+ const cacheKey = AppElementsWire.encodeCacheKey(rscUrl, interceptionContext);
328
+ const cached = visitedResponseCache.get(cacheKey);
329
+ if (!cached) return {
330
+ cacheKey,
331
+ entry: null,
332
+ facts: {
333
+ candidate: "missing",
334
+ navigationKind
335
+ }
336
+ };
337
+ return {
338
+ cacheKey,
339
+ entry: cached,
340
+ facts: {
341
+ candidate: "present",
342
+ fresh: isVisitedResponseCacheEntryFresh(cached, {
343
+ navigationKind,
344
+ now: Date.now()
345
+ }),
346
+ mountedSlotsMatch: (cached.response.mountedSlotsHeader ?? null) === mountedSlotsHeader,
347
+ navigationKind
348
+ }
349
+ };
350
+ }
351
+ function applyVisitedResponseCacheCandidateDecision(candidate, decision) {
352
+ if (candidate.entry === null) return null;
353
+ if (decision.kind === "reuse") {
354
+ visitedResponseCache.delete(candidate.cacheKey);
355
+ visitedResponseCache.set(candidate.cacheKey, candidate.entry);
356
+ return candidate.entry;
357
+ }
358
+ visitedResponseCache.delete(candidate.cacheKey);
359
+ return null;
360
+ }
361
+ function deleteVisitedResponse(rscUrl, interceptionContext) {
362
+ visitedResponseCache.delete(AppElementsWire.encodeCacheKey(rscUrl, interceptionContext));
363
+ }
364
+ function storeVisitedResponseSnapshot(rscUrl, interceptionContext, snapshot, params) {
365
+ const cacheKey = AppElementsWire.encodeCacheKey(rscUrl, interceptionContext);
366
+ visitedResponseCache.delete(cacheKey);
367
+ evictVisitedResponseCacheIfNeeded();
368
+ const now = Date.now();
369
+ visitedResponseCache.set(cacheKey, createVisitedResponseCacheEntry({
370
+ now,
371
+ params,
372
+ response: snapshot
373
+ }));
374
+ }
375
+ function clientNavigationSnapshotHref(snapshot) {
376
+ return `${window.location.origin}${createSnapshotPathAndSearch(snapshot)}`;
377
+ }
378
+ function getRequestState(navigationKind, targetPathname, previousNextUrlOverride, traverseHistoryState) {
379
+ if (previousNextUrlOverride !== void 0) return {
380
+ interceptionContext: resolveInterceptionContextFromPreviousNextUrl(previousNextUrlOverride, __basePath),
381
+ previousNextUrl: previousNextUrlOverride
382
+ };
383
+ switch (navigationKind) {
384
+ case "navigate": {
385
+ const currentPreviousNextUrl = getBrowserRouterState().previousNextUrl;
386
+ if (currentPreviousNextUrl !== null) return {
387
+ interceptionContext: resolveInterceptionContextFromPreviousNextUrl(currentPreviousNextUrl, __basePath),
388
+ previousNextUrl: currentPreviousNextUrl
389
+ };
390
+ const manifestInterceptionContext = resolveManifestNavigationInterceptionContext({
391
+ basePath: __basePath,
392
+ currentPathname: window.location.pathname,
393
+ routeManifest: getBrowserRouteManifest(),
394
+ targetPathname
395
+ });
396
+ if (manifestInterceptionContext !== null) return {
397
+ interceptionContext: manifestInterceptionContext,
398
+ previousNextUrl: window.location.pathname + window.location.search
399
+ };
400
+ const middlewareRewriteInterceptionContext = resolveMiddlewareRewriteNavigationInterceptionContext({
401
+ basePath: __basePath,
402
+ currentPathname: window.location.pathname,
403
+ routeManifest: getBrowserRouteManifest(),
404
+ targetPathname
405
+ });
406
+ if (middlewareRewriteInterceptionContext !== null) return {
407
+ interceptionContext: middlewareRewriteInterceptionContext,
408
+ previousNextUrl: window.location.pathname + window.location.search
409
+ };
410
+ return {
411
+ interceptionContext: null,
412
+ previousNextUrl: null
413
+ };
414
+ }
415
+ case "traverse": {
416
+ const previousNextUrl = readHistoryStatePreviousNextUrl(traverseHistoryState ?? window.history.state);
417
+ return {
418
+ interceptionContext: resolveInterceptionContextFromPreviousNextUrl(previousNextUrl, __basePath),
419
+ previousNextUrl
420
+ };
421
+ }
422
+ case "refresh": {
423
+ const currentPreviousNextUrl = getBrowserRouterState().previousNextUrl;
424
+ return {
425
+ interceptionContext: resolveInterceptionContextFromPreviousNextUrl(currentPreviousNextUrl, __basePath),
426
+ previousNextUrl: currentPreviousNextUrl
427
+ };
428
+ }
429
+ default: throw new Error("[vinext] Unknown navigation kind: " + String(navigationKind));
430
+ }
431
+ }
432
+ function handleDevRecoveryBoundaryCatch(resetKey) {
433
+ browserNavigationController.drainPrePaintEffects(resetKey);
434
+ }
435
+ function isMpaNavigationState(value) {
436
+ return value !== null && typeof value === "object" && "kind" in value && value.kind === "mpa-navigation";
437
+ }
438
+ function performMpaNavigation(href, historyUpdateMode) {
439
+ mpaNavigationScheduler.navigate(window, href, historyUpdateMode);
440
+ }
441
+ function AppRouterRedirectBridge({ children }) {
442
+ const router = useRouter();
443
+ useEffect(() => {
444
+ const handleUnhandledRedirect = (event) => {
445
+ const error = "reason" in event ? event.reason : event.error;
446
+ if (!isRedirectError(error)) return;
447
+ const result = decodeRedirectError(error.digest);
448
+ if (!result) return;
449
+ event.preventDefault();
450
+ startTransition(() => {
451
+ if (result.type === "push") router.push(result.url);
452
+ else router.replace(result.url);
453
+ });
454
+ };
455
+ window.addEventListener("error", handleUnhandledRedirect);
456
+ window.addEventListener("unhandledrejection", handleUnhandledRedirect);
457
+ return () => {
458
+ window.removeEventListener("error", handleUnhandledRedirect);
459
+ window.removeEventListener("unhandledrejection", handleUnhandledRedirect);
460
+ };
461
+ }, [router]);
462
+ return children ?? null;
463
+ }
464
+ function decodeAppElementsPromise(payload) {
465
+ return Promise.resolve(payload).then((elements) => AppElementsWire.decode(elements));
466
+ }
467
+ function BrowserRoot({ initialElements, initialNavigationSnapshot }) {
468
+ const resolvedElements = use(initialElements);
469
+ const initialMetadata = AppElementsWire.readMetadata(resolvedElements);
470
+ const [treeStateValue, setTreeStateValue] = useState(() => ({
471
+ activeOperation: null,
472
+ bfcacheIds: createInitialBfcacheIdMap(resolvedElements),
473
+ elements: resolvedElements,
474
+ interception: initialMetadata.interception,
475
+ interceptionContext: initialMetadata.interceptionContext,
476
+ layoutIds: initialMetadata.layoutIds,
477
+ layoutFlags: initialMetadata.layoutFlags,
478
+ navigationSnapshot: initialNavigationSnapshot,
479
+ previousNextUrl: null,
480
+ renderId: 0,
481
+ rootLayoutTreePath: initialMetadata.rootLayoutTreePath,
482
+ routeId: initialMetadata.routeId,
483
+ slotBindings: initialMetadata.slotBindings,
484
+ visibleCommitVersion: 0
485
+ }));
486
+ if (isMpaNavigationState(treeStateValue)) {
487
+ performMpaNavigation(treeStateValue.href, treeStateValue.historyUpdateMode);
488
+ throw unresolvedMpaNavigation;
489
+ }
490
+ const treeState = isRouterStatePromise(treeStateValue) ? use(treeStateValue) : treeStateValue;
491
+ const stateRef = useRef(treeState);
492
+ stateRef.current = treeState;
493
+ useLayoutEffect(() => {
494
+ const setAppRouterStateValue = (value) => {
495
+ setTreeStateValue(value);
496
+ };
497
+ const detach = browserNavigationController.attachBrowserRouterState(setAppRouterStateValue, stateRef);
498
+ registerNavigationRuntimeFunctions({ navigateExternal: (href, historyUpdateMode) => {
499
+ setTreeStateValue({
500
+ href,
501
+ historyUpdateMode,
502
+ kind: "mpa-navigation"
503
+ });
504
+ return new Promise(() => {});
505
+ } });
506
+ browserRouterStateHasEverCommitted = true;
507
+ return () => {
508
+ registerNavigationRuntimeFunctions({ navigateExternal: void 0 });
509
+ detach();
510
+ setMountedSlotsHeader(null);
511
+ };
512
+ }, [setTreeStateValue]);
513
+ useEffect(() => {
514
+ const hydratedAt = performance.now();
515
+ window.__VINEXT_HYDRATED_AT = hydratedAt;
516
+ window.__NEXT_HYDRATED = true;
517
+ window.__NEXT_HYDRATED_AT = hydratedAt;
518
+ window.__NEXT_HYDRATED_CB?.();
519
+ }, []);
520
+ useLayoutEffect(() => {
521
+ historyController.rememberHistoryStateSnapshot(treeState);
522
+ }, [treeState]);
523
+ useEffect(() => {
524
+ setWindowNextInternalSourcePage(AppElementsWire.readMetadata(treeState.elements).sourcePage);
525
+ }, [treeState.elements]);
526
+ useLayoutEffect(() => {
527
+ setMountedSlotsHeader(getMountedSlotIdsHeader(stateRef.current.elements));
528
+ removeStylesheetLinksCoveredByInlineCss();
529
+ getNavigationRuntime()?.functions.pingVisibleLinks?.();
530
+ }, [treeState.elements]);
531
+ useLayoutEffect(() => {
532
+ if (treeState.renderId !== 0) return;
533
+ historyController.writeHydratedHistoryMetadata({
534
+ bfcacheIds: treeState.bfcacheIds,
535
+ previousNextUrl: treeState.previousNextUrl
536
+ });
537
+ }, [
538
+ treeState.bfcacheIds,
539
+ treeState.previousNextUrl,
540
+ treeState.renderId
541
+ ]);
542
+ const routeTree = createElement(RedirectBoundary, null, createElement(NavigationCommitSignal, { renderId: treeState.renderId }, createElement(ElementsContext.Provider, { value: treeState.elements }, createElement(Slot, { id: treeState.routeId }))));
543
+ const bfcacheStateKeys = useMemo(() => createBfcacheSegmentStateKeyMap({
544
+ elements: treeState.elements,
545
+ pathname: treeState.navigationSnapshot.pathname
546
+ }), [treeState.elements, treeState.navigationSnapshot.pathname]);
547
+ const stateKeyTree = createElement(BfcacheStateKeyMapContext.Provider, { value: bfcacheStateKeys }, routeTree);
548
+ const redirectedTree = createElement(AppRouterRedirectBridge, null, BfcacheIdMapContext ? createElement(BfcacheIdMapContext.Provider, { value: treeState.bfcacheIds }, stateKeyTree) : stateKeyTree);
549
+ const innerTree = AppRouterContext ? createElement(AppRouterContext.Provider, { value: appRouterInstance }, redirectedTree) : redirectedTree;
550
+ const committedTree = import.meta.env.DEV ? createElement(DevRecoveryBoundary, {
551
+ isImplicitRootErrorBoundary: true,
552
+ resetKey: treeState.renderId,
553
+ onCatch: handleDevRecoveryBoundaryCatch
554
+ }, innerTree) : innerTree;
555
+ const rootErrorTree = createElement(GlobalErrorBoundary, {
556
+ fallback: DEFAULT_GLOBAL_ERROR_COMPONENT,
557
+ children: createElement(AppRouterScrollCommitProvider, { commitId: treeState.renderId }, committedTree)
558
+ });
559
+ const ClientNavigationRenderContext = getClientNavigationRenderContext();
560
+ if (!ClientNavigationRenderContext) return rootErrorTree;
561
+ return createElement(ClientNavigationRenderContext.Provider, { value: treeState.navigationSnapshot }, rootErrorTree);
562
+ }
563
+ function restoreHydrationNavigationContext(pathname, searchParams, params) {
564
+ setNavigationContext({
565
+ pathname,
566
+ searchParams: new URLSearchParams(searchParams),
567
+ params
568
+ });
569
+ }
570
+ function restorePopstateScrollPosition(state, options) {
571
+ const shouldContinue = options?.shouldContinue ?? (() => true);
572
+ if (!shouldContinue()) return;
573
+ if (!(state && typeof state === "object" && "__vinext_scrollY" in state)) {
574
+ if (window.location.hash) scrollToHashTargetOnNextFrame(window.location.hash);
575
+ return;
576
+ }
577
+ const y = Number(state.__vinext_scrollY);
578
+ retryScrollTo("__vinext_scrollX" in state ? Number(state.__vinext_scrollX) : 0, y, {
579
+ minFrames: 1,
580
+ shouldContinue
581
+ });
582
+ }
583
+ function isSameAppRoutePopstateTarget(href) {
584
+ if (!hasBrowserRouterState()) return false;
585
+ const target = new URL(href, window.location.origin);
586
+ const routerState = getBrowserRouterState();
587
+ return createBasePathStrippedPathAndSearch(target, __basePath) === createSnapshotPathAndSearch(routerState.navigationSnapshot);
588
+ }
589
+ let isPageUnloading = false;
590
+ const RSC_RELOAD_KEY = "__vinext_rsc_initial_reload__";
591
+ function readReloadFlag() {
592
+ try {
593
+ return sessionStorage.getItem(RSC_RELOAD_KEY);
594
+ } catch {
595
+ return null;
596
+ }
597
+ }
598
+ function writeReloadFlag(path) {
599
+ try {
600
+ sessionStorage.setItem(RSC_RELOAD_KEY, path);
601
+ } catch {}
602
+ }
603
+ function clearReloadFlag() {
604
+ try {
605
+ sessionStorage.removeItem(RSC_RELOAD_KEY);
606
+ } catch {}
607
+ }
608
+ function recoverFromBadInitialRscResponse(reason) {
609
+ const currentPath = window.location.pathname + window.location.search;
610
+ if (readReloadFlag() === currentPath) {
611
+ clearReloadFlag();
612
+ console.error(`[vinext] Initial RSC fetch ${reason} after reload; aborting hydration. Server-rendered HTML remains visible; client components will not hydrate.`);
613
+ return null;
614
+ }
615
+ writeReloadFlag(currentPath);
616
+ if (readReloadFlag() !== currentPath) {
617
+ console.error(`[vinext] Initial RSC fetch ${reason}; sessionStorage unavailable so the reload-loop guard cannot persist — aborting hydration. Server-rendered HTML remains visible; client components will not hydrate.`);
618
+ return null;
619
+ }
620
+ console.warn(`[vinext] Initial RSC fetch ${reason}; reloading once to let the server render the HTML error page`);
621
+ window.location.reload();
622
+ return null;
623
+ }
624
+ async function readInitialRscStream() {
625
+ const vinext = getVinextBrowserGlobal();
626
+ const runtimeRsc = getNavigationRuntime()?.bootstrap.rsc;
627
+ if (runtimeRsc || vinext.__VINEXT_RSC_CHUNKS__ || vinext.__VINEXT_RSC_DONE__) {
628
+ clearReloadFlag();
629
+ clearHardNavigationLoopGuard();
630
+ if (runtimeRsc) {
631
+ applyRuntimeRscBootstrap(runtimeRsc);
632
+ if (runtimeRsc.done) {
633
+ registerNavigationRuntimeBootstrap({ rsc: void 0 });
634
+ return chunksToReadableStream(runtimeRsc.rsc);
635
+ }
636
+ return createProgressiveRscStream();
637
+ }
638
+ const params = vinext.__VINEXT_RSC_PARAMS__ ?? {};
639
+ if (vinext.__VINEXT_RSC_PARAMS__) applyClientParams(vinext.__VINEXT_RSC_PARAMS__);
640
+ if (vinext.__VINEXT_RSC_NAV__) restoreHydrationNavigationContext(vinext.__VINEXT_RSC_NAV__.pathname, vinext.__VINEXT_RSC_NAV__.searchParams, params);
641
+ return createProgressiveRscStream();
642
+ }
643
+ const rscHeaders = createRscRequestHeaders();
644
+ const rscResponse = await fetch(await createRscRequestUrl(window.location.pathname + window.location.search, rscHeaders), {
645
+ credentials: "include",
646
+ headers: rscHeaders
647
+ });
648
+ if (!rscResponse.ok) return recoverFromBadInitialRscResponse(`returned ${rscResponse.status}`);
649
+ const contentType = rscResponse.headers.get("content-type") ?? "";
650
+ if (!contentType.startsWith("text/x-component")) return recoverFromBadInitialRscResponse(`returned non-RSC content-type "${contentType || "(missing)"}"`);
651
+ if (!rscResponse.body) return recoverFromBadInitialRscResponse("returned empty body");
652
+ clearReloadFlag();
653
+ clearHardNavigationLoopGuard();
654
+ const parsedParams = parseEncodedJsonHeader(rscResponse.headers.get(VINEXT_PARAMS_HEADER));
655
+ const params = parsedParams ?? {};
656
+ if (parsedParams) try {
657
+ applyClientParams(parsedParams);
658
+ } catch {}
659
+ restoreHydrationNavigationContext(window.location.pathname, window.location.search, params);
660
+ return rscResponse.body;
661
+ }
662
+ function applyRuntimeRscBootstrap(rsc) {
663
+ const params = rsc.params ?? {};
664
+ if (rsc.params) applyClientParams(rsc.params);
665
+ if (rsc.nav) restoreHydrationNavigationContext(rsc.nav.pathname, rsc.nav.searchParams, params);
666
+ }
667
+ function registerServerActionCallback() {
668
+ setServerCallback((id, args) => {
669
+ const releaseCacheInvalidationGuard = historyController.beginCacheInvalidationGuard();
670
+ const actionInitiation = createActionInitiationSnapshot();
671
+ return loadServerActionClient().then(({ invokeClientServerAction }) => invokeClientServerAction(id, args, actionInitiation, {
672
+ basePath: __basePath,
673
+ clearClientNavigationCaches,
674
+ clientRscCompatibilityId: CLIENT_RSC_COMPATIBILITY_ID,
675
+ commitSameUrlNavigatePayload,
676
+ navigationPlanner,
677
+ performHardNavigation: (url, historyMode) => browserNavigationController.performHardNavigation(url, historyMode),
678
+ renderRedirectPayload(elements, target, actionInitiation) {
679
+ const hashIdx = target.href.indexOf("#");
680
+ const actionScrollIntent = beginAppRouterScrollIntent((hashIdx !== -1 ? target.href.slice(hashIdx) : "") || null);
681
+ if (target.type === "push") saveScrollPosition();
682
+ renderNavigationPayload(Promise.resolve(elements), createClientNavigationRenderSnapshot(target.href, actionInitiation.routerState.navigationSnapshot.params), target.href, actionInitiation.navigationId, target.type === "push" ? "push" : "replace", {}, null, null, FRESH_APP_NAVIGATION_PAYLOAD_ORIGIN, target.type === "push" ? "navigate" : "replace", "server-action", null, actionScrollIntent).catch(() => {
683
+ browserNavigationController.performHardNavigation(target.href);
684
+ });
685
+ },
686
+ syncCurrentHistoryState: (previousNextUrl, bfcacheIds) => historyController.syncCurrentHistoryStatePreviousNextUrl(previousNextUrl, bfcacheIds),
687
+ syncServerActionHttpFallbackHead
688
+ })).finally(releaseCacheInvalidationGuard);
689
+ });
690
+ }
691
+ async function main() {
692
+ if (!claimInitialAppRouterBootstrap()) return;
693
+ if (hasServerActions) registerServerActionCallback();
694
+ installAppNavigationFailureListeners();
695
+ if (import.meta.env.DEV) {
696
+ installDevErrorOverlay();
697
+ installViteHmrErrorHandler(import.meta.hot);
698
+ reportInitialDevServerErrors();
699
+ }
700
+ const rscStream = await readInitialRscStream();
701
+ if (rscStream === null) return;
702
+ bootstrapHydration(rscStream);
703
+ }
704
+ function bootstrapHydration(rscStream) {
705
+ const root = decodeAppElementsPromise(createFromReadableStream(rscStream));
706
+ const initialNavigationSnapshot = createClientNavigationRenderSnapshot(window.location.href, latestClientParams);
707
+ historyController.writeBootstrapHistoryMetadata();
708
+ const onUncaughtError = createOnUncaughtError();
709
+ const formState = consumeInitialFormState(getVinextBrowserGlobal());
710
+ const hydrateRootOptions = import.meta.env.DEV ? createVinextHydrateRootOptions({
711
+ formState,
712
+ onCaughtError: createDevOnCaughtError(devOnCaughtError, onUncaughtError),
713
+ onUncaughtError
714
+ }) : createVinextHydrateRootOptions({
715
+ formState,
716
+ onCaughtError: createProdOnCaughtError(onUncaughtError),
717
+ onRecoverableError: prodOnRecoverableError,
718
+ onUncaughtError
719
+ });
720
+ const children = createElement(BrowserRoot, {
721
+ initialElements: root,
722
+ initialNavigationSnapshot
723
+ });
724
+ const errorShellStyles = document.querySelectorAll("style[data-vinext-error-shell-style]");
725
+ if (document.documentElement.id === "__next_error__") {
726
+ const { formState: _inertFormState, ...createRootOptions } = hydrateRootOptions;
727
+ for (const style of errorShellStyles) style.remove();
728
+ startTransition(() => {
729
+ const clientRoot = createRoot(document, createRootOptions);
730
+ clientRoot.render(children);
731
+ window.__VINEXT_RSC_ROOT__ = clientRoot;
732
+ });
733
+ } else window.__VINEXT_RSC_ROOT__ = hydrateRootInTransition({
734
+ children,
735
+ container: document,
736
+ hydrateRoot,
737
+ options: hydrateRootOptions,
738
+ startTransition
739
+ });
740
+ markInitialAppRouterBootstrapHydrated();
741
+ let activeNavigationAbortController = null;
742
+ registerNavigationRuntimeFunctions({
743
+ clearNavigationCaches: clearClientNavigationCaches,
744
+ commitHashNavigation: (href, historyUpdateMode, scroll) => historyController.commitHashOnlyNavigation(href, historyUpdateMode, scroll),
745
+ navigate: async function navigateRsc(href, redirectDepth = 0, navigationKind = "navigate", historyUpdateMode, previousNextUrlOverride, programmaticTransition = false, traversalIntent, scrollIntent, visibleCommitMode = "transition") {
746
+ activeNavigationAbortController?.abort();
747
+ const navigationAbortController = new AbortController();
748
+ activeNavigationAbortController = navigationAbortController;
749
+ let pendingRouterState = null;
750
+ const navId = browserNavigationController.beginNavigation();
751
+ discardedServerActionRefreshScheduler.markNavigationStart();
752
+ let currentHref = href;
753
+ let currentHistoryMode = historyUpdateMode;
754
+ let currentPrevNextUrl = previousNextUrlOverride;
755
+ let redirectCount = redirectDepth;
756
+ let detachedNavigationCommits = false;
757
+ const activeTraversalIntent = navigationKind === "traverse" ? traversalIntent ?? historyController.resolveTraversalIntent(window.history.state) : null;
758
+ const performHardNavigationForScrollIntent = (targetHref) => {
759
+ consumeAppRouterScrollIntent(scrollIntent ?? null);
760
+ const didNavigate = browserNavigationController.performHardNavigation(targetHref);
761
+ if (!didNavigate) clearAppNavigationFailureTarget(targetHref);
762
+ return didNavigate;
763
+ };
764
+ let restoredBfcacheIds = navigationKind === "traverse" ? historyController.readCurrentBfcacheVersionHistoryIds(activeTraversalIntent?.historyState ?? window.history.state) : null;
765
+ const reuseCurrentBfcacheIds = navigationKind !== "traverse" || !historyController.isCacheInvalidationGuarded() && historyController.isCurrentBfcacheVersion(activeTraversalIntent?.historyState ?? window.history.state);
766
+ try {
767
+ const shouldUsePendingRouterState = programmaticTransition;
768
+ if (shouldUsePendingRouterState && hasBrowserRouterState()) pendingRouterState = beginPendingBrowserRouterState();
769
+ else {
770
+ await waitForBrowserRouterStateReady();
771
+ if (!browserNavigationController.isCurrentNavigation(navId)) return;
772
+ if (shouldUsePendingRouterState) pendingRouterState = beginPendingBrowserRouterState();
773
+ }
774
+ while (true) {
775
+ const url = new URL(currentHref, window.location.origin);
776
+ const requestState = getRequestState(navigationKind, url.pathname, currentPrevNextUrl, activeTraversalIntent?.historyState);
777
+ const requestInterceptionContext = requestState.interceptionContext;
778
+ const requestPreviousNextUrl = requestState.previousNextUrl;
779
+ if (navigationKind === "refresh") historyController.syncCurrentHistoryStatePreviousNextUrl(requestPreviousNextUrl, getBrowserRouterState().bfcacheIds);
780
+ setPendingPathname(url.pathname, navId);
781
+ const routerStateAtNavStart = getBrowserRouterState();
782
+ const elementsAtNavStart = routerStateAtNavStart.elements;
783
+ const mountedSlotsHeader = getMountedSlotIdsHeader(elementsAtNavStart);
784
+ const earlyIntentDecision = navigationKind === "navigate" ? navigationPlanner.classifyEarlyNavigationIntent({
785
+ basePath: __basePath,
786
+ currentHref: clientNavigationSnapshotHref(routerStateAtNavStart.navigationSnapshot),
787
+ mode: "push",
788
+ scroll: false,
789
+ targetHref: url.href
790
+ }) : null;
791
+ const shouldBypassNavigationCache = earlyIntentDecision?.kind === "flightNavigation" && earlyIntentDecision.bypassNavigationCache;
792
+ const requestHeaders = createRscRequestHeaders({
793
+ interceptionContext: requestInterceptionContext,
794
+ mountedSlotsHeader,
795
+ renderMode: navigationKind === "refresh" ? APP_RSC_RENDER_MODE_REFRESH_PRESERVE_UI : void 0
796
+ });
797
+ const rscUrl = await createRscRequestUrl(url.pathname + url.search, requestHeaders);
798
+ const visitedResponseCandidate = shouldBypassNavigationCache ? {
799
+ cacheKey: AppElementsWire.encodeCacheKey(rscUrl, requestInterceptionContext),
800
+ entry: null,
801
+ facts: {
802
+ candidate: "missing",
803
+ navigationKind
804
+ }
805
+ } : readVisitedResponseCacheCandidate(rscUrl, requestInterceptionContext, mountedSlotsHeader, navigationKind);
806
+ const cachedRoute = applyVisitedResponseCacheCandidateDecision(visitedResponseCandidate, navigationPlanner.classifyVisitedResponseCacheCandidate(visitedResponseCandidate.facts));
807
+ const visitedResponse = cachedRoute === null ? { status: "unavailable" } : { status: "available" };
808
+ const prefetchProbeDecision = navigationPlanner.classifyNavigationPrefetchProbe({
809
+ bypassNavigationCache: shouldBypassNavigationCache,
810
+ navigationKind,
811
+ visitedResponse
812
+ });
813
+ let routeManifest = navigationKind === "navigate" ? getBrowserRouteManifest() : null;
814
+ const hasPrefetchCandidate = prefetchProbeDecision.kind === "probe" && hasPrefetchCacheEntryForNavigation(rscUrl, requestInterceptionContext, mountedSlotsHeader, { notifyInvalidation: false });
815
+ const reuseDecision = navigationPlanner.classifyNavigationReuse({
816
+ bypassNavigationCache: shouldBypassNavigationCache,
817
+ navigationKind,
818
+ optimisticRouteShell: routeManifest === null ? {
819
+ reason: "routeManifestMissing",
820
+ status: "unavailable"
821
+ } : { status: "available" },
822
+ prefetch: hasPrefetchCandidate ? { status: "available" } : { status: "unavailable" },
823
+ targetHref: currentHref,
824
+ visitedResponse
825
+ });
826
+ if (reuseDecision.kind === "reuseVisitedResponse" && cachedRoute) {
827
+ const cachedFetchDecision = navigationPlanner.classifyRscFetchResult({
828
+ clientCompatibilityId: CLIENT_RSC_COMPATIBILITY_ID,
829
+ compatibilityIdHeader: cachedRoute.response.compatibilityIdHeader ?? null,
830
+ currentHref,
831
+ effectiveHistoryUpdateMode: currentHistoryMode ?? "replace",
832
+ hasBody: true,
833
+ isRscContentType: true,
834
+ origin: window.location.origin,
835
+ redirectDepth: redirectCount,
836
+ requestPreviousNextUrl,
837
+ responseOk: true,
838
+ responseUrl: cachedRoute.response.url,
839
+ source: "cached",
840
+ streamedRedirectTarget: null
841
+ });
842
+ if (cachedFetchDecision.kind === "hardNavigate") {
843
+ if (cachedFetchDecision.reason === "redirectDepthExhausted") console.error("[vinext] Too many RSC redirects — aborting navigation to prevent infinite loop.");
844
+ performHardNavigationForScrollIntent(cachedFetchDecision.url);
845
+ return;
846
+ }
847
+ if (cachedFetchDecision.kind === "followRedirect") {
848
+ if (navigationKind === "traverse") restoredBfcacheIds = null;
849
+ currentHref = cachedFetchDecision.redirect.href;
850
+ currentHistoryMode = cachedFetchDecision.redirect.historyUpdateMode;
851
+ currentPrevNextUrl = cachedFetchDecision.redirect.previousNextUrl;
852
+ redirectCount = cachedFetchDecision.redirect.redirectDepth;
853
+ continue;
854
+ }
855
+ if (!browserNavigationController.isCurrentNavigation(navId)) return;
856
+ const cachedParams = cachedRoute.params;
857
+ const cachedNavigationSnapshot = createClientNavigationRenderSnapshot(currentHref, cachedParams);
858
+ const cachedPayload = decodeAppElementsPromise(createFromFetch(Promise.resolve(restoreRscResponse(cachedRoute.response))));
859
+ if (!browserNavigationController.isCurrentNavigation(navId)) return;
860
+ 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, reuseCurrentBfcacheIds, visibleCommitMode) === "no-commit") {
861
+ deleteVisitedResponse(rscUrl, requestInterceptionContext);
862
+ continue;
863
+ }
864
+ return;
865
+ }
866
+ let navResponse;
867
+ let navResponseExpiresAt;
868
+ let navResponseUrl = null;
869
+ let fallbackReuseDecision = reuseDecision;
870
+ if (reuseDecision.kind === "consumePrefetch") {
871
+ const prefetchedResponse = await consumePrefetchResponseForNavigation(rscUrl, requestInterceptionContext, mountedSlotsHeader, { shouldConsume: () => browserNavigationController.isCurrentNavigation(navId) });
872
+ if (!browserNavigationController.isCurrentNavigation(navId)) return;
873
+ if (prefetchedResponse) {
874
+ navResponse = restoreRscResponse(prefetchedResponse, false);
875
+ navResponseExpiresAt = prefetchedResponse.expiresAt;
876
+ navResponseUrl = prefetchedResponse.url;
877
+ }
878
+ if (!navResponse) {
879
+ routeManifest = navigationKind === "navigate" ? getBrowserRouteManifest() : null;
880
+ fallbackReuseDecision = navigationPlanner.classifyNavigationReuse({
881
+ bypassNavigationCache: shouldBypassNavigationCache,
882
+ navigationKind,
883
+ optimisticRouteShell: routeManifest === null ? {
884
+ reason: "routeManifestMissing",
885
+ status: "unavailable"
886
+ } : { status: "available" },
887
+ prefetch: { status: "unavailable" },
888
+ targetHref: currentHref,
889
+ visitedResponse: { status: "unavailable" }
890
+ });
891
+ }
892
+ }
893
+ if (!navResponse && fallbackReuseDecision.kind === "attemptOptimisticRouteShell") {
894
+ await learnOptimisticRouteTemplatesFromPrefetchCache({
895
+ interceptionContext: requestInterceptionContext,
896
+ mountedSlotsHeader,
897
+ routeManifest
898
+ });
899
+ if (!browserNavigationController.isCurrentNavigation(navId)) return;
900
+ if (routeManifest !== null) {
901
+ const optimisticPayload = resolveOptimisticNavigationPayload({
902
+ basePath: __basePath,
903
+ href: currentHref,
904
+ interceptionContext: requestInterceptionContext,
905
+ mountedSlotsHeader,
906
+ routeManifest,
907
+ templates: optimisticRouteTemplates
908
+ });
909
+ if (optimisticPayload !== null) {
910
+ detachedNavigationCommits = true;
911
+ const optimisticNavigationSnapshot = createClientNavigationRenderSnapshot(currentHref, optimisticPayload.params);
912
+ 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, reuseCurrentBfcacheIds, visibleCommitMode).catch((error) => {
913
+ if (browserNavigationController.isCurrentNavigation(navId)) console.error("[vinext] Optimistic RSC navigation error:", error);
914
+ });
915
+ }
916
+ }
917
+ }
918
+ if (!navResponse) {
919
+ if (navigationKind === "navigate") {
920
+ const clientReuseManifestHeader = createClientReuseManifestHeaderFromVisibleAppState(routerStateAtNavStart);
921
+ if (clientReuseManifestHeader !== null) requestHeaders.set(VINEXT_CLIENT_REUSE_MANIFEST_HEADER, clientReuseManifestHeader);
922
+ }
923
+ navResponse = await fetch(rscUrl, {
924
+ headers: requestHeaders,
925
+ credentials: "include",
926
+ signal: navigationAbortController.signal
927
+ });
928
+ }
929
+ if (!browserNavigationController.isCurrentNavigation(navId)) return;
930
+ const navContentType = navResponse.headers.get("content-type") ?? "";
931
+ const streamedRedirectTarget = navResponse.headers.get(VINEXT_RSC_REDIRECT_HEADER);
932
+ if (blockDangerousStreamedRscRedirect(navResponse, streamedRedirectTarget)) return;
933
+ const liveFetchDecision = navigationPlanner.classifyRscFetchResult({
934
+ clientCompatibilityId: CLIENT_RSC_COMPATIBILITY_ID,
935
+ compatibilityIdHeader: navResponse.headers.get(VINEXT_RSC_COMPATIBILITY_ID_HEADER),
936
+ currentHref,
937
+ effectiveHistoryUpdateMode: currentHistoryMode ?? "replace",
938
+ hasBody: navResponse.body !== null,
939
+ isRscContentType: navContentType.startsWith(VINEXT_RSC_CONTENT_TYPE),
940
+ origin: window.location.origin,
941
+ redirectDepth: redirectCount,
942
+ requestPreviousNextUrl,
943
+ responseOk: navResponse.ok,
944
+ responseUrl: navResponseUrl ?? navResponse.url,
945
+ source: "live",
946
+ streamedRedirectTarget
947
+ });
948
+ if (liveFetchDecision.kind === "hardNavigate") {
949
+ if (liveFetchDecision.discardBody) navResponse.body?.cancel().catch(() => {});
950
+ if (liveFetchDecision.reason === "redirectDepthExhausted") console.error("[vinext] Too many RSC redirects — aborting navigation to prevent infinite loop.");
951
+ if (liveFetchDecision.reason === "streamedRedirectLoop") console.error("[vinext] RSC streamed redirect resolved to the current URL — aborting navigation to prevent infinite loop.");
952
+ performHardNavigationForScrollIntent(liveFetchDecision.url);
953
+ return;
954
+ }
955
+ if (liveFetchDecision.kind === "followRedirect") {
956
+ if (liveFetchDecision.discardBody) navResponse.body?.cancel().catch(() => {});
957
+ if (navigationKind === "traverse") restoredBfcacheIds = null;
958
+ currentHref = liveFetchDecision.redirect.href;
959
+ currentHistoryMode = liveFetchDecision.redirect.historyUpdateMode;
960
+ currentPrevNextUrl = liveFetchDecision.redirect.previousNextUrl;
961
+ redirectCount = liveFetchDecision.redirect.redirectDepth;
962
+ continue;
963
+ }
964
+ const navParams = parseEncodedJsonHeader(navResponse.headers.get("X-Vinext-Params")) ?? {};
965
+ const navigationSnapshot = createClientNavigationRenderSnapshot(currentHref, navParams);
966
+ const navBody = navResponse.body;
967
+ if (!navBody) return;
968
+ const [reactBranch, cacheBranch] = navBody.tee();
969
+ const reactResponse = new Response(reactBranch, {
970
+ status: navResponse.status,
971
+ headers: navResponse.headers
972
+ });
973
+ const cacheBufferPromise = new Response(cacheBranch).arrayBuffer();
974
+ cacheBufferPromise.catch(() => {});
975
+ if (!browserNavigationController.isCurrentNavigation(navId)) return;
976
+ const rscPayload = decodeAppElementsPromise(createFromFetch(Promise.resolve(reactResponse)));
977
+ if (!browserNavigationController.isCurrentNavigation(navId)) return;
978
+ 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, reuseCurrentBfcacheIds, visibleCommitMode) !== "committed") return;
979
+ if (!browserNavigationController.isCurrentNavigation(navId)) return;
980
+ try {
981
+ const renderedElements = await rscPayload;
982
+ const metadata = AppElementsWire.readMetadata(renderedElements);
983
+ if (!isCacheRestorableAppPayloadMetadata(metadata)) {
984
+ cacheBufferPromise.catch(() => {});
985
+ return;
986
+ }
987
+ const cacheBuffer = await cacheBufferPromise;
988
+ storeVisitedResponseSnapshot(rscUrl, resolveVisitedResponseInterceptionContext(requestInterceptionContext, metadata.interceptionContext), {
989
+ ...createCachedRscResponseSnapshot(navResponse, cacheBuffer, navResponseUrl),
990
+ ...navResponseExpiresAt !== void 0 ? { expiresAt: navResponseExpiresAt } : {},
991
+ mountedSlotsHeader: getMountedSlotIdsHeader(renderedElements)
992
+ }, navParams);
993
+ } catch {}
994
+ return;
995
+ }
996
+ } catch (error) {
997
+ if (!browserNavigationController.isCurrentNavigation(navId)) return;
998
+ if (!isPageUnloading) console.error("[vinext] RSC navigation error:", error);
999
+ performHardNavigationForScrollIntent(navigationPlanner.classifyRscNavigationError({ currentHref }).url);
1000
+ } finally {
1001
+ if (activeNavigationAbortController === navigationAbortController) activeNavigationAbortController = null;
1002
+ browserNavigationController.finalizeNavigation(navId, pendingRouterState);
1003
+ discardedServerActionRefreshScheduler.markNavigationSettled();
1004
+ }
1005
+ }
1006
+ });
1007
+ const handlePopstate = createPopstateRestoreHandler({
1008
+ getActiveNavigationId: browserNavigationController.getActiveNavigationId.bind(browserNavigationController),
1009
+ getPendingNavigation: () => window.__VINEXT_RSC_PENDING__,
1010
+ getNavigate: () => getNavigationRuntime()?.functions.navigate,
1011
+ isCurrentNavigation: browserNavigationController.isCurrentNavigation.bind(browserNavigationController),
1012
+ notifyAppRouterTransitionStart: (href) => {
1013
+ notifyAppRouterTransitionStart(href, "traverse");
1014
+ },
1015
+ restorePopstateScrollPosition,
1016
+ setPendingNavigation: (pendingNavigation) => {
1017
+ window.__VINEXT_RSC_PENDING__ = pendingNavigation;
1018
+ },
1019
+ shouldSkipScrollRestore: (navId) => synchronousPopstateScrollRestoreNavigationId === navId
1020
+ });
1021
+ window.addEventListener("popstate", (event) => {
1022
+ const href = window.location.href;
1023
+ if (isSameAppRoutePopstateTarget(href)) {
1024
+ notifyAppRouterTransitionStart(href, "traverse");
1025
+ historyController.commitTraversalIndexFromHistoryState(event.state);
1026
+ restorePopstateScrollPosition(event.state);
1027
+ return;
1028
+ }
1029
+ handlePopstate(event);
1030
+ if (restoreHistoryStateSnapshot(event.state)) restoreSynchronousPopstateScrollPosition({
1031
+ getActiveNavigationId: () => browserNavigationController.getActiveNavigationId(),
1032
+ isCurrentNavigation: (navId) => browserNavigationController.isCurrentNavigation(navId),
1033
+ markScrollRestoreConsumed: (navId) => {
1034
+ synchronousPopstateScrollRestoreNavigationId = navId;
1035
+ },
1036
+ restorePopstateScrollPosition
1037
+ }, event.state);
1038
+ });
1039
+ if (import.meta.hot) {
1040
+ const applyRscHmrUpdate = async (updateId) => {
1041
+ if (updateId !== latestRscHmrUpdateId) return;
1042
+ if (document.documentElement.id === "__next_error__") {
1043
+ window.location.reload();
1044
+ return;
1045
+ }
1046
+ if (browserRouterStateHasEverCommitted && !browserNavigationController.hasBrowserRouterState()) {
1047
+ window.location.reload();
1048
+ return;
1049
+ }
1050
+ await waitForBrowserRouterStateReady();
1051
+ if (updateId !== latestRscHmrUpdateId) return;
1052
+ if (!browserNavigationController.hasBrowserRouterState()) return;
1053
+ clearClientNavigationCaches();
1054
+ const navigationSnapshot = createClientNavigationRenderSnapshot(window.location.href, latestClientParams);
1055
+ dismissOverlay();
1056
+ const hmrHeaders = createRscRequestHeaders();
1057
+ await browserNavigationController.hmrReplaceTree(decodeAppElementsPromise(createFromFetch(fetch(await createRscRequestUrl(window.location.pathname + window.location.search, hmrHeaders), { headers: hmrHeaders }))), navigationSnapshot);
1058
+ };
1059
+ const handleRscUpdate = async (updateId) => {
1060
+ try {
1061
+ await waitForRscHmrSettle();
1062
+ await applyRscHmrUpdate(updateId);
1063
+ } catch (error) {
1064
+ console.error("[vinext] RSC HMR error:", error);
1065
+ }
1066
+ };
1067
+ import.meta.hot.on("rsc:update", () => {
1068
+ handleRscUpdate(++latestRscHmrUpdateId);
1069
+ });
1070
+ }
1071
+ }
1072
+ if (typeof document !== "undefined") {
1073
+ installWindowNext({
1074
+ appDir: true,
1075
+ router: appRouterInstance
1076
+ });
1077
+ window.addEventListener("pagehide", () => {
1078
+ isPageUnloading = true;
1079
+ });
1080
+ window.addEventListener("pageshow", (event) => {
1081
+ isPageUnloading = false;
1082
+ if (event.persisted) mpaNavigationScheduler.reset();
1083
+ });
1084
+ main();
1085
+ }
1086
+ //#endregion
1087
+ export {};