vinext 1.3.0 → 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 (391) hide show
  1. package/dist/_virtual/_rolldown/runtime.js +1 -1
  2. package/dist/build/action-owner-manifest.d.ts +3 -2
  3. package/dist/build/action-owner-manifest.js +18 -2
  4. package/dist/build/app-page-static-eligibility.d.ts +17 -1
  5. package/dist/build/app-page-static-eligibility.js +80 -13
  6. package/dist/build/clean-output.d.ts +2 -1
  7. package/dist/build/client-build-config.d.ts +13 -3
  8. package/dist/build/client-build-config.js +46 -9
  9. package/dist/build/client-reference-async.d.ts +48 -0
  10. package/dist/build/client-reference-async.js +123 -0
  11. package/dist/build/client-reference-chunks.d.ts +32 -0
  12. package/dist/build/client-reference-chunks.js +111 -0
  13. package/dist/build/client-reference-groups.d.ts +9 -1
  14. package/dist/build/client-reference-groups.js +40 -2
  15. package/dist/build/css-url-assets.d.ts +2 -1
  16. package/dist/build/google-fonts/fallback-metrics.d.ts +2 -1
  17. package/dist/build/google-fonts/find-font-files-in-css.d.ts +1 -0
  18. package/dist/build/google-fonts/find-font-files-in-css.js +17 -4
  19. package/dist/build/google-fonts/font-metadata.d.ts +2 -1
  20. package/dist/build/google-fonts/validate.d.ts +2 -1
  21. package/dist/build/inline-css.d.ts +2 -1
  22. package/dist/build/layout-classification.d.ts +2 -1
  23. package/dist/build/module-dependency-cache.d.ts +2 -1
  24. package/dist/build/next-client-runtime-manifests.d.ts +2 -1
  25. package/dist/build/precompress.d.ts +2 -1
  26. package/dist/build/precompress.js +1 -1
  27. package/dist/build/prerender-paths.d.ts +2 -1
  28. package/dist/build/prerender-phase.d.ts +2 -1
  29. package/dist/build/prerender-server-pool.js +1 -1
  30. package/dist/build/prerender.d.ts +3 -2
  31. package/dist/build/prerender.js +5 -4
  32. package/dist/build/report.d.ts +2 -1
  33. package/dist/build/route-classification-injector.d.ts +2 -1
  34. package/dist/build/route-classification-manifest.d.ts +2 -1
  35. package/dist/build/run-prerender.d.ts +2 -1
  36. package/dist/build/server-actions-encryption-key.d.ts +2 -1
  37. package/dist/build/ssr-manifest.js +25 -2
  38. package/dist/build/standalone.d.ts +2 -1
  39. package/dist/cache/cache-adapters-virtual.d.ts +2 -1
  40. package/dist/cache.js +1 -2
  41. package/dist/check.d.ts +2 -1
  42. package/dist/check.js +4 -0
  43. package/dist/cli-args.d.ts +2 -1
  44. package/dist/cli.js +2 -0
  45. package/dist/client/client-redirect-matcher.js +2 -1
  46. package/dist/client/client-redirects.d.ts +4 -3
  47. package/dist/client/client-redirects.js +2 -1
  48. package/dist/client/client-rewrites.d.ts +2 -1
  49. package/dist/client/dev-error-overlay-store.d.ts +2 -1
  50. package/dist/client/index.js +1 -2
  51. package/dist/client/instrumentation-client-state.js +5 -5
  52. package/dist/client/navigation-runtime.d.ts +3 -1
  53. package/dist/client/navigation-runtime.js +1 -1
  54. package/dist/client/pages-router-link-navigation.d.ts +2 -1
  55. package/dist/client/vinext-next-data.d.ts +25 -1
  56. package/dist/client/window-next.d.ts +2 -1
  57. package/dist/config/config-matchers.d.ts +12 -1
  58. package/dist/config/config-matchers.js +111 -16
  59. package/dist/config/dotenv.d.ts +2 -1
  60. package/dist/config/next-config.d.ts +13 -1
  61. package/dist/config/next-config.js +29 -4
  62. package/dist/config/tsconfig-paths.d.ts +2 -1
  63. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/detector.js +23 -0
  64. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/index.js +2 -0
  65. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/lookup.js +25 -0
  66. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/bmp.js +11 -0
  67. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/cur.js +15 -0
  68. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/dds.js +11 -0
  69. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/gif.js +12 -0
  70. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/heif.js +55 -0
  71. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/icns.js +76 -0
  72. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/ico.js +39 -0
  73. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/index.js +46 -0
  74. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/j2c.js +11 -0
  75. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/jp2.js +21 -0
  76. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/jpg.js +71 -0
  77. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/jxl-stream.js +42 -0
  78. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/jxl.js +46 -0
  79. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/ktx.js +19 -0
  80. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/png.js +28 -0
  81. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/pnm.js +54 -0
  82. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/psd.js +11 -0
  83. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/svg.js +79 -0
  84. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/tga.js +15 -0
  85. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/tiff.js +96 -0
  86. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/utils.js +53 -0
  87. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/webp.js +45 -0
  88. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/utils/bit-reader.js +38 -0
  89. package/dist/deps/.pnpm/ua-parser-js@1.0.35/deps/ua-parser-js/src/ua-parser.js +2 -2
  90. package/dist/entries/app-browser-entry.d.ts +20 -5
  91. package/dist/entries/app-browser-entry.js +79 -6
  92. package/dist/entries/app-rsc-entry.d.ts +2 -1
  93. package/dist/entries/app-rsc-entry.js +42 -12
  94. package/dist/entries/app-rsc-manifest.d.ts +2 -1
  95. package/dist/entries/app-rsc-manifest.js +53 -0
  96. package/dist/entries/pages-entry-helpers.js +1 -2
  97. package/dist/entries/pages-server-entry.d.ts +2 -1
  98. package/dist/entries/pages-server-entry.js +1 -1
  99. package/dist/entries/runtime-entry-module.d.ts +1 -0
  100. package/dist/entries/runtime-entry-module.js +4 -1
  101. package/dist/image/image-adapters-virtual.d.ts +2 -1
  102. package/dist/index.js +102 -34
  103. package/dist/plugins/client-compile-hints.d.ts +30 -0
  104. package/dist/plugins/client-compile-hints.js +88 -0
  105. package/dist/plugins/client-reference-dedup.d.ts +2 -1
  106. package/dist/plugins/cloudflare-dev-module-urls.d.ts +2 -1
  107. package/dist/plugins/dynamic-preload-metadata.d.ts +3 -1
  108. package/dist/plugins/dynamic-preload-metadata.js +1 -1
  109. package/dist/plugins/environment.d.ts +2 -1
  110. package/dist/plugins/fonts.js +9 -12
  111. package/dist/plugins/ignore-dynamic-requests.d.ts +2 -1
  112. package/dist/plugins/import-meta-url.d.ts +2 -1
  113. package/dist/plugins/og-assets.d.ts +2 -1
  114. package/dist/plugins/og-assets.js +2 -3
  115. package/dist/plugins/optimize-imports.d.ts +2 -1
  116. package/dist/plugins/pages-node-externals.d.ts +2 -1
  117. package/dist/plugins/remove-console.d.ts +2 -1
  118. package/dist/plugins/require-condition-resolution.d.ts +2 -1
  119. package/dist/plugins/rsc-client-reference-loaders.d.ts +8 -0
  120. package/dist/plugins/rsc-client-reference-loaders.js +170 -68
  121. package/dist/plugins/rsc-client-shim-excludes.js +2 -0
  122. package/dist/plugins/sass.d.ts +2 -1
  123. package/dist/plugins/strip-server-exports.d.ts +2 -1
  124. package/dist/plugins/styled-jsx.d.ts +2 -1
  125. package/dist/plugins/transform-result.d.ts +2 -1
  126. package/dist/plugins/typeof-window.d.ts +2 -1
  127. package/dist/plugins/worker-image-imports.js +1 -1
  128. package/dist/plugins/worker-use-server.d.ts +2 -1
  129. package/dist/routing/app-route-graph.d.ts +40 -0
  130. package/dist/routing/app-route-graph.js +122 -50
  131. package/dist/routing/browser-route-manifest.d.ts +2 -1
  132. package/dist/routing/optimistic-route-trie.d.ts +2 -1
  133. package/dist/routing/route-matching.d.ts +2 -1
  134. package/dist/routing/route-pattern.d.ts +2 -1
  135. package/dist/server/accept-encoding.d.ts +2 -1
  136. package/dist/server/app-action-forwarding.d.ts +2 -1
  137. package/dist/server/app-bfcache-identity.d.ts +2 -1
  138. package/dist/server/app-browser-action-result.d.ts +2 -1
  139. package/dist/server/app-browser-client-reuse-manifest.d.ts +2 -1
  140. package/dist/server/app-browser-entry.js +30 -6
  141. package/dist/server/app-browser-error.d.ts +2 -1
  142. package/dist/server/app-browser-history-controller.d.ts +2 -1
  143. package/dist/server/app-browser-hydration.d.ts +2 -1
  144. package/dist/server/app-browser-interception-context.d.ts +2 -1
  145. package/dist/server/app-browser-navigation-controller.js +15 -10
  146. package/dist/server/app-browser-popstate.d.ts +2 -1
  147. package/dist/server/app-browser-rsc-redirect.d.ts +2 -1
  148. package/dist/server/app-browser-server-action-client.d.ts +2 -1
  149. package/dist/server/app-browser-state.js +1 -1
  150. package/dist/server/app-browser-stream.d.ts +2 -1
  151. package/dist/server/app-browser-visible-commit.d.ts +2 -1
  152. package/dist/server/app-client-reference-manifest.d.ts +31 -0
  153. package/dist/server/app-client-reference-manifest.js +46 -0
  154. package/dist/server/app-client-reference-preloader.d.ts +25 -5
  155. package/dist/server/app-client-reference-preloader.js +22 -7
  156. package/dist/server/app-elements-wire.d.ts +2 -1
  157. package/dist/server/app-elements.d.ts +2 -0
  158. package/dist/server/app-elements.js +3 -1
  159. package/dist/server/app-fallback-renderer.d.ts +9 -2
  160. package/dist/server/app-fallback-renderer.js +4 -1
  161. package/dist/server/app-history-state.d.ts +2 -1
  162. package/dist/server/app-inline-css-client.d.ts +2 -1
  163. package/dist/server/app-layout-param-observation.d.ts +2 -1
  164. package/dist/server/app-metadata-tracing.d.ts +2 -1
  165. package/dist/server/app-optimistic-routing.d.ts +18 -1
  166. package/dist/server/app-optimistic-routing.js +34 -1
  167. package/dist/server/app-page-boundary-render.d.ts +20 -2
  168. package/dist/server/app-page-boundary-render.js +221 -38
  169. package/dist/server/app-page-boundary.d.ts +34 -5
  170. package/dist/server/app-page-boundary.js +40 -7
  171. package/dist/server/app-page-cache-finalizer.d.ts +2 -1
  172. package/dist/server/app-page-cache-finalizer.js +1 -1
  173. package/dist/server/app-page-cache-render.d.ts +10 -2
  174. package/dist/server/app-page-cache-render.js +14 -2
  175. package/dist/server/app-page-cache.js +2 -2
  176. package/dist/server/app-page-dispatch.d.ts +34 -1
  177. package/dist/server/app-page-dispatch.js +163 -34
  178. package/dist/server/app-page-element-builder.d.ts +17 -1
  179. package/dist/server/app-page-element-builder.js +187 -66
  180. package/dist/server/app-page-execution.d.ts +28 -1
  181. package/dist/server/app-page-execution.js +114 -5
  182. package/dist/server/app-page-head.d.ts +95 -3
  183. package/dist/server/app-page-head.js +307 -152
  184. package/dist/server/app-page-http-access-fallback-metadata.d.ts +48 -2
  185. package/dist/server/app-page-http-access-fallback-metadata.js +76 -1
  186. package/dist/server/app-page-method.d.ts +2 -1
  187. package/dist/server/app-page-probe.d.ts +2 -1
  188. package/dist/server/app-page-render-identity.d.ts +2 -1
  189. package/dist/server/app-page-render.d.ts +7 -1
  190. package/dist/server/app-page-render.js +35 -10
  191. package/dist/server/app-page-request.d.ts +14 -1
  192. package/dist/server/app-page-request.js +1 -1
  193. package/dist/server/app-page-route-wiring.d.ts +52 -2
  194. package/dist/server/app-page-route-wiring.js +197 -47
  195. package/dist/server/app-page-rsc-render-status.d.ts +2 -1
  196. package/dist/server/app-page-search-params-observation.d.ts +7 -2
  197. package/dist/server/app-page-search-params-observation.js +8 -1
  198. package/dist/server/app-page-segment-plan.d.ts +2 -1
  199. package/dist/server/app-page-stream.d.ts +31 -1
  200. package/dist/server/app-page-stream.js +23 -4
  201. package/dist/server/app-pages-bridge.d.ts +2 -1
  202. package/dist/server/app-ppr-fallback-shell-render.d.ts +2 -1
  203. package/dist/server/app-ppr-fallback-shell.d.ts +2 -1
  204. package/dist/server/app-prerender-endpoints.d.ts +2 -1
  205. package/dist/server/app-prerender-static-params.d.ts +2 -1
  206. package/dist/server/app-render-dependency.d.ts +11 -1
  207. package/dist/server/app-render-dependency.js +26 -7
  208. package/dist/server/app-request-stage-independent-entry.d.ts +2 -1
  209. package/dist/server/app-response-stage-entry.d.ts +2 -1
  210. package/dist/server/app-route-handler-cache.d.ts +2 -1
  211. package/dist/server/app-route-handler-dispatch.d.ts +2 -1
  212. package/dist/server/app-route-handler-dispatch.js +1 -1
  213. package/dist/server/app-route-handler-execution.d.ts +2 -1
  214. package/dist/server/app-route-handler-response.d.ts +2 -1
  215. package/dist/server/app-route-handler-runtime.d.ts +2 -1
  216. package/dist/server/app-route-module-loader.d.ts +18 -1
  217. package/dist/server/app-route-module-loader.js +8 -0
  218. package/dist/server/app-route-tree-prefetch.d.ts +2 -1
  219. package/dist/server/app-rsc-error-handler.d.ts +2 -1
  220. package/dist/server/app-rsc-errors.d.ts +2 -1
  221. package/dist/server/app-rsc-handler.d.ts +2 -1
  222. package/dist/server/app-rsc-handler.js +6 -10
  223. package/dist/server/app-rsc-response-finalizer.d.ts +2 -1
  224. package/dist/server/app-rsc-route-matching.d.ts +38 -1
  225. package/dist/server/app-rsc-route-matching.js +24 -0
  226. package/dist/server/app-segment-config.d.ts +2 -1
  227. package/dist/server/app-segment-config.js +1 -14
  228. package/dist/server/app-server-action-execution.d.ts +2 -1
  229. package/dist/server/app-server-action-execution.js +3 -3
  230. package/dist/server/app-ssr-entry.d.ts +6 -0
  231. package/dist/server/app-ssr-entry.js +91 -44
  232. package/dist/server/app-ssr-error-meta.d.ts +2 -1
  233. package/dist/server/app-ssr-search-params-gate.d.ts +2 -1
  234. package/dist/server/app-ssr-stream.d.ts +22 -10
  235. package/dist/server/app-ssr-stream.js +299 -67
  236. package/dist/server/app-static-generation.d.ts +2 -1
  237. package/dist/server/app-streamed-client-references.d.ts +39 -0
  238. package/dist/server/app-streamed-client-references.js +156 -0
  239. package/dist/server/app-visited-response-cache.d.ts +2 -1
  240. package/dist/server/app-worker-stages.d.ts +2 -1
  241. package/dist/server/artifact-compatibility.d.ts +2 -1
  242. package/dist/server/bfcache-identity.d.ts +2 -1
  243. package/dist/server/cache-headers.d.ts +2 -1
  244. package/dist/server/cacheability-request.d.ts +2 -1
  245. package/dist/server/client-reuse-manifest.d.ts +2 -1
  246. package/dist/server/config-headers.d.ts +2 -1
  247. package/dist/server/csp.d.ts +2 -1
  248. package/dist/server/default-global-not-found-module.d.ts +2 -1
  249. package/dist/server/default-http-access-fallback-modules.d.ts +33 -0
  250. package/dist/server/default-http-access-fallback-modules.js +31 -0
  251. package/dist/server/defer-until-stream-consumed.d.ts +34 -0
  252. package/dist/server/defer-until-stream-consumed.js +154 -21
  253. package/dist/server/dev-lockfile.d.ts +32 -2
  254. package/dist/server/dev-lockfile.js +46 -2
  255. package/dist/server/dev-module-runner.d.ts +2 -1
  256. package/dist/server/dev-server.js +10 -3
  257. package/dist/server/fetch-handler.js +1 -2
  258. package/dist/server/file-based-metadata.d.ts +2 -1
  259. package/dist/server/framework-tracer.d.ts +2 -1
  260. package/dist/server/html.d.ts +1 -0
  261. package/dist/server/html.js +19 -1
  262. package/dist/server/http-conditional.d.ts +2 -1
  263. package/dist/server/http-error-responses.d.ts +2 -1
  264. package/dist/server/implicit-tags.d.ts +2 -1
  265. package/dist/server/metadata-route-build-data.d.ts +2 -1
  266. package/dist/server/metadata-route-build-data.js +1 -1
  267. package/dist/server/metadata-route-response.d.ts +2 -1
  268. package/dist/server/metadata-route-response.js +1 -1
  269. package/dist/server/metadata-routes.d.ts +2 -1
  270. package/dist/server/middleware-runtime.d.ts +2 -1
  271. package/dist/server/navigation-trace.d.ts +2 -1
  272. package/dist/server/next-error-digest.d.ts +2 -1
  273. package/dist/server/nitro-public-files-plugin.d.ts +2 -1
  274. package/dist/server/nitro-public-files.d.ts +2 -1
  275. package/dist/server/opentelemetry-api.d.ts +2 -1
  276. package/dist/server/operation-token.d.ts +2 -1
  277. package/dist/server/pages-api-route.d.ts +2 -1
  278. package/dist/server/pages-asset-tags.d.ts +2 -1
  279. package/dist/server/pages-body-parser-config.d.ts +2 -1
  280. package/dist/server/pages-client-assets.d.ts +4 -0
  281. package/dist/server/pages-data-route.d.ts +2 -1
  282. package/dist/server/pages-document-asset-props.d.ts +2 -1
  283. package/dist/server/pages-document-initial-props.d.ts +2 -1
  284. package/dist/server/pages-execution-tracing.d.ts +2 -1
  285. package/dist/server/pages-execution-tracing.js +1 -1
  286. package/dist/server/pages-get-initial-props.d.ts +2 -1
  287. package/dist/server/pages-page-data.d.ts +7 -1
  288. package/dist/server/pages-page-data.js +35 -12
  289. package/dist/server/pages-page-handler.d.ts +3 -2
  290. package/dist/server/pages-page-handler.js +16 -7
  291. package/dist/server/pages-page-method.d.ts +2 -1
  292. package/dist/server/pages-page-response.d.ts +2 -1
  293. package/dist/server/pages-preview.d.ts +2 -1
  294. package/dist/server/pages-readiness.d.ts +2 -1
  295. package/dist/server/pages-request-pipeline.d.ts +2 -1
  296. package/dist/server/pages-request-pipeline.js +4 -5
  297. package/dist/server/pages-request-stage-entry.d.ts +2 -1
  298. package/dist/server/pages-response-stage-entry.d.ts +2 -1
  299. package/dist/server/pages-route-data-kind.d.ts +2 -1
  300. package/dist/server/prerender-cache-life-header.d.ts +2 -1
  301. package/dist/server/prerender-route-params.d.ts +2 -1
  302. package/dist/server/prod-server.js +9 -3
  303. package/dist/server/request-log.d.ts +2 -1
  304. package/dist/server/request-tracing.d.ts +2 -1
  305. package/dist/server/request-tracing.js +1 -1
  306. package/dist/server/response-start-tracing.js +7 -29
  307. package/dist/server/rsc-render-stream.d.ts +4 -0
  308. package/dist/server/rsc-render-stream.js +25 -0
  309. package/dist/server/seed-cache.d.ts +2 -1
  310. package/dist/server/seed-cache.js +1 -1
  311. package/dist/server/static-file-cache.d.ts +2 -1
  312. package/dist/server/static-file-cache.js +1 -0
  313. package/dist/server/static-layout-client-reuse-proof.d.ts +2 -1
  314. package/dist/server/worker-revalidation-context.d.ts +2 -1
  315. package/dist/server/worker-stages.d.ts +2 -1
  316. package/dist/shims/app.d.ts +2 -1
  317. package/dist/shims/cache-callable-runtime.d.ts +2 -1
  318. package/dist/shims/cache-handler.d.ts +8 -3
  319. package/dist/shims/cache-handler.js +29 -9
  320. package/dist/shims/caught-not-found-boundaries.d.ts +15 -0
  321. package/dist/shims/caught-not-found-boundaries.js +48 -0
  322. package/dist/shims/cdn-purge-routes.d.ts +2 -1
  323. package/dist/shims/client-locale.js +2 -1
  324. package/dist/shims/client-page-root.d.ts +2 -1
  325. package/dist/shims/config.d.ts +2 -1
  326. package/dist/shims/default-forbidden.d.ts +4 -0
  327. package/dist/shims/default-forbidden.js +18 -0
  328. package/dist/shims/default-not-found.d.ts +0 -5
  329. package/dist/shims/default-not-found.js +5 -41
  330. package/dist/shims/default-unauthorized.d.ts +4 -0
  331. package/dist/shims/default-unauthorized.js +18 -0
  332. package/dist/shims/error-boundary.d.ts +39 -3
  333. package/dist/shims/error-boundary.js +31 -16
  334. package/dist/shims/font-google.js +1 -2
  335. package/dist/shims/font-utils.d.ts +3 -2
  336. package/dist/shims/font-utils.js +5 -3
  337. package/dist/shims/form.js +1 -1
  338. package/dist/shims/http-access-error-fallback.d.ts +7 -0
  339. package/dist/shims/http-access-error-fallback.js +47 -0
  340. package/dist/shims/image.d.ts +1 -22
  341. package/dist/shims/internal/app-prefetch-fetch-queue.d.ts +22 -2
  342. package/dist/shims/internal/app-prefetch-fetch-queue.js +71 -18
  343. package/dist/shims/internal/app-route-prefetch-policy.d.ts +14 -3
  344. package/dist/shims/internal/app-route-prefetch-policy.js +29 -4
  345. package/dist/shims/internal/cache-context-accessor.d.ts +2 -1
  346. package/dist/shims/internal/client-reference-loader.d.ts +7 -0
  347. package/dist/shims/internal/client-reference-loader.js +91 -0
  348. package/dist/shims/internal/cookie-serialize.d.ts +2 -1
  349. package/dist/shims/internal/cookies.js +1 -2
  350. package/dist/shims/internal/headers-state.d.ts +2 -0
  351. package/dist/shims/internal/headers-state.js +6 -1
  352. package/dist/shims/internal/hybrid-client-route-owner-direct.d.ts +2 -1
  353. package/dist/shims/internal/interpolate-as.d.ts +2 -1
  354. package/dist/shims/internal/pages-data-target.d.ts +2 -1
  355. package/dist/shims/internal/pages-data-url.d.ts +2 -1
  356. package/dist/shims/internal/thenable-well-known-properties.d.ts +2 -1
  357. package/dist/shims/link.js +195 -52
  358. package/dist/shims/metadata.d.ts +32 -11
  359. package/dist/shims/metadata.js +88 -26
  360. package/dist/shims/navigation-errors.d.ts +2 -1
  361. package/dist/shims/navigation.d.ts +22 -2
  362. package/dist/shims/navigation.js +74 -20
  363. package/dist/shims/pages-router-runtime.d.ts +2 -1
  364. package/dist/shims/ppr-fallback-shell.d.ts +2 -1
  365. package/dist/shims/router.js +14 -3
  366. package/dist/shims/unified-request-context.js +3 -3
  367. package/dist/typegen.d.ts +2 -1
  368. package/dist/utils/client-build-manifest.d.ts +4 -1
  369. package/dist/utils/client-build-manifest.js +9 -2
  370. package/dist/utils/client-entry-manifest.d.ts +13 -0
  371. package/dist/utils/client-entry-manifest.js +20 -1
  372. package/dist/utils/client-reference-chunks.d.ts +45 -0
  373. package/dist/utils/client-reference-chunks.js +30 -0
  374. package/dist/utils/client-runtime-metadata.d.ts +9 -1
  375. package/dist/utils/client-runtime-metadata.js +40 -9
  376. package/dist/utils/compare.d.ts +9 -0
  377. package/dist/utils/compare.js +15 -1
  378. package/dist/utils/lazy-chunks.d.ts +14 -0
  379. package/dist/utils/lazy-chunks.js +27 -1
  380. package/dist/utils/middleware-request-headers.d.ts +2 -1
  381. package/dist/utils/project.d.ts +2 -1
  382. package/dist/utils/project.js +9 -1
  383. package/dist/utils/query.d.ts +2 -1
  384. package/dist/utils/sorted-array.d.ts +2 -1
  385. package/dist/utils/vite-cli-invocation.d.ts +2 -1
  386. package/package.json +5 -5
  387. package/dist/deps/.pnpm/image-size@2.0.2/deps/image-size/dist/index.js +0 -808
  388. package/dist/server/default-not-found-module.d.ts +0 -19
  389. package/dist/server/default-not-found-module.js +0 -18
  390. package/dist/server/rsc-stream-hints.d.ts +0 -21
  391. package/dist/server/rsc-stream-hints.js +0 -227
