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
@@ -0,0 +1,45 @@
1
+ import { readInt16LE, readUInt24LE, toHexString, toUTF8String } from "./utils.js";
2
+ //#region ../../node_modules/.pnpm/image-size@2.0.4/node_modules/image-size/dist/esm/types/webp.js
3
+ function calculateExtended(input) {
4
+ return {
5
+ height: 1 + readUInt24LE(input, 7),
6
+ width: 1 + readUInt24LE(input, 4)
7
+ };
8
+ }
9
+ function calculateLossless(input) {
10
+ return {
11
+ height: 1 + ((input[4] & 15) << 10 | input[3] << 2 | (input[2] & 192) >> 6),
12
+ width: 1 + ((input[2] & 63) << 8 | input[1])
13
+ };
14
+ }
15
+ function calculateLossy(input) {
16
+ return {
17
+ height: readInt16LE(input, 8) & 16383,
18
+ width: readInt16LE(input, 6) & 16383
19
+ };
20
+ }
21
+ const WEBP = {
22
+ validate(input) {
23
+ const riffHeader = "RIFF" === toUTF8String(input, 0, 4);
24
+ const webpHeader = "WEBP" === toUTF8String(input, 8, 12);
25
+ const vp8Header = "VP8" === toUTF8String(input, 12, 15);
26
+ return riffHeader && webpHeader && vp8Header;
27
+ },
28
+ calculate(_input) {
29
+ const chunkHeader = toUTF8String(_input, 12, 16);
30
+ const input = _input.slice(20, 30);
31
+ if (chunkHeader === "VP8X") {
32
+ const extendedHeader = input[0];
33
+ const validStart = (extendedHeader & 192) === 0;
34
+ const validEnd = (extendedHeader & 1) === 0;
35
+ if (validStart && validEnd) return calculateExtended(input);
36
+ throw new TypeError("Invalid WebP");
37
+ }
38
+ if (chunkHeader === "VP8 " && input[0] !== 47) return calculateLossy(input);
39
+ const signature = toHexString(input, 3, 6);
40
+ if (chunkHeader === "VP8L" && signature !== "9d012a") return calculateLossless(input);
41
+ throw new TypeError("Invalid WebP");
42
+ }
43
+ };
44
+ //#endregion
45
+ export { WEBP };
@@ -0,0 +1,38 @@
1
+ //#region ../../node_modules/.pnpm/image-size@2.0.4/node_modules/image-size/dist/esm/utils/bit-reader.js
2
+ var BitReader = class {
3
+ input;
4
+ endianness;
5
+ byteOffset = 2;
6
+ bitOffset = 0;
7
+ constructor(input, endianness) {
8
+ this.input = input;
9
+ this.endianness = endianness;
10
+ }
11
+ getBits(length = 1) {
12
+ let result = 0;
13
+ let bitsRead = 0;
14
+ while (bitsRead < length) {
15
+ if (this.byteOffset >= this.input.length) throw new Error("Reached end of input");
16
+ const currentByte = this.input[this.byteOffset];
17
+ const bitsLeft = 8 - this.bitOffset;
18
+ const bitsToRead = Math.min(length - bitsRead, bitsLeft);
19
+ if (this.endianness === "little-endian") {
20
+ const mask = (1 << bitsToRead) - 1;
21
+ const bits = currentByte >> this.bitOffset & mask;
22
+ result |= bits << bitsRead;
23
+ } else {
24
+ const bits = (currentByte & (1 << bitsToRead) - 1 << 8 - this.bitOffset - bitsToRead) >> 8 - this.bitOffset - bitsToRead;
25
+ result = result << bitsToRead | bits;
26
+ }
27
+ bitsRead += bitsToRead;
28
+ this.bitOffset += bitsToRead;
29
+ if (this.bitOffset === 8) {
30
+ this.byteOffset++;
31
+ this.bitOffset = 0;
32
+ }
33
+ }
34
+ return result;
35
+ }
36
+ };
37
+ //#endregion
38
+ export { BitReader };
@@ -1,6 +1,6 @@
1
1
  import { __commonJSMin } from "../../../../../../_virtual/_rolldown/runtime.js";
2
2
  //#region ../../node_modules/.pnpm/ua-parser-js@1.0.35/node_modules/ua-parser-js/src/ua-parser.js
