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
@@ -0,0 +1,115 @@
1
+ import { VINEXT_PRERENDER_SECRET_HEADER, VINEXT_REVALIDATE_HOST_HEADER } from "../utils/protocol-headers.js";
2
+ import { assetPrefixPathname, isNextStaticPath } from "../utils/asset-prefix.js";
3
+ import { runWithExecutionContext } from "../shims/request-context.js";
4
+ import "./server-globals.js";
5
+ import "./app-rsc-vary.js";
6
+ import { VINEXT_CACHEABILITY_PROBE_QUERY_PARAM, VINEXT_EXPECTED_WORKER_VERSION_HEADER } from "./headers.js";
7
+ import { badRequestResponse, notFoundResponse } from "./http-error-responses.js";
8
+ import { isOpenRedirectShaped } from "./open-redirect.js";
9
+ import { cloneRequestWithHeaders, filterInternalHeaders } from "./request-pipeline.js";
10
+ import { applyCdnResponseIdentityHeaders, validateCdnRequest } from "./cache-control.js";
11
+ import { registerLazyDataCacheHandler } from "../shims/cache-handler.js";
12
+ import { getImageOptimizer, handleConfiguredImageOptimization, isImageOptimizationPath } from "./image-optimization.js";
13
+ import { consumeFrameworkRequestRoute, traceFrameworkRequest } from "./request-tracing.js";
14
+ import { createStaticAssetRequest, finalizeMissingStaticAssetResponse, resolveStaticAssetSignal } from "./worker-utils.js";
15
+ import { readTrustedPrerenderStateFromHeaders } from "./prerender-route-params.js";
16
+ import { createWorkerRevalidationContext } from "./worker-revalidation-context.js";
17
+ import { createWorkerPrerenderDiscoveryContext, createWorkerPrerenderReadinessResponse } from "./worker-prerender-discovery.js";
18
+ import requestRscHandler, { __assetPrefix, __basePath, __ensureHybridPagesApplication, __ensureInstrumentation, __imageAllowedWidths, __imageConfig, __prerenderSecret } from "virtual:vinext-app-request-entry";
19
+ import * as configuredCdnCacheAdapters from "virtual:vinext-cdn-cache-adapter";
20
+ import { registerConfiguredImageOptimizer } from "virtual:vinext-image-adapters";
21
+ //#region src/server/app-request-stage-independent-entry.ts
22
+ const workerBasePath = typeof __basePath === "string" ? __basePath : "";
23
+ const workerAssetPathPrefix = assetPrefixPathname(typeof __assetPrefix === "string" ? __assetPrefix : "");
24
+ function handleRequestStage(request, env, ctx, dispatchResponseStage) {
25
+ const originalRequest = request;
26
+ const handleStage = async () => {
27
+ await __ensureInstrumentation();
28
+ const url = new URL(request.url);
29
+ return traceFrameworkRequest({
30
+ callback: () => handleRequest(request, env, ctx, dispatchResponseStage, ctx?.assets).then((response) => applyCdnResponseIdentityHeaders(response, originalRequest)),
31
+ getStatus: (response) => response?.status,
32
+ headers: request.headers,
33
+ isRsc: url.pathname.endsWith(".rsc") || request.headers.get("RSC") === "1",
34
+ method: request.method,
35
+ target: url.pathname + url.search
36
+ });
37
+ };
38
+ return ctx ? runWithExecutionContext(ctx, handleStage) : handleStage();
39
+ }
40
+ async function handleRequest(request, env, platformCtx, dispatchResponseStage, assets) {
41
+ let ctx = platformCtx?.trustedRevalidateOrigin ? platformCtx : createWorkerRevalidationContext(platformCtx, (internalRequest, internalCtx) => handleRequest(internalRequest, env, internalCtx, dispatchResponseStage, assets), "node");
42
+ configuredCdnCacheAdapters.registerConfiguredCacheAdapters(env);
43
+ if (configuredCdnCacheAdapters.hasConfiguredDataCache) registerLazyDataCacheHandler(async () => {
44
+ (await import("virtual:vinext-cache-adapters")).registerConfiguredCacheAdapters(env);
45
+ });
46
+ registerConfiguredImageOptimizer(env);
47
+ ctx = createWorkerPrerenderDiscoveryContext(ctx, request, __prerenderSecret);
48
+ const readinessResponse = createWorkerPrerenderReadinessResponse(ctx, request);
49
+ let didValidateCdnRequest = false;
50
+ if (readinessResponse) {
51
+ const validationResponse = await validateCdnRequest(request);
52
+ if (validationResponse) return validationResponse;
53
+ didValidateCdnRequest = true;
54
+ if (readinessResponse.status !== 204) return readinessResponse;
55
+ await __ensureHybridPagesApplication();
56
+ }
57
+ let probeMode = null;
58
+ let probeRoute = null;
59
+ if (request.headers.has("X-Vinext-Cacheability-Probe")) {
60
+ const { readWorkerCacheabilityProbeMode, readWorkerCacheabilityProbeRoute } = await import("./cacheability-request.js");
61
+ probeMode = readWorkerCacheabilityProbeMode(request, __prerenderSecret);
62
+ if (probeMode) {
63
+ probeRoute = readWorkerCacheabilityProbeRoute(request);
64
+ const probeUrl = new URL(request.url);
65
+ probeUrl.searchParams.delete(VINEXT_CACHEABILITY_PROBE_QUERY_PARAM);
66
+ request = new Request(probeUrl, request);
67
+ }
68
+ }
69
+ if (!didValidateCdnRequest) {
70
+ const cdnValidationResponse = await validateCdnRequest(request);
71
+ if (cdnValidationResponse) return cdnValidationResponse;
72
+ }
73
+ const url = new URL(request.url);
74
+ if (isImageOptimizationPath(url.pathname) && assets && getImageOptimizer()) return handleConfiguredImageOptimization(request, (assetPath) => Promise.resolve(assets.fetch(new Request(new URL(assetPath, request.url)))), __imageAllowedWidths, __imageConfig);
75
+ if (isOpenRedirectShaped(url.pathname)) return notFoundResponse();
76
+ try {
77
+ decodeURIComponent(url.pathname);
78
+ } catch {
79
+ return badRequestResponse();
80
+ }
81
+ const missingBuildAsset = isNextStaticPath(url.pathname, workerBasePath, workerAssetPathPrefix);
82
+ const trustedPrerenderState = readTrustedPrerenderStateFromHeaders(request.headers, __prerenderSecret);
83
+ const filteredHeaders = ctx.isInternalPagesRevalidation ? new Headers(request.headers) : filterInternalHeaders(request.headers);
84
+ filteredHeaders.delete(VINEXT_PRERENDER_SECRET_HEADER);
85
+ filteredHeaders.delete(VINEXT_REVALIDATE_HOST_HEADER);
86
+ if (readinessResponse?.status === 204) {
87
+ const expectedWorkerVersion = request.headers.get(VINEXT_EXPECTED_WORKER_VERSION_HEADER);
88
+ if (expectedWorkerVersion) filteredHeaders.set(VINEXT_EXPECTED_WORKER_VERSION_HEADER, expectedWorkerVersion);
89
+ }
90
+ request = cloneRequestWithHeaders(request, filteredHeaders);
91
+ let responseStageDispatched = false;
92
+ const trackedDispatchResponseStage = (stageRequest, props, options) => {
93
+ responseStageDispatched = true;
94
+ const response = dispatchResponseStage(stageRequest, props, options);
95
+ return props.kind === "app-full-request" ? response.then(consumeFrameworkRequestRoute) : response;
96
+ };
97
+ const handle = () => requestRscHandler(request, ctx, trackedDispatchResponseStage, probeMode, ctx.isPrerenderPathDiscovery === true, trustedPrerenderState);
98
+ let response = await runWithExecutionContext(ctx, handle);
99
+ if (assets) {
100
+ const assetResponse = await resolveStaticAssetSignal(response, { fetchAsset: (path) => Promise.resolve(assets.fetch(createStaticAssetRequest(path, request))) });
101
+ if (assetResponse) response = assetResponse;
102
+ }
103
+ response = finalizeMissingStaticAssetResponse(response, missingBuildAsset);
104
+ if (probeMode && probeRoute && !responseStageDispatched) {
105
+ const { finalizeRequestStageCacheabilityProbe } = await import("./cacheability-request.js");
106
+ response = finalizeRequestStageCacheabilityProbe(response, {
107
+ mode: probeMode,
108
+ responseStageDispatched,
109
+ route: probeRoute
110
+ });
111
+ }
112
+ return response;
113
+ }
114
+ //#endregion
115
+ export { handleRequestStage };
@@ -1,13 +1,19 @@
1
1
  //#region src/server/app-response-header-provenance.d.ts
