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,11 +1,11 @@
1
1
  import path, { toSlash } from "../deps/.pnpm/pathslash@0.1.0/deps/pathslash/dist/index.js";
2
- import { canonicalizeFilePath, isPathInsideOrEqual, stripViteModuleQuery } from "../utils/path.js";
2
+ import { SCRIPT_MODULE_ID_RE, collectBindingNames, forEachAstChild, isIdentifierNamed, scriptParserLanguage } from "./ast-utils.js";
3
3
  import { magicStringTransformResult } from "./transform-result.js";
4
+ import { canonicalizeFilePath, isPathInsideOrEqual, stripViteModuleQuery } from "../utils/path.js";
4
5
  import { VIRTUAL_MODULE_ID_RE } from "../utils/virtual-module.js";
5
- import { SCRIPT_MODULE_ID_RE, collectBindingNames, forEachAstChild, hasRange, isAstRecord, isIdentifierNamed, nodeArray, scriptParserLanguage } from "./ast-utils.js";
6
6
  import fs from "node:fs";
7
- import { parseAst } from "vite";
8
7
  import { fileURLToPath, pathToFileURL } from "node:url";
8
+ import { parseAst } from "vite";
9
9
  import { randomUUID } from "node:crypto";
10
10
  import MagicString from "magic-string";
11
11
  //#region src/plugins/import-meta-url.ts
@@ -372,7 +372,8 @@ function excludedRelativePrefixes(canonicalRoot, options) {
372
372
  "out"
373
373
  ]);
