vinext 1.0.0-beta.9 → 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 (800) hide show
  1. package/README.md +150 -92
  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 +36 -11
  37. package/dist/build/prerender-paths.js +273 -97
  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 +65 -15
  43. package/dist/build/prerender.js +139 -43
  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 +24 -20
  49. package/dist/build/report.js +10 -2
  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 +6 -7
  62. package/dist/cache/cache-adapters-virtual.d.ts +60 -20
  63. package/dist/cache/cache-adapters-virtual.js +50 -7
  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 -442
  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 -10
  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 +2 -4
  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 +4 -5
  102. package/dist/entries/app-browser-entry.js +1 -3
  103. package/dist/entries/app-rsc-entry.d.ts +10 -3
  104. package/dist/entries/app-rsc-entry.js +502 -51
  105. package/dist/entries/app-rsc-manifest.d.ts +4 -3
  106. package/dist/entries/app-rsc-manifest.js +26 -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 +234 -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 +711 -189
  117. package/dist/init-cloudflare.d.ts +26 -17
  118. package/dist/init-cloudflare.js +710 -102
  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 +19 -6
  191. package/dist/routing/app-router.js +24 -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 +87 -34
  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 +8 -4
  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 +6 -2
  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-client-reference-preloader.d.ts +2 -3
  237. package/dist/server/app-elements-wire-key.d.ts +25 -0
  238. package/dist/server/app-elements-wire-key.js +69 -0
  239. package/dist/server/app-elements-wire.d.ts +34 -53
  240. package/dist/server/app-elements-wire.js +4 -75
  241. package/dist/server/app-elements.d.ts +5 -5
  242. package/dist/server/app-elements.js +1 -1
  243. package/dist/server/app-fallback-renderer.d.ts +4 -4
  244. package/dist/server/app-fallback-renderer.js +6 -6
  245. package/dist/server/app-fetch-tracing.d.ts +15 -0
  246. package/dist/server/app-fetch-tracing.js +38 -0
  247. package/dist/server/app-history-state.d.ts +26 -27
  248. package/dist/server/app-history-state.js +19 -11
  249. package/dist/server/app-hook-warning-suppression.d.ts +2 -3
  250. package/dist/server/app-hydration-cache-publication.d.ts +3 -4
  251. package/dist/server/app-inline-css-client.d.ts +3 -4
  252. package/dist/server/app-interception-context-header.d.ts +2 -3
  253. package/dist/server/app-layout-param-observation.d.ts +7 -8
  254. package/dist/server/app-metadata-tracing.d.ts +12 -0
  255. package/dist/server/app-metadata-tracing.js +17 -0
  256. package/dist/server/app-middleware.d.ts +7 -7
  257. package/dist/server/app-middleware.js +2 -3
  258. package/dist/server/app-mounted-slots-header.d.ts +2 -3
  259. package/dist/server/app-mounted-slots-header.js +2 -2
  260. package/dist/server/app-optimistic-routing.d.ts +10 -11
  261. package/dist/server/app-optimistic-routing.js +3 -2
  262. package/dist/server/app-page-boundary-render.d.ts +6 -6
  263. package/dist/server/app-page-boundary-render.js +10 -4
  264. package/dist/server/app-page-boundary.d.ts +9 -10
  265. package/dist/server/app-page-boundary.js +1 -1
  266. package/dist/server/app-page-cache-finalizer.d.ts +18 -9
  267. package/dist/server/app-page-cache-finalizer.js +51 -16
  268. package/dist/server/app-page-cache-render.d.ts +8 -5
  269. package/dist/server/app-page-cache-render.js +22 -5
  270. package/dist/server/app-page-cache.d.ts +28 -9
  271. package/dist/server/app-page-cache.js +95 -24
  272. package/dist/server/app-page-dispatch.d.ts +34 -12
  273. package/dist/server/app-page-dispatch.js +181 -64
  274. package/dist/server/app-page-element-builder.d.ts +13 -11
  275. package/dist/server/app-page-element-builder.js +104 -61
  276. package/dist/server/app-page-execution.d.ts +14 -14
  277. package/dist/server/app-page-execution.js +11 -7
  278. package/dist/server/app-page-head.d.ts +19 -16
  279. package/dist/server/app-page-head.js +25 -25
  280. package/dist/server/app-page-http-access-fallback-metadata.d.ts +6 -5
  281. package/dist/server/app-page-http-access-fallback-metadata.js +9 -2
  282. package/dist/server/app-page-method.d.ts +5 -11
  283. package/dist/server/app-page-method.js +2 -9
  284. package/dist/server/app-page-params.d.ts +5 -6
  285. package/dist/server/app-page-ppr-runtime.d.ts +2 -2
  286. package/dist/server/app-page-probe.d.ts +5 -6
  287. package/dist/server/app-page-probe.js +5 -4
  288. package/dist/server/app-page-render-identity.d.ts +4 -5
  289. package/dist/server/app-page-render-observation.d.ts +8 -9
  290. package/dist/server/app-page-render-observation.js +1 -1
  291. package/dist/server/app-page-render.d.ts +41 -6
  292. package/dist/server/app-page-render.js +171 -25
  293. package/dist/server/app-page-request.d.ts +10 -9
  294. package/dist/server/app-page-request.js +16 -12
  295. package/dist/server/app-page-response.d.ts +20 -9
  296. package/dist/server/app-page-response.js +30 -12
  297. package/dist/server/app-page-route-wiring.d.ts +15 -15
  298. package/dist/server/app-page-route-wiring.js +31 -24
  299. package/dist/server/app-page-search-params-observation.d.ts +26 -5
  300. package/dist/server/app-page-search-params-observation.js +42 -6
  301. package/dist/server/app-page-segment-plan.d.ts +2 -3
  302. package/dist/server/app-page-segment-state.d.ts +11 -12
  303. package/dist/server/app-page-stream.d.ts +27 -11
  304. package/dist/server/app-page-stream.js +34 -6
  305. package/dist/server/app-page-tracing.d.ts +33 -0
  306. package/dist/server/app-page-tracing.js +49 -0
  307. package/dist/server/app-pages-bridge.d.ts +6 -6
  308. package/dist/server/app-pages-bridge.js +17 -4
  309. package/dist/server/app-post-middleware-context.d.ts +2 -3
  310. package/dist/server/app-ppr-fallback-shell-render.d.ts +3 -4
  311. package/dist/server/app-ppr-fallback-shell-render.js +3 -2
  312. package/dist/server/app-ppr-fallback-shell.d.ts +6 -7
  313. package/dist/server/app-prerender-endpoints.d.ts +5 -5
  314. package/dist/server/app-prerender-endpoints.js +3 -1
  315. package/dist/server/app-prerender-static-params.d.ts +15 -7
  316. package/dist/server/app-prerender-static-params.js +24 -9
  317. package/dist/server/app-render-dependency.d.ts +14 -13
  318. package/dist/server/app-render-dependency.js +5 -1
  319. package/dist/server/app-request-context.d.ts +3 -4
  320. package/dist/server/app-request-stage-context.d.ts +5 -0
  321. package/dist/server/app-request-stage-context.js +11 -0
  322. package/dist/server/app-request-stage-dispatch.d.ts +25 -0
  323. package/dist/server/app-request-stage-dispatch.js +54 -0
  324. package/dist/server/app-request-stage-independent-entry.d.ts +8 -0
  325. package/dist/server/app-request-stage-independent-entry.js +115 -0
  326. package/dist/server/app-response-header-provenance.d.ts +13 -7
  327. package/dist/server/app-response-header-provenance.js +34 -1
  328. package/dist/server/app-response-stage-entry.d.ts +9 -0
  329. package/dist/server/app-response-stage-entry.js +87 -0
  330. package/dist/server/app-route-handler-cache.d.ts +2 -3
  331. package/dist/server/app-route-handler-cache.js +46 -34
  332. package/dist/server/app-route-handler-dispatch.d.ts +3 -3
  333. package/dist/server/app-route-handler-dispatch.js +68 -54
  334. package/dist/server/app-route-handler-execution.d.ts +17 -13
  335. package/dist/server/app-route-handler-execution.js +69 -18
  336. package/dist/server/app-route-handler-middleware-context.d.ts +8 -0
  337. package/dist/server/app-route-handler-middleware-context.js +15 -0
  338. package/dist/server/app-route-handler-policy.d.ts +11 -11
  339. package/dist/server/app-route-handler-response.d.ts +9 -10
  340. package/dist/server/app-route-handler-response.js +2 -0
  341. package/dist/server/app-route-handler-runtime.d.ts +9 -10
  342. package/dist/server/app-route-handler-runtime.js +20 -16
  343. package/dist/server/app-route-module-loader.d.ts +6 -7
  344. package/dist/server/app-route-request-built-ins.d.ts +3 -4
  345. package/dist/server/app-route-tree-prefetch.d.ts +6 -7
  346. package/dist/server/app-route-tree-prefetch.js +2 -1
  347. package/dist/server/app-router-entry.d.ts +2 -0
  348. package/dist/server/app-router-entry.js +28 -8
  349. package/dist/server/app-rsc-cache-busting.d.ts +34 -27
  350. package/dist/server/app-rsc-cache-busting.js +14 -2
  351. package/dist/server/app-rsc-combined-handler.d.ts +9 -0
  352. package/dist/server/app-rsc-combined-handler.js +11 -0
  353. package/dist/server/app-rsc-embedded-chunks.d.ts +6 -7
  354. package/dist/server/app-rsc-error-handler.d.ts +12 -6
  355. package/dist/server/app-rsc-error-handler.js +15 -6
  356. package/dist/server/app-rsc-errors.d.ts +12 -9
  357. package/dist/server/app-rsc-errors.js +15 -13
  358. package/dist/server/app-rsc-handler.d.ts +31 -6
  359. package/dist/server/app-rsc-handler.js +411 -61
  360. package/dist/server/app-rsc-redirect-flight.d.ts +4 -5
  361. package/dist/server/app-rsc-render-mode.d.ts +8 -9
  362. package/dist/server/app-rsc-request-normalization.d.ts +3 -3
  363. package/dist/server/app-rsc-request-normalization.js +2 -1
  364. package/dist/server/app-rsc-response-finalizer.d.ts +8 -5
  365. package/dist/server/app-rsc-response-finalizer.js +6 -6
  366. package/dist/server/app-rsc-response-stage.d.ts +6 -0
  367. package/dist/server/app-rsc-response-stage.js +251 -0
  368. package/dist/server/app-rsc-route-matching.d.ts +3 -4
  369. package/dist/server/app-rsc-route-matching.js +3 -2
  370. package/dist/server/app-rsc-state-fingerprint.d.ts +3 -4
  371. package/dist/server/app-rsc-vary.d.ts +16 -0
  372. package/dist/server/app-rsc-vary.js +31 -0
  373. package/dist/server/app-segment-config.d.ts +119 -7
  374. package/dist/server/app-segment-config.js +242 -2
  375. package/dist/server/app-server-action-execution.d.ts +16 -12
  376. package/dist/server/app-server-action-execution.js +86 -33
  377. package/dist/server/app-ssr-entry.d.ts +14 -4
  378. package/dist/server/app-ssr-entry.js +61 -14
  379. package/dist/server/app-ssr-error-meta.d.ts +3 -4
  380. package/dist/server/app-ssr-error-meta.js +2 -1
  381. package/dist/server/app-ssr-router-instance.d.ts +2 -3
  382. package/dist/server/app-ssr-search-params-gate.d.ts +20 -0
  383. package/dist/server/app-ssr-search-params-gate.js +54 -0
  384. package/dist/server/app-ssr-stream.d.ts +13 -9
  385. package/dist/server/app-ssr-stream.js +33 -7
  386. package/dist/server/app-static-generation.d.ts +4 -5
  387. package/dist/server/app-visited-response-cache.d.ts +11 -12
  388. package/dist/server/app-visited-response-cache.js +2 -2
  389. package/dist/server/app-worker-stages.d.ts +112 -0
  390. package/dist/server/app-worker-stages.js +105 -0
  391. package/dist/server/artifact-compatibility.d.ts +11 -12
  392. package/dist/server/before-interactive-head.d.ts +2 -3
  393. package/dist/server/bfcache-identity.d.ts +7 -8
  394. package/dist/server/cache-control.d.ts +35 -13
  395. package/dist/server/cache-control.js +71 -5
  396. package/dist/server/cache-headers.d.ts +3 -4
  397. package/dist/server/cache-proof.d.ts +75 -70
  398. package/dist/server/cache-proof.js +9 -1
  399. package/dist/server/cacheability-limits.d.ts +4 -5
  400. package/dist/server/cacheability-limits.js +2 -2
  401. package/dist/server/cacheability-manifest.d.ts +42 -16
  402. package/dist/server/cacheability-manifest.js +60 -10
  403. package/dist/server/cacheability-request.d.ts +37 -8
  404. package/dist/server/cacheability-request.js +159 -57
  405. package/dist/server/client-reuse-manifest.d.ts +17 -18
  406. package/dist/server/client-reuse-manifest.js +2 -2
  407. package/dist/server/client-trace-metadata.d.ts +9 -6
  408. package/dist/server/client-trace-metadata.js +27 -15
  409. package/dist/server/cloudflare-workers-tracing.d.ts +1 -0
  410. package/dist/server/cloudflare-workers-tracing.js +8 -0
  411. package/dist/server/config-headers.d.ts +19 -5
  412. package/dist/server/config-headers.js +25 -11
  413. package/dist/server/cookie-utils.d.ts +2 -3
  414. package/dist/server/csp.d.ts +5 -6
  415. package/dist/server/default-global-error-module.d.ts +2 -3
  416. package/dist/server/default-global-not-found-module.d.ts +2 -3
  417. package/dist/server/default-not-found-module.d.ts +2 -3
  418. package/dist/server/defer-until-stream-consumed.d.ts +2 -3
  419. package/dist/server/defer-until-stream-consumed.js +2 -1
  420. package/dist/server/dev-initial-server-error.d.ts +3 -4
  421. package/dist/server/dev-initial-server-error.js +2 -1
  422. package/dist/server/dev-lockfile.d.ts +7 -8
  423. package/dist/server/dev-lockfile.js +4 -1
  424. package/dist/server/dev-module-runner.d.ts +2 -3
  425. package/dist/server/dev-origin-check.d.ts +5 -6
  426. package/dist/server/dev-route-files.d.ts +2 -3
  427. package/dist/server/dev-server.d.ts +4 -5
  428. package/dist/server/dev-server.js +130 -61
  429. package/dist/server/dev-stack-sourcemap.d.ts +7 -7
  430. package/dist/server/dev-stack-sourcemap.js +1 -1
  431. package/dist/server/document-initial-head.d.ts +3 -4
  432. package/dist/server/edge-api-runtime.d.ts +4 -5
  433. package/dist/server/fetch-handler.d.ts +3 -2
  434. package/dist/server/fetch-handler.js +3 -18
  435. package/dist/server/file-based-metadata.d.ts +2 -3
  436. package/dist/server/framework-tracer.d.ts +46 -0
  437. package/dist/server/framework-tracer.js +125 -0
  438. package/dist/server/fully-buffered-response.d.ts +11 -0
  439. package/dist/server/fully-buffered-response.js +19 -0
  440. package/dist/server/headers.d.ts +54 -61
  441. package/dist/server/headers.js +18 -31
  442. package/dist/server/html.d.ts +6 -27
  443. package/dist/server/html.js +16 -1
  444. package/dist/server/http-conditional.d.ts +5 -6
  445. package/dist/server/http-date.d.ts +2 -3
  446. package/dist/server/http-error-responses.d.ts +9 -10
  447. package/dist/server/http-range.d.ts +4 -5
  448. package/dist/server/hybrid-route-priority.d.ts +4 -5
  449. package/dist/server/image-optimization.d.ts +20 -21
  450. package/dist/server/implicit-tags.d.ts +3 -4
  451. package/dist/server/instrumentation-runtime.d.ts +17 -21
  452. package/dist/server/instrumentation-runtime.js +26 -8
  453. package/dist/server/instrumentation.d.ts +26 -30
  454. package/dist/server/instrumentation.js +18 -23
  455. package/dist/server/isr-cache.d.ts +28 -27
  456. package/dist/server/isr-cache.js +18 -70
  457. package/dist/server/isr-decision.d.ts +4 -4
  458. package/dist/server/metadata-route-build-data.d.ts +4 -5
  459. package/dist/server/metadata-route-cache-policy.d.ts +2 -3
  460. package/dist/server/metadata-route-response.d.ts +7 -7
  461. package/dist/server/metadata-route-response.js +68 -2
  462. package/dist/server/metadata-routes.d.ts +18 -19
  463. package/dist/server/middleware-matcher-pattern.d.ts +6 -7
  464. package/dist/server/middleware-matcher.d.ts +6 -7
  465. package/dist/server/middleware-path-to-regexp.d.ts +6 -7
  466. package/dist/server/middleware-path-to-regexp.js +11 -9
  467. package/dist/server/middleware-response-headers.d.ts +3 -4
  468. package/dist/server/middleware-runtime.d.ts +7 -8
  469. package/dist/server/middleware-runtime.js +36 -7
  470. package/dist/server/middleware.d.ts +5 -5
  471. package/dist/server/multi-stage.d.ts +141 -0
  472. package/dist/server/multi-stage.js +8 -0
  473. package/dist/server/navigation-planner.d.ts +26 -26
  474. package/dist/server/navigation-trace.d.ts +11 -12
  475. package/dist/server/next-error-digest.d.ts +4 -5
  476. package/dist/server/normalize-path.d.ts +5 -6
  477. package/dist/server/open-redirect.d.ts +2 -3
  478. package/dist/server/opentelemetry-api.d.ts +59 -0
  479. package/dist/server/opentelemetry-api.js +53 -0
  480. package/dist/server/opentelemetry-tracing.d.ts +5 -0
  481. package/dist/server/opentelemetry-tracing.js +83 -0
  482. package/dist/server/operation-token.d.ts +11 -12
  483. package/dist/server/otel-tracer-extension.d.ts +7 -9
  484. package/dist/server/otel-tracer-extension.js +37 -36
  485. package/dist/server/pages-api-route.d.ts +5 -4
  486. package/dist/server/pages-api-route.js +20 -7
  487. package/dist/server/pages-asset-tags.d.ts +6 -6
  488. package/dist/server/pages-asset-tags.js +37 -2
  489. package/dist/server/pages-body-parser-config.d.ts +4 -5
  490. package/dist/server/pages-body-parser-config.js +4 -4
  491. package/dist/server/pages-client-assets.d.ts +11 -5
  492. package/dist/server/pages-data-route.d.ts +11 -12
  493. package/dist/server/pages-data-route.js +1 -1
  494. package/dist/server/pages-default-404.d.ts +3 -4
  495. package/dist/server/pages-dev-hydration.d.ts +9 -4
  496. package/dist/server/pages-dev-hydration.js +19 -7
  497. package/dist/server/pages-dev-module-url.d.ts +3 -4
  498. package/dist/server/pages-dev-stylesheets.d.ts +5 -6
  499. package/dist/server/pages-document-asset-props.d.ts +6 -7
  500. package/dist/server/pages-document-initial-props.d.ts +5 -5
  501. package/dist/server/pages-document-initial-props.js +4 -2
  502. package/dist/server/pages-execution-tracing.d.ts +40 -0
  503. package/dist/server/pages-execution-tracing.js +80 -0
  504. package/dist/server/pages-get-initial-props.d.ts +9 -10
  505. package/dist/server/pages-i18n.d.ts +8 -8
  506. package/dist/server/pages-media-type.d.ts +4 -5
  507. package/dist/server/pages-node-compat.d.ts +11 -10
  508. package/dist/server/pages-node-compat.js +12 -4
  509. package/dist/server/pages-page-data.d.ts +18 -19
  510. package/dist/server/pages-page-data.js +11 -10
  511. package/dist/server/pages-page-handler.d.ts +7 -6
  512. package/dist/server/pages-page-handler.js +77 -39
  513. package/dist/server/pages-page-method.d.ts +2 -3
  514. package/dist/server/pages-page-response.d.ts +14 -10
  515. package/dist/server/pages-page-response.js +49 -31
  516. package/dist/server/pages-preview.d.ts +10 -11
  517. package/dist/server/pages-readiness.d.ts +2 -3
  518. package/dist/server/pages-request-pipeline.d.ts +14 -12
  519. package/dist/server/pages-request-pipeline.js +60 -30
  520. package/dist/server/pages-request-stage-entry.d.ts +23 -0
  521. package/dist/server/pages-request-stage-entry.js +314 -0
  522. package/dist/server/pages-response-stage-entry.d.ts +11 -0
  523. package/dist/server/pages-response-stage-entry.js +106 -0
  524. package/dist/server/pages-response-stage.d.ts +31 -0
  525. package/dist/server/pages-response-stage.js +49 -0
  526. package/dist/server/pages-revalidate.d.ts +3 -4
  527. package/dist/server/pages-revalidate.js +9 -4
  528. package/dist/server/pages-route-data-kind.d.ts +18 -0
  529. package/dist/server/pages-route-data-kind.js +11 -0
  530. package/dist/server/pages-router-entry.d.ts +1 -25
  531. package/dist/server/pages-router-entry.js +35 -148
  532. package/dist/server/pages-serializable-props.d.ts +3 -4
  533. package/dist/server/pregenerated-concrete-paths.d.ts +9 -7
  534. package/dist/server/pregenerated-concrete-paths.js +12 -6
  535. package/dist/server/prerender-cache-life-header.d.ts +3 -4
  536. package/dist/server/prerender-manifest.d.ts +11 -11
  537. package/dist/server/prerender-manifest.js +6 -3
  538. package/dist/server/prerender-route-params.d.ts +16 -9
  539. package/dist/server/prerender-route-params.js +18 -3
  540. package/dist/server/prerender-work-unit-setup.d.ts +2 -3
  541. package/dist/server/prerender-work-unit-setup.js +5 -5
  542. package/dist/server/prod-server.d.ts +12 -9
  543. package/dist/server/prod-server.js +124 -31
  544. package/dist/server/proxy-trust.d.ts +5 -6
  545. package/dist/server/request-log.d.ts +3 -4
  546. package/dist/server/request-pipeline.d.ts +16 -16
  547. package/dist/server/request-pipeline.js +7 -2
  548. package/dist/server/request-stage.d.ts +5 -0
  549. package/dist/server/request-stage.js +7 -0
  550. package/dist/server/request-tracing.d.ts +22 -0
  551. package/dist/server/request-tracing.js +180 -0
  552. package/dist/server/response-stage-cacheability.d.ts +37 -0
  553. package/dist/server/response-stage-cacheability.js +55 -0
  554. package/dist/server/response-stage-policy.d.ts +23 -0
  555. package/dist/server/response-stage-policy.js +89 -0
  556. package/dist/server/response-stage.d.ts +5 -0
  557. package/dist/server/response-stage.js +7 -0
  558. package/dist/server/response-start-tracing.d.ts +14 -0
  559. package/dist/server/response-start-tracing.js +80 -0
  560. package/dist/server/revalidation-host.d.ts +2 -3
  561. package/dist/server/revalidation-host.js +1 -1
  562. package/dist/server/revalidation-request.d.ts +8 -0
  563. package/dist/server/revalidation-request.js +37 -0
  564. package/dist/server/rsc-completion-metadata.d.ts +6 -7
  565. package/dist/server/rsc-stream-hints.d.ts +18 -7
  566. package/dist/server/rsc-stream-hints.js +70 -35
  567. package/dist/server/seed-cache.d.ts +2 -3
  568. package/dist/server/seed-cache.js +8 -7
  569. package/dist/server/server-action-not-found.d.ts +5 -6
  570. package/dist/server/server-globals.d.ts +2 -3
  571. package/dist/server/skip-cache-proof.d.ts +4 -4
  572. package/dist/server/socket-error-backstop.d.ts +5 -6
  573. package/dist/server/socket-error-backstop.js +1 -1
  574. package/dist/server/static-file-cache.d.ts +5 -6
  575. package/dist/server/static-file-cache.js +9 -7
  576. package/dist/server/static-file-signal.d.ts +9 -6
  577. package/dist/server/static-file-signal.js +51 -2
  578. package/dist/server/static-layout-client-reuse-proof.d.ts +4 -5
  579. package/dist/server/streaming-metadata.d.ts +2 -3
  580. package/dist/server/tracer.d.ts +5 -0
  581. package/dist/server/tracer.js +13 -0
  582. package/dist/server/worker-prerender-discovery.d.ts +5 -6
  583. package/dist/server/worker-revalidation-context.d.ts +2 -3
  584. package/dist/server/worker-revalidation-context.js +5 -5
  585. package/dist/server/worker-stages.d.ts +43 -0
  586. package/dist/server/worker-stages.js +25 -0
  587. package/dist/server/worker-utils.d.ts +5 -6
  588. package/dist/server/worker-utils.js +2 -1
  589. package/dist/server/workers-tracing.d.ts +17 -0
  590. package/dist/server/workers-tracing.js +27 -0
  591. package/dist/shims/amp.d.ts +3 -4
  592. package/dist/shims/app-router-scroll-state.d.ts +9 -10
  593. package/dist/shims/app-router-scroll.d.ts +4 -5
  594. package/dist/shims/app-router-scroll.js +2 -1
  595. package/dist/shims/app.d.ts +5 -6
  596. package/dist/shims/before-interactive-context.d.ts +5 -6
  597. package/dist/shims/cache-callable-runtime.d.ts +44 -4
  598. package/dist/shims/cache-callable-runtime.js +168 -8
  599. package/dist/shims/cache-for-request.d.ts +2 -3
  600. package/dist/shims/cache-handler.d.ts +33 -20
  601. package/dist/shims/cache-handler.js +61 -2
  602. package/dist/shims/cache-request-state.d.ts +28 -29
  603. package/dist/shims/cache-runtime.d.ts +23 -21
  604. package/dist/shims/cache-runtime.js +107 -27
  605. package/dist/shims/cache.d.ts +15 -15
  606. package/dist/shims/cache.js +15 -13
  607. package/dist/shims/cacheability-classification.d.ts +49 -28
  608. package/dist/shims/cacheability-classification.js +27 -12
  609. package/dist/shims/cdn-cache-state.d.ts +13 -0
  610. package/dist/shims/cdn-cache-state.js +23 -0
  611. package/dist/shims/cdn-cache.d.ts +50 -21
  612. package/dist/shims/cdn-cache.js +15 -38
  613. package/dist/shims/client-hook-error.d.ts +3 -4
  614. package/dist/shims/client-locale.d.ts +2 -3
  615. package/dist/shims/client-page-root.d.ts +24 -0
  616. package/dist/shims/client-page-root.js +121 -0
  617. package/dist/shims/compat-router.d.ts +2 -3
  618. package/dist/shims/config.d.ts +3 -4
  619. package/dist/shims/constants.d.ts +73 -74
  620. package/dist/shims/constants.js +1 -1
  621. package/dist/shims/default-not-found.d.ts +2 -3
  622. package/dist/shims/document.d.ts +9 -9
  623. package/dist/shims/dynamic-preload-chunks.d.ts +2 -3
  624. package/dist/shims/dynamic-preload-chunks.js +17 -13
  625. package/dist/shims/dynamic.d.ts +3 -3
  626. package/dist/shims/error-boundary-navigation.d.ts +3 -4
  627. package/dist/shims/error-boundary.d.ts +17 -18
  628. package/dist/shims/error-boundary.js +17 -11
  629. package/dist/shims/error.d.ts +4 -4
  630. package/dist/shims/error.react-server.d.ts +3 -4
  631. package/dist/shims/fetch-cache.d.ts +22 -22
  632. package/dist/shims/fetch-cache.js +42 -17
  633. package/dist/shims/font-google-base.d.ts +9 -9
  634. package/dist/shims/font-google-base.js +2 -1
  635. package/dist/shims/font-local.d.ts +3 -3
  636. package/dist/shims/font-local.js +1 -1
  637. package/dist/shims/font-utils.d.ts +14 -15
  638. package/dist/shims/form.d.ts +2 -2
  639. package/dist/shims/form.js +10 -7
  640. package/dist/shims/hash-scroll.d.ts +5 -6
  641. package/dist/shims/head-state.d.ts +4 -5
  642. package/dist/shims/head.d.ts +16 -16
  643. package/dist/shims/head.js +5 -4
  644. package/dist/shims/headers.d.ts +67 -33
  645. package/dist/shims/headers.js +93 -6
  646. package/dist/shims/i18n-context.d.ts +5 -6
  647. package/dist/shims/i18n-state.d.ts +4 -5
  648. package/dist/shims/image-config.d.ts +5 -6
  649. package/dist/shims/image-config.js +2 -0
  650. package/dist/shims/image.d.ts +5 -5
  651. package/dist/shims/image.js +12 -8
  652. package/dist/shims/internal/als-registry.d.ts +4 -5
  653. package/dist/shims/internal/api-utils.d.ts +3 -4
  654. package/dist/shims/internal/app-page-props-cache-key.d.ts +32 -4
  655. package/dist/shims/internal/app-page-props-cache-key.js +53 -1
  656. package/dist/shims/internal/app-prefetch-fetch-queue.d.ts +5 -6
  657. package/dist/shims/internal/app-prefetch-rsc-request.d.ts +5 -17
  658. package/dist/shims/internal/app-prefetch-rsc-request.js +5 -14
  659. package/dist/shims/internal/app-route-detection.d.ts +2 -2
  660. package/dist/shims/internal/app-route-prefetch-policy.d.ts +5 -8
  661. package/dist/shims/internal/app-route-prefetch-policy.js +0 -1
  662. package/dist/shims/internal/app-router-context.d.ts +9 -10
  663. package/dist/shims/internal/cookie-serialize.d.ts +4 -5
  664. package/dist/shims/internal/format-url-object.d.ts +7 -0
  665. package/dist/shims/internal/format-url-object.js +53 -0
  666. package/dist/shims/internal/hybrid-client-route-owner-direct.d.ts +6 -7
  667. package/dist/shims/internal/hybrid-client-route-owner.d.ts +3 -3
  668. package/dist/shims/internal/hybrid-client-route-owner.js +3 -2
  669. package/dist/shims/internal/interpolate-as.d.ts +5 -6
  670. package/dist/shims/internal/interpolate-as.js +4 -2
  671. package/dist/shims/internal/link-status-registry.d.ts +5 -6
  672. package/dist/shims/internal/make-hanging-promise.d.ts +3 -4
  673. package/dist/shims/internal/navigation-untracked.d.ts +2 -3
  674. package/dist/shims/internal/normalize-router-href.d.ts +15 -0
  675. package/dist/shims/internal/normalize-router-href.js +41 -0
  676. package/dist/shims/internal/pages-data-fetch-dedup.d.ts +8 -9
  677. package/dist/shims/internal/pages-data-target.d.ts +8 -6
  678. package/dist/shims/internal/pages-data-target.js +32 -36
  679. package/dist/shims/internal/pages-data-url.d.ts +4 -5
  680. package/dist/shims/internal/pages-data-url.js +2 -1
  681. package/dist/shims/internal/pages-router-accessor.d.ts +3 -4
  682. package/dist/shims/internal/pages-router-components.d.ts +3 -4
  683. package/dist/shims/internal/route-pattern-for-warning.d.ts +5 -6
  684. package/dist/shims/internal/route-pattern-for-warning.js +3 -3
  685. package/dist/shims/internal/router-context.d.ts +2 -3
  686. package/dist/shims/internal/thenable-well-known-properties.d.ts +10 -0
  687. package/dist/shims/internal/thenable-well-known-properties.js +33 -0
  688. package/dist/shims/internal/utils.d.ts +7 -8
  689. package/dist/shims/internal/work-unit-async-storage.d.ts +10 -11
  690. package/dist/shims/layout-segment-context.d.ts +3 -4
  691. package/dist/shims/link-prefetch.d.ts +9 -10
  692. package/dist/shims/link.d.ts +4 -4
  693. package/dist/shims/link.js +56 -116
  694. package/dist/shims/metadata.d.ts +15 -16
  695. package/dist/shims/metadata.js +40 -36
  696. package/dist/shims/navigation-context-accessors.d.ts +9 -0
  697. package/dist/shims/navigation-context-accessors.js +19 -0
  698. package/dist/shims/navigation-context-state.d.ts +27 -18
  699. package/dist/shims/navigation-errors.d.ts +18 -19
  700. package/dist/shims/navigation-state.d.ts +6 -7
  701. package/dist/shims/navigation.d.ts +80 -68
  702. package/dist/shims/navigation.js +24 -16
  703. package/dist/shims/navigation.react-server.d.ts +9 -9
  704. package/dist/shims/offline.d.ts +2 -3
  705. package/dist/shims/og.d.ts +2 -2
  706. package/dist/shims/pages-router-runtime.d.ts +4 -5
  707. package/dist/shims/ppr-fallback-shell.d.ts +13 -14
  708. package/dist/shims/readonly-url-search-params.d.ts +2 -3
  709. package/dist/shims/request-context.d.ts +5 -6
  710. package/dist/shims/root-params.d.ts +14 -15
  711. package/dist/shims/router-state.d.ts +5 -6
  712. package/dist/shims/router-state.js +1 -1
  713. package/dist/shims/router.d.ts +22 -21
  714. package/dist/shims/router.js +339 -164
  715. package/dist/shims/script-nonce-context.d.ts +8 -6
  716. package/dist/shims/script-nonce-context.js +15 -6
  717. package/dist/shims/script.d.ts +4 -4
  718. package/dist/shims/script.js +9 -7
  719. package/dist/shims/search-params-gate.d.ts +35 -0
  720. package/dist/shims/search-params-gate.js +32 -0
  721. package/dist/shims/server.d.ts +19 -51
  722. package/dist/shims/server.js +14 -28
  723. package/dist/shims/slot.d.ts +33 -15
  724. package/dist/shims/slot.js +41 -9
  725. package/dist/shims/streamed-icons.d.ts +3 -4
  726. package/dist/shims/thenable-params.d.ts +5 -7
  727. package/dist/shims/thenable-params.js +3 -24
  728. package/dist/shims/unified-request-context.d.ts +34 -31
  729. package/dist/shims/unified-request-context.js +34 -24
  730. package/dist/shims/unrecognized-action-error.d.ts +3 -4
  731. package/dist/shims/url-safety.d.ts +5 -6
  732. package/dist/shims/url-utils.d.ts +12 -13
  733. package/dist/shims/use-merged-ref.d.ts +2 -3
  734. package/dist/shims/user-agent.d.ts +31 -0
  735. package/dist/shims/user-agent.js +16 -0
  736. package/dist/shims/web-vitals.d.ts +2 -2
  737. package/dist/typegen.d.ts +3 -4
  738. package/dist/utils/asset-prefix.d.ts +7 -8
  739. package/dist/utils/base-path.d.ts +5 -6
  740. package/dist/utils/built-asset-url.d.ts +2 -3
  741. package/dist/utils/built-asset-url.js +1 -1
  742. package/dist/utils/cache-control-metadata.d.ts +4 -5
  743. package/dist/utils/client-build-manifest.d.ts +6 -7
  744. package/dist/utils/client-build-manifest.js +2 -1
  745. package/dist/utils/client-entry-manifest.d.ts +6 -7
  746. package/dist/utils/client-runtime-metadata.d.ts +8 -3
  747. package/dist/utils/client-runtime-metadata.js +18 -1
  748. package/dist/utils/commonjs-loader.d.ts +4 -5
  749. package/dist/utils/compare.d.ts +2 -3
  750. package/dist/utils/deployment-id.d.ts +6 -7
  751. package/dist/utils/dev-error-recovery-event.d.ts +2 -3
  752. package/dist/utils/dev-stack-sourcemap-endpoint.d.ts +2 -3
  753. package/dist/utils/domain-locale.d.ts +7 -8
  754. package/dist/utils/encode-cache-tag.d.ts +3 -4
  755. package/dist/utils/error-cause.d.ts +2 -3
  756. package/dist/utils/external-url.d.ts +2 -3
  757. package/dist/utils/has-trailing-comma.d.ts +3 -4
  758. package/dist/utils/hash.d.ts +3 -4
  759. package/dist/utils/html-limited-bots.d.ts +3 -4
  760. package/dist/utils/lazy-chunks.d.ts +8 -9
  761. package/dist/utils/lazy-chunks.js +4 -4
  762. package/dist/utils/manifest-paths.d.ts +5 -6
  763. package/dist/utils/mdx-scan.d.ts +11 -4
  764. package/dist/utils/mdx-scan.js +27 -1
  765. package/dist/utils/middleware-request-headers.d.ts +7 -6
  766. package/dist/utils/middleware-request-headers.js +6 -1
  767. package/dist/utils/navigation-signal.d.ts +3 -3
  768. package/dist/utils/navigation-signal.js +16 -1
  769. package/dist/utils/number.d.ts +2 -3
  770. package/dist/utils/package-name.d.ts +3 -4
  771. package/dist/utils/parse-cookie.d.ts +4 -5
  772. package/dist/utils/path.d.ts +8 -9
  773. package/dist/utils/plugin-options.d.ts +2 -3
  774. package/dist/utils/precompressed-variant.d.ts +3 -4
  775. package/dist/utils/prerender-output-paths.d.ts +4 -5
  776. package/dist/utils/project.d.ts +19 -30
  777. package/dist/utils/project.js +20 -29
  778. package/dist/utils/promise.d.ts +2 -3
  779. package/dist/utils/protocol-headers.d.ts +14 -15
  780. package/dist/utils/public-file-path.d.ts +2 -3
  781. package/dist/utils/public-routes.d.ts +2 -3
  782. package/dist/utils/query.d.ts +14 -9
  783. package/dist/utils/query.js +22 -1
  784. package/dist/utils/react-compiler-support.d.ts +6 -7
  785. package/dist/utils/react-version.d.ts +4 -3
  786. package/dist/utils/react-version.js +19 -1
  787. package/dist/utils/record.d.ts +2 -3
  788. package/dist/utils/redirect-digest.d.ts +3 -4
  789. package/dist/utils/regex-safety.d.ts +4 -5
  790. package/dist/utils/regex.d.ts +2 -3
  791. package/dist/utils/safe-json-file.d.ts +2 -3
  792. package/dist/utils/sorted-array.d.ts +2 -3
  793. package/dist/utils/text-stream.d.ts +3 -4
  794. package/dist/utils/vinext-root.d.ts +2 -3
  795. package/dist/utils/virtual-module.d.ts +3 -4
  796. package/dist/utils/vite-cli-invocation.d.ts +21 -0
  797. package/dist/utils/vite-cli-invocation.js +144 -0
  798. package/dist/utils/vite-version.d.ts +5 -6
  799. package/next-package.json +4 -0
  800. package/package.json +47 -6