3
- var require_ua_parser = /* @__PURE__ */ __commonJSMin(((exports, module) => {
3
+ var require_ua_parser = /* @__PURE__ */ __commonJSMin(((exports, module, this$1) => {
4
4
  (function(window, undefined) {
5
5
  "use strict";
6
6
  var LIBVERSION = "1.0.35", EMPTY = "", UNKNOWN = "?", FUNC_TYPE = "function", UNDEF_TYPE = "undefined", OBJ_TYPE = "object", STR_TYPE = "string", MAJOR = "major", MODEL = "model", NAME = "name", TYPE = "type", VENDOR = "vendor", VERSION = "version", ARCHITECTURE = "architecture", CONSOLE = "console", MOBILE = "mobile", TABLET = "tablet", SMARTTV = "smarttv", WEARABLE = "wearable", EMBEDDED = "embedded", UA_MAX_LENGTH = 350, AMAZON = "Amazon", APPLE = "Apple", ASUS = "ASUS", BLACKBERRY = "BlackBerry", BROWSER = "Browser", CHROME = "Chrome", EDGE = "Edge", FIREFOX = "Firefox", GOOGLE = "Google", HUAWEI = "Huawei", LG = "LG", MICROSOFT = "Microsoft", MOTOROLA = "Motorola", OPERA = "Opera", SAMSUNG = "Samsung", SHARP = "Sharp", SONY = "Sony", XIAOMI = "Xiaomi", ZEBRA = "Zebra", FACEBOOK = "Facebook", CHROMIUM_OS = "Chromium OS", MAC_OS = "Mac OS";
@@ -1050,7 +1050,7 @@ var require_ua_parser = /* @__PURE__ */ __commonJSMin(((exports, module) => {
1050
1050
  for (var prop in result) $.ua[prop] = result[prop];
1051
1051
  };
1052
1052
  }
1053
- })(typeof window === "object" ? window : exports);
1053
+ })(typeof window === "object" ? window : this$1);
1054
1054
  }));
1055
1055
  //#endregion
1056
1056
  export default require_ua_parser();
@@ -13,16 +13,30 @@ export declare function generateBrowserEntry(routes?: readonly AppRoute[], pages
13
13
  afterFiles: NextRewrite[];
14
14
  beforeFiles: NextRewrite[];
15
15
  fallback: NextRewrite[];
16
- }, locales?: readonly string[]): string;
16
+ }, locales?: readonly string[], classifier?: AppRouteDynamicRenderClassifier): string;
17
17
  /**
18
18
  * App route handlers for hybrid App/Pages ownership, with their static
19
19
  * segments hashed so the client never receives their paths in plain text.
20
20
  */
21
21
  export declare function toHashedRouteHandlerRoutes(routes: readonly AppRoute[]): VinextLinkPrefetchRoute[];
22
+ type AppRouteIntercept = AppRoute["siblingIntercepts"][number];
23
+ /** Reads, at build time, which App pages Next.js renders on every request. */
24
+ export type AppRouteDynamicRenderClassifier = {
25
+ route(route: AppRoute): boolean;
26
+ /**
27
+ * `layoutPaths` holds the layouts above the intercepting page outside its
28
+ * own branch: the source route's, and the slot's.
29
+ */
30
+ intercept(intercept: AppRouteIntercept, layoutPaths: readonly string[]): boolean;
31
+ };
22
32
  /** Project an `AppRoute` down to the public `VinextLinkPrefetchRoute` shape. */
23
- export declare function toLinkPrefetchRoute(route: AppRoute, hasSiblingInterceptLoading?: boolean): VinextLinkPrefetchRoute;
24
- /** Project App routes together so sibling-intercept loading is applied to its target route. */
25
- export declare function toLinkPrefetchRoutes(routes: readonly AppRoute[]): VinextLinkPrefetchRoute[];
33
+ export declare function toLinkPrefetchRoute(route: AppRoute, hasSiblingInterceptLoading?: boolean, rendersDynamically?: boolean): VinextLinkPrefetchRoute;
34
+ /**
35
+ * Project App routes together so sibling-intercept loading is applied to its
36
+ * target route. `classifier` reads each route's segment config, and each
37
+ * intercepting page's, which applies to its target route.
38
+ */
39
+ export declare function toLinkPrefetchRoutes(routes: readonly AppRoute[], classifier?: AppRouteDynamicRenderClassifier): VinextLinkPrefetchRoute[];
26
40
  /**
27
41
  * Generate the virtual module that holds the browser RouteManifest.
28
42
  *
@@ -31,4 +45,5 @@ export declare function toLinkPrefetchRoutes(routes: readonly AppRoute[]): Vinex
31
45
  * JSON string keeps the parse on V8's fast JSON path.
32
46
  */
33
47
  export declare function generateBrowserRouteManifestModule(routeManifest: RouteManifest | null): string;
