vinext 1.0.0-beta.8 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (813) hide show
  1. package/README.md +158 -84
  2. package/THIRD_PARTY_LICENSES.md +25 -0
  3. package/dist/_virtual/_rolldown/runtime.js +25 -0
  4. package/dist/build/action-owner-manifest.d.ts +8 -9
  5. package/dist/build/action-owner-manifest.js +23 -5
  6. package/dist/build/assets-ignore.d.ts +3 -4
  7. package/dist/build/clean-output.d.ts +2 -3
  8. package/dist/build/client-build-config.d.ts +40 -12
  9. package/dist/build/client-build-config.js +76 -6
  10. package/dist/build/css-url-assets.d.ts +4 -5
  11. package/dist/build/css-url-assets.js +5 -2
  12. package/dist/build/google-fonts/build-url.d.ts +3 -4
  13. package/dist/build/google-fonts/fallback-metrics.d.ts +3 -4
  14. package/dist/build/google-fonts/find-font-files-in-css.d.ts +2 -3
  15. package/dist/build/google-fonts/font-metadata.d.ts +2 -3
  16. package/dist/build/google-fonts/get-axes.d.ts +2 -3
  17. package/dist/build/google-fonts/sort-variants.d.ts +2 -3
  18. package/dist/build/google-fonts/validate.d.ts +2 -3
  19. package/dist/build/google-fonts/validate.js +8 -4
  20. package/dist/build/inject-pregenerated-paths.d.ts +2 -3
  21. package/dist/build/inject-pregenerated-paths.js +16 -14
  22. package/dist/build/inline-css.d.ts +3 -4
  23. package/dist/build/layout-classification-types.d.ts +4 -5
  24. package/dist/build/layout-classification.d.ts +7 -8
  25. package/dist/build/lifecycle.d.ts +42 -0
  26. package/dist/build/lifecycle.js +253 -0
  27. package/dist/build/module-dependency-cache.d.ts +2 -3
  28. package/dist/build/next-client-runtime-manifests.d.ts +4 -5
  29. package/dist/build/nitro-route-rules.d.ts +6 -7
  30. package/dist/build/nitro-route-rules.js +1 -1
  31. package/dist/build/pages-client-assets-module.d.ts +4 -8
  32. package/dist/build/pages-client-assets-module.js +1 -13
  33. package/dist/build/precompress.d.ts +2 -3
  34. package/dist/build/prerender-cloudflare-loader.d.ts +4 -0
  35. package/dist/build/prerender-cloudflare-loader.js +49 -0
  36. package/dist/build/prerender-paths.d.ts +82 -8
  37. package/dist/build/prerender-paths.js +814 -99
  38. package/dist/build/prerender-phase.d.ts +2 -3
  39. package/dist/build/prerender-server-entry.js +11 -3
  40. package/dist/build/prerender-server-pool.d.ts +9 -6
  41. package/dist/build/prerender-server-pool.js +8 -5
  42. package/dist/build/prerender.d.ts +67 -15
  43. package/dist/build/prerender.js +177 -64
  44. package/dist/build/preview-credentials.d.ts +5 -6
  45. package/dist/build/preview-credentials.js +2 -2
  46. package/dist/build/public-dir-conflict.d.ts +5 -6
  47. package/dist/build/public-dir-conflict.js +2 -1
  48. package/dist/build/report.d.ts +38 -19
  49. package/dist/build/report.js +73 -4
  50. package/dist/build/route-classification-injector.d.ts +2 -3
  51. package/dist/build/route-classification-manifest.d.ts +5 -6
  52. package/dist/build/run-prerender.d.ts +11 -9
  53. package/dist/build/run-prerender.js +25 -16
  54. package/dist/build/server-entry.d.ts +4 -0
  55. package/dist/build/server-entry.js +28 -0
  56. package/dist/build/server-manifest.d.ts +8 -3
  57. package/dist/build/server-manifest.js +14 -2
  58. package/dist/build/ssr-manifest.d.ts +5 -6
  59. package/dist/build/standalone.d.ts +2 -3
  60. package/dist/build/standalone.js +2 -2
  61. package/dist/build/static-export.d.ts +7 -8
  62. package/dist/cache/cache-adapters-virtual.d.ts +95 -9
  63. package/dist/cache/cache-adapters-virtual.js +58 -6
  64. package/dist/check.d.ts +11 -10
  65. package/dist/check.js +467 -176
  66. package/dist/cli-args.d.ts +7 -16
  67. package/dist/cli-args.js +2 -45
  68. package/dist/cli-dev-config.d.ts +10 -7
  69. package/dist/cli-dev-config.js +160 -3
  70. package/dist/cli.js +124 -435
  71. package/dist/client/app-nav-failure-handler.d.ts +6 -7
  72. package/dist/client/client-rewrite-matcher.d.ts +2 -3
  73. package/dist/client/client-rewrites.d.ts +4 -5
  74. package/dist/client/dev-error-overlay-store.d.ts +13 -14
  75. package/dist/client/dev-error-overlay.d.ts +15 -15
  76. package/dist/client/dev-error-overlay.js +8 -5
  77. package/dist/client/instrumentation-client-inject.d.ts +3 -4
  78. package/dist/client/instrumentation-client-state.d.ts +5 -6
  79. package/dist/client/instrumentation-client.d.ts +3 -4
  80. package/dist/client/navigation-runtime.d.ts +21 -17
  81. package/dist/client/navigation-runtime.js +2 -1
  82. package/dist/client/pages-router-link-navigation.d.ts +4 -5
  83. package/dist/client/react-instance.d.ts +2 -3
  84. package/dist/client/validate-module-path.d.ts +2 -3
  85. package/dist/client/vinext-next-data.d.ts +7 -8
  86. package/dist/client/window-next.d.ts +4 -5
  87. package/dist/config/config-matchers.d.ts +16 -16
  88. package/dist/config/config-matchers.js +10 -7
  89. package/dist/config/dotenv.d.ts +3 -4
  90. package/dist/config/dotenv.js +2 -1
  91. package/dist/config/next-config.d.ts +31 -27
  92. package/dist/config/next-config.js +163 -16
  93. package/dist/config/prerender.d.ts +20 -16
  94. package/dist/config/prerender.js +10 -4
  95. package/dist/config/request-context.d.ts +5 -6
  96. package/dist/config/server-external-packages.d.ts +14 -3
  97. package/dist/config/server-external-packages.js +37 -3
  98. package/dist/config/tsconfig-paths.d.ts +3 -4
  99. package/dist/deps/.pnpm/ignore@5.3.2/deps/ignore/index.js +189 -0
  100. package/dist/deps/.pnpm/ua-parser-js@1.0.35/deps/ua-parser-js/src/ua-parser.js +1057 -0
  101. package/dist/entries/app-browser-entry.d.ts +5 -6
  102. package/dist/entries/app-browser-entry.js +3 -2
  103. package/dist/entries/app-rsc-entry.d.ts +12 -3
  104. package/dist/entries/app-rsc-entry.js +530 -55
  105. package/dist/entries/app-rsc-manifest.d.ts +4 -3
  106. package/dist/entries/app-rsc-manifest.js +27 -8
  107. package/dist/entries/app-ssr-entry.d.ts +2 -3
  108. package/dist/entries/app-ssr-entry.js +8 -1
  109. package/dist/entries/pages-client-entry.d.ts +3 -3
  110. package/dist/entries/pages-client-entry.js +17 -2
  111. package/dist/entries/pages-server-entry.d.ts +13 -3
  112. package/dist/entries/pages-server-entry.js +237 -33
  113. package/dist/entries/runtime-entry-module.d.ts +4 -5
  114. package/dist/image/image-adapters-virtual.d.ts +4 -5
  115. package/dist/index.d.ts +10 -11
  116. package/dist/index.js +832 -199
  117. package/dist/init-cloudflare.d.ts +27 -16
  118. package/dist/init-cloudflare.js +754 -113
  119. package/dist/init-platform.d.ts +26 -22
  120. package/dist/init-platform.js +85 -29
  121. package/dist/init.d.ts +19 -13
  122. package/dist/init.js +123 -41
  123. package/dist/plugins/action-owner-manifest.d.ts +3 -4
  124. package/dist/plugins/action-owner-manifest.js +10 -3
  125. package/dist/plugins/ast-scope.d.ts +10 -11
  126. package/dist/plugins/ast-scope.js +10 -22
  127. package/dist/plugins/ast-utils.d.ts +16 -29
  128. package/dist/plugins/ast-utils.js +27 -71
  129. package/dist/plugins/async-hooks-stub.d.ts +2 -3
  130. package/dist/plugins/client-reference-dedup.d.ts +4 -5
  131. package/dist/plugins/css-data-url.d.ts +2 -3
  132. package/dist/plugins/css-module-imports.d.ts +3 -4
  133. package/dist/plugins/css-module-imports.js +1 -1
  134. package/dist/plugins/dynamic-preload-metadata.d.ts +3 -4
  135. package/dist/plugins/dynamic-preload-metadata.js +55 -154
  136. package/dist/plugins/environment.d.ts +2 -3
  137. package/dist/plugins/extensionless-dynamic-import.d.ts +2 -3
  138. package/dist/plugins/extensionless-dynamic-import.js +6 -10
  139. package/dist/plugins/fonts.d.ts +10 -11
  140. package/dist/plugins/fonts.js +4 -3
  141. package/dist/plugins/ignore-dynamic-requests.d.ts +3 -4
  142. package/dist/plugins/ignore-dynamic-requests.js +60 -89
  143. package/dist/plugins/import-meta-url.d.ts +6 -7
  144. package/dist/plugins/import-meta-url.js +31 -43
  145. package/dist/plugins/instrumentation-client.d.ts +3 -3
  146. package/dist/plugins/instrumentation-client.js +46 -10
  147. package/dist/plugins/middleware-export-validation.d.ts +3 -4
  148. package/dist/plugins/middleware-export-validation.js +3 -3
  149. package/dist/plugins/middleware-server-only.d.ts +2 -3
  150. package/dist/plugins/og-asset-ownership.d.ts +3 -4
  151. package/dist/plugins/og-assets.d.ts +4 -5
  152. package/dist/plugins/og-assets.js +32 -13
  153. package/dist/plugins/og-harfbuzz.d.ts +24 -0
  154. package/dist/plugins/og-harfbuzz.js +260 -0
  155. package/dist/plugins/optimize-imports.d.ts +7 -7
  156. package/dist/plugins/optimize-imports.js +32 -44
  157. package/dist/plugins/pages-node-externals.d.ts +2 -3
  158. package/dist/plugins/pages-node-externals.js +6 -11
  159. package/dist/plugins/postcss.d.ts +8 -4
  160. package/dist/plugins/postcss.js +1 -1
  161. package/dist/plugins/remove-console.d.ts +2 -3
  162. package/dist/plugins/remove-console.js +0 -1
  163. package/dist/plugins/require-condition-resolution.d.ts +3 -4
  164. package/dist/plugins/require-condition-resolution.js +17 -18
  165. package/dist/plugins/require-context.d.ts +2 -3
  166. package/dist/plugins/require-context.js +13 -21
  167. package/dist/plugins/rsc-client-reference-loaders.d.ts +2 -3
  168. package/dist/plugins/rsc-client-shim-excludes.d.ts +4 -5
  169. package/dist/plugins/rsc-client-shim-excludes.js +1 -0
  170. package/dist/plugins/rsc-reference-validation-normalizer.d.ts +2 -3
  171. package/dist/plugins/sass.d.ts +7 -8
  172. package/dist/plugins/sass.js +7 -4
  173. package/dist/plugins/server-externals-manifest.d.ts +2 -3
  174. package/dist/plugins/strip-server-exports.d.ts +5 -6
  175. package/dist/plugins/strip-server-exports.js +1 -1
  176. package/dist/plugins/styled-jsx.d.ts +2 -3
  177. package/dist/plugins/styled-jsx.js +7 -7
  178. package/dist/plugins/transform-cache.d.ts +2 -3
  179. package/dist/plugins/transform-result.d.ts +3 -4
  180. package/dist/plugins/transitive-externals.d.ts +2 -3
  181. package/dist/plugins/typeof-window.d.ts +6 -7
  182. package/dist/plugins/typeof-window.js +30 -31
  183. package/dist/plugins/use-cache-callable.d.ts +2 -5
  184. package/dist/plugins/use-cache-callable.js +43 -22
  185. package/dist/plugins/wasm-module-import.d.ts +2 -3
  186. package/dist/plugins/worker-image-imports.d.ts +2 -3
  187. package/dist/plugins/worker-image-imports.js +6 -8
  188. package/dist/routing/app-route-graph.d.ts +19 -19
  189. package/dist/routing/app-route-graph.js +3 -2
  190. package/dist/routing/app-router.d.ts +20 -5
  191. package/dist/routing/app-router.js +28 -2
  192. package/dist/routing/file-matcher.d.ts +9 -10
  193. package/dist/routing/pages-router.d.ts +6 -6
  194. package/dist/routing/pages-router.js +1 -1
  195. package/dist/routing/route-matching.d.ts +4 -5
  196. package/dist/routing/route-matching.js +4 -2
  197. package/dist/routing/route-pattern.d.ts +13 -14
  198. package/dist/routing/route-trie.d.ts +5 -6
  199. package/dist/routing/route-validation.d.ts +3 -4
  200. package/dist/routing/route-validation.js +12 -11
  201. package/dist/routing/utils.d.ts +13 -14
  202. package/dist/server/accept-encoding.d.ts +9 -10
  203. package/dist/server/api-handler.d.ts +2 -3
  204. package/dist/server/api-handler.js +9 -6
  205. package/dist/server/app-action-forwarding.d.ts +3 -4
  206. package/dist/server/app-action-forwarding.js +1 -1
  207. package/dist/server/app-action-request.d.ts +2 -3
  208. package/dist/server/app-bfcache-id.d.ts +3 -4
  209. package/dist/server/app-bfcache-identity.d.ts +8 -9
  210. package/dist/server/app-browser-action-result.d.ts +15 -16
  211. package/dist/server/app-browser-client-reuse-manifest.d.ts +2 -3
  212. package/dist/server/app-browser-entry.js +121 -40
  213. package/dist/server/app-browser-error.d.ts +5 -6
  214. package/dist/server/app-browser-error.js +9 -3
  215. package/dist/server/app-browser-history-controller.d.ts +4 -5
  216. package/dist/server/app-browser-hydration.d.ts +16 -6
  217. package/dist/server/app-browser-hydration.js +14 -1
  218. package/dist/server/app-browser-interception-context.d.ts +3 -4
  219. package/dist/server/app-browser-mpa-navigation.d.ts +4 -5
  220. package/dist/server/app-browser-navigation-abort.d.ts +3 -4
  221. package/dist/server/app-browser-navigation-controller.d.ts +8 -8
  222. package/dist/server/app-browser-navigation-controller.js +9 -5
  223. package/dist/server/app-browser-navigation-response.d.ts +2 -3
  224. package/dist/server/app-browser-popstate.d.ts +4 -5
  225. package/dist/server/app-browser-prefetch-response.d.ts +5 -6
  226. package/dist/server/app-browser-rsc-redirect.d.ts +4 -5
  227. package/dist/server/app-browser-server-action-client.d.ts +7 -6
  228. package/dist/server/app-browser-server-action-client.js +9 -5
  229. package/dist/server/app-browser-server-action-navigation.d.ts +2 -3
  230. package/dist/server/app-browser-state.d.ts +17 -17
  231. package/dist/server/app-browser-state.js +7 -3
  232. package/dist/server/app-browser-stream.d.ts +4 -5
  233. package/dist/server/app-browser-stream.js +8 -6
  234. package/dist/server/app-browser-supplemental-refresh.d.ts +11 -12
  235. package/dist/server/app-browser-visible-commit.d.ts +6 -7
  236. package/dist/server/app-browser-visible-commit.js +1 -1
  237. package/dist/server/app-client-reference-preloader.d.ts +2 -3
  238. package/dist/server/app-elements-wire-key.d.ts +25 -0
  239. package/dist/server/app-elements-wire-key.js +69 -0
  240. package/dist/server/app-elements-wire.d.ts +34 -53
  241. package/dist/server/app-elements-wire.js +4 -75
  242. package/dist/server/app-elements.d.ts +5 -5
  243. package/dist/server/app-elements.js +1 -1
  244. package/dist/server/app-fallback-renderer.d.ts +4 -4
  245. package/dist/server/app-fallback-renderer.js +6 -6
  246. package/dist/server/app-fetch-tracing.d.ts +15 -0
  247. package/dist/server/app-fetch-tracing.js +38 -0
  248. package/dist/server/app-history-state.d.ts +26 -27
  249. package/dist/server/app-history-state.js +19 -11
  250. package/dist/server/app-hook-warning-suppression.d.ts +2 -3
  251. package/dist/server/app-hydration-cache-publication.d.ts +3 -4
  252. package/dist/server/app-inline-css-client.d.ts +3 -4
  253. package/dist/server/app-interception-context-header.d.ts +2 -3
  254. package/dist/server/app-layout-param-observation.d.ts +7 -8
  255. package/dist/server/app-metadata-tracing.d.ts +12 -0
  256. package/dist/server/app-metadata-tracing.js +17 -0
  257. package/dist/server/app-middleware.d.ts +15 -7
  258. package/dist/server/app-middleware.js +30 -5
  259. package/dist/server/app-mounted-slots-header.d.ts +2 -3
  260. package/dist/server/app-mounted-slots-header.js +2 -2
  261. package/dist/server/app-optimistic-routing.d.ts +14 -10
  262. package/dist/server/app-optimistic-routing.js +16 -3
  263. package/dist/server/app-page-boundary-render.d.ts +6 -6
  264. package/dist/server/app-page-boundary-render.js +10 -4
  265. package/dist/server/app-page-boundary.d.ts +9 -10
  266. package/dist/server/app-page-boundary.js +2 -1
  267. package/dist/server/app-page-cache-finalizer.d.ts +32 -8
  268. package/dist/server/app-page-cache-finalizer.js +118 -14
  269. package/dist/server/app-page-cache-render.d.ts +8 -5
  270. package/dist/server/app-page-cache-render.js +22 -5
  271. package/dist/server/app-page-cache.d.ts +28 -9
  272. package/dist/server/app-page-cache.js +96 -25
  273. package/dist/server/app-page-dispatch.d.ts +36 -12
  274. package/dist/server/app-page-dispatch.js +188 -63
  275. package/dist/server/app-page-element-builder.d.ts +13 -11
  276. package/dist/server/app-page-element-builder.js +104 -61
  277. package/dist/server/app-page-execution.d.ts +14 -14
  278. package/dist/server/app-page-execution.js +12 -8
  279. package/dist/server/app-page-head.d.ts +19 -16
  280. package/dist/server/app-page-head.js +25 -25
  281. package/dist/server/app-page-http-access-fallback-metadata.d.ts +6 -5
  282. package/dist/server/app-page-http-access-fallback-metadata.js +9 -2
  283. package/dist/server/app-page-method.d.ts +5 -11
  284. package/dist/server/app-page-method.js +2 -9
  285. package/dist/server/app-page-params.d.ts +5 -6
  286. package/dist/server/app-page-ppr-runtime.d.ts +2 -2
  287. package/dist/server/app-page-probe.d.ts +5 -6
  288. package/dist/server/app-page-probe.js +5 -4
  289. package/dist/server/app-page-render-identity.d.ts +4 -5
  290. package/dist/server/app-page-render-observation.d.ts +8 -9
  291. package/dist/server/app-page-render-observation.js +1 -1
  292. package/dist/server/app-page-render.d.ts +42 -6
  293. package/dist/server/app-page-render.js +192 -28
  294. package/dist/server/app-page-request.d.ts +10 -9
  295. package/dist/server/app-page-request.js +16 -12
  296. package/dist/server/app-page-response.d.ts +20 -9
  297. package/dist/server/app-page-response.js +31 -13
  298. package/dist/server/app-page-route-wiring.d.ts +15 -15
  299. package/dist/server/app-page-route-wiring.js +31 -24
  300. package/dist/server/app-page-search-params-observation.d.ts +26 -5
  301. package/dist/server/app-page-search-params-observation.js +42 -6
  302. package/dist/server/app-page-segment-plan.d.ts +2 -3
  303. package/dist/server/app-page-segment-state.d.ts +11 -12
  304. package/dist/server/app-page-stream.d.ts +27 -11
  305. package/dist/server/app-page-stream.js +35 -6
  306. package/dist/server/app-page-tracing.d.ts +33 -0
  307. package/dist/server/app-page-tracing.js +49 -0
  308. package/dist/server/app-pages-bridge.d.ts +6 -6
  309. package/dist/server/app-pages-bridge.js +19 -4
  310. package/dist/server/app-post-middleware-context.d.ts +2 -3
  311. package/dist/server/app-ppr-fallback-shell-render.d.ts +3 -4
  312. package/dist/server/app-ppr-fallback-shell-render.js +3 -2
  313. package/dist/server/app-ppr-fallback-shell.d.ts +6 -7
  314. package/dist/server/app-prerender-endpoints.d.ts +5 -5
  315. package/dist/server/app-prerender-endpoints.js +26 -12
  316. package/dist/server/app-prerender-static-params.d.ts +15 -7
  317. package/dist/server/app-prerender-static-params.js +33 -11
  318. package/dist/server/app-render-dependency.d.ts +14 -13
  319. package/dist/server/app-render-dependency.js +5 -1
  320. package/dist/server/app-request-context.d.ts +3 -4
  321. package/dist/server/app-request-stage-context.d.ts +5 -0
  322. package/dist/server/app-request-stage-context.js +11 -0
  323. package/dist/server/app-request-stage-dispatch.d.ts +25 -0
  324. package/dist/server/app-request-stage-dispatch.js +54 -0
  325. package/dist/server/app-request-stage-independent-entry.d.ts +8 -0
  326. package/dist/server/app-request-stage-independent-entry.js +115 -0
  327. package/dist/server/app-response-header-provenance.d.ts +13 -7
  328. package/dist/server/app-response-header-provenance.js +34 -1
  329. package/dist/server/app-response-stage-entry.d.ts +9 -0
  330. package/dist/server/app-response-stage-entry.js +87 -0
  331. package/dist/server/app-route-handler-cache.d.ts +2 -3
  332. package/dist/server/app-route-handler-cache.js +46 -34
  333. package/dist/server/app-route-handler-dispatch.d.ts +3 -3
  334. package/dist/server/app-route-handler-dispatch.js +75 -57
  335. package/dist/server/app-route-handler-execution.d.ts +18 -13
  336. package/dist/server/app-route-handler-execution.js +189 -25
  337. package/dist/server/app-route-handler-middleware-context.d.ts +8 -0
  338. package/dist/server/app-route-handler-middleware-context.js +15 -0
  339. package/dist/server/app-route-handler-policy.d.ts +22 -10
  340. package/dist/server/app-route-handler-policy.js +19 -4
  341. package/dist/server/app-route-handler-response.d.ts +9 -10
  342. package/dist/server/app-route-handler-response.js +2 -0
  343. package/dist/server/app-route-handler-runtime.d.ts +9 -10
  344. package/dist/server/app-route-handler-runtime.js +20 -16
  345. package/dist/server/app-route-module-loader.d.ts +6 -7
  346. package/dist/server/app-route-request-built-ins.d.ts +3 -4
  347. package/dist/server/app-route-tree-prefetch.d.ts +6 -7
  348. package/dist/server/app-route-tree-prefetch.js +2 -1
  349. package/dist/server/app-router-entry.d.ts +2 -0
  350. package/dist/server/app-router-entry.js +76 -12
  351. package/dist/server/app-rsc-cache-busting.d.ts +47 -22
  352. package/dist/server/app-rsc-cache-busting.js +80 -18
  353. package/dist/server/app-rsc-combined-handler.d.ts +9 -0
  354. package/dist/server/app-rsc-combined-handler.js +11 -0
  355. package/dist/server/app-rsc-embedded-chunks.d.ts +6 -7
  356. package/dist/server/app-rsc-error-handler.d.ts +12 -6
  357. package/dist/server/app-rsc-error-handler.js +15 -6
  358. package/dist/server/app-rsc-errors.d.ts +12 -9
  359. package/dist/server/app-rsc-errors.js +15 -13
  360. package/dist/server/app-rsc-handler.d.ts +33 -6
  361. package/dist/server/app-rsc-handler.js +498 -83
  362. package/dist/server/app-rsc-redirect-flight.d.ts +4 -5
  363. package/dist/server/app-rsc-render-mode.d.ts +8 -9
  364. package/dist/server/app-rsc-request-normalization.d.ts +3 -3
  365. package/dist/server/app-rsc-request-normalization.js +2 -1
  366. package/dist/server/app-rsc-response-finalizer.d.ts +8 -5
  367. package/dist/server/app-rsc-response-finalizer.js +24 -7
  368. package/dist/server/app-rsc-response-stage.d.ts +6 -0
  369. package/dist/server/app-rsc-response-stage.js +251 -0
  370. package/dist/server/app-rsc-route-matching.d.ts +4 -4
  371. package/dist/server/app-rsc-route-matching.js +4 -2
  372. package/dist/server/app-rsc-state-fingerprint.d.ts +3 -4
  373. package/dist/server/app-rsc-vary.d.ts +16 -0
  374. package/dist/server/app-rsc-vary.js +31 -0
  375. package/dist/server/app-segment-config.d.ts +120 -6
  376. package/dist/server/app-segment-config.js +264 -12
  377. package/dist/server/app-server-action-execution.d.ts +16 -12
  378. package/dist/server/app-server-action-execution.js +88 -35
  379. package/dist/server/app-ssr-entry.d.ts +14 -4
  380. package/dist/server/app-ssr-entry.js +64 -17
  381. package/dist/server/app-ssr-error-meta.d.ts +3 -4
  382. package/dist/server/app-ssr-error-meta.js +2 -1
  383. package/dist/server/app-ssr-router-instance.d.ts +2 -3
  384. package/dist/server/app-ssr-search-params-gate.d.ts +20 -0
  385. package/dist/server/app-ssr-search-params-gate.js +54 -0
  386. package/dist/server/app-ssr-stream.d.ts +13 -9
  387. package/dist/server/app-ssr-stream.js +33 -7
  388. package/dist/server/app-static-generation.d.ts +4 -5
  389. package/dist/server/app-visited-response-cache.d.ts +11 -12
  390. package/dist/server/app-visited-response-cache.js +2 -2
  391. package/dist/server/app-worker-stages.d.ts +112 -0
  392. package/dist/server/app-worker-stages.js +105 -0
  393. package/dist/server/artifact-compatibility.d.ts +11 -12
  394. package/dist/server/before-interactive-head.d.ts +2 -3
  395. package/dist/server/bfcache-identity.d.ts +7 -8
  396. package/dist/server/cache-control.d.ts +39 -11
  397. package/dist/server/cache-control.js +104 -7
  398. package/dist/server/cache-headers.d.ts +3 -4
  399. package/dist/server/cache-proof.d.ts +75 -70
  400. package/dist/server/cache-proof.js +9 -1
  401. package/dist/server/cacheability-limits.d.ts +8 -0
  402. package/dist/server/cacheability-limits.js +9 -0
  403. package/dist/server/cacheability-manifest.d.ts +68 -0
  404. package/dist/server/cacheability-manifest.js +241 -0
  405. package/dist/server/cacheability-request.d.ts +49 -0
  406. package/dist/server/cacheability-request.js +559 -0
  407. package/dist/server/client-reuse-manifest.d.ts +17 -18
  408. package/dist/server/client-reuse-manifest.js +2 -2
  409. package/dist/server/client-trace-metadata.d.ts +9 -6
  410. package/dist/server/client-trace-metadata.js +27 -15
  411. package/dist/server/cloudflare-workers-tracing.d.ts +1 -0
  412. package/dist/server/cloudflare-workers-tracing.js +8 -0
  413. package/dist/server/config-headers.d.ts +19 -5
  414. package/dist/server/config-headers.js +39 -5
  415. package/dist/server/cookie-utils.d.ts +2 -3
  416. package/dist/server/csp.d.ts +5 -6
  417. package/dist/server/default-global-error-module.d.ts +2 -3
  418. package/dist/server/default-global-not-found-module.d.ts +2 -3
  419. package/dist/server/default-not-found-module.d.ts +2 -3
  420. package/dist/server/defer-until-stream-consumed.d.ts +2 -3
  421. package/dist/server/defer-until-stream-consumed.js +2 -1
  422. package/dist/server/dev-initial-server-error.d.ts +3 -4
  423. package/dist/server/dev-initial-server-error.js +2 -1
  424. package/dist/server/dev-lockfile.d.ts +7 -8
  425. package/dist/server/dev-lockfile.js +4 -1
  426. package/dist/server/dev-module-runner.d.ts +2 -3
  427. package/dist/server/dev-origin-check.d.ts +5 -6
  428. package/dist/server/dev-route-files.d.ts +2 -3
  429. package/dist/server/dev-server.d.ts +4 -5
  430. package/dist/server/dev-server.js +130 -61
  431. package/dist/server/dev-stack-sourcemap.d.ts +7 -7
  432. package/dist/server/dev-stack-sourcemap.js +1 -1
  433. package/dist/server/document-initial-head.d.ts +3 -4
  434. package/dist/server/edge-api-runtime.d.ts +4 -5
  435. package/dist/server/fetch-handler.d.ts +3 -2
  436. package/dist/server/fetch-handler.js +3 -18
  437. package/dist/server/file-based-metadata.d.ts +2 -3
  438. package/dist/server/framework-tracer.d.ts +46 -0
  439. package/dist/server/framework-tracer.js +125 -0
  440. package/dist/server/fully-buffered-response.d.ts +11 -0
  441. package/dist/server/fully-buffered-response.js +19 -0
  442. package/dist/server/headers.d.ts +62 -56
  443. package/dist/server/headers.js +33 -20
  444. package/dist/server/html.d.ts +6 -27
  445. package/dist/server/html.js +16 -1
  446. package/dist/server/http-conditional.d.ts +5 -6
  447. package/dist/server/http-date.d.ts +2 -3
  448. package/dist/server/http-error-responses.d.ts +9 -10
  449. package/dist/server/http-range.d.ts +4 -5
  450. package/dist/server/hybrid-route-priority.d.ts +4 -5
  451. package/dist/server/image-optimization.d.ts +20 -21
  452. package/dist/server/implicit-tags.d.ts +3 -4
  453. package/dist/server/instrumentation-runtime.d.ts +17 -21
  454. package/dist/server/instrumentation-runtime.js +26 -8
  455. package/dist/server/instrumentation.d.ts +26 -30
  456. package/dist/server/instrumentation.js +18 -23
  457. package/dist/server/isr-cache.d.ts +28 -27
  458. package/dist/server/isr-cache.js +18 -70
  459. package/dist/server/isr-decision.d.ts +4 -4
  460. package/dist/server/metadata-route-build-data.d.ts +4 -5
  461. package/dist/server/metadata-route-cache-policy.d.ts +2 -3
  462. package/dist/server/metadata-route-response.d.ts +7 -7
  463. package/dist/server/metadata-route-response.js +68 -2
  464. package/dist/server/metadata-routes.d.ts +18 -19
  465. package/dist/server/middleware-matcher-pattern.d.ts +6 -7
  466. package/dist/server/middleware-matcher.d.ts +13 -6
  467. package/dist/server/middleware-matcher.js +22 -1
  468. package/dist/server/middleware-path-to-regexp.d.ts +6 -7
  469. package/dist/server/middleware-path-to-regexp.js +11 -9
  470. package/dist/server/middleware-response-headers.d.ts +3 -4
  471. package/dist/server/middleware-runtime.d.ts +13 -8
  472. package/dist/server/middleware-runtime.js +54 -10
  473. package/dist/server/middleware.d.ts +5 -5
  474. package/dist/server/multi-stage.d.ts +141 -0
  475. package/dist/server/multi-stage.js +8 -0
  476. package/dist/server/navigation-planner.d.ts +26 -26
  477. package/dist/server/navigation-trace.d.ts +11 -12
  478. package/dist/server/next-error-digest.d.ts +4 -5
  479. package/dist/server/normalize-path.d.ts +5 -6
  480. package/dist/server/normalize-path.js +1 -1
  481. package/dist/server/open-redirect.d.ts +2 -3
  482. package/dist/server/opentelemetry-api.d.ts +59 -0
  483. package/dist/server/opentelemetry-api.js +53 -0
  484. package/dist/server/opentelemetry-tracing.d.ts +5 -0
  485. package/dist/server/opentelemetry-tracing.js +83 -0
  486. package/dist/server/operation-token.d.ts +11 -12
  487. package/dist/server/otel-tracer-extension.d.ts +7 -9
  488. package/dist/server/otel-tracer-extension.js +37 -36
  489. package/dist/server/pages-api-route.d.ts +5 -4
  490. package/dist/server/pages-api-route.js +21 -8
  491. package/dist/server/pages-asset-tags.d.ts +6 -6
  492. package/dist/server/pages-asset-tags.js +37 -2
  493. package/dist/server/pages-body-parser-config.d.ts +4 -5
  494. package/dist/server/pages-body-parser-config.js +4 -4
  495. package/dist/server/pages-client-assets.d.ts +11 -5
  496. package/dist/server/pages-data-route.d.ts +11 -12
  497. package/dist/server/pages-data-route.js +1 -1
  498. package/dist/server/pages-default-404.d.ts +3 -4
  499. package/dist/server/pages-dev-hydration.d.ts +9 -4
  500. package/dist/server/pages-dev-hydration.js +19 -7
  501. package/dist/server/pages-dev-module-url.d.ts +3 -4
  502. package/dist/server/pages-dev-stylesheets.d.ts +5 -6
  503. package/dist/server/pages-document-asset-props.d.ts +6 -7
  504. package/dist/server/pages-document-initial-props.d.ts +5 -5
  505. package/dist/server/pages-document-initial-props.js +4 -2
  506. package/dist/server/pages-execution-tracing.d.ts +40 -0
  507. package/dist/server/pages-execution-tracing.js +80 -0
  508. package/dist/server/pages-get-initial-props.d.ts +9 -10
  509. package/dist/server/pages-i18n.d.ts +8 -8
  510. package/dist/server/pages-i18n.js +3 -2
  511. package/dist/server/pages-media-type.d.ts +4 -5
  512. package/dist/server/pages-node-compat.d.ts +11 -10
  513. package/dist/server/pages-node-compat.js +12 -4
  514. package/dist/server/pages-page-data.d.ts +18 -19
  515. package/dist/server/pages-page-data.js +11 -10
  516. package/dist/server/pages-page-handler.d.ts +7 -6
  517. package/dist/server/pages-page-handler.js +98 -47
  518. package/dist/server/pages-page-method.d.ts +2 -3
  519. package/dist/server/pages-page-response.d.ts +14 -10
  520. package/dist/server/pages-page-response.js +49 -31
  521. package/dist/server/pages-preview.d.ts +10 -11
  522. package/dist/server/pages-readiness.d.ts +2 -3
  523. package/dist/server/pages-request-pipeline.d.ts +16 -12
  524. package/dist/server/pages-request-pipeline.js +69 -28
  525. package/dist/server/pages-request-stage-entry.d.ts +23 -0
  526. package/dist/server/pages-request-stage-entry.js +314 -0
  527. package/dist/server/pages-response-stage-entry.d.ts +11 -0
  528. package/dist/server/pages-response-stage-entry.js +106 -0
  529. package/dist/server/pages-response-stage.d.ts +31 -0
  530. package/dist/server/pages-response-stage.js +49 -0
  531. package/dist/server/pages-revalidate.d.ts +3 -4
  532. package/dist/server/pages-revalidate.js +9 -4
  533. package/dist/server/pages-route-data-kind.d.ts +18 -0
  534. package/dist/server/pages-route-data-kind.js +11 -0
  535. package/dist/server/pages-router-entry.d.ts +1 -25
  536. package/dist/server/pages-router-entry.js +48 -114
  537. package/dist/server/pages-serializable-props.d.ts +3 -4
  538. package/dist/server/pregenerated-concrete-paths.d.ts +9 -7
  539. package/dist/server/pregenerated-concrete-paths.js +12 -6
  540. package/dist/server/prerender-cache-life-header.d.ts +3 -4
  541. package/dist/server/prerender-manifest.d.ts +11 -11
  542. package/dist/server/prerender-manifest.js +6 -3
  543. package/dist/server/prerender-route-params.d.ts +16 -9
  544. package/dist/server/prerender-route-params.js +18 -2
  545. package/dist/server/prerender-work-unit-setup.d.ts +4 -4
  546. package/dist/server/prerender-work-unit-setup.js +37 -14
  547. package/dist/server/prod-server.d.ts +12 -9
  548. package/dist/server/prod-server.js +129 -36
  549. package/dist/server/proxy-trust.d.ts +5 -6
  550. package/dist/server/request-log.d.ts +3 -4
  551. package/dist/server/request-pipeline.d.ts +17 -21
  552. package/dist/server/request-pipeline.js +8 -10
  553. package/dist/server/request-stage.d.ts +5 -0
  554. package/dist/server/request-stage.js +7 -0
  555. package/dist/server/request-tracing.d.ts +22 -0
  556. package/dist/server/request-tracing.js +180 -0
  557. package/dist/server/response-stage-cacheability.d.ts +37 -0
  558. package/dist/server/response-stage-cacheability.js +55 -0
  559. package/dist/server/response-stage-policy.d.ts +23 -0
  560. package/dist/server/response-stage-policy.js +89 -0
  561. package/dist/server/response-stage.d.ts +5 -0
  562. package/dist/server/response-stage.js +7 -0
  563. package/dist/server/response-start-tracing.d.ts +14 -0
  564. package/dist/server/response-start-tracing.js +80 -0
  565. package/dist/server/revalidation-host.d.ts +2 -3
  566. package/dist/server/revalidation-host.js +2 -1
  567. package/dist/server/revalidation-request.d.ts +8 -0
  568. package/dist/server/revalidation-request.js +37 -0
  569. package/dist/server/rsc-completion-metadata.d.ts +6 -7
  570. package/dist/server/rsc-stream-hints.d.ts +18 -7
  571. package/dist/server/rsc-stream-hints.js +70 -35
  572. package/dist/server/seed-cache.d.ts +2 -3
  573. package/dist/server/seed-cache.js +8 -7
  574. package/dist/server/server-action-not-found.d.ts +5 -6
  575. package/dist/server/server-globals.d.ts +2 -3
  576. package/dist/server/server-globals.js +13 -0
  577. package/dist/server/skip-cache-proof.d.ts +4 -4
  578. package/dist/server/socket-error-backstop.d.ts +5 -6
  579. package/dist/server/socket-error-backstop.js +1 -1
  580. package/dist/server/static-file-cache.d.ts +5 -6
  581. package/dist/server/static-file-cache.js +9 -7
  582. package/dist/server/static-file-signal.d.ts +16 -0
  583. package/dist/server/static-file-signal.js +82 -0
  584. package/dist/server/static-layout-client-reuse-proof.d.ts +4 -5
  585. package/dist/server/streaming-metadata.d.ts +2 -3
  586. package/dist/server/tracer.d.ts +5 -0
  587. package/dist/server/tracer.js +13 -0
  588. package/dist/server/worker-prerender-discovery.d.ts +18 -0
  589. package/dist/server/worker-prerender-discovery.js +55 -0
  590. package/dist/server/worker-revalidation-context.d.ts +2 -3
  591. package/dist/server/worker-revalidation-context.js +5 -5
  592. package/dist/server/worker-stages.d.ts +43 -0
  593. package/dist/server/worker-stages.js +25 -0
  594. package/dist/server/worker-utils.d.ts +5 -6
  595. package/dist/server/worker-utils.js +4 -4
  596. package/dist/server/workers-tracing.d.ts +17 -0
  597. package/dist/server/workers-tracing.js +27 -0
  598. package/dist/shims/amp.d.ts +3 -4
  599. package/dist/shims/app-router-scroll-state.d.ts +9 -10
  600. package/dist/shims/app-router-scroll.d.ts +4 -5
  601. package/dist/shims/app-router-scroll.js +2 -1
  602. package/dist/shims/app.d.ts +5 -6
  603. package/dist/shims/before-interactive-context.d.ts +5 -6
  604. package/dist/shims/cache-callable-runtime.d.ts +44 -4
  605. package/dist/shims/cache-callable-runtime.js +168 -8
  606. package/dist/shims/cache-for-request.d.ts +2 -3
  607. package/dist/shims/cache-handler.d.ts +33 -20
  608. package/dist/shims/cache-handler.js +61 -2
  609. package/dist/shims/cache-request-state.d.ts +28 -29
  610. package/dist/shims/cache-runtime.d.ts +23 -21
  611. package/dist/shims/cache-runtime.js +239 -121
  612. package/dist/shims/cache.d.ts +15 -15
  613. package/dist/shims/cache.js +25 -13
  614. package/dist/shims/cacheability-classification.d.ts +106 -0
  615. package/dist/shims/cacheability-classification.js +161 -0
  616. package/dist/shims/cdn-cache-state.d.ts +13 -0
  617. package/dist/shims/cdn-cache-state.js +23 -0
  618. package/dist/shims/cdn-cache.d.ts +76 -18
  619. package/dist/shims/cdn-cache.js +40 -39
  620. package/dist/shims/client-hook-error.d.ts +3 -4
  621. package/dist/shims/client-locale.d.ts +2 -3
  622. package/dist/shims/client-page-root.d.ts +24 -0
  623. package/dist/shims/client-page-root.js +121 -0
  624. package/dist/shims/compat-router.d.ts +2 -3
  625. package/dist/shims/config.d.ts +3 -4
  626. package/dist/shims/constants.d.ts +73 -74
  627. package/dist/shims/constants.js +1 -1
  628. package/dist/shims/default-not-found.d.ts +2 -3
  629. package/dist/shims/document.d.ts +9 -9
  630. package/dist/shims/dynamic-preload-chunks.d.ts +2 -3
  631. package/dist/shims/dynamic-preload-chunks.js +17 -13
  632. package/dist/shims/dynamic.d.ts +3 -3
  633. package/dist/shims/error-boundary-navigation.d.ts +3 -4
  634. package/dist/shims/error-boundary.d.ts +17 -18
  635. package/dist/shims/error-boundary.js +17 -11
  636. package/dist/shims/error.d.ts +4 -4
  637. package/dist/shims/error.js +1 -1
  638. package/dist/shims/error.react-server.d.ts +3 -4
  639. package/dist/shims/fetch-cache.d.ts +22 -22
  640. package/dist/shims/fetch-cache.js +50 -20
  641. package/dist/shims/font-google-base.d.ts +9 -9
  642. package/dist/shims/font-google-base.js +2 -1
  643. package/dist/shims/font-local.d.ts +3 -3
  644. package/dist/shims/font-local.js +1 -1
  645. package/dist/shims/font-utils.d.ts +14 -15
  646. package/dist/shims/form.d.ts +2 -2
  647. package/dist/shims/form.js +10 -7
  648. package/dist/shims/hash-scroll.d.ts +5 -6
  649. package/dist/shims/head-state.d.ts +4 -5
  650. package/dist/shims/head.d.ts +16 -16
  651. package/dist/shims/head.js +5 -4
  652. package/dist/shims/headers.d.ts +68 -32
  653. package/dist/shims/headers.js +101 -10
  654. package/dist/shims/i18n-context.d.ts +5 -6
  655. package/dist/shims/i18n-state.d.ts +4 -5
  656. package/dist/shims/image-config.d.ts +5 -6
  657. package/dist/shims/image-config.js +2 -0
  658. package/dist/shims/image.d.ts +5 -5
  659. package/dist/shims/image.js +12 -8
  660. package/dist/shims/internal/als-registry.d.ts +4 -5
  661. package/dist/shims/internal/api-utils.d.ts +3 -4
  662. package/dist/shims/internal/app-page-props-cache-key.d.ts +32 -4
  663. package/dist/shims/internal/app-page-props-cache-key.js +53 -1
  664. package/dist/shims/internal/app-prefetch-fetch-queue.d.ts +5 -6
  665. package/dist/shims/internal/app-prefetch-rsc-request.d.ts +13 -0
  666. package/dist/shims/internal/app-prefetch-rsc-request.js +12 -0
  667. package/dist/shims/internal/app-route-detection.d.ts +2 -2
  668. package/dist/shims/internal/app-route-prefetch-policy.d.ts +5 -6
  669. package/dist/shims/internal/app-route-prefetch-policy.js +1 -0
  670. package/dist/shims/internal/app-router-context.d.ts +9 -10
  671. package/dist/shims/internal/cookie-serialize.d.ts +4 -5
  672. package/dist/shims/internal/format-url-object.d.ts +7 -0
  673. package/dist/shims/internal/format-url-object.js +53 -0
  674. package/dist/shims/internal/hybrid-client-route-owner-direct.d.ts +6 -7
  675. package/dist/shims/internal/hybrid-client-route-owner-direct.js +29 -11
  676. package/dist/shims/internal/hybrid-client-route-owner.d.ts +3 -3
  677. package/dist/shims/internal/hybrid-client-route-owner.js +5 -4
  678. package/dist/shims/internal/interpolate-as.d.ts +5 -6
  679. package/dist/shims/internal/interpolate-as.js +4 -2
  680. package/dist/shims/internal/link-status-registry.d.ts +5 -6
  681. package/dist/shims/internal/make-hanging-promise.d.ts +8 -3
  682. package/dist/shims/internal/make-hanging-promise.js +13 -2
  683. package/dist/shims/internal/navigation-untracked.d.ts +2 -3
  684. package/dist/shims/internal/normalize-router-href.d.ts +15 -0
  685. package/dist/shims/internal/normalize-router-href.js +41 -0
  686. package/dist/shims/internal/pages-data-fetch-dedup.d.ts +8 -9
  687. package/dist/shims/internal/pages-data-target.d.ts +8 -6
  688. package/dist/shims/internal/pages-data-target.js +32 -36
  689. package/dist/shims/internal/pages-data-url.d.ts +4 -5
  690. package/dist/shims/internal/pages-data-url.js +2 -1
  691. package/dist/shims/internal/pages-router-accessor.d.ts +3 -4
  692. package/dist/shims/internal/pages-router-components.d.ts +3 -4
  693. package/dist/shims/internal/route-pattern-for-warning.d.ts +5 -6
  694. package/dist/shims/internal/route-pattern-for-warning.js +3 -3
  695. package/dist/shims/internal/router-context.d.ts +2 -3
  696. package/dist/shims/internal/thenable-well-known-properties.d.ts +10 -0
  697. package/dist/shims/internal/thenable-well-known-properties.js +33 -0
  698. package/dist/shims/internal/utils.d.ts +7 -8
  699. package/dist/shims/internal/work-unit-async-storage.d.ts +12 -11
  700. package/dist/shims/layout-segment-context.d.ts +3 -4
  701. package/dist/shims/link-prefetch.d.ts +9 -10
  702. package/dist/shims/link.d.ts +4 -4
  703. package/dist/shims/link.js +67 -116
  704. package/dist/shims/metadata.d.ts +15 -16
  705. package/dist/shims/metadata.js +40 -36
  706. package/dist/shims/navigation-context-accessors.d.ts +9 -0
  707. package/dist/shims/navigation-context-accessors.js +19 -0
  708. package/dist/shims/navigation-context-state.d.ts +27 -18
  709. package/dist/shims/navigation-errors.d.ts +18 -19
  710. package/dist/shims/navigation-state.d.ts +6 -7
  711. package/dist/shims/navigation.d.ts +80 -68
  712. package/dist/shims/navigation.js +45 -17
  713. package/dist/shims/navigation.react-server.d.ts +9 -9
  714. package/dist/shims/navigation.react-server.js +1 -1
  715. package/dist/shims/offline.d.ts +2 -3
  716. package/dist/shims/og.d.ts +2 -2
  717. package/dist/shims/pages-router-runtime.d.ts +4 -5
  718. package/dist/shims/ppr-fallback-shell.d.ts +13 -14
  719. package/dist/shims/readonly-url-search-params.d.ts +2 -3
  720. package/dist/shims/request-context.d.ts +7 -6
  721. package/dist/shims/root-params.d.ts +14 -15
  722. package/dist/shims/router-state.d.ts +5 -6
  723. package/dist/shims/router-state.js +1 -1
  724. package/dist/shims/router.d.ts +22 -21
  725. package/dist/shims/router.js +339 -164
  726. package/dist/shims/script-nonce-context.d.ts +8 -6
  727. package/dist/shims/script-nonce-context.js +15 -6
  728. package/dist/shims/script.d.ts +4 -4
  729. package/dist/shims/script.js +9 -7
  730. package/dist/shims/search-params-gate.d.ts +35 -0
  731. package/dist/shims/search-params-gate.js +32 -0
  732. package/dist/shims/server.d.ts +19 -51
  733. package/dist/shims/server.js +14 -28
  734. package/dist/shims/slot.d.ts +33 -15
  735. package/dist/shims/slot.js +41 -9
  736. package/dist/shims/streamed-icons.d.ts +3 -4
  737. package/dist/shims/thenable-params.d.ts +5 -7
  738. package/dist/shims/thenable-params.js +3 -24
  739. package/dist/shims/unified-request-context.d.ts +34 -31
  740. package/dist/shims/unified-request-context.js +34 -24
  741. package/dist/shims/unrecognized-action-error.d.ts +3 -4
  742. package/dist/shims/url-safety.d.ts +5 -6
  743. package/dist/shims/url-utils.d.ts +18 -12
  744. package/dist/shims/url-utils.js +10 -1
  745. package/dist/shims/use-merged-ref.d.ts +2 -3
  746. package/dist/shims/user-agent.d.ts +31 -0
  747. package/dist/shims/user-agent.js +16 -0
  748. package/dist/shims/web-vitals.d.ts +2 -2
  749. package/dist/typegen.d.ts +3 -4
  750. package/dist/utils/asset-prefix.d.ts +7 -8
  751. package/dist/utils/base-path.d.ts +5 -6
  752. package/dist/utils/built-asset-url.d.ts +2 -3
  753. package/dist/utils/built-asset-url.js +1 -1
  754. package/dist/utils/cache-control-metadata.d.ts +4 -5
  755. package/dist/utils/client-build-manifest.d.ts +6 -7
  756. package/dist/utils/client-build-manifest.js +2 -1
  757. package/dist/utils/client-entry-manifest.d.ts +6 -7
  758. package/dist/utils/client-runtime-metadata.d.ts +8 -3
  759. package/dist/utils/client-runtime-metadata.js +18 -1
  760. package/dist/utils/commonjs-loader.d.ts +4 -5
  761. package/dist/utils/compare.d.ts +2 -3
  762. package/dist/utils/deployment-id.d.ts +6 -7
  763. package/dist/utils/dev-error-recovery-event.d.ts +2 -3
  764. package/dist/utils/dev-stack-sourcemap-endpoint.d.ts +2 -3
  765. package/dist/utils/domain-locale.d.ts +7 -8
  766. package/dist/utils/encode-cache-tag.d.ts +3 -4
  767. package/dist/utils/error-cause.d.ts +2 -3
  768. package/dist/utils/external-url.d.ts +2 -3
  769. package/dist/utils/has-trailing-comma.d.ts +3 -4
  770. package/dist/utils/hash.d.ts +3 -4
  771. package/dist/utils/html-limited-bots.d.ts +3 -4
  772. package/dist/utils/lazy-chunks.d.ts +8 -9
  773. package/dist/utils/lazy-chunks.js +4 -4
  774. package/dist/utils/manifest-paths.d.ts +5 -6
  775. package/dist/utils/mdx-scan.d.ts +11 -4
  776. package/dist/utils/mdx-scan.js +27 -1
  777. package/dist/utils/middleware-request-headers.d.ts +7 -6
  778. package/dist/utils/middleware-request-headers.js +6 -1
  779. package/dist/utils/navigation-signal.d.ts +3 -3
  780. package/dist/utils/navigation-signal.js +16 -1
  781. package/dist/utils/number.d.ts +2 -3
  782. package/dist/utils/package-name.d.ts +3 -4
  783. package/dist/utils/parse-cookie.d.ts +4 -5
  784. package/dist/utils/path.d.ts +8 -9
  785. package/dist/utils/plugin-options.d.ts +2 -3
  786. package/dist/utils/precompressed-variant.d.ts +3 -4
  787. package/dist/utils/prerender-output-paths.d.ts +9 -10
  788. package/dist/utils/prerender-output-paths.js +16 -9
  789. package/dist/utils/project.d.ts +19 -30
  790. package/dist/utils/project.js +20 -29
  791. package/dist/utils/promise.d.ts +2 -3
  792. package/dist/utils/protocol-headers.d.ts +14 -15
  793. package/dist/utils/public-file-path.d.ts +2 -3
  794. package/dist/utils/public-routes.d.ts +2 -3
  795. package/dist/utils/query.d.ts +14 -9
  796. package/dist/utils/query.js +22 -1
  797. package/dist/utils/react-compiler-support.d.ts +6 -7
  798. package/dist/utils/react-version.d.ts +4 -3
  799. package/dist/utils/react-version.js +19 -1
  800. package/dist/utils/record.d.ts +2 -3
  801. package/dist/utils/redirect-digest.d.ts +3 -4
  802. package/dist/utils/regex-safety.d.ts +4 -5
  803. package/dist/utils/regex.d.ts +2 -3
  804. package/dist/utils/safe-json-file.d.ts +2 -3
  805. package/dist/utils/sorted-array.d.ts +2 -3
  806. package/dist/utils/text-stream.d.ts +3 -4
  807. package/dist/utils/vinext-root.d.ts +2 -3
  808. package/dist/utils/virtual-module.d.ts +3 -4
  809. package/dist/utils/vite-cli-invocation.d.ts +21 -0
  810. package/dist/utils/vite-cli-invocation.js +144 -0
  811. package/dist/utils/vite-version.d.ts +5 -6
  812. package/next-package.json +4 -0
  813. package/package.json +55 -6