@@ -1,7 +1,10 @@
1
- import { NEXT_ROUTER_STATE_TREE_HEADER, NEXT_URL_HEADER, VINEXT_INTERCEPTION_CONTEXT_HEADER, VINEXT_INTERCEPTION_ID_HEADER, VINEXT_MOUNTED_SLOTS_HEADER, VINEXT_RSC_RENDER_MODE_HEADER, VINEXT_RSC_STATE_FINGERPRINT_HEADER } from "./headers.js";
1
+ import { NEXT_ROUTER_STATE_TREE_HEADER, NEXT_URL_HEADER, VINEXT_INTERCEPTION_CONTEXT_HEADER, VINEXT_INTERCEPTION_ID_HEADER, VINEXT_MOUNTED_SLOTS_HEADER, VINEXT_RSC_RENDER_MODE_HEADER, VINEXT_RSC_STATE_FINGERPRINT_HEADER } from "./app-rsc-vary.js";
2
+ import "./headers.js";
2
3
  import "./app-rsc-render-mode.js";
3
4
  //#region src/server/cacheability-manifest.ts
4
5
  const CACHEABILITY_MANIFEST_MODULE = "__vinext_cacheability_manifest.js";
6
+ /** Request-stage projection of the manifest: the App page routes that can admit a query-free entry. */
7
+ const CACHEABILITY_REQUEST_PROJECTION_MODULE = "__vinext_cacheability_request_projection.js";
5
8
  function cacheabilityManifestRouteKey(kind, pattern) {
6
9
  return JSON.stringify([kind, pattern]);
7
10
  }
