vinext 1.2.1 → 1.3.1

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 (509) hide show
  1. package/README.md +12 -9
  2. package/dist/_virtual/_rolldown/runtime.js +1 -1
  3. package/dist/build/action-owner-manifest.d.ts +3 -2
  4. package/dist/build/action-owner-manifest.js +18 -2
  5. package/dist/build/app-page-static-eligibility.d.ts +17 -1
  6. package/dist/build/app-page-static-eligibility.js +80 -13
  7. package/dist/build/clean-output.d.ts +2 -1
  8. package/dist/build/client-build-config.d.ts +77 -6
  9. package/dist/build/client-build-config.js +176 -12
  10. package/dist/build/client-reference-async.d.ts +48 -0
  11. package/dist/build/client-reference-async.js +123 -0
  12. package/dist/build/client-reference-chunks.d.ts +32 -0
  13. package/dist/build/client-reference-chunks.js +111 -0
  14. package/dist/build/client-reference-groups.d.ts +171 -0
  15. package/dist/build/client-reference-groups.js +572 -0
  16. package/dist/build/css-url-assets.d.ts +2 -1
  17. package/dist/build/google-fonts/fallback-metrics.d.ts +2 -1
  18. package/dist/build/google-fonts/find-font-files-in-css.d.ts +1 -0
  19. package/dist/build/google-fonts/find-font-files-in-css.js +17 -4
  20. package/dist/build/google-fonts/font-metadata.d.ts +2 -1
  21. package/dist/build/google-fonts/validate.d.ts +2 -1
  22. package/dist/build/inline-css.d.ts +2 -1
  23. package/dist/build/layout-classification.d.ts +2 -1
  24. package/dist/build/module-dependency-cache.d.ts +33 -1
  25. package/dist/build/module-dependency-cache.js +51 -1
  26. package/dist/build/next-client-runtime-manifests.d.ts +12 -2
  27. package/dist/build/next-client-runtime-manifests.js +19 -4
  28. package/dist/build/nitro-public-files.d.ts +24 -0
  29. package/dist/build/nitro-public-files.js +60 -0
  30. package/dist/build/pages-client-assets-module.js +1 -1
  31. package/dist/build/precompress.d.ts +2 -1
  32. package/dist/build/precompress.js +1 -1
  33. package/dist/build/prerender-paths.d.ts +2 -1
  34. package/dist/build/prerender-paths.js +5 -2
  35. package/dist/build/prerender-phase.d.ts +2 -1
  36. package/dist/build/prerender-server-pool.js +1 -1
  37. package/dist/build/prerender.d.ts +3 -2
  38. package/dist/build/prerender.js +5 -4
  39. package/dist/build/report.d.ts +2 -1
  40. package/dist/build/route-classification-injector.d.ts +2 -1
  41. package/dist/build/route-classification-manifest.d.ts +2 -1
  42. package/dist/build/run-prerender.d.ts +2 -1
  43. package/dist/build/server-actions-encryption-key.d.ts +24 -0
  44. package/dist/build/server-actions-encryption-key.js +101 -0
  45. package/dist/build/ssr-manifest.d.ts +3 -0
  46. package/dist/build/ssr-manifest.js +34 -2
  47. package/dist/build/standalone.d.ts +2 -1
  48. package/dist/cache/cache-adapters-virtual.d.ts +2 -1
  49. package/dist/cache.js +1 -2
  50. package/dist/check.d.ts +2 -1
  51. package/dist/check.js +4 -0
  52. package/dist/cli-args.d.ts +2 -1
  53. package/dist/cli.js +2 -0
  54. package/dist/client/client-redirect-matcher.js +2 -1
  55. package/dist/client/client-redirects.d.ts +4 -3
  56. package/dist/client/client-redirects.js +2 -1
  57. package/dist/client/client-rewrite-params.d.ts +9 -0
  58. package/dist/client/client-rewrite-params.js +20 -0
  59. package/dist/client/client-rewrites.d.ts +2 -1
  60. package/dist/client/dev-error-overlay-store.d.ts +2 -1
  61. package/dist/client/dev-error-overlay.js +2 -1
  62. package/dist/client/index.js +1 -2
  63. package/dist/client/instrumentation-client-state.js +5 -5
  64. package/dist/client/navigation-runtime.d.ts +28 -3
  65. package/dist/client/navigation-runtime.js +42 -11
  66. package/dist/client/pages-router-link-navigation.d.ts +2 -1
  67. package/dist/client/vinext-next-data.d.ts +25 -2
  68. package/dist/client/window-next.d.ts +2 -1
  69. package/dist/config/config-matchers.d.ts +27 -41
  70. package/dist/config/config-matchers.js +293 -270
  71. package/dist/config/config-source.d.ts +34 -0
  72. package/dist/config/config-source.js +141 -0
  73. package/dist/config/dotenv.d.ts +2 -1
  74. package/dist/config/header-params.d.ts +29 -0
  75. package/dist/config/header-params.js +106 -0
  76. package/dist/config/next-config.d.ts +20 -6
  77. package/dist/config/next-config.js +149 -11
  78. package/dist/config/tsconfig-paths.d.ts +2 -1
  79. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/detector.js +23 -0
  80. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/index.js +2 -0
  81. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/lookup.js +25 -0
  82. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/bmp.js +11 -0
  83. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/cur.js +15 -0
  84. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/dds.js +11 -0
  85. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/gif.js +12 -0
  86. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/heif.js +55 -0
  87. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/icns.js +76 -0
  88. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/ico.js +39 -0
  89. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/index.js +46 -0
  90. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/j2c.js +11 -0
  91. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/jp2.js +21 -0
  92. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/jpg.js +71 -0
  93. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/jxl-stream.js +42 -0
  94. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/jxl.js +46 -0
  95. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/ktx.js +19 -0
  96. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/png.js +28 -0
  97. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/pnm.js +54 -0
  98. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/psd.js +11 -0
  99. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/svg.js +79 -0
  100. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/tga.js +15 -0
  101. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/tiff.js +96 -0
  102. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/utils.js +53 -0
  103. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/webp.js +45 -0
  104. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/utils/bit-reader.js +38 -0
  105. package/dist/deps/.pnpm/ua-parser-js@1.0.35/deps/ua-parser-js/src/ua-parser.js +2 -2
  106. package/dist/entries/app-browser-entry.d.ts +34 -6
  107. package/dist/entries/app-browser-entry.js +103 -40
  108. package/dist/entries/app-rsc-entry.d.ts +4 -1
  109. package/dist/entries/app-rsc-entry.js +131 -66
  110. package/dist/entries/app-rsc-manifest.d.ts +12 -1
  111. package/dist/entries/app-rsc-manifest.js +73 -1
  112. package/dist/entries/app-ssr-entry.d.ts +4 -1
  113. package/dist/entries/app-ssr-entry.js +9 -2
  114. package/dist/entries/pages-client-entry.d.ts +1 -0
  115. package/dist/entries/pages-client-entry.js +6 -6
  116. package/dist/entries/pages-entry-helpers.js +1 -2
  117. package/dist/entries/pages-server-entry.d.ts +2 -1
  118. package/dist/entries/pages-server-entry.js +18 -15
  119. package/dist/entries/runtime-entry-module.d.ts +1 -0
  120. package/dist/entries/runtime-entry-module.js +4 -1
  121. package/dist/image/image-adapters-virtual.d.ts +2 -1
  122. package/dist/index.d.ts +11 -0
  123. package/dist/index.js +340 -116
  124. package/dist/init.js +17 -0
  125. package/dist/plugins/client-compile-hints.d.ts +30 -0
  126. package/dist/plugins/client-compile-hints.js +88 -0
  127. package/dist/plugins/client-reference-dedup.d.ts +2 -1
  128. package/dist/plugins/cloudflare-dev-module-urls.d.ts +2 -1
  129. package/dist/plugins/dynamic-preload-metadata.d.ts +3 -1
  130. package/dist/plugins/dynamic-preload-metadata.js +1 -1
  131. package/dist/plugins/environment.d.ts +2 -1
  132. package/dist/plugins/fonts.js +9 -12
  133. package/dist/plugins/ignore-dynamic-requests.d.ts +2 -1
  134. package/dist/plugins/import-meta-url.d.ts +2 -1
  135. package/dist/plugins/og-assets.d.ts +2 -1
  136. package/dist/plugins/og-assets.js +2 -3
  137. package/dist/plugins/optimize-imports.d.ts +27 -3
  138. package/dist/plugins/optimize-imports.js +106 -20
  139. package/dist/plugins/pages-node-externals.d.ts +2 -1
  140. package/dist/plugins/remove-console.d.ts +2 -1
  141. package/dist/plugins/require-condition-resolution.d.ts +2 -1
  142. package/dist/plugins/rsc-client-reference-loaders.d.ts +53 -1
  143. package/dist/plugins/rsc-client-reference-loaders.js +447 -27
  144. package/dist/plugins/rsc-client-shim-excludes.js +2 -0
  145. package/dist/plugins/sass.d.ts +2 -1
  146. package/dist/plugins/strip-server-exports.d.ts +2 -1
  147. package/dist/plugins/styled-jsx.d.ts +2 -1
  148. package/dist/plugins/transform-result.d.ts +2 -1
  149. package/dist/plugins/typeof-window.d.ts +2 -1
  150. package/dist/plugins/use-cache-callable.d.ts +5 -0
  151. package/dist/plugins/use-cache-callable.js +30 -8
  152. package/dist/plugins/worker-image-imports.d.ts +1 -0
  153. package/dist/plugins/worker-image-imports.js +2 -2
  154. package/dist/plugins/worker-use-server.d.ts +2 -1
  155. package/dist/routing/app-route-graph.d.ts +41 -1
  156. package/dist/routing/app-route-graph.js +122 -50
  157. package/dist/routing/browser-route-manifest.d.ts +44 -0
  158. package/dist/routing/browser-route-manifest.js +195 -0
  159. package/dist/routing/hashed-route-patterns.d.ts +4 -0
  160. package/dist/routing/hashed-route-patterns.js +22 -0
  161. package/dist/routing/optimistic-route-trie.d.ts +28 -0
  162. package/dist/routing/optimistic-route-trie.js +102 -0
  163. package/dist/routing/route-matching.d.ts +2 -1
  164. package/dist/routing/route-pattern.d.ts +2 -1
  165. package/dist/routing/route-validation.d.ts +6 -1
  166. package/dist/routing/route-validation.js +26 -10
  167. package/dist/server/accept-encoding.d.ts +2 -1
  168. package/dist/server/app-action-forwarding.d.ts +10 -1
  169. package/dist/server/app-action-forwarding.js +15 -1
  170. package/dist/server/app-bfcache-identity.d.ts +2 -1
  171. package/dist/server/app-browser-action-result.d.ts +2 -1
  172. package/dist/server/app-browser-client-reuse-manifest.d.ts +2 -1
  173. package/dist/server/app-browser-entry.js +175 -64
  174. package/dist/server/app-browser-error.d.ts +5 -2
  175. package/dist/server/app-browser-error.js +7 -2
  176. package/dist/server/app-browser-history-controller.d.ts +2 -1
  177. package/dist/server/app-browser-hydration.d.ts +2 -1
  178. package/dist/server/app-browser-interception-context.d.ts +4 -3
  179. package/dist/server/app-browser-mpa-navigation.d.ts +1 -0
  180. package/dist/server/app-browser-mpa-navigation.js +6 -5
  181. package/dist/server/app-browser-navigation-controller.d.ts +17 -6
  182. package/dist/server/app-browser-navigation-controller.js +103 -36
  183. package/dist/server/app-browser-popstate.d.ts +2 -1
  184. package/dist/server/app-browser-rsc-redirect.d.ts +2 -1
  185. package/dist/server/app-browser-server-action-client.d.ts +2 -1
  186. package/dist/server/app-browser-state.d.ts +2 -2
  187. package/dist/server/app-browser-state.js +1 -1
  188. package/dist/server/app-browser-stream.d.ts +2 -1
  189. package/dist/server/app-browser-visible-commit.d.ts +6 -5
  190. package/dist/server/app-client-reference-manifest.d.ts +31 -0
  191. package/dist/server/app-client-reference-manifest.js +46 -0
  192. package/dist/server/app-client-reference-preloader.d.ts +45 -2
  193. package/dist/server/app-client-reference-preloader.js +48 -10
  194. package/dist/server/app-elements-wire.d.ts +2 -1
  195. package/dist/server/app-elements.d.ts +2 -0
  196. package/dist/server/app-elements.js +3 -1
  197. package/dist/server/app-fallback-renderer.d.ts +9 -2
  198. package/dist/server/app-fallback-renderer.js +6 -2
  199. package/dist/server/app-history-state.d.ts +2 -1
  200. package/dist/server/app-inline-css-client.d.ts +2 -1
  201. package/dist/server/app-layout-param-observation.d.ts +2 -1
  202. package/dist/server/app-metadata-tracing.d.ts +2 -1
  203. package/dist/server/app-middleware.d.ts +6 -0
  204. package/dist/server/app-middleware.js +8 -10
  205. package/dist/server/app-optimistic-routing.d.ts +26 -11
  206. package/dist/server/app-optimistic-routing.js +38 -96
  207. package/dist/server/app-page-boundary-render.d.ts +20 -2
  208. package/dist/server/app-page-boundary-render.js +229 -39
  209. package/dist/server/app-page-boundary.d.ts +34 -5
  210. package/dist/server/app-page-boundary.js +40 -7
  211. package/dist/server/app-page-cache-finalizer.d.ts +2 -1
  212. package/dist/server/app-page-cache-finalizer.js +1 -1
  213. package/dist/server/app-page-cache-render.d.ts +10 -2
  214. package/dist/server/app-page-cache-render.js +15 -2
  215. package/dist/server/app-page-cache.js +2 -2
  216. package/dist/server/app-page-dispatch.d.ts +34 -1
  217. package/dist/server/app-page-dispatch.js +165 -34
  218. package/dist/server/app-page-element-builder.d.ts +17 -1
  219. package/dist/server/app-page-element-builder.js +187 -66
  220. package/dist/server/app-page-execution.d.ts +28 -1
  221. package/dist/server/app-page-execution.js +114 -5
  222. package/dist/server/app-page-head.d.ts +95 -3
  223. package/dist/server/app-page-head.js +307 -152
  224. package/dist/server/app-page-http-access-fallback-metadata.d.ts +48 -2
  225. package/dist/server/app-page-http-access-fallback-metadata.js +76 -1
  226. package/dist/server/app-page-method.d.ts +2 -1
  227. package/dist/server/app-page-probe.d.ts +2 -1
  228. package/dist/server/app-page-render-identity.d.ts +2 -1
  229. package/dist/server/app-page-render.d.ts +7 -1
  230. package/dist/server/app-page-render.js +38 -11
  231. package/dist/server/app-page-request.d.ts +14 -1
  232. package/dist/server/app-page-request.js +1 -1
  233. package/dist/server/app-page-route-wiring.d.ts +52 -2
  234. package/dist/server/app-page-route-wiring.js +197 -47
  235. package/dist/server/app-page-rsc-render-status.d.ts +3 -1
  236. package/dist/server/app-page-rsc-render-status.js +1 -0
  237. package/dist/server/app-page-search-params-observation.d.ts +8 -6
  238. package/dist/server/app-page-search-params-observation.js +16 -11
  239. package/dist/server/app-page-segment-plan.d.ts +2 -1
  240. package/dist/server/app-page-stream.d.ts +38 -1
  241. package/dist/server/app-page-stream.js +24 -4
  242. package/dist/server/app-pages-bridge.d.ts +4 -2
  243. package/dist/server/app-pages-bridge.js +11 -7
  244. package/dist/server/app-ppr-fallback-shell-render.d.ts +2 -1
  245. package/dist/server/app-ppr-fallback-shell.d.ts +2 -1
  246. package/dist/server/app-prerender-endpoints.d.ts +2 -1
  247. package/dist/server/app-prerender-static-params.d.ts +2 -1
  248. package/dist/server/app-prerender-static-params.js +3 -2
  249. package/dist/server/app-render-dependency.d.ts +11 -1
  250. package/dist/server/app-render-dependency.js +65 -6
  251. package/dist/server/app-request-stage-independent-entry.d.ts +2 -1
  252. package/dist/server/app-request-stage-independent-entry.js +2 -2
  253. package/dist/server/app-response-stage-entry.d.ts +2 -1
  254. package/dist/server/app-response-stage-entry.js +3 -3
  255. package/dist/server/app-route-handler-cache.d.ts +2 -1
  256. package/dist/server/app-route-handler-dispatch.d.ts +2 -1
  257. package/dist/server/app-route-handler-dispatch.js +4 -2
  258. package/dist/server/app-route-handler-execution.d.ts +4 -1
  259. package/dist/server/app-route-handler-execution.js +9 -2
  260. package/dist/server/app-route-handler-middleware-context.d.ts +2 -1
  261. package/dist/server/app-route-handler-middleware-context.js +3 -3
  262. package/dist/server/app-route-handler-response.d.ts +4 -2
  263. package/dist/server/app-route-handler-response.js +2 -2
  264. package/dist/server/app-route-handler-runtime.d.ts +4 -1
  265. package/dist/server/app-route-handler-runtime.js +20 -3
  266. package/dist/server/app-route-module-loader.d.ts +18 -1
  267. package/dist/server/app-route-module-loader.js +15 -6
  268. package/dist/server/app-route-tree-prefetch.d.ts +2 -1
  269. package/dist/server/app-route-tree.d.ts +20 -0
  270. package/dist/server/app-route-tree.js +18 -0
  271. package/dist/server/app-router-entry.js +2 -2
  272. package/dist/server/app-rsc-combined-handler.js +8 -1
  273. package/dist/server/app-rsc-error-handler.d.ts +2 -1
  274. package/dist/server/app-rsc-errors.d.ts +9 -1
  275. package/dist/server/app-rsc-errors.js +9 -2
  276. package/dist/server/app-rsc-handler.d.ts +6 -2
  277. package/dist/server/app-rsc-handler.js +152 -140
  278. package/dist/server/app-rsc-response-finalizer.d.ts +7 -1
  279. package/dist/server/app-rsc-response-finalizer.js +4 -1
  280. package/dist/server/app-rsc-response-stage.js +3 -1
  281. package/dist/server/app-rsc-route-matching.d.ts +39 -1
  282. package/dist/server/app-rsc-route-matching.js +25 -1
  283. package/dist/server/app-segment-config.d.ts +2 -1
  284. package/dist/server/app-segment-config.js +1 -14
  285. package/dist/server/app-server-action-execution.d.ts +25 -7
  286. package/dist/server/app-server-action-execution.js +53 -59
  287. package/dist/server/app-ssr-entry.d.ts +12 -0
  288. package/dist/server/app-ssr-entry.js +104 -48
  289. package/dist/server/app-ssr-error-meta.d.ts +2 -1
  290. package/dist/server/app-ssr-search-params-gate.d.ts +2 -1
  291. package/dist/server/app-ssr-stream.d.ts +29 -10
  292. package/dist/server/app-ssr-stream.js +311 -67
  293. package/dist/server/app-static-generation.d.ts +2 -1
  294. package/dist/server/app-streamed-client-references.d.ts +39 -0
  295. package/dist/server/app-streamed-client-references.js +156 -0
  296. package/dist/server/app-visited-response-cache.d.ts +2 -1
  297. package/dist/server/app-worker-stages.d.ts +2 -1
  298. package/dist/server/artifact-compatibility.d.ts +2 -1
  299. package/dist/server/bfcache-identity.d.ts +2 -1
  300. package/dist/server/cache-headers.d.ts +2 -1
  301. package/dist/server/cacheability-request.d.ts +2 -1
  302. package/dist/server/client-reuse-manifest.d.ts +2 -1
  303. package/dist/server/config-headers.d.ts +2 -1
  304. package/dist/server/config-headers.js +12 -3
  305. package/dist/server/csp.d.ts +2 -1
  306. package/dist/server/default-global-not-found-module.d.ts +2 -1
  307. package/dist/server/default-http-access-fallback-modules.d.ts +33 -0
  308. package/dist/server/default-http-access-fallback-modules.js +31 -0
  309. package/dist/server/defer-until-stream-consumed.d.ts +34 -0
  310. package/dist/server/defer-until-stream-consumed.js +154 -21
  311. package/dist/server/dev-lockfile.d.ts +32 -2
  312. package/dist/server/dev-lockfile.js +46 -2
  313. package/dist/server/dev-module-runner.d.ts +2 -1
  314. package/dist/server/dev-server.js +10 -3
  315. package/dist/server/fetch-handler.js +1 -2
  316. package/dist/server/file-based-metadata.d.ts +2 -1
  317. package/dist/server/framework-tracer.d.ts +2 -1
  318. package/dist/server/html.d.ts +1 -0
  319. package/dist/server/html.js +19 -1
  320. package/dist/server/http-conditional.d.ts +2 -1
  321. package/dist/server/http-error-responses.d.ts +2 -1
  322. package/dist/server/implicit-tags.d.ts +2 -1
  323. package/dist/server/isolate-shared-promise.d.ts +10 -0
  324. package/dist/server/isolate-shared-promise.js +33 -0
  325. package/dist/server/isr-cache.js +3 -2
  326. package/dist/server/metadata-route-build-data.d.ts +2 -1
  327. package/dist/server/metadata-route-build-data.js +1 -1
  328. package/dist/server/metadata-route-response.d.ts +2 -1
  329. package/dist/server/metadata-route-response.js +1 -1
  330. package/dist/server/metadata-routes.d.ts +2 -1
  331. package/dist/server/middleware-matcher-pattern.d.ts +0 -1
  332. package/dist/server/middleware-matcher-pattern.js +11 -140
  333. package/dist/server/middleware-matcher.js +5 -6
  334. package/dist/server/middleware-response-headers.d.ts +31 -0
  335. package/dist/server/middleware-response-headers.js +57 -1
  336. package/dist/server/middleware-runtime.d.ts +2 -1
  337. package/dist/server/middleware-runtime.js +26 -13
  338. package/dist/server/navigation-planner.d.ts +2 -2
  339. package/dist/server/navigation-trace.d.ts +2 -1
  340. package/dist/server/next-error-digest.d.ts +2 -1
  341. package/dist/server/nitro-public-files-plugin.d.ts +39 -0
  342. package/dist/server/nitro-public-files-plugin.js +106 -0
  343. package/dist/server/nitro-public-files.d.ts +22 -0
  344. package/dist/server/nitro-public-files.js +39 -0
  345. package/dist/server/opentelemetry-api.d.ts +2 -1
  346. package/dist/server/operation-token.d.ts +2 -1
  347. package/dist/server/pages-api-route.d.ts +2 -1
  348. package/dist/server/pages-asset-tags.d.ts +7 -1
  349. package/dist/server/pages-asset-tags.js +9 -2
  350. package/dist/server/pages-body-parser-config.d.ts +2 -1
  351. package/dist/server/pages-client-assets.d.ts +8 -1
  352. package/dist/server/pages-data-route.d.ts +2 -1
  353. package/dist/server/pages-document-asset-props.d.ts +2 -1
  354. package/dist/server/pages-document-initial-props.d.ts +2 -1
  355. package/dist/server/pages-execution-tracing.d.ts +2 -1
  356. package/dist/server/pages-execution-tracing.js +1 -1
  357. package/dist/server/pages-get-initial-props.d.ts +2 -1
  358. package/dist/server/pages-i18n.d.ts +18 -0
  359. package/dist/server/pages-i18n.js +18 -2
  360. package/dist/server/pages-node-compat.d.ts +5 -3
  361. package/dist/server/pages-node-compat.js +35 -16
  362. package/dist/server/pages-page-data.d.ts +7 -1
  363. package/dist/server/pages-page-data.js +35 -12
  364. package/dist/server/pages-page-handler.d.ts +3 -2
  365. package/dist/server/pages-page-handler.js +16 -7
  366. package/dist/server/pages-page-method.d.ts +2 -1
  367. package/dist/server/pages-page-response.d.ts +2 -1
  368. package/dist/server/pages-preview.d.ts +2 -1
  369. package/dist/server/pages-readiness.d.ts +2 -1
  370. package/dist/server/pages-request-pipeline.d.ts +8 -2
  371. package/dist/server/pages-request-pipeline.js +35 -40
  372. package/dist/server/pages-request-stage-entry.d.ts +2 -1
  373. package/dist/server/pages-request-stage-entry.js +16 -6
  374. package/dist/server/pages-response-stage-entry.d.ts +2 -1
  375. package/dist/server/pages-response-stage-entry.js +1 -1
  376. package/dist/server/pages-revalidate.js +1 -0
  377. package/dist/server/pages-route-data-kind.d.ts +2 -1
  378. package/dist/server/pages-router-entry.js +1 -1
  379. package/dist/server/prerender-cache-life-header.d.ts +2 -1
  380. package/dist/server/prerender-route-params.d.ts +2 -1
  381. package/dist/server/prod-server.d.ts +2 -2
  382. package/dist/server/prod-server.js +80 -36
  383. package/dist/server/proxy-trust.d.ts +6 -0
  384. package/dist/server/proxy-trust.js +12 -6
  385. package/dist/server/request-log.d.ts +2 -1
  386. package/dist/server/request-pipeline.d.ts +5 -0
  387. package/dist/server/request-pipeline.js +12 -1
  388. package/dist/server/request-tracing.d.ts +2 -1
  389. package/dist/server/request-tracing.js +1 -1
  390. package/dist/server/response-start-tracing.js +7 -29
  391. package/dist/server/rsc-render-stream.d.ts +4 -0
  392. package/dist/server/rsc-render-stream.js +25 -0
  393. package/dist/server/seed-cache.d.ts +2 -1
  394. package/dist/server/seed-cache.js +1 -1
  395. package/dist/server/server-reference-loader.js +10 -1
  396. package/dist/server/static-file-cache.d.ts +2 -1
  397. package/dist/server/static-file-cache.js +16 -3
  398. package/dist/server/static-layout-client-reuse-proof.d.ts +2 -1
  399. package/dist/server/worker-revalidation-context.d.ts +2 -1
  400. package/dist/server/worker-stages.d.ts +2 -1
  401. package/dist/server/worker-utils.js +1 -1
  402. package/dist/shims/app.d.ts +2 -1
  403. package/dist/shims/cache-callable-runtime.d.ts +2 -1
  404. package/dist/shims/cache-handler.d.ts +8 -3
  405. package/dist/shims/cache-handler.js +32 -11
  406. package/dist/shims/cache-request-state.d.ts +40 -3
  407. package/dist/shims/cache-request-state.js +70 -5
  408. package/dist/shims/cache-runtime.js +47 -19
  409. package/dist/shims/cache.d.ts +2 -2
  410. package/dist/shims/cache.js +17 -8
  411. package/dist/shims/caught-not-found-boundaries.d.ts +15 -0
  412. package/dist/shims/caught-not-found-boundaries.js +48 -0
  413. package/dist/shims/cdn-purge-routes.d.ts +25 -0
  414. package/dist/shims/cdn-purge-routes.js +77 -0
  415. package/dist/shims/client-locale.js +2 -1
  416. package/dist/shims/client-page-root.d.ts +2 -1
  417. package/dist/shims/config.d.ts +2 -1
  418. package/dist/shims/default-forbidden.d.ts +4 -0
  419. package/dist/shims/default-forbidden.js +18 -0
  420. package/dist/shims/default-not-found.d.ts +0 -5
  421. package/dist/shims/default-not-found.js +5 -41
  422. package/dist/shims/default-unauthorized.d.ts +4 -0
  423. package/dist/shims/default-unauthorized.js +18 -0
  424. package/dist/shims/dynamic.js +17 -4
  425. package/dist/shims/error-boundary.d.ts +39 -3
  426. package/dist/shims/error-boundary.js +31 -16
  427. package/dist/shims/font-google.js +1 -2
  428. package/dist/shims/font-utils.d.ts +3 -2
  429. package/dist/shims/font-utils.js +5 -3
  430. package/dist/shims/form.js +9 -4
  431. package/dist/shims/http-access-error-fallback.d.ts +7 -0
  432. package/dist/shims/http-access-error-fallback.js +47 -0
  433. package/dist/shims/image-props.d.ts +93 -0
  434. package/dist/shims/image-props.js +323 -0
  435. package/dist/shims/image.d.ts +4 -39
  436. package/dist/shims/image.js +4 -319
  437. package/dist/shims/internal/app-prefetch-fetch-queue.d.ts +22 -2
  438. package/dist/shims/internal/app-prefetch-fetch-queue.js +71 -18
  439. package/dist/shims/internal/app-route-prefetch-policy.d.ts +14 -3
  440. package/dist/shims/internal/app-route-prefetch-policy.js +29 -4
  441. package/dist/shims/internal/cache-context-accessor.d.ts +2 -1
  442. package/dist/shims/internal/client-reference-loader.d.ts +7 -0
  443. package/dist/shims/internal/client-reference-loader.js +91 -0
  444. package/dist/shims/internal/cookie-serialize.d.ts +2 -1
  445. package/dist/shims/internal/cookies.js +1 -2
  446. package/dist/shims/internal/headers-state.d.ts +9 -0
  447. package/dist/shims/internal/headers-state.js +19 -2
  448. package/dist/shims/internal/hybrid-client-route-owner-direct.d.ts +6 -2
  449. package/dist/shims/internal/hybrid-client-route-owner-direct.js +31 -14
  450. package/dist/shims/internal/hybrid-client-route-owner.js +8 -8
  451. package/dist/shims/internal/interpolate-as.d.ts +2 -1
  452. package/dist/shims/internal/pages-data-target.d.ts +2 -1
  453. package/dist/shims/internal/pages-data-url.d.ts +2 -1
  454. package/dist/shims/internal/thenable-well-known-properties.d.ts +2 -1
  455. package/dist/shims/link.js +198 -53
  456. package/dist/shims/metadata.d.ts +32 -11
  457. package/dist/shims/metadata.js +88 -26
  458. package/dist/shims/navigation-errors.d.ts +2 -1
  459. package/dist/shims/navigation.d.ts +23 -3
  460. package/dist/shims/navigation.js +91 -25
  461. package/dist/shims/og.js +35 -10
  462. package/dist/shims/pages-router-runtime.d.ts +2 -1
  463. package/dist/shims/ppr-fallback-shell.d.ts +2 -1
  464. package/dist/shims/request-context.d.ts +13 -0
  465. package/dist/shims/router.js +33 -43
  466. package/dist/shims/server.d.ts +31 -4
  467. package/dist/shims/server.js +58 -10
  468. package/dist/shims/thenable-params.d.ts +6 -1
  469. package/dist/shims/thenable-params.js +11 -2
  470. package/dist/shims/unified-request-context.d.ts +5 -0
  471. package/dist/shims/unified-request-context.js +5 -3
  472. package/dist/typegen.d.ts +2 -1
  473. package/dist/utils/asset-prefix.d.ts +7 -0
  474. package/dist/utils/asset-prefix.js +10 -1
  475. package/dist/utils/client-build-manifest.d.ts +4 -1
  476. package/dist/utils/client-build-manifest.js +20 -6
  477. package/dist/utils/client-entry-manifest.d.ts +13 -0
  478. package/dist/utils/client-entry-manifest.js +20 -1
  479. package/dist/utils/client-reference-chunks.d.ts +45 -0
  480. package/dist/utils/client-reference-chunks.js +30 -0
  481. package/dist/utils/client-runtime-metadata.d.ts +10 -1
  482. package/dist/utils/client-runtime-metadata.js +53 -9
  483. package/dist/utils/compare.d.ts +9 -0
  484. package/dist/utils/compare.js +15 -1
  485. package/dist/utils/lazy-chunks.d.ts +18 -0
  486. package/dist/utils/lazy-chunks.js +27 -1
  487. package/dist/utils/manifest-paths.d.ts +14 -0
  488. package/dist/utils/manifest-paths.js +22 -1
  489. package/dist/utils/middleware-request-headers.d.ts +2 -1
  490. package/dist/utils/path-to-regexp.d.ts +21 -0
  491. package/dist/{server/middleware-path-to-regexp.js → utils/path-to-regexp.js} +14 -11
  492. package/dist/utils/plugin-react-version.d.ts +15 -0
  493. package/dist/utils/plugin-react-version.js +64 -0
  494. package/dist/utils/project.d.ts +2 -1
  495. package/dist/utils/project.js +9 -1
  496. package/dist/utils/public-routes.d.ts +2 -0
  497. package/dist/utils/public-routes.js +18 -7
  498. package/dist/utils/query.d.ts +2 -1
  499. package/dist/utils/sorted-array.d.ts +2 -1
  500. package/dist/utils/vite-cli-invocation.d.ts +2 -1
  501. package/package.json +5 -5
  502. package/dist/deps/.pnpm/image-size@2.0.2/deps/image-size/dist/index.js +0 -808
  503. package/dist/server/default-not-found-module.d.ts +0 -19
  504. package/dist/server/default-not-found-module.js +0 -18
  505. package/dist/server/middleware-path-to-regexp.d.ts +0 -13
  506. package/dist/server/rsc-stream-hints.d.ts +0 -21
  507. package/dist/server/rsc-stream-hints.js +0 -227
  508. package/dist/utils/regex-safety.d.ts +0 -17
  509. package/dist/utils/regex-safety.js +0 -789
