vinext 1.0.0-beta.8 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (813) hide show
  1. package/README.md +158 -84
  2. package/THIRD_PARTY_LICENSES.md +25 -0
  3. package/dist/_virtual/_rolldown/runtime.js +25 -0
  4. package/dist/build/action-owner-manifest.d.ts +8 -9
  5. package/dist/build/action-owner-manifest.js +23 -5
  6. package/dist/build/assets-ignore.d.ts +3 -4
  7. package/dist/build/clean-output.d.ts +2 -3
  8. package/dist/build/client-build-config.d.ts +40 -12
  9. package/dist/build/client-build-config.js +76 -6
  10. package/dist/build/css-url-assets.d.ts +4 -5
  11. package/dist/build/css-url-assets.js +5 -2
  12. package/dist/build/google-fonts/build-url.d.ts +3 -4
  13. package/dist/build/google-fonts/fallback-metrics.d.ts +3 -4
  14. package/dist/build/google-fonts/find-font-files-in-css.d.ts +2 -3
  15. package/dist/build/google-fonts/font-metadata.d.ts +2 -3
  16. package/dist/build/google-fonts/get-axes.d.ts +2 -3
  17. package/dist/build/google-fonts/sort-variants.d.ts +2 -3
  18. package/dist/build/google-fonts/validate.d.ts +2 -3
  19. package/dist/build/google-fonts/validate.js +8 -4
  20. package/dist/build/inject-pregenerated-paths.d.ts +2 -3
  21. package/dist/build/inject-pregenerated-paths.js +16 -14
  22. package/dist/build/inline-css.d.ts +3 -4
  23. package/dist/build/layout-classification-types.d.ts +4 -5
  24. package/dist/build/layout-classification.d.ts +7 -8
  25. package/dist/build/lifecycle.d.ts +42 -0
  26. package/dist/build/lifecycle.js +253 -0
  27. package/dist/build/module-dependency-cache.d.ts +2 -3
  28. package/dist/build/next-client-runtime-manifests.d.ts +4 -5
  29. package/dist/build/nitro-route-rules.d.ts +6 -7
  30. package/dist/build/nitro-route-rules.js +1 -1
  31. package/dist/build/pages-client-assets-module.d.ts +4 -8
  32. package/dist/build/pages-client-assets-module.js +1 -13
  33. package/dist/build/precompress.d.ts +2 -3
  34. package/dist/build/prerender-cloudflare-loader.d.ts +4 -0
  35. package/dist/build/prerender-cloudflare-loader.js +49 -0
  36. package/dist/build/prerender-paths.d.ts +82 -8
  37. package/dist/build/prerender-paths.js +814 -99
  38. package/dist/build/prerender-phase.d.ts +2 -3
  39. package/dist/build/prerender-server-entry.js +11 -3
  40. package/dist/build/prerender-server-pool.d.ts +9 -6
  41. package/dist/build/prerender-server-pool.js +8 -5
  42. package/dist/build/prerender.d.ts +67 -15
  43. package/dist/build/prerender.js +177 -64
  44. package/dist/build/preview-credentials.d.ts +5 -6
  45. package/dist/build/preview-credentials.js +2 -2
  46. package/dist/build/public-dir-conflict.d.ts +5 -6
  47. package/dist/build/public-dir-conflict.js +2 -1
  48. package/dist/build/report.d.ts +38 -19
  49. package/dist/build/report.js +73 -4
  50. package/dist/build/route-classification-injector.d.ts +2 -3
  51. package/dist/build/route-classification-manifest.d.ts +5 -6
  52. package/dist/build/run-prerender.d.ts +11 -9
  53. package/dist/build/run-prerender.js +25 -16
  54. package/dist/build/server-entry.d.ts +4 -0
  55. package/dist/build/server-entry.js +28 -0
  56. package/dist/build/server-manifest.d.ts +8 -3
  57. package/dist/build/server-manifest.js +14 -2
  58. package/dist/build/ssr-manifest.d.ts +5 -6
  59. package/dist/build/standalone.d.ts +2 -3
  60. package/dist/build/standalone.js +2 -2
  61. package/dist/build/static-export.d.ts +7 -8
  62. package/dist/cache/cache-adapters-virtual.d.ts +95 -9
  63. package/dist/cache/cache-adapters-virtual.js +58 -6
  64. package/dist/check.d.ts +11 -10
  65. package/dist/check.js +467 -176
  66. package/dist/cli-args.d.ts +7 -16
  67. package/dist/cli-args.js +2 -45
  68. package/dist/cli-dev-config.d.ts +10 -7
  69. package/dist/cli-dev-config.js +160 -3
  70. package/dist/cli.js +124 -435
  71. package/dist/client/app-nav-failure-handler.d.ts +6 -7
  72. package/dist/client/client-rewrite-matcher.d.ts +2 -3
  73. package/dist/client/client-rewrites.d.ts +4 -5
  74. package/dist/client/dev-error-overlay-store.d.ts +13 -14
  75. package/dist/client/dev-error-overlay.d.ts +15 -15
  76. package/dist/client/dev-error-overlay.js +8 -5
  77. package/dist/client/instrumentation-client-inject.d.ts +3 -4
  78. package/dist/client/instrumentation-client-state.d.ts +5 -6
  79. package/dist/client/instrumentation-client.d.ts +3 -4
  80. package/dist/client/navigation-runtime.d.ts +21 -17
  81. package/dist/client/navigation-runtime.js +2 -1
  82. package/dist/client/pages-router-link-navigation.d.ts +4 -5
  83. package/dist/client/react-instance.d.ts +2 -3
  84. package/dist/client/validate-module-path.d.ts +2 -3
  85. package/dist/client/vinext-next-data.d.ts +7 -8
  86. package/dist/client/window-next.d.ts +4 -5
  87. package/dist/config/config-matchers.d.ts +16 -16
  88. package/dist/config/config-matchers.js +10 -7
  89. package/dist/config/dotenv.d.ts +3 -4
  90. package/dist/config/dotenv.js +2 -1
  91. package/dist/config/next-config.d.ts +31 -27
  92. package/dist/config/next-config.js +163 -16
  93. package/dist/config/prerender.d.ts +20 -16
  94. package/dist/config/prerender.js +10 -4
  95. package/dist/config/request-context.d.ts +5 -6
  96. package/dist/config/server-external-packages.d.ts +14 -3
  97. package/dist/config/server-external-packages.js +37 -3
  98. package/dist/config/tsconfig-paths.d.ts +3 -4
  99. package/dist/deps/.pnpm/ignore@5.3.2/deps/ignore/index.js +189 -0
  100. package/dist/deps/.pnpm/ua-parser-js@1.0.35/deps/ua-parser-js/src/ua-parser.js +1057 -0
  101. package/dist/entries/app-browser-entry.d.ts +5 -6
  102. package/dist/entries/app-browser-entry.js +3 -2
  103. package/dist/entries/app-rsc-entry.d.ts +12 -3
  104. package/dist/entries/app-rsc-entry.js +530 -55
  105. package/dist/entries/app-rsc-manifest.d.ts +4 -3
  106. package/dist/entries/app-rsc-manifest.js +27 -8
  107. package/dist/entries/app-ssr-entry.d.ts +2 -3
  108. package/dist/entries/app-ssr-entry.js +8 -1
  109. package/dist/entries/pages-client-entry.d.ts +3 -3
  110. package/dist/entries/pages-client-entry.js +17 -2
  111. package/dist/entries/pages-server-entry.d.ts +13 -3
  112. package/dist/entries/pages-server-entry.js +237 -33
  113. package/dist/entries/runtime-entry-module.d.ts +4 -5
  114. package/dist/image/image-adapters-virtual.d.ts +4 -5
  115. package/dist/index.d.ts +10 -11
  116. package/dist/index.js +832 -199
  117. package/dist/init-cloudflare.d.ts +27 -16
  118. package/dist/init-cloudflare.js +754 -113
  119. package/dist/init-platform.d.ts +26 -22
  120. package/dist/init-platform.js +85 -29
  121. package/dist/init.d.ts +19 -13
  122. package/dist/init.js +123 -41
  123. package/dist/plugins/action-owner-manifest.d.ts +3 -4
  124. package/dist/plugins/action-owner-manifest.js +10 -3
  125. package/dist/plugins/ast-scope.d.ts +10 -11
  126. package/dist/plugins/ast-scope.js +10 -22
  127. package/dist/plugins/ast-utils.d.ts +16 -29
  128. package/dist/plugins/ast-utils.js +27 -71
  129. package/dist/plugins/async-hooks-stub.d.ts +2 -3
  130. package/dist/plugins/client-reference-dedup.d.ts +4 -5
  131. package/dist/plugins/css-data-url.d.ts +2 -3
  132. package/dist/plugins/css-module-imports.d.ts +3 -4
  133. package/dist/plugins/css-module-imports.js +1 -1
  134. package/dist/plugins/dynamic-preload-metadata.d.ts +3 -4
  135. package/dist/plugins/dynamic-preload-metadata.js +55 -154
  136. package/dist/plugins/environment.d.ts +2 -3
  137. package/dist/plugins/extensionless-dynamic-import.d.ts +2 -3
  138. package/dist/plugins/extensionless-dynamic-import.js +6 -10
  139. package/dist/plugins/fonts.d.ts +10 -11
  140. package/dist/plugins/fonts.js +4 -3
  141. package/dist/plugins/ignore-dynamic-requests.d.ts +3 -4
  142. package/dist/plugins/ignore-dynamic-requests.js +60 -89
  143. package/dist/plugins/import-meta-url.d.ts +6 -7
  144. package/dist/plugins/import-meta-url.js +31 -43
  145. package/dist/plugins/instrumentation-client.d.ts +3 -3
  146. package/dist/plugins/instrumentation-client.js +46 -10
  147. package/dist/plugins/middleware-export-validation.d.ts +3 -4
  148. package/dist/plugins/middleware-export-validation.js +3 -3
  149. package/dist/plugins/middleware-server-only.d.ts +2 -3
  150. package/dist/plugins/og-asset-ownership.d.ts +3 -4
  151. package/dist/plugins/og-assets.d.ts +4 -5
  152. package/dist/plugins/og-assets.js +32 -13
  153. package/dist/plugins/og-harfbuzz.d.ts +24 -0
  154. package/dist/plugins/og-harfbuzz.js +260 -0
  155. package/dist/plugins/optimize-imports.d.ts +7 -7
  156. package/dist/plugins/optimize-imports.js +32 -44
  157. package/dist/plugins/pages-node-externals.d.ts +2 -3
  158. package/dist/plugins/pages-node-externals.js +6 -11
  159. package/dist/plugins/postcss.d.ts +8 -4
  160. package/dist/plugins/postcss.js +1 -1
  161. package/dist/plugins/remove-console.d.ts +2 -3
  162. package/dist/plugins/remove-console.js +0 -1
  163. package/dist/plugins/require-condition-resolution.d.ts +3 -4
  164. package/dist/plugins/require-condition-resolution.js +17 -18
  165. package/dist/plugins/require-context.d.ts +2 -3
  166. package/dist/plugins/require-context.js +13 -21
  167. package/dist/plugins/rsc-client-reference-loaders.d.ts +2 -3
  168. package/dist/plugins/rsc-client-shim-excludes.d.ts +4 -5
  169. package/dist/plugins/rsc-client-shim-excludes.js +1 -0
  170. package/dist/plugins/rsc-reference-validation-normalizer.d.ts +2 -3
  171. package/dist/plugins/sass.d.ts +7 -8
  172. package/dist/plugins/sass.js +7 -4
  173. package/dist/plugins/server-externals-manifest.d.ts +2 -3
  174. package/dist/plugins/strip-server-exports.d.ts +5 -6
  175. package/dist/plugins/strip-server-exports.js +1 -1
  176. package/dist/plugins/styled-jsx.d.ts +2 -3
  177. package/dist/plugins/styled-jsx.js +7 -7
  178. package/dist/plugins/transform-cache.d.ts +2 -3
  179. package/dist/plugins/transform-result.d.ts +3 -4
  180. package/dist/plugins/transitive-externals.d.ts +2 -3
  181. package/dist/plugins/typeof-window.d.ts +6 -7
  182. package/dist/plugins/typeof-window.js +30 -31
  183. package/dist/plugins/use-cache-callable.d.ts +2 -5
  184. package/dist/plugins/use-cache-callable.js +43 -22
  185. package/dist/plugins/wasm-module-import.d.ts +2 -3
  186. package/dist/plugins/worker-image-imports.d.ts +2 -3
  187. package/dist/plugins/worker-image-imports.js +6 -8
  188. package/dist/routing/app-route-graph.d.ts +19 -19
  189. package/dist/routing/app-route-graph.js +3 -2
  190. package/dist/routing/app-router.d.ts +20 -5
  191. package/dist/routing/app-router.js +28 -2
  192. package/dist/routing/file-matcher.d.ts +9 -10
  193. package/dist/routing/pages-router.d.ts +6 -6
  194. package/dist/routing/pages-router.js +1 -1
  195. package/dist/routing/route-matching.d.ts +4 -5
  196. package/dist/routing/route-matching.js +4 -2
  197. package/dist/routing/route-pattern.d.ts +13 -14
  198. package/dist/routing/route-trie.d.ts +5 -6
  199. package/dist/routing/route-validation.d.ts +3 -4
  200. package/dist/routing/route-validation.js +12 -11
  201. package/dist/routing/utils.d.ts +13 -14
  202. package/dist/server/accept-encoding.d.ts +9 -10
  203. package/dist/server/api-handler.d.ts +2 -3
  204. package/dist/server/api-handler.js +9 -6
  205. package/dist/server/app-action-forwarding.d.ts +3 -4
  206. package/dist/server/app-action-forwarding.js +1 -1
  207. package/dist/server/app-action-request.d.ts +2 -3
  208. package/dist/server/app-bfcache-id.d.ts +3 -4
  209. package/dist/server/app-bfcache-identity.d.ts +8 -9
  210. package/dist/server/app-browser-action-result.d.ts +15 -16
  211. package/dist/server/app-browser-client-reuse-manifest.d.ts +2 -3
  212. package/dist/server/app-browser-entry.js +121 -40
  213. package/dist/server/app-browser-error.d.ts +5 -6
  214. package/dist/server/app-browser-error.js +9 -3
  215. package/dist/server/app-browser-history-controller.d.ts +4 -5
  216. package/dist/server/app-browser-hydration.d.ts +16 -6
  217. package/dist/server/app-browser-hydration.js +14 -1
  218. package/dist/server/app-browser-interception-context.d.ts +3 -4
  219. package/dist/server/app-browser-mpa-navigation.d.ts +4 -5
  220. package/dist/server/app-browser-navigation-abort.d.ts +3 -4
  221. package/dist/server/app-browser-navigation-controller.d.ts +8 -8
  222. package/dist/server/app-browser-navigation-controller.js +9 -5
  223. package/dist/server/app-browser-navigation-response.d.ts +2 -3
  224. package/dist/server/app-browser-popstate.d.ts +4 -5
  225. package/dist/server/app-browser-prefetch-response.d.ts +5 -6
  226. package/dist/server/app-browser-rsc-redirect.d.ts +4 -5
  227. package/dist/server/app-browser-server-action-client.d.ts +7 -6
  228. package/dist/server/app-browser-server-action-client.js +9 -5
  229. package/dist/server/app-browser-server-action-navigation.d.ts +2 -3
  230. package/dist/server/app-browser-state.d.ts +17 -17
  231. package/dist/server/app-browser-state.js +7 -3
  232. package/dist/server/app-browser-stream.d.ts +4 -5
  233. package/dist/server/app-browser-stream.js +8 -6
  234. package/dist/server/app-browser-supplemental-refresh.d.ts +11 -12
  235. package/dist/server/app-browser-visible-commit.d.ts +6 -7
  236. package/dist/server/app-browser-visible-commit.js +1 -1
  237. package/dist/server/app-client-reference-preloader.d.ts +2 -3
  238. package/dist/server/app-elements-wire-key.d.ts +25 -0
  239. package/dist/server/app-elements-wire-key.js +69 -0
  240. package/dist/server/app-elements-wire.d.ts +34 -53
  241. package/dist/server/app-elements-wire.js +4 -75
  242. package/dist/server/app-elements.d.ts +5 -5
  243. package/dist/server/app-elements.js +1 -1
  244. package/dist/server/app-fallback-renderer.d.ts +4 -4
  245. package/dist/server/app-fallback-renderer.js +6 -6
  246. package/dist/server/app-fetch-tracing.d.ts +15 -0
  247. package/dist/server/app-fetch-tracing.js +38 -0
  248. package/dist/server/app-history-state.d.ts +26 -27
  249. package/dist/server/app-history-state.js +19 -11
  250. package/dist/server/app-hook-warning-suppression.d.ts +2 -3
  251. package/dist/server/app-hydration-cache-publication.d.ts +3 -4
  252. package/dist/server/app-inline-css-client.d.ts +3 -4
  253. package/dist/server/app-interception-context-header.d.ts +2 -3
  254. package/dist/server/app-layout-param-observation.d.ts +7 -8
  255. package/dist/server/app-metadata-tracing.d.ts +12 -0
  256. package/dist/server/app-metadata-tracing.js +17 -0
  257. package/dist/server/app-middleware.d.ts +15 -7
  258. package/dist/server/app-middleware.js +30 -5
  259. package/dist/server/app-mounted-slots-header.d.ts +2 -3
  260. package/dist/server/app-mounted-slots-header.js +2 -2
  261. package/dist/server/app-optimistic-routing.d.ts +14 -10
  262. package/dist/server/app-optimistic-routing.js +16 -3
  263. package/dist/server/app-page-boundary-render.d.ts +6 -6
  264. package/dist/server/app-page-boundary-render.js +10 -4
  265. package/dist/server/app-page-boundary.d.ts +9 -10
  266. package/dist/server/app-page-boundary.js +2 -1
  267. package/dist/server/app-page-cache-finalizer.d.ts +32 -8
  268. package/dist/server/app-page-cache-finalizer.js +118 -14
  269. package/dist/server/app-page-cache-render.d.ts +8 -5
  270. package/dist/server/app-page-cache-render.js +22 -5
  271. package/dist/server/app-page-cache.d.ts +28 -9
  272. package/dist/server/app-page-cache.js +96 -25
  273. package/dist/server/app-page-dispatch.d.ts +36 -12
  274. package/dist/server/app-page-dispatch.js +188 -63
  275. package/dist/server/app-page-element-builder.d.ts +13 -11
  276. package/dist/server/app-page-element-builder.js +104 -61
  277. package/dist/server/app-page-execution.d.ts +14 -14
  278. package/dist/server/app-page-execution.js +12 -8
  279. package/dist/server/app-page-head.d.ts +19 -16
  280. package/dist/server/app-page-head.js +25 -25
  281. package/dist/server/app-page-http-access-fallback-metadata.d.ts +6 -5
  282. package/dist/server/app-page-http-access-fallback-metadata.js +9 -2
  283. package/dist/server/app-page-method.d.ts +5 -11
  284. package/dist/server/app-page-method.js +2 -9
  285. package/dist/server/app-page-params.d.ts +5 -6
  286. package/dist/server/app-page-ppr-runtime.d.ts +2 -2
  287. package/dist/server/app-page-probe.d.ts +5 -6
  288. package/dist/server/app-page-probe.js +5 -4
  289. package/dist/server/app-page-render-identity.d.ts +4 -5
  290. package/dist/server/app-page-render-observation.d.ts +8 -9
  291. package/dist/server/app-page-render-observation.js +1 -1
  292. package/dist/server/app-page-render.d.ts +42 -6
  293. package/dist/server/app-page-render.js +192 -28
  294. package/dist/server/app-page-request.d.ts +10 -9
  295. package/dist/server/app-page-request.js +16 -12
  296. package/dist/server/app-page-response.d.ts +20 -9
  297. package/dist/server/app-page-response.js +31 -13
  298. package/dist/server/app-page-route-wiring.d.ts +15 -15
  299. package/dist/server/app-page-route-wiring.js +31 -24
  300. package/dist/server/app-page-search-params-observation.d.ts +26 -5
  301. package/dist/server/app-page-search-params-observation.js +42 -6
  302. package/dist/server/app-page-segment-plan.d.ts +2 -3
  303. package/dist/server/app-page-segment-state.d.ts +11 -12
  304. package/dist/server/app-page-stream.d.ts +27 -11
  305. package/dist/server/app-page-stream.js +35 -6
  306. package/dist/server/app-page-tracing.d.ts +33 -0
  307. package/dist/server/app-page-tracing.js +49 -0
  308. package/dist/server/app-pages-bridge.d.ts +6 -6
  309. package/dist/server/app-pages-bridge.js +19 -4
  310. package/dist/server/app-post-middleware-context.d.ts +2 -3
  311. package/dist/server/app-ppr-fallback-shell-render.d.ts +3 -4
  312. package/dist/server/app-ppr-fallback-shell-render.js +3 -2
  313. package/dist/server/app-ppr-fallback-shell.d.ts +6 -7
  314. package/dist/server/app-prerender-endpoints.d.ts +5 -5
  315. package/dist/server/app-prerender-endpoints.js +26 -12
  316. package/dist/server/app-prerender-static-params.d.ts +15 -7
  317. package/dist/server/app-prerender-static-params.js +33 -11
  318. package/dist/server/app-render-dependency.d.ts +14 -13
  319. package/dist/server/app-render-dependency.js +5 -1
  320. package/dist/server/app-request-context.d.ts +3 -4
  321. package/dist/server/app-request-stage-context.d.ts +5 -0
  322. package/dist/server/app-request-stage-context.js +11 -0
  323. package/dist/server/app-request-stage-dispatch.d.ts +25 -0
  324. package/dist/server/app-request-stage-dispatch.js +54 -0
  325. package/dist/server/app-request-stage-independent-entry.d.ts +8 -0
  326. package/dist/server/app-request-stage-independent-entry.js +115 -0
  327. package/dist/server/app-response-header-provenance.d.ts +13 -7
  328. package/dist/server/app-response-header-provenance.js +34 -1
  329. package/dist/server/app-response-stage-entry.d.ts +9 -0
  330. package/dist/server/app-response-stage-entry.js +87 -0
  331. package/dist/server/app-route-handler-cache.d.ts +2 -3
  332. package/dist/server/app-route-handler-cache.js +46 -34
  333. package/dist/server/app-route-handler-dispatch.d.ts +3 -3
  334. package/dist/server/app-route-handler-dispatch.js +75 -57
  335. package/dist/server/app-route-handler-execution.d.ts +18 -13
  336. package/dist/server/app-route-handler-execution.js +189 -25
  337. package/dist/server/app-route-handler-middleware-context.d.ts +8 -0
  338. package/dist/server/app-route-handler-middleware-context.js +15 -0
  339. package/dist/server/app-route-handler-policy.d.ts +22 -10
  340. package/dist/server/app-route-handler-policy.js +19 -4
  341. package/dist/server/app-route-handler-response.d.ts +9 -10
  342. package/dist/server/app-route-handler-response.js +2 -0
  343. package/dist/server/app-route-handler-runtime.d.ts +9 -10
  344. package/dist/server/app-route-handler-runtime.js +20 -16
  345. package/dist/server/app-route-module-loader.d.ts +6 -7
  346. package/dist/server/app-route-request-built-ins.d.ts +3 -4
  347. package/dist/server/app-route-tree-prefetch.d.ts +6 -7
  348. package/dist/server/app-route-tree-prefetch.js +2 -1
  349. package/dist/server/app-router-entry.d.ts +2 -0
  350. package/dist/server/app-router-entry.js +76 -12
  351. package/dist/server/app-rsc-cache-busting.d.ts +47 -22
  352. package/dist/server/app-rsc-cache-busting.js +80 -18
  353. package/dist/server/app-rsc-combined-handler.d.ts +9 -0
  354. package/dist/server/app-rsc-combined-handler.js +11 -0
  355. package/dist/server/app-rsc-embedded-chunks.d.ts +6 -7
  356. package/dist/server/app-rsc-error-handler.d.ts +12 -6
  357. package/dist/server/app-rsc-error-handler.js +15 -6
  358. package/dist/server/app-rsc-errors.d.ts +12 -9
  359. package/dist/server/app-rsc-errors.js +15 -13
  360. package/dist/server/app-rsc-handler.d.ts +33 -6
  361. package/dist/server/app-rsc-handler.js +498 -83
  362. package/dist/server/app-rsc-redirect-flight.d.ts +4 -5
  363. package/dist/server/app-rsc-render-mode.d.ts +8 -9
  364. package/dist/server/app-rsc-request-normalization.d.ts +3 -3
  365. package/dist/server/app-rsc-request-normalization.js +2 -1
  366. package/dist/server/app-rsc-response-finalizer.d.ts +8 -5
  367. package/dist/server/app-rsc-response-finalizer.js +24 -7
  368. package/dist/server/app-rsc-response-stage.d.ts +6 -0
  369. package/dist/server/app-rsc-response-stage.js +251 -0
  370. package/dist/server/app-rsc-route-matching.d.ts +4 -4
  371. package/dist/server/app-rsc-route-matching.js +4 -2
  372. package/dist/server/app-rsc-state-fingerprint.d.ts +3 -4
  373. package/dist/server/app-rsc-vary.d.ts +16 -0
  374. package/dist/server/app-rsc-vary.js +31 -0
  375. package/dist/server/app-segment-config.d.ts +120 -6
  376. package/dist/server/app-segment-config.js +264 -12
  377. package/dist/server/app-server-action-execution.d.ts +16 -12
  378. package/dist/server/app-server-action-execution.js +88 -35
  379. package/dist/server/app-ssr-entry.d.ts +14 -4
  380. package/dist/server/app-ssr-entry.js +64 -17
  381. package/dist/server/app-ssr-error-meta.d.ts +3 -4
  382. package/dist/server/app-ssr-error-meta.js +2 -1
  383. package/dist/server/app-ssr-router-instance.d.ts +2 -3
  384. package/dist/server/app-ssr-search-params-gate.d.ts +20 -0
  385. package/dist/server/app-ssr-search-params-gate.js +54 -0
  386. package/dist/server/app-ssr-stream.d.ts +13 -9
  387. package/dist/server/app-ssr-stream.js +33 -7
  388. package/dist/server/app-static-generation.d.ts +4 -5
  389. package/dist/server/app-visited-response-cache.d.ts +11 -12
  390. package/dist/server/app-visited-response-cache.js +2 -2
  391. package/dist/server/app-worker-stages.d.ts +112 -0
  392. package/dist/server/app-worker-stages.js +105 -0
  393. package/dist/server/artifact-compatibility.d.ts +11 -12
  394. package/dist/server/before-interactive-head.d.ts +2 -3
  395. package/dist/server/bfcache-identity.d.ts +7 -8
  396. package/dist/server/cache-control.d.ts +39 -11
  397. package/dist/server/cache-control.js +104 -7
  398. package/dist/server/cache-headers.d.ts +3 -4
  399. package/dist/server/cache-proof.d.ts +75 -70
  400. package/dist/server/cache-proof.js +9 -1
  401. package/dist/server/cacheability-limits.d.ts +8 -0
  402. package/dist/server/cacheability-limits.js +9 -0
  403. package/dist/server/cacheability-manifest.d.ts +68 -0
  404. package/dist/server/cacheability-manifest.js +241 -0
  405. package/dist/server/cacheability-request.d.ts +49 -0
  406. package/dist/server/cacheability-request.js +559 -0
  407. package/dist/server/client-reuse-manifest.d.ts +17 -18
  408. package/dist/server/client-reuse-manifest.js +2 -2
  409. package/dist/server/client-trace-metadata.d.ts +9 -6
  410. package/dist/server/client-trace-metadata.js +27 -15
  411. package/dist/server/cloudflare-workers-tracing.d.ts +1 -0
  412. package/dist/server/cloudflare-workers-tracing.js +8 -0
  413. package/dist/server/config-headers.d.ts +19 -5
  414. package/dist/server/config-headers.js +39 -5
  415. package/dist/server/cookie-utils.d.ts +2 -3
  416. package/dist/server/csp.d.ts +5 -6
  417. package/dist/server/default-global-error-module.d.ts +2 -3
  418. package/dist/server/default-global-not-found-module.d.ts +2 -3
  419. package/dist/server/default-not-found-module.d.ts +2 -3
  420. package/dist/server/defer-until-stream-consumed.d.ts +2 -3
  421. package/dist/server/defer-until-stream-consumed.js +2 -1
  422. package/dist/server/dev-initial-server-error.d.ts +3 -4
  423. package/dist/server/dev-initial-server-error.js +2 -1
  424. package/dist/server/dev-lockfile.d.ts +7 -8
  425. package/dist/server/dev-lockfile.js +4 -1
  426. package/dist/server/dev-module-runner.d.ts +2 -3
  427. package/dist/server/dev-origin-check.d.ts +5 -6
  428. package/dist/server/dev-route-files.d.ts +2 -3
  429. package/dist/server/dev-server.d.ts +4 -5
  430. package/dist/server/dev-server.js +130 -61
  431. package/dist/server/dev-stack-sourcemap.d.ts +7 -7
  432. package/dist/server/dev-stack-sourcemap.js +1 -1
  433. package/dist/server/document-initial-head.d.ts +3 -4
  434. package/dist/server/edge-api-runtime.d.ts +4 -5
  435. package/dist/server/fetch-handler.d.ts +3 -2
  436. package/dist/server/fetch-handler.js +3 -18
  437. package/dist/server/file-based-metadata.d.ts +2 -3
  438. package/dist/server/framework-tracer.d.ts +46 -0
  439. package/dist/server/framework-tracer.js +125 -0
  440. package/dist/server/fully-buffered-response.d.ts +11 -0
  441. package/dist/server/fully-buffered-response.js +19 -0
  442. package/dist/server/headers.d.ts +62 -56
  443. package/dist/server/headers.js +33 -20
  444. package/dist/server/html.d.ts +6 -27
  445. package/dist/server/html.js +16 -1
  446. package/dist/server/http-conditional.d.ts +5 -6
  447. package/dist/server/http-date.d.ts +2 -3
  448. package/dist/server/http-error-responses.d.ts +9 -10
  449. package/dist/server/http-range.d.ts +4 -5
  450. package/dist/server/hybrid-route-priority.d.ts +4 -5
  451. package/dist/server/image-optimization.d.ts +20 -21
  452. package/dist/server/implicit-tags.d.ts +3 -4
  453. package/dist/server/instrumentation-runtime.d.ts +17 -21
  454. package/dist/server/instrumentation-runtime.js +26 -8
  455. package/dist/server/instrumentation.d.ts +26 -30
  456. package/dist/server/instrumentation.js +18 -23
  457. package/dist/server/isr-cache.d.ts +28 -27
  458. package/dist/server/isr-cache.js +18 -70
  459. package/dist/server/isr-decision.d.ts +4 -4
  460. package/dist/server/metadata-route-build-data.d.ts +4 -5
  461. package/dist/server/metadata-route-cache-policy.d.ts +2 -3
  462. package/dist/server/metadata-route-response.d.ts +7 -7
  463. package/dist/server/metadata-route-response.js +68 -2
  464. package/dist/server/metadata-routes.d.ts +18 -19
  465. package/dist/server/middleware-matcher-pattern.d.ts +6 -7
  466. package/dist/server/middleware-matcher.d.ts +13 -6
  467. package/dist/server/middleware-matcher.js +22 -1
  468. package/dist/server/middleware-path-to-regexp.d.ts +6 -7
  469. package/dist/server/middleware-path-to-regexp.js +11 -9
  470. package/dist/server/middleware-response-headers.d.ts +3 -4
  471. package/dist/server/middleware-runtime.d.ts +13 -8
  472. package/dist/server/middleware-runtime.js +54 -10
  473. package/dist/server/middleware.d.ts +5 -5
  474. package/dist/server/multi-stage.d.ts +141 -0
  475. package/dist/server/multi-stage.js +8 -0
  476. package/dist/server/navigation-planner.d.ts +26 -26
  477. package/dist/server/navigation-trace.d.ts +11 -12
  478. package/dist/server/next-error-digest.d.ts +4 -5
  479. package/dist/server/normalize-path.d.ts +5 -6
  480. package/dist/server/normalize-path.js +1 -1
  481. package/dist/server/open-redirect.d.ts +2 -3
  482. package/dist/server/opentelemetry-api.d.ts +59 -0
  483. package/dist/server/opentelemetry-api.js +53 -0
  484. package/dist/server/opentelemetry-tracing.d.ts +5 -0
  485. package/dist/server/opentelemetry-tracing.js +83 -0
  486. package/dist/server/operation-token.d.ts +11 -12
  487. package/dist/server/otel-tracer-extension.d.ts +7 -9
  488. package/dist/server/otel-tracer-extension.js +37 -36
  489. package/dist/server/pages-api-route.d.ts +5 -4
  490. package/dist/server/pages-api-route.js +21 -8
  491. package/dist/server/pages-asset-tags.d.ts +6 -6
  492. package/dist/server/pages-asset-tags.js +37 -2
  493. package/dist/server/pages-body-parser-config.d.ts +4 -5
  494. package/dist/server/pages-body-parser-config.js +4 -4
  495. package/dist/server/pages-client-assets.d.ts +11 -5
  496. package/dist/server/pages-data-route.d.ts +11 -12
  497. package/dist/server/pages-data-route.js +1 -1
  498. package/dist/server/pages-default-404.d.ts +3 -4
  499. package/dist/server/pages-dev-hydration.d.ts +9 -4
  500. package/dist/server/pages-dev-hydration.js +19 -7
  501. package/dist/server/pages-dev-module-url.d.ts +3 -4
  502. package/dist/server/pages-dev-stylesheets.d.ts +5 -6
  503. package/dist/server/pages-document-asset-props.d.ts +6 -7
  504. package/dist/server/pages-document-initial-props.d.ts +5 -5
  505. package/dist/server/pages-document-initial-props.js +4 -2
  506. package/dist/server/pages-execution-tracing.d.ts +40 -0
  507. package/dist/server/pages-execution-tracing.js +80 -0
  508. package/dist/server/pages-get-initial-props.d.ts +9 -10
  509. package/dist/server/pages-i18n.d.ts +8 -8
  510. package/dist/server/pages-i18n.js +3 -2
  511. package/dist/server/pages-media-type.d.ts +4 -5
  512. package/dist/server/pages-node-compat.d.ts +11 -10
  513. package/dist/server/pages-node-compat.js +12 -4
  514. package/dist/server/pages-page-data.d.ts +18 -19
  515. package/dist/server/pages-page-data.js +11 -10
  516. package/dist/server/pages-page-handler.d.ts +7 -6
  517. package/dist/server/pages-page-handler.js +98 -47
  518. package/dist/server/pages-page-method.d.ts +2 -3
  519. package/dist/server/pages-page-response.d.ts +14 -10
  520. package/dist/server/pages-page-response.js +49 -31
  521. package/dist/server/pages-preview.d.ts +10 -11
  522. package/dist/server/pages-readiness.d.ts +2 -3
  523. package/dist/server/pages-request-pipeline.d.ts +16 -12
  524. package/dist/server/pages-request-pipeline.js +69 -28
  525. package/dist/server/pages-request-stage-entry.d.ts +23 -0
  526. package/dist/server/pages-request-stage-entry.js +314 -0
  527. package/dist/server/pages-response-stage-entry.d.ts +11 -0
  528. package/dist/server/pages-response-stage-entry.js +106 -0
  529. package/dist/server/pages-response-stage.d.ts +31 -0
  530. package/dist/server/pages-response-stage.js +49 -0
  531. package/dist/server/pages-revalidate.d.ts +3 -4
  532. package/dist/server/pages-revalidate.js +9 -4
  533. package/dist/server/pages-route-data-kind.d.ts +18 -0
  534. package/dist/server/pages-route-data-kind.js +11 -0
  535. package/dist/server/pages-router-entry.d.ts +1 -25
  536. package/dist/server/pages-router-entry.js +48 -114
  537. package/dist/server/pages-serializable-props.d.ts +3 -4
  538. package/dist/server/pregenerated-concrete-paths.d.ts +9 -7
  539. package/dist/server/pregenerated-concrete-paths.js +12 -6
  540. package/dist/server/prerender-cache-life-header.d.ts +3 -4
  541. package/dist/server/prerender-manifest.d.ts +11 -11
  542. package/dist/server/prerender-manifest.js +6 -3
  543. package/dist/server/prerender-route-params.d.ts +16 -9
  544. package/dist/server/prerender-route-params.js +18 -2
  545. package/dist/server/prerender-work-unit-setup.d.ts +4 -4
  546. package/dist/server/prerender-work-unit-setup.js +37 -14
  547. package/dist/server/prod-server.d.ts +12 -9
  548. package/dist/server/prod-server.js +129 -36
  549. package/dist/server/proxy-trust.d.ts +5 -6
  550. package/dist/server/request-log.d.ts +3 -4
  551. package/dist/server/request-pipeline.d.ts +17 -21
  552. package/dist/server/request-pipeline.js +8 -10
  553. package/dist/server/request-stage.d.ts +5 -0
  554. package/dist/server/request-stage.js +7 -0
  555. package/dist/server/request-tracing.d.ts +22 -0
  556. package/dist/server/request-tracing.js +180 -0
  557. package/dist/server/response-stage-cacheability.d.ts +37 -0
  558. package/dist/server/response-stage-cacheability.js +55 -0
  559. package/dist/server/response-stage-policy.d.ts +23 -0
  560. package/dist/server/response-stage-policy.js +89 -0
  561. package/dist/server/response-stage.d.ts +5 -0
  562. package/dist/server/response-stage.js +7 -0
  563. package/dist/server/response-start-tracing.d.ts +14 -0
  564. package/dist/server/response-start-tracing.js +80 -0
  565. package/dist/server/revalidation-host.d.ts +2 -3
  566. package/dist/server/revalidation-host.js +2 -1
  567. package/dist/server/revalidation-request.d.ts +8 -0
  568. package/dist/server/revalidation-request.js +37 -0
  569. package/dist/server/rsc-completion-metadata.d.ts +6 -7
  570. package/dist/server/rsc-stream-hints.d.ts +18 -7
  571. package/dist/server/rsc-stream-hints.js +70 -35
  572. package/dist/server/seed-cache.d.ts +2 -3
  573. package/dist/server/seed-cache.js +8 -7
  574. package/dist/server/server-action-not-found.d.ts +5 -6
  575. package/dist/server/server-globals.d.ts +2 -3
  576. package/dist/server/server-globals.js +13 -0
  577. package/dist/server/skip-cache-proof.d.ts +4 -4
  578. package/dist/server/socket-error-backstop.d.ts +5 -6
  579. package/dist/server/socket-error-backstop.js +1 -1
  580. package/dist/server/static-file-cache.d.ts +5 -6
  581. package/dist/server/static-file-cache.js +9 -7
  582. package/dist/server/static-file-signal.d.ts +16 -0
  583. package/dist/server/static-file-signal.js +82 -0
  584. package/dist/server/static-layout-client-reuse-proof.d.ts +4 -5
  585. package/dist/server/streaming-metadata.d.ts +2 -3
  586. package/dist/server/tracer.d.ts +5 -0
  587. package/dist/server/tracer.js +13 -0
  588. package/dist/server/worker-prerender-discovery.d.ts +18 -0
  589. package/dist/server/worker-prerender-discovery.js +55 -0
  590. package/dist/server/worker-revalidation-context.d.ts +2 -3
  591. package/dist/server/worker-revalidation-context.js +5 -5
  592. package/dist/server/worker-stages.d.ts +43 -0
  593. package/dist/server/worker-stages.js +25 -0
  594. package/dist/server/worker-utils.d.ts +5 -6
  595. package/dist/server/worker-utils.js +4 -4
  596. package/dist/server/workers-tracing.d.ts +17 -0
  597. package/dist/server/workers-tracing.js +27 -0
  598. package/dist/shims/amp.d.ts +3 -4
  599. package/dist/shims/app-router-scroll-state.d.ts +9 -10
  600. package/dist/shims/app-router-scroll.d.ts +4 -5
  601. package/dist/shims/app-router-scroll.js +2 -1
  602. package/dist/shims/app.d.ts +5 -6
  603. package/dist/shims/before-interactive-context.d.ts +5 -6
  604. package/dist/shims/cache-callable-runtime.d.ts +44 -4
  605. package/dist/shims/cache-callable-runtime.js +168 -8
  606. package/dist/shims/cache-for-request.d.ts +2 -3
  607. package/dist/shims/cache-handler.d.ts +33 -20
  608. package/dist/shims/cache-handler.js +61 -2
  609. package/dist/shims/cache-request-state.d.ts +28 -29
  610. package/dist/shims/cache-runtime.d.ts +23 -21
  611. package/dist/shims/cache-runtime.js +239 -121
  612. package/dist/shims/cache.d.ts +15 -15
  613. package/dist/shims/cache.js +25 -13
  614. package/dist/shims/cacheability-classification.d.ts +106 -0
  615. package/dist/shims/cacheability-classification.js +161 -0
  616. package/dist/shims/cdn-cache-state.d.ts +13 -0
  617. package/dist/shims/cdn-cache-state.js +23 -0
  618. package/dist/shims/cdn-cache.d.ts +76 -18
  619. package/dist/shims/cdn-cache.js +40 -39
  620. package/dist/shims/client-hook-error.d.ts +3 -4
  621. package/dist/shims/client-locale.d.ts +2 -3
  622. package/dist/shims/client-page-root.d.ts +24 -0
  623. package/dist/shims/client-page-root.js +121 -0
  624. package/dist/shims/compat-router.d.ts +2 -3
  625. package/dist/shims/config.d.ts +3 -4
  626. package/dist/shims/constants.d.ts +73 -74
  627. package/dist/shims/constants.js +1 -1
  628. package/dist/shims/default-not-found.d.ts +2 -3
  629. package/dist/shims/document.d.ts +9 -9
  630. package/dist/shims/dynamic-preload-chunks.d.ts +2 -3
  631. package/dist/shims/dynamic-preload-chunks.js +17 -13
  632. package/dist/shims/dynamic.d.ts +3 -3
  633. package/dist/shims/error-boundary-navigation.d.ts +3 -4
  634. package/dist/shims/error-boundary.d.ts +17 -18
  635. package/dist/shims/error-boundary.js +17 -11
  636. package/dist/shims/error.d.ts +4 -4
  637. package/dist/shims/error.js +1 -1
  638. package/dist/shims/error.react-server.d.ts +3 -4
  639. package/dist/shims/fetch-cache.d.ts +22 -22
  640. package/dist/shims/fetch-cache.js +50 -20
  641. package/dist/shims/font-google-base.d.ts +9 -9
  642. package/dist/shims/font-google-base.js +2 -1
  643. package/dist/shims/font-local.d.ts +3 -3
  644. package/dist/shims/font-local.js +1 -1
  645. package/dist/shims/font-utils.d.ts +14 -15
  646. package/dist/shims/form.d.ts +2 -2
  647. package/dist/shims/form.js +10 -7
  648. package/dist/shims/hash-scroll.d.ts +5 -6
  649. package/dist/shims/head-state.d.ts +4 -5
  650. package/dist/shims/head.d.ts +16 -16
  651. package/dist/shims/head.js +5 -4
  652. package/dist/shims/headers.d.ts +68 -32
  653. package/dist/shims/headers.js +101 -10
  654. package/dist/shims/i18n-context.d.ts +5 -6
  655. package/dist/shims/i18n-state.d.ts +4 -5
  656. package/dist/shims/image-config.d.ts +5 -6
  657. package/dist/shims/image-config.js +2 -0
  658. package/dist/shims/image.d.ts +5 -5
  659. package/dist/shims/image.js +12 -8
  660. package/dist/shims/internal/als-registry.d.ts +4 -5
  661. package/dist/shims/internal/api-utils.d.ts +3 -4
  662. package/dist/shims/internal/app-page-props-cache-key.d.ts +32 -4
  663. package/dist/shims/internal/app-page-props-cache-key.js +53 -1
  664. package/dist/shims/internal/app-prefetch-fetch-queue.d.ts +5 -6
  665. package/dist/shims/internal/app-prefetch-rsc-request.d.ts +13 -0
  666. package/dist/shims/internal/app-prefetch-rsc-request.js +12 -0
  667. package/dist/shims/internal/app-route-detection.d.ts +2 -2
  668. package/dist/shims/internal/app-route-prefetch-policy.d.ts +5 -6
  669. package/dist/shims/internal/app-route-prefetch-policy.js +1 -0
  670. package/dist/shims/internal/app-router-context.d.ts +9 -10
  671. package/dist/shims/internal/cookie-serialize.d.ts +4 -5
  672. package/dist/shims/internal/format-url-object.d.ts +7 -0
  673. package/dist/shims/internal/format-url-object.js +53 -0
  674. package/dist/shims/internal/hybrid-client-route-owner-direct.d.ts +6 -7
  675. package/dist/shims/internal/hybrid-client-route-owner-direct.js +29 -11
  676. package/dist/shims/internal/hybrid-client-route-owner.d.ts +3 -3
  677. package/dist/shims/internal/hybrid-client-route-owner.js +5 -4
  678. package/dist/shims/internal/interpolate-as.d.ts +5 -6
  679. package/dist/shims/internal/interpolate-as.js +4 -2
  680. package/dist/shims/internal/link-status-registry.d.ts +5 -6
  681. package/dist/shims/internal/make-hanging-promise.d.ts +8 -3
  682. package/dist/shims/internal/make-hanging-promise.js +13 -2
  683. package/dist/shims/internal/navigation-untracked.d.ts +2 -3
  684. package/dist/shims/internal/normalize-router-href.d.ts +15 -0
  685. package/dist/shims/internal/normalize-router-href.js +41 -0
  686. package/dist/shims/internal/pages-data-fetch-dedup.d.ts +8 -9
  687. package/dist/shims/internal/pages-data-target.d.ts +8 -6
  688. package/dist/shims/internal/pages-data-target.js +32 -36
  689. package/dist/shims/internal/pages-data-url.d.ts +4 -5
  690. package/dist/shims/internal/pages-data-url.js +2 -1
  691. package/dist/shims/internal/pages-router-accessor.d.ts +3 -4
  692. package/dist/shims/internal/pages-router-components.d.ts +3 -4
  693. package/dist/shims/internal/route-pattern-for-warning.d.ts +5 -6
  694. package/dist/shims/internal/route-pattern-for-warning.js +3 -3
  695. package/dist/shims/internal/router-context.d.ts +2 -3
  696. package/dist/shims/internal/thenable-well-known-properties.d.ts +10 -0
  697. package/dist/shims/internal/thenable-well-known-properties.js +33 -0
  698. package/dist/shims/internal/utils.d.ts +7 -8
  699. package/dist/shims/internal/work-unit-async-storage.d.ts +12 -11
  700. package/dist/shims/layout-segment-context.d.ts +3 -4
  701. package/dist/shims/link-prefetch.d.ts +9 -10
  702. package/dist/shims/link.d.ts +4 -4
  703. package/dist/shims/link.js +67 -116
  704. package/dist/shims/metadata.d.ts +15 -16
  705. package/dist/shims/metadata.js +40 -36
  706. package/dist/shims/navigation-context-accessors.d.ts +9 -0
  707. package/dist/shims/navigation-context-accessors.js +19 -0
  708. package/dist/shims/navigation-context-state.d.ts +27 -18
  709. package/dist/shims/navigation-errors.d.ts +18 -19
  710. package/dist/shims/navigation-state.d.ts +6 -7
  711. package/dist/shims/navigation.d.ts +80 -68
  712. package/dist/shims/navigation.js +45 -17
  713. package/dist/shims/navigation.react-server.d.ts +9 -9
  714. package/dist/shims/navigation.react-server.js +1 -1
  715. package/dist/shims/offline.d.ts +2 -3
  716. package/dist/shims/og.d.ts +2 -2
  717. package/dist/shims/pages-router-runtime.d.ts +4 -5
  718. package/dist/shims/ppr-fallback-shell.d.ts +13 -14
  719. package/dist/shims/readonly-url-search-params.d.ts +2 -3
  720. package/dist/shims/request-context.d.ts +7 -6
  721. package/dist/shims/root-params.d.ts +14 -15
  722. package/dist/shims/router-state.d.ts +5 -6
  723. package/dist/shims/router-state.js +1 -1
  724. package/dist/shims/router.d.ts +22 -21
  725. package/dist/shims/router.js +339 -164
  726. package/dist/shims/script-nonce-context.d.ts +8 -6
  727. package/dist/shims/script-nonce-context.js +15 -6
  728. package/dist/shims/script.d.ts +4 -4
  729. package/dist/shims/script.js +9 -7
  730. package/dist/shims/search-params-gate.d.ts +35 -0
  731. package/dist/shims/search-params-gate.js +32 -0
  732. package/dist/shims/server.d.ts +19 -51
  733. package/dist/shims/server.js +14 -28
  734. package/dist/shims/slot.d.ts +33 -15
  735. package/dist/shims/slot.js +41 -9
  736. package/dist/shims/streamed-icons.d.ts +3 -4
  737. package/dist/shims/thenable-params.d.ts +5 -7
  738. package/dist/shims/thenable-params.js +3 -24
  739. package/dist/shims/unified-request-context.d.ts +34 -31
  740. package/dist/shims/unified-request-context.js +34 -24
  741. package/dist/shims/unrecognized-action-error.d.ts +3 -4
  742. package/dist/shims/url-safety.d.ts +5 -6
  743. package/dist/shims/url-utils.d.ts +18 -12
  744. package/dist/shims/url-utils.js +10 -1
  745. package/dist/shims/use-merged-ref.d.ts +2 -3
  746. package/dist/shims/user-agent.d.ts +31 -0
  747. package/dist/shims/user-agent.js +16 -0
  748. package/dist/shims/web-vitals.d.ts +2 -2
  749. package/dist/typegen.d.ts +3 -4
  750. package/dist/utils/asset-prefix.d.ts +7 -8
  751. package/dist/utils/base-path.d.ts +5 -6
  752. package/dist/utils/built-asset-url.d.ts +2 -3
  753. package/dist/utils/built-asset-url.js +1 -1
  754. package/dist/utils/cache-control-metadata.d.ts +4 -5
  755. package/dist/utils/client-build-manifest.d.ts +6 -7
  756. package/dist/utils/client-build-manifest.js +2 -1
  757. package/dist/utils/client-entry-manifest.d.ts +6 -7
  758. package/dist/utils/client-runtime-metadata.d.ts +8 -3
  759. package/dist/utils/client-runtime-metadata.js +18 -1
  760. package/dist/utils/commonjs-loader.d.ts +4 -5
  761. package/dist/utils/compare.d.ts +2 -3
  762. package/dist/utils/deployment-id.d.ts +6 -7
  763. package/dist/utils/dev-error-recovery-event.d.ts +2 -3
  764. package/dist/utils/dev-stack-sourcemap-endpoint.d.ts +2 -3
  765. package/dist/utils/domain-locale.d.ts +7 -8
  766. package/dist/utils/encode-cache-tag.d.ts +3 -4
  767. package/dist/utils/error-cause.d.ts +2 -3
  768. package/dist/utils/external-url.d.ts +2 -3
  769. package/dist/utils/has-trailing-comma.d.ts +3 -4
  770. package/dist/utils/hash.d.ts +3 -4
  771. package/dist/utils/html-limited-bots.d.ts +3 -4
  772. package/dist/utils/lazy-chunks.d.ts +8 -9
  773. package/dist/utils/lazy-chunks.js +4 -4
  774. package/dist/utils/manifest-paths.d.ts +5 -6
  775. package/dist/utils/mdx-scan.d.ts +11 -4
  776. package/dist/utils/mdx-scan.js +27 -1
  777. package/dist/utils/middleware-request-headers.d.ts +7 -6
  778. package/dist/utils/middleware-request-headers.js +6 -1
  779. package/dist/utils/navigation-signal.d.ts +3 -3
  780. package/dist/utils/navigation-signal.js +16 -1
  781. package/dist/utils/number.d.ts +2 -3
  782. package/dist/utils/package-name.d.ts +3 -4
  783. package/dist/utils/parse-cookie.d.ts +4 -5
  784. package/dist/utils/path.d.ts +8 -9
  785. package/dist/utils/plugin-options.d.ts +2 -3
  786. package/dist/utils/precompressed-variant.d.ts +3 -4
  787. package/dist/utils/prerender-output-paths.d.ts +9 -10
  788. package/dist/utils/prerender-output-paths.js +16 -9
  789. package/dist/utils/project.d.ts +19 -30
  790. package/dist/utils/project.js +20 -29
  791. package/dist/utils/promise.d.ts +2 -3
  792. package/dist/utils/protocol-headers.d.ts +14 -15
  793. package/dist/utils/public-file-path.d.ts +2 -3
  794. package/dist/utils/public-routes.d.ts +2 -3
  795. package/dist/utils/query.d.ts +14 -9
  796. package/dist/utils/query.js +22 -1
  797. package/dist/utils/react-compiler-support.d.ts +6 -7
  798. package/dist/utils/react-version.d.ts +4 -3
  799. package/dist/utils/react-version.js +19 -1
  800. package/dist/utils/record.d.ts +2 -3
  801. package/dist/utils/redirect-digest.d.ts +3 -4
  802. package/dist/utils/regex-safety.d.ts +4 -5
  803. package/dist/utils/regex.d.ts +2 -3
  804. package/dist/utils/safe-json-file.d.ts +2 -3
  805. package/dist/utils/sorted-array.d.ts +2 -3
  806. package/dist/utils/text-stream.d.ts +3 -4
  807. package/dist/utils/vinext-root.d.ts +2 -3
  808. package/dist/utils/virtual-module.d.ts +3 -4
  809. package/dist/utils/vite-cli-invocation.d.ts +21 -0
  810. package/dist/utils/vite-cli-invocation.js +144 -0
  811. package/dist/utils/vite-version.d.ts +5 -6
  812. package/next-package.json +4 -0
  813. package/package.json +55 -6