@@ -1,5 +1,5 @@
1
1
  //#region src/server/http-range.d.ts
2
- type ByteRange = {
2
+ export type ByteRange = {
3
3
  kind: "ignore";
4
4
  } | {
5
5
  kind: "unsatisfiable";
@@ -12,7 +12,7 @@ type ByteRange = {
12
12
  * Parse a single bytes range. Unsupported range units, malformed values, and
13
13
  * multipart ranges are ignored, which RFC 9110 permits servers to do.
14
14
  */
15
- declare function parseByteRange(value: string | undefined, size: number): ByteRange;
15
+ export declare function parseByteRange(value: string | undefined, size: number): ByteRange;
16
16
  /**
17
17
  * If-Range requires strong entity-tag comparison. Date validators are matched
18
18
  * at HTTP-date (whole-second) precision because filesystem mtimes are finer,
@@ -20,6 +20,5 @@ declare function parseByteRange(value: string | undefined, size: number): ByteRa
20
20
  * Vinext's static ETags are currently weak, so its emitted Last-Modified value
21
21
  * is the validator that can enable a range response on a later request.
22
22
  */
23
- declare function ifRangeAllowsRange(value: string | undefined, etag: string, mtimeMs: number): boolean;
24
- //#endregion
25
- export { ByteRange, ifRangeAllowsRange, parseByteRange };
23
+ export declare function ifRangeAllowsRange(value: string | undefined, etag: string, mtimeMs: number): boolean;
24
+ //#endregion
@@ -1,10 +1,10 @@
1
1
  //#region src/server/hybrid-route-priority.d.ts
2
- type HybridRoutePriorityRoute = {
2
+ export type HybridRoutePriorityRoute = {
3
3
  isDynamic: boolean;
4
4
  pattern: string;
5
5
  sourcePath?: string | null;
6
6
  };
7
- declare function validateHybridRouteConflicts(pagesRoutes: readonly HybridRoutePriorityRoute[], appRoutes: readonly HybridRoutePriorityRoute[]): void;
7
+ export declare function validateHybridRouteConflicts(pagesRoutes: readonly HybridRoutePriorityRoute[], appRoutes: readonly HybridRoutePriorityRoute[]): void;
8
8
  /**
9
9
  * Return whether a matched Pages Router route should own the request instead
10
10
  * of a matched App Router route.
@@ -17,6 +17,5 @@ declare function validateHybridRouteConflicts(pagesRoutes: readonly HybridRouteP
17
17
  * `routing/utils.ts#compareHybridRoutePatterns` so the server and client
18
18
  * always reach the same answer.
19
19
  */
20
- declare function pagesRouteHasPriorityOverAppRoute(pagesRoute: HybridRoutePriorityRoute, appRoute: HybridRoutePriorityRoute | null): boolean;
21
- //#endregion
22
- export { HybridRoutePriorityRoute, pagesRouteHasPriorityOverAppRoute, validateHybridRouteConflicts };
20
+ export declare function pagesRouteHasPriorityOverAppRoute(pagesRoute: HybridRoutePriorityRoute, appRoute: HybridRoutePriorityRoute | null): boolean;
21
+ //#endregion
@@ -18,14 +18,14 @@
18
18
  * as-is (no transformation) with security headers applied.
19
19
  */
20
20
  /** The pathname that triggers image optimization (matches Next.js). */
21
- declare const IMAGE_OPTIMIZATION_PATH = "/_next/image";
21
+ export declare const IMAGE_OPTIMIZATION_PATH = "/_next/image";
22
22
  /**
23
23
  * Vinext-prefixed alias for the image optimization endpoint. Accepted
24
24
  * alongside IMAGE_OPTIMIZATION_PATH so apps that wire image URLs to the
25
25
  * vinext-prefixed path continue to work; emit IMAGE_OPTIMIZATION_PATH
26
26
  * for any newly generated URLs.
27
27
  */
28
- declare const VINEXT_IMAGE_OPTIMIZATION_PATH = "/_vinext/image";
28
+ export declare const VINEXT_IMAGE_OPTIMIZATION_PATH = "/_vinext/image";
29
29
  /**
30
30
  * Returns true when `pathname` is either supported image optimization
31
31
  * endpoint.
@@ -38,12 +38,12 @@ declare const VINEXT_IMAGE_OPTIMIZATION_PATH = "/_vinext/image";
38
38
  * Rejecting the slashed form 404'd every dev-mode next/image request under
39
39
  * `trailingSlash: true`.
40
40
  */
41
- declare function isImageOptimizationPath(pathname: string): boolean;
41
+ export declare function isImageOptimizationPath(pathname: string): boolean;
42
42
  /**
43
43
  * Image security configuration from next.config.js `images` section.
44
44
  * Controls SVG handling and security headers for the image endpoint.
45
45
  */
46
- type ImageConfig = {
46
+ export type ImageConfig = {
47
47
  /** Allowed device widths. Defaults to Next.js device sizes. */
48
48
  deviceSizes?: number[];
49
49
  /** Allowed fixed-image widths. Defaults to Next.js image sizes. */
@@ -76,12 +76,12 @@ type ImageConfig = {
76
76
  * These are the allowed widths for image optimization when no custom
77
77
  * config is provided. Matches Next.js defaults exactly.
78
78
  */
79
- declare const DEFAULT_DEVICE_SIZES: number[];
80
- declare const DEFAULT_IMAGE_SIZES: number[];
81
- type ParseImageParamsOptions = {
79
+ export declare const DEFAULT_DEVICE_SIZES: number[];
80
+ export declare const DEFAULT_IMAGE_SIZES: number[];
81
+ export type ParseImageParamsOptions = {
82
82
  isDev?: boolean;
83
83
  };
84
- declare function resolveDevImageRedirect(requestUrl: URL, allowedWidths?: number[], allowedQualities?: number[], options?: ParseImageParamsOptions): string | null;
84
+ export declare function resolveDevImageRedirect(requestUrl: URL, allowedWidths?: number[], allowedQualities?: number[], options?: ParseImageParamsOptions): string | null;
85
85
  /**
86
86
  * Parse and validate image optimization query parameters.
87
87
  * Returns null if the request is malformed.
@@ -90,7 +90,7 @@ declare function resolveDevImageRedirect(requestUrl: URL, allowedWidths?: number
90
90
  * test/integration/image-optimizer/test/index.test.ts
91
91
  * https://github.com/vercel/next.js/blob/canary/test/integration/image-optimizer/test/index.test.ts
92
92
  */
93
- declare function parseImageParams(url: URL, allowedWidths?: number[], allowedQualities?: number[], options?: ParseImageParamsOptions): {
93
+ export declare function parseImageParams(url: URL, allowedWidths?: number[], allowedQualities?: number[], options?: ParseImageParamsOptions): {
94
94
  imageUrl: string;
95
95
  width: number;
96
96
  quality: number;
@@ -99,29 +99,29 @@ declare function parseImageParams(url: URL, allowedWidths?: number[], allowedQua
99
99
  * Negotiate the best output format based on the Accept header.
100
100
  * Returns an IANA media type.
101
101
  */
102
- declare function negotiateImageFormat(acceptHeader: string | null): string;
102
+ export declare function negotiateImageFormat(acceptHeader: string | null): string;
103
103
  /**
104
104
  * Standard Cache-Control header for optimized images.
105
105
  * Optimized images are immutable because the URL encodes the transform params.
106
106
  */
107
- declare const IMAGE_CACHE_CONTROL = "public, max-age=31536000, immutable";
107
+ export declare const IMAGE_CACHE_CONTROL = "public, max-age=31536000, immutable";
108
108
  /**
109
109
  * Content-Security-Policy for image optimization responses.
110
110
  * Blocks script execution and framing to prevent XSS via SVG or other
111
111
  * active content that might be served through the image endpoint.
112
112
  * Matches Next.js default: script-src 'none'; frame-src 'none'; sandbox;
113
113
  */
114
- declare const IMAGE_CONTENT_SECURITY_POLICY = "script-src 'none'; frame-src 'none'; sandbox;";
114
+ export declare const IMAGE_CONTENT_SECURITY_POLICY = "script-src 'none'; frame-src 'none'; sandbox;";
115
115
  /**
116
116
  * Check if a Content-Type header value is a safe image type.
117
117
  * Returns false for SVG (unless dangerouslyAllowSVG is true), HTML, or any non-image type.
118
118
  */
119
- declare function isSafeImageContentType(contentType: string | null, dangerouslyAllowSVG?: boolean): boolean;
119
+ export declare function isSafeImageContentType(contentType: string | null, dangerouslyAllowSVG?: boolean): boolean;
120
120
  /**
121
121
  * Handlers for image optimization I/O operations.
122
122
  * Workers provide these callbacks to adapt their specific bindings.
123
123
  */
124
- type ImageHandlers = {
124
+ export type ImageHandlers = {
125
125
  /** Fetch the source image from storage (e.g., Cloudflare ASSETS binding). */
126
126
  fetchAsset: (path: string, request: Request) => Promise<Response>;
127
127
  /** Optional: Transform the image (resize, format, quality). */
@@ -138,14 +138,14 @@ type ImageHandlers = {
138
138
  * handlers, optionally transforms it, and returns the response with appropriate
139
139
  * cache headers.
140
140
  */
141
- declare function handleImageOptimization(request: Request, handlers: ImageHandlers, allowedWidths?: number[], imageConfig?: ImageConfig): Promise<Response>;
141
+ export declare function handleImageOptimization(request: Request, handlers: ImageHandlers, allowedWidths?: number[], imageConfig?: ImageConfig): Promise<Response>;
142
142
  /**
143
143
  * A server-side image optimizer: the transform backend that resizes/transcodes
144
144
  * a source image. Produced by an adapter factory (e.g. `imagesOptimizer()` from
145
145
  * `@vinext/cloudflare/images/images-optimizer`) and registered via
146
146
  * {@link setImageOptimizer}.
147
147
  */
148
- type ImageOptimizer = {
148
+ export type ImageOptimizer = {
149
149
  /** Transform the source image (resize, format, quality). */
150
150
  transformImage: (body: ReadableStream, options: {
151
151
  width: number;
@@ -175,9 +175,9 @@ type ImageOptimizer = {
175
175
  * don't have to wire `env.IMAGES` into a custom worker entry. This setter
176
176
  * remains the internal registration target.
177
177
  */
178
- declare function setImageOptimizer(optimizer: ImageOptimizer | null): void;
178
+ export declare function setImageOptimizer(optimizer: ImageOptimizer | null): void;
179
179
  /** Get the active image optimizer, or `null` when none is configured. */
180
- declare function getImageOptimizer(): ImageOptimizer | null;
180
+ export declare function getImageOptimizer(): ImageOptimizer | null;
181
181
  /**
182
182
  * Handle an image optimization request using the configured optimizer (if any).
183
183
  *
@@ -189,6 +189,5 @@ declare function getImageOptimizer(): ImageOptimizer | null;
189
189
  * Node). When no optimizer is registered, the request is served unoptimized
190
190
  * (passthrough) with the same security/cache headers.
191
191
  */
192
- declare function handleConfiguredImageOptimization(request: Request, fetchAsset: (path: string, request: Request) => Promise<Response>, allowedWidths?: number[], imageConfig?: ImageConfig): Promise<Response>;
193
- //#endregion
194
- export { DEFAULT_DEVICE_SIZES, DEFAULT_IMAGE_SIZES, IMAGE_CACHE_CONTROL, IMAGE_CONTENT_SECURITY_POLICY, IMAGE_OPTIMIZATION_PATH, ImageConfig, ImageHandlers, ImageOptimizer, ParseImageParamsOptions, VINEXT_IMAGE_OPTIMIZATION_PATH, getImageOptimizer, handleConfiguredImageOptimization, handleImageOptimization, isImageOptimizationPath, isSafeImageContentType, negotiateImageFormat, parseImageParams, resolveDevImageRedirect, setImageOptimizer };
192
+ export declare function handleConfiguredImageOptimization(request: Request, fetchAsset: (path: string, request: Request) => Promise<Response>, allowedWidths?: number[], imageConfig?: ImageConfig): Promise<Response>;
193
+ //#endregion
@@ -1,6 +1,5 @@
1
1
  //#region src/server/implicit-tags.d.ts
2
2
  type AppCacheLeafKind = "page" | "route";
3
- declare function buildAppPageTags(cleanPathname: string, extraTags: string[], routeSegments: readonly string[]): string[];
4
- declare function buildPageCacheTags(pathname: string, extraTags: string[], routeSegments: string[], leafKind: AppCacheLeafKind): string[];
5
- //#endregion
6
- export { buildAppPageTags, buildPageCacheTags };
3
+ export declare function buildAppPageTags(cleanPathname: string, extraTags: string[], routeSegments: readonly string[]): string[];
4
+ export declare function buildPageCacheTags(pathname: string, extraTags: string[], routeSegments: string[], leafKind: AppCacheLeafKind): string[];
5
+ //#endregion
@@ -1,31 +1,26 @@
1
1
  //#region src/server/instrumentation-runtime.d.ts
2
2
  /**
3
- * Lazy, idempotent instrumentation initialisation.
3
+ * Idempotent instrumentation initialisation.
4
4
  *
5
- * The generated App Router RSC entry calls this on the first request instead
6
- * of embedding the bookkeeping directly in codegen. This keeps the entry
7
- * module thin (it only describes the app shape) while the actual runtime
8
- * behaviour lives in a normal typed module that can be unit-tested.
9
- *
10
- * ## Why lazy?
11
- *
12
- * A top-level `await` at module evaluation time blocks the entire V8 isolate
13
- * startup phase. On Cloudflare Workers that latency is added to every cold
14
- * start. Moving the `register()` call into the first request handler keeps
15
- * module evaluation synchronous while still guaranteeing that instrumentation
16
- * runs before any request is handled.
5
+ * Generated production entries call this before evaluating user route,
6
+ * middleware, and boundary modules. Request handlers call it again so
7
+ * development and split-stage entry points keep the same guarantee. Keeping
8
+ * the shared-promise bookkeeping here leaves generated entries as wiring and
9
+ * makes concurrent initialization directly testable.
17
10
  *
18
11
  * ## Why idempotent?
19
12
  *
20
13
  * The same handler may be invoked concurrently (e.g. on a warm Worker).
21
- * A module-level `initialized` flag + a shared promise ensure that
22
- * `register()` is called exactly once even when multiple requests race.
14
+ * Process-wide state keyed by the imported instrumentation module, plus a
15
+ * shared promise, ensures that `register()` is called exactly once even when
16
+ * multiple requests or bundled runtime copies race. Keying by module avoids
17
+ * suppressing registration for another app loaded in the same process.
23
18
  *
24
19
  * ## Next.js semantics
25
20
  *
26
- * Next.js calls `register()` once when the server process starts, before any
27
- * request handling. Our lazy init preserves that guarantee because the first
28
- * request cannot proceed past this call until `register()` has resolved.
21
+ * Next.js calls `register()` once before user server modules are evaluated and
22
+ * before request handling. Production entries await this helper from a cached
23
+ * request-time initializer before dynamically importing those user modules.
29
24
  *
30
25
  * References:
31
26
  * - https://nextjs.org/docs/app/building-your-application/optimizing/instrumentation
@@ -43,7 +38,8 @@
43
38
  * @param instrumentationModule - The imported `instrumentation.ts` module.
44
39
  * Passed as an argument so the generated entry can import it normally
45
40
  * without this helper needing to know the module path.
41
+ * @param instrumentationId - Stable source path used to deduplicate the same
42
+ * instrumentation file when Vite evaluates it in separate environments.
46
43
  */
47
- declare function ensureInstrumentationRegistered(instrumentationModule: Record<string, unknown>): Promise<void>;
48
- //#endregion
49
- export { ensureInstrumentationRegistered };
44
+ export declare function ensureInstrumentationRegistered(instrumentationModule: Record<string, unknown>, instrumentationId?: string): Promise<void>;
45
+ //#endregion
@@ -1,7 +1,22 @@
1
1
  import { extendTracerProviderForCacheComponents } from "./otel-tracer-extension.js";
2
2
  //#region src/server/instrumentation-runtime.ts
3
- let initialized = false;
4
- let initPromise = null;
3
+ const INSTRUMENTATION_STATE_KEY = Symbol.for("vinext.instrumentation.state");
4
+ function getInstrumentationState(instrumentationModule, instrumentationId) {
5
+ const globals = globalThis;
6
+ const states = globals[INSTRUMENTATION_STATE_KEY] ??= {
7
+ byId: /* @__PURE__ */ new Map(),
8
+ byModule: /* @__PURE__ */ new WeakMap()
9
+ };
10
+ const existing = instrumentationId ? states.byId.get(instrumentationId) : states.byModule.get(instrumentationModule);
11
+ if (existing) return existing;
12
+ const state = {
13
+ initialized: false,
14
+ initPromise: null
15
+ };
16
+ if (instrumentationId) states.byId.set(instrumentationId, state);
17
+ else states.byModule.set(instrumentationModule, state);
18
+ return state;
19
+ }
5
20
  function isOnRequestErrorHandler(value) {
6
21
  return typeof value === "function";
7
22
  }
@@ -18,18 +33,21 @@ function isOnRequestErrorHandler(value) {
18
33
  * @param instrumentationModule - The imported `instrumentation.ts` module.
19
34
  * Passed as an argument so the generated entry can import it normally
20
35
  * without this helper needing to know the module path.
36
+ * @param instrumentationId - Stable source path used to deduplicate the same
37
+ * instrumentation file when Vite evaluates it in separate environments.
21
38
  */
22
- async function ensureInstrumentationRegistered(instrumentationModule) {
39
+ async function ensureInstrumentationRegistered(instrumentationModule, instrumentationId) {
23
40
  if (process.env.VINEXT_PRERENDER === "1") return;
24
- if (initialized) return;
25
- if (initPromise) return initPromise;
26
- initPromise = (async () => {
41
+ const state = getInstrumentationState(instrumentationModule, instrumentationId);
42
+ if (state.initialized) return;
43
+ if (state.initPromise) return state.initPromise;
44
+ state.initPromise = (async () => {
27
45
  if (typeof instrumentationModule.register === "function") await instrumentationModule.register();
28
46
  extendTracerProviderForCacheComponents();
29
47
  if (isOnRequestErrorHandler(instrumentationModule.onRequestError)) globalThis.__VINEXT_onRequestErrorHandler__ = instrumentationModule.onRequestError;
30
- initialized = true;
48
+ state.initialized = true;
31
49
  })();
32
- return initPromise;
50
+ return state.initPromise;
33
51
  }
34
52
  //#endregion
35
53
  export { ensureInstrumentationRegistered };
@@ -5,7 +5,7 @@ import { ValidFileMatcher } from "../routing/file-matcher.js";
5
5
  * `runInstrumentation`. Only `.import()` is used — this avoids requiring
6
6
  * callers (including tests) to provide a full `ModuleRunner` instance.
7
7
  */
8
- type ModuleImporter = {
8
+ export type ModuleImporter = {
9
9
  import(id: string): Promise<unknown>;
10
10
  };
11
11
  /**
@@ -14,63 +14,60 @@ type ModuleImporter = {
14
14
  * Centralises the `as Record<string, any>` cast so callers don't need
15
15
  * per-call oxlint-disable comments.
16
16
  */
17
- declare function importModule(runner: ModuleImporter, id: string): Promise<Record<string, any>>;
17
+ export declare function importModule(runner: ModuleImporter, id: string): Promise<Record<string, any>>;
18
18
  /**
19
19
  * Find the instrumentation file in the project root.
20
20
  */
21
- declare function findInstrumentationFile(root: string, fileMatcher: ValidFileMatcher): string | null;
21
+ export declare function findInstrumentationFile(root: string, fileMatcher: ValidFileMatcher): string | null;
22
22
  /**
23
23
  * Find the instrumentation-client file in the project root.
24
24
  */
25
- declare function findInstrumentationClientFile(root: string, fileMatcher: ValidFileMatcher): string | null;
25
+ export declare function findInstrumentationClientFile(root: string, fileMatcher: ValidFileMatcher): string | null;
26
26
  /**
27
27
  * The onRequestError handler type from Next.js instrumentation.
28
28
  *
29
29
  * Called when an unhandled error occurs during request handling.
30
30
  * Provides the error, the request info, and an error context.
31
31
  */
32
- type OnRequestErrorContext = {
33
- /** The route path (e.g., '/blog/[slug]') */
32
+ export type OnRequestErrorContext = {
33
+ /** The router which handled the request. */
34
34
  routerKind: "Pages Router" | "App Router";
35
- /** The matched route pattern */
35
+ /** The matched route pattern. */
36
36
  routePath: string;
37
- /** The route type */
38
- routeType: "render" | "route" | "action" | "middleware";
39
- /** HTTP status code that will be sent */
40
- revalidateReason?: "on-demand" | "stale" | undefined;
37
+ /** The request operation which failed. */
38
+ routeType: "render" | "route" | "action" | "proxy";
39
+ /** The App Router render phase which failed. */
40
+ renderSource?: "react-server-components" | "react-server-components-payload" | "server-rendering";
41
+ /** Why a static route was being regenerated. */
42
+ revalidateReason: "on-demand" | "stale" | undefined;
41
43
  };
42
- type OnRequestErrorHandler = (error: Error, request: {
44
+ export type OnRequestErrorHandler = (error: unknown, request: Readonly<{
43
45
  path: string;
44
46
  method: string;
45
- headers: Record<string, string>;
46
- }, context: OnRequestErrorContext) => void | Promise<void>;
47
+ headers: Record<string, string | string[] | undefined>;
48
+ }>, context: Readonly<OnRequestErrorContext>) => void | Promise<void>;
47
49
  /**
48
50
  * Get the registered onRequestError handler (if any).
49
51
  *
50
52
  * Reads from globalThis so it works across Vite environment boundaries.
51
53
  */
52
- declare function getOnRequestErrorHandler(): OnRequestErrorHandler | null;
54
+ export declare function getOnRequestErrorHandler(): OnRequestErrorHandler | null;
53
55
  /**
54
56
  * Load and execute the instrumentation file via a ModuleRunner.
55
57
  *
56
- * Called once during Pages Router server startup (`configureServer`). It:
58
+ * Called during Node development startup (`configureServer`). It:
57
59
  * 1. Loads the instrumentation module via `runner.import()`.
58
60
  * 2. Calls the `register()` function if exported.
59
61
  * 3. Stores the `onRequestError()` handler on `globalThis` so it is visible
60
62
  * to all Vite environment module graphs (SSR and the host process share
61
63
  * the same Node.js `globalThis`).
62
64
  *
63
- * **App Router** does not use this function. For App Router, `register()` is
64
- * emitted as a top-level `await` inside the generated RSC entry module so it
65
- * runs in the same Worker/environment as request handling.
66
- *
67
- * @param runner - A ModuleRunner created via `createDirectRunner()`. Must be
68
- * the same long-lived runner used for middleware and SSR so the module graph
69
- * is shared. Safe with all Vite plugin combinations, including
70
- * `@cloudflare/vite-plugin`, because it never touches the hot channel.
65
+ * @param runner - The existing RSC runner for App Router, or the long-lived
66
+ * direct runner for Pages-only apps. Reusing the request runner preserves
67
+ * module state initialized by `register()`.
71
68
  * @param instrumentationPath - Absolute path to the instrumentation file
72
69
  */
73
- declare function runInstrumentation(runner: ModuleImporter, instrumentationPath: string): Promise<void>;
70
+ export declare function runInstrumentation(runner: ModuleImporter, instrumentationPath: string): Promise<void>;
74
71
  /**
75
72
  * Report a request error via the instrumentation handler.
76
73
  *
@@ -79,10 +76,9 @@ declare function runInstrumentation(runner: ModuleImporter, instrumentationPath:
79
76
  * Reads the handler from globalThis so this function works correctly regardless
80
77
  * of which environment it is called from.
81
78
  */
82
- declare function reportRequestError(error: Error, request: {
79
+ export declare function reportRequestError(error: unknown, request: Readonly<{
83
80
  path: string;
84
81
  method: string;
85
- headers: Record<string, string>;
86
- }, context: OnRequestErrorContext): Promise<void>;
87
- //#endregion
88
- export { ModuleImporter, OnRequestErrorContext, OnRequestErrorHandler, findInstrumentationClientFile, findInstrumentationFile, getOnRequestErrorHandler, importModule, reportRequestError, runInstrumentation };
82
+ headers: Record<string, string | string[] | undefined>;
83
+ }>, context: OnRequestErrorContext): Promise<void>;
84
+ //#endregion
@@ -1,5 +1,7 @@
1
1
  import path from "../deps/.pnpm/pathslash@0.1.0/deps/pathslash/dist/index.js";
2
+ import { patternToNextFormat } from "../routing/route-validation.js";
2
3
  import { getRequestExecutionContext } from "../shims/request-context.js";
4
+ import { ensureInstrumentationRegistered } from "./instrumentation-runtime.js";
3
5
  import fs from "node:fs";
4
6
  //#region src/server/instrumentation.ts
5
7
  /**
@@ -18,12 +20,12 @@ import fs from "node:fs";
18
20
  *
19
21
  * ## App Router
20
22
  *
21
- * For App Router, `register()` is baked directly into the generated RSC entry
22
- * as a top-level `await` at module evaluation time (see `entries/app-rsc-entry.ts`
23
- * `generateRscEntry`). This means it runs inside the Worker process (or RSC
24
- * Vite environment) — the same process that handles requests — before any
25
- * request is served. `runInstrumentation()` is NOT called from `configureServer`
26
- * for App Router.
23
+ * Node development eagerly calls `runInstrumentation()` through the same RSC
24
+ * runner used for requests. The generated RSC entry also awaits the shared
25
+ * registration promise before importing user server modules. This preserves
26
+ * react-server conditions, module state, and initialization order.
27
+ * Workers and production initialize through the generated entry in their own
28
+ * runtime, without an extra registration in the Node development host.
27
29
  *
28
30
  * The `onRequestError` handler is stored on `globalThis` so it is visible across
29
31
  * the RSC and SSR Vite environments (separate module graphs, same Node.js process).
@@ -79,31 +81,21 @@ function getOnRequestErrorHandler() {
79
81
  /**
80
82
  * Load and execute the instrumentation file via a ModuleRunner.
81
83
  *
82
- * Called once during Pages Router server startup (`configureServer`). It:
84
+ * Called during Node development startup (`configureServer`). It:
83
85
  * 1. Loads the instrumentation module via `runner.import()`.
84
86
  * 2. Calls the `register()` function if exported.
85
87
  * 3. Stores the `onRequestError()` handler on `globalThis` so it is visible
86
88
  * to all Vite environment module graphs (SSR and the host process share
87
89
  * the same Node.js `globalThis`).
88
90
  *
89
- * **App Router** does not use this function. For App Router, `register()` is
90
- * emitted as a top-level `await` inside the generated RSC entry module so it
91
- * runs in the same Worker/environment as request handling.
92
- *
93
- * @param runner - A ModuleRunner created via `createDirectRunner()`. Must be
94
- * the same long-lived runner used for middleware and SSR so the module graph
95
- * is shared. Safe with all Vite plugin combinations, including
96
- * `@cloudflare/vite-plugin`, because it never touches the hot channel.
91
+ * @param runner - The existing RSC runner for App Router, or the long-lived
92
+ * direct runner for Pages-only apps. Reusing the request runner preserves
93
+ * module state initialized by `register()`.
97
94
  * @param instrumentationPath - Absolute path to the instrumentation file
98
95
  */
99
96
  async function runInstrumentation(runner, instrumentationPath) {
100
- try {
101
- const mod = await runner.import(instrumentationPath);
102
- if (typeof mod.register === "function") await mod.register();
103
- if (typeof mod.onRequestError === "function") globalThis.__VINEXT_onRequestErrorHandler__ = mod.onRequestError;
104
- } catch (err) {
105
- console.error("[vinext] Failed to load instrumentation:", err instanceof Error ? err.message : String(err));
106
- }
97
+ const mod = await runner.import(instrumentationPath);
98
+ await ensureInstrumentationRegistered(mod, instrumentationPath);
107
99
  }
108
100
  /**
109
101
  * Report a request error via the instrumentation handler.
@@ -118,7 +110,10 @@ function reportRequestError(error, request, context) {
118
110
  if (!handler) return Promise.resolve();
119
111
  const promise = (async () => {
120
112
  try {
121
- await handler(error, request, context);
113
+ await handler(error, request, {
114
+ ...context,
115
+ routePath: patternToNextFormat(context.routePath)
116
+ });
122
117
  } catch (reportErr) {
123
118
  console.error("[vinext] onRequestError handler threw:", reportErr instanceof Error ? reportErr.message : String(reportErr));
124
119
  }
@@ -4,17 +4,9 @@ import { RenderObservation } from "./cache-proof.js";
4
4
  import { AppRscRenderMode } from "./app-rsc-render-mode.js";
5
5
  import { normalizeMountedSlotsHeader } from "./app-mounted-slots-header.js";
6
6
  import { CacheControlMetadata, CacheHandlerValue, CachedAppPageValue, CachedPagesValue, IncrementalCacheValue } from "../shims/cache-handler.js";
7
+ import { getRevalidateSecret, isOnDemandRevalidateRequest, isRevalidateSecret } from "./revalidation-request.js";
7
8
  //#region src/server/isr-cache.d.ts
8
- declare function getRevalidateSecret(): string;
9
- declare function isRevalidateSecret(value: string | null | undefined): boolean;
10
- /**
11
- * Authorize an incoming request as an on-demand revalidation trigger. Mirrors
12
- * Next.js's `checkIsOnDemandRevalidate`: the {@link PRERENDER_REVALIDATE_HEADER}
13
- * value must *equal* the process revalidate secret. Header presence alone is
14
- * NOT sufficient — see the security note on {@link PRERENDER_REVALIDATE_HEADER}.
15
- */
16
- declare function isOnDemandRevalidateRequest(headerValue: string | string[] | null | undefined): boolean;
17
- type ISRCacheEntry = {
9
+ export type ISRCacheEntry = {
18
10
  value: CacheHandlerValue;
19
11
  isStale: boolean;
20
12
  /** The entry crossed its hard expire boundary and must not be served. */
@@ -28,32 +20,39 @@ type ISRCacheEntry = {
28
20
  * { value, isStale: true, isExpired: true } for entries that must be retained
29
21
  * as regeneration input but not served, or null for cache misses.
30
22
  */
31
- declare function isrGet(key: string): Promise<ISRCacheEntry | null>;
23
+ export declare function isrGet(key: string): Promise<ISRCacheEntry | null>;
32
24
  /**
33
25
  * Assemble cache-control metadata, omitting the dimensions the producing
34
26
  * render made no claim about. Shared by every ISR writer so `expire`/`stale`
35
27
  * are never invented from `revalidate`.
36
28
  */
37
- declare function isrCacheControl(revalidateSeconds: number | false, claims?: {
29
+ export declare function isrCacheControl(revalidateSeconds: number | false, claims?: {
38
30
  expireSeconds?: number;
39
31
  staleSeconds?: number;
40
32
  }): CacheControlMetadata;
33
+ /**
34
+ * The route-level `expireTime` only bounds a finite revalidate. Like Next.js,
35
+ * a `revalidate = false` entry keeps no expire of its own and stays until it
36
+ * is invalidated; only a cacheLife expire can bound it.
37
+ * https://github.com/vercel/next.js/blob/v16.2.7/packages/next/src/build/index.ts#L3035-L3058
38
+ */
39
+ export declare function resolveRouteExpireSeconds(revalidateSeconds: number | false | null, expireSeconds: number | undefined): number | undefined;
41
40
  /**
42
41
  * Write policy for one ISR entry: the cache metadata the producing render
43
42
  * resolved, plus the tags that can invalidate it. Routers differ only in which
44
43
  * `cacheControl` dimensions they populate — App pages carry the client-router
45
44
  * `stale` bound, Pages Router and route handlers do not.
46
45
  */
47
- type IsrWritePolicy = {
46
+ export type IsrWritePolicy = {
48
47
  cacheControl: CacheControlMetadata;
49
48
  tags?: string[];
50
49
  };
51
50
  /**
52
51
  * Store a value in the ISR cache under the given write policy.
53
52
  */
54
- declare function isrSet(key: string, data: IncrementalCacheValue | null, policy: IsrWritePolicy): Promise<void>;
55
- type AppPageCacheSetter = (key: string, data: CachedAppPageValue, policy: IsrWritePolicy) => Promise<void>;
56
- declare function isrSetPrerenderedAppPage(key: string, data: CachedAppPageValue, metadata: {
53
+ export declare function isrSet(key: string, data: IncrementalCacheValue | null, policy: IsrWritePolicy): Promise<void>;
54
+ export type AppPageCacheSetter = (key: string, data: CachedAppPageValue, policy: IsrWritePolicy) => Promise<void>;
55
+ export declare function isrSetPrerenderedAppPage(key: string, data: CachedAppPageValue, metadata: {
57
56
  expireSeconds?: number;
58
57
  revalidateSeconds?: number;
59
58
  /** Client reuse bound from the prerender's `cacheLife`. */
@@ -68,7 +67,7 @@ declare function isrSetPrerenderedAppPage(key: string, data: CachedAppPageValue,
68
67
  tags?: string[];
69
68
  }): Promise<void>;
70
69
  /** Coalesce same-key synchronous on-demand revalidations. */
71
- declare function coalesceOnDemandRevalidation<T>(key: string, renderFn: () => Promise<T>): Promise<T>;
70
+ export declare function coalesceOnDemandRevalidation<T>(key: string, renderFn: () => Promise<T>): Promise<T>;
72
71
  /**
73
72
  * Trigger a background regeneration for a cache key.
74
73
  *
@@ -81,26 +80,28 @@ declare function coalesceOnDemandRevalidation<T>(key: string, renderFn: () => Pr
81
80
  *
82
81
  * When `errorContext` is provided and the render function fails, the error
83
82
  * is reported via `reportRequestError` (instrumentation hook) with
84
- * `revalidateReason: "stale"`.
83
+ * `revalidateReason: "stale"`, unless `shouldReport` suppresses an error that
84
+ * an inner render boundary already reported.
85
85
  */
86
- declare function triggerBackgroundRegeneration(key: string, renderFn: () => Promise<void>, errorContext?: {
86
+ export declare function triggerBackgroundRegeneration(key: string, renderFn: () => Promise<void>, errorContext?: {
87
87
  routerKind: OnRequestErrorContext["routerKind"];
88
88
  routePath: string;
89
89
  routeType: OnRequestErrorContext["routeType"];
90
+ shouldReport?: (error: unknown) => boolean;
90
91
  }): void;
91
92
  /**
92
93
  * Build a CachedPagesValue for the Pages Router ISR cache.
93
94
  */
94
- declare function buildPagesCacheValue(html: string, pageData: object, status?: number): CachedPagesValue;
95
+ export declare function buildPagesCacheValue(html: string, pageData: object, status?: number): CachedPagesValue;
95
96
  /**
96
97
  * Build a CachedAppPageValue for the App Router ISR cache.
97
98
  */
98
- declare function buildAppPageCacheValue(html: string, rscData?: ArrayBuffer, status?: number, renderObservation?: RenderObservation, headers?: CachedAppPageValue["headers"]): CachedAppPageValue;
99
+ export declare function buildAppPageCacheValue(html: string, rscData?: ArrayBuffer, status?: number, renderObservation?: RenderObservation, headers?: CachedAppPageValue["headers"]): CachedAppPageValue;
99
100
  /**
100
101
  * Compute an ISR cache key for a given router type and pathname.
101
102
  * Long pathnames are hashed to stay within KV key-length limits (512 bytes).
102
103
  */
103
- declare function isrCacheKey(router: string, pathname: string, buildId?: string): string;
104
+ export declare function isrCacheKey(router: string, pathname: string, buildId?: string): string;
104
105
  /**
105
106
  * Compute an App Router ISR key for one cache artifact.
106
107
  *
@@ -108,8 +109,8 @@ declare function isrCacheKey(router: string, pathname: string, buildId?: string)
108
109
  * The suffix mirrors Next.js's separate on-disk app artifacts while keeping the
109
110
  * Cloudflare KV key under its 512-byte limit for long pathnames.
110
111
  */
111
- declare function appIsrCacheKey(pathname: string, suffix: string, buildId?: string | undefined): string;
112
- declare function appIsrHtmlKey(pathname: string): string;
112
+ export declare function appIsrCacheKey(pathname: string, suffix: string, buildId?: string | undefined): string;
113
+ export declare function appIsrHtmlKey(pathname: string): string;
113
114
  /**
114
115
  * Build the ISR cache key for an RSC payload.
115
116
  *
@@ -121,7 +122,7 @@ declare function appIsrHtmlKey(pathname: string): string;
121
122
  * become unreachable after deployment. This is acceptable because ISR entries
122
123
  * have TTLs and will be regenerated on the next request.
123
124
  */
124
- declare function appIsrRscKey(pathname: string, mountedSlotsHeader?: string | null, renderMode?: AppRscRenderMode, interceptionContext?: string | null, interceptionId?: string | null): string;
125
- declare function appIsrRouteKey(pathname: string): string;
125
+ export declare function appIsrRscKey(pathname: string, mountedSlotsHeader?: string | null, renderMode?: AppRscRenderMode, interceptionContext?: string | null, interceptionId?: string | null): string;
126
+ export declare function appIsrRouteKey(pathname: string): string;
126
127
  //#endregion
127
- export { AppPageCacheSetter, ISRCacheEntry, IsrWritePolicy, PRERENDER_REVALIDATE_HEADER, PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER, appIsrCacheKey, appIsrHtmlKey, appIsrRouteKey, appIsrRscKey, buildAppPageCacheValue, buildPagesCacheValue, coalesceOnDemandRevalidation, getRevalidateSecret, isOnDemandRevalidateRequest, isRevalidateSecret, isrCacheControl, isrCacheKey, isrGet, isrSet, isrSetPrerenderedAppPage, normalizeMountedSlotsHeader, triggerBackgroundRegeneration };
128
+ export { PRERENDER_REVALIDATE_HEADER, PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER, getRevalidateSecret, isOnDemandRevalidateRequest, isRevalidateSecret, normalizeMountedSlotsHeader };