@@ -0,0 +1,91 @@
1
+ import { CLIENT_REFERENCE_CHUNK_KIND } from "../../utils/client-reference-chunks.js";
2
+ //#region src/shims/internal/client-reference-loader.ts
3
+ /**
4
+ * Loads App Router client references in production builds from the chunks
5
+ * their Flight rows name, as React's webpack binding does in Next.js. The
6
+ * browser entry names none of those chunks, so its hash doesn't change when a
7
+ * client reference is added or changes.
8
+ *
9
+ * React calls `__webpack_chunk_load__` for each chunk a reference's row names
10
+ * (see server/app-client-reference-manifest.ts), and requires the reference
11
+ * once they load. Its module chunk registers the reference as it evaluates
12
+ * (see plugins/rsc-client-reference-loaders.ts). The other chunks load the way
13
+ * Vite's preload helper loads a dynamic import's dependencies: JS chunks are
14
+ * modulepreloaded, the module chunk evaluates once its stylesheets load, and
15
+ * a failure dispatches `vite:preloadError`.
16
+ */
17
+ const registered = /* @__PURE__ */ new Map();
18
+ function registerClientReference(key, exports) {
19
+ registered.set(key, exports);
20
+ }
21
+ /** What @vitejs/plugin-rsc/browser calls as `clientReferences.default[key]()`. */
22
+ const clientReferences = new Proxy({}, { get(_target, key) {
23
+ if (typeof key !== "string" || key === "then") return void 0;
24
+ return async () => {
25
+ const exports = registered.get(key);
26
+ if (!exports) throw new Error(`client reference not found '${key}'`);
27
+ return exports;
28
+ };
29
+ } });
30
+ function isLinked(href, stylesheet) {
31
+ for (const link of document.getElementsByTagName("link")) if (link.href === href && (!stylesheet || link.rel === "stylesheet")) return true;
32
+ return false;
33
+ }
34
+ function appendLink(url, stylesheet) {
35
+ const href = new URL(url, document.baseURI).href;
36
+ if (isLinked(href, stylesheet)) return null;
37
+ const link = document.createElement("link");
38
+ link.rel = stylesheet ? "stylesheet" : "modulepreload";
39
+ if (!stylesheet) link.as = "script";
40
+ link.crossOrigin = "";
41
+ link.href = href;
42
+ const nonceMeta = document.querySelector("meta[property=csp-nonce]");
43
+ const nonce = nonceMeta?.nonce || nonceMeta?.getAttribute("nonce");
44
+ if (nonce) link.setAttribute("nonce", nonce);
45
+ document.head.appendChild(link);
46
+ return link;
47
+ }
48
+ const stylesheets = /* @__PURE__ */ new Map();
49
+ /**
50
+ * Resolves once the stylesheet loads or fails. React keeps a failed chunk's
51
+ * promise for the rest of the session, so rejecting would fail every client
52
+ * reference that shares the stylesheet, even once the network recovers. As in
53
+ * Next.js, a reference renders without a stylesheet that fails to load, and
54
+ * `vite:preloadError` still lets the app reload the page.
55
+ */
56
+ function loadStylesheet(url) {
57
+ const href = new URL(url, document.baseURI).href;
58
+ let loaded = stylesheets.get(href);
59
+ if (loaded) return loaded;
60
+ const link = appendLink(url, true);
61
+ loaded = link ? new Promise((resolve) => {
62
+ link.addEventListener("load", () => resolve());
63
+ link.addEventListener("error", () => {
64
+ const event = new Event("vite:preloadError", { cancelable: true });
65
+ event.payload = /* @__PURE__ */ new Error(`Unable to preload CSS for ${url}`);
66
+ window.dispatchEvent(event);
67
+ resolve();
68
+ });
69
+ }) : Promise.resolve();
70
+ stylesheets.set(href, loaded);
71
+ return loaded;
72
+ }
73
+ function loadChunk(chunkId) {
74
+ const url = chunkId.slice(1);
75
+ switch (chunkId[0]) {
76
+ case CLIENT_REFERENCE_CHUNK_KIND.module: {
77
+ const [file, ...css] = url.split("\n");
78
+ return Promise.all(css.map(loadStylesheet)).then(() => import(
79
+ /* @vite-ignore */
80
+ file
81
+ ));
82
+ }
83
+ case CLIENT_REFERENCE_CHUNK_KIND.preload:
84
+ appendLink(url, false);
85
+ return Promise.resolve();
86
+ default: return Promise.reject(/* @__PURE__ */ new Error(`[vinext] Unknown client reference chunk '${chunkId}'`));
87
+ }
88
+ }
89
+ globalThis["__webpack_chunk_load__"] = loadChunk;
90
+ //#endregion
91
+ export { clientReferences, registerClientReference };
@@ -44,4 +44,5 @@ export declare function validateCookieAttributeValue(value: string, attributeNam
44
44
  * mutating any internal state) via `validateCookieName`.