@@ -11,7 +11,17 @@ export type AppPageRenderDependency = AppRenderDependency & {
11
11
  /** Whether `component` is a "use client" export seen from the RSC environment. */
12
12
  export declare function isAppClientReference(component: unknown): boolean;
13
13
  export declare function isReactOwnedAppComponent(component: unknown): boolean;
14
- export declare function invokeAppComponent(component: ComponentType<Record<string, unknown>>, props: Readonly<Record<string, unknown>>): ReactNode | Promise<ReactNode>;
14
+ /**
15
+ * `mapError` replaces an error thrown by a CSS-wrapped export's inner
16
+ * component, which renders after this call returns. The caller maps the
17
+ * errors this call throws or rejects with.
18
+ */
19
+ export declare function invokeAppComponent(component: ComponentType<Record<string, unknown>>, props: Readonly<Record<string, unknown>>, mapError?: (error: unknown) => unknown): ReactNode | Promise<ReactNode>;
20
+ /**
21
+ * `invokeAppComponent()`, with every error the component throws or rejects
22
+ * with replaced by `mapError(error)`, including its CSS-wrapped inner one's.
23
+ */
24
+ export declare function invokeAppComponentMappingErrors(component: ComponentType<Record<string, unknown>>, props: Readonly<Record<string, unknown>>, mapError: (error: unknown) => unknown): ReactNode | Promise<ReactNode>;
15
25
  export declare function registerAppElementRenderDependencies(elements: Readonly<Record<string, unknown>>, dependenciesByElementId: ReadonlyMap<string, AppRenderDependency>): void;
16
26
  export declare function releaseAppElementRenderDependency(elements: Readonly<Record<string, unknown>>, elementId: string): void;
17
27
  export declare function createAppRenderDependency(): AppRenderDependency;
@@ -15,14 +15,33 @@ function isReactOwnedAppComponent(component) {
15
15
  if (candidate?.$$typeof === REACT_MEMO || candidate?.$$typeof === REACT_LAZY || candidate?.$$typeof === REACT_FORWARD_REF) return false;
16
16
  return typeof candidate !== "function" || candidate.$$typeof === REACT_CLIENT_REFERENCE || candidate.prototype?.isReactComponent != null;
17
17
  }
18
- function invokeAppComponent(component, props) {
18
+ /**
19
+ * `mapError` replaces an error thrown by a CSS-wrapped export's inner
20
+ * component, which renders after this call returns. The caller maps the
21
+ * errors this call throws or rejects with.
22
+ */
23
+ function invokeAppComponent(component, props, mapError) {
19
24
  const candidate = component;
20
- if (candidate.$$typeof === REACT_MEMO && candidate.type) return invokeAppComponent(candidate.type, props);
21
- if (candidate.$$typeof === REACT_LAZY && candidate._init) return invokeAppComponent(candidate._init(candidate._payload), props);
25
+ if (candidate.$$typeof === REACT_MEMO && candidate.type) return invokeAppComponent(candidate.type, props, mapError);
26
+ if (candidate.$$typeof === REACT_LAZY && candidate._init) return invokeAppComponent(candidate._init(candidate._payload), props, mapError);
22
27
  if (candidate.$$typeof === REACT_FORWARD_REF && candidate.render) return candidate.render(props, void 0);
23
28
  if (isReactOwnedAppComponent(candidate)) return createElement(candidate, props);
24
29
  const result = candidate(props);
25
- return isPromiseLike(result) ? result : invokeCssWrappedComponent(result, props);
30
+ return isPromiseLike(result) ? result : invokeCssWrappedComponent(result, props, mapError);
31
+ }
32
+ /**
33
+ * `invokeAppComponent()`, with every error the component throws or rejects
34
+ * with replaced by `mapError(error)`, including its CSS-wrapped inner one's.
35
+ */
36
+ function invokeAppComponentMappingErrors(component, props, mapError) {
37
+ try {
38
+ const result = invokeAppComponent(component, props, mapError);
39
+ return isPromiseLike(result) ? Promise.resolve(result).catch((error) => {
40
+ throw mapError(error);
41
+ }) : result;
42
+ } catch (error) {
43
+ throw mapError(error);
44
+ }
26
45
  }
27
46
  /**
28
47
  * Whether `elementProps` are what `createElement(type, props)` produces: the
@@ -48,7 +67,7 @@ function isElementOfProps(elementProps, props, defaultProps) {
48
67
  * component from an element without props instead, as for an export without
49
68
  * CSS.
50
69
  */
51
- function invokeCssWrappedComponent(result, props) {
70
+ function invokeCssWrappedComponent(result, props, mapError) {
52
71
  if (!isValidElement(result) || result.type !== Fragment || result.key !== null) return result;
53
72
  const children = result.props.children;
54
73
  if (!Array.isArray(children) || children.length !== 2) return result;
@@ -58,7 +77,7 @@ function invokeCssWrappedComponent(result, props) {
58
77
  if (!isElementOfProps(inner.props, props, component.defaultProps)) return result;
59
78
  const componentProps = inner.props;
60
79
  function CssWrappedComponent() {
61
- return invokeAppComponent(component, componentProps);
80
+ return mapError ? invokeAppComponentMappingErrors(component, componentProps, mapError) : invokeAppComponent(component, componentProps);
62
81
  }
63
82
  CssWrappedComponent.displayName = component.displayName ?? component.name;
64
83
  return createElement(Fragment, null, css, createElement(CssWrappedComponent));
@@ -132,4 +151,4 @@ function renderAppComponentWithDependencyBarrier(component, props, dependency) {
132
151
  return createElement(AppComponentDependencyBarrier);
133
152
  }
134
153
  //#endregion
135
- export { createAppPageRenderDependency, createAppRenderDependency, invokeAppComponent, isAppClientReference, isAppRenderSuspension, isReactOwnedAppComponent, registerAppElementRenderDependencies, releaseAppElementRenderDependency, renderAfterAppDependencies, renderAppComponentWithDependencyBarrier };
154
+ export { createAppPageRenderDependency, createAppRenderDependency, invokeAppComponent, invokeAppComponentMappingErrors, isAppClientReference, isAppRenderSuspension, isReactOwnedAppComponent, registerAppElementRenderDependencies, releaseAppElementRenderDependency, renderAfterAppDependencies, renderAppComponentWithDependencyBarrier };
@@ -5,4 +5,5 @@ import { DispatchAppWorkerResponseStage } from "./app-worker-stages.js";
5
5
  export type AppRequestStageEnv = Record<string, unknown>;
6
6
  type AppRequestStageContext = ExecutionContextLike & VinextRequestStageContext;
7
7
  export declare function handleRequestStage(request: Request, env: AppRequestStageEnv | undefined, ctx: AppRequestStageContext | undefined, dispatchResponseStage: DispatchAppWorkerResponseStage): Promise<Response>;
8
- //#endregion
8
+ //#endregion
9
+ export {};
@@ -6,4 +6,5 @@ type AppResponseStageEnv = Record<string, unknown>;
6
6
  /** Invoke one transformed public cache function without rendering its owning route. */
7
7
  export declare function invokeCacheFunction(invocation: VinextCacheFunctionInvocation, env: AppResponseStageEnv | undefined, platformCtx: ExecutionContextLike | undefined, dispatchRequestStage: VinextRequestStageTransport): Promise<void>;
8
8
  export declare function handleResponseStage(request: Request, env: AppResponseStageEnv | undefined, platformCtx: ExecutionContextLike | undefined, props: AppWorkerResponseStageProps, dispatchRequestStage: VinextRequestStageTransport, options?: VinextResponseStageDispatchOptions): Promise<Response>;
9
- //#endregion
9
+ //#endregion
10
+ export {};
@@ -45,4 +45,5 @@ type ReadAppRouteHandlerCacheOptions = {
45
45
  } | null) => void;
46
46
  };
47
47
  export declare function readAppRouteHandlerCacheResponse(options: ReadAppRouteHandlerCacheOptions): Promise<Response | null>;
48
- //#endregion
48
+ //#endregion
49
+ export {};
@@ -46,4 +46,5 @@ type DispatchAppRouteHandlerOptions = {
46
46
  searchParams: URLSearchParams;
47
47
  };
48
48
  export declare function dispatchAppRouteHandler(options: DispatchAppRouteHandlerOptions): Promise<Response>;
49
- //#endregion
49
+ //#endregion
50
+ export {};
@@ -14,9 +14,9 @@ import { resolveAppRouteHandlerFetchCacheMode } from "./app-segment-config.js";
14
14
  import { setNavigationContext } from "../shims/navigation-context-state.js";
15
15
  import { makeThenableParams } from "../shims/thenable-params.js";
16
16
  import { traceResponseStart } from "./response-start-tracing.js";
17
- import { buildPageCacheTags } from "./implicit-tags.js";
18
17
  import { applyRouteHandlerMiddlewareContext, finalizeRouteHandlerResponse } from "./app-route-handler-response.js";
19
18
  import "../shims/navigation.js";
19
+ import { buildPageCacheTags } from "./implicit-tags.js";
20
20
  import { isKnownDynamicAppRoute, isValidHTTPMethod } from "./app-route-handler-runtime.js";
21
21
  import { getAppRouteHandlerRevalidateSeconds, hasAppRouteHandlerDefaultExport, hasNonStaticAppRouteHandlerMethods, resolveAppRouteHandlerMethod, shouldReadAppRouteHandlerCache } from "./app-route-handler-policy.js";
22
22
  import { createStaticGenerationHeadersContext } from "./app-static-generation.js";
@@ -104,4 +104,5 @@ type ExecuteAppRouteHandlerOptions = {
104
104
  export declare function runAppRouteHandler(options: RunAppRouteHandlerOptions): Promise<RunAppRouteHandlerResult>;
105
105
  export declare function executeAppRouteHandler(options: ExecuteAppRouteHandlerOptions): Promise<Response>;
106
106
  export declare function traceAppRouteHandlerExecution<T>(routePattern: string, callback: (span: FrameworkSpan) => T): T;
107
- //#endregion
107
+ //#endregion
108
+ export {};
@@ -26,4 +26,5 @@ export declare function applyRouteHandlerRevalidateHeader(response: Response, re
26
26
  export declare function markRouteHandlerCacheMiss(response: Response): void;
27
27
  export declare function buildAppRouteCacheValue(response: Response, browserCacheControl?: string): Promise<CachedRouteValue>;
28
28
  export declare function finalizeRouteHandlerResponse(response: Response, options: FinalizeRouteHandlerResponseOptions): Response;
29
- //#endregion
29
+ //#endregion
30
+ export {};
@@ -39,4 +39,5 @@ type TrackedAppRouteRequest = {
39
39
  didAccessDynamicRequest(): boolean;
40
40
  };
41
41
  export declare function createTrackedAppRouteRequest(request: Request, options?: TrackedAppRouteRequestOptions): TrackedAppRouteRequest;
42
- //#endregion
42
+ //#endregion
43
+ export {};
@@ -43,6 +43,14 @@ type LazyLoadableIntercept = {
43
43
  __loadInterceptLayouts?: LazyModuleLoaderArray | null;
44
44
  interceptLoadings?: readonly unknown[] | null;
45
45
  __loadInterceptLoadings?: LazyModuleLoaderArray | null;
46
+ interceptNotFounds?: readonly unknown[] | null;
47
+ __loadInterceptNotFounds?: LazyModuleLoaderArray | null;
48
+ interceptForbiddens?: readonly unknown[] | null;
49
+ __loadInterceptForbiddens?: LazyModuleLoaderArray | null;
50
+ interceptUnauthorizeds?: readonly unknown[] | null;
51
+ __loadInterceptUnauthorizeds?: LazyModuleLoaderArray | null;
52
+ interceptErrors?: readonly unknown[] | null;
53
+ __loadInterceptErrors?: LazyModuleLoaderArray | null;
46
54
  __loadState?: {
47
55
  page?: unknown;
48
56
  pageLoading?: Promise<unknown> | null;
@@ -60,6 +68,7 @@ type LazyLoadableSlot = {
60
68
  loadings?: readonly unknown[];
61
69
  error?: unknown;
62
70
  notFound?: unknown;
71
+ notFounds?: readonly unknown[];
63
72
  __loadPage?: LazyModuleThunk | null;
64
73
  __loadDefault?: LazyModuleThunk | null;
65
74
  __loadLayout?: LazyModuleThunk | null;
@@ -68,6 +77,7 @@ type LazyLoadableSlot = {
68
77
  __loadLoadings?: LazyModuleLoaderArray | null;
69
78
  __loadError?: LazyModuleThunk | null;
70
79
  __loadNotFound?: LazyModuleThunk | null;
80
+ __loadNotFounds?: LazyModuleLoaderArray | null;
71
81
  /** Hydrated only after an intercept matches, not with the slot's base modules. */
72
82
  intercepts?: LazyLoadableIntercept[];
73
83
  };
@@ -82,6 +92,9 @@ export type LazyLoadableRoute = {
82
92
  notFounds?: unknown[];
83
93
  forbiddens?: unknown[];
84
94
  unauthorizeds?: unknown[];
95
+ segmentNotFounds?: unknown[];
96
+ segmentForbiddens?: unknown[];
97
+ segmentUnauthorizeds?: unknown[];
85
98
  loading?: unknown;
86
99
  error?: unknown;
87
100
  notFound?: unknown;
@@ -101,6 +114,9 @@ export type LazyLoadableRoute = {
101
114
  __loadNotFounds?: LazyModuleLoaderArray | null;
102
115
  __loadForbiddens?: LazyModuleLoaderArray | null;
103
116
  __loadUnauthorizeds?: LazyModuleLoaderArray | null;
117
+ __loadSegmentNotFounds?: LazyModuleLoaderArray | null;
118
+ __loadSegmentForbiddens?: LazyModuleLoaderArray | null;
119
+ __loadSegmentUnauthorizeds?: LazyModuleLoaderArray | null;
104
120
  __loadLoading?: LazyModuleThunk | null;
105
121
  __loadError?: LazyModuleThunk | null;
106
122
  __loadNotFound?: LazyModuleThunk | null;
@@ -123,4 +139,5 @@ export declare function loadAppInterceptLayouts(intercept: LazyLoadableIntercept
123
139
  * `null`/`undefined` routes and on eager routes that have no lazy thunks.
124
140
  */
125
141
  export declare function ensureAppRouteModulesLoaded<TRoute extends LazyLoadableRoute>(route: TRoute | null | undefined): TRoute | Promise<TRoute>;
126
- //#endregion
142
+ //#endregion
143
+ export {};
@@ -92,6 +92,10 @@ function loadAppInterceptLayouts(intercept) {
92
92
  const loads = [];
93
93
  pushArrayLoads(loads, intercept.interceptLayouts, intercept.__loadInterceptLayouts);
94
94
  pushArrayLoads(loads, intercept.interceptLoadings, intercept.__loadInterceptLoadings);
95
+ pushArrayLoads(loads, intercept.interceptNotFounds, intercept.__loadInterceptNotFounds);
96
+ pushArrayLoads(loads, intercept.interceptForbiddens, intercept.__loadInterceptForbiddens);
97
+ pushArrayLoads(loads, intercept.interceptUnauthorizeds, intercept.__loadInterceptUnauthorizeds);
98
+ pushArrayLoads(loads, intercept.interceptErrors, intercept.__loadInterceptErrors);
95
99
  if (loads.length === 0) return Promise.resolve(intercept.interceptLayouts ?? []);
96
100
  const loading = shareIsolatePromise(Promise.all(loads).then(() => {
97
101
  if (loadState) loadState.interceptLayoutsLoading = null;
@@ -130,6 +134,9 @@ function ensureAppRouteModulesLoaded(route) {
130
134
  pushArrayLoads(loads, route.notFounds, route.__loadNotFounds);
131
135
  pushArrayLoads(loads, route.forbiddens, route.__loadForbiddens);
132
136
  pushArrayLoads(loads, route.unauthorizeds, route.__loadUnauthorizeds);
137
+ pushArrayLoads(loads, route.segmentNotFounds, route.__loadSegmentNotFounds);
138
+ pushArrayLoads(loads, route.segmentForbiddens, route.__loadSegmentForbiddens);
139
+ pushArrayLoads(loads, route.segmentUnauthorizeds, route.__loadSegmentUnauthorizeds);
133
140
  for (const slot of Object.values(route.slots ?? {})) {
134
141
  pushFieldLoad(loads, slot, "page", slot.__loadPage);
135
142
  pushFieldLoad(loads, slot, "default", slot.__loadDefault);
@@ -139,6 +146,7 @@ function ensureAppRouteModulesLoaded(route) {
139
146
  pushArrayLoads(loads, slot.loadings, slot.__loadLoadings);
140
147
  pushFieldLoad(loads, slot, "error", slot.__loadError);
141
148
  pushFieldLoad(loads, slot, "notFound", slot.__loadNotFound);
149
+ pushArrayLoads(loads, slot.notFounds, slot.__loadNotFounds);
142
150
  }
143
151
  if (loads.length === 0) {
144
152
  route.__loaded = true;
@@ -39,4 +39,5 @@ export type PrefetchInliningConfig = false | {
39
39
  };
40
40
  export declare function isRouteTreePrefetchRequest(request: Request): boolean;
41
41
  export declare function createRouteTreePrefetchResponse(route: AppRouteTreePrefetchRoute, options?: RouteTreePrefetchResponseOptions): Promise<Response>;
42
- //#endregion
42
+ //#endregion
43
+ export {};
@@ -23,4 +23,5 @@ export type AppRenderErrorContextOverrides = {
23
23
  * Pure factory: takes all deps explicitly — no closure over module-level state.
24
24
  */
25
25
  export declare function createAppRscOnErrorHandler(reportRequestError: ReportRequestError, request: Request, pathname: string, routePath: string, overrides?: AppRenderErrorContextOverrides): (error: unknown) => string | undefined;
26
- //#endregion
26
+ //#endregion
27
+ export {};
@@ -46,4 +46,5 @@ export declare function errorDigest(input: string): string;
46
46
  export declare const PRODUCTION_SERVER_COMPONENTS_ERROR_MESSAGE = "Minified React error #441; visit https://react.dev/errors/441 for the full message or use the non-minified dev environment for full errors and additional helpful warnings.";
47
47
  export declare function sanitizeErrorForClient(error: unknown, nodeEnv?: "development" | "production" | "test"): unknown;
48
48
  export declare function createRscOnErrorHandler(options: CreateRscOnErrorHandlerOptions): (error: unknown) => string | undefined;
49
- //#endregion
49
+ //#endregion
50
+ export {};
@@ -263,4 +263,5 @@ export type CreateAppRscHandlerOptions<TRoute extends AppRscHandlerRoute> = {
263
263
  export type AppRscRequestHandler = (request: Request, ctx: unknown, allowInternalRscDocumentFallback?: boolean, dispatchResponseStage?: DispatchAppWorkerResponseStage, responseStageProbeMode?: VinextCacheabilityProbeMode | null, trustedPrerenderState?: TrustedPrerenderState | null) => Promise<Response>;
264
264
  /** Build the request-only handler without retaining the response renderer graph. */
265
265
  export declare function createAppRscRequestHandler<TRoute extends AppRscHandlerRoute>(options: CreateAppRscHandlerOptions<TRoute>): AppRscRequestHandler;
266
- //#endregion
266
+ //#endregion
267
+ export {};
@@ -37,11 +37,11 @@ import { traceAppPageRender } from "./app-page-tracing.js";
37
37
  import { openForwardedMiddlewareContext } from "./forwarded-middleware-context.js";
38
38
  import { setFrameworkRequestRoute, traceFrameworkRequest } from "./request-tracing.js";
39
39
  import { matchPrerenderRouteParamsPayload, readTrustedPrerenderRouteParams, serializePrerenderRouteParamsHeader } from "./prerender-route-params.js";
40
- import { buildPageCacheTags } from "./implicit-tags.js";
41
40
  import { createServerActionNotFoundResponse, getServerActionNotFoundMessage } from "./server-action-not-found.js";
42
41
  import { isPossibleAppRouteActionRequest } from "./app-action-request.js";
43
42
  import { isAppRouteHandlerRoute } from "./app-rsc-route-matching.js";
44
43
  import { normalizeInterceptionContextHeader } from "./app-interception-context-header.js";
44
+ import { buildPageCacheTags } from "./implicit-tags.js";
45
45
  import { buildPostMwRequestContext } from "./app-post-middleware-context.js";
46
46
  import { pickRootParams, setRootParams } from "../shims/root-params.js";
47
47
  import { createRouteTreePrefetchResponse, isRouteTreePrefetchRequest } from "./app-route-tree-prefetch.js";
@@ -195,10 +195,6 @@ function createMissingServerActionResponse(options, actionId) {
195
195
  options.clearRequestContext();
196
196
  return createServerActionNotFoundResponse();
197
197
  }
198
- function redirectDestinationWithBasePath(destination, basePath, hadBasePath) {
199
- if (!basePath || !hadBasePath || isExternalUrl(destination) || hasBasePath(destination, basePath)) return destination;
200
- return basePath + destination;
201
- }
202
198
  async function applyRewrite(options, cleanPathname, recordCacheability = true) {
203
199
  if (!HAS_CONFIG_REWRITES || !options.rewrites.length) return null;
204
200
  const sourcePathname = options.paramsPathname ?? cleanPathname;
@@ -371,7 +367,7 @@ async function handleAppRscRequest(options, request, preMiddlewareRequestContext
371
367
  });
372
368
  if (prerenderEndpointResponse) return prerenderEndpointResponse;
373
369
  }
374
- if (!options.skipTrailingSlashRedirect) {
370
+ if (!isDataRequest && !options.skipTrailingSlashRedirect) {
375
371
  const trailingSlashRedirect = options.trailingSlash && options.isMetadataRoutePath && await options.isMetadataRoutePath(cleanPathname) ? null : normalizeTrailingSlash(requestCleanPathname, hadBasePath ? options.basePath : "", options.trailingSlash, url.search);
376
372
  if (trailingSlashRedirect) return trailingSlashRedirect;
377
373
  }
@@ -385,10 +381,10 @@ async function handleAppRscRequest(options, request, preMiddlewareRequestContext
385
381
  const configMatchers = HAS_CONFIG_REDIRECTS && options.configRedirects.length ? await import("../config/config-matchers.js") : null;
386
382
  const redirect = configMatchers ? configMatchers.matchRedirect(redirectPathname, options.configRedirects, preMiddlewareRequestContext, basePathState, dispatchResponseStage ? void 0 : markConditionalRedirectCacheability) : null;
387
383
  if (configMatchers && redirect) {
388
- const destination = configMatchers.sanitizeDestination(redirectDestinationWithBasePath(redirect.destination, options.basePath, hadBasePath));
389
- const location = isRscRequest && request.headers.get("RSC") === "1" ? await createRscRedirectLocation(destination, request) : configMatchers.preserveRedirectDestinationQuery(destination, url.search, redirect.destinationQuery);
384
+ const destination = redirect.destination;
385
+ const location = isRscRequest && request.headers.get("RSC") === "1" ? await createRscRedirectLocation(configMatchers.encodeRedirectLocation(destination), request) : configMatchers.encodeRedirectLocation(configMatchers.preserveRedirectDestinationQuery(destination, url.search, redirect.destinationQuery));
390
386
  return new Response(null, {
391
- status: redirect.permanent ? 308 : 307,
387
+ status: redirect.statusCode,
392
388
  headers: { Location: location }
393
389
  });
394
390
  }
@@ -484,7 +480,7 @@ async function handleAppRscRequest(options, request, preMiddlewareRequestContext
484
480
  const cache = responseStageProbeMode || isOnDemandRevalidate || (props.kind === "app-page" || props.kind === "app-route-handler") && (props.bypassInterceptionContextCache || props.forceDynamic === true && responseStagePolicy === null) ? "bypass" : canUseSharedWorkerResponseStage ? "shared" : "bypass";
485
481
  let dispatchRequest = props.kind === "app-page" ? prepareSharedAppPageDispatch(stageRequest, cache) : stageRequest;
486
482
  let canonicalRsc = null;
487
- if (cache === "shared" && props.kind === "app-page" && props.isRscRequest && props.matchKind === "request" && props.interceptionContext === null && props.interceptionId === null && props.mountedSlotsHeader === null) {
483
+ if (cache === "shared" && props.kind === "app-page" && props.isRscRequest && (props.matchKind === "request" || props.matchKind === "resolved") && props.interceptionContext === null && props.interceptionId === null && props.mountedSlotsHeader === null) {
488
484
  const headers = new Headers(dispatchRequest.headers);
489
485
  if (props.renderMode === "navigation" ? canonicalizePrewarmableRscRequestHeaders(headers) : props.renderMode === "prefetch-loading-shell" && props.canUseCanonicalLoadingShell ? canonicalizeLoadingShellRscRequestHeaders(headers) : false) {
490
486
  canonicalRsc = {
@@ -47,4 +47,5 @@ export declare function applyAppRscConfigHeaders(headers: Headers, request: Requ
47
47
  * to redirects regardless.
48
48
  */
49
49
  export declare function finalizeAppRscResponse(response: Response, request: Request, options: FinalizeAppRscResponseOptions): Promise<Response>;
50
- //#endregion
50
+ //#endregion
51
+ export {};
@@ -35,13 +35,25 @@ type AppRscInterceptForMatching = {
35
35
  interceptLoadings?: readonly unknown[];
36
36
  interceptLoadingTreePositions?: readonly number[];
37
37
  interceptNotFoundBranchSegments?: readonly string[];
38
+ interceptNotFounds?: readonly unknown[];
39
+ interceptNotFoundTreePositions?: readonly number[];
38
40
  __loadInterceptLayouts?: readonly (() => Promise<unknown>)[] | null;
39
41
  __loadInterceptLoadings?: readonly (() => Promise<unknown>)[] | null;
42
+ __loadInterceptNotFounds?: readonly (() => Promise<unknown>)[] | null;
40
43
  page: unknown;
41
44
  __pageLoader?: (() => Promise<unknown>) | null;
42
45
  notFound?: unknown;
43
46
  __loadNotFound?: (() => Promise<unknown>) | null;
44
47
  notFoundTreePosition?: number | null;
48
+ interceptForbiddens?: readonly unknown[];
49
+ interceptForbiddenTreePositions?: readonly number[];
50
+ __loadInterceptForbiddens?: readonly (() => Promise<unknown>)[] | null;
51
+ interceptUnauthorizeds?: readonly unknown[];
52
+ interceptUnauthorizedTreePositions?: readonly number[];
53
+ __loadInterceptUnauthorizeds?: readonly (() => Promise<unknown>)[] | null;
54
+ interceptErrors?: readonly unknown[];
55
+ interceptErrorTreePositions?: readonly number[];
56
+ __loadInterceptErrors?: readonly (() => Promise<unknown>)[] | null;
45
57
  params: readonly string[];
46
58
  };
47
59
  type AppRscSlotForMatching = {
@@ -60,13 +72,25 @@ type AppRscSiblingInterceptForMatching = {
60
72
  interceptLoadings?: readonly unknown[];
61
73
  interceptLoadingTreePositions?: readonly number[];
62
74
  interceptNotFoundBranchSegments?: readonly string[];
75
+ interceptNotFounds?: readonly unknown[];
76
+ interceptNotFoundTreePositions?: readonly number[];
63
77
  __loadInterceptLayouts?: readonly (() => Promise<unknown>)[] | null;
64
78
  __loadInterceptLoadings?: readonly (() => Promise<unknown>)[] | null;
79
+ __loadInterceptNotFounds?: readonly (() => Promise<unknown>)[] | null;
65
80
  page: unknown;
66
81
  __pageLoader?: (() => Promise<unknown>) | null;
67
82
  notFound?: unknown;
68
83
  __loadNotFound?: (() => Promise<unknown>) | null;
69
84
  notFoundTreePosition?: number | null;
85
+ interceptForbiddens?: readonly unknown[];
86
+ interceptForbiddenTreePositions?: readonly number[];
87
+ __loadInterceptForbiddens?: readonly (() => Promise<unknown>)[] | null;
88
+ interceptUnauthorizeds?: readonly unknown[];
89
+ interceptUnauthorizedTreePositions?: readonly number[];
90
+ __loadInterceptUnauthorizeds?: readonly (() => Promise<unknown>)[] | null;
91
+ interceptErrors?: readonly unknown[];
92
+ interceptErrorTreePositions?: readonly number[];
93
+ __loadInterceptErrors?: readonly (() => Promise<unknown>)[] | null;
70
94
  params: readonly string[];
71
95
  };
72
96
  type AppRscRouteForMatching = {
@@ -108,13 +132,25 @@ type AppRscInterceptLookupEntry = {
108
132
  interceptLoadings?: readonly unknown[];
109
133
  interceptLoadingTreePositions?: readonly number[];
110
134
  interceptNotFoundBranchSegments?: readonly string[];
135
+ interceptNotFounds?: readonly unknown[];
136
+ interceptNotFoundTreePositions?: readonly number[];
111
137
  __loadInterceptLayouts?: readonly (() => Promise<unknown>)[] | null;
112
138
  __loadInterceptLoadings?: readonly (() => Promise<unknown>)[] | null;
139
+ __loadInterceptNotFounds?: readonly (() => Promise<unknown>)[] | null;
113
140
  page: unknown;
114
141
  __pageLoader?: (() => Promise<unknown>) | null;
115
142
  notFound: unknown;
116
143
  __loadNotFound?: (() => Promise<unknown>) | null;
117
144
  notFoundTreePosition?: number | null;
145
+ interceptForbiddens?: readonly unknown[];
146
+ interceptForbiddenTreePositions?: readonly number[];
147
+ __loadInterceptForbiddens?: readonly (() => Promise<unknown>)[] | null;
148
+ interceptUnauthorizeds?: readonly unknown[];
149
+ interceptUnauthorizedTreePositions?: readonly number[];
150
+ __loadInterceptUnauthorizeds?: readonly (() => Promise<unknown>)[] | null;
151
+ interceptErrors?: readonly unknown[];
152
+ interceptErrorTreePositions?: readonly number[];
153
+ __loadInterceptErrors?: readonly (() => Promise<unknown>)[] | null;
118
154
  __loadState: AppRscInterceptLoadState;
119
155
  params: readonly string[];
120
156
  slotId: string | null;
@@ -141,4 +177,5 @@ export declare function createAppRscRouteMatcher<Route extends AppRscRouteForMat
141
177
  } | null;
142
178
  findIntercept(pathname: string, sourcePathname?: string | null, interceptionId?: string | null): AppRscInterceptMatch | null;
143
179
  };
144
- //#endregion
180
+ //#endregion
181
+ export {};
@@ -209,6 +209,9 @@ function createInterceptLookup(routes) {
209
209
  interceptLoadings: intercept.interceptLoadings,
210
210
  interceptLoadingTreePositions: intercept.interceptLoadingTreePositions,
211
211
  interceptNotFoundBranchSegments: intercept.interceptNotFoundBranchSegments,
212
+ interceptNotFounds: intercept.interceptNotFounds,
213
+ interceptNotFoundTreePositions: intercept.interceptNotFoundTreePositions,
214
+ __loadInterceptNotFounds: intercept.__loadInterceptNotFounds,
212
215
  __loadInterceptLayouts: intercept.__loadInterceptLayouts,
213
216
  __loadInterceptLoadings: intercept.__loadInterceptLoadings,
214
217
  page: intercept.page,
@@ -216,6 +219,15 @@ function createInterceptLookup(routes) {
216
219
  notFound: intercept.notFound,
217
220
  __loadNotFound: intercept.__loadNotFound,
218
221
  notFoundTreePosition: intercept.notFoundTreePosition,
222
+ interceptForbiddens: intercept.interceptForbiddens,
223
+ interceptForbiddenTreePositions: intercept.interceptForbiddenTreePositions,
224
+ __loadInterceptForbiddens: intercept.__loadInterceptForbiddens,
225
+ interceptUnauthorizeds: intercept.interceptUnauthorizeds,
226
+ interceptUnauthorizedTreePositions: intercept.interceptUnauthorizedTreePositions,
227
+ __loadInterceptUnauthorizeds: intercept.__loadInterceptUnauthorizeds,
228
+ interceptErrors: intercept.interceptErrors,
229
+ interceptErrorTreePositions: intercept.interceptErrorTreePositions,
230
+ __loadInterceptErrors: intercept.__loadInterceptErrors,
219
231
  __loadState: {
220
232
  page: intercept.page,
221
233
  pageLoading: null,
@@ -248,6 +260,9 @@ function createInterceptLookup(routes) {
248
260
  interceptLoadings: intercept.interceptLoadings,
249
261
  interceptLoadingTreePositions: intercept.interceptLoadingTreePositions,
250
262
  interceptNotFoundBranchSegments: intercept.interceptNotFoundBranchSegments,
263
+ interceptNotFounds: intercept.interceptNotFounds,
264
+ interceptNotFoundTreePositions: intercept.interceptNotFoundTreePositions,
265
+ __loadInterceptNotFounds: intercept.__loadInterceptNotFounds,
251
266
  __loadInterceptLayouts: intercept.__loadInterceptLayouts,
252
267
  __loadInterceptLoadings: intercept.__loadInterceptLoadings,
253
268
  page: intercept.page,
@@ -255,6 +270,15 @@ function createInterceptLookup(routes) {
255
270
  notFound: intercept.notFound,
256
271
  __loadNotFound: intercept.__loadNotFound,
257
272
  notFoundTreePosition: intercept.notFoundTreePosition,
273
+ interceptForbiddens: intercept.interceptForbiddens,
274
+ interceptForbiddenTreePositions: intercept.interceptForbiddenTreePositions,
275
+ __loadInterceptForbiddens: intercept.__loadInterceptForbiddens,
276
+ interceptUnauthorizeds: intercept.interceptUnauthorizeds,
277
+ interceptUnauthorizedTreePositions: intercept.interceptUnauthorizedTreePositions,
278
+ __loadInterceptUnauthorizeds: intercept.__loadInterceptUnauthorizeds,
279
+ interceptErrors: intercept.interceptErrors,
280
+ interceptErrorTreePositions: intercept.interceptErrorTreePositions,
281
+ __loadInterceptErrors: intercept.__loadInterceptErrors,
258
282
  __loadState: {
259
283
  page: intercept.page,
260
284
  pageLoading: null,
@@ -169,4 +169,5 @@ export declare function isAppPageStaticEligible(options: {
169
169
  isStaticGenerationEdgeRuntime: boolean;
170
170
  revalidateSeconds: number | null;
171
171
  }): boolean;
172
- //#endregion
172
+ //#endregion
173
+ export {};
@@ -1,3 +1,4 @@
1
+ import { compareFolderNames } from "../utils/compare.js";
1
2
  import { isEdgeApiRuntime } from "./edge-api-runtime.js";
2
3
  //#region src/server/app-segment-config.ts
3
4
  const DYNAMIC_VALUES = /* @__PURE__ */ new Set([
@@ -310,20 +311,6 @@ function hasGenerateStaticParamsExport(segment) {
310
311
  }
311
312
  const DEFAULT_SEGMENT_NAME = "__DEFAULT__";
312
313
  /**
313
- * Turbopack reads a folder's subfolders from a `BTreeMap<RcStr, _>`, whose
314
- * keys compare as Rust `str`s: by UTF-8 bytes. That is Unicode code point
315
- * order, which JavaScript's `<` (UTF-16 code units) doesn't match above the
316
- * Basic Multilingual Plane.
317
- * https://github.com/vercel/next.js/blob/v16.2.7/crates/next-core/src/app_structure.rs#L188-L192
318
- * https://github.com/vercel/next.js/blob/v16.2.7/turbopack/crates/turbo-rcstr/src/lib.rs#L350-L354
319
- */
320
- function compareFolderNames(a, b) {
321
- const left = Array.from(a, (char) => char.codePointAt(0) ?? 0);
322
- const right = Array.from(b, (char) => char.codePointAt(0) ?? 0);
323
- for (let index = 0; index < Math.min(left.length, right.length); index++) if (left[index] !== right[index]) return left[index] - right[index];
324
- return left.length - right.length;
325
- }
326
- /**
327
314
  * Collect the loader-tree segments of an App page route from its layout, page
328
315
  * and parallel-slot modules, for `lastDynamicSegmentHasGenerateStaticParams`.
329
316
  *
@@ -282,4 +282,5 @@ export declare function applyActionRedirectBasePath(url: string, basePath: strin
282
282
  export declare function isProgressiveServerActionRequest(request: Pick<Request, "method">, contentType: string, actionId: string | null): boolean;
283
283
  export declare function handleProgressiveServerActionRequest(options: HandleProgressiveServerActionRequestOptions): Promise<Response | ProgressiveServerActionResult | null>;
284
284
  export declare function handleServerActionRscRequest<TElement, TRoute extends AppServerActionRoute, TInterceptOpts, TTemporaryReferences, TPage = unknown>(options: HandleServerActionRscRequestOptions<TElement, TRoute, TInterceptOpts, TTemporaryReferences, TPage>): Promise<Response | null>;
285
- //#endregion
285
+ //#endregion
286
+ export {};
@@ -1,4 +1,5 @@
1
1
  import { runOutsideRequestScopes } from "../shims/internal/als-registry.js";
2
+ import { deferUntilStreamConsumed } from "./defer-until-stream-consumed.js";
2
3
  import { VINEXT_MW_CTX_HEADER } from "../utils/protocol-headers.js";
3
4
  import { buildRequestHeadersFromMiddlewareResponse } from "../utils/middleware-request-headers.js";
4
5
  import { parseEdgeRequestCookieHeader } from "../utils/parse-cookie.js";
@@ -16,17 +17,16 @@ import { isDraftModeRequest, setHeadersContext } from "../shims/headers.js";
16
17
  import { _drainPendingRevalidations, getAndClearActionRevalidationKind } from "../shims/cache-request-state.js";
17
18
  import { setCurrentFetchCacheMode, setCurrentFetchRevalidate, setCurrentFetchSoftTags, setCurrentForceDynamicFetchDefault } from "../shims/fetch-cache.js";
18
19
  import { readStreamAsTextWithLimit } from "../utils/text-stream.js";
19
- import { deferUntilStreamConsumed } from "./defer-until-stream-consumed.js";
20
20
  import { VINEXT_RSC_CONTENT_TYPE, applyRscCompatibilityIdHeader, createRscRequestUrl, stripRscCacheBustingSearchParam } from "./app-rsc-cache-busting.js";
21
21
  import { mergeMiddlewareResponseHeaders } from "./middleware-response-headers.js";
22
22
  import { applyEdgeRuntimeHeader } from "./app-page-response.js";
23
23
  import { getNextErrorDigest, parseNextHttpErrorDigest, parseNextRedirectDigest } from "./next-error-digest.js";
24
24
  import { hasDigest } from "./app-rsc-errors.js";
25
- import { buildAppPageTags } from "./implicit-tags.js";
26
- import "./app-page-stream.js";
27
25
  import { getSetCookieName } from "./cookie-utils.js";
28
26
  import { createServerActionNotFoundResponse, getServerActionNotFoundMessage, isServerActionNotFoundError } from "./server-action-not-found.js";
29
27
  import { resolveAppPageNavigationParams } from "./app-page-element-builder.js";
28
+ import "./app-page-stream.js";
29
+ import { buildAppPageTags } from "./implicit-tags.js";
30
30
  import { resolveAppPageActionRerenderTarget } from "./app-page-request.js";
31
31
  import { createRootParamsUsageController, runWithRootParamsUsage } from "../shims/root-params.js";
32
32
  import { createStaticGenerationHeadersContext } from "./app-static-generation.js";
@@ -70,6 +70,12 @@ export declare function handleSsr(rscStream: ReadableStream<Uint8Array>, navCont
70
70
  */
71
71
  isCacheCandidate?: boolean;
72
72
  fallbackToErrorDocumentOnShellError?: boolean;
73
+ /**
74
+ * The parallel slot not-found boundaries that catch the error that
75
+ * rejected the shell, or null when none catches it. The document then
76
+ * renders again from the same payload with them caught.
77
+ */
78
+ resolveCaughtNotFoundBoundaries?: (error: unknown) => readonly string[] | null;
73
79
  dynamicStaleTimeSeconds?: number;
74
80
  getInitialNavigationCacheMetadata?: () => InitialNavigationCacheMetadata;
75
81
  }): Promise<AppSsrRenderResult>;