374
374
  for (const outputDir of options.outputDirs ?? []) {
375
- const canonicalOutputDir = canonicalizeFilePath(path.isAbsolute(outputDir) ? outputDir : path.resolve(canonicalRoot, outputDir));
375
+ const absoluteOutputDir = path.isAbsolute(outputDir) ? outputDir : path.resolve(canonicalRoot, outputDir);
376
+ const canonicalOutputDir = canonicalizeFilePath(absoluteOutputDir);
376
377
  if (!isPathInsideOrEqual(canonicalRoot, canonicalOutputDir)) continue;
377
378
  const relativePath = path.relative(canonicalRoot, canonicalOutputDir);
378
379
  if (relativePath && relativePath !== ".") prefixes.add(relativePath);
@@ -389,7 +390,6 @@ function importMetaUrlValue(canonicalId, rootPaths, environment) {
389
390
  function collectImportMetaUrlRanges(ast) {
390
391
  const ranges = [];
391
392
  function visit(value) {
392
- if (!isAstRecord(value)) return;
393
393
  if (isImportMetaUrlNode(value)) {
394
394
  ranges.push({
395
395
  start: value.start,
@@ -405,7 +405,7 @@ function collectImportMetaUrlRanges(ast) {
405
405
  return;
406
406
  }
407
407
  if (isNewUrlExpression(value)) {
408
- const args = nodeArray(value.arguments);
408
+ const args = value.arguments;
409
409
  for (let index = 0; index < args.length; index += 1) {
410
410
  if (index === 1 && isImportMetaUrlBaseNode(args[index])) continue;
411
411
  visit(args[index]);
@@ -441,47 +441,41 @@ function analyzeServerCjsGlobals(ast) {
441
441
  for (const name of names) if (isCjsGlobalName(name)) moduleBindings.add(name);
442
442
  }
443
443
  function recordDirectTopLevelBindings(statement) {
444
- if (statement.declare === true) return;
445
444
  switch (statement.type) {
446
445
  case "ImportDeclaration":
447
- for (const specifier of nodeArray(statement.specifiers)) {
448
- if (!isAstRecord(specifier)) continue;
446
+ if (statement.importKind === "type") return;
447
+ for (const specifier of statement.specifiers) {
448
+ if (specifier.type === "ImportSpecifier" && specifier.importKind === "type") continue;
449
449
  recordBinding(specifier.local);
450
450
  }
451
451
  return;
452
452
  case "VariableDeclaration":
453
- if (statement.kind === "var") return;
454
- for (const declarator of nodeArray(statement.declarations)) {
455
- if (!isAstRecord(declarator) || declarator.type !== "VariableDeclarator") continue;
456
- recordBinding(declarator.id);
457
- }
453
+ if (statement.kind === "var" || statement.declare === true) return;
454
+ for (const declarator of statement.declarations) recordBinding(declarator.id);
458
455
  return;
459
456
  case "FunctionDeclaration":
460
457
  case "ClassDeclaration":
458
+ if (statement.declare === true) return;
461
459
  recordBinding(statement.id);
462
460
  return;
463
461
  case "ExportNamedDeclaration":
464
462
  case "ExportDefaultDeclaration":
465
- if (isAstRecord(statement.declaration)) recordDirectTopLevelBindings(statement.declaration);
463
+ if (statement.declaration) recordDirectTopLevelBindings(statement.declaration);
466
464
  return;
467
465
  }
468
466
  }
469
467
  function recordModuleScopedVarBindings(node) {
470
- if (!isAstRecord(node)) return;
468
+ if (!node) return;
471
469
  switch (node.type) {
472
470
  case "Program":
473
- for (const statement of nodeArray(node.body)) {
474
- if (!isAstRecord(statement)) continue;
471
+ for (const statement of node.body) {
475
472
  recordDirectTopLevelBindings(statement);
476
473
  recordModuleScopedVarBindings(statement);
477
474
  }
478
475
  return;
479
476
  case "VariableDeclaration":
480
477
  if (node.kind !== "var" || node.declare === true) return;
481
- for (const declarator of nodeArray(node.declarations)) {
482
- if (!isAstRecord(declarator) || declarator.type !== "VariableDeclarator") continue;
483
- recordBinding(declarator.id);
484
- }
478
+ for (const declarator of node.declarations) recordBinding(declarator.id);
485
479
  return;
486
480
  case "FunctionDeclaration":
487
481
  case "FunctionExpression":
@@ -493,10 +487,10 @@ function analyzeServerCjsGlobals(ast) {
493
487
  }
494
488
  function moduleScopeChildren(node) {
495
489
  switch (node.type) {
496
- case "BlockStatement": return nodeArray(node.body);
490
+ case "BlockStatement": return node.body;
497
491
  case "IfStatement": return [node.consequent, node.alternate];
498
- case "SwitchStatement": return nodeArray(node.cases);
499
- case "SwitchCase": return nodeArray(node.consequent);
492
+ case "SwitchStatement": return node.cases;
493
+ case "SwitchCase": return node.consequent;
500
494
  case "TryStatement": return [
501
495
  node.block,
502
496
  node.handler,
@@ -516,7 +510,7 @@ function analyzeServerCjsGlobals(ast) {
516
510
  }
517
511
  }
518
512
  function recordReads(value) {
519
- if (!isAstRecord(value)) return;
513
+ if (!value) return;
520
514
  switch (value.type) {
521
515
  case "Identifier":
522
516
  if (isCjsGlobalName(value.name)) reads.add(value.name);
@@ -537,15 +531,13 @@ function analyzeServerCjsGlobals(ast) {
537
531
  case "ImportDeclaration": return;
538
532
  case "ExportAllDeclaration": return;
539
533
  case "ExportNamedDeclaration":
540
- if (isAstRecord(value.declaration)) recordReads(value.declaration);
541
- else if (!value.source) {
542
- for (const specifier of nodeArray(value.specifiers)) if (isAstRecord(specifier)) recordReads(specifier.local);
543
- }
534
+ if (value.declaration) recordReads(value.declaration);
535
+ else if (!value.source) for (const specifier of value.specifiers) recordReads(specifier.local);
544
536
  return;
545
537
  default: forEachAstChild(value, recordReads);
546
538
  }
547
539
  }
548
- if (isAstRecord(ast) && ast.type === "Program") recordModuleScopedVarBindings(ast);
540
+ recordModuleScopedVarBindings(ast);
549
541
  recordReads(ast);
550
542
  return {
551
543
  reads,
@@ -553,33 +545,29 @@ function analyzeServerCjsGlobals(ast) {
553
545
  };
554
546
  }
555
547
  function isImportMetaNode(value) {
556
- return isAstRecord(value) && value.type === "MetaProperty" && isIdentifierNamed(value.meta, "import") && isIdentifierNamed(value.property, "meta");
548
+ return value.type === "MetaProperty" && isIdentifierNamed(value.meta, "import") && isIdentifierNamed(value.property, "meta");
557
549
  }
558
550
  function isImportMetaUrlNode(value) {
559
- return isAstRecord(value) && value.type === "MemberExpression" && hasRange(value) && isImportMetaNode(value.object) && isIdentifierNamed(value.property, "url");
551
+ return value.type === "MemberExpression" && isImportMetaNode(value.object) && isIdentifierNamed(value.property, "url");
560
552
  }
561
553
  function isImportMetaUrlOrChainedNode(value) {
562
554
  if (isImportMetaUrlNode(value)) return true;
563
- return isAstRecord(value) && value.type === "ChainExpression" && isImportMetaUrlNode(value.expression);
555
+ return value.type === "ChainExpression" && isImportMetaUrlNode(value.expression);
564
556
  }
565
557
  function isImportMetaUrlBaseNode(value) {
566
558
  if (isImportMetaUrlOrChainedNode(value)) return true;
567
- return isAstRecord(value) && value.type === "BinaryExpression" && value.operator === "+" && isAstRecord(value.left) && value.left.type === "Literal" && value.left.value === "" && isImportMetaUrlOrChainedNode(value.right);
559
+ return value.type === "BinaryExpression" && value.operator === "+" && value.left.type === "Literal" && value.left.value === "" && isImportMetaUrlOrChainedNode(value.right);
568
560
  }
569
561
  function isChainExpressionWrappingImportMetaUrl(value) {
570
- return isAstRecord(value) && value.type === "ChainExpression" && hasRange(value) && isImportMetaUrlNode(value.expression);
562
+ return value.type === "ChainExpression" && isImportMetaUrlNode(value.expression);
571
563
  }
572
564
  function isNewUrlExpression(value) {
573
565
  return value.type === "NewExpression" && isIdentifierNamed(value.callee, "URL");
574
566
  }
575
567
  function findDirectivePrologueEnd(ast) {
576
- if (!isAstRecord(ast) || ast.type !== "Program") return 0;
577
- let end = 0;
578
- const hashbang = ast.hashbang;
579
- const hashbangEnd = typeof hashbang === "object" && hashbang !== null ? Reflect.get(hashbang, "end") : null;
580
- if (typeof hashbangEnd === "number") end = hashbangEnd;
581
- for (const statement of nodeArray(ast.body)) {
582
- if (!isAstRecord(statement) || statement.type !== "ExpressionStatement" || !isAstRecord(statement.expression) || statement.expression.type !== "Literal" || typeof statement.expression.value !== "string" || typeof statement.end !== "number") break;
568
+ let end = ast.hashbang?.end ?? 0;
569
+ for (const statement of ast.body) {
570
+ if (statement.type !== "ExpressionStatement" || statement.expression.type !== "Literal" || typeof statement.expression.value !== "string") break;
583
571
  end = statement.end;
584
572
  }
585
573
  return end;
@@ -1,5 +1,5 @@
1
1
  import { Plugin } from "vite";
2
2
  //#region src/plugins/instrumentation-client.d.ts
3
- declare function createInstrumentationClientTransformPlugin(getInstrumentationClientPath: () => string | null): Plugin;
4
- //#endregion
5
- export { createInstrumentationClientTransformPlugin };
3
+ export declare function createInstrumentationServerTransformPlugin(getInstrumentationPath: () => string | null, getValues: () => Record<string, unknown>): Plugin;
4
+ export declare function createInstrumentationClientTransformPlugin(getInstrumentationClientPath: () => string | null, getRouteManifest: () => string | undefined): Plugin;
5
+ //#endregion
@@ -1,26 +1,62 @@
1
- import { stripViteModuleQuery } from "../utils/path.js";
2
1
  import { magicStringTransformResult } from "./transform-result.js";
2
+ import { stripViteModuleQuery } from "../utils/path.js";
3
3
  import { normalizePath, parseAst } from "vite";
4
4
  import MagicString from "magic-string";
5
5
  //#region src/plugins/instrumentation-client.ts
6
- function createInstrumentationClientTransformPlugin(getInstrumentationClientPath) {
6
+ function insertionPositionAfterDirectives(code) {
7
+ const ast = parseAst(code);
8
+ let insertPos = 0;
9
+ for (const node of ast.body) {
10
+ if (node.type !== "ExpressionStatement" || node.directive === void 0) break;
11
+ insertPos = node.end;
12
+ }
13
+ return insertPos;
14
+ }
15
+ function createInstrumentationServerTransformPlugin(getInstrumentationPath, getValues) {
16
+ return {
17
+ name: "vinext:instrumentation-server-values",
18
+ applyToEnvironment(environment) {
19
+ return environment.name !== "client";
20
+ },
21
+ transform(code, id) {
22
+ const instrumentationPath = getInstrumentationPath();
23
+ if (!instrumentationPath) return null;
24
+ if (normalizePath(stripViteModuleQuery(id)) !== instrumentationPath) return null;
25
+ const entries = Object.entries(getValues());
26
+ if (entries.length === 0 || code.includes("__vinextInstrumentationServerValues")) return null;
27
+ const assignments = entries.map(([key, value]) => {
28
+ const serialized = JSON.stringify(value);
29
+ return `globalThis[${JSON.stringify(key)}] = ${serialized ?? "undefined"};`;
30
+ }).join("\n");
31
+ const s = new MagicString(code);
32
+ s.appendLeft(insertionPositionAfterDirectives(code), `\n/* __vinextInstrumentationServerValues */\n${assignments}\n`);
33
+ return magicStringTransformResult(s, { hires: true });
34
+ }
35
+ };
36
+ }
37
+ function createInstrumentationClientTransformPlugin(getInstrumentationClientPath, getRouteManifest) {
38
+ let isDev = false;
7
39
  return {
8
40
  name: "vinext:instrumentation-client",
9
- apply: "serve",
41
+ configResolved(config) {
42
+ isDev = config.command === "serve";
43
+ },
10
44
  transform(code, id) {
11
45
  const instrumentationClientPath = getInstrumentationClientPath();
12
46
  if (!instrumentationClientPath) return null;
13
47
  if (normalizePath(stripViteModuleQuery(id)) !== instrumentationClientPath) return null;
14
- if (code.includes("__vinextInstrumentationClientStart")) return null;
15
- const ast = parseAst(code);
16
- let insertPos = 0;
17
- for (const node of ast.body) if (node.type === "ImportDeclaration") insertPos = node.end;
48
+ const routeManifest = getRouteManifest();
49
+ const shouldInjectManifest = routeManifest !== void 0 && !code.includes("globalThis[\"_sentryRouteManifest\"]");
50
+ const shouldInjectDevTimer = isDev && !code.includes("__vinextInstrumentationClientStart");
51
+ if (!shouldInjectManifest && !shouldInjectDevTimer) return null;
52
+ const insertPos = insertionPositionAfterDirectives(code);
18
53
  const s = new MagicString(code);
19
- s.appendLeft(insertPos, "\nconst __vinextInstrumentationClientStart = performance.now();\n");
20
- s.append("\nconst __vinextInstrumentationClientEnd = performance.now();\nconst __vinextInstrumentationClientDuration = __vinextInstrumentationClientEnd - __vinextInstrumentationClientStart;\n// Match Next.js: only report slow client instrumentation during dev.\n// Production should execute the hook without additional timing overhead.\nif (__vinextInstrumentationClientDuration > 16) {\n console.log(`[Client Instrumentation Hook] Slow execution detected: ${__vinextInstrumentationClientDuration.toFixed(0)}ms (Note: Code download overhead is not included in this measurement)`);\n}\n");
54
+ const preamble = [shouldInjectManifest ? `globalThis["_sentryRouteManifest"] = ${JSON.stringify(routeManifest)};` : "", shouldInjectDevTimer ? "const __vinextInstrumentationClientStart = performance.now();" : ""].filter(Boolean).join("\n");
55
+ s.appendLeft(insertPos, `\n${preamble}\n`);
56
+ if (shouldInjectDevTimer) s.append("\nconst __vinextInstrumentationClientEnd = performance.now();\nconst __vinextInstrumentationClientDuration = __vinextInstrumentationClientEnd - __vinextInstrumentationClientStart;\n// Match Next.js: only report slow client instrumentation during dev.\n// Production should execute the hook without additional timing overhead.\nif (__vinextInstrumentationClientDuration > 16) {\n console.log(`[Client Instrumentation Hook] Slow execution detected: ${__vinextInstrumentationClientDuration.toFixed(0)}ms (Note: Code download overhead is not included in this measurement)`);\n}\n");
21
57
  return magicStringTransformResult(s, { hires: true });
22
58
  }
23
59
  };
24
60
  }
25
61
  //#endregion
26
- export { createInstrumentationClientTransformPlugin };
62
+ export { createInstrumentationClientTransformPlugin, createInstrumentationServerTransformPlugin };
@@ -1,5 +1,4 @@
1
1
  //#region src/plugins/middleware-export-validation.d.ts
2
- declare function hasValidMiddlewareModuleExport(source: string, id: string, isProxy: boolean): boolean;
3
- declare function validateMiddlewareModuleExports(source: string, id: string, filePath: string, isProxy: boolean): void;
4
- //#endregion
5
- export { hasValidMiddlewareModuleExport, validateMiddlewareModuleExports };
2
+ export declare function hasValidMiddlewareModuleExport(source: string, id: string, isProxy: boolean): boolean;
3
+ export declare function validateMiddlewareModuleExports(source: string, id: string, filePath: string, isProxy: boolean): void;
4
+ //#endregion
@@ -1,5 +1,5 @@
1
- import { createMiddlewareMissingExportError } from "../server/middleware-runtime.js";
2
1
  import { getAstName, scriptParserLanguage } from "./ast-utils.js";
2
+ import { createMiddlewareMissingExportError } from "../server/middleware-runtime.js";
3
3
  import { parseAst } from "vite";
4
4
  //#region src/plugins/middleware-export-validation.ts
5
5
  function hasValidMiddlewareModuleExport(source, id, isProxy) {
@@ -11,9 +11,9 @@ function hasValidMiddlewareModuleExport(source, id, isProxy) {
11
11
  const declaration = statement.declaration;
12
12
  if (declaration?.type === "FunctionDeclaration" && getAstName(declaration.id) === expectedExport) return true;
13
13
  if (declaration?.type === "VariableDeclaration") {
14
- for (const declarator of declaration.declarations ?? []) if (getAstName(declarator.id) === expectedExport) return true;
14
+ for (const declarator of declaration.declarations) if (getAstName(declarator.id) === expectedExport) return true;
15
15
  }
16
- for (const specifier of statement.specifiers ?? []) if (getAstName(specifier.exported ?? specifier.local) === expectedExport) return true;
16
+ for (const specifier of statement.specifiers) if (getAstName(specifier.exported) === expectedExport) return true;
17
17
  }
18
18
  return false;
19
19
  }
@@ -44,11 +44,10 @@ import { Plugin } from "vite";
44
44
  * `WEBPACK_LAYERS.GROUP.neutralTarget`:
45
45
  * https://github.com/vercel/next.js/blob/canary/packages/next/src/build/webpack-config.ts
46
46
  */
47
- declare function createMiddlewareServerOnlyPlugin(options: {
47
+ export declare function createMiddlewareServerOnlyPlugin(options: {
48
48
  getMiddlewarePath: () => string | null;
49
49
  getCanonicalMiddlewarePath: () => string | null;
50
50
  isNeutralServerModule?: (id: string) => boolean;
51
51
  serverOnlyShimPath: string;
52
52
  }): Plugin;
53
- //#endregion
54
- export { createMiddlewareServerOnlyPlugin };
53
+ //#endregion
@@ -1,10 +1,10 @@
1
1
  import { Alias } from "vite";
2
2
  //#region src/plugins/og-asset-ownership.d.ts
3
- type OgAssetModuleBoundary = {
3
+ export type OgAssetModuleBoundary = {
4
4
  assetRoot: string;
5
5
  moduleDir: string;
6
6
  };
7
- declare class OgAssetOwnership {
7
+ export declare class OgAssetOwnership {
8
8
  private projectRoot;
9
9
  private readonly linkedPackageRoots;
10
10
  private readonly dependencyPackageNames;
@@ -22,5 +22,4 @@ declare class OgAssetOwnership {
22
22
  private resolveAliasPackageRoot;
23
23
  private resolveConfiguredAliasRoot;
24
24
  }
25
- //#endregion
26
- export { OgAssetModuleBoundary, OgAssetOwnership };
25
+ //#endregion
@@ -10,7 +10,7 @@ import { Plugin } from "vite";
10
10
  * correctly inside Cloudflare Workers where `import.meta.url` is not a
11
11
  * valid file URL.
12
12
  */
13
- declare function createOgInlineFetchAssetsPlugin(): Plugin;
13
+ export declare function createOgInlineFetchAssetsPlugin(): Plugin;
14
14
  /**
15
15
  * Copy a single root copy of each requested WASM asset from `sourceDir` into
16
16
  * `outDir`, skipping any asset whose source is missing or whose destination
@@ -21,7 +21,7 @@ declare function createOgInlineFetchAssetsPlugin(): Plugin;
21
21
  * install (whose `yoga.wasm` is only materialized as a side effect of the
22
22
  * `vinext:og-font-patch` transform during a build).
23
23
  */
24
- declare function copyMissingOgWasm(opts: {
24
+ export declare function copyMissingOgWasm(opts: {
25
25
  outDir: string;
26
26
  sourceDir: string;
27
27
  assets: readonly string[];
@@ -44,6 +44,5 @@ declare function copyMissingOgWasm(opts: {
44
44
  * The decision keys off "did the bundler emit this asset?", never the deploy
45
45
  * target — so it helps Node/self-hosted builds as well as Cloudflare Workers.
46
46
  */
47
- declare function createOgAssetsPlugin(): Plugin;
48
- //#endregion
49
- export { copyMissingOgWasm, createOgAssetsPlugin, createOgInlineFetchAssetsPlugin };
47
+ export declare function createOgAssetsPlugin(): Plugin;
48
+ //#endregion
@@ -1,5 +1,6 @@
1
1
  import path from "../deps/.pnpm/pathslash@0.1.0/deps/pathslash/dist/index.js";
2
2
  import { magicStringTransformResult } from "./transform-result.js";
3
+ import { resolveHarfbuzzWasmPath } from "./og-harfbuzz.js";
3
4
  import { OgAssetOwnership } from "./og-asset-ownership.js";
4
5
  import { createRequire } from "node:module";
5
6
  import fs from "node:fs";
@@ -94,7 +95,11 @@ function createOgInlineFetchAssetsPlugin() {
94
95
  }
95
96
  };
96
97
  }
97
- const OG_WASM_ASSETS = ["resvg.wasm", "yoga.wasm"];
98
+ const OG_WASM_ASSETS = [
99
+ "resvg.wasm",
100
+ "yoga.wasm",
101
+ "hb.wasm"
102
+ ];
98
103
  /**
99
104
  * Find an emitted WASM asset in the output bundle whose name corresponds to the
100
105
  * given base file (e.g. base `resvg.wasm` matches the emitted `resvg-HASH.wasm`).
@@ -105,15 +110,20 @@ const OG_WASM_ASSETS = ["resvg.wasm", "yoga.wasm"];
105
110
  *
106
111
  * @returns the emitted asset's `fileName` (relative to outDir), or null.
107
112
  */
108
- function findEmittedWasmAsset(bundle, baseName) {
113
+ function findEmittedWasmAsset(bundle, baseName, expectedSource) {
109
114
  const stem = baseName.replace(/\.wasm$/, "");
110
115
  const re = new RegExp(`^${stem}(?:[-.][\\w-]+)?\\.wasm$`);
111
116
  for (const output of Object.values(bundle)) {
112
117
  if (output.type !== "asset") continue;
113
- if (re.test(path.basename(output.fileName))) return output.fileName;
118
+ if (!re.test(path.basename(output.fileName))) continue;
119
+ if (expectedSource && !isSameBytes(output.source, expectedSource)) continue;
120
+ return output.fileName;
114
121
  }
115
122
  return null;
116
123
  }
124
+ function isSameBytes(source, expected) {
125
+ return source instanceof Uint8Array && Buffer.from(source).equals(expected);
126
+ }
117
127
  /**
118
128
  * Build the regex that matches the Node.js fallback reference
119
129
  * `new URL("./<base>", import.meta.url)` for a given WASM base name.
@@ -162,7 +172,7 @@ function copyMissingOgWasm(opts) {
162
172
  * target — so it helps Node/self-hosted builds as well as Cloudflare Workers.
163
173
  */
164
174
  function createOgAssetsPlugin() {
165
- let dedupedBases = /* @__PURE__ */ new Set();
175
+ const dedupedBasesByEnvironment = /* @__PURE__ */ new Map();
166
176
  return {
167
177
  name: "vinext:og-assets",
168
178
  apply: "build",
@@ -170,17 +180,18 @@ function createOgAssetsPlugin() {
170
180
  generateBundle: {
171
181
  order: "post",
172
182
  handler(_options, bundle) {
173
- if (this.environment?.name !== "rsc") return;
174
- dedupedBases = /* @__PURE__ */ new Set();
183
+ const envName = this.environment?.name;
184
+ if (envName !== "rsc" && envName !== "ssr") return;
185
+ const dedupedBases = /* @__PURE__ */ new Set();
186
+ dedupedBasesByEnvironment.set(envName, dedupedBases);
175
187
  const chunks = Object.values(bundle).filter((o) => o.type === "chunk");
176
188
  for (const base of OG_WASM_ASSETS) {
177
189
  if (!chunks.some((c) => c.code.includes(base))) continue;
178
- const emitted = findEmittedWasmAsset(bundle, base);
179
- if (!emitted) continue;
190
+ const emitted = findEmittedWasmAsset(bundle, base, base === "hb.wasm" ? fs.readFileSync(resolveHarfbuzzWasmPath(createRequire(import.meta.url).resolve("@vercel/og"))) : void 0);
180
191
  for (const chunk of chunks) {
181
192
  const re = fallbackUrlRegex(base);
182
193
  const chunkDir = path.dirname(chunk.fileName);
183
- const rel = path.relative(chunkDir, emitted);
194
+ const rel = path.relative(chunkDir, emitted ?? base);
184
195
  const ref = rel.startsWith(".") ? rel : `./${rel}`;
185
196
  const s = new MagicString(chunk.code);
186
197
  let edited = false;
@@ -197,7 +208,7 @@ function createOgAssetsPlugin() {
197
208
  source: chunk.fileName
198
209
  });
199
210
  }
200
- dedupedBases.add(base);
211
+ if (emitted) dedupedBases.add(base);
201
212
  }
202
213
  }
203
214
  },
@@ -205,18 +216,26 @@ function createOgAssetsPlugin() {
205
216
  sequential: true,
206
217
  order: "post",
207
218
  async handler(options, bundle) {
208
- if (this.environment?.name !== "rsc") return;
219
+ const envName = this.environment?.name;
220
+ if (envName !== "rsc" && envName !== "ssr") return;
209
221
  const outDir = options.dir;
210
222
  if (!outDir) return;
211
223
  const chunkCode = Object.values(bundle).map((output) => output.type === "chunk" ? output.code : "").join("\n");
212
- const referencedAssets = OG_WASM_ASSETS.filter((asset) => chunkCode.includes(asset) && !dedupedBases.has(asset));
224
+ const dedupedBases = dedupedBasesByEnvironment.get(envName);
225
+ dedupedBasesByEnvironment.delete(envName);
226
+ const referencedAssets = OG_WASM_ASSETS.filter((asset) => chunkCode.includes(asset) && !dedupedBases?.has(asset));
213
227
  if (referencedAssets.length === 0) return;
214
228
  try {
215
229
  const ogPkgPath = createRequire(import.meta.url).resolve("@vercel/og/package.json");
216
230
  copyMissingOgWasm({
217
231
  outDir,
218
232
  sourceDir: path.join(path.dirname(ogPkgPath), "dist"),
219
- assets: referencedAssets
233
+ assets: referencedAssets.filter((asset) => asset !== "hb.wasm")
234
+ });
235
+ if (referencedAssets.includes("hb.wasm")) copyMissingOgWasm({
236
+ outDir,
237
+ sourceDir: path.dirname(resolveHarfbuzzWasmPath(ogPkgPath)),
238
+ assets: ["hb.wasm"]
220
239
  });
221
240
  } catch {}
222
241
  }
@@ -0,0 +1,24 @@
1
+ import { Plugin } from "vite";
2
+ //#region src/plugins/og-harfbuzz.d.ts
3
+ /**
4
+ * Resolve the `hb.wasm` binary that matches the glue inlined in @vercel/og.
5
+ * @vercel/og and satori pin exact versions, so resolving through
6
+ * @vercel/og → satori → harfbuzzjs yields the build the bundle was made from.
7
+ */
8
+ export declare function resolveHarfbuzzWasmPath(ogEntry: string): string;
9
+ /**
10
+ * Read every function type in a WASM binary as an Emscripten signature (result
11
+ * letter, or `v` for none, then parameters). Any callback HarfBuzz calls
12
+ * through its function table must have one of these types, so adapters for
13
+ * all of them cover every callback the glue can register.
14
+ */
15
+ export declare function readWasmFunctionSignatures(wasm: Uint8Array): string[];
16
+ /**
17
+ * Build the module Emscripten's `convertJsFunctionToWasm` compiles for a
18
+ * signature: it imports a JavaScript function as `e.f` and re-exports it as
19
+ * `f`. Every section in it is shorter than 128 bytes, so each length and count
20
+ * is a single LEB128 byte.
21
+ */
22
+ export declare function createHarfbuzzCallbackWasm(signature: string): Uint8Array<ArrayBuffer>;
23
+ export declare function createOgHarfbuzzPlugin(): Plugin;
24
+ //#endregion