45
45
  */
46
46
  export declare function serializeSetCookie(name: string, value: string | null | undefined, options?: SerializeSetCookieOptions): string;
47
- //#endregion
47
+ //#endregion
48
+ export {};
@@ -1,2 +1 @@
1
- import { RequestCookies, ResponseCookies } from "../server.js";
2
- export { RequestCookies, ResponseCookies };
1
+ export { RequestCookies, ResponseCookies } from "../server.js";
@@ -57,10 +57,19 @@ export declare function isRenderDynamicLatched(): boolean;
57
57
  * already latched; check `isRenderDynamicLatched()` first.
58
58
  */
59
59
  export declare function onRenderDynamicLatched(listener: () => void): () => void;
60
+ /**
61
+ * Record an invalid dynamic API use on `state`, keeping the first one, like
62
+ * Next.js's `workStore.invalidDynamicUsageError ??= error`.
63
+ */
64
+ export declare function recordInvalidDynamicUsageError(state: VinextHeadersShimState, error: unknown): void;
60
65
  export declare function markRenderRequestApiUsage(kind: RenderRequestApiKind): void;
61
66
  export declare function throwIfStaticGenerationAccessError(): void;
67
+ /** Whether `error` is the error a `dynamic = "error"` render throws on a dynamic API read. */
68
+ export declare function isStaticGenerationAccessError(error: unknown): error is Error;
62
69
  /** Whether work is executing inside a cache boundary that owns its reuse. */