34
- //#endregion
48
+ //#endregion
49
+ export {};
@@ -15,10 +15,10 @@ function generateBrowserEntry(routes = [], pagesPrefetchRoutes = [], rewrites =
15
15
  afterFiles: [],
16
16
  beforeFiles: [],
17
17
  fallback: []
18
- }, locales = []) {
18
+ }, locales = [], classifier) {
19
19
  const entryPath = resolveRuntimeEntryModule("app-browser-entry");
20
20
  const reactInstanceBootstrapPath = resolveClientRuntimeModule("react-instance-bootstrap");
21
- const prefetchRoutes = toLinkPrefetchRoutes(routes);
21
+ const prefetchRoutes = toLinkPrefetchRoutes(routes, classifier);
22
22
  const routeHandlers = pagesPrefetchRoutes.length > 0 ? toHashedRouteHandlerRoutes(routes) : [];
23
23
  const clientRewrites = toClientRewrites(rewrites);
24
24
  return `import ${JSON.stringify(reactInstanceBootstrapPath)};
@@ -69,20 +69,93 @@ function hasLoadingBoundary(route, hasSiblingInterceptLoading) {
69
69
  return route.loadingPath !== null || (route.loadingPaths?.some((_, index) => (route.loadingTreePositions?.[index] ?? 0) > 0) ?? false) || route.parallelSlots.some((slot) => slot.loadingPath !== null || (slot.loadingPaths?.length ?? 0) > 0 || slot.interceptingRoutes.some((intercept) => interceptTargetsRoute(intercept.targetPattern, route) && (intercept.loadingPaths?.length ?? 0) > 0)) || hasSiblingInterceptLoading;
70
70
  }
71
71
  /** Project an `AppRoute` down to the public `VinextLinkPrefetchRoute` shape. */
72
- function toLinkPrefetchRoute(route, hasSiblingInterceptLoading = route.siblingIntercepts.some((intercept) => interceptTargetsRoute(intercept.targetPattern, route) && (intercept.loadingPaths?.length ?? 0) > 0)) {
72
+ function toLinkPrefetchRoute(route, hasSiblingInterceptLoading = route.siblingIntercepts.some((intercept) => interceptTargetsRoute(intercept.targetPattern, route) && (intercept.loadingPaths?.length ?? 0) > 0), rendersDynamically = false) {
73
73
  return {
74
74
  canPrefetchLoadingShell: hasLoadingBoundary(route, hasSiblingInterceptLoading),
75
75
  patternParts: [...route.patternParts],
76
76
  isDynamic: route.isDynamic,
77
+ ...rendersDynamically ? { rendersDynamically: true } : {},
77
78
  ...requiresDynamicNavigationRequest(route) ? { requiresDynamicNavigationRequest: true } : {},
78
79
  ...(route.rootParamNames?.length ?? 0) > 0 ? { hasRootParams: true } : {}
79
80
  };
80
81
  }
81
- /** Project App routes together so sibling-intercept loading is applied to its target route. */
82
- function toLinkPrefetchRoutes(routes) {
82
+ /**
83
+ * Project App routes together so sibling-intercept loading is applied to its
84
+ * target route. `classifier` reads each route's segment config, and each
85
+ * intercepting page's, which applies to its target route.
86
+ */
87
+ function toLinkPrefetchRoutes(routes, classifier) {
83
88
  const siblingInterceptLoadingTargets = [];
84
89
  for (const route of routes) for (const intercept of route.siblingIntercepts) if ((intercept.loadingPaths?.length ?? 0) > 0) siblingInterceptLoadingTargets.push(splitPatternParts(intercept.targetPattern));
85
- return routes.filter(isLinkPrefetchRoute).map((route) => toLinkPrefetchRoute(route, siblingInterceptLoadingTargets.some((targetParts) => patternsStructurallyEquivalent(targetParts, route.patternParts))));
90
+ const intercepts = classifier ? collectClassifiedIntercepts(routes, classifier) : [];
91
+ return routes.filter(isLinkPrefetchRoute).map((route) => {
92
+ const prefetchRoute = toLinkPrefetchRoute(route, siblingInterceptLoadingTargets.some((targetParts) => patternsStructurallyEquivalent(targetParts, route.patternParts)), classifier?.route(route) ?? false);
93
+ const routeIntercepts = intercepts.filter(({ targetPatternParts }) => interceptTargetMayMatchRoute(targetPatternParts, route.patternParts)).map(({ intercept }) => intercept);
94
+ return routeIntercepts.length > 0 ? {
95
+ ...prefetchRoute,
96
+ intercepts: routeIntercepts
97
+ } : prefetchRoute;
98
+ });
99
+ }
100
+ /**
101
+ * Whether some URL matches both the intercept's target and the route:
102
+ * `/foo/:id` also intercepts a static `/foo/static` route, and `/:name/static`
103
+ * crosses `/foo/:id` at `/foo/static`. A catch-all counts as overlapping; the
104
+ * client checks the URL against the intercept's own target pattern anyway.
105
+ */
106
+ function interceptTargetMayMatchRoute(targetPatternParts, routePatternParts) {
107
+ const isParam = (part) => part.startsWith(":");
108
+ const isCatchAll = (part) => isParam(part) && (part.endsWith("+") || part.endsWith("*"));
109
+ for (let index = 0;; index++) {
110
+ const target = targetPatternParts[index];
111
+ const route = routePatternParts[index];
112
+ if (target === void 0 || route === void 0) {
113
+ const rest = target ?? route;
114
+ return rest === void 0 || isCatchAll(rest) && rest.endsWith("*");
115
+ }
116
+ if (isCatchAll(target) || isCatchAll(route)) return true;
117
+ if (!isParam(target) && !isParam(route) && target !== route) return false;
118
+ }
119
+ }
120
+ /**
121
+ * Every intercepting page once, with its classification. A slot's intercepts
122
+ * are listed on each route that shares the slot. The intercepted response also
123
+ * renders branches of its source route that the intercepting page's tree
124
+ * doesn't cover, such as other slots, so a source route that renders
125
+ * dynamically makes the intercept dynamic too. The client also counts the
126
+ * descendant route an interception context resolves to.
127
+ */
128
+ function collectClassifiedIntercepts(routes, classifier) {
129
+ const sources = /* @__PURE__ */ new Map();
130
+ const add = (intercept, layoutPaths, route) => {
131
+ const key = `${intercept.sourceMatchPattern}\0${intercept.pagePath}`;
132
+ const seen = sources.get(key);
133
+ if (seen && (seen.route.pattern === intercept.sourceMatchPattern || route.pattern !== intercept.sourceMatchPattern)) return;
134
+ sources.set(key, {
135
+ intercept,
136
+ layoutPaths,
137
+ route
138
+ });
139
+ };
140
+ for (const route of routes) {
141
+ for (const slot of route.parallelSlots) {
142
+ const slotLayoutPaths = slot.layoutPath ? [...route.layouts, slot.layoutPath] : route.layouts;
143
+ for (const intercept of slot.interceptingRoutes) add(intercept, slotLayoutPaths, route);
144
+ }
145
+ for (const intercept of route.siblingIntercepts) add(intercept, route.layouts, route);
146
+ }
147
+ return [...sources.values()].map(({ intercept, layoutPaths, route }) => {
148
+ const rendersDynamically = classifier.intercept(intercept, [...layoutPaths, ...intercept.layoutPaths]) || classifier.route(route);
149
+ const targetPatternParts = splitPatternParts(intercept.targetPattern);
150
+ return {
151
+ intercept: {
152
+ sourcePatternParts: splitPatternParts(intercept.sourceMatchPattern),
153
+ targetPatternParts,
154
+ ...rendersDynamically ? { rendersDynamically: true } : {}
155
+ },
156
+ targetPatternParts
157
+ };
158
+ });
86
159
  }
87
160
  /**
88
161
  * Generate the virtual module that holds the browser RouteManifest.
@@ -112,4 +112,5 @@ export declare function generateAppRequestRscEntry(appDir: string, routes: AppRo
112
112
  export declare function generateRscEntry(appDir: string, routes: AppRoute[], middlewarePath?: string | null, metadataRoutes?: MetadataFileRoute[], globalErrorPath?: string | null, basePath?: string, trailingSlash?: boolean, config?: AppRouterConfig, instrumentationPath?: string | null, responseStageOnly?: boolean): string;
113
113
  /** Generate the response-only App RSC graph used by the named cache stage. */
114
114
  export declare function generateAppResponseRscEntry(appDir: string, routes: AppRoute[], _middlewarePath?: string | null, metadataRoutes?: MetadataFileRoute[], globalErrorPath?: string | null, basePath?: string, trailingSlash?: boolean, config?: AppRouterConfig, instrumentationPath?: string | null): string;
115
- //#endregion
115
+ //#endregion
116
+ export {};
@@ -6,8 +6,8 @@ import { extractExportConstString, getAppRouteRenderEntryPath } from "../build/r
6
6
  import { routePatternParts } from "../routing/route-pattern.js";
7
7
  import { safeJsonStringify } from "../server/html.js";
8
8
  import { DEFAULT_DEVICE_SIZES, DEFAULT_IMAGE_SIZES } from "../server/image-optimization.js";
9
- import { buildAppRscManifestCode } from "./app-rsc-manifest.js";
10
9
  import { classifyAppPageRouteStaticEligibility } from "../build/app-page-static-eligibility.js";
10
+ import { buildAppRscManifestCode } from "./app-rsc-manifest.js";
11
11
  import { generateDevOriginCheckCode } from "../server/dev-origin-check.js";
12
12
  import { ACTION_OWNER_MANIFEST_ID } from "../plugins/action-owner-manifest.js";
13
13
  import fs from "node:fs";
@@ -46,7 +46,8 @@ const appPageRequestPath = resolveEntryPath("../server/app-page-request.js", imp
46
46
  const appSegmentConfigPath = resolveEntryPath("../server/app-segment-config.js", import.meta.url);
47
47
  const appRscRouteMatchingPath = resolveEntryPath("../server/app-rsc-route-matching.js", import.meta.url);
48
48
  const appRscResponseStagePath = resolveEntryPath("../server/app-rsc-response-stage.js", import.meta.url);
49
- const rscStreamHintsPath = resolveEntryPath("../server/rsc-stream-hints.js", import.meta.url);
49
+ const rscRenderStreamPath = resolveEntryPath("../server/rsc-render-stream.js", import.meta.url);
50
+ const appClientReferenceManifestPath = resolveEntryPath("../server/app-client-reference-manifest.js", import.meta.url);
50
51
  const isrCachePath = resolveEntryPath("../server/isr-cache.js", import.meta.url);
51
52
  const thenableParamsShimPath = resolveEntryPath("../shims/thenable-params.js", import.meta.url);
52
53
  const appPageElementBuilderPath = resolveEntryPath("../server/app-page-element-builder.js", import.meta.url);
@@ -157,10 +158,18 @@ function buildAppRequestRouteMetadata(routes) {
157
158
  interceptBranchSegments: intercept.branchSegments ?? [],
158
159
  interceptLoadings: [],
159
160
  interceptLoadingTreePositions: intercept.loadingTreePositions ?? [],
161
+ interceptNotFounds: [],
162
+ interceptNotFoundTreePositions: intercept.notFoundTreePositions ?? [],
160
163
  interceptNotFoundBranchSegments: intercept.notFoundBranchSegments ?? intercept.branchSegments ?? [],
161
164
  page: null,
162
165
  notFound: null,
163
166
  notFoundTreePosition: intercept.notFoundTreePosition ?? null,
167
+ interceptForbiddens: [],
168
+ interceptForbiddenTreePositions: intercept.forbiddenTreePositions ?? [],
169
+ interceptUnauthorizeds: [],
170
+ interceptUnauthorizedTreePositions: intercept.unauthorizedTreePositions ?? [],
171
+ interceptErrors: [],
172
+ interceptErrorTreePositions: intercept.errorTreePositions ?? [],
164
173
  params: intercept.params
165
174
  }))
166
175
  }])),
@@ -175,10 +184,18 @@ function buildAppRequestRouteMetadata(routes) {
175
184
  interceptBranchSegments: intercept.branchSegments ?? [],
176
185
  interceptLoadings: [],
177
186
  interceptLoadingTreePositions: intercept.loadingTreePositions ?? [],
187
+ interceptNotFounds: [],
188
+ interceptNotFoundTreePositions: intercept.notFoundTreePositions ?? [],
178
189
  interceptNotFoundBranchSegments: intercept.notFoundBranchSegments ?? intercept.branchSegments ?? [],
179
190
  page: null,
180
191
  notFound: null,
181
192
  notFoundTreePosition: intercept.notFoundTreePosition ?? null,
193
+ interceptForbiddens: [],
194
+ interceptForbiddenTreePositions: intercept.forbiddenTreePositions ?? [],
195
+ interceptUnauthorizeds: [],
196
+ interceptUnauthorizedTreePositions: intercept.unauthorizedTreePositions ?? [],
197
+ interceptErrors: [],
198
+ interceptErrorTreePositions: intercept.errorTreePositions ?? [],
182
199
  params: intercept.params
183
200
  }))
184
201
  }));
@@ -515,16 +532,13 @@ import ${JSON.stringify(appRouteRequestBuiltInsPath)};` : ""}
515
532
  import ${JSON.stringify(serverGlobalsPath)};