@@ -21,10 +21,24 @@ type EffectiveAppPageSegmentConfig = {
21
21
  type ParallelAppPageSegmentConfigBranch = {
22
22
  configLayouts?: readonly (AppRouteSegmentConfigModule | null | undefined)[] | null;
23
23
  configLayoutTreePositions?: readonly number[] | null;
24
+ /** Whether the slot renders its `default` module instead of a matched page. */
25
+ isDefault?: boolean;
24
26
  layout?: AppRouteSegmentConfigModule | null;
27
+ /** The slot's name, which orders sibling slots in the loader tree. */
28
+ name?: string;
29
+ /** The main-tree position of the folder that owns the slot. */
30
+ ownerTreePosition?: number | null;
25
31
  page?: AppRouteSegmentConfigModule | null;
26
32
  routeSegments?: readonly string[] | null;
27
33
  };
34
+ /**
35
+ * The route's implicit `children` slot. A route that only a nested slot page
36
+ * materializes renders the owner's `default` (or nothing) as its children.
37
+ */
38
+ type AppPageChildrenSlot = {
39
+ ownerTreePath: string;
40
+ state: "active" | "default" | "unmatched";
41
+ };
28
42
  type ResolveAppPageSegmentConfigOptions = {
29
43
  layouts?: readonly (AppRouteSegmentConfigModule | null | undefined)[];
30
44
  layoutTreePositions?: readonly number[];
@@ -34,6 +48,8 @@ type ResolveAppPageSegmentConfigOptions = {
34
48
  parallelSegments?: readonly (AppRouteSegmentConfigModule | null | undefined)[];
35
49
  routeSegments?: readonly string[];
36
50
  };
51
+ /** Resolve the effective `dynamic` mode using the same traversal semantics as rendering. */
52
+ export declare function resolveAppPageDynamicConfig(options: Pick<ResolveAppPageSegmentConfigOptions, "layouts" | "page" | "parallelBranches" | "parallelSegments">): AppRouteSegmentDynamic | undefined;
37
53
  /**
38
54
  * Resolve the route segment config that applies to an App page route.
39
55
  *
@@ -42,8 +58,8 @@ type ResolveAppPageSegmentConfigOptions = {
42
58
  * the concrete layout/page modules for a route, so it should only describe
43
59
  * those modules and delegate the behavior to this helper.
44
60
  */
45
- declare function resolveAppPageSegmentConfig(options: ResolveAppPageSegmentConfigOptions): EffectiveAppPageSegmentConfig;
46
- declare function resolveAppPageFetchCacheMode(options: ResolveAppPageSegmentConfigOptions): FetchCacheMode | null;
61
+ export declare function resolveAppPageSegmentConfig(options: ResolveAppPageSegmentConfigOptions): EffectiveAppPageSegmentConfig;
62
+ export declare function resolveAppPageFetchCacheMode(options: ResolveAppPageSegmentConfigOptions): FetchCacheMode | null;
47
63
  /**
48
64
  * Resolve the `fetchCache` segment config exported by a route handler module.
49
65
  *
@@ -51,7 +67,105 @@ declare function resolveAppPageFetchCacheMode(options: ResolveAppPageSegmentConf
51
67
  * directly. Mirrors upstream's app-route module, which copies
52
68
  * `userland.fetchCache` into the work store before invoking the handler.
53
69
  */
54
- declare function resolveAppRouteHandlerFetchCacheMode(handler: Pick<AppRouteSegmentConfigModule, "fetchCache">): FetchCacheMode | null;
55
- declare function isEdgeRuntime(runtime: string | undefined): boolean;
56
- //#endregion
57
- export { isEdgeRuntime, resolveAppPageFetchCacheMode, resolveAppPageSegmentConfig, resolveAppRouteHandlerFetchCacheMode };
70
+ export declare function resolveAppRouteHandlerFetchCacheMode(handler: Pick<AppRouteSegmentConfigModule, "fetchCache">): FetchCacheMode | null;
71
+ export declare function isEdgeRuntime(runtime: string | undefined): boolean;
72
+ /**
73
+ * Resolve a `runtime` from a chain of segment values, outermost first: the
74
+ * last valid value wins, as a child's value wins over its parent's.
75
+ * `collectAppPageStaticGenerationRuntimes` supplies the value Next.js uses to
76
+ * decide whether a page can be statically generated.
77
+ */
78
+ export declare function resolveAppPageStaticGenerationRuntime(values: readonly unknown[]): EffectiveAppPageSegmentConfig["runtime"];
79
+ /**
80
+ * The `runtime` Next.js's default build (Turbopack) derives for an App page,
81
+ * for `resolveAppPageStaticGenerationRuntime`. It reads the whole loader tree:
82
+ * at each node the values of every parallel branch (children, matched slots
83
+ * and slots that render `default`) merge, and a conflict fails the build; the
84
+ * node's own layout, page or default module then fills in only an unset value.
85
+ * So an edge slot page next to a Node children page makes the route edge.
86
+ * https://github.com/vercel/next.js/blob/v16.2.7/crates/next-core/src/segment_config.rs#L1323-L1357
87
+ * https://github.com/vercel/next.js/blob/v16.2.7/crates/next-core/src/next_app/app_page_entry.rs#L40-L41
88
+ */
89
+ export declare function collectAppPageStaticGenerationRuntimes(options: Parameters<typeof collectAppPageStaticParamsWalkSegments>[0]): unknown[];
90
+ /**
91
+ * One segment of an App page's loader tree, as Next.js's build visits it when
92
+ * it classifies the route.
93
+ */
94
+ export type AppPageStaticParamsWalkSegment = {
95
+ /** Whether the segment is a dynamic URL segment (`[slug]`, `[...slug]`). */
96
+ dynamic: boolean;
97
+ /** Whether the segment's layout (or page) exports `generateStaticParams`. */
98
+ generateStaticParams: boolean;
99
+ /**
100
+ * The segment name and the file that supplies its module. Next.js visits
101
+ * each distinct pair once, so a slot's layout-less `[slug]` folder that
102
+ * repeats the main tree's does not count twice.
103
+ */
104
+ identity: readonly [name: string, file: unknown];
105
+ /**
106
+ * The segment's position in the loader tree: its index among its parent's
107
+ * children at each level, from the root. The root layout's segment is `[]`.
108
+ */
109
+ treePath: readonly number[];
110
+ };
111
+ /**
112
+ * Whether `generateStaticParams` is exported at or below the route's last
113
+ * dynamic segment: by that segment's layout, a deeper layout, or the page.
114
+ * Next.js classifies such a route as SSG (static generation with an on-demand
115
+ * fallback). A dynamic-segment route without it is dynamic (ƒ) and is never
116
+ * full-page cached.
117
+ *
118
+ * Port of Next.js's `lastDynamicSegmentHadGenerateStaticParams` walk: segments
119
+ * are visited breadth-first, a dynamic segment without `generateStaticParams`
120
+ * clears the flag, and any segment with it sets the flag.
121
+ * https://github.com/vercel/next.js/blob/v16.2.6/packages/next/src/build/static-paths/app.ts#L926-L935
122
+ * https://github.com/vercel/next.js/blob/v16.2.6/packages/next/src/build/segment-config/app/app-segments.ts#L72-L126
123
+ */
124
+ export declare function lastDynamicSegmentHasGenerateStaticParams(segments: readonly AppPageStaticParamsWalkSegment[]): boolean;
125
+ /**
126
+ * Collect the loader-tree segments of an App page route from its layout, page
127
+ * and parallel-slot modules, for `lastDynamicSegmentHasGenerateStaticParams`.
128
+ *
129
+ * Children follow the loader tree Next.js's default build (Turbopack) makes:
130
+ * `children` first, then every slot in folder-name order, whether it matched
131
+ * a page or renders `default`. A default slot is a single `__DEFAULT__`
132
+ * segment without the slot's layout.
133
+ * https://github.com/vercel/next.js/blob/v16.2.7/crates/next-core/src/app_structure.rs#L1489-L1511
134
+ * https://github.com/vercel/next.js/blob/v16.2.7/crates/next-core/src/app_structure.rs#L1515-L1548
135
+ */
136
+ export declare function collectAppPageStaticParamsWalkSegments(options: Pick<ResolveAppPageSegmentConfigOptions, "layoutTreePositions" | "layouts" | "page" | "parallelBranches" | "routeSegments"> & {
137
+ childrenSlot?: AppPageChildrenSlot | null;
138
+ }): AppPageStaticParamsWalkSegment[];
139
+ /**
140
+ * Whether an App page route exports `generateStaticParams` at or below its last
141
+ * dynamic segment, read from its layout, page and parallel-slot modules.
142
+ */
143
+ export declare function hasAppPageGenerateStaticParamsAtLastDynamicSegment(options: Parameters<typeof collectAppPageStaticParamsWalkSegments>[0]): boolean;
144
+ /**
145
+ * Whether Next.js would classify an App page route as static or SSG from its
146
+ * config alone. Only such routes are full-page cache candidates; every other
147
+ * route renders per request with real values and is never ISR-cached.
148
+ *
149
+ * - `runtime = "edge"` disables static generation, whatever else the route
150
+ * sets.
151
+ * - `dynamic = "force-dynamic"` and `revalidate = 0` are dynamic.
152
+ * - `dynamic = "force-static"` and `dynamic = "error"` are static.
153
+ * - Otherwise a route is static when it has no dynamic segments, or when
154
+ * `generateStaticParams` sits at or below its last dynamic segment.
155
+ *
156
+ * Next.js also treats a route as SSG when an ancestor's `generateStaticParams`
157
+ * returns every pathname param (`hadAllParamsGenerated`). That depends on the
158
+ * generator's output, which vinext doesn't compute per request, so such a
159
+ * route is treated as dynamic here. Adding `generateStaticParams` to the last
160
+ * dynamic segment (even returning `[]`) opts it in, on both.
161
+ *
162
+ * https://github.com/vercel/next.js/blob/v16.2.6/packages/next/src/build/index.ts#L2333-L2408
163
+ */
164
+ export declare function isAppPageStaticEligible(options: {
165
+ dynamicConfig?: string;
166
+ hasGenerateStaticParams: boolean;
167
+ isDynamicRoute: boolean;
168
+ isStaticGenerationEdgeRuntime: boolean;
169
+ revalidateSeconds: number | null;
170
+ }): boolean;
171
+ //#endregion
@@ -57,6 +57,23 @@ function getParallelSegments(options) {
57
57
  branch.page
58
58
  ] : []);
59
59
  }