63
70
  export declare function isInsideAnyCacheScope(): boolean;
71
+ /** The error a dynamic request API throws inside a public "use cache". */
72
+ export declare function createUseCacheAccessError(apiName: string): Error;
64
73
  /**
65
74
  * Throw if the current execution is inside a "use cache" or unstable_cache()
66
75
  * scope. Called by dynamic request APIs (headers, cookies, connection) to
@@ -87,6 +87,14 @@ function propagateInvalidDynamicUsageError(state, error) {
87
87
  if (target.invalidDynamicUsageError == null) target.invalidDynamicUsageError = error;
88
88
  });
89
89
  }
90
+ /**
91
+ * Record an invalid dynamic API use on `state`, keeping the first one, like
92
+ * Next.js's `workStore.invalidDynamicUsageError ??= error`.
93
+ */
94
+ function recordInvalidDynamicUsageError(state, error) {
95
+ state.invalidDynamicUsageError ??= error;
96
+ propagateInvalidDynamicUsageError(state, error);
97
+ }
90
98
  function markRenderRequestApiUsage(kind) {
91
99
  getHeadersShimState().renderRequestApiUsage.add(kind);
92
100
  }
@@ -94,6 +102,11 @@ function throwIfStaticGenerationAccessError() {
94
102
  const accessError = getHeadersShimState().headersContext?.accessError;
95
103
  if (accessError) throw accessError;
96
104
  }
