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
@@ -24,12 +24,12 @@ type SerializeSetCookieOptions = {
24
24
  partitioned?: boolean;
25
25
  priority?: "low" | "medium" | "high";
26
26
  };
27
- declare function validateCookieName(name: string): void;
27
+ export declare function validateCookieName(name: string): void;
28
28
  /**
29
29
  * Validate cookie attribute values (path, domain) to prevent injection
30
30
  * via semicolons, newlines, or other control characters.
31
31
  */
32
- declare function validateCookieAttributeValue(value: string, attributeName: string): void;
32
+ export declare function validateCookieAttributeValue(value: string, attributeName: string): void;
33
33
  /**
34
34
  * Build a Set-Cookie header string from a cookie name, value, and attributes.
35
35
  *
@@ -43,6 +43,5 @@ declare function validateCookieAttributeValue(value: string, attributeName: stri
43
43
  * The caller is responsible for validating the cookie name (typically before
44
44
  * mutating any internal state) via `validateCookieName`.
45
45
  */
46
- declare function serializeSetCookie(name: string, value: string | null | undefined, options?: SerializeSetCookieOptions): string;
47
- //#endregion
48
- export { serializeSetCookie, validateCookieAttributeValue, validateCookieName };
46
+ export declare function serializeSetCookie(name: string, value: string | null | undefined, options?: SerializeSetCookieOptions): string;
47
+ //#endregion
@@ -0,0 +1,7 @@
1
+ import { UrlObject } from "node:url";
2
+ //#region src/shims/internal/format-url-object.d.ts
3
+ /** Format Node's public UrlObject shape with the semantics used by Next.js. */
4
+ export declare function formatUrlObject(url: UrlObject): string;
5
+ /** Format a Pages Router UrlObject and surface Next.js's development diagnostics. */
6
+ export declare function formatUrlObjectWithValidation(url: UrlObject): string;
7
+ //#endregion
@@ -0,0 +1,53 @@
1
+ import { urlQueryToSearchParams } from "../../utils/query.js";
2
+ //#region src/shims/internal/format-url-object.ts
3
+ const slashedProtocols = /https?|ftp|gopher|file/;
4
+ const urlObjectKeys = /* @__PURE__ */ new Set([
5
+ "auth",
6
+ "hash",
7
+ "host",
8
+ "hostname",
9
+ "href",
10
+ "path",
11
+ "pathname",
12
+ "port",
13
+ "protocol",
14
+ "query",
15
+ "search",
16
+ "slashes"
17
+ ]);
18
+ /** Format Node's public UrlObject shape with the semantics used by Next.js. */
19
+ function formatUrlObject(url) {
20
+ let { auth, hostname } = url;
21
+ let protocol = url.protocol || "";
22
+ let pathname = url.pathname || "";
23
+ let hash = url.hash || "";
24
+ let query = url.query || "";
25
+ let host = false;
26
+ auth = auth ? `${encodeURIComponent(auth).replace(/%3A/i, ":")}@` : "";
27
+ if (url.host) host = auth + url.host;
28
+ else if (hostname) {
29
+ host = auth + (hostname.includes(":") ? `[${hostname}]` : hostname);
30
+ if (url.port) host += `:${url.port}`;
31
+ }
32
+ if (query && typeof query === "object") query = String(urlQueryToSearchParams(query));
33
+ let search = url.search || query && `?${query}` || "";
34
+ if (protocol && !protocol.endsWith(":")) protocol += ":";
35
+ if (url.slashes || (!protocol || slashedProtocols.test(protocol)) && host !== false) {
36
+ host = `//${host || ""}`;
37
+ if (pathname && !pathname.startsWith("/")) pathname = `/${pathname}`;
38
+ } else if (!host) host = "";
39
+ if (hash && !hash.startsWith("#")) hash = `#${hash}`;
40
+ if (search && !search.startsWith("?")) search = `?${search}`;
41
+ pathname = pathname.replace(/[?#]/g, encodeURIComponent);
42
+ search = search.replace("#", "%23");
43
+ return `${protocol}${host}${pathname}${search}${hash}`;
44
+ }
45
+ /** Format a Pages Router UrlObject and surface Next.js's development diagnostics. */
46
+ function formatUrlObjectWithValidation(url) {
47
+ if (process.env.NODE_ENV === "development") {
48
+ for (const key of Object.keys(url)) if (!urlObjectKeys.has(key)) console.warn(`Unknown key passed via urlObject into url.format: ${key}`);
49
+ }
50
+ return formatUrlObject(url);
51
+ }
52
+ //#endregion
53
+ export { formatUrlObject, formatUrlObjectWithValidation };
@@ -1,6 +1,6 @@
1
1
  import { VinextLinkPrefetchRoute, VinextPagesLinkPrefetchRoute } from "../../client/vinext-next-data.js";
2
2
  //#region src/shims/internal/hybrid-client-route-owner-direct.d.ts
3
- type HybridClientOwner = "app" | "document" | "pages";
3
+ export type HybridClientOwner = "app" | "document" | "pages";
4
4
  type HybridClientRouteMatches = {
5
5
  appMatch: VinextLinkPrefetchRoute | null;
6
6
  pagesMatch: VinextPagesLinkPrefetchRoute | null;
@@ -11,9 +11,8 @@ declare global {
11
11
  __VINEXT_PAGES_LINK_PREFETCH_ROUTES__?: VinextPagesLinkPrefetchRoute[];
12
12
  }
13
13
  }
14
- declare function resolveSameOriginPathname(href: string, basePath: string): string | null;
15
- declare function matchDirectHybridClientRoutes(href: string, basePath: string): HybridClientRouteMatches;
16
- declare function resolveMatchedHybridClientRouteOwner({ appMatch, pagesMatch }: HybridClientRouteMatches): HybridClientOwner | null;
17
- declare function resolveDirectHybridClientRouteOwner(href: string, basePath: string): HybridClientOwner | null;
18
- //#endregion
19
- export { HybridClientOwner, matchDirectHybridClientRoutes, resolveDirectHybridClientRouteOwner, resolveMatchedHybridClientRouteOwner, resolveSameOriginPathname };
14
+ export declare function resolveSameOriginAppPathname(href: string, basePath: string): string | null;
15
+ export declare function matchDirectHybridClientRoutes(href: string, basePath: string): HybridClientRouteMatches;
16
+ export declare function resolveMatchedHybridClientRouteOwner({ appMatch, pagesMatch }: HybridClientRouteMatches): HybridClientOwner | null;
17
+ export declare function resolveDirectHybridClientRouteOwner(href: string, basePath: string): HybridClientOwner | null;
18
+ //#endregion
@@ -5,10 +5,12 @@ import { getLocalePathPrefix } from "../../utils/domain-locale.js";
5
5
  //#region src/shims/internal/hybrid-client-route-owner-direct.ts
6
6
  const appRouteTrieCache = createRouteTrieCache();
7
7
  const pagesRouteTrieCache = createRouteTrieCache();
8
+ const pagesPageRoutesCache = /* @__PURE__ */ new WeakMap();
9
+ const pagesApiRoutesCache = /* @__PURE__ */ new WeakMap();
8
10
  function patternFromParts(parts) {
9
11
  return "/" + parts.join("/");
10
12
  }
11
- function resolveSameOriginPathname(href, basePath) {
13
+ function resolveSameOriginPathnames(href, basePath) {
12
14
  if (typeof window === "undefined") return null;
13
15
  let url;
14
16
  try {
@@ -17,23 +19,39 @@ function resolveSameOriginPathname(href, basePath) {
17
19
  return null;
18
20
  }
19
21
  if (url.origin !== window.location.origin) return null;
20
- const pathname = stripBasePath(url.pathname, basePath);
21
- const locale = getLocalePathPrefix(pathname, window.__VINEXT_LOCALES__);
22
- if (!locale) return pathname;
23
- const localePrefixLength = locale.length + 1;
24
- return pathname.length === localePrefixLength ? "/" : pathname.slice(localePrefixLength);
22
+ const appPathname = stripBasePath(url.pathname, basePath);
23
+ const locale = getLocalePathPrefix(appPathname, window.__VINEXT_LOCALES__);
24
+ const localePrefixLength = locale ? locale.length + 1 : 0;
25
+ const pagesPathname = !locale ? appPathname : appPathname.length === localePrefixLength ? "/" : appPathname.slice(localePrefixLength);
26
+ return {
27
+ appPathname,
28
+ pagesApiRequest: appPathname === "/api" || appPathname.startsWith("/api/"),
29
+ pagesPathname
30
+ };
31
+ }
32
+ function resolveSameOriginAppPathname(href, basePath) {
33
+ return resolveSameOriginPathnames(href, basePath)?.appPathname ?? null;
34
+ }
35
+ function selectPagesRoutes(routes, apiRequest) {
36
+ const cache = apiRequest ? pagesApiRoutesCache : pagesPageRoutesCache;
37
+ let selected = cache.get(routes);
38
+ if (!selected) {
39
+ selected = routes.filter((route) => Boolean(route.documentOnly) === apiRequest);
40
+ cache.set(routes, selected);
41
+ }
42
+ return selected;
25
43
  }
26
44
  function matchDirectHybridClientRoutes(href, basePath) {
27
- const pathname = resolveSameOriginPathname(href, basePath);
28
- if (pathname === null) return {
45
+ const pathnames = resolveSameOriginPathnames(href, basePath);
46
+ if (pathnames === null) return {
29
47
  appMatch: null,
30
48
  pagesMatch: null
31
49
  };
32
50
  const appRoutes = window.__VINEXT_LINK_PREFETCH_ROUTES__;
33
51
  const pagesRoutes = window.__VINEXT_PAGES_LINK_PREFETCH_ROUTES__;
34
52
  return {
35
- appMatch: appRoutes ? matchRouteWithTrie(pathname, appRoutes, appRouteTrieCache)?.route ?? null : null,
36
- pagesMatch: pagesRoutes ? matchRouteWithTrie(pathname, pagesRoutes, pagesRouteTrieCache)?.route ?? null : null
53
+ appMatch: appRoutes ? matchRouteWithTrie(pathnames.appPathname, appRoutes, appRouteTrieCache)?.route ?? null : null,
54
+ pagesMatch: pagesRoutes ? matchRouteWithTrie(pathnames.pagesPathname, selectPagesRoutes(pagesRoutes, pathnames.pagesApiRequest), pagesRouteTrieCache)?.route ?? null : null
37
55
  };
38
56
  }
39
57
  function resolveMatchedHybridClientRouteOwner({ appMatch, pagesMatch }) {
@@ -48,4 +66,4 @@ function resolveDirectHybridClientRouteOwner(href, basePath) {
48
66
  return resolveMatchedHybridClientRouteOwner(matchDirectHybridClientRoutes(href, basePath));
49
67
  }
50
68
  //#endregion
51
- export { matchDirectHybridClientRoutes, resolveDirectHybridClientRouteOwner, resolveMatchedHybridClientRouteOwner, resolveSameOriginPathname };
69
+ export { matchDirectHybridClientRoutes, resolveDirectHybridClientRouteOwner, resolveMatchedHybridClientRouteOwner, resolveSameOriginAppPathname };
@@ -1,6 +1,6 @@
1
1
  import { HybridClientOwner } from "./hybrid-client-route-owner-direct.js";
2
2
  //#region src/shims/internal/hybrid-client-route-owner.d.ts
3
- declare function resolveHybridClientRewriteHref(href: string, basePath: string): string | null;
3
+ export declare function resolveHybridClientRewriteHref(href: string, basePath: string): string | null;
4
4
  /**
5
5
  * Decide which router should own a soft-navigated URL. Returns:
6
6
  * - "app" → the App Router runtime handles the navigation (RSC fetch).
@@ -13,6 +13,6 @@ declare function resolveHybridClientRewriteHref(href: string, basePath: string):
13
13
  * matcher trie produces the same result the server will see when the
14
14
  * request lands.
15
15
  */
16
- declare function resolveHybridClientRouteOwner(href: string, basePath: string): HybridClientOwner | null;
16
+ export declare function resolveHybridClientRouteOwner(href: string, basePath: string): HybridClientOwner | null;
17
17
  //#endregion
18
- export { type HybridClientOwner, resolveHybridClientRewriteHref, resolveHybridClientRouteOwner };
18
+ export type { HybridClientOwner };
@@ -1,5 +1,5 @@
1
1
  import { parseCookies } from "../../config/request-context.js";
2
- import { matchDirectHybridClientRoutes, resolveMatchedHybridClientRouteOwner, resolveSameOriginPathname } from "./hybrid-client-route-owner-direct.js";
2
+ import { matchDirectHybridClientRoutes, resolveMatchedHybridClientRouteOwner, resolveSameOriginAppPathname } from "./hybrid-client-route-owner-direct.js";
3
3
  import { mergeRewriteQuery } from "../../utils/query.js";
4
4
  import { matchClientRewrite } from "../../client/client-rewrite-matcher.js";
5
5
  //#region src/shims/internal/hybrid-client-route-owner.ts
@@ -28,16 +28,17 @@ function resolveClientRewrite(href, basePath, rewrites, continueAfterMatch = fal
28
28
  let currentHref = href;
29
29
  let matched = false;
30
30
  for (const rewrite of rewrites) {
31
- const pathname = resolveSameOriginPathname(currentHref, basePath);
31
+ const pathname = resolveSameOriginAppPathname(currentHref, basePath);
32
32
  if (pathname === null) return null;
33
33
  const url = new URL(currentHref, window.location.href);
34
34
  const headers = new Headers({ "user-agent": globalThis.navigator?.userAgent ?? "" });
35
- const result = matchClientRewrite(pathname, rewrite, {
35
+ const context = {
36
36
  cookies: parseCookies(globalThis.document?.cookie ?? ""),
37
37
  headers,
38
38
  host: url.hostname,
39
39
  query: url.searchParams
40
- }, basePathState);
40
+ };
41
+ const result = matchClientRewrite(pathname, rewrite, context, basePathState);
41
42
  if (result === null) continue;
42
43
  if (result.kind === "server") return { kind: "document" };
43
44
  currentHref = mergeRewriteQuery(currentHref, result.destination);
@@ -7,13 +7,13 @@ import { UrlQuery } from "../../utils/query.js";
7
7
  type ParsedUrlQuery = {
8
8
  [key: string]: string | string[] | undefined;
9
9
  };
10
- type DynamicRouteHrefProjection = {
10
+ export type DynamicRouteHrefProjection = {
11
11
  href: string;
12
12
  params: string[];
13
13
  query: ParsedUrlQuery;
14
14
  routePathname: string;
15
15
  };
16
- type DynamicRouteHrefResolution = {
16
+ export type DynamicRouteHrefResolution = {
17
17
  /** Route-pattern URL passed to the Pages Router. */
18
18
  href: string;
19
19
  /** Interpolated URL rendered in the anchor and displayed in the browser. */
@@ -25,7 +25,7 @@ type DynamicRouteHrefResolution = {
25
25
  * href (string-form hrefs). A `?` after `#` is part of the fragment, not a
26
26
  * query delimiter.
27
27
  */
28
- declare function interpolateDynamicRouteHref(routeHref: string, asHref: string, queryInput?: UrlQuery): DynamicRouteHrefProjection | null;
28
+ export declare function interpolateDynamicRouteHref(routeHref: string, asHref: string, queryInput?: UrlQuery): DynamicRouteHrefProjection | null;
29
29
  /**
30
30
  * Resolve the two URLs that Next.js' Pages Router derives from a dynamic
31
31
  * href: the original route-pattern URL used to load the page and the
@@ -35,6 +35,5 @@ declare function interpolateDynamicRouteHref(routeHref: string, asHref: string,
35
35
  * Mirrors `resolveHref(router, href, true)` from Next.js:
36
36
  * packages/next/src/client/resolve-href.ts.
37
37
  */
38
- declare function resolveDynamicRouteHref(routeHref: string): DynamicRouteHrefResolution | null;
39
- //#endregion
40
- export { DynamicRouteHrefProjection, DynamicRouteHrefResolution, interpolateDynamicRouteHref, resolveDynamicRouteHref };
38
+ export declare function resolveDynamicRouteHref(routeHref: string): DynamicRouteHrefResolution | null;
39
+ //#endregion
@@ -132,8 +132,10 @@ function getRouteMatcher({ re, groups }) {
132
132
  const params = {};
133
133
  for (const [key, group] of Object.entries(groups)) {
134
134
  const match = routeMatch[group.pos];
135
- if (match !== void 0) if (group.repeat) params[key] = match.split("/").map((entry) => decode(entry));
136
- else params[key] = decode(match);
135
+ if (match !== void 0) {
136
+ if (group.repeat) params[key] = match.split("/").map((entry) => decode(entry));
137
+ else params[key] = decode(match);
138
+ }
137
139
  }
138
140
  return params;
139
141
  };
@@ -16,19 +16,19 @@
16
16
  * React state model: instead of an optimistic-status dispatcher, we hold the
17
17
  * link's `setPending` setter.
18
18
  */
19
- type PendingLinkSetter = (pending: boolean) => void;
19
+ export type PendingLinkSetter = (pending: boolean) => void;
20
20
  /**
21
21
  * Mark `setter` as the link that started the most recent navigation, resetting
22
22
  * the previously-tracked link's pending state to idle so only the last-clicked
23
23
  * link shows a pending state.
24
24
  */
25
- declare function setLinkForCurrentNavigation(setter: PendingLinkSetter): void;
25
+ export declare function setLinkForCurrentNavigation(setter: PendingLinkSetter): void;
26
26
  /**
27
27
  * Stop tracking `setter` if it is the current navigation link. Called when a
28
28
  * <Link> finishes its own navigation or unmounts so we never hold a stale
29
29
  * reference to an unmounted component's setter.
30
30
  */
31
- declare function clearLinkForCurrentNavigation(setter: PendingLinkSetter): void;
31
+ export declare function clearLinkForCurrentNavigation(setter: PendingLinkSetter): void;
32
32
  /**
33
33
  * Reset any link that is currently showing a pending state. Invoked at the
34
34
  * start of every App Router navigation so that navigations not initiated by the
@@ -38,6 +38,5 @@ declare function clearLinkForCurrentNavigation(setter: PendingLinkSetter): void;
38
38
  * `setLinkForCurrentNavigation`; the matching call here consumes that marker and
39
39
  * keeps the link pending.
40
40
  */
41
- declare function notifyLinkNavigationStart(): void;
42
- //#endregion
43
- export { PendingLinkSetter, clearLinkForCurrentNavigation, notifyLinkNavigationStart, setLinkForCurrentNavigation };
41
+ export declare function notifyLinkNavigationStart(): void;
42
+ //#endregion
@@ -10,6 +10,11 @@
10
10
  * Ported from Next.js: packages/next/src/server/dynamic-rendering-utils.ts
11
11
  * https://github.com/vercel/next.js/blob/canary/packages/next/src/server/dynamic-rendering-utils.ts
12
12
  */
13
- declare function makeHangingPromise<T>(signal: AbortSignal, route: string, expression: string): Promise<T>;
14
- //#endregion
15
- export { makeHangingPromise };
13
+ export declare function makeHangingPromise<T>(signal: AbortSignal, route: string, expression: string): Promise<T>;
14
+ /**
15
+ * Keep user-visible suspension promises pending while their owning renderer is
16
+ * aborted after an uncatchable framework bailout. The abort event still reaches
17
+ * renderer-owned listeners; only these promise rejections are suppressed.
18
+ */
19
+ export declare function suppressHangingPromiseAbortRejections(signal: AbortSignal): void;
20
+ //#endregion
@@ -17,9 +17,11 @@ var HangingPromiseRejectionError = class extends Error {
17
17
  }
18
18
  };
19
19
  const abortListenersBySignal = /* @__PURE__ */ new WeakMap();
20
+ const suppressedAbortRejections = /* @__PURE__ */ new WeakSet();
20
21
  function suppressUnhandledRejection() {}
21
22
  function makeHangingPromise(signal, route, expression) {
22
23
  if (signal.aborted) {
24
+ if (suppressedAbortRejections.has(signal)) return new Promise(() => {});
23
25
  const rejected = Promise.reject(new HangingPromiseRejectionError(route, expression));
24
26
  rejected.catch(suppressUnhandledRejection);
25
27
  return rejected;
@@ -32,13 +34,22 @@ function makeHangingPromise(signal, route, expression) {
32
34
  const listeners = [boundRejection];
33
35
  abortListenersBySignal.set(signal, listeners);
34
36
  signal.addEventListener("abort", () => {
35
- for (let i = 0; i < listeners.length; i++) listeners[i]();
37
+ if (!suppressedAbortRejections.has(signal)) for (let i = 0; i < listeners.length; i++) listeners[i]();
36
38
  listeners.length = 0;
39
+ abortListenersBySignal.delete(signal);
37
40
  }, { once: true });
38
41
  }
39
42
  });
40
43
  hangingPromise.catch(suppressUnhandledRejection);
41
44
  return hangingPromise;
42
45
  }
46
+ /**
47
+ * Keep user-visible suspension promises pending while their owning renderer is
48
+ * aborted after an uncatchable framework bailout. The abort event still reaches
49
+ * renderer-owned listeners; only these promise rejections are suppressed.
50
+ */
51
+ function suppressHangingPromiseAbortRejections(signal) {
52
+ suppressedAbortRejections.add(signal);
53
+ }
43
54
  //#endregion
44
- export { makeHangingPromise };
55
+ export { makeHangingPromise, suppressHangingPromiseAbortRejections };
@@ -30,6 +30,5 @@
30
30
  *
31
31
  * @internal
32
32
  */
33
- declare function useUntrackedPathname(): string | null;
34
- //#endregion
35
- export { useUntrackedPathname };
33
+ export declare function useUntrackedPathname(): string | null;
34
+ //#endregion
@@ -0,0 +1,15 @@
1
+ //#region src/shims/internal/normalize-router-href.d.ts
2
+ /**
3
+ * Warn about and normalize repeated path separators like Next.js `resolveHref`.
4
+ * The protocol separator is preserved and query strings are left untouched.
5
+ *
6
+ * Ported from Next.js: packages/next/src/client/resolve-href.ts
7
+ * https://github.com/vercel/next.js/blob/canary/packages/next/src/client/resolve-href.ts
8
+ */
9
+ export declare function normalizeRouterHref(href: string, routePathname: string): string;
10
+ /** Resolve a Pages Router href against the route state used by Next.js Link. */
11
+ export declare function resolvePagesRouterHref(href: string, router: {
12
+ pathname: string;
13
+ asPath: string;
14
+ }, basePath: string): string;
15
+ //#endregion
@@ -0,0 +1,41 @@
1
+ import { hasBasePath } from "../../utils/base-path.js";
2
+ import { getWindowOrigin, isAbsoluteUrl } from "../url-utils.js";
3
+ //#region src/shims/internal/normalize-router-href.ts
4
+ /**
5
+ * Warn about and normalize repeated path separators like Next.js `resolveHref`.
6
+ * The protocol separator is preserved and query strings are left untouched.
7
+ *
8
+ * Ported from Next.js: packages/next/src/client/resolve-href.ts
9
+ * https://github.com/vercel/next.js/blob/canary/packages/next/src/client/resolve-href.ts
10
+ */
11
+ function normalizeRouterHref(href, routePathname) {
12
+ const protocol = href.match(/^[a-z][a-z0-9+.-]*:\/\//i)?.[0] ?? "";
13
+ const withoutProtocol = protocol ? href.slice(protocol.length) : href;
14
+ if (!/(\/\/|\\)/.test(withoutProtocol.split("?", 1)[0] ?? "")) return href;
15
+ console.error(`Invalid href '${href}' passed to next/router in page: '${routePathname}'. Repeated forward-slashes (//) or backslashes \\ are not valid in the href.`);
16
+ const [pathname, ...query] = withoutProtocol.split("?");
17
+ return protocol + pathname.replace(/\\/g, "/").replace(/\/\/+/g, "/") + (query[0] ? `?${query.join("?")}` : "");
18
+ }
19
+ /** Resolve a Pages Router href against the route state used by Next.js Link. */
20
+ function resolvePagesRouterHref(href, router, basePath) {
21
+ const normalized = normalizeRouterHref(href, router.pathname);
22
+ if (isAbsoluteUrl(normalized)) {
23
+ const origin = getWindowOrigin();
24
+ if (!origin) return normalized;
25
+ try {
26
+ const target = new URL(normalized, origin);
27
+ if (target.origin !== origin || basePath !== "" && !hasBasePath(target.pathname, basePath)) return normalized;
28
+ } catch {
29
+ return normalized;
30
+ }
31
+ }
32
+ try {
33
+ const base = new URL(normalized.startsWith("#") || normalized.startsWith("?") ? router.asPath : router.pathname, "http://n");
34
+ const resolved = new URL(normalized, base);
35
+ return resolved.origin === base.origin ? resolved.href.slice(resolved.origin.length) : resolved.href;
36
+ } catch {
37
+ return normalized;
38
+ }
39
+ }
40
+ //#endregion
41
+ export { normalizeRouterHref, resolvePagesRouterHref };
@@ -32,11 +32,11 @@
32
32
  * - The map is module-scoped (one per realm). The Pages Router runs in the
33
33
  * browser only, so a single `Map` is sufficient.
34
34
  */
35
- declare function getPagesStaticDataCache(): Record<string, Promise<Response>>;
36
- declare function fetchCachedPagesData(dataHref: string, init?: RequestInit): Promise<Response>;
37
- declare function fetchStaticPagesData(dataHref: string, init?: RequestInit): Promise<Response>;
38
- declare function fetchUncachedPagesData(dataHref: string, init?: RequestInit): Promise<Response>;
39
- declare function evictPagesDataCache(dataHref: string): void;
35
+ export declare function getPagesStaticDataCache(): Record<string, Promise<Response>>;
36
+ export declare function fetchCachedPagesData(dataHref: string, init?: RequestInit): Promise<Response>;
37
+ export declare function fetchStaticPagesData(dataHref: string, init?: RequestInit): Promise<Response>;
38
+ export declare function fetchUncachedPagesData(dataHref: string, init?: RequestInit): Promise<Response>;
39
+ export declare function evictPagesDataCache(dataHref: string): void;
40
40
  /**
41
41
  * Dedupe a `fetch()` against the `_next/data` endpoint. Multiple concurrent
42
42
  * callers for the same resolved URL and deployment ID share one underlying
@@ -49,11 +49,10 @@ declare function evictPagesDataCache(dataHref: string): void;
49
49
  * Errors propagate to every concurrent caller — the in-flight entry is
50
50
  * dropped on failure so the next navigation can retry.
51
51
  */
52
- declare function dedupedPagesDataFetch(dataHref: string, init?: RequestInit): Promise<Response>;
52
+ export declare function dedupedPagesDataFetch(dataHref: string, init?: RequestInit): Promise<Response>;
53
53
  /**
54
54
  * Drop every cached in-flight entry. Intended for tests; production code
55
55
  * does not need to call this because entries self-evict on settle.
56
56
  */
57
- declare function clearPagesDataInflight(): void;
58
- //#endregion
59
- export { clearPagesDataInflight, dedupedPagesDataFetch, evictPagesDataCache, fetchCachedPagesData, fetchStaticPagesData, fetchUncachedPagesData, getPagesStaticDataCache };
57
+ export declare function clearPagesDataInflight(): void;
58
+ //#endregion
@@ -1,5 +1,5 @@
1
1
  //#region src/shims/internal/pages-data-target.d.ts
2
- type PagesDataTarget = {
2
+ export type PagesDataTarget = {
3
3
  /** Final fetch URL for the data endpoint, including basePath and search. */
4
4
  dataHref: string;
5
5
  /** Locale-qualified data endpoint used by Pages Router prefetch. */
@@ -35,8 +35,11 @@ type PagesDataTarget = {
35
35
  };
36
36
  type PagesDataNavigationTargetOptions = {
37
37
  locale?: string | false;
38
+ /** Force page identity while deriving params and data URLs from browserUrl. */
39
+ routePattern?: string;
38
40
  };
39
- declare function getPagesMiddlewareDataHref(browserUrl: string, basePath: string, options?: PagesDataNavigationTargetOptions): string | null;
41
+ export declare function matchesPagesMiddlewarePath(pathname: string): boolean;
42
+ export declare function getPagesMiddlewareDataHref(browserUrl: string, basePath: string, options?: PagesDataNavigationTargetOptions, routeUrl?: string): string | null;
40
43
  /**
41
44
  * Decide whether the JSON data-endpoint navigation path is usable for this
42
45
  * browser URL. We require:
@@ -60,7 +63,7 @@ declare function getPagesMiddlewareDataHref(browserUrl: string, basePath: string
60
63
  * (`getDataHref`). vinext's equivalent uses an in-memory loader map instead
61
64
  * of Next.js' `_buildManifest.js`.
62
65
  */
63
- declare function resolvePagesDataNavigationTarget(browserUrl: string, basePath: string, options?: PagesDataNavigationTargetOptions): PagesDataTarget | null;
66
+ export declare function resolvePagesDataNavigationTarget(browserUrl: string, basePath: string, options?: PagesDataNavigationTargetOptions): PagesDataTarget | null;
64
67
  /**
65
68
  * Kick off the code-split loader and, for SSG pages, prefetch the data JSON so
66
69
  * the chunk and payload are warm by the time the user clicks.
@@ -74,6 +77,5 @@ declare function resolvePagesDataNavigationTarget(browserUrl: string, basePath:
74
77
  * paying for a second round trip. Errors are swallowed: prefetch is
75
78
  * best-effort and must never break the page.
76
79
  */
77
- declare function prefetchPagesData(target: PagesDataTarget): void;
78
- //#endregion
79
- export { PagesDataTarget, getPagesMiddlewareDataHref, prefetchPagesData, resolvePagesDataNavigationTarget };
80
+ export declare function prefetchPagesData(target: PagesDataTarget): void;
81
+ //#endregion
@@ -1,6 +1,6 @@
1
- import { removeTrailingSlash, stripBasePath } from "../../utils/base-path.js";
2
- import { getLocalePathPrefix } from "../../utils/domain-locale.js";
3
1
  import { isUnknownRecord } from "../../utils/record.js";
2
+ import { stripBasePath } from "../../utils/base-path.js";
3
+ import { getLocalePathPrefix } from "../../utils/domain-locale.js";
4
4
  import { buildPagesDataHref, matchPagesPattern } from "./pages-data-url.js";
5
5
  import { NEXT_DEPLOYMENT_ID_HEADER, getDeploymentId } from "../../utils/deployment-id.js";
6
6
  import { fetchStaticPagesData, fetchUncachedPagesData } from "./pages-data-fetch-dedup.js";
@@ -22,10 +22,9 @@ function hasVinextMiddleware(nextData) {
22
22
  }
23
23
  function isClientMiddlewareMatcherObject(value) {
24
24
  if (!isUnknownRecord(value)) return false;
25
- if (typeof value.source !== "string") return false;
25
+ if (typeof value.regexp !== "string") return false;
26
+ if (value.flags !== void 0 && typeof value.flags !== "string") return false;
26
27
  if (value.locale !== void 0 && value.locale !== false) return false;
27
- if (value.has !== void 0 && !Array.isArray(value.has)) return false;
28
- if (value.missing !== void 0 && !Array.isArray(value.missing)) return false;
29
28
  return true;
30
29
  }
31
30
  function stripLocaleForMiddlewareMatcher(pathname) {
@@ -35,40 +34,28 @@ function stripLocaleForMiddlewareMatcher(pathname) {
35
34
  if (!firstSegment || !locales.includes(firstSegment)) return pathname;
36
35
  return "/" + pathname.split("/").slice(2).join("/");
37
36
  }
38
- function clientMiddlewareSourceMatches(pathname, source) {
39
- if (!/[\\():*+?]/.test(source)) return removeTrailingSlash(pathname) === removeTrailingSlash(source);
40
- if (source.includes("(") || source.includes("\\")) return true;
41
- const sourceParts = source.split("/").filter(Boolean);
42
- const pathParts = pathname.split("/").filter(Boolean);
43
- let pathIndex = 0;
44
- for (const sourcePart of sourceParts) {
45
- if (sourcePart.startsWith(":")) {
46
- if (sourcePart.endsWith("*")) return true;
47
- if (sourcePart.endsWith("+")) return pathIndex < pathParts.length;
48
- if (pathIndex >= pathParts.length) return false;
49
- pathIndex++;
50
- continue;
51
- }
52
- if (pathParts[pathIndex] !== sourcePart) return false;
53
- pathIndex++;
54
- }
55
- return pathIndex === pathParts.length;
37
+ function localeAwareMiddlewarePathname(pathname) {
38
+ const locales = window.__VINEXT_LOCALES__;
39
+ const defaultLocale = window.__VINEXT_DEFAULT_LOCALE__;
40
+ if (!locales?.includes(defaultLocale ?? "") || getLocalePathPrefix(pathname, locales)) return pathname;
41
+ return `/${defaultLocale}${pathname === "/" ? "" : pathname}`;
56
42
  }
57
- function clientMiddlewareMatcherMatches(pathname, matcher) {
43
+ function matchesPagesMiddlewarePath(pathname) {
44
+ const matcher = window.__VINEXT_MIDDLEWARE_MATCHER__;
58
45
  if (matcher === void 0) return true;
59
- if (typeof matcher === "string") return clientMiddlewareSourceMatches(stripLocaleForMiddlewareMatcher(pathname), matcher);
60
46
  if (!Array.isArray(matcher)) return true;
61
47
  for (const item of matcher) {
62
- if (typeof item === "string") {
63
- if (clientMiddlewareSourceMatches(stripLocaleForMiddlewareMatcher(pathname), item)) return true;
64
- continue;
65
- }
66
48
  if (!isClientMiddlewareMatcherObject(item)) return true;
67
- if (clientMiddlewareSourceMatches(item.locale === false ? pathname : stripLocaleForMiddlewareMatcher(pathname), item.source)) return true;
49
+ const candidate = item.locale === false ? localeAwareMiddlewarePathname(pathname) : stripLocaleForMiddlewareMatcher(pathname);
50
+ try {
51
+ if (new RegExp(item.regexp, item.flags).test(candidate)) return true;
52
+ } catch {
53
+ return true;
54
+ }
68
55
  }
69
56
  return false;
70
57
  }
71
- function getPagesMiddlewareDataHref(browserUrl, basePath, options = {}) {
58
+ function getPagesMiddlewareDataHref(browserUrl, basePath, options = {}, routeUrl = browserUrl) {
72
59
  const nextData = window.__NEXT_DATA__;
73
60
  if (!nextData || !hasVinextMiddleware(nextData)) return null;
74
61
  const buildId = nextData.buildId;
@@ -80,12 +67,19 @@ function getPagesMiddlewareDataHref(browserUrl, basePath, options = {}) {
80
67
  return null;
81
68
  }
82
69
  if (parsed.origin !== window.location.origin) return null;
70
+ let routeSearch = parsed.search;
71
+ if (routeUrl !== browserUrl) try {
72
+ routeSearch = new URL(routeUrl, window.location.href).search;
73
+ } catch {
74
+ return null;
75
+ }
83
76
  const pathname = stripBasePath(parsed.pathname, basePath);
84
- if (!clientMiddlewareMatcherMatches(pathname, window.__VINEXT_MIDDLEWARE_MATCHER__)) return null;
77
+ if (!matchesPagesMiddlewarePath(pathname)) return null;
85
78
  const pathnameLocale = getLocalePathPrefix(pathname, window.__VINEXT_LOCALES__);
86
79
  const explicitLocale = options.locale === false ? window.__VINEXT_DEFAULT_LOCALE__ : options.locale;
87
80
  const currentLocale = pathnameLocale ?? explicitLocale ?? window.__VINEXT_LOCALE__;
88
- return buildPagesDataHref(basePath, buildId, pathnameLocale || !currentLocale || !window.__VINEXT_LOCALES__?.includes(currentLocale) ? pathname : `/${currentLocale}${pathname === "/" ? "" : pathname}`, parsed.search);
81
+ const dataPathname = pathnameLocale || !currentLocale || !window.__VINEXT_LOCALES__?.includes(currentLocale) ? pathname : `/${currentLocale}${pathname === "/" ? "" : pathname}`;
82
+ return buildPagesDataHref(basePath, buildId, dataPathname, routeSearch);
89
83
  }
90
84
  /**
91
85
  * Decide whether the JSON data-endpoint navigation path is usable for this
@@ -126,7 +120,8 @@ function resolvePagesDataNavigationTarget(browserUrl, basePath, options = {}) {
126
120
  if (parsed.origin !== window.location.origin) return null;
127
121
  const pagePath = stripBasePath(parsed.pathname, basePath);
128
122
  const locale = getLocalePathPrefix(pagePath, window.__VINEXT_LOCALES__);
129
- const match = matchPagesPattern(locale ? pagePath.slice(locale.length + 1) || "/" : pagePath, patterns);
123
+ const pathForMatch = locale ? pagePath.slice(locale.length + 1) || "/" : pagePath;
124
+ const match = matchPagesPattern(pathForMatch, options.routePattern ? [options.routePattern] : patterns);
130
125
  if (!match) return null;
131
126
  const loader = loaders[match.pattern];
132
127
  if (!loader) return null;
@@ -177,7 +172,8 @@ function prefetchPagesData(target) {
177
172
  const deploymentId = getDeploymentId();
178
173
  if (deploymentId) headers[NEXT_DEPLOYMENT_ID_HEADER] = deploymentId;
179
174
  if (target.dataKind === "static") {
180
- fetchStaticPagesData(target.middlewareDataHref && target.middlewareDataHref !== target.dataHref ? target.middlewareDataHref : target.prefetchDataHref ?? target.middlewareDataHref ?? target.dataHref, { headers }).then(async (response) => {
175
+ const dataHref = target.middlewareDataHref && target.middlewareDataHref !== target.dataHref ? target.middlewareDataHref : target.prefetchDataHref ?? target.middlewareDataHref ?? target.dataHref;
176
+ fetchStaticPagesData(dataHref, { headers }).then(async (response) => {
181
177
  prefetchMiddlewareRewriteLoader(response);
182
178
  await response.arrayBuffer();
183
179
  }).catch(() => {});
@@ -192,4 +188,4 @@ function prefetchMiddlewareRewriteLoader(response) {
192
188
  if (target) target.loader().catch(() => {});
193
189
  }
194
190
  //#endregion
195
- export { getPagesMiddlewareDataHref, prefetchPagesData, resolvePagesDataNavigationTarget };
191
+ export { getPagesMiddlewareDataHref, matchesPagesMiddlewarePath, prefetchPagesData, resolvePagesDataNavigationTarget };