516
533
  import __cacheabilityManifest from "virtual:vinext-cacheability-manifest";
517
534
  export { __cacheabilityManifest };
518
- import {
519
- renderToReadableStream as _renderToReadableStream,
520
- ${hasServerActions ? `loadServerAction,
521
- createTemporaryReferenceSet,` : ""}
522
- } from ${JSON.stringify(hasServerActions ? "@vitejs/plugin-rsc/rsc" : "@vitejs/plugin-rsc/react/rsc")};
523
- import {
535
+ ${hasServerActions ? `import { loadServerAction, createTemporaryReferenceSet } from "@vitejs/plugin-rsc/rsc";\n` : ""}import {
524
536
  createClientManifest as _createClientManifest,${hasServerActions ? `
525
537
  createServerManifest as _createServerManifest,` : ""}
526
538
  } from "@vitejs/plugin-rsc/core/rsc";
539
+ import { renderToReadableStream as _renderToReadableStream } from "@vitejs/plugin-rsc/vendor/react-server-dom/server.edge";
527
540
  import { prerender as _prerender } from "@vitejs/plugin-rsc/vendor/react-server-dom/static.edge";
541
+ import { createClientReferenceChunksManifest } from ${JSON.stringify(appClientReferenceManifestPath)};
528
542
  ${hasServerActions ? `// plugin-rsc's decoders fix an unscoped server manifest; React's own take the
529
543
  // manifest, so actions can scope the server references they decode per route.
530
544
  import {
@@ -532,12 +546,18 @@ import {
532
546
  decodeFormState as _decodeFormState,
533
547
  decodeReply as _decodeReply,
534
548
  } from "@vitejs/plugin-rsc/vendor/react-server-dom/server.edge";
535
- ` : ""}import { createRscPrerenderer, createRscRenderer } from ${JSON.stringify(rscStreamHintsPath)};
549
+ ` : ""}import { createRscRenderer } from ${JSON.stringify(rscRenderStreamPath)};
536
550
 
537
- const renderToReadableStream = createRscRenderer(_renderToReadableStream);
538
- const prerenderToReadableStream = createRscPrerenderer(async (model, options) =>
539
- _prerender(model, _createClientManifest(), options),
551
+ // Each render takes a fresh client manifest: in development, its references
552
+ // carry a new cache tag.
553
+ const __withClientReferenceChunks = createClientReferenceChunksManifest(
554
+ __pagesClientAssets.appClientReferenceChunks,
555
+ );
556
+ const renderToReadableStream = createRscRenderer((model, options) =>
557
+ _renderToReadableStream(model, __withClientReferenceChunks(_createClientManifest()), options),
540
558
  );
559
+ const prerenderToReadableStream = (model, options) =>
560
+ _prerender(model, __withClientReferenceChunks(_createClientManifest()), options);
541
561
  import { createElement } from "react";
542
562
  import { getNavigationContext as _getNavigationContext } from "next/navigation";
543
563
  import { configureMemoryCacheHandler as __configureMemoryCacheHandler } from "vinext/shims/cache-handler";
@@ -1133,9 +1153,11 @@ ${responseStageOnly ? "const __responseStageOptions = {" : "const __appRscHandle
1133
1153
  observeMetadataSearchParamsAccess: buildOptions?.observeMetadataSearchParamsAccess === true,
1134
1154
  observePageSearchParamsAccess: buildOptions?.observePageSearchParamsAccess === true,
1135
1155
  isForceStatic: buildOptions?.isForceStatic === true,
1156
+ isUncacheableRender: buildOptions?.isUncacheableRender === true,
1136
1157
  serveStreamingMetadata: buildOptions?.serveStreamingMetadata,
1137
1158
  placeStreamedMetadataInHead: buildOptions?.placeStreamedMetadataInHead === true,
1138
1159
  isProduction: process.env.NODE_ENV === "production",
1160
+ onHeadPrepared: buildOptions?.onHeadPrepared,
1139
1161
  }, layoutParamAccess, displayPathname, scriptNonce);
1140
1162
  },
1141
1163
  clientReuseManifest,
@@ -1590,6 +1612,14 @@ ${responseStageOnly ? "const __responseStageOptions = {" : "const __appRscHandle
1590
1612
  interceptNotFoundBranchSegments: intercept.interceptNotFoundBranchSegments,
1591
1613
  interceptNotFound: intercept.notFound,
1592
1614
  interceptNotFoundTreePosition: intercept.notFoundTreePosition,
1615
+ interceptForbiddens: intercept.interceptForbiddens,
1616
+ interceptForbiddenTreePositions: intercept.interceptForbiddenTreePositions,
1617
+ interceptUnauthorizeds: intercept.interceptUnauthorizeds,
1618
+ interceptUnauthorizedTreePositions: intercept.interceptUnauthorizedTreePositions,
1619
+ interceptErrors: intercept.interceptErrors,
1620
+ interceptErrorTreePositions: intercept.interceptErrorTreePositions,
1621
+ interceptNotFounds: intercept.interceptNotFounds,
1622
+ interceptNotFoundTreePositions: intercept.interceptNotFoundTreePositions,
1593
1623
  interceptSlotId: intercept.slotId,
1594
1624
  interceptSlotKey: intercept.slotKey,
1595
1625
  interceptSourceMatchedUrl: interceptionContext,
@@ -60,4 +60,5 @@ export declare function rootBoundaryFiles(routes: readonly AppRoute[]): string[]
60
60
  */
61
61
  export declare function rootBoundaryRouteFiles(routes: readonly AppRoute[]): string[];
62
62
  export declare function buildAppRscManifestCode(options: BuildAppRscManifestCodeOptions): AppRscManifestCode;
63
- //#endregion
63
+ //#endregion
64
+ export {};
@@ -95,6 +95,11 @@ function registerRouteModules(routes, imports) {
95
95
  if (route.unauthorizedPaths) {
96
96
  for (const up of route.unauthorizedPaths) if (up) imports.getLazyLoaderVar(up);
97
97
  }
98
+ for (const boundaryPath of [
99
+ ...route.segmentNotFoundPaths ?? [],
100
+ ...route.segmentForbiddenPaths ?? [],
101
+ ...route.segmentUnauthorizedPaths ?? []
102
+ ]) imports.getLazyLoaderVar(boundaryPath);
98
103
  for (const slot of route.parallelSlots) {
99
104
  if (slot.pagePath) imports.getLazyLoaderVar(slot.pagePath);
100
105
  if (slot.defaultPath) imports.getLazyLoaderVar(slot.defaultPath);
@@ -104,9 +109,14 @@ function registerRouteModules(routes, imports) {
104
109
  for (const loadingPath of slot.loadingPaths ?? []) imports.getLazyLoaderVar(loadingPath);
105
110
  if (slot.errorPath) imports.getLazyLoaderVar(slot.errorPath);
106
111
  if (slot.notFoundPath) imports.getLazyLoaderVar(slot.notFoundPath);
112
+ for (const notFoundPath of slot.notFoundPaths ?? []) imports.getLazyLoaderVar(notFoundPath);
107
113
  for (const ir of slot.interceptingRoutes) {
108
114
  imports.getLazyLoaderVar(ir.pagePath);
109
115
  if (ir.notFoundPath) imports.getLazyLoaderVar(ir.notFoundPath);
116
+ for (const forbiddenPath of ir.forbiddenPaths ?? []) imports.getLazyLoaderVar(forbiddenPath);
117
+ for (const unauthorizedPath of ir.unauthorizedPaths ?? []) imports.getLazyLoaderVar(unauthorizedPath);
118
+ for (const errorPath of ir.errorPaths ?? []) imports.getLazyLoaderVar(errorPath);
119
+ for (const notFoundPath of ir.notFoundPaths ?? []) imports.getLazyLoaderVar(notFoundPath);
110
120
  for (const layoutPath of ir.layoutPaths) imports.getLazyLoaderVar(layoutPath);
111
121
  for (const loadingPath of ir.loadingPaths ?? []) imports.getLazyLoaderVar(loadingPath);
112
122
  }
@@ -114,6 +124,10 @@ function registerRouteModules(routes, imports) {
114
124
  for (const ir of route.siblingIntercepts ?? []) {
115
125
  imports.getLazyLoaderVar(ir.pagePath);
116
126
  if (ir.notFoundPath) imports.getLazyLoaderVar(ir.notFoundPath);
127
+ for (const forbiddenPath of ir.forbiddenPaths ?? []) imports.getLazyLoaderVar(forbiddenPath);
128
+ for (const unauthorizedPath of ir.unauthorizedPaths ?? []) imports.getLazyLoaderVar(unauthorizedPath);
129
+ for (const errorPath of ir.errorPaths ?? []) imports.getLazyLoaderVar(errorPath);
130
+ for (const notFoundPath of ir.notFoundPaths ?? []) imports.getLazyLoaderVar(notFoundPath);
117
131
  for (const layoutPath of ir.layoutPaths) imports.getLazyLoaderVar(layoutPath);
118
132
  for (const loadingPath of ir.loadingPaths ?? []) imports.getLazyLoaderVar(loadingPath);
119
133
  }
@@ -153,11 +167,23 @@ function buildRouteEntries(routes, imports) {
153
167
  __loadInterceptLoadings: ${lazyLoaderArray(ir.loadingPaths ?? [], imports)},
154
168
  interceptLoadingTreePositions: ${JSON.stringify(ir.loadingTreePositions ?? [])},
155
169
  interceptNotFoundBranchSegments: ${JSON.stringify(ir.notFoundBranchSegments ?? ir.branchSegments ?? [])},
170
+ interceptNotFounds: ${moduleArray(ir.notFoundPaths?.length ?? 0)},
171
+ __loadInterceptNotFounds: ${lazyLoaderArray(ir.notFoundPaths ?? [], imports)},
172
+ interceptNotFoundTreePositions: ${JSON.stringify(ir.notFoundTreePositions ?? [])},
156
173
  page: null,
157
174
  __pageLoader: ${imports.getLazyLoaderVar(ir.pagePath)},
158
175
  notFound: null,
159
176
  __loadNotFound: ${ir.notFoundPath ? imports.getLazyLoaderVar(ir.notFoundPath) : "null"},
160
177
  notFoundTreePosition: ${ir.notFoundTreePosition ?? "null"},
178
+ interceptForbiddens: ${moduleArray(ir.forbiddenPaths?.length ?? 0)},
179
+ __loadInterceptForbiddens: ${lazyLoaderArray(ir.forbiddenPaths ?? [], imports)},
180
+ interceptForbiddenTreePositions: ${JSON.stringify(ir.forbiddenTreePositions ?? [])},
181
+ interceptUnauthorizeds: ${moduleArray(ir.unauthorizedPaths?.length ?? 0)},
182
+ __loadInterceptUnauthorizeds: ${lazyLoaderArray(ir.unauthorizedPaths ?? [], imports)},
183
+ interceptUnauthorizedTreePositions: ${JSON.stringify(ir.unauthorizedTreePositions ?? [])},
184
+ interceptErrors: ${moduleArray(ir.errorPaths?.length ?? 0)},
185
+ __loadInterceptErrors: ${lazyLoaderArray(ir.errorPaths ?? [], imports)},
186
+ interceptErrorTreePositions: ${JSON.stringify(ir.errorTreePositions ?? [])},
161
187
  params: ${JSON.stringify(ir.params)},
162
188
  }`);