105
+ /** Whether `error` is the error a `dynamic = "error"` render throws on a dynamic API read. */
106
+ function isStaticGenerationAccessError(error) {
107
+ const accessError = getHeadersShimState().headersContext?.accessError;
108
+ return accessError !== void 0 && error === accessError;
109
+ }
97
110
  /** Symbol used by cache-runtime.ts to store the "use cache" ALS on globalThis */
98
111
  const _USE_CACHE_ALS_KEY = Symbol.for("vinext.cacheRuntime.contextAls");
99
112
  /** Symbol used by cache.ts to store the unstable_cache ALS on globalThis */
@@ -121,6 +134,10 @@ function _isInsideUnstableCache() {
121
134
  function isInsideAnyCacheScope() {
122
135
  return _getUseCacheGuardContext() !== null || _isInsideUnstableCache();
123
136
  }
137
+ /** The error a dynamic request API throws inside a public "use cache". */
138
+ function createUseCacheAccessError(apiName) {
139
+ return /* @__PURE__ */ new Error(`\`${apiName}\` cannot be called inside "use cache". If you need this data inside a cached function, call \`${apiName}\` outside and pass the required data as an argument.`);
140
+ }
124
141
  /**
125
142
  * Throw if the current execution is inside a "use cache" or unstable_cache()
126
143
  * scope. Called by dynamic request APIs (headers, cookies, connection) to
@@ -130,7 +147,7 @@ function isInsideAnyCacheScope() {
130
147
  */
131
148
  function throwIfInsideCacheScope(apiName) {
132
149
  if (_isInsidePublicUseCache()) {
133
- const error = /* @__PURE__ */ new Error(`\`${apiName}\` cannot be called inside "use cache". If you need this data inside a cached function, call \`${apiName}\` outside and pass the required data as an argument.`);
150
+ const error = createUseCacheAccessError(apiName);
134
151
  try {
135
152
  const cacheCtx = _getUseCacheGuardContext();
136
153
  if (cacheCtx) cacheCtx.invalidDynamicUsageError = error;
@@ -154,4 +171,4 @@ function getHeadersAccessPhase() {
154
171
  return getHeadersShimState().phase;
155
172
  }
156
173
  //#endregion
157
- export { createRenderDynamicLatch, getHeadersAccessPhase, getHeadersShimState, headersShimAls, isInsideAnyCacheScope, isRenderDynamicLatched, markDynamicUsage, markRenderRequestApiUsage, onRenderDynamicLatched, throwIfInsideCacheScope, throwIfStaticGenerationAccessError };
174
+ export { createRenderDynamicLatch, createUseCacheAccessError, getHeadersAccessPhase, getHeadersShimState, headersShimAls, isInsideAnyCacheScope, isRenderDynamicLatched, isStaticGenerationAccessError, markDynamicUsage, markRenderRequestApiUsage, onRenderDynamicLatched, recordInvalidDynamicUsageError, throwIfInsideCacheScope, throwIfStaticGenerationAccessError };
@@ -3,16 +3,20 @@ import { VinextLinkPrefetchRoute, VinextPagesLinkPrefetchRoute } from "../../cli
3
3
  export type HybridClientOwner = "app" | "document" | "pages";
4
4
  type HybridClientRouteMatches = {
5
5
  appMatch: VinextLinkPrefetchRoute | null;
6
+ /** A Pages Router URL under `/api`, which only API routes serve. */
7
+ pagesApiRequest: boolean;
6
8
  pagesMatch: VinextPagesLinkPrefetchRoute | null;
7
9
  };
8
10
  declare global {
9
11
  interface Window {
12
+ __VINEXT_APP_ROUTE_HANDLERS__?: VinextLinkPrefetchRoute[];
10
13
  __VINEXT_LINK_PREFETCH_ROUTES__?: VinextLinkPrefetchRoute[];
11
14
  __VINEXT_PAGES_LINK_PREFETCH_ROUTES__?: VinextPagesLinkPrefetchRoute[];
12
15
  }
13
16
  }
14
17
  export declare function resolveSameOriginAppPathname(href: string, basePath: string): string | null;
15
18
  export declare function matchDirectHybridClientRoutes(href: string, basePath: string): HybridClientRouteMatches;
16
- export declare function resolveMatchedHybridClientRouteOwner({ appMatch, pagesMatch }: HybridClientRouteMatches): HybridClientOwner | null;
19
+ export declare function resolveMatchedHybridClientRouteOwner({ appMatch, pagesApiRequest, pagesMatch }: HybridClientRouteMatches): HybridClientOwner | null;
17
20
  export declare function resolveDirectHybridClientRouteOwner(href: string, basePath: string): HybridClientOwner | null;
18
- //#endregion
21
+ //#endregion
22
+ export {};
@@ -2,11 +2,11 @@ import { stripBasePath } from "../../utils/base-path.js";
2
2
  import { compareHybridRoutePatterns } from "../../routing/utils.js";
3
3
  import { createRouteTrieCache, matchRouteWithTrie } from "../../routing/route-matching.js";
4
4
  import { getLocalePathPrefix } from "../../utils/domain-locale.js";
5
+ import { hashRoutePathname } from "../../routing/hashed-route-patterns.js";
5
6
  //#region src/shims/internal/hybrid-client-route-owner-direct.ts
6
7
  const appRouteTrieCache = createRouteTrieCache();
8
+ const appRouteHandlerTrieCache = createRouteTrieCache();
7
9
  const pagesRouteTrieCache = createRouteTrieCache();
8
- const pagesPageRoutesCache = /* @__PURE__ */ new WeakMap();
9
- const pagesApiRoutesCache = /* @__PURE__ */ new WeakMap();
10
10
  function patternFromParts(parts) {
11
11
  return "/" + parts.join("/");
12
12
  }
@@ -32,34 +32,51 @@ function resolveSameOriginPathnames(href, basePath) {
32
32
  function resolveSameOriginAppPathname(href, basePath) {
33
33
  return resolveSameOriginPathnames(href, basePath)?.appPathname ?? null;
34
34
  }
35
- function selectPagesRoutes(routes, apiRequest) {
36
- const cache = apiRequest ? pagesApiRoutesCache : pagesPageRoutesCache;
37
- let selected = cache.get(routes);
38
- if (!selected) {
39
- selected = routes.filter((route) => Boolean(route.documentOnly) === apiRequest);
40
- cache.set(routes, selected);
35
+ function patternPartRank(part) {
36
+ if (part === void 0) return 0;
37
+ if (!part.startsWith(":")) return 1;
38
+ if (part.endsWith("+")) return 3;
39
+ if (part.endsWith("*")) return 4;
40
+ return 2;
41
+ }
42
+ /**
43
+ * The route the App router picks when both match the same URL: the first part
44
+ * whose kind differs decides, static > dynamic > catch-all > optional
45
+ * catch-all, as in `routing/route-trie.ts`.
46
+ */
47
+ function preferredAppRoute(page, handler) {
48
+ if (page === null || handler === null) return page ?? handler;
49
+ const length = Math.max(page.patternParts.length, handler.patternParts.length);
50
+ for (let index = 0; index < length; index++) {
51
+ const pageRank = patternPartRank(page.patternParts[index]);
52
+ const handlerRank = patternPartRank(handler.patternParts[index]);
53
+ if (pageRank !== handlerRank) return pageRank < handlerRank ? page : handler;
41
54
  }
42
- return selected;
55
+ return page;
43
56
  }
44
57
  function matchDirectHybridClientRoutes(href, basePath) {
45
58
  const pathnames = resolveSameOriginPathnames(href, basePath);
46
59
  if (pathnames === null) return {
47
60
  appMatch: null,
61
+ pagesApiRequest: false,
48
62
  pagesMatch: null
49
63
  };
50
64
  const appRoutes = window.__VINEXT_LINK_PREFETCH_ROUTES__;
65
+ const appRouteHandlers = window.__VINEXT_APP_ROUTE_HANDLERS__;
51
66
  const pagesRoutes = window.__VINEXT_PAGES_LINK_PREFETCH_ROUTES__;
52
67
  return {
53
- appMatch: appRoutes ? matchRouteWithTrie(pathnames.appPathname, appRoutes, appRouteTrieCache)?.route ?? null : null,
54
- pagesMatch: pagesRoutes ? matchRouteWithTrie(pathnames.pagesPathname, selectPagesRoutes(pagesRoutes, pathnames.pagesApiRequest), pagesRouteTrieCache)?.route ?? null : null
68
+ appMatch: preferredAppRoute(appRoutes ? matchRouteWithTrie(pathnames.appPathname, appRoutes, appRouteTrieCache)?.route ?? null : null, appRouteHandlers?.length ? matchRouteWithTrie(hashRoutePathname(pathnames.appPathname), appRouteHandlers, appRouteHandlerTrieCache)?.route ?? null : null),
69
+ pagesApiRequest: pathnames.pagesApiRequest,
70
+ pagesMatch: pagesRoutes && !pathnames.pagesApiRequest ? matchRouteWithTrie(pathnames.pagesPathname, pagesRoutes, pagesRouteTrieCache)?.route ?? null : null
55
71
  };
56
72
  }
57
- function resolveMatchedHybridClientRouteOwner({ appMatch, pagesMatch }) {
73
+ function resolveMatchedHybridClientRouteOwner({ appMatch, pagesApiRequest, pagesMatch }) {
74
+ if (pagesApiRequest) return appMatch?.isDynamic === false && !appMatch.documentOnly ? "app" : "document";
58
75
  if (appMatch === null && pagesMatch === null) return null;
59
76
  if (pagesMatch === null) return appMatch.documentOnly ? "document" : "app";
60
- if (appMatch === null) return pagesMatch.documentOnly ? "document" : "pages";
77
+ if (appMatch === null) return "pages";
61
78
  const owner = compareHybridRoutePatterns(patternFromParts(pagesMatch.patternParts), pagesMatch.isDynamic, patternFromParts(appMatch.patternParts), appMatch.isDynamic);
62
- return (owner === "app" ? appMatch : pagesMatch).documentOnly ? "document" : owner;
79
+ return owner === "app" && appMatch.documentOnly ? "document" : owner;
63
80
  }
64
81
  function resolveDirectHybridClientRouteOwner(href, basePath) {
65
82
  if (typeof window === "undefined") return null;
@@ -64,23 +64,23 @@ function resolveHybridClientRewriteHref(href, basePath) {
64
64
  didRewrite = true;
65
65
  }
66
66
  let matches = matchDirectHybridClientRoutes(currentHref, basePath);
67
- if ((matches.appMatch === null || matches.appMatch.isDynamic) && (matches.pagesMatch === null || matches.pagesMatch.isDynamic)) for (const rewrite of rewrites.afterFiles) {
67
+ if (!matches.pagesApiRequest && (matches.appMatch === null || matches.appMatch.isDynamic) && (matches.pagesMatch === null || matches.pagesMatch.isDynamic)) for (const rewrite of rewrites.afterFiles) {
68
68
  const afterFilesRewrite = resolveClientRewrite(currentHref, basePath, [rewrite]);
69
69
  if (afterFilesRewrite?.kind === "document") return didRewrite ? currentHref : null;
70
70
  if (afterFilesRewrite?.kind !== "rewrite") continue;
71
71
  currentHref = afterFilesRewrite.href;
72
72
  didRewrite = true;
73
73
  matches = matchDirectHybridClientRoutes(currentHref, basePath);
74
- if (matches.appMatch || matches.pagesMatch) break;
74
+ if (matches.pagesApiRequest || matches.appMatch || matches.pagesMatch) break;
75
75
  }
76
- if (matches.appMatch === null && matches.pagesMatch === null) for (const rewrite of rewrites.fallback) {
76
+ if (!matches.pagesApiRequest && matches.appMatch === null && matches.pagesMatch === null) for (const rewrite of rewrites.fallback) {
77
77
  const fallbackRewrite = resolveClientRewrite(currentHref, basePath, [rewrite]);
78
78
  if (fallbackRewrite?.kind === "document") return didRewrite ? currentHref : null;
79
79
  if (fallbackRewrite?.kind !== "rewrite") continue;
80
80
  currentHref = fallbackRewrite.href;
81
81
  didRewrite = true;
82
82
  matches = matchDirectHybridClientRoutes(currentHref, basePath);
83
- if (matches.appMatch || matches.pagesMatch) break;
83
+ if (matches.pagesApiRequest || matches.appMatch || matches.pagesMatch) break;
84
84
  }
85
85
  return didRewrite ? currentHref : null;
86
86
  }
@@ -105,21 +105,21 @@ function resolveHybridClientRouteOwner(href, basePath) {
105
105
  if (beforeFilesRewrite?.kind === "rewrite") href = beforeFilesRewrite.href;
106
106
  }
107
107
  let matches = matchDirectHybridClientRoutes(href, basePath);
108
- if (rewrites && (matches.appMatch === null || matches.appMatch.isDynamic) && (matches.pagesMatch === null || matches.pagesMatch.isDynamic)) for (const rewrite of rewrites.afterFiles) {
108
+ if (rewrites && !matches.pagesApiRequest && (matches.appMatch === null || matches.appMatch.isDynamic) && (matches.pagesMatch === null || matches.pagesMatch.isDynamic)) for (const rewrite of rewrites.afterFiles) {
109
109
  const afterFilesRewrite = resolveClientRewrite(href, basePath, [rewrite]);
110
110
  if (afterFilesRewrite?.kind === "document") return "document";
111
111
  if (afterFilesRewrite?.kind !== "rewrite") continue;
112
112
  href = afterFilesRewrite.href;
113
113
  matches = matchDirectHybridClientRoutes(href, basePath);
114
- if (matches.appMatch || matches.pagesMatch) break;
114
+ if (matches.pagesApiRequest || matches.appMatch || matches.pagesMatch) break;
115
115
  }
116
- if (rewrites && matches.appMatch === null && matches.pagesMatch === null) for (const rewrite of rewrites.fallback) {
116
+ if (rewrites && !matches.pagesApiRequest && matches.appMatch === null && matches.pagesMatch === null) for (const rewrite of rewrites.fallback) {
117
117
  const fallbackRewrite = resolveClientRewrite(href, basePath, [rewrite]);
118
118
  if (fallbackRewrite?.kind === "document") return "document";
119
119
  if (fallbackRewrite?.kind !== "rewrite") continue;
120
120
  href = fallbackRewrite.href;
121
121
  matches = matchDirectHybridClientRoutes(href, basePath);
122
- if (matches.appMatch || matches.pagesMatch) break;
122
+ if (matches.pagesApiRequest || matches.appMatch || matches.pagesMatch) break;
123
123
  }
124
124
  return resolveMatchedHybridClientRouteOwner(matches);
125
125
  }
@@ -36,4 +36,5 @@ export declare function interpolateDynamicRouteHref(routeHref: string, asHref: s
36
36
  * packages/next/src/client/resolve-href.ts.
37
37
  */
38
38
  export declare function resolveDynamicRouteHref(routeHref: string): DynamicRouteHrefResolution | null;
39
- //#endregion
39
+ //#endregion
40
+ export {};
@@ -78,4 +78,5 @@ export declare function resolvePagesDataNavigationTarget(browserUrl: string, bas
78
78
  * best-effort and must never break the page.
79
79
  */
80
80
  export declare function prefetchPagesData(target: PagesDataTarget): void;
81
- //#endregion
81
+ //#endregion
82
+ export {};
@@ -39,4 +39,5 @@ type PagesPatternMatch = {
39
39
  * client-side loader map, e.g. dev-only pages).
40
40
  */
41
41
  export declare function matchPagesPattern(pathname: string, patterns: readonly string[]): PagesPatternMatch | null;
42
- //#endregion
42
+ //#endregion
43
+ export {};
@@ -7,4 +7,5 @@ export declare function isWellKnownProperty(prop: PropertyKey): boolean;
7
7
  * proxy, not the underlying promise, so they see the param keys.
8
8
  */
9
9
  export declare function isOwnPropertyCheck(prop: PropertyKey): boolean;
10
- //#endregion
10
+ //#endregion
11
+ export {};