@@ -47,9 +50,10 @@ function parseRoute(key, value) {
47
50
  const pathPrefix = typeof route.pathPrefix === "string" && route.pathPrefix.startsWith("/") && new URL(route.pathPrefix, "http://vinext.local").pathname === route.pathPrefix ? route.pathPrefix : void 0;
48
51
  const runtimePaths = route.runtimePaths === void 0 ? void 0 : parsePathList(route.runtimePaths, pathPrefix);
49
52
  const staticPaths = route.staticPaths === void 0 ? void 0 : parseStaticPaths(route.staticPaths, pathPrefix);
53
+ const runtimeRepresentationPaths = route.runtimeRepresentationPaths === void 0 ? void 0 : parseStaticPaths(route.runtimeRepresentationPaths, pathPrefix);
50
54
  const staticRepresentation = isRepresentation(route.staticRepresentation) ? route.staticRepresentation : void 0;
51
55
  const runtimeRepresentation = isRepresentation(route.runtimeRepresentation) ? route.runtimeRepresentation : void 0;
52
- if (route.allowUnknown !== void 0 && route.allowUnknown !== true || route.unknownState !== void 0 && route.unknownState !== "static-candidate" || route.unknownState !== void 0 && route.allowUnknown !== true || route.pathPrefix !== void 0 && pathPrefix === void 0 || route.staticRepresentation !== void 0 && staticRepresentation === void 0 || route.runtimeRepresentation !== void 0 && runtimeRepresentation === void 0 || runtimeRepresentation !== void 0 && (route.state !== "runtime-check" || route.allowUnknown !== void 0 || pathPrefix !== void 0 || staticRepresentation !== void 0 || runtimePaths !== void 0 || staticPaths !== void 0) || staticRepresentation !== void 0 && (route.state !== "runtime-check" || /(^|\/):/.test(route.pattern) || runtimePaths !== void 0 || staticPaths !== void 0) || pathPrefix !== void 0 && !runtimePaths && !staticPaths || route.runtimePaths !== void 0 && !runtimePaths || route.staticPaths !== void 0 && !staticPaths || (runtimePaths || staticPaths || route.allowUnknown === true) && route.state !== "runtime-check") return null;
56
+ if (route.allowUnknown !== void 0 && route.allowUnknown !== true || route.unknownState !== void 0 && route.unknownState !== "static-candidate" || route.unknownState !== void 0 && route.allowUnknown !== true || route.pathPrefix !== void 0 && pathPrefix === void 0 || route.staticRepresentation !== void 0 && staticRepresentation === void 0 || route.runtimeRepresentation !== void 0 && runtimeRepresentation === void 0 || runtimeRepresentation !== void 0 && (route.state !== "runtime-check" || route.allowUnknown !== void 0 || pathPrefix !== void 0 || staticRepresentation !== void 0 || runtimePaths !== void 0 || staticPaths !== void 0 || runtimeRepresentationPaths !== void 0) || staticRepresentation !== void 0 && (route.state !== "runtime-check" || /(^|\/):/.test(route.pattern) || runtimePaths !== void 0 || staticPaths !== void 0 || runtimeRepresentationPaths !== void 0) || pathPrefix !== void 0 && !runtimePaths && !staticPaths && !runtimeRepresentationPaths || route.runtimePaths !== void 0 && !runtimePaths || route.staticPaths !== void 0 && !staticPaths || route.runtimeRepresentationPaths !== void 0 && !runtimeRepresentationPaths || (runtimePaths || staticPaths || runtimeRepresentationPaths || route.allowUnknown === true) && route.state !== "runtime-check") return null;
53
57
  const parsed = {
54
58
  kind: route.kind,
55
59
  pattern: route.pattern,
@@ -60,13 +64,14 @@ function parseRoute(key, value) {
60
64
  ...runtimeRepresentation ? { runtimeRepresentation } : {},
61
65
  ...staticRepresentation ? { staticRepresentation } : {},
62
66
  ...runtimePaths ? { runtimePaths } : {},
67
+ ...runtimeRepresentationPaths ? { runtimeRepresentationPaths } : {},
63
68
  ...staticPaths ? { staticPaths } : {}
64
69
  };
65
- const observedPaths = /* @__PURE__ */ new Set();
66
- for (const tokens of [runtimePaths, ...Object.values(staticPaths ?? {})]) for (const token of tokens ?? []) {
67
- const pathname = expandPathToken(pathPrefix, token);
68
- if (observedPaths.has(pathname)) return null;
69
- observedPaths.add(pathname);
70
+ const runtimePathSet = new Set((runtimePaths ?? []).map((token) => expandPathToken(pathPrefix, token)));
71
+ for (const tokens of Object.values(staticPaths ?? {})) for (const token of tokens ?? []) if (runtimePathSet.has(expandPathToken(pathPrefix, token))) return null;
72
+ for (const [representation, tokens] of Object.entries(runtimeRepresentationPaths ?? {})) {
73
+ const staticTokens = new Set(staticPaths?.[representation]);
74
+ for (const token of tokens ?? []) if (runtimePathSet.has(expandPathToken(pathPrefix, token)) || staticTokens.has(token)) return null;
70
75
  }
71
76
  return key === cacheabilityManifestRouteKey(parsed.kind, parsed.pattern) ? parsed : null;
72
77
  }
@@ -100,11 +105,15 @@ const CONTEXTUAL_RSC_HEADERS = [
100
105
  VINEXT_MOUNTED_SLOTS_HEADER,
101
106
  VINEXT_RSC_STATE_FINGERPRINT_HEADER
102
107
  ];
103
- function cacheabilityRequestIdentity(request) {
108
+ function cacheabilityRequestIdentity(request, trustedRepresentation) {
104
109
  if (request.method !== "GET" && request.method !== "HEAD") return null;
105
110
  if (request.headers.has("next-action") || request.headers.has("x-rsc-action")) return null;
106
111
  const url = new URL(request.url);
107
112
  const requestKey = `${url.pathname}${url.search}`;
113
+ if (trustedRepresentation) return {
114
+ representation: trustedRepresentation,
115
+ requestKey
116
+ };
108
117
  if (/(?:^|\/)_next\/data\/[^/]+\/.+\.json$/.test(url.pathname)) return {
109
118
  representation: "pages-data",
110
119
  requestKey
@@ -176,7 +185,8 @@ function cacheabilityManifestRouteState(route, routePathname, representation) {
176
185
  if (representation && includesPath(route.staticPaths?.[representation])) return "static-candidate";
177
186
  if (representation && route.staticRepresentation === representation) return "static-candidate";
178
187
  if (route.runtimeRepresentation !== void 0) return representation === route.runtimeRepresentation ? route.state : null;
179
- if (!route.staticPaths && !route.runtimePaths && route.allowUnknown !== true) return route.state;
188
+ if (representation && includesPath(route.runtimeRepresentationPaths?.[representation])) return route.state;
189
+ if (!route.staticPaths && !route.runtimePaths && !route.runtimeRepresentationPaths && route.allowUnknown !== true) return route.state;
180
190
  if (includesPath(route.runtimePaths)) return route.state;
181
191
  if (route.staticPaths) {
182
192
  for (const paths of Object.values(route.staticPaths)) if (includesPath(paths)) return route.state;
@@ -187,5 +197,45 @@ function cacheabilityManifestRouteState(route, routePathname, representation) {
187
197
  function findCacheabilityManifestRoute(manifest, kind, pattern) {
188
198
  return manifest.routes[cacheabilityManifestRouteKey(kind, pattern)] ?? null;
189
199
  }
200
+ function resolveCacheabilityRepresentation(representation, routeKind) {
201
+ if (representation !== "html" && representation !== "app-route") return representation;
202
+ return routeKind === "app-route" || routeKind === "pages-api" ? "app-route" : "html";
203
+ }
204
+ /** Whether completed-response admission can store a page route under this representation. */
205
+ function cacheabilityRepresentationMatchesPageRoute(routeKind, representation) {
206
+ return routeKind === "app-page" ? representation === "html" || representation === "rsc-full" || representation === "rsc-loading-shell" : representation === "html" || representation === "pages-data";
207
+ }
208
+ /**
209
+ * The manifest state completed-response admission gives a page request, or
210
+ * null when admission refuses it. `requestRepresentation` is the request
211
+ * identity's, and `routePathname` is built from the resolved pathname with
212
+ * `cacheabilityRoutePathname`, as admission builds it. The Workers Cache
213
+ * request stage decides its query-free dispatch with this same function, so
214
+ * the dispatch and admission always see the same state.
215
+ */
216
+ function cacheabilityManifestPageState(manifest, route, requestRepresentation, routePathname) {
217
+ const representation = resolveCacheabilityRepresentation(requestRepresentation, route.kind);
218
+ if (!cacheabilityRepresentationMatchesPageRoute(route.kind, representation)) return null;
219
+ const manifestRoute = findCacheabilityManifestRoute(manifest, route.kind, route.pattern);
220
+ return manifestRoute ? cacheabilityManifestRouteState(manifestRoute, routePathname, representation) : null;
221
+ }
222
+ /** Whether any path or representation of a route can resolve to `static-candidate`. */
223
+ function canResolveStaticCandidate(route) {
224
+ return route.state === "static-candidate" || route.unknownState === "static-candidate" || route.staticRepresentation !== void 0 || route.staticPaths !== void 0;
225
+ }
226
+ /**
227
+ * Project the manifest onto the Workers Cache request stage, which strips the
228
+ * query from App page dispatches whose manifest state is `static-candidate`.
229
+ * The projection keeps every App page route record that can resolve to that
230
+ * state, unchanged, so a lookup against it returns `static-candidate` exactly
231
+ * when the full manifest does. Every other route is left out.
232
+ */
233
+ function projectCacheabilityManifestForRequestStage(manifest) {
234
+ return {
235
+ buildId: manifest.buildId,
236
+ routes: Object.fromEntries(Object.entries(manifest.routes).filter(([, route]) => route.kind === "app-page" && canResolveStaticCandidate(route))),
237
+ version: 1
238
+ };
239
+ }
190
240
  //#endregion
191
- export { CACHEABILITY_MANIFEST_MODULE, cacheabilityManifestRouteKey, cacheabilityManifestRouteState, cacheabilityRequestIdentity, cacheabilityRoutePathname, findCacheabilityManifestRoute, normalizeCacheabilityRoutePathname, parseCacheabilityManifest };
241
+ export { CACHEABILITY_MANIFEST_MODULE, CACHEABILITY_REQUEST_PROJECTION_MODULE, cacheabilityManifestPageState, cacheabilityManifestRouteKey, cacheabilityManifestRouteState, cacheabilityRepresentationMatchesPageRoute, cacheabilityRequestIdentity, cacheabilityRoutePathname, findCacheabilityManifestRoute, normalizeCacheabilityRoutePathname, parseCacheabilityManifest, projectCacheabilityManifestForRequestStage, resolveCacheabilityRepresentation };
@@ -1,7 +1,37 @@
1
+ import { CacheabilityRepresentation, CacheabilityRouteKind } from "./cacheability-manifest.js";
1
2
  import { ExecutionContextLike } from "../shims/request-context.js";
2
3
  //#region src/server/cacheability-request.d.ts
3
- declare function createWorkerCacheabilityContext(base: ExecutionContextLike, request: Request, expectedSecret: string | null | undefined, responseVary?: "verbatim"): ExecutionContextLike;
4
- declare function createWorkerCacheabilityAdmissionContext(base: ExecutionContextLike, request: Request, rawManifest: string | null | undefined, buildId: string | null | undefined, requiresCompletedResponseAdmission?: boolean, responseVary?: "verbatim"): ExecutionContextLike;
4
+ export type WorkerCacheabilityProbeMode = "identity" | "probe";
5
+ export type WorkerCacheabilityProbeRoute = {
6
+ kind: CacheabilityRouteKind;
7
+ pattern: string;
8
+ };
9
+ /** Encode the trusted route identity carried by a staged probe request. */
10
+ export declare function serializeWorkerCacheabilityProbeRoute(route: WorkerCacheabilityProbeRoute): string;
11
+ /** Read route identity only after the surrounding probe request is authenticated. */
12
+ export declare function readWorkerCacheabilityProbeRoute(request: Request): WorkerCacheabilityProbeRoute | null;
13
+ /** Authenticate and read the cacheability probe mode before internal headers are filtered. */
14
+ export declare function readWorkerCacheabilityProbeMode(request: Request, expectedSecret: string | null | undefined): WorkerCacheabilityProbeMode | null;
15
+ /** Create probe state from a mode that was authenticated at the request boundary. */
16
+ export declare function createWorkerCacheabilityProbeContext(base: ExecutionContextLike, mode: WorkerCacheabilityProbeMode, responseVary?: "verbatim", resolvedRoutePathname?: string): ExecutionContextLike;
17
+ export declare function createWorkerCacheabilityContext(base: ExecutionContextLike, request: Request, expectedSecret: string | null | undefined, responseVary?: "verbatim"): ExecutionContextLike;
18
+ export declare function createWorkerCacheabilityAdmissionContext(base: ExecutionContextLike, request: Request, rawManifest: string | null | undefined, buildId: string | null | undefined, requiresCompletedResponseAdmission?: boolean, responseVary?: "verbatim", resolvedRoutePathname?: string, trustedRepresentation?: CacheabilityRepresentation, options?: {
19
+ applyCompletedResponsePolicy?: boolean;
20
+ }): ExecutionContextLike;
21
+ /** Apply request-stage-vetted positive config policy inside the admission boundary. */
22
+ export declare function applyResponseStageCachePolicy(response: Response, ctx: ExecutionContextLike, policyHeaders: ReadonlyArray<readonly [string, string]> | null | undefined): Response;
23
+ /** Record policy that a renderer applied before producing its response. */
24
+ export declare function recordResponseStageCachePolicy(ctx: ExecutionContextLike, policyHeaders: ReadonlyArray<readonly [string, string]> | null | undefined): void;
25
+ /**
26
+ * Convert an authenticated probe that terminated in request routing into a
27
+ * valid identity-scoped dynamic result. Middleware redirects, custom responses,
28
+ * and external rewrites never reach the reusable response stage.
29
+ */
30
+ export declare function finalizeRequestStageCacheabilityProbe(response: Response, options: {
31
+ mode: WorkerCacheabilityProbeMode | null;
32
+ responseStageDispatched: boolean;
33
+ route: WorkerCacheabilityProbeRoute | null;
34
+ }): Response;
5
35
  type CapturedAdmissionBody = {
6
36
  body: ReadableStream<Uint8Array> | null;
7
37
  kind: "captured";
@@ -9,12 +39,11 @@ type CapturedAdmissionBody = {
9
39
  body: ReadableStream<Uint8Array>;
10
40
  kind: "fallback";
11
41
  };
12
- type CacheabilityAdmissionCaptureBudget = {
42
+ export type CacheabilityAdmissionCaptureBudget = {
13
43
  maxBytes: number;
14
44
  reservedBytes: number;
15
45
  };
16
- declare function createCacheabilityAdmissionCaptureBudget(maxBytes: number): CacheabilityAdmissionCaptureBudget;
17
- declare function captureCacheabilityAdmissionBody(body: ReadableStream<Uint8Array> | null, deadlineAt: number, limit?: number, budget?: CacheabilityAdmissionCaptureBudget): Promise<CapturedAdmissionBody>;
18
- declare function finalizeWorkerCacheabilityResponse(response: Response, ctx: ExecutionContextLike): Promise<Response>;
19
- //#endregion
20
- export { CacheabilityAdmissionCaptureBudget, captureCacheabilityAdmissionBody, createCacheabilityAdmissionCaptureBudget, createWorkerCacheabilityAdmissionContext, createWorkerCacheabilityContext, finalizeWorkerCacheabilityResponse };
46
+ export declare function createCacheabilityAdmissionCaptureBudget(maxBytes: number): CacheabilityAdmissionCaptureBudget;
47
+ export declare function captureCacheabilityAdmissionBody(body: ReadableStream<Uint8Array> | null, deadlineAt: number, limit?: number, budget?: CacheabilityAdmissionCaptureBudget): Promise<CapturedAdmissionBody>;
48
+ export declare function finalizeWorkerCacheabilityResponse(response: Response, ctx: ExecutionContextLike): Promise<Response>;
49
+ //#endregion
@@ -1,30 +1,62 @@
1
1
  import "../utils/protocol-headers.js";
2
- import { VINEXT_CACHEABILITY_PROBE_HEADER, VINEXT_RSC_VARY_HEADER } from "./headers.js";
2
+ import { isVinextRscVaryField } from "./app-rsc-vary.js";
3
+ import { VINEXT_CACHEABILITY_PROBE_HEADER, VINEXT_CACHEABILITY_PROBE_ROUTE_HEADER } from "./headers.js";
3
4
  import { isNonCacheableCacheControl } from "../shims/cdn-cache.js";
4
- import { NO_STORE_CACHE_CONTROL, applyCdnResponseBuildIdentityHeaders, applyCdnResponseHeaders, hasExplicitNonCacheableResponsePolicy } from "./cache-control.js";
5
- import { cacheabilityManifestRouteState, cacheabilityRequestIdentity, cacheabilityRoutePathname, findCacheabilityManifestRoute, parseCacheabilityManifest } from "./cacheability-manifest.js";
6
- import { CACHEABILITY_POLICY_HEADERS, CACHEABILITY_REQUEST_STATE } from "../shims/cacheability-classification.js";
7
- import { CACHEABILITY_ADMISSION_ISOLATE_BODY_LIMIT, CACHEABILITY_ADMISSION_RESPONSE_BODY_LIMIT, CACHEABILITY_PROBE_TIMEOUT_MS } from "./cacheability-limits.js";
5
+ import { CACHEABILITY_REQUEST_STATE, recordConfigCdnCachePolicyHeader } from "../shims/cacheability-classification.js";
6
+ import { NO_STORE_CACHE_CONTROL, applyCdnResponseBuildIdentityHeaders, applyCdnResponseHeaders, hasExplicitNonCacheableResponsePolicy, isCdnResponsePolicyHeader, readCdnResponseCacheControl, readCdnResponsePolicyHeaderName } from "./cache-control.js";
7
+ import { cacheabilityManifestPageState, cacheabilityManifestRouteState, cacheabilityRepresentationMatchesPageRoute, cacheabilityRequestIdentity, cacheabilityRoutePathname, findCacheabilityManifestRoute, parseCacheabilityManifest, resolveCacheabilityRepresentation } from "./cacheability-manifest.js";
8
8
  import { workerCapabilityMatches } from "./worker-prerender-discovery.js";
9
+ import { CACHEABILITY_ADMISSION_ISOLATE_BODY_LIMIT, CACHEABILITY_ADMISSION_RESPONSE_BODY_LIMIT, CACHEABILITY_PROBE_TIMEOUT_MS } from "./cacheability-limits.js";
10
+ import { applyResponseStagePolicyHeaders } from "./response-stage-policy.js";
9
11
  //#region src/server/cacheability-request.ts
10
- const FRAMEWORK_CACHEABILITY_VARY_FIELDS = new Set(VINEXT_RSC_VARY_HEADER.split(",").map((name) => name.trim().toLowerCase()));
11
12
  function cacheabilityVaryRejectionReason(headers, state) {
12
13
  const fields = (headers.get("Vary") ?? "").split(",").map((name) => name.trim().toLowerCase()).filter(Boolean);
13
14
  if (fields.includes("*")) return "response uses Vary: *";
14
15
  if (state.responseVary === "verbatim") return null;
15
- return fields.some((name) => !FRAMEWORK_CACHEABILITY_VARY_FIELDS.has(name)) ? "response cache does not support custom Vary fields" : null;
16
+ return fields.some((name) => !isVinextRscVaryField(name)) ? "response cache does not support custom Vary fields" : null;
16
17
  }
17
- function createWorkerCacheabilityContext(base, request, expectedSecret, responseVary) {
18
+ /** Encode the trusted route identity carried by a staged probe request. */
19
+ function serializeWorkerCacheabilityProbeRoute(route) {
20
+ return encodeURIComponent(JSON.stringify([route.kind, route.pattern]));
21
+ }
22
+ /** Read route identity only after the surrounding probe request is authenticated. */
23
+ function readWorkerCacheabilityProbeRoute(request) {
24
+ const raw = request.headers.get(VINEXT_CACHEABILITY_PROBE_ROUTE_HEADER);
25
+ if (!raw) return null;
26
+ try {
27
+ const value = JSON.parse(decodeURIComponent(raw));
28
+ if (!Array.isArray(value) || value.length !== 2) return null;
29
+ const [kind, pattern] = value;
30
+ if (kind !== "app-page" && kind !== "app-route" && kind !== "pages-page" || typeof pattern !== "string" || !pattern.startsWith("/")) return null;
31
+ return {
32
+ kind,
33
+ pattern
34
+ };
35
+ } catch {
36
+ return null;
37
+ }
38
+ }
39
+ /** Authenticate and read the cacheability probe mode before internal headers are filtered. */
40
+ function readWorkerCacheabilityProbeMode(request, expectedSecret) {
18
41
  const requestedMode = request.headers.get(VINEXT_CACHEABILITY_PROBE_HEADER);
19
- if (requestedMode !== "1" && requestedMode !== "identity") return base;
20
- if (!expectedSecret || !workerCapabilityMatches(request.headers.get("x-vinext-prerender-secret") ?? "", expectedSecret)) return base;
42
+ if (requestedMode !== "1" && requestedMode !== "identity") return null;
43
+ if (!expectedSecret || !workerCapabilityMatches(request.headers.get("x-vinext-prerender-secret") ?? "", expectedSecret)) return null;
44
+ return requestedMode === "identity" ? "identity" : "probe";
45
+ }
46
+ /** Create probe state from a mode that was authenticated at the request boundary. */
47
+ function createWorkerCacheabilityProbeContext(base, mode, responseVary, resolvedRoutePathname) {
21
48
  const state = {
22
49
  captureDeadlineAt: Date.now() + CACHEABILITY_PROBE_TIMEOUT_MS,
23
- mode: requestedMode === "identity" ? "identity" : "probe",
24
- responseVary
50
+ mode,
51
+ responseVary,
52
+ resolvedRoutePathname
25
53
  };
26
54
  return Object.assign(Object.create(Object.getPrototypeOf(base)), base, { [CACHEABILITY_REQUEST_STATE]: state });
27
55
  }
56
+ function createWorkerCacheabilityContext(base, request, expectedSecret, responseVary) {
57
+ const mode = readWorkerCacheabilityProbeMode(request, expectedSecret);
58
+ return mode ? createWorkerCacheabilityProbeContext(base, mode, responseVary) : base;
59
+ }
28
60
  let cachedManifest;
29
61
  function readBoundManifest(raw, buildId) {
30
62
  if (cachedManifest?.raw === raw && cachedManifest.buildId === buildId) return cachedManifest.manifest;
@@ -36,18 +68,22 @@ function readBoundManifest(raw, buildId) {
36
68
  };
37
69
  return manifest;
38
70
  }
39
- function createWorkerCacheabilityAdmissionContext(base, request, rawManifest, buildId, requiresCompletedResponseAdmission = rawManifest != null, responseVary) {
40
- const identity = cacheabilityRequestIdentity(request);
71
+ function createWorkerCacheabilityAdmissionContext(base, request, rawManifest, buildId, requiresCompletedResponseAdmission = rawManifest != null, responseVary, resolvedRoutePathname, trustedRepresentation, options) {
72
+ const identity = cacheabilityRequestIdentity(request, trustedRepresentation);
73
+ const credentialedRequest = request.headers.has("authorization") || request.headers.has("cookie") || request.headers.has("proxy-authorization");
74
+ const routePathname = identity ? cacheabilityRoutePathname(resolvedRoutePathname ?? new URL(request.url).pathname, identity.representation) : void 0;
41
75
  if (!rawManifest) {
42
76
  if (!requiresCompletedResponseAdmission) return base;
43
77
  const state = {
44
78
  admission: identity ? {
45
79
  policy: "runtime",
46
80
  ...identity,
47
- routePathname: cacheabilityRoutePathname(new URL(request.url).pathname, identity.representation)
81
+ routePathname
48
82
  } : { policy: "deny" },
49
83
  captureDeadlineAt: Date.now() + CACHEABILITY_PROBE_TIMEOUT_MS,
84
+ credentialedRequest,
50
85
  mode: "admit",
86
+ applyCompletedResponsePolicy: options?.applyCompletedResponsePolicy,
51
87
  responseVary
52
88
  };
53
89
  return Object.assign(Object.create(Object.getPrototypeOf(base)), base, { [CACHEABILITY_REQUEST_STATE]: state });
@@ -58,10 +94,12 @@ function createWorkerCacheabilityAdmissionContext(base, request, rawManifest, bu
58
94
  manifest,
59
95
  policy: "manifest",
60
96
  ...identity,
61
- routePathname: cacheabilityRoutePathname(new URL(request.url).pathname, identity.representation)
97
+ routePathname
62
98
  } : { policy: "deny" },
63
99
  captureDeadlineAt: Date.now() + CACHEABILITY_PROBE_TIMEOUT_MS,
100
+ credentialedRequest,
64
101
  mode: "admit",
102
+ applyCompletedResponsePolicy: options?.applyCompletedResponsePolicy,
65
103
  responseVary
66
104
  };
67
105
  return Object.assign(Object.create(Object.getPrototypeOf(base)), base, { [CACHEABILITY_REQUEST_STATE]: state });
@@ -69,13 +107,45 @@ function createWorkerCacheabilityAdmissionContext(base, request, rawManifest, bu
69
107
  function readState(ctx) {
70
108
  return Reflect.get(ctx, CACHEABILITY_REQUEST_STATE) ?? null;
71
109
  }
72
- function probeResponse(state, routeState, outcome, status, rendererStatic) {
110
+ /** Apply request-stage-vetted positive config policy inside the admission boundary. */
111
+ function applyResponseStageCachePolicy(response, ctx, policyHeaders) {
112
+ if (!policyHeaders?.length) return response;
113
+ recordConfigCachePolicy(readState(ctx), policyHeaders);
114
+ try {
115
+ applyResponseStagePolicyHeaders(response.headers, policyHeaders);
116
+ return response;
117
+ } catch {
118
+ const headers = new Headers(response.headers);
119
+ applyResponseStagePolicyHeaders(headers, policyHeaders);
120
+ return new Response(response.body, {
121
+ headers,
122
+ status: response.status,
123
+ statusText: response.statusText
124
+ });
125
+ }
126
+ }
127
+ /** Record policy that a renderer applied before producing its response. */
128
+ function recordResponseStageCachePolicy(ctx, policyHeaders) {
129
+ if (!policyHeaders?.length) return;
130
+ recordConfigCachePolicy(readState(ctx), policyHeaders);
131
+ }
132
+ function recordConfigCachePolicy(state, policyHeaders) {
133
+ if (!state) return;
134
+ state.explicitConfigCachePolicy = true;
135
+ for (const [name, value] of policyHeaders) if (isCdnResponsePolicyHeader(name)) recordConfigCdnCachePolicyHeader(state, name, value);
136
+ }
137
+ function probeResponse(state, routeState, outcome, status, renderer) {
138
+ const dynamicUsage = renderer?.dynamicUsage === true || outcome.dynamicUsage === true || state.patternDynamicReason !== void 0;
73
139
  const body = {
74
140
  cacheControl: outcome.cacheControl,
141
+ ...dynamicUsage ? { dynamicUsage: true } : {},
142
+ ...state.explicitConfigCachePolicy ? { explicitConfigCachePolicy: true } : {},
75
143
  kind: state.route?.kind,
76
144
  pattern: state.route?.pattern,
77
145
  reason: outcome.reason,
78
- ...rendererStatic !== void 0 ? { rendererStatic } : {},
146
+ ...renderer ? { rendererStatic: renderer.static } : {},
147
+ ...outcome.retryable ? { retryable: true } : {},
148
+ ...state.resolvedRoutePathname ? { routePathname: state.resolvedRoutePathname } : {},
79
149
  ...routeState === "dynamic" ? { scope: state.patternDynamicReason ? "pattern" : "identity" } : {},
80
150
  state: routeState,
81
151
  status,
@@ -83,6 +153,26 @@ function probeResponse(state, routeState, outcome, status, rendererStatic) {
83
153
  };
84
154
  return applyCdnResponseBuildIdentityHeaders(Response.json(body, { headers: { "Cache-Control": NO_STORE_CACHE_CONTROL } }));
85
155
  }
156
+ /**
157
+ * Convert an authenticated probe that terminated in request routing into a
158
+ * valid identity-scoped dynamic result. Middleware redirects, custom responses,
159
+ * and external rewrites never reach the reusable response stage.
160
+ */
161
+ function finalizeRequestStageCacheabilityProbe(response, options) {
162
+ if (!options.mode || options.responseStageDispatched || !options.route) return response;
163
+ response.body?.cancel().catch(() => {});
164
+ const body = {
165
+ kind: options.route.kind,
166
+ pattern: options.route.pattern,
167
+ reason: "request routing completed without response-stage rendering",
168
+ scope: "identity",
169
+ state: "dynamic",
170
+ status: response.status,
171
+ terminal: true,
172
+ version: 1
173
+ };
174
+ return applyCdnResponseBuildIdentityHeaders(Response.json(body, { headers: { "Cache-Control": NO_STORE_CACHE_CONTROL } }));
175
+ }
86
176
  async function drainProbeBody(response, deadlineAt) {
87
177
  if (!response.body) return null;
88
178
  const reader = response.body.getReader();
@@ -260,6 +350,7 @@ async function captureCacheabilityAdmissionBody(body, deadlineAt, limit = CACHEA
260
350
  }
261
351
  function responseWithCachePolicy(response, body, outcome) {
262
352
  const headers = new Headers(response.headers);
353
+ if (typeof body === "string") headers.delete("Content-Length");
263
354
  applyCdnResponseHeaders(headers, outcome?.cacheable === true && outcome.cacheControl ? {
264
355
  cacheControl: outcome.cacheControl,
265
356
  tags: outcome.tags
@@ -270,34 +361,30 @@ function responseWithCachePolicy(response, body, outcome) {
270
361
  statusText: response.statusText
271
362
  });
272
363
  }
364
+ async function stripSharedHtmlClientTraceMetadata(body, marker) {
365
+ if (!body) return null;
366
+ const html = await new Response(body).text();
367
+ const { stripClientTraceMetadataBlock } = await import("./client-trace-metadata.js");
368
+ return stripClientTraceMetadataBlock(html, marker);
369
+ }
273
370
  function inferFinalAppPageCacheability(response, state) {
274
371
  if (!state.explicitConfigCachePolicy && !state.frameworkResponseCachePolicy) return null;
275
- const changedPolicy = [
276
- "cloudflare-cdn-cache-control",
277
- "cdn-cache-control",
278
- "cache-control"
279
- ].find((name) => {
280
- const value = response.headers.get(name);
281
- return value !== null && (state.explicitConfigCachePolicy || value !== state.frameworkResponseCachePolicy?.[name]);
282
- });
283
- if (!changedPolicy) return null;
284
- const cacheControl = response.headers.get(changedPolicy);
372
+ const cacheControl = readCdnResponseCacheControl(response.headers);
373
+ if (cacheControl === null || !state.explicitConfigCachePolicy && cacheControl === readCdnResponseCacheControl(state.frameworkResponseCachePolicy)) return null;
285
374
  if (isNonCacheableCacheControl(cacheControl)) return { cacheable: false };
286
- const cacheTag = response.headers.get("Cache-Tag");
287
375
  return {
288
376
  cacheable: true,
289
377
  cacheControl,
290
- ...cacheTag ? { tags: cacheTag.split(",").map((tag) => tag.trim()).filter(Boolean) } : {}
378
+ ...state.cdnCacheTags ? { tags: state.cdnCacheTags } : {}
291
379
  };
292
380
  }
293
- function inferPagesPageCacheability(response) {
294
- const cacheControl = response.headers.get("Cloudflare-CDN-Cache-Control") ?? response.headers.get("CDN-Cache-Control") ?? response.headers.get("Cache-Control");
381
+ function inferPagesPageCacheability(response, state) {
382
+ const cacheControl = readCdnResponseCacheControl(response.headers);
295
383
  if (!cacheControl || isNonCacheableCacheControl(cacheControl)) return { cacheable: false };
296
- const cacheTag = response.headers.get("Cache-Tag");
297
384
  return {
298
385
  cacheable: true,
299
386
  cacheControl,
300
- ...cacheTag ? { tags: cacheTag.split(",").map((tag) => tag.trim()).filter(Boolean) } : {}
387
+ ...state.cdnCacheTags ? { tags: state.cdnCacheTags } : {}
301
388
  };
302
389
  }
303
390
  function completedRouteOutcome(response, state, rendererOutcome = state.outcome ?? null) {
@@ -315,12 +402,12 @@ function completedRouteOutcome(response, state, rendererOutcome = state.outcome
315
402
  cacheable: false,
316
403
  reason: "response sets a cookie"
317
404
  };
318
- return inferPagesPageCacheability(response);
405
+ return inferPagesPageCacheability(response, state);
319
406
  }
320
407
  if (state.route?.kind === "app-page") return inferFinalAppPageCacheability(response, state) ?? rendererOutcome;
321
408
  if (state.route?.kind !== "pages-page") return rendererOutcome;
322
409
  if (response.headers.has("set-cookie") || hasExplicitNonCacheableResponsePolicy(response.headers)) return { cacheable: false };
323
- const responseOutcome = inferPagesPageCacheability(response);
410
+ const responseOutcome = inferPagesPageCacheability(response, state);
324
411
  return responseOutcome.cacheable ? responseOutcome : rendererOutcome ?? responseOutcome;
325
412
  }
326
413
  function staticToDynamicResponse(route) {
@@ -341,29 +428,30 @@ function cacheabilityEvaluationFailureResponse(pattern) {
341
428
  }
342
429
  function hasStrictFinalResponseVeto(response, state) {
343
430
  if (state.finalResponseVetoReason || response.headers.has("set-cookie")) return true;
344
- for (const name of CACHEABILITY_POLICY_HEADERS) {
345
- const value = response.headers.get(name);
346
- if (value !== null && value !== state.frameworkResponseCachePolicy?.[name] && isNonCacheableCacheControl(value)) return true;
347
- }
348
- return false;
431
+ return hasExplicitNonCacheableResponsePolicy(response.headers, state.frameworkResponseCachePolicy);
349
432
  }
350
433
  async function finalizeWorkerCacheabilityAdmission(response, state) {
351
434
  if (state.preserveResponseCachePolicy) return response;
352
435
  const admission = state.admission;
353
- if (state.route?.kind === "app-route") {
436
+ if (state.route?.kind === "app-route" || state.route?.kind === "pages-api") {
354
437
  let manifestRoute = null;
355
- const hasExplicitRuntimePolicy = state.explicitResponseCachePolicy === true || state.explicitConfigCachePolicy === true;
356
- if (!admission || admission.policy === "deny" || !admission.representation || !admission.requestKey) return responseWithCachePolicy(response, response.body, null);
357
- if (admission.policy === "manifest") {
438
+ const responseOutcome = inferPagesPageCacheability(response, state);
439
+ const representation = admission?.representation ? resolveCacheabilityRepresentation(admission.representation, state.route.kind) : null;
440
+ const hasExplicitRuntimePolicy = state.explicitResponseCachePolicy === true || state.explicitConfigCachePolicy === true || state.route.kind === "pages-api" && responseOutcome.cacheable;
441
+ if (!admission || admission.policy === "deny" || !representation || !admission.requestKey) return responseWithCachePolicy(response, response.body, null);
442
+ if (admission.policy === "manifest" && state.route.kind === "app-route") {
358
443
  const manifest = admission.manifest;
359
444
  manifestRoute = findCacheabilityManifestRoute(manifest, state.route.kind, state.route.pattern);
360
445
  }
361
- const isManifestAuthorized = manifestRoute !== null && admission.routePathname !== void 0 && cacheabilityManifestRouteState(manifestRoute, admission.routePathname, admission.representation) !== null;
446
+ const isManifestAuthorized = manifestRoute !== null && admission.routePathname !== void 0 && cacheabilityManifestRouteState(manifestRoute, admission.routePathname, representation) !== null;
362
447
  const canUseBoundedRuntimeAdmission = hasExplicitRuntimePolicy && (admission.policy === "runtime" || admission.policy === "manifest" && !isManifestAuthorized);
363
- if (!isManifestAuthorized && !canUseBoundedRuntimeAdmission || response.status >= 500 || state.forcedDynamicReason || hasStrictFinalResponseVeto(response, state) || cacheabilityVaryRejectionReason(response.headers, state) !== null) return responseWithCachePolicy(response, response.body, null);
364
- const outcome = inferPagesPageCacheability(response);
448
+ if (!isManifestAuthorized && !canUseBoundedRuntimeAdmission || response.status >= 500 || state.credentialedRequest || state.forcedDynamicReason || hasStrictFinalResponseVeto(response, state) || cacheabilityVaryRejectionReason(response.headers, state) !== null) return responseWithCachePolicy(response, response.body, null);
449
+ const outcome = responseOutcome;
365
450
  if (!outcome.cacheable || !outcome.cacheControl) return responseWithCachePolicy(response, response.body, null);
366
- if (state.completedResponseBody) return response;
451
+ if (state.completedResponseBody) {
452
+ if (!state.applyCompletedResponsePolicy) return response;
453
+ return responseWithCachePolicy(response, response.body, outcome);
454
+ }
367
455
  let captured;
368
456
  try {
369
457
  captured = await captureCacheabilityAdmissionBody(response.body, state.captureDeadlineAt, CACHEABILITY_ADMISSION_RESPONSE_BODY_LIMIT, state.captureBudget ?? isolateCaptureBudget);
@@ -374,13 +462,19 @@ async function finalizeWorkerCacheabilityAdmission(response, state) {
374
462
  return responseWithCachePolicy(response, captured.body, outcome);
375
463
  }
376
464
  if (!admission || admission.policy === "deny" || !admission.representation || !admission.requestKey || !state.route || response.status >= 500) return responseWithCachePolicy(response, response.body, null);
377
- if (!(state.route.kind === "app-page" ? admission.representation === "html" || admission.representation === "rsc-full" || admission.representation === "rsc-loading-shell" : admission.representation === "html" || admission.representation === "pages-data")) return responseWithCachePolicy(response, response.body, null);
465
+ const pageRoute = {
466
+ kind: state.route.kind,
467
+ pattern: state.route.pattern
468
+ };
469
+ const requestRepresentation = admission.representation;
470
+ const representation = resolveCacheabilityRepresentation(requestRepresentation, pageRoute.kind);
471
+ if (!cacheabilityRepresentationMatchesPageRoute(pageRoute.kind, representation)) return responseWithCachePolicy(response, response.body, null);
378
472
  let manifestRoute = null;
379
473
  let manifestRouteState = null;
380
474
  if (admission.policy === "manifest") {
381
475
  const manifest = admission.manifest;
382
- manifestRoute = findCacheabilityManifestRoute(manifest, state.route.kind, state.route.pattern);
383
- manifestRouteState = manifestRoute && admission.routePathname ? cacheabilityManifestRouteState(manifestRoute, admission.routePathname, admission.representation) : null;
476
+ manifestRoute = findCacheabilityManifestRoute(manifest, pageRoute.kind, pageRoute.pattern);
477
+ manifestRouteState = admission.routePathname ? cacheabilityManifestPageState(manifest, pageRoute, requestRepresentation, admission.routePathname) : null;
384
478
  if (!manifestRoute || !manifestRouteState) return responseWithCachePolicy(response, response.body, null);
385
479
  }
386
480
  if (state.forcedDynamicReason) return responseWithCachePolicy(response, response.body, null);
@@ -393,7 +487,8 @@ async function finalizeWorkerCacheabilityAdmission(response, state) {
393
487
  return cacheabilityEvaluationFailureResponse(state.route.pattern);
394
488
  }
395
489
  if (captured.kind === "fallback") return responseWithCachePolicy(response, captured.body, null);
396
- const outcome = completedRouteOutcome(response, state, state.completion ? await state.completion : state.outcome ?? null);
490
+ const rendererOutcome = state.completion ? await state.completion : state.outcome ?? null;
491
+ const outcome = completedRouteOutcome(response, state, rendererOutcome);
397
492
  if (outcome?.cacheable !== true || !outcome.cacheControl) {
398
493
  if (manifestRoute && manifestRouteState === "static-candidate" && outcome?.dynamicUsage === true) {
399
494
  await captured.body?.cancel().catch(() => {});
@@ -401,7 +496,10 @@ async function finalizeWorkerCacheabilityAdmission(response, state) {
401
496
  }
402
497
  return responseWithCachePolicy(response, captured.body, null);
403
498
  }
404
- return responseWithCachePolicy(response, captured.body, outcome);
499
+ const effectivePolicyHeader = readCdnResponsePolicyHeaderName(response.headers);
500
+ const replacesRendererPolicy = outcome !== rendererOutcome && effectivePolicyHeader !== null && state.configCdnCachePolicy?.get(effectivePolicyHeader) === response.headers.get(effectivePolicyHeader);
501
+ if (state.route.kind === "app-page" && !replacesRendererPolicy && rendererOutcome?.searchParamsUnread !== true) return responseWithCachePolicy(response, captured.body, null);
502
+ return responseWithCachePolicy(response, representation === "html" && state.clientTraceMetadataMarker ? await stripSharedHtmlClientTraceMetadata(captured.body, state.clientTraceMetadataMarker) : captured.body, outcome);
405
503
  }
406
504
  async function finalizeWorkerCacheabilityResponse(response, ctx) {
407
505
  const state = readState(ctx);
@@ -443,7 +541,8 @@ async function finalizeWorkerCacheabilityResponse(response, ctx) {
443
541
  if (drainFailure) return probeResponse(state, "probe-failed", {
444
542
  cacheable: false,
445
543
  classificationFailure: true,
446
- reason: drainFailure
544
+ reason: drainFailure,
545
+ retryable: true
447
546
  }, response.status);
448
547
  const rendererOutcome = state.completion ? await state.completion : state.outcome ?? null;
449
548
  const outcome = completedRouteOutcome(response, state, rendererOutcome);
@@ -451,7 +550,10 @@ async function finalizeWorkerCacheabilityResponse(response, ctx) {
451
550
  cacheable: false,
452
551
  reason: "completed render did not produce a reusable cache policy"
453
552
  }, response.status);
454
- return probeResponse(state, outcome.cacheable ? "static-candidate" : outcome.classificationFailure ? "probe-failed" : "dynamic", outcome, response.status, rendererOutcome?.cacheable === true && rendererOutcome.dynamicUsage !== true);
553
+ return probeResponse(state, outcome.cacheable ? "static-candidate" : outcome.classificationFailure ? "probe-failed" : "dynamic", outcome, response.status, {
554
+ dynamicUsage: rendererOutcome?.dynamicUsage === true,
555
+ static: rendererOutcome?.cacheable === true && rendererOutcome.dynamicUsage !== true
556
+ });
455
557
  }
456
558
  //#endregion
457
- export { captureCacheabilityAdmissionBody, createCacheabilityAdmissionCaptureBudget, createWorkerCacheabilityAdmissionContext, createWorkerCacheabilityContext, finalizeWorkerCacheabilityResponse };
559
+ export { applyResponseStageCachePolicy, captureCacheabilityAdmissionBody, createCacheabilityAdmissionCaptureBudget, createWorkerCacheabilityAdmissionContext, createWorkerCacheabilityContext, createWorkerCacheabilityProbeContext, finalizeRequestStageCacheabilityProbe, finalizeWorkerCacheabilityResponse, readWorkerCacheabilityProbeMode, readWorkerCacheabilityProbeRoute, recordResponseStageCachePolicy, serializeWorkerCacheabilityProbeRoute };