163
189
  const slotEntries = route.parallelSlots.map((slot) => {
@@ -174,11 +200,23 @@ function buildRouteEntries(routes, imports) {
174
200
  __loadInterceptLoadings: ${lazyLoaderArray(ir.loadingPaths ?? [], imports)},
175
201
  interceptLoadingTreePositions: ${JSON.stringify(ir.loadingTreePositions ?? [])},
176
202
  interceptNotFoundBranchSegments: ${JSON.stringify(ir.notFoundBranchSegments ?? ir.branchSegments ?? [])},
203
+ interceptNotFounds: ${moduleArray(ir.notFoundPaths?.length ?? 0)},
204
+ __loadInterceptNotFounds: ${lazyLoaderArray(ir.notFoundPaths ?? [], imports)},
205
+ interceptNotFoundTreePositions: ${JSON.stringify(ir.notFoundTreePositions ?? [])},
177
206
  page: null,
178
207
  __pageLoader: ${imports.getLazyLoaderVar(ir.pagePath)},
179
208
  notFound: null,
180
209
  __loadNotFound: ${ir.notFoundPath ? imports.getLazyLoaderVar(ir.notFoundPath) : "null"},
181
210
  notFoundTreePosition: ${ir.notFoundTreePosition ?? "null"},
211
+ interceptForbiddens: ${moduleArray(ir.forbiddenPaths?.length ?? 0)},
212
+ __loadInterceptForbiddens: ${lazyLoaderArray(ir.forbiddenPaths ?? [], imports)},
213
+ interceptForbiddenTreePositions: ${JSON.stringify(ir.forbiddenTreePositions ?? [])},
214
+ interceptUnauthorizeds: ${moduleArray(ir.unauthorizedPaths?.length ?? 0)},
215
+ __loadInterceptUnauthorizeds: ${lazyLoaderArray(ir.unauthorizedPaths ?? [], imports)},
216
+ interceptUnauthorizedTreePositions: ${JSON.stringify(ir.unauthorizedTreePositions ?? [])},
217
+ interceptErrors: ${moduleArray(ir.errorPaths?.length ?? 0)},
218
+ __loadInterceptErrors: ${lazyLoaderArray(ir.errorPaths ?? [], imports)},
219
+ interceptErrorTreePositions: ${JSON.stringify(ir.errorTreePositions ?? [])},
182
220
  params: ${JSON.stringify(ir.params)},
183
221
  }`);
184
222
  return ` ${JSON.stringify(slot.key)}: {
@@ -204,6 +242,9 @@ function buildRouteEntries(routes, imports) {
204
242
  notFound: null,
205
243
  __loadNotFound: ${slot.notFoundPath ? imports.getLazyLoaderVar(slot.notFoundPath) : "null"},
206
244
  notFoundTreePosition: ${slot.notFoundTreePosition ?? "null"},
245
+ notFounds: ${moduleArray(slot.notFoundPaths?.length ?? 0)},
246
+ __loadNotFounds: ${lazyLoaderArray(slot.notFoundPaths ?? [], imports)},
247
+ notFoundTreePositions: ${JSON.stringify(slot.notFoundTreePositions ?? [])},
207
248
  layoutIndex: ${slot.layoutIndex},
208
249
  routeSegments: ${JSON.stringify(slot.routeSegments)},
209
250
  slotPatternParts: ${slot.slotPatternParts ? JSON.stringify(slot.slotPatternParts) : "null"},
@@ -214,6 +255,9 @@ ${interceptEntries.join(",\n")}
214
255
  }`;
215
256
  });
216
257
  const layoutErrorPaths = route.layoutErrorPaths ?? [];
258
+ const segmentNotFoundPaths = route.segmentNotFoundPaths ?? [];
259
+ const segmentForbiddenPaths = route.segmentForbiddenPaths ?? [];
260
+ const segmentUnauthorizedPaths = route.segmentUnauthorizedPaths ?? [];
217
261
  const errorPaths = route.errorPaths ?? [];
218
262
  const layoutErrorLoaders = lazyLoaderArray(layoutErrorPaths, imports);
219
263
  const errorLoaders = lazyLoaderArray(errorPaths, imports);
@@ -276,6 +320,15 @@ ${siblingInterceptEntries.join(",\n")}
276
320
  unauthorizedTreePosition: ${route.unauthorizedTreePosition ?? "null"},
277
321
  unauthorizeds: ${moduleArray(unauthorizedPaths.length)},
278
322
  __loadUnauthorizeds: ${unauthorizedLoaders},
323
+ segmentNotFounds: ${moduleArray(segmentNotFoundPaths.length)},
324
+ __loadSegmentNotFounds: ${lazyLoaderArray(segmentNotFoundPaths, imports)},
325
+ segmentNotFoundTreePositions: ${JSON.stringify(route.segmentNotFoundTreePositions ?? [])},
326
+ segmentForbiddens: ${moduleArray(segmentForbiddenPaths.length)},
327
+ __loadSegmentForbiddens: ${lazyLoaderArray(segmentForbiddenPaths, imports)},
328
+ segmentForbiddenTreePositions: ${JSON.stringify(route.segmentForbiddenTreePositions ?? [])},
329
+ segmentUnauthorizeds: ${moduleArray(segmentUnauthorizedPaths.length)},
330
+ __loadSegmentUnauthorizeds: ${lazyLoaderArray(segmentUnauthorizedPaths, imports)},
331
+ segmentUnauthorizedTreePositions: ${JSON.stringify(route.segmentUnauthorizedTreePositions ?? [])},
279
332
  }`;
280
333
  });
281
334
  }
@@ -1,2 +1 @@
1
- import { findFileWithExts } from "../routing/file-matcher.js";
2
- export { findFileWithExts };
1
+ export { findFileWithExts } from "../routing/file-matcher.js";
@@ -17,4 +17,5 @@ export declare function generatePagesRequestEntry(pagesDir: string, nextConfig:
17
17
  */
18
18
  export declare function generatePagesResponseEntry(pagesDir: string, nextConfig: ResolvedNextConfig, fileMatcher: ReturnType<typeof createValidFileMatcher>, middlewarePath: string | null, instrumentationPath: string | null, prerenderSecret?: string): Promise<string>;
19
19
  export declare function generateServerEntry(pagesDir: string, nextConfig: ResolvedNextConfig, fileMatcher: ReturnType<typeof createValidFileMatcher>, middlewarePath: string | null, instrumentationPath: string | null, publicFiles?: string[], options?: GeneratePagesServerEntryOptions): Promise<string>;
20
- //#endregion
20
+ //#endregion
21
+ export {};
@@ -318,7 +318,7 @@ export async function runMiddleware(request, ctx) {
318
318
  return `
319
319
  import ${JSON.stringify(_serverGlobalsPath)};
320
320
  import React from "react";
321
- import { renderToReadableStream } from "react-dom/server.edge";
321
+ import { renderToReadableStream } from "react-dom/server";
322
322
  import { resetSSRHead, getSSRHeadHTML, setDocumentInitialHead } from "next/head";
323
323
  import { flushPreloads } from "next/dynamic";
324
324
  import Router, { setSSRContext, wrapWithRouterContext, getPagesNavigationIsReadyFromSerializedState } from "next/router";
@@ -21,4 +21,5 @@ export declare function resolveEntryPath(rel: string, base: string): string;
21
21
  */
22
22
  export declare function resolveRuntimeEntryModule(name: string): string;
23
23
  export declare function resolveClientRuntimeModule(name: string): string;
24
+ export declare function resolveShimRuntimeModule(name: string): string;
24
25
  //#endregion
@@ -30,6 +30,9 @@ function resolveRuntimeEntryModule(name) {
30
30
  function resolveClientRuntimeModule(name) {
31
31
  return resolveRuntimeModulePath("client", name);
32
32
  }
33
+ function resolveShimRuntimeModule(name) {
34
+ return resolveRuntimeModulePath("shims", name);
35
+ }
33
36
  function resolveRuntimeModulePath(directory, name) {
34
37
  for (const ext of [
35
38
  ".ts",
@@ -43,4 +46,4 @@ function resolveRuntimeModulePath(directory, name) {
43
46
  return resolveEntryPath(`../${directory}/${name}.js`, import.meta.url);
44
47
  }
45
48
  //#endregion
46
- export { resolveClientRuntimeModule, resolveEntryPath, resolveRuntimeEntryModule };
49
+ export { resolveClientRuntimeModule, resolveEntryPath, resolveRuntimeEntryModule, resolveShimRuntimeModule };
@@ -57,4 +57,5 @@ export declare const VIRTUAL_IMAGE_ADAPTERS = "virtual:vinext-image-adapters";
57
57
  * given config. Always exports `registerConfiguredImageOptimizer(env)`.
58
58
  */
59
59
  export declare function generateImageAdaptersModule(images?: VinextImageConfig): string;
60
- //#endregion
60
+ //#endregion
61
+ export {};