60
+ /** Resolve the effective `dynamic` mode using the same traversal semantics as rendering. */
61
+ function resolveAppPageDynamicConfig(options) {
62
+ const segments = [...options.layouts ?? [], options.page];
63
+ const parallelSegments = getParallelSegments(options);
64
+ let dynamicConfig;
65
+ let hasForceDynamic = false;
66
+ for (const segment of segments) {
67
+ if (!isRouteSegmentDynamic(segment?.dynamic)) continue;
68
+ if (segment.dynamic === "force-dynamic") hasForceDynamic = true;
69
+ dynamicConfig = hasForceDynamic ? "force-dynamic" : segment.dynamic;
70
+ }
71
+ for (const segment of parallelSegments) if (segment?.dynamic === "force-dynamic") {
72
+ hasForceDynamic = true;
73
+ dynamicConfig = "force-dynamic";
74
+ } else if (dynamicConfig === void 0 && isRouteSegmentDynamic(segment?.dynamic)) dynamicConfig = segment.dynamic;
75
+ return dynamicConfig;
76
+ }
60
77
  function resolveDynamicParamsConfig(options) {
61
78
  const parallelSegments = getParallelSegments(options);
62
79
  const segments = [
@@ -123,21 +140,21 @@ function describeFetchCacheConflict(value) {
123
140
  function resolveAppPageSegmentConfig(options) {
124
141
  const segments = [...options.layouts ?? [], options.page];
125
142
  const parallelSegments = getParallelSegments(options);
126
- const config = { revalidateSeconds: null };
143
+ const dynamicConfig = resolveAppPageDynamicConfig(options);
144
+ const config = {
145
+ ...dynamicConfig === void 0 ? {} : { dynamicConfig },
146
+ revalidateSeconds: null
147
+ };
127
148
  config.dynamicParamsConfig = resolveDynamicParamsConfig(options);
128
149
  let hasForceCache = false;
129
150
  let hasForceNoStore = false;
130
151
  let hasOnlyCache = false;
131
152
  let hasOnlyNoStore = false;
132
153
  let hasParentDefaultNoStore = false;
133
- let hasForceDynamic = false;
154
+ const primaryRuntime = resolveAppPageStaticGenerationRuntime(segments.map((segment) => segment?.runtime));
155
+ if (primaryRuntime !== void 0) config.runtime = primaryRuntime;
134
156
  for (const segment of segments) {
135
157
  if (!segment) continue;
136
- if (isRouteSegmentDynamic(segment.dynamic)) {
137
- if (segment.dynamic === "force-dynamic") hasForceDynamic = true;
138
- config.dynamicConfig = hasForceDynamic ? "force-dynamic" : segment.dynamic;
139
- }
140
- if (isRouteSegmentRuntime(segment.runtime)) config.runtime = segment.runtime;
141
158
  if (isRouteSegmentFetchCache(segment.fetchCache)) {
142
159
  const fetchCache = segment.fetchCache;
143
160
  if (hasParentDefaultNoStore && (fetchCache === "auto" || isCacheFetchCacheMode(fetchCache))) throw new Error(describeFetchCacheConflict(fetchCache));
@@ -157,10 +174,6 @@ function resolveAppPageSegmentConfig(options) {
157
174
  }
158
175
  for (const segment of parallelSegments) {
159
176
  if (!segment) continue;
160
- if (segment.dynamic === "force-dynamic") {
161
- hasForceDynamic = true;
162
- config.dynamicConfig = "force-dynamic";
163
- } else if (config.dynamicConfig === void 0 && isRouteSegmentDynamic(segment.dynamic)) config.dynamicConfig = segment.dynamic;
164
177
  if (config.runtime === void 0 && isRouteSegmentRuntime(segment.runtime)) config.runtime = segment.runtime;
165
178
  if (isRouteSegmentFetchCache(segment.fetchCache)) {
166
179
  const fetchCache = segment.fetchCache;
@@ -205,5 +218,244 @@ function resolveAppRouteHandlerFetchCacheMode(handler) {
205
218
  function isEdgeRuntime(runtime) {
206
219
  return isEdgeApiRuntime(runtime);
207
220
  }
221
+ /**
222
+ * Resolve a `runtime` from a chain of segment values, outermost first: the
223
+ * last valid value wins, as a child's value wins over its parent's.
224
+ * `collectAppPageStaticGenerationRuntimes` supplies the value Next.js uses to
225
+ * decide whether a page can be statically generated.
226
+ */
227
+ function resolveAppPageStaticGenerationRuntime(values) {
228
+ let runtime;
229
+ for (const value of values) if (isRouteSegmentRuntime(value)) runtime = value;
230
+ return runtime;
231
+ }
232
+ /**
233
+ * Where the children slot renders its `default` instead of a page: the
234
+ * main-tree position of the folder that owns it. `null` when children renders
235
+ * a page.
236
+ */
237
+ function resolveChildrenDefaultTreePosition(childrenSlot) {
238
+ if (!childrenSlot || childrenSlot.state === "active") return null;
239
+ return treePathDepth(childrenSlot.ownerTreePath);
240
+ }
241
+ function treePathDepth(treePath) {
242
+ return treePath.split("/").filter(Boolean).length;
243
+ }
244
+ /**
245
+ * The `runtime` Next.js's default build (Turbopack) derives for an App page,
246
+ * for `resolveAppPageStaticGenerationRuntime`. It reads the whole loader tree:
247
+ * at each node the values of every parallel branch (children, matched slots
248
+ * and slots that render `default`) merge, and a conflict fails the build; the
249
+ * node's own layout, page or default module then fills in only an unset value.
250
+ * So an edge slot page next to a Node children page makes the route edge.
251
+ * https://github.com/vercel/next.js/blob/v16.2.7/crates/next-core/src/segment_config.rs#L1323-L1357
252
+ * https://github.com/vercel/next.js/blob/v16.2.7/crates/next-core/src/next_app/app_page_entry.rs#L40-L41
253
+ */
254
+ function collectAppPageStaticGenerationRuntimes(options) {
255
+ const segments = collectAppPageStaticParamsWalkSegments(options);
256
+ const isAt = (segment, treePath) => segment.treePath.length === treePath.length && treePath.every((index, depth) => segment.treePath[depth] === index);
257
+ const resolveAt = (treePath) => {
258
+ let runtime;
259
+ for (const segment of segments) if (segment.treePath.length === treePath.length + 1 && treePath.every((index, depth) => segment.treePath[depth] === index)) runtime = mergeParallelRuntime(runtime, resolveAt(segment.treePath));
260
+ if (runtime !== void 0) return runtime;
261
+ const segmentModule = segments.find((segment) => isAt(segment, treePath))?.identity[1];
262
+ return resolveAppPageStaticGenerationRuntime([segmentModule?.runtime]);
263
+ };
264
+ return [resolveAt([])];
265
+ }
266
+ /**
267
+ * Merge a parallel branch's runtime into its siblings'. Next.js fails the
268
+ * build when two siblings set different values; the edge one is kept here,
269
+ * since it keeps the route out of static generation either way.
270
+ */
271
+ function mergeParallelRuntime(current, sibling) {
272
+ if (current === void 0) return sibling;
273
+ if (sibling === void 0 || current === sibling) return current;
274
+ return isEdgeRuntime(current) ? current : sibling;
275
+ }
276
+ function compareTreePaths(a, b) {
277
+ if (a.length !== b.length) return a.length - b.length;
278
+ for (let index = 0; index < a.length; index++) if (a[index] !== b[index]) return a[index] - b[index];
279
+ return 0;
280
+ }
281
+ /**
282
+ * Whether `generateStaticParams` is exported at or below the route's last
283
+ * dynamic segment: by that segment's layout, a deeper layout, or the page.
284
+ * Next.js classifies such a route as SSG (static generation with an on-demand
285
+ * fallback). A dynamic-segment route without it is dynamic (ƒ) and is never
286
+ * full-page cached.
287
+ *
288
+ * Port of Next.js's `lastDynamicSegmentHadGenerateStaticParams` walk: segments
289
+ * are visited breadth-first, a dynamic segment without `generateStaticParams`
290
+ * clears the flag, and any segment with it sets the flag.
291
+ * https://github.com/vercel/next.js/blob/v16.2.6/packages/next/src/build/static-paths/app.ts#L926-L935
292
+ * https://github.com/vercel/next.js/blob/v16.2.6/packages/next/src/build/segment-config/app/app-segments.ts#L72-L126
293
+ */
294
+ function lastDynamicSegmentHasGenerateStaticParams(segments) {
295
+ const visited = [];
296
+ const ordered = [...segments].sort((a, b) => compareTreePaths(a.treePath, b.treePath));
297
+ let hasGenerateStaticParams = false;
298
+ for (const segment of ordered) {
299
+ const [name, file] = segment.identity;
300
+ if (visited.some(([seenName, seenFile]) => seenName === name && seenFile === file)) continue;
301
+ visited.push(segment.identity);
302
+ if (segment.dynamic && !segment.generateStaticParams) hasGenerateStaticParams = false;
303
+ else if (segment.generateStaticParams) hasGenerateStaticParams = true;
304
+ }
305
+ return hasGenerateStaticParams;
306
+ }
307
+ const PAGE_SEGMENT_NAME = "__PAGE__";
308
+ function hasGenerateStaticParamsExport(segment) {
309
+ return typeof segment?.generateStaticParams === "function";
310
+ }
311
+ const DEFAULT_SEGMENT_NAME = "__DEFAULT__";
312
+ /**
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
+ * Collect the loader-tree segments of an App page route from its layout, page
328
+ * and parallel-slot modules, for `lastDynamicSegmentHasGenerateStaticParams`.
329
+ *
330
+ * Children follow the loader tree Next.js's default build (Turbopack) makes:
331
+ * `children` first, then every slot in folder-name order, whether it matched
332
+ * a page or renders `default`. A default slot is a single `__DEFAULT__`
333
+ * segment without the slot's layout.
334
+ * https://github.com/vercel/next.js/blob/v16.2.7/crates/next-core/src/app_structure.rs#L1489-L1511
335
+ * https://github.com/vercel/next.js/blob/v16.2.7/crates/next-core/src/app_structure.rs#L1515-L1548
336
+ */
337
+ function collectAppPageStaticParamsWalkSegments(options) {
338
+ const childrenDefaultPosition = resolveChildrenDefaultTreePosition(options.childrenSlot);
339
+ const routeSegments = childrenDefaultPosition === null ? options.routeSegments ?? [] : (options.routeSegments ?? []).slice(0, childrenDefaultPosition);
340
+ const layoutsByPosition = /* @__PURE__ */ new Map();
341
+ options.layouts?.forEach((layout, index) => {
342
+ if (layout) layoutsByPosition.set(options.layoutTreePositions?.[index] ?? 0, layout);
343
+ });
344
+ const branchesByOwner = /* @__PURE__ */ new Map();
345
+ for (const branch of options.parallelBranches ?? []) {
346
+ if (!branch) continue;
347
+ const owner = Math.min(branch.ownerTreePosition ?? routeSegments.length - (branch.isDefault ? 0 : (branch.routeSegments ?? []).length), routeSegments.length);
348
+ branchesByOwner.set(owner, [...branchesByOwner.get(owner) ?? [], branch]);
349
+ }
350
+ const segments = [];
351
+ let treePath = [];
352
+ for (let position = 0; position <= routeSegments.length + 1; position++) {
353
+ if (position <= routeSegments.length) {
354
+ const name = position === 0 ? "" : routeSegments[position - 1];
355
+ const layout = layoutsByPosition.get(position);
356
+ segments.push({
357
+ dynamic: position > 0 && isDynamicSegment(name),
358
+ generateStaticParams: hasGenerateStaticParamsExport(layout),
359
+ identity: [name, layout],
360
+ treePath
361
+ });
362
+ } else {
363
+ segments.push({
364
+ dynamic: false,
365
+ generateStaticParams: hasGenerateStaticParamsExport(options.page),
366
+ identity: [PAGE_SEGMENT_NAME, options.page ?? void 0],
367
+ treePath
368
+ });
369
+ break;
370
+ }
371
+ [...branchesByOwner.get(position) ?? []].sort((a, b) => compareFolderNames(a.name ?? "", b.name ?? "")).forEach((branch, index) => {
372
+ const slotPath = [...treePath, index + 1];
373
+ if (branch.isDefault) segments.push({
374
+ dynamic: false,
375
+ generateStaticParams: hasGenerateStaticParamsExport(branch.page),
376
+ identity: [DEFAULT_SEGMENT_NAME, branch.page ?? void 0],
377
+ treePath: slotPath
378
+ });
379
+ else segments.push(...collectActiveSlotSegments(branch, slotPath));
380
+ });
381
+ if (position === childrenDefaultPosition) {
382
+ segments.push({
383
+ dynamic: false,
384
+ generateStaticParams: hasGenerateStaticParamsExport(options.page),
385
+ identity: [DEFAULT_SEGMENT_NAME, options.page ?? void 0],
386
+ treePath: [...treePath, 0]
387
+ });
388
+ break;
389
+ }
390
+ treePath = [...treePath, 0];
391
+ }
392
+ return segments;
393
+ }
394
+ function collectActiveSlotSegments(branch, slotPath) {
395
+ const branchSegments = branch.routeSegments ?? [];
396
+ const configLayoutsByPosition = /* @__PURE__ */ new Map();
397
+ branch.configLayouts?.forEach((layout, index) => {
398
+ if (layout) configLayoutsByPosition.set(branch.configLayoutTreePositions?.[index] ?? 0, layout);
399
+ });
400
+ const segments = [{
401
+ dynamic: false,
402
+ generateStaticParams: hasGenerateStaticParamsExport(branch.layout),
403
+ identity: [`@${branch.name ?? ""}`, branch.layout ?? void 0],
404
+ treePath: slotPath
405
+ }];
406
+ const depth = Math.max(branchSegments.length, ...branch.configLayoutTreePositions ?? []);
407
+ let treePath = [...slotPath];
408
+ for (let index = 0; index < depth; index++) {
409
+ treePath = [...treePath, 0];
410
+ const name = branchSegments[index];
411
+ const layout = configLayoutsByPosition.get(index + 1);
412
+ segments.push({
413
+ dynamic: name !== void 0 && isDynamicSegment(name),
414
+ generateStaticParams: hasGenerateStaticParamsExport(layout),
415
+ identity: [name ?? "", layout],
416
+ treePath
417
+ });
418
+ }
419
+ segments.push({
420
+ dynamic: false,
421
+ generateStaticParams: hasGenerateStaticParamsExport(branch.page),
422
+ identity: [PAGE_SEGMENT_NAME, branch.page ?? void 0],
423
+ treePath: [...treePath, 0]
424
+ });
425
+ return segments;
426
+ }
427
+ /**
428
+ * Whether an App page route exports `generateStaticParams` at or below its last
429
+ * dynamic segment, read from its layout, page and parallel-slot modules.
430
+ */
431
+ function hasAppPageGenerateStaticParamsAtLastDynamicSegment(options) {
432
+ return lastDynamicSegmentHasGenerateStaticParams(collectAppPageStaticParamsWalkSegments(options));
433
+ }
434
+ /**
435
+ * Whether Next.js would classify an App page route as static or SSG from its
436
+ * config alone. Only such routes are full-page cache candidates; every other
437
+ * route renders per request with real values and is never ISR-cached.
438
+ *
439
+ * - `runtime = "edge"` disables static generation, whatever else the route
440
+ * sets.
441
+ * - `dynamic = "force-dynamic"` and `revalidate = 0` are dynamic.
442
+ * - `dynamic = "force-static"` and `dynamic = "error"` are static.
443
+ * - Otherwise a route is static when it has no dynamic segments, or when
444
+ * `generateStaticParams` sits at or below its last dynamic segment.
445
+ *
446
+ * Next.js also treats a route as SSG when an ancestor's `generateStaticParams`
447
+ * returns every pathname param (`hadAllParamsGenerated`). That depends on the
448
+ * generator's output, which vinext doesn't compute per request, so such a
449
+ * route is treated as dynamic here. Adding `generateStaticParams` to the last
450
+ * dynamic segment (even returning `[]`) opts it in, on both.
451
+ *
452
+ * https://github.com/vercel/next.js/blob/v16.2.6/packages/next/src/build/index.ts#L2333-L2408
453
+ */
454
+ function isAppPageStaticEligible(options) {
455
+ if (options.isStaticGenerationEdgeRuntime) return false;
456
+ if (options.dynamicConfig === "force-dynamic" || options.revalidateSeconds === 0) return false;
457
+ if (options.dynamicConfig === "force-static" || options.dynamicConfig === "error") return true;
458
+ return !options.isDynamicRoute || options.hasGenerateStaticParams;
459
+ }
208
460
  //#endregion
209
- export { isEdgeRuntime, resolveAppPageFetchCacheMode, resolveAppPageSegmentConfig, resolveAppRouteHandlerFetchCacheMode };
461
+ export { collectAppPageStaticGenerationRuntimes, collectAppPageStaticParamsWalkSegments, hasAppPageGenerateStaticParamsAtLastDynamicSegment, isAppPageStaticEligible, isEdgeRuntime, lastDynamicSegmentHasGenerateStaticParams, resolveAppPageDynamicConfig, resolveAppPageFetchCacheMode, resolveAppPageSegmentConfig, resolveAppPageStaticGenerationRuntime, resolveAppRouteHandlerFetchCacheMode };
@@ -1,11 +1,12 @@
1
1
  import { AppRscRenderMode } from "./app-rsc-render-mode.js";
2
2
  import { ActionRevalidationKind } from "../shims/cache-request-state.js";
3
+ import { AppRenderErrorContextOverrides } from "./app-rsc-error-handler.js";
3
4
  import { FetchCacheMode } from "../shims/fetch-cache.js";
4
5
  import { HeadersAccessPhase } from "../shims/headers.js";
5
6
  import { ReactFormState } from "react-dom/client";
6
7
  //#region src/server/app-server-action-execution.d.ts
7
8
  type AppPageParams = Record<string, string | string[]>;
8
- type AppServerActionErrorReporter = (error: Error, request: {
9
+ type AppServerActionErrorReporter = (error: unknown, request: {
9
10
  path: string;
10
11
  method: string;
11
12
  headers: Record<string, string>;
@@ -13,6 +14,8 @@ type AppServerActionErrorReporter = (error: Error, request: {
13
14
  routerKind: "App Router";
14
15
  routePath: string;
15
16
  routeType: "action";
17
+ renderSource: "react-server-components-payload";
18
+ revalidateReason: undefined;
16
19
  }) => void;
17
20
  type AppServerActionDecoder = (body: FormData) => Promise<unknown>;
18
21
  type AppServerActionFormStateDecoder = (actionResult: unknown, body: FormData) => Promise<ReactFormState | undefined>;
@@ -103,6 +106,7 @@ type BuildServerActionPageElementOptions<TRoute extends AppServerActionRoute, TI
103
106
  searchParams: URLSearchParams;
104
107
  scriptNonce?: string;
105
108
  renderMode: AppRscRenderMode;
109
+ isForceStatic?: boolean;
106
110
  observeMetadataSearchParamsAccess?: boolean;
107
111
  observePageSearchParamsAccess?: boolean;
108
112
  };
@@ -122,7 +126,7 @@ type RenderServerActionRscStreamOptions<TTemporaryReferences> = {
122
126
  type DecodeServerActionReplyOptions<TTemporaryReferences> = {
123
127
  temporaryReferences: TTemporaryReferences;
124
128
  };
125
- type HandleProgressiveServerActionRequestOptions = {
129
+ export type HandleProgressiveServerActionRequestOptions = {
126
130
  actionId: string | null;
127
131
  allowedOrigins: string[];
128
132
  /** Configured next.config `basePath`. Prefixed onto progressive Location targets. */
@@ -150,9 +154,10 @@ type HandleProgressiveServerActionRequestOptions = {
150
154
  readFormDataWithLimit: ReadFormDataWithLimit;
151
155
  reportRequestError: AppServerActionErrorReporter;
152
156
  request: Request;
157
+ routePattern: string;
153
158
  setHeadersAccessPhase: (phase: HeadersAccessPhase) => HeadersAccessPhase;
154
159
  };
155
- type HandleServerActionRscRequestOptions<TElement, TRoute extends AppServerActionRoute, TInterceptOpts, TTemporaryReferences, TPage = unknown> = {
160
+ export type HandleServerActionRscRequestOptions<TElement, TRoute extends AppServerActionRoute, TInterceptOpts, TTemporaryReferences, TPage = unknown> = {
156
161
  actionId: string | null;
157
162
  allowedOrigins: string[];
158
163
  /** Configured next.config `basePath`. Prefixed onto ACTION_REDIRECT_HEADER targets. */
@@ -167,7 +172,7 @@ type HandleServerActionRscRequestOptions<TElement, TRoute extends AppServerActio
167
172
  currentRoutePathname: string;
168
173
  createNotFoundElement: (routeId: string) => TElement;
169
174
  createPayloadRouteId: (pathname: string, interceptionContext: string | null) => string;
170
- createRscOnErrorHandler: (request: Request, pathname: string, pattern: string) => (error: unknown) => unknown;
175
+ createRscOnErrorHandler: (request: Request, pathname: string, pattern: string, overrides?: AppRenderErrorContextOverrides) => (error: unknown) => unknown;
171
176
  createTemporaryReferenceSet: () => TTemporaryReferences;
172
177
  decodeReply: (body: string | FormData, options: DecodeServerActionReplyOptions<TTemporaryReferences>) => Promise<unknown[]> | unknown[];
173
178
  draftModeSecret: string;
@@ -229,8 +234,8 @@ type HandleServerActionRscRequestOptions<TElement, TRoute extends AppServerActio
229
234
  }) => void;
230
235
  toInterceptOpts: (intercept: AppServerActionIntercept<TPage>) => TInterceptOpts;
231
236
  };
232
- declare function readActionBodyWithLimit(request: Request, maxBytes: number): Promise<string>;
233
- declare function readActionFormDataWithLimit(request: Request, maxBytes: number): Promise<FormData>;
237
+ export declare function readActionBodyWithLimit(request: Request, maxBytes: number): Promise<string>;
238
+ export declare function readActionFormDataWithLimit(request: Request, maxBytes: number): Promise<FormData>;
234
239
  /**
235
240
  * Prepend the configured next.config `basePath` to a server-action redirect
236
241
  * target before it goes on the wire.
@@ -254,9 +259,8 @@ declare function readActionFormDataWithLimit(request: Request, maxBytes: number)
254
259
  *
255
260
  * @see https://github.com/vercel/next.js/blob/canary/packages/next/src/server/app-render/action-handler.ts
256
261
  */
257
- declare function applyActionRedirectBasePath(url: string, basePath: string): string;
258
- declare function isProgressiveServerActionRequest(request: Pick<Request, "method">, contentType: string, actionId: string | null): boolean;
259
- declare function handleProgressiveServerActionRequest(options: HandleProgressiveServerActionRequestOptions): Promise<Response | ProgressiveServerActionResult | null>;
260
- declare function handleServerActionRscRequest<TElement, TRoute extends AppServerActionRoute, TInterceptOpts, TTemporaryReferences, TPage = unknown>(options: HandleServerActionRscRequestOptions<TElement, TRoute, TInterceptOpts, TTemporaryReferences, TPage>): Promise<Response | null>;
261
- //#endregion
262
- export { HandleProgressiveServerActionRequestOptions, HandleServerActionRscRequestOptions, applyActionRedirectBasePath, handleProgressiveServerActionRequest, handleServerActionRscRequest, isProgressiveServerActionRequest, readActionBodyWithLimit, readActionFormDataWithLimit };
262
+ export declare function applyActionRedirectBasePath(url: string, basePath: string): string;
263
+ export declare function isProgressiveServerActionRequest(request: Pick<Request, "method">, contentType: string, actionId: string | null): boolean;
264
+ export declare function handleProgressiveServerActionRequest(options: HandleProgressiveServerActionRequestOptions): Promise<Response | ProgressiveServerActionResult | null>;
265
+ export declare function handleServerActionRscRequest<TElement, TRoute extends AppServerActionRoute, TInterceptOpts, TTemporaryReferences, TPage = unknown>(options: HandleServerActionRscRequestOptions<TElement, TRoute, TInterceptOpts, TTemporaryReferences, TPage>): Promise<Response | null>;
266
+ //#endregion