2
2
  /** Mark response headers whose Link value was emitted by the App page renderer. */
3
- declare function markFrameworkLinkHeaders(headers: Headers, linkHeader: string | string[] | null | undefined): void;
3
+ export declare function markFrameworkLinkHeaders(headers: Headers, linkHeader: string | string[] | null | undefined): void;
4
4
  /** Whether the response carries renderer-owned Link values that config may prepend to. */
5
- declare function hasFrameworkLinkHeaders(headers: Headers): boolean;
5
+ export declare function hasFrameworkLinkHeaders(headers: Headers): boolean;
6
6
  /** Mark Link values returned by an Edge route handler after config and middleware. */
7
- declare function markEdgeRouteHandlerLinkHeaders(headers: Headers, linkHeader: string | null | undefined): void;
7
+ export declare function markEdgeRouteHandlerLinkHeaders(headers: Headers, linkHeader: string | null | undefined): void;
8
8
  /** Whether config must precede a later framework or Edge-handler Link value. */
9
- declare function hasPostConfigLinkHeaders(headers: Headers): boolean;
9
+ export declare function hasPostConfigLinkHeaders(headers: Headers): boolean;
10
10
  /** Preserve Link provenance when a response wrapper reconstructs a Response. */
11
- declare function copyLinkHeaderProvenance(source: Headers, target: Headers): void;
12
- //#endregion
13
- export { copyLinkHeaderProvenance, hasFrameworkLinkHeaders, hasPostConfigLinkHeaders, markEdgeRouteHandlerLinkHeaders, markFrameworkLinkHeaders };
11
+ export declare function copyLinkHeaderProvenance(source: Headers, target: Headers): void;
12
+ /** Serialize otherwise process-local Link provenance across a response-stage transport. */
13
+ export declare function serializeResponseStageLinkProvenance(response: Response): Response;
14
+ /** Consume transported Link provenance before applying outer config and middleware. */
15
+ export declare function consumeResponseStageLinkProvenance(response: Response): {
16
+ appendToPostConfigLink: boolean;
17
+ response: Response;
18
+ };
19
+ //#endregion
@@ -1,6 +1,9 @@
1
+ import { preserveFullyBufferedBodyMetadata } from "./fully-buffered-response.js";
2
+ import "../shims/unified-request-context.js";
1
3
  //#region src/server/app-response-header-provenance.ts
2
4
  const frameworkLinkHeaders = /* @__PURE__ */ new WeakSet();
3
5
  const edgeRouteHandlerLinkHeaders = /* @__PURE__ */ new WeakSet();
6
+ const APP_RESPONSE_STAGE_LINK_PROVENANCE_HEADER = "x-vinext-app-stage-post-config-link";
4
7
  /** Mark response headers whose Link value was emitted by the App page renderer. */
5
8
  function markFrameworkLinkHeaders(headers, linkHeader) {
6
9
  if (linkHeader && (typeof linkHeader === "string" || linkHeader.length > 0)) frameworkLinkHeaders.add(headers);
@@ -22,5 +25,35 @@ function copyLinkHeaderProvenance(source, target) {
22
25
  if (frameworkLinkHeaders.has(source)) frameworkLinkHeaders.add(target);
23
26
  if (edgeRouteHandlerLinkHeaders.has(source)) edgeRouteHandlerLinkHeaders.add(target);
24
27
  }
28
+ /** Serialize otherwise process-local Link provenance across a response-stage transport. */
29
+ function serializeResponseStageLinkProvenance(response) {
30
+ if (!hasPostConfigLinkHeaders(response.headers)) return response;
31
+ const headers = new Headers(response.headers);
32
+ headers.set(APP_RESPONSE_STAGE_LINK_PROVENANCE_HEADER, "1");
33
+ return preserveFullyBufferedBodyMetadata(response, new Response(response.body, {
34
+ headers,
35
+ status: response.status,
36
+ statusText: response.statusText
37
+ }));
38
+ }
39
+ /** Consume transported Link provenance before applying outer config and middleware. */
40
+ function consumeResponseStageLinkProvenance(response) {
41
+ if (response.headers.get(APP_RESPONSE_STAGE_LINK_PROVENANCE_HEADER) !== "1") return {
42
+ appendToPostConfigLink: false,
43
+ response
44
+ };
45
+ const headers = new Headers(response.headers);
46
+ headers.delete(APP_RESPONSE_STAGE_LINK_PROVENANCE_HEADER);
47
+ const transported = preserveFullyBufferedBodyMetadata(response, new Response(response.body, {
48
+ headers,
49
+ status: response.status,
50
+ statusText: response.statusText
51
+ }));
52
+ markFrameworkLinkHeaders(transported.headers, transported.headers.get("link"));
53
+ return {
54
+ appendToPostConfigLink: true,
55
+ response: transported
56
+ };
57
+ }
25
58
  //#endregion
26
- export { copyLinkHeaderProvenance, hasFrameworkLinkHeaders, hasPostConfigLinkHeaders, markEdgeRouteHandlerLinkHeaders, markFrameworkLinkHeaders };
59
+ export { consumeResponseStageLinkProvenance, copyLinkHeaderProvenance, hasFrameworkLinkHeaders, hasPostConfigLinkHeaders, markEdgeRouteHandlerLinkHeaders, markFrameworkLinkHeaders, serializeResponseStageLinkProvenance };
@@ -0,0 +1,9 @@
1
+ import { VinextCacheFunctionInvocation, VinextRequestStageTransport, VinextResponseStageDispatchOptions } from "./multi-stage.js";
2
+ import { ExecutionContextLike } from "../shims/request-context.js";
3
+ import { AppWorkerResponseStageProps } from "./app-worker-stages.js";
4
+ //#region src/server/app-response-stage-entry.d.ts
5
+ type AppResponseStageEnv = Record<string, unknown>;
6
+ /** Invoke one transformed public cache function without rendering its owning route. */
7
+ export declare function invokeCacheFunction(invocation: VinextCacheFunctionInvocation, env: AppResponseStageEnv | undefined, platformCtx: ExecutionContextLike | undefined, dispatchRequestStage: VinextRequestStageTransport): Promise<void>;
8
+ export declare function handleResponseStage(request: Request, env: AppResponseStageEnv | undefined, platformCtx: ExecutionContextLike | undefined, props: AppWorkerResponseStageProps, dispatchRequestStage: VinextRequestStageTransport, options?: VinextResponseStageDispatchOptions): Promise<Response>;
9
+ //#endregion
@@ -0,0 +1,87 @@
1
+ import { createRequestContext, runWithRequestContext } from "../shims/unified-request-context.js";
2
+ import { runWithExecutionContext } from "../shims/request-context.js";
3
+ import { serializeStaticFileSignalForTransport } from "./static-file-signal.js";
4
+ import { validateCdnRequest } from "./cache-control.js";
5
+ import { ensureFetchPatch } from "../shims/fetch-cache.js";
6
+ import { serializeResponseStageLinkProvenance } from "./app-response-header-provenance.js";
7
+ import { attachFrameworkRequestError, attachFrameworkRequestRoute, captureFrameworkRequestRoute, clearFrameworkRequestError } from "./request-tracing.js";
8
+ import { isAppWorkerResponseStageProps } from "./app-worker-stages.js";
9
+ import { createWorkerRevalidationContext } from "./worker-revalidation-context.js";
10
+ import { createWorkerPrerenderReadinessResponse } from "./worker-prerender-discovery.js";
11
+ import { withResponseStageCacheability } from "./response-stage-cacheability.js";
12
+ import { registerConfiguredImageOptimizer } from "virtual:vinext-image-adapters";
13
+ import rscHandler, { __cacheabilityManifest, __ensureHybridPagesApplication, __ensureInstrumentation } from "virtual:vinext-app-response-entry";
14
+ import { registerConfiguredCacheAdapters } from "virtual:vinext-cache-adapters";
15
+ //#region src/server/app-response-stage-entry.ts
16
+ /** Cacheable App response stage. This is the only multi-stage App entry that imports user routes. */
17
+ /** Invoke one transformed public cache function without rendering its owning route. */
18
+ async function invokeCacheFunction(invocation, env, platformCtx, dispatchRequestStage) {
19
+ await __ensureInstrumentation();
20
+ const [{ loadServerAction }, { invokeCacheFunction: invokeRegisteredCacheFunction }] = await Promise.all([import("@vitejs/plugin-rsc/core/rsc"), import("../shims/cache-callable-runtime.js")]);
21
+ registerConfiguredCacheAdapters(env);
22
+ ensureFetchPatch();
23
+ const executionContext = createWorkerRevalidationContext(platformCtx, (request) => dispatchRequestStage(request), "node");
24
+ const context = createRequestContext({
25
+ currentFetchSoftTags: invocation.softTags,
26
+ executionContext,
27
+ rootParams: invocation.rootParams
28
+ });
29
+ await runWithRequestContext(context, () => invokeRegisteredCacheFunction(invocation, loadServerAction));
30
+ }
31
+ async function handleResponseStage(request, env, platformCtx, props, dispatchRequestStage, options = { cache: "bypass" }) {
32
+ if (!isAppWorkerResponseStageProps(props)) return new Response("Invalid vinext App response stage", { status: 400 });
33
+ if (props.requestOrigin !== new URL(request.url).origin) return new Response("Invalid vinext App response stage", { status: 400 });
34
+ const currentBuildId = process.env.__VINEXT_BUILD_ID ?? null;
35
+ if (props.buildId !== currentBuildId) return new Response("Incompatible vinext App response stage", { status: 409 });
36
+ await __ensureInstrumentation();
37
+ if (props.kind === "app-full-request" && props.prerenderDiscovery) await __ensureHybridPagesApplication();
38
+ registerConfiguredImageOptimizer(env);
39
+ let ctx = createWorkerRevalidationContext(platformCtx, (internalRequest) => dispatchRequestStage(internalRequest), "node");
40
+ if (props.kind === "app-full-request" && props.prerenderDiscovery) ctx = {
41
+ ...ctx,
42
+ isPrerenderPathDiscovery: true
43
+ };
44
+ return withResponseStageCacheability({
45
+ buildId: process.env.__VINEXT_BUILD_ID,
46
+ cache: options.cache,
47
+ context: ctx,
48
+ forceDynamic: (props.kind === "app-page" || props.kind === "app-route-handler") && props.forceDynamic === true,
49
+ policyHeaders: props.cacheability.policyHeaders,
50
+ probeMode: props.cacheability.probeMode,
51
+ rawManifest: __cacheabilityManifest,
52
+ recomposesRequestScopedHeaders: props.kind === "app-page" && props.isRscRequest,
53
+ registerCacheAdapters: () => registerConfiguredCacheAdapters(env),
54
+ request,
55
+ representation: props.cacheability.representation,
56
+ resolvedRoutePathname: props.cacheability.resolvedRoutePathname
57
+ }, async (cacheabilityContext) => {
58
+ if (props.kind === "app-full-request") {
59
+ if (props.prerenderDiscovery) {
60
+ const readinessResponse = createWorkerPrerenderReadinessResponse(cacheabilityContext, request);
61
+ if (readinessResponse) return await validateCdnRequest(request) ?? readinessResponse;
62
+ }
63
+ const fullEntry = await import("virtual:vinext-rsc-entry");
64
+ const render = () => fullEntry.default(request, cacheabilityContext, false, void 0, null, props.trustedPrerenderState);
65
+ let route;
66
+ let result;
67
+ let failure;
68
+ let failed = false;
69
+ try {
70
+ ({result, route} = await captureFrameworkRequestRoute(() => runWithExecutionContext(cacheabilityContext, render), (matchedRoute) => {
71
+ route = matchedRoute;
72
+ }));
73
+ } catch (error) {
74
+ console.error("[vinext] App response stage error:", error);
75
+ failed = true;
76
+ failure = error;
77
+ result = new Response("Internal Server Error", { status: 500 });
78
+ }
79
+ const serialized = serializeStaticFileSignalForTransport(result, props.staticFileSignalToken);
80
+ return attachFrameworkRequestRoute(failed ? attachFrameworkRequestError(serialized, failure) : clearFrameworkRequestError(serialized), route);
81
+ }
82
+ const render = () => rscHandler.handleResponseStage(request, cacheabilityContext, props, options);
83
+ return serializeResponseStageLinkProvenance(await runWithExecutionContext(cacheabilityContext, render));
84
+ });
85
+ }
86
+ //#endregion
87
+ export { handleResponseStage, invokeCacheFunction };
@@ -42,6 +42,5 @@ type ReadAppRouteHandlerCacheOptions = {
42
42
  params: AppRouteParams;
43
43
  } | null) => void;
44
44
  };
45
- declare function readAppRouteHandlerCacheResponse(options: ReadAppRouteHandlerCacheOptions): Promise<Response | null>;
46
- //#endregion
47
- export { readAppRouteHandlerCacheResponse };
45
+ export declare function readAppRouteHandlerCacheResponse(options: ReadAppRouteHandlerCacheOptions): Promise<Response | null>;
46
+ //#endregion
@@ -2,7 +2,8 @@ import { isrCacheControl } from "./isr-cache.js";
2
2
  import { makeThenableParams } from "../shims/thenable-params.js";
3
3
  import { applyRouteHandlerMiddlewareContext, assertSupportedAppRouteHandlerResponse, buildAppRouteCacheValue, buildRouteHandlerCachedResponse } from "./app-route-handler-response.js";
4
4
  import { markKnownDynamicAppRoute } from "./app-route-handler-runtime.js";
5
- import { runAppRouteHandler } from "./app-route-handler-execution.js";
5
+ import { resolveAppRouteHandlerSpecialError } from "./app-route-handler-policy.js";
6
+ import { runAppRouteHandler, traceAppRouteHandlerExecution } from "./app-route-handler-execution.js";
6
7
  //#region src/server/app-route-handler-cache.ts
7
8
  const EMPTY_PARAMS = Object.freeze({});
8
9
  function getCachedAppRouteValue(entry) {
@@ -31,42 +32,53 @@ async function readAppRouteHandlerCacheResponse(options) {
31
32
  if (cached?.isStale && cachedValue) {
32
33
  const staleValue = cachedValue;
33
34
  const revalidateSearchParams = new URLSearchParams(options.revalidateSearchParams);
34
- options.scheduleBackgroundRegeneration(routeKey, async () => {
35
- await options.runInRevalidationContext(async () => {
36
- options.setNavigationContext({
37
- pathname: options.cleanPathname,
38
- searchParams: revalidateSearchParams,
39
- params: options.params ?? EMPTY_PARAMS
40
- });
41
- const { dynamicUsedInHandler, response } = await runAppRouteHandler({
42
- basePath: options.basePath,
43
- consumeDynamicUsage: options.consumeDynamicUsage,
44
- dynamicConfig: options.dynamicConfig,
45
- handlerFn: options.handlerFn,
46
- i18n: options.i18n,
47
- trailingSlash: options.trailingSlash,
48
- markDynamicUsage: options.markDynamicUsage,
49
- params: options.params === null ? null : makeThenableParams(options.params),
50
- request: new Request(options.requestUrl, { method: "GET" }),
51
- routePattern: options.routePattern,
52
- setHeadersAccessPhase: options.setHeadersAccessPhase
35
+ options.scheduleBackgroundRegeneration(routeKey, () => options.runInRevalidationContext(async () => {
36
+ options.setNavigationContext({
37
+ pathname: options.cleanPathname,
38
+ searchParams: revalidateSearchParams,
39
+ params: options.params ?? EMPTY_PARAMS
40
+ });
41
+ let tracedResult;
42
+ try {
43
+ tracedResult = await traceAppRouteHandlerExecution(options.routePattern, async () => {
44
+ try {
45
+ return { handlerResult: await runAppRouteHandler({
46
+ basePath: options.basePath,
47
+ consumeDynamicUsage: options.consumeDynamicUsage,
48
+ dynamicConfig: options.dynamicConfig,
49
+ handlerFn: options.handlerFn,
50
+ i18n: options.i18n,
51
+ trailingSlash: options.trailingSlash,
52
+ markDynamicUsage: options.markDynamicUsage,
53
+ params: options.params === null ? null : makeThenableParams(options.params),
54
+ request: new Request(options.requestUrl, { method: "GET" }),
55
+ routePattern: options.routePattern,
56
+ setHeadersAccessPhase: options.setHeadersAccessPhase
57
+ }) };
58
+ } catch (error) {
59
+ if (resolveAppRouteHandlerSpecialError(error, options.requestUrl)) return { specialError: error };
60
+ throw error;
61
+ }
53
62
  });
63
+ } finally {
54
64
  options.setNavigationContext(null);
55
- assertSupportedAppRouteHandlerResponse(response);
56
- if (dynamicUsedInHandler) {
57
- markKnownDynamicAppRoute(options.routePattern);
58
- options.isrDebug?.("route regen skipped (dynamic usage)", options.cleanPathname);
59
- return;
60
- }
61
- const routeTags = options.buildPageCacheTags(options.cleanPathname, options.getCollectedFetchTags());
62
- const routeCacheValue = await buildAppRouteCacheValue(response);
63
- await options.isrSet(routeKey, routeCacheValue, {
64
- cacheControl: isrCacheControl(options.revalidateSeconds, { expireSeconds: options.expireSeconds }),
65
- tags: routeTags
66
- });
67
- options.isrDebug?.("route regen complete", routeKey);
65
+ }
66
+ if ("specialError" in tracedResult) return;
67
+ const { dynamicUsedInHandler, response } = tracedResult.handlerResult;
68
+ assertSupportedAppRouteHandlerResponse(response);
69
+ if (dynamicUsedInHandler) {
70
+ markKnownDynamicAppRoute(options.routePattern);
71
+ options.isrDebug?.("route regen skipped (dynamic usage)", options.cleanPathname);
72
+ return;
73
+ }
74
+ const routeTags = options.buildPageCacheTags(options.cleanPathname, options.getCollectedFetchTags());
75
+ const routeCacheValue = await buildAppRouteCacheValue(response);
76
+ await options.isrSet(routeKey, routeCacheValue, {
77
+ cacheControl: isrCacheControl(options.revalidateSeconds, { expireSeconds: options.expireSeconds }),
78
+ tags: routeTags
68
79
  });
69
- });
80
+ options.isrDebug?.("route regen complete", routeKey);
81
+ }));
70
82
  options.isrDebug?.("STALE (route)", options.cleanPathname);
71
83
  options.clearRequestContext();
72
84
  return applyRouteHandlerMiddlewareContext(buildRouteHandlerCachedResponse(staleValue, {
@@ -18,6 +18,7 @@ type RouteHandlerBackgroundRegenerationErrorContext = {
18
18
  type RouteHandlerBackgroundRegenerator = (key: string, renderFn: () => Promise<void>, errorContext?: RouteHandlerBackgroundRegenerationErrorContext) => void;
19
19
  type DispatchAppRouteHandlerOptions = {
20
20
  basePath?: string;
21
+ bypassSharedCache?: boolean;
21
22
  cleanPathname: string;
22
23
  clearRequestContext: () => void;
23
24
  draftModeSecret: string;
@@ -43,6 +44,5 @@ type DispatchAppRouteHandlerOptions = {
43
44
  scheduleBackgroundRegeneration: RouteHandlerBackgroundRegenerator;
44
45
  searchParams: URLSearchParams;
45
46
  };
46
- declare function dispatchAppRouteHandler(options: DispatchAppRouteHandlerOptions): Promise<Response>;
47
- //#endregion
48
- export { dispatchAppRouteHandler };
47
+ export declare function dispatchAppRouteHandler(options: DispatchAppRouteHandlerOptions): Promise<Response>;
48
+ //#endregion
@@ -1,20 +1,23 @@
1
1
  import { closeAfterResponse, createRequestContext, runWithRequestContext } from "../shims/unified-request-context.js";
2
+ import "../utils/protocol-headers.js";
2
3
  import { getRequestExecutionContext } from "../shims/request-context.js";
3
4
  import { reportRequestError } from "./instrumentation.js";
5
+ import { beginRouteCacheability, getRouteCacheabilityDynamicReason } from "../shims/cacheability-classification.js";
4
6
  import { applyCdnResponseBuildIdentityHeaders } from "./cache-control.js";
7
+ import { isOnDemandRevalidateRequest } from "./revalidation-request.js";
5
8
  import { consumeDynamicUsage, getActiveDraftModeState, getAndClearPendingCookies, getDraftModeCookieHeader, isDraftModeRequest, markDynamicUsage, setHeadersAccessPhase } from "../shims/headers.js";
6
9
  import { _drainPendingRevalidations } from "../shims/cache-request-state.js";
7
10
  import { ensureFetchPatch, getCollectedFetchTags, setCurrentFetchCacheMode, setCurrentFetchRevalidate, setCurrentFetchSoftTags, setCurrentForceDynamicFetchDefault } from "../shims/fetch-cache.js";
8
11
  import { setNavigationContext } from "../shims/navigation-context-state.js";
9
12
  import { makeThenableParams } from "../shims/thenable-params.js";
10
- import { beginRouteCacheability, getRouteCacheabilityDynamicReason } from "../shims/cacheability-classification.js";
13
+ import { traceResponseStart } from "./response-start-tracing.js";
11
14
  import { buildPageCacheTags } from "./implicit-tags.js";
12
15
  import { applyRouteHandlerMiddlewareContext, finalizeRouteHandlerResponse } from "./app-route-handler-response.js";
13
16
  import { resolveAppRouteHandlerFetchCacheMode } from "./app-segment-config.js";
14
17
  import "../shims/navigation.js";
15
18
  import { isKnownDynamicAppRoute, isValidHTTPMethod } from "./app-route-handler-runtime.js";
16
- import { createStaticGenerationHeadersContext } from "./app-static-generation.js";
17
19
  import { getAppRouteHandlerRevalidateSeconds, hasAppRouteHandlerDefaultExport, hasNonStaticAppRouteHandlerMethods, resolveAppRouteHandlerMethod, shouldReadAppRouteHandlerCache } from "./app-route-handler-policy.js";
20
+ import { createStaticGenerationHeadersContext } from "./app-static-generation.js";
18
21
  import { applyDraftModeCachePolicy, executeAppRouteHandler } from "./app-route-handler-execution.js";
19
22
  import { readAppRouteHandlerCacheResponse } from "./app-route-handler-cache.js";
20
23
  //#region src/server/app-route-handler-dispatch.ts
@@ -25,14 +28,15 @@ function buildRouteHandlerPageCacheTags(pathname, extraTags, routeSegments) {
25
28
  return buildPageCacheTags(pathname, extraTags, routeSegments, "route");
26
29
  }
27
30
  async function runInRouteHandlerRevalidationContext(options, renderFn) {
31
+ const headersContext = createStaticGenerationHeadersContext({
32
+ draftModeEnabled: false,
33
+ draftModeSecret: options.draftModeSecret,
34
+ dynamicConfig: options.dynamicConfig,
35
+ routeKind: "route",
36
+ routePattern: options.routePattern
37
+ });
28
38
  const requestContext = createRequestContext({
29
- headersContext: createStaticGenerationHeadersContext({
30
- draftModeEnabled: false,
31
- draftModeSecret: options.draftModeSecret,
32
- dynamicConfig: options.dynamicConfig,
33
- routeKind: "route",
34
- routePattern: options.routePattern
35
- }),
39
+ headersContext,
36
40
  executionContext: getRequestExecutionContext(),
37
41
  unstableCacheRevalidation: "foreground"
38
42
  });
@@ -55,6 +59,9 @@ async function runInRouteHandlerRevalidationContext(options, renderFn) {
55
59
  }
56
60
  }
57
61
  async function dispatchAppRouteHandler(options) {
62
+ return traceResponseStart(await dispatchAppRouteHandlerImpl(options));
63
+ }
64
+ async function dispatchAppRouteHandlerImpl(options) {
58
65
  const { route } = options;
59
66
  const handler = route.routeHandler;
60
67
  const method = options.request.method.toUpperCase();
@@ -84,11 +91,7 @@ async function dispatchAppRouteHandler(options) {
84
91
  headers: { Allow: allowHeaderForOptions }
85
92
  }));
86
93
  const resolvedHandlerFn = isAppRouteHandlerFunction(handlerFn) ? handlerFn : void 0;
87
- const fetchCacheMode = resolveAppRouteHandlerFetchCacheMode(handler);
88
- setCurrentFetchCacheMode(fetchCacheMode);
89
- setCurrentFetchRevalidate(configuredRevalidateSeconds);
90
- setCurrentForceDynamicFetchDefault(handler.dynamic === "force-dynamic");
91
- if (revalidateSeconds !== null && !getRouteCacheabilityDynamicReason() && shouldReadAppRouteHandlerCache({
94
+ const shouldReadRouteCache = options.bypassSharedCache !== true && revalidateSeconds !== null && !getRouteCacheabilityDynamicReason() && shouldReadAppRouteHandlerCache({
92
95
  dynamicConfig: handler.dynamic,
93
96
  handlerFn: resolvedHandlerFn,
94
97
  isAutoHead,
@@ -97,7 +100,13 @@ async function dispatchAppRouteHandler(options) {
97
100
  isProduction,
98
101
  method,
99
102
  revalidateSeconds
100
- }) && resolvedHandlerFn) {
103
+ });
104
+ const revalidateReason = isOnDemandRevalidateRequest(options.request.headers.get("x-prerender-revalidate")) ? "on-demand" : shouldReadRouteCache ? "stale" : void 0;
105
+ const fetchCacheMode = resolveAppRouteHandlerFetchCacheMode(handler);
106
+ setCurrentFetchCacheMode(fetchCacheMode);
107
+ setCurrentFetchRevalidate(configuredRevalidateSeconds);
108
+ setCurrentForceDynamicFetchDefault(handler.dynamic === "force-dynamic");
109
+ if (shouldReadRouteCache && resolvedHandlerFn) {
101
110
  const cachedRouteResponse = await readAppRouteHandlerCacheResponse({
102
111
  basePath: options.basePath,
103
112
  buildPageCacheTags(pathname, extraTags) {
@@ -148,45 +157,50 @@ async function dispatchAppRouteHandler(options) {
148
157
  });
149
158
  if (cachedRouteResponse) return applyCdnResponseBuildIdentityHeaders(cachedRouteResponse);
150
159
  }
151
- if (resolvedHandlerFn) return applyCdnResponseBuildIdentityHeaders(await executeAppRouteHandler({
152
- basePath: options.basePath,
153
- buildPageCacheTags(pathname, extraTags) {
154
- return buildRouteHandlerPageCacheTags(pathname, extraTags, route.routeSegments);
155
- },
156
- cleanPathname: options.cleanPathname,
157
- clearRequestContext: options.clearRequestContext,
158
- consumeDynamicUsage,
159
- draftModeSecret: options.draftModeSecret,
160
- executionContext: getRequestExecutionContext(),
161
- getAndClearPendingCookies,
162
- getCollectedFetchTags,
163
- getActiveDraftModeState,
164
- getDraftModeCookieHeader,
165
- handler,
166
- handlerFn: resolvedHandlerFn,
167
- i18n: options.i18n,
168
- trailingSlash: options.trailingSlash,
169
- isAutoHead,
170
- initialDraftModeCookie,
171
- isDraftMode,
172
- isProduction,
173
- isrDebug: options.isrDebug,
174
- isrRouteKey: options.isrRouteKey,
175
- isrSet: options.isrSet,
176
- markDynamicUsage,
177
- method,
178
- middlewareContext: options.middlewareContext,
179
- middlewareRequestHeaders: options.middlewareRequestHeaders,
180
- params: options.params === null ? null : makeThenableParams(options.params),
181
- reportRequestError(error, request, context) {
182
- reportRequestError(error, request, context);
183
- },
184
- request: options.request,
185
- expireSeconds: options.expireSeconds,
186
- revalidateSeconds,
187
- routePattern: route.pattern,
188
- setHeadersAccessPhase
189
- }));
160
+ if (resolvedHandlerFn) {
161
+ const response = await executeAppRouteHandler({
162
+ basePath: options.basePath,
163
+ bypassSharedCache: options.bypassSharedCache,
164
+ buildPageCacheTags(pathname, extraTags) {
165
+ return buildRouteHandlerPageCacheTags(pathname, extraTags, route.routeSegments);
166
+ },
167
+ cleanPathname: options.cleanPathname,
168
+ clearRequestContext: options.clearRequestContext,
169
+ consumeDynamicUsage,
170
+ draftModeSecret: options.draftModeSecret,
171
+ executionContext: getRequestExecutionContext(),
172
+ getAndClearPendingCookies,
173
+ getCollectedFetchTags,
174
+ getActiveDraftModeState,
175
+ getDraftModeCookieHeader,
176
+ handler,
177
+ handlerFn: resolvedHandlerFn,
178
+ i18n: options.i18n,
179
+ trailingSlash: options.trailingSlash,
180
+ isAutoHead,
181
+ initialDraftModeCookie,
182
+ isDraftMode,
183
+ isProduction,
184
+ isrDebug: options.isrDebug,
185
+ isrRouteKey: options.isrRouteKey,
186
+ isrSet: options.isrSet,
187
+ markDynamicUsage,
188
+ method,
189
+ middlewareContext: options.middlewareContext,
190
+ middlewareRequestHeaders: options.middlewareRequestHeaders,
191
+ params: options.params === null ? null : makeThenableParams(options.params),
192
+ reportRequestError(error, request, context) {
193
+ return reportRequestError(error, request, context);
194
+ },
195
+ request: options.request,
196
+ expireSeconds: options.expireSeconds,
197
+ revalidateSeconds,
198
+ revalidateReason,
199
+ routePattern: route.pattern,
200
+ setHeadersAccessPhase
201
+ });
202
+ return applyCdnResponseBuildIdentityHeaders(response);
203
+ }
190
204
  return finalizeFrameworkResponse(new Response(null, { status: 405 }));
191
205
  }
192
206
  //#endregion