@qzsy/vinext 0.1.7

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 (803) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +773 -0
  3. package/dist/build/assets-ignore.d.ts +32 -0
  4. package/dist/build/assets-ignore.js +48 -0
  5. package/dist/build/clean-output.d.ts +13 -0
  6. package/dist/build/clean-output.js +34 -0
  7. package/dist/build/client-build-config.d.ts +171 -0
  8. package/dist/build/client-build-config.js +270 -0
  9. package/dist/build/css-url-assets.d.ts +29 -0
  10. package/dist/build/css-url-assets.js +213 -0
  11. package/dist/build/google-fonts/build-url.d.ts +9 -0
  12. package/dist/build/google-fonts/build-url.js +28 -0
  13. package/dist/build/google-fonts/fallback-metrics-data.js +14029 -0
  14. package/dist/build/google-fonts/fallback-metrics.d.ts +12 -0
  15. package/dist/build/google-fonts/fallback-metrics.js +44 -0
  16. package/dist/build/google-fonts/find-font-files-in-css.d.ts +16 -0
  17. package/dist/build/google-fonts/find-font-files-in-css.js +28 -0
  18. package/dist/build/google-fonts/font-data.js +24983 -0
  19. package/dist/build/google-fonts/font-metadata.d.ts +16 -0
  20. package/dist/build/google-fonts/font-metadata.js +5 -0
  21. package/dist/build/google-fonts/get-axes.d.ts +6 -0
  22. package/dist/build/google-fonts/get-axes.js +37 -0
  23. package/dist/build/google-fonts/sort-variants.d.ts +4 -0
  24. package/dist/build/google-fonts/sort-variants.js +12 -0
  25. package/dist/build/google-fonts/validate.d.ts +27 -0
  26. package/dist/build/google-fonts/validate.js +54 -0
  27. package/dist/build/inline-css.d.ts +6 -0
  28. package/dist/build/inline-css.js +48 -0
  29. package/dist/build/layout-classification-types.d.ts +61 -0
  30. package/dist/build/layout-classification-types.js +1 -0
  31. package/dist/build/layout-classification.d.ts +59 -0
  32. package/dist/build/layout-classification.js +98 -0
  33. package/dist/build/next-client-runtime-manifests.d.ts +14 -0
  34. package/dist/build/next-client-runtime-manifests.js +39 -0
  35. package/dist/build/nitro-route-rules.d.ts +49 -0
  36. package/dist/build/nitro-route-rules.js +79 -0
  37. package/dist/build/precompress.d.ts +27 -0
  38. package/dist/build/precompress.js +110 -0
  39. package/dist/build/prerender.d.ts +209 -0
  40. package/dist/build/prerender.js +932 -0
  41. package/dist/build/report.d.ts +132 -0
  42. package/dist/build/report.js +504 -0
  43. package/dist/build/route-classification-injector.d.ts +34 -0
  44. package/dist/build/route-classification-injector.js +59 -0
  45. package/dist/build/route-classification-manifest.d.ts +52 -0
  46. package/dist/build/route-classification-manifest.js +143 -0
  47. package/dist/build/run-prerender.d.ts +61 -0
  48. package/dist/build/run-prerender.js +224 -0
  49. package/dist/build/server-manifest.d.ts +18 -0
  50. package/dist/build/server-manifest.js +22 -0
  51. package/dist/build/ssr-manifest.d.ts +18 -0
  52. package/dist/build/ssr-manifest.js +69 -0
  53. package/dist/build/standalone.d.ts +31 -0
  54. package/dist/build/standalone.js +203 -0
  55. package/dist/build/static-export.d.ts +55 -0
  56. package/dist/build/static-export.js +60 -0
  57. package/dist/cache/cache-adapters-virtual.d.ts +50 -0
  58. package/dist/cache/cache-adapters-virtual.js +45 -0
  59. package/dist/cache.d.ts +2 -0
  60. package/dist/cache.js +2 -0
  61. package/dist/check.d.ts +87 -0
  62. package/dist/check.js +1037 -0
  63. package/dist/cli-args.d.ts +33 -0
  64. package/dist/cli-args.js +124 -0
  65. package/dist/cli.d.ts +1 -0
  66. package/dist/cli.js +744 -0
  67. package/dist/client/app-nav-failure-handler.d.ts +8 -0
  68. package/dist/client/app-nav-failure-handler.js +44 -0
  69. package/dist/client/empty-module.d.ts +1 -0
  70. package/dist/client/empty-module.js +1 -0
  71. package/dist/client/instrumentation-client-inject.d.ts +33 -0
  72. package/dist/client/instrumentation-client-inject.js +55 -0
  73. package/dist/client/instrumentation-client-state.d.ts +9 -0
  74. package/dist/client/instrumentation-client-state.js +17 -0
  75. package/dist/client/instrumentation-client.d.ts +7 -0
  76. package/dist/client/instrumentation-client.js +6 -0
  77. package/dist/client/navigation-runtime.d.ts +70 -0
  78. package/dist/client/navigation-runtime.js +169 -0
  79. package/dist/client/pages-router-link-navigation.d.ts +61 -0
  80. package/dist/client/pages-router-link-navigation.js +42 -0
  81. package/dist/client/validate-module-path.d.ts +17 -0
  82. package/dist/client/validate-module-path.js +24 -0
  83. package/dist/client/vinext-next-data.d.ts +44 -0
  84. package/dist/client/vinext-next-data.js +50 -0
  85. package/dist/client/window-next.d.ts +168 -0
  86. package/dist/client/window-next.js +57 -0
  87. package/dist/cloudflare/index.d.ts +3 -0
  88. package/dist/cloudflare/index.js +3 -0
  89. package/dist/cloudflare/src/cache/cdn-adapter.runtime.js +102 -0
  90. package/dist/cloudflare/src/cache/kv-data-adapter.runtime.d.ts +126 -0
  91. package/dist/cloudflare/src/cache/kv-data-adapter.runtime.js +435 -0
  92. package/dist/cloudflare/src/utils/cache-control-metadata.js +20 -0
  93. package/dist/cloudflare/tpr.d.ts +82 -0
  94. package/dist/cloudflare/tpr.js +558 -0
  95. package/dist/config/config-matchers.d.ts +257 -0
  96. package/dist/config/config-matchers.js +1046 -0
  97. package/dist/config/dotenv.d.ts +56 -0
  98. package/dist/config/dotenv.js +88 -0
  99. package/dist/config/next-config.d.ts +540 -0
  100. package/dist/config/next-config.js +1050 -0
  101. package/dist/config/tsconfig-paths.d.ts +21 -0
  102. package/dist/config/tsconfig-paths.js +157 -0
  103. package/dist/deploy.d.ts +190 -0
  104. package/dist/deploy.js +1033 -0
  105. package/dist/entries/app-browser-entry.d.ts +29 -0
  106. package/dist/entries/app-browser-entry.js +83 -0
  107. package/dist/entries/app-rsc-entry.d.ts +81 -0
  108. package/dist/entries/app-rsc-entry.js +943 -0
  109. package/dist/entries/app-rsc-manifest.d.ts +53 -0
  110. package/dist/entries/app-rsc-manifest.js +294 -0
  111. package/dist/entries/app-ssr-entry.d.ts +15 -0
  112. package/dist/entries/app-ssr-entry.js +24 -0
  113. package/dist/entries/pages-client-entry.d.ts +11 -0
  114. package/dist/entries/pages-client-entry.js +204 -0
  115. package/dist/entries/pages-entry-helpers.d.ts +2 -0
  116. package/dist/entries/pages-entry-helpers.js +2 -0
  117. package/dist/entries/pages-server-entry.d.ts +11 -0
  118. package/dist/entries/pages-server-entry.js +398 -0
  119. package/dist/entries/runtime-entry-module.d.ts +25 -0
  120. package/dist/entries/runtime-entry-module.js +46 -0
  121. package/dist/index.d.ts +115 -0
  122. package/dist/index.js +2661 -0
  123. package/dist/init.d.ts +69 -0
  124. package/dist/init.js +253 -0
  125. package/dist/plugins/ast-utils.d.ts +20 -0
  126. package/dist/plugins/ast-utils.js +78 -0
  127. package/dist/plugins/async-hooks-stub.d.ts +18 -0
  128. package/dist/plugins/async-hooks-stub.js +40 -0
  129. package/dist/plugins/client-reference-dedup.d.ts +35 -0
  130. package/dist/plugins/client-reference-dedup.js +189 -0
  131. package/dist/plugins/css-data-url.d.ts +6 -0
  132. package/dist/plugins/css-data-url.js +83 -0
  133. package/dist/plugins/dynamic-preload-metadata.d.ts +13 -0
  134. package/dist/plugins/dynamic-preload-metadata.js +413 -0
  135. package/dist/plugins/extensionless-dynamic-import.d.ts +6 -0
  136. package/dist/plugins/extensionless-dynamic-import.js +155 -0
  137. package/dist/plugins/fonts.d.ts +95 -0
  138. package/dist/plugins/fonts.js +711 -0
  139. package/dist/plugins/import-meta-url.d.ts +16 -0
  140. package/dist/plugins/import-meta-url.js +353 -0
  141. package/dist/plugins/instrumentation-client.d.ts +6 -0
  142. package/dist/plugins/instrumentation-client.js +27 -0
  143. package/dist/plugins/middleware-export-validation.d.ts +5 -0
  144. package/dist/plugins/middleware-export-validation.js +36 -0
  145. package/dist/plugins/middleware-server-only.d.ts +53 -0
  146. package/dist/plugins/middleware-server-only.js +90 -0
  147. package/dist/plugins/og-asset-ownership.d.ts +27 -0
  148. package/dist/plugins/og-asset-ownership.js +285 -0
  149. package/dist/plugins/og-assets.d.ts +50 -0
  150. package/dist/plugins/og-assets.js +229 -0
  151. package/dist/plugins/optimize-imports.d.ts +42 -0
  152. package/dist/plugins/optimize-imports.js +587 -0
  153. package/dist/plugins/postcss.d.ts +26 -0
  154. package/dist/plugins/postcss.js +96 -0
  155. package/dist/plugins/remove-console.d.ts +21 -0
  156. package/dist/plugins/remove-console.js +177 -0
  157. package/dist/plugins/require-context.d.ts +6 -0
  158. package/dist/plugins/require-context.js +185 -0
  159. package/dist/plugins/rsc-client-reference-loaders.d.ts +6 -0
  160. package/dist/plugins/rsc-client-reference-loaders.js +46 -0
  161. package/dist/plugins/rsc-client-shim-excludes.d.ts +6 -0
  162. package/dist/plugins/rsc-client-shim-excludes.js +35 -0
  163. package/dist/plugins/sass.d.ts +62 -0
  164. package/dist/plugins/sass.js +268 -0
  165. package/dist/plugins/server-externals-manifest.d.ts +26 -0
  166. package/dist/plugins/server-externals-manifest.js +81 -0
  167. package/dist/plugins/strip-server-exports.d.ts +21 -0
  168. package/dist/plugins/strip-server-exports.js +519 -0
  169. package/dist/plugins/typeof-window.d.ts +14 -0
  170. package/dist/plugins/typeof-window.js +150 -0
  171. package/dist/plugins/wasm-module-import.d.ts +15 -0
  172. package/dist/plugins/wasm-module-import.js +50 -0
  173. package/dist/routing/app-route-graph.d.ts +336 -0
  174. package/dist/routing/app-route-graph.js +1518 -0
  175. package/dist/routing/app-router.d.ts +30 -0
  176. package/dist/routing/app-router.js +59 -0
  177. package/dist/routing/file-matcher.d.ts +60 -0
  178. package/dist/routing/file-matcher.js +147 -0
  179. package/dist/routing/pages-router.d.ts +48 -0
  180. package/dist/routing/pages-router.js +163 -0
  181. package/dist/routing/route-matching.d.ts +27 -0
  182. package/dist/routing/route-matching.js +42 -0
  183. package/dist/routing/route-pattern.d.ts +64 -0
  184. package/dist/routing/route-pattern.js +165 -0
  185. package/dist/routing/route-trie.d.ts +67 -0
  186. package/dist/routing/route-trie.js +143 -0
  187. package/dist/routing/route-validation.d.ts +10 -0
  188. package/dist/routing/route-validation.js +101 -0
  189. package/dist/routing/utils.d.ts +117 -0
  190. package/dist/routing/utils.js +242 -0
  191. package/dist/server/accept-encoding.d.ts +29 -0
  192. package/dist/server/accept-encoding.js +95 -0
  193. package/dist/server/api-handler.d.ts +17 -0
  194. package/dist/server/api-handler.js +276 -0
  195. package/dist/server/app-action-request.d.ts +4 -0
  196. package/dist/server/app-action-request.js +9 -0
  197. package/dist/server/app-bfcache-id.d.ts +5 -0
  198. package/dist/server/app-bfcache-id.js +5 -0
  199. package/dist/server/app-bfcache-identity.d.ts +36 -0
  200. package/dist/server/app-bfcache-identity.js +156 -0
  201. package/dist/server/app-browser-action-result.d.ts +64 -0
  202. package/dist/server/app-browser-action-result.js +111 -0
  203. package/dist/server/app-browser-client-reuse-manifest.d.ts +12 -0
  204. package/dist/server/app-browser-client-reuse-manifest.js +101 -0
  205. package/dist/server/app-browser-entry.d.ts +1 -0
  206. package/dist/server/app-browser-entry.js +1087 -0
  207. package/dist/server/app-browser-error.d.ts +13 -0
  208. package/dist/server/app-browser-error.js +52 -0
  209. package/dist/server/app-browser-history-controller.d.ts +104 -0
  210. package/dist/server/app-browser-history-controller.js +210 -0
  211. package/dist/server/app-browser-hydration.d.ts +32 -0
  212. package/dist/server/app-browser-hydration.js +29 -0
  213. package/dist/server/app-browser-interception-context.d.ts +24 -0
  214. package/dist/server/app-browser-interception-context.js +43 -0
  215. package/dist/server/app-browser-mpa-navigation.d.ts +16 -0
  216. package/dist/server/app-browser-mpa-navigation.js +42 -0
  217. package/dist/server/app-browser-navigation-controller.d.ts +109 -0
  218. package/dist/server/app-browser-navigation-controller.js +465 -0
  219. package/dist/server/app-browser-popstate.d.ts +26 -0
  220. package/dist/server/app-browser-popstate.js +44 -0
  221. package/dist/server/app-browser-rsc-redirect.d.ts +38 -0
  222. package/dist/server/app-browser-rsc-redirect.js +64 -0
  223. package/dist/server/app-browser-server-action-client.d.ts +32 -0
  224. package/dist/server/app-browser-server-action-client.js +128 -0
  225. package/dist/server/app-browser-server-action-navigation.d.ts +6 -0
  226. package/dist/server/app-browser-server-action-navigation.js +9 -0
  227. package/dist/server/app-browser-state.d.ts +140 -0
  228. package/dist/server/app-browser-state.js +315 -0
  229. package/dist/server/app-browser-stream.d.ts +28 -0
  230. package/dist/server/app-browser-stream.js +122 -0
  231. package/dist/server/app-browser-visible-commit.d.ts +78 -0
  232. package/dist/server/app-browser-visible-commit.js +241 -0
  233. package/dist/server/app-client-reference-preloader.d.ts +14 -0
  234. package/dist/server/app-client-reference-preloader.js +44 -0
  235. package/dist/server/app-elements-wire.d.ts +192 -0
  236. package/dist/server/app-elements-wire.js +443 -0
  237. package/dist/server/app-elements.d.ts +9 -0
  238. package/dist/server/app-elements.js +18 -0
  239. package/dist/server/app-fallback-renderer.d.ts +89 -0
  240. package/dist/server/app-fallback-renderer.js +136 -0
  241. package/dist/server/app-history-state.d.ts +85 -0
  242. package/dist/server/app-history-state.js +223 -0
  243. package/dist/server/app-hook-warning-suppression.d.ts +6 -0
  244. package/dist/server/app-hook-warning-suppression.js +10 -0
  245. package/dist/server/app-inline-css-client.d.ts +6 -0
  246. package/dist/server/app-inline-css-client.js +35 -0
  247. package/dist/server/app-interception-context-header.d.ts +32 -0
  248. package/dist/server/app-interception-context-header.js +42 -0
  249. package/dist/server/app-layout-param-observation.d.ts +43 -0
  250. package/dist/server/app-layout-param-observation.js +168 -0
  251. package/dist/server/app-middleware.d.ts +46 -0
  252. package/dist/server/app-middleware.js +168 -0
  253. package/dist/server/app-mounted-slots-header.d.ts +35 -0
  254. package/dist/server/app-mounted-slots-header.js +58 -0
  255. package/dist/server/app-optimistic-routing.d.ts +53 -0
  256. package/dist/server/app-optimistic-routing.js +227 -0
  257. package/dist/server/app-page-boundary-render.d.ts +85 -0
  258. package/dist/server/app-page-boundary-render.js +305 -0
  259. package/dist/server/app-page-boundary.d.ts +102 -0
  260. package/dist/server/app-page-boundary.js +120 -0
  261. package/dist/server/app-page-cache-finalizer.d.ts +62 -0
  262. package/dist/server/app-page-cache-finalizer.js +122 -0
  263. package/dist/server/app-page-cache-render.d.ts +53 -0
  264. package/dist/server/app-page-cache-render.js +91 -0
  265. package/dist/server/app-page-cache.d.ts +83 -0
  266. package/dist/server/app-page-cache.js +272 -0
  267. package/dist/server/app-page-dispatch.d.ts +223 -0
  268. package/dist/server/app-page-dispatch.js +610 -0
  269. package/dist/server/app-page-element-builder.d.ts +96 -0
  270. package/dist/server/app-page-element-builder.js +205 -0
  271. package/dist/server/app-page-execution.d.ts +138 -0
  272. package/dist/server/app-page-execution.js +328 -0
  273. package/dist/server/app-page-head.d.ts +65 -0
  274. package/dist/server/app-page-head.js +228 -0
  275. package/dist/server/app-page-method.d.ts +15 -0
  276. package/dist/server/app-page-method.js +25 -0
  277. package/dist/server/app-page-params.d.ts +8 -0
  278. package/dist/server/app-page-params.js +39 -0
  279. package/dist/server/app-page-ppr-runtime.d.ts +7 -0
  280. package/dist/server/app-page-ppr-runtime.js +70 -0
  281. package/dist/server/app-page-probe.d.ts +134 -0
  282. package/dist/server/app-page-probe.js +276 -0
  283. package/dist/server/app-page-render-identity.d.ts +21 -0
  284. package/dist/server/app-page-render-identity.js +40 -0
  285. package/dist/server/app-page-render-observation.d.ts +36 -0
  286. package/dist/server/app-page-render-observation.js +82 -0
  287. package/dist/server/app-page-render.d.ts +111 -0
  288. package/dist/server/app-page-render.js +602 -0
  289. package/dist/server/app-page-request.d.ts +137 -0
  290. package/dist/server/app-page-request.js +216 -0
  291. package/dist/server/app-page-response.d.ts +68 -0
  292. package/dist/server/app-page-response.js +120 -0
  293. package/dist/server/app-page-route-wiring.d.ts +151 -0
  294. package/dist/server/app-page-route-wiring.js +452 -0
  295. package/dist/server/app-page-search-params-observation.d.ts +10 -0
  296. package/dist/server/app-page-search-params-observation.js +20 -0
  297. package/dist/server/app-page-segment-state.d.ts +9 -0
  298. package/dist/server/app-page-segment-state.js +80 -0
  299. package/dist/server/app-page-stream.d.ts +151 -0
  300. package/dist/server/app-page-stream.js +143 -0
  301. package/dist/server/app-pages-bridge.d.ts +63 -0
  302. package/dist/server/app-pages-bridge.js +63 -0
  303. package/dist/server/app-post-middleware-context.d.ts +15 -0
  304. package/dist/server/app-post-middleware-context.js +26 -0
  305. package/dist/server/app-ppr-fallback-shell-render.d.ts +18 -0
  306. package/dist/server/app-ppr-fallback-shell-render.js +26 -0
  307. package/dist/server/app-ppr-fallback-shell.d.ts +33 -0
  308. package/dist/server/app-ppr-fallback-shell.js +89 -0
  309. package/dist/server/app-prerender-endpoints.d.ts +18 -0
  310. package/dist/server/app-prerender-endpoints.js +94 -0
  311. package/dist/server/app-prerender-static-params.d.ts +30 -0
  312. package/dist/server/app-prerender-static-params.js +81 -0
  313. package/dist/server/app-render-dependency.d.ts +14 -0
  314. package/dist/server/app-render-dependency.js +41 -0
  315. package/dist/server/app-request-context.d.ts +20 -0
  316. package/dist/server/app-request-context.js +29 -0
  317. package/dist/server/app-route-handler-cache.d.ts +46 -0
  318. package/dist/server/app-route-handler-cache.js +78 -0
  319. package/dist/server/app-route-handler-dispatch.d.ts +49 -0
  320. package/dist/server/app-route-handler-dispatch.js +163 -0
  321. package/dist/server/app-route-handler-execution.d.ts +86 -0
  322. package/dist/server/app-route-handler-execution.js +128 -0
  323. package/dist/server/app-route-handler-policy.d.ts +55 -0
  324. package/dist/server/app-route-handler-policy.js +58 -0
  325. package/dist/server/app-route-handler-response.d.ts +28 -0
  326. package/dist/server/app-route-handler-response.js +145 -0
  327. package/dist/server/app-route-handler-runtime.d.ts +39 -0
  328. package/dist/server/app-route-handler-runtime.js +250 -0
  329. package/dist/server/app-route-module-loader.d.ts +91 -0
  330. package/dist/server/app-route-module-loader.js +83 -0
  331. package/dist/server/app-router-entry.d.ts +13 -0
  332. package/dist/server/app-router-entry.js +49 -0
  333. package/dist/server/app-rsc-cache-busting.d.ts +64 -0
  334. package/dist/server/app-rsc-cache-busting.js +206 -0
  335. package/dist/server/app-rsc-embedded-chunks.d.ts +8 -0
  336. package/dist/server/app-rsc-embedded-chunks.js +32 -0
  337. package/dist/server/app-rsc-error-handler.d.ts +20 -0
  338. package/dist/server/app-rsc-error-handler.js +28 -0
  339. package/dist/server/app-rsc-errors.d.ts +40 -0
  340. package/dist/server/app-rsc-errors.js +60 -0
  341. package/dist/server/app-rsc-handler.d.ts +201 -0
  342. package/dist/server/app-rsc-handler.js +538 -0
  343. package/dist/server/app-rsc-render-mode.d.ts +11 -0
  344. package/dist/server/app-rsc-render-mode.js +25 -0
  345. package/dist/server/app-rsc-request-normalization.d.ts +48 -0
  346. package/dist/server/app-rsc-request-normalization.js +75 -0
  347. package/dist/server/app-rsc-response-finalizer.d.ts +37 -0
  348. package/dist/server/app-rsc-response-finalizer.js +54 -0
  349. package/dist/server/app-rsc-route-matching.d.ts +93 -0
  350. package/dist/server/app-rsc-route-matching.js +134 -0
  351. package/dist/server/app-segment-config.d.ts +46 -0
  352. package/dist/server/app-segment-config.js +113 -0
  353. package/dist/server/app-server-action-execution.d.ts +219 -0
  354. package/dist/server/app-server-action-execution.js +767 -0
  355. package/dist/server/app-ssr-entry.d.ts +52 -0
  356. package/dist/server/app-ssr-entry.js +295 -0
  357. package/dist/server/app-ssr-error-meta.d.ts +13 -0
  358. package/dist/server/app-ssr-error-meta.js +48 -0
  359. package/dist/server/app-ssr-router-instance.d.ts +6 -0
  360. package/dist/server/app-ssr-router-instance.js +24 -0
  361. package/dist/server/app-ssr-stream.d.ts +60 -0
  362. package/dist/server/app-ssr-stream.js +408 -0
  363. package/dist/server/app-static-generation.d.ts +15 -0
  364. package/dist/server/app-static-generation.js +19 -0
  365. package/dist/server/app-visited-response-cache.d.ts +23 -0
  366. package/dist/server/app-visited-response-cache.js +19 -0
  367. package/dist/server/artifact-compatibility.d.ts +54 -0
  368. package/dist/server/artifact-compatibility.js +91 -0
  369. package/dist/server/before-interactive-head.d.ts +17 -0
  370. package/dist/server/before-interactive-head.js +35 -0
  371. package/dist/server/cache-control.d.ts +37 -0
  372. package/dist/server/cache-control.js +56 -0
  373. package/dist/server/cache-headers.d.ts +6 -0
  374. package/dist/server/cache-headers.js +17 -0
  375. package/dist/server/cache-proof.d.ts +364 -0
  376. package/dist/server/cache-proof.js +794 -0
  377. package/dist/server/client-reuse-manifest.d.ts +104 -0
  378. package/dist/server/client-reuse-manifest.js +209 -0
  379. package/dist/server/client-trace-metadata.d.ts +30 -0
  380. package/dist/server/client-trace-metadata.js +81 -0
  381. package/dist/server/cookie-utils.d.ts +12 -0
  382. package/dist/server/cookie-utils.js +18 -0
  383. package/dist/server/csp.d.ts +10 -0
  384. package/dist/server/csp.js +41 -0
  385. package/dist/server/default-global-error-module.d.ts +19 -0
  386. package/dist/server/default-global-error-module.js +18 -0
  387. package/dist/server/default-not-found-module.d.ts +19 -0
  388. package/dist/server/default-not-found-module.js +18 -0
  389. package/dist/server/defer-until-stream-consumed.d.ts +7 -0
  390. package/dist/server/defer-until-stream-consumed.js +34 -0
  391. package/dist/server/dev-error-overlay-store.d.ts +39 -0
  392. package/dist/server/dev-error-overlay-store.js +86 -0
  393. package/dist/server/dev-error-overlay.d.ts +51 -0
  394. package/dist/server/dev-error-overlay.js +1341 -0
  395. package/dist/server/dev-initial-server-error.d.ts +9 -0
  396. package/dist/server/dev-initial-server-error.js +26 -0
  397. package/dist/server/dev-lockfile.d.ts +109 -0
  398. package/dist/server/dev-lockfile.js +179 -0
  399. package/dist/server/dev-module-runner.d.ts +30 -0
  400. package/dist/server/dev-module-runner.js +91 -0
  401. package/dist/server/dev-origin-check.d.ts +62 -0
  402. package/dist/server/dev-origin-check.js +156 -0
  403. package/dist/server/dev-route-files.d.ts +6 -0
  404. package/dist/server/dev-route-files.js +71 -0
  405. package/dist/server/dev-server.d.ts +58 -0
  406. package/dist/server/dev-server.js +1114 -0
  407. package/dist/server/dev-stack-sourcemap-endpoint.d.ts +4 -0
  408. package/dist/server/dev-stack-sourcemap-endpoint.js +4 -0
  409. package/dist/server/dev-stack-sourcemap.d.ts +43 -0
  410. package/dist/server/dev-stack-sourcemap.js +443 -0
  411. package/dist/server/document-initial-head.d.ts +6 -0
  412. package/dist/server/document-initial-head.js +33 -0
  413. package/dist/server/edge-api-runtime.d.ts +4 -0
  414. package/dist/server/edge-api-runtime.js +6 -0
  415. package/dist/server/file-based-metadata.d.ts +29 -0
  416. package/dist/server/file-based-metadata.js +401 -0
  417. package/dist/server/headers.d.ts +114 -0
  418. package/dist/server/headers.js +136 -0
  419. package/dist/server/html.d.ts +28 -0
  420. package/dist/server/html.js +41 -0
  421. package/dist/server/http-error-responses.d.ts +91 -0
  422. package/dist/server/http-error-responses.js +105 -0
  423. package/dist/server/hybrid-route-priority.d.ts +22 -0
  424. package/dist/server/hybrid-route-priority.js +33 -0
  425. package/dist/server/image-optimization.d.ts +130 -0
  426. package/dist/server/image-optimization.js +247 -0
  427. package/dist/server/implicit-tags.d.ts +6 -0
  428. package/dist/server/implicit-tags.js +44 -0
  429. package/dist/server/instrumentation-runtime.d.ts +49 -0
  430. package/dist/server/instrumentation-runtime.js +35 -0
  431. package/dist/server/instrumentation.d.ts +85 -0
  432. package/dist/server/instrumentation.js +130 -0
  433. package/dist/server/isr-cache.d.ts +127 -0
  434. package/dist/server/isr-cache.js +282 -0
  435. package/dist/server/isr-decision.d.ts +79 -0
  436. package/dist/server/isr-decision.js +70 -0
  437. package/dist/server/metadata-route-build-data.d.ts +24 -0
  438. package/dist/server/metadata-route-build-data.js +148 -0
  439. package/dist/server/metadata-route-response.d.ts +16 -0
  440. package/dist/server/metadata-route-response.js +205 -0
  441. package/dist/server/metadata-routes.d.ts +139 -0
  442. package/dist/server/metadata-routes.js +433 -0
  443. package/dist/server/middleware-matcher.d.ts +14 -0
  444. package/dist/server/middleware-matcher.js +111 -0
  445. package/dist/server/middleware-request-headers.d.ts +11 -0
  446. package/dist/server/middleware-request-headers.js +65 -0
  447. package/dist/server/middleware-response-headers.d.ts +12 -0
  448. package/dist/server/middleware-response-headers.js +42 -0
  449. package/dist/server/middleware-runtime.d.ts +67 -0
  450. package/dist/server/middleware-runtime.js +240 -0
  451. package/dist/server/middleware.d.ts +62 -0
  452. package/dist/server/middleware.js +114 -0
  453. package/dist/server/navigation-planner.d.ts +308 -0
  454. package/dist/server/navigation-planner.js +831 -0
  455. package/dist/server/navigation-trace.d.ts +68 -0
  456. package/dist/server/navigation-trace.js +71 -0
  457. package/dist/server/next-error-digest.d.ts +44 -0
  458. package/dist/server/next-error-digest.js +40 -0
  459. package/dist/server/normalize-path.d.ts +38 -0
  460. package/dist/server/normalize-path.js +70 -0
  461. package/dist/server/open-redirect.d.ts +12 -0
  462. package/dist/server/open-redirect.js +21 -0
  463. package/dist/server/operation-token.d.ts +40 -0
  464. package/dist/server/operation-token.js +85 -0
  465. package/dist/server/otel-tracer-extension.d.ts +45 -0
  466. package/dist/server/otel-tracer-extension.js +89 -0
  467. package/dist/server/pages-api-route.d.ts +83 -0
  468. package/dist/server/pages-api-route.js +75 -0
  469. package/dist/server/pages-asset-tags.d.ts +78 -0
  470. package/dist/server/pages-asset-tags.js +126 -0
  471. package/dist/server/pages-body-parser-config.d.ts +59 -0
  472. package/dist/server/pages-body-parser-config.js +77 -0
  473. package/dist/server/pages-data-route.d.ts +121 -0
  474. package/dist/server/pages-data-route.js +157 -0
  475. package/dist/server/pages-default-404.d.ts +30 -0
  476. package/dist/server/pages-default-404.js +38 -0
  477. package/dist/server/pages-dev-module-url.d.ts +4 -0
  478. package/dist/server/pages-dev-module-url.js +15 -0
  479. package/dist/server/pages-document-initial-props.d.ts +77 -0
  480. package/dist/server/pages-document-initial-props.js +109 -0
  481. package/dist/server/pages-get-initial-props.d.ts +67 -0
  482. package/dist/server/pages-get-initial-props.js +92 -0
  483. package/dist/server/pages-i18n.d.ts +106 -0
  484. package/dist/server/pages-i18n.js +183 -0
  485. package/dist/server/pages-media-type.d.ts +15 -0
  486. package/dist/server/pages-media-type.js +24 -0
  487. package/dist/server/pages-node-compat.d.ts +55 -0
  488. package/dist/server/pages-node-compat.js +235 -0
  489. package/dist/server/pages-page-data.d.ts +223 -0
  490. package/dist/server/pages-page-data.js +484 -0
  491. package/dist/server/pages-page-handler.d.ts +100 -0
  492. package/dist/server/pages-page-handler.js +403 -0
  493. package/dist/server/pages-page-method.d.ts +47 -0
  494. package/dist/server/pages-page-method.js +17 -0
  495. package/dist/server/pages-page-response.d.ts +138 -0
  496. package/dist/server/pages-page-response.js +285 -0
  497. package/dist/server/pages-readiness.d.ts +36 -0
  498. package/dist/server/pages-readiness.js +21 -0
  499. package/dist/server/pages-request-pipeline.d.ts +116 -0
  500. package/dist/server/pages-request-pipeline.js +311 -0
  501. package/dist/server/pages-revalidate.d.ts +15 -0
  502. package/dist/server/pages-revalidate.js +19 -0
  503. package/dist/server/pages-serializable-props.d.ts +24 -0
  504. package/dist/server/pages-serializable-props.js +67 -0
  505. package/dist/server/pregenerated-concrete-paths.d.ts +16 -0
  506. package/dist/server/pregenerated-concrete-paths.js +61 -0
  507. package/dist/server/prerender-manifest.d.ts +33 -0
  508. package/dist/server/prerender-manifest.js +54 -0
  509. package/dist/server/prerender-route-params.d.ts +23 -0
  510. package/dist/server/prerender-route-params.js +113 -0
  511. package/dist/server/prerender-work-unit-setup.d.ts +6 -0
  512. package/dist/server/prerender-work-unit-setup.js +28 -0
  513. package/dist/server/prod-server.d.ts +148 -0
  514. package/dist/server/prod-server.js +1136 -0
  515. package/dist/server/proxy-trust.d.ts +40 -0
  516. package/dist/server/proxy-trust.js +68 -0
  517. package/dist/server/request-log.d.ts +39 -0
  518. package/dist/server/request-log.js +56 -0
  519. package/dist/server/request-pipeline.d.ts +187 -0
  520. package/dist/server/request-pipeline.js +447 -0
  521. package/dist/server/rsc-stream-hints.d.ts +10 -0
  522. package/dist/server/rsc-stream-hints.js +41 -0
  523. package/dist/server/seed-cache.d.ts +29 -0
  524. package/dist/server/seed-cache.js +125 -0
  525. package/dist/server/server-action-not-found.d.ts +21 -0
  526. package/dist/server/server-action-not-found.js +62 -0
  527. package/dist/server/server-globals.d.ts +4 -0
  528. package/dist/server/server-globals.js +35 -0
  529. package/dist/server/skip-cache-proof.d.ts +61 -0
  530. package/dist/server/skip-cache-proof.js +168 -0
  531. package/dist/server/socket-error-backstop.d.ts +34 -0
  532. package/dist/server/socket-error-backstop.js +200 -0
  533. package/dist/server/static-file-cache.d.ts +56 -0
  534. package/dist/server/static-file-cache.js +231 -0
  535. package/dist/server/static-layout-client-reuse-proof.d.ts +15 -0
  536. package/dist/server/static-layout-client-reuse-proof.js +33 -0
  537. package/dist/server/streaming-metadata.d.ts +4 -0
  538. package/dist/server/streaming-metadata.js +8 -0
  539. package/dist/server/worker-utils.d.ts +7 -0
  540. package/dist/server/worker-utils.js +99 -0
  541. package/dist/shims/amp.d.ts +19 -0
  542. package/dist/shims/amp.js +23 -0
  543. package/dist/shims/app-router-scroll-state.d.ts +15 -0
  544. package/dist/shims/app-router-scroll-state.js +61 -0
  545. package/dist/shims/app-router-scroll.d.ts +29 -0
  546. package/dist/shims/app-router-scroll.js +141 -0
  547. package/dist/shims/app.d.ts +42 -0
  548. package/dist/shims/app.js +48 -0
  549. package/dist/shims/before-interactive-context.d.ts +40 -0
  550. package/dist/shims/before-interactive-context.js +8 -0
  551. package/dist/shims/cache-for-request.d.ts +57 -0
  552. package/dist/shims/cache-for-request.js +72 -0
  553. package/dist/shims/cache-handler.d.ts +106 -0
  554. package/dist/shims/cache-handler.js +176 -0
  555. package/dist/shims/cache-request-state.d.ts +47 -0
  556. package/dist/shims/cache-request-state.js +126 -0
  557. package/dist/shims/cache-runtime.d.ts +83 -0
  558. package/dist/shims/cache-runtime.js +452 -0
  559. package/dist/shims/cache.d.ts +145 -0
  560. package/dist/shims/cache.js +401 -0
  561. package/dist/shims/cdn-cache.d.ts +125 -0
  562. package/dist/shims/cdn-cache.js +100 -0
  563. package/dist/shims/client-hook-error.d.ts +13 -0
  564. package/dist/shims/client-hook-error.js +17 -0
  565. package/dist/shims/client-locale.d.ts +14 -0
  566. package/dist/shims/client-locale.js +11 -0
  567. package/dist/shims/client-only.d.ts +1 -0
  568. package/dist/shims/client-only.js +1 -0
  569. package/dist/shims/compat-router.d.ts +16 -0
  570. package/dist/shims/compat-router.js +25 -0
  571. package/dist/shims/config.d.ts +28 -0
  572. package/dist/shims/config.js +21 -0
  573. package/dist/shims/constants.d.ts +130 -0
  574. package/dist/shims/constants.js +167 -0
  575. package/dist/shims/default-global-error.d.ts +31 -0
  576. package/dist/shims/default-global-error.js +179 -0
  577. package/dist/shims/default-not-found.d.ts +11 -0
  578. package/dist/shims/default-not-found.js +59 -0
  579. package/dist/shims/document.d.ts +92 -0
  580. package/dist/shims/document.js +76 -0
  581. package/dist/shims/dynamic-preload-chunks.d.ts +8 -0
  582. package/dist/shims/dynamic-preload-chunks.js +79 -0
  583. package/dist/shims/dynamic.d.ts +35 -0
  584. package/dist/shims/dynamic.js +204 -0
  585. package/dist/shims/error-boundary-navigation.d.ts +7 -0
  586. package/dist/shims/error-boundary-navigation.js +44 -0
  587. package/dist/shims/error-boundary.d.ts +155 -0
  588. package/dist/shims/error-boundary.js +342 -0
  589. package/dist/shims/error.d.ts +31 -0
  590. package/dist/shims/error.js +123 -0
  591. package/dist/shims/error.react-server.d.ts +9 -0
  592. package/dist/shims/error.react-server.js +6 -0
  593. package/dist/shims/fetch-cache.d.ts +136 -0
  594. package/dist/shims/fetch-cache.js +766 -0
  595. package/dist/shims/font-google-base.d.ts +83 -0
  596. package/dist/shims/font-google-base.js +290 -0
  597. package/dist/shims/font-google.d.ts +2 -0
  598. package/dist/shims/font-google.js +2 -0
  599. package/dist/shims/font-local.d.ts +50 -0
  600. package/dist/shims/font-local.js +195 -0
  601. package/dist/shims/font-utils.d.ts +56 -0
  602. package/dist/shims/font-utils.js +107 -0
  603. package/dist/shims/form.d.ts +19 -0
  604. package/dist/shims/form.js +236 -0
  605. package/dist/shims/hash-scroll.d.ts +10 -0
  606. package/dist/shims/hash-scroll.js +47 -0
  607. package/dist/shims/head-state.d.ts +16 -0
  608. package/dist/shims/head-state.js +43 -0
  609. package/dist/shims/head.d.ts +73 -0
  610. package/dist/shims/head.js +340 -0
  611. package/dist/shims/headers.d.ts +253 -0
  612. package/dist/shims/headers.js +754 -0
  613. package/dist/shims/i18n-context.d.ts +22 -0
  614. package/dist/shims/i18n-context.js +42 -0
  615. package/dist/shims/i18n-state.d.ts +14 -0
  616. package/dist/shims/i18n-state.js +38 -0
  617. package/dist/shims/image-config.d.ts +45 -0
  618. package/dist/shims/image-config.js +85 -0
  619. package/dist/shims/image.d.ts +55 -0
  620. package/dist/shims/image.js +582 -0
  621. package/dist/shims/internal/als-registry.d.ts +14 -0
  622. package/dist/shims/internal/als-registry.js +80 -0
  623. package/dist/shims/internal/api-utils.d.ts +14 -0
  624. package/dist/shims/internal/api-utils.js +1 -0
  625. package/dist/shims/internal/app-page-props-cache-key.d.ts +5 -0
  626. package/dist/shims/internal/app-page-props-cache-key.js +16 -0
  627. package/dist/shims/internal/app-route-detection.d.ts +39 -0
  628. package/dist/shims/internal/app-route-detection.js +62 -0
  629. package/dist/shims/internal/app-router-context.d.ts +31 -0
  630. package/dist/shims/internal/app-router-context.js +28 -0
  631. package/dist/shims/internal/cookie-serialize.d.ts +45 -0
  632. package/dist/shims/internal/cookie-serialize.js +49 -0
  633. package/dist/shims/internal/cookies.d.ts +2 -0
  634. package/dist/shims/internal/cookies.js +2 -0
  635. package/dist/shims/internal/hybrid-client-route-owner.d.ts +31 -0
  636. package/dist/shims/internal/hybrid-client-route-owner.js +143 -0
  637. package/dist/shims/internal/interpolate-as.d.ts +25 -0
  638. package/dist/shims/internal/interpolate-as.js +196 -0
  639. package/dist/shims/internal/link-status-registry.d.ts +43 -0
  640. package/dist/shims/internal/link-status-registry.js +42 -0
  641. package/dist/shims/internal/make-hanging-promise.d.ts +15 -0
  642. package/dist/shims/internal/make-hanging-promise.js +44 -0
  643. package/dist/shims/internal/navigation-untracked.d.ts +35 -0
  644. package/dist/shims/internal/navigation-untracked.js +56 -0
  645. package/dist/shims/internal/pages-data-fetch-dedup.d.ts +54 -0
  646. package/dist/shims/internal/pages-data-fetch-dedup.js +121 -0
  647. package/dist/shims/internal/pages-data-target.d.ts +62 -0
  648. package/dist/shims/internal/pages-data-target.js +98 -0
  649. package/dist/shims/internal/pages-data-url.d.ts +41 -0
  650. package/dist/shims/internal/pages-data-url.js +71 -0
  651. package/dist/shims/internal/pages-router-accessor.d.ts +19 -0
  652. package/dist/shims/internal/pages-router-accessor.js +13 -0
  653. package/dist/shims/internal/route-pattern-for-warning.d.ts +27 -0
  654. package/dist/shims/internal/route-pattern-for-warning.js +40 -0
  655. package/dist/shims/internal/router-context.d.ts +7 -0
  656. package/dist/shims/internal/router-context.js +13 -0
  657. package/dist/shims/internal/utils.d.ts +52 -0
  658. package/dist/shims/internal/utils.js +27 -0
  659. package/dist/shims/internal/work-unit-async-storage.d.ts +30 -0
  660. package/dist/shims/internal/work-unit-async-storage.js +17 -0
  661. package/dist/shims/layout-segment-context.d.ts +24 -0
  662. package/dist/shims/layout-segment-context.js +39 -0
  663. package/dist/shims/legacy-image.d.ts +41 -0
  664. package/dist/shims/legacy-image.js +49 -0
  665. package/dist/shims/link-prefetch.d.ts +41 -0
  666. package/dist/shims/link-prefetch.js +43 -0
  667. package/dist/shims/link.d.ts +102 -0
  668. package/dist/shims/link.js +687 -0
  669. package/dist/shims/metadata.d.ts +285 -0
  670. package/dist/shims/metadata.js +820 -0
  671. package/dist/shims/navigation-context-state.d.ts +40 -0
  672. package/dist/shims/navigation-context-state.js +116 -0
  673. package/dist/shims/navigation-errors.d.ts +55 -0
  674. package/dist/shims/navigation-errors.js +110 -0
  675. package/dist/shims/navigation-server.d.ts +3 -0
  676. package/dist/shims/navigation-server.js +3 -0
  677. package/dist/shims/navigation-state.d.ts +25 -0
  678. package/dist/shims/navigation-state.js +66 -0
  679. package/dist/shims/navigation.d.ts +286 -0
  680. package/dist/shims/navigation.js +1206 -0
  681. package/dist/shims/navigation.react-server.d.ts +14 -0
  682. package/dist/shims/navigation.react-server.js +32 -0
  683. package/dist/shims/offline.d.ts +4 -0
  684. package/dist/shims/offline.js +15 -0
  685. package/dist/shims/og.d.ts +17 -0
  686. package/dist/shims/og.js +48 -0
  687. package/dist/shims/pages-router-runtime.d.ts +12 -0
  688. package/dist/shims/pages-router-runtime.js +24 -0
  689. package/dist/shims/ppr-fallback-shell.d.ts +33 -0
  690. package/dist/shims/ppr-fallback-shell.js +170 -0
  691. package/dist/shims/readonly-url-search-params.d.ts +13 -0
  692. package/dist/shims/readonly-url-search-params.js +26 -0
  693. package/dist/shims/request-context.d.ts +58 -0
  694. package/dist/shims/request-context.js +45 -0
  695. package/dist/shims/request-state-types.d.ts +12 -0
  696. package/dist/shims/request-state-types.js +1 -0
  697. package/dist/shims/root-params.d.ts +12 -0
  698. package/dist/shims/root-params.js +30 -0
  699. package/dist/shims/router-state.d.ts +32 -0
  700. package/dist/shims/router-state.js +39 -0
  701. package/dist/shims/router.d.ts +192 -0
  702. package/dist/shims/router.js +1786 -0
  703. package/dist/shims/script-nonce-context.d.ts +11 -0
  704. package/dist/shims/script-nonce-context.js +23 -0
  705. package/dist/shims/script.d.ts +43 -0
  706. package/dist/shims/script.js +370 -0
  707. package/dist/shims/server-only.d.ts +1 -0
  708. package/dist/shims/server-only.js +1 -0
  709. package/dist/shims/server.d.ts +323 -0
  710. package/dist/shims/server.js +729 -0
  711. package/dist/shims/slot.d.ts +45 -0
  712. package/dist/shims/slot.js +230 -0
  713. package/dist/shims/thenable-params.d.ts +11 -0
  714. package/dist/shims/thenable-params.js +176 -0
  715. package/dist/shims/unified-request-context.d.ts +68 -0
  716. package/dist/shims/unified-request-context.js +86 -0
  717. package/dist/shims/unrecognized-action-error.d.ts +34 -0
  718. package/dist/shims/unrecognized-action-error.js +39 -0
  719. package/dist/shims/url-safety.d.ts +34 -0
  720. package/dist/shims/url-safety.js +70 -0
  721. package/dist/shims/url-utils.d.ts +51 -0
  722. package/dist/shims/url-utils.js +156 -0
  723. package/dist/shims/use-merged-ref.d.ts +6 -0
  724. package/dist/shims/use-merged-ref.js +38 -0
  725. package/dist/shims/web-vitals.d.ts +8 -0
  726. package/dist/shims/web-vitals.js +22 -0
  727. package/dist/typegen.d.ts +9 -0
  728. package/dist/typegen.js +228 -0
  729. package/dist/utils/asset-prefix.d.ts +96 -0
  730. package/dist/utils/asset-prefix.js +122 -0
  731. package/dist/utils/base-path.d.ts +31 -0
  732. package/dist/utils/base-path.js +45 -0
  733. package/dist/utils/built-asset-url.d.ts +4 -0
  734. package/dist/utils/built-asset-url.js +11 -0
  735. package/dist/utils/cache-control-metadata.d.ts +4 -0
  736. package/dist/utils/cache-control-metadata.js +12 -0
  737. package/dist/utils/client-build-manifest.d.ts +21 -0
  738. package/dist/utils/client-build-manifest.js +87 -0
  739. package/dist/utils/client-entry-manifest.d.ts +11 -0
  740. package/dist/utils/client-entry-manifest.js +29 -0
  741. package/dist/utils/client-runtime-metadata.d.ts +45 -0
  742. package/dist/utils/client-runtime-metadata.js +63 -0
  743. package/dist/utils/commonjs-loader.d.ts +16 -0
  744. package/dist/utils/commonjs-loader.js +100 -0
  745. package/dist/utils/compare.d.ts +4 -0
  746. package/dist/utils/compare.js +8 -0
  747. package/dist/utils/deployment-id.d.ts +8 -0
  748. package/dist/utils/deployment-id.js +22 -0
  749. package/dist/utils/dev-error-recovery-event.d.ts +4 -0
  750. package/dist/utils/dev-error-recovery-event.js +4 -0
  751. package/dist/utils/domain-locale.d.ts +26 -0
  752. package/dist/utils/domain-locale.js +50 -0
  753. package/dist/utils/encode-cache-tag.d.ts +30 -0
  754. package/dist/utils/encode-cache-tag.js +36 -0
  755. package/dist/utils/error-cause.d.ts +4 -0
  756. package/dist/utils/error-cause.js +95 -0
  757. package/dist/utils/has-trailing-comma.d.ts +24 -0
  758. package/dist/utils/has-trailing-comma.js +62 -0
  759. package/dist/utils/hash.d.ts +24 -0
  760. package/dist/utils/hash.js +55 -0
  761. package/dist/utils/html-limited-bots.d.ts +21 -0
  762. package/dist/utils/html-limited-bots.js +35 -0
  763. package/dist/utils/lazy-chunks.d.ts +59 -0
  764. package/dist/utils/lazy-chunks.js +112 -0
  765. package/dist/utils/manifest-paths.d.ts +30 -0
  766. package/dist/utils/manifest-paths.js +66 -0
  767. package/dist/utils/mdx-scan.d.ts +9 -0
  768. package/dist/utils/mdx-scan.js +34 -0
  769. package/dist/utils/navigation-signal.d.ts +4 -0
  770. package/dist/utils/navigation-signal.js +12 -0
  771. package/dist/utils/number.d.ts +4 -0
  772. package/dist/utils/number.js +6 -0
  773. package/dist/utils/parse-cookie.d.ts +13 -0
  774. package/dist/utils/parse-cookie.js +52 -0
  775. package/dist/utils/path.d.ts +22 -0
  776. package/dist/utils/path.js +30 -0
  777. package/dist/utils/prerender-output-paths.d.ts +14 -0
  778. package/dist/utils/prerender-output-paths.js +22 -0
  779. package/dist/utils/project.d.ts +76 -0
  780. package/dist/utils/project.js +213 -0
  781. package/dist/utils/promise.d.ts +4 -0
  782. package/dist/utils/promise.js +6 -0
  783. package/dist/utils/public-routes.d.ts +4 -0
  784. package/dist/utils/public-routes.js +48 -0
  785. package/dist/utils/query.d.ts +49 -0
  786. package/dist/utils/query.js +122 -0
  787. package/dist/utils/record.d.ts +4 -0
  788. package/dist/utils/record.js +6 -0
  789. package/dist/utils/regex.d.ts +4 -0
  790. package/dist/utils/regex.js +6 -0
  791. package/dist/utils/safe-json-file.d.ts +17 -0
  792. package/dist/utils/safe-json-file.js +23 -0
  793. package/dist/utils/sorted-array.d.ts +8 -0
  794. package/dist/utils/sorted-array.js +20 -0
  795. package/dist/utils/text-stream.d.ts +28 -0
  796. package/dist/utils/text-stream.js +64 -0
  797. package/dist/utils/vinext-root.d.ts +23 -0
  798. package/dist/utils/vinext-root.js +29 -0
  799. package/dist/utils/virtual-module.d.ts +5 -0
  800. package/dist/utils/virtual-module.js +0 -0
  801. package/dist/utils/vite-version.d.ts +21 -0
  802. package/dist/utils/vite-version.js +42 -0
  803. package/package.json +145 -0
@@ -0,0 +1,932 @@
1
+ import { createValidFileMatcher, findFileWithExtensions } from "../routing/file-matcher.js";
2
+ import { VINEXT_PRERENDER_ROUTE_PARAMS_HEADER, VINEXT_PRERENDER_SECRET_HEADER } from "../server/headers.js";
3
+ import { normalizeStaticPathsEntry } from "../routing/route-pattern.js";
4
+ import { NoOpCacheHandler, getCacheHandler, setCacheHandler } from "../shims/cache-handler.js";
5
+ import { headersContextFromRequest, runWithHeadersContext } from "../shims/headers.js";
6
+ import { _consumeRequestScopedCacheLife } from "../shims/cache-request-state.js";
7
+ import { classifyAppRoute, classifyPagesRoute, getAppRouteRenderEntryPath } from "./report.js";
8
+ import { BLOCKED_PAGES } from "../shims/constants.js";
9
+ import { concatUint8Arrays, decodeRscEmbeddedChunk } from "../server/app-rsc-embedded-chunks.js";
10
+ import { navigationRuntimeRscBootstrapExpression } from "../server/app-ssr-stream.js";
11
+ import { createAppPprFallbackShells, markAppPprDynamicFallbackShellHtml } from "../server/app-ppr-fallback-shell.js";
12
+ import { encodePrerenderRouteParams, serializePrerenderRouteParamsHeader } from "../server/prerender-route-params.js";
13
+ import { readPrerenderSecret } from "./server-manifest.js";
14
+ import { getOutputPath, getRscOutputPath } from "../utils/prerender-output-paths.js";
15
+ import { startProdServer } from "../server/prod-server.js";
16
+ import fs from "node:fs";
17
+ import path from "node:path";
18
+ import os from "node:os";
19
+ //#region src/build/prerender.ts
20
+ /**
21
+ * Prerendering phase for vinext build.
22
+ *
23
+ * Classifies every route, renders static and ISR routes to HTML/JSON/RSC files,
24
+ * and writes a `vinext-prerender.json` build index.
25
+ *
26
+ * Two public functions:
27
+ * prerenderPages() — Pages Router
28
+ * prerenderApp() — App Router
29
+ *
30
+ * Both return a `PrerenderResult` with one entry per route. The caller
31
+ * (cli.ts) can merge these into the build report.
32
+ *
33
+ * Modes:
34
+ * 'default' — skips SSR routes (served at request time); ISR routes rendered
35
+ * 'export' — SSR routes are build errors; ISR treated as static (no revalidate)
36
+ */
37
+ const EXPERIMENTAL_PPR_FALLBACK_SHELLS_ENV = "__VINEXT_EXPERIMENTAL_PPR_FALLBACK_SHELLS";
38
+ function isExperimentalPprFallbackShellGenerationEnabled(env = process.env) {
39
+ return env[EXPERIMENTAL_PPR_FALLBACK_SHELLS_ENV] === "1";
40
+ }
41
+ function getErrorMessageWithStack(err) {
42
+ return err.stack || err.message;
43
+ }
44
+ var PrerenderUserFunctionError = class extends Error {};
45
+ function parsePrerenderEndpointError(text) {
46
+ try {
47
+ const parsed = JSON.parse(text);
48
+ if (parsed && typeof parsed === "object" && "error" in parsed) return typeof parsed.error === "string" && parsed.error.length > 0 ? parsed.error : "Unknown prerender endpoint error";
49
+ } catch {}
50
+ return text || "Unknown prerender endpoint error";
51
+ }
52
+ /** Sentinel path used to trigger 404 rendering without a real route match. */
53
+ const NOT_FOUND_SENTINEL_PATH = "/__vinext_nonexistent_for_404__";
54
+ const DEFAULT_CONCURRENCY = Math.min(os.availableParallelism(), 8);
55
+ const RSC_LEGACY_CHUNK_SCRIPT_PREFIX = "self.__VINEXT_RSC_CHUNKS__=self.__VINEXT_RSC_CHUNKS__||[];";
56
+ const RSC_LEGACY_DONE_SCRIPT = "self.__VINEXT_RSC_DONE__=true";
57
+ const RSC_LEGACY_CHUNK_FULL_PREFIX = `${RSC_LEGACY_CHUNK_SCRIPT_PREFIX}self.__VINEXT_RSC_CHUNKS__.push(`;
58
+ const RSC_RUNTIME_BOOTSTRAP_EXPRESSION = navigationRuntimeRscBootstrapExpression();
59
+ const RSC_RUNTIME_CHUNK_FULL_PREFIX = `${RSC_RUNTIME_BOOTSTRAP_EXPRESSION}.rsc.push(`;
60
+ const RSC_RUNTIME_DONE_SCRIPT = `${RSC_RUNTIME_BOOTSTRAP_EXPRESSION}.done=true`;
61
+ /**
62
+ * Reconstruct the RSC payload from a prerender HTML response by parsing the
63
+ * inline bootstrap chunk scripts emitted by createRscEmbedTransform.
64
+ *
65
+ * Returns null when the HTML contains no chunk scripts at all — the caller
66
+ * should fall back to a second handler invocation. This is reachable when
67
+ * middleware short-circuits the App Router pipeline with a custom 200 HTML
68
+ * response that never went through createRscEmbedTransform.
69
+ *
70
+ * Throws on partial or malformed embeds (chunks present but no done marker,
71
+ * tampered chunk JSON, etc.) — those are real vinext-internal regressions.
72
+ *
73
+ * Safe regex usage: safeJsonStringify (used by createRscEmbedTransform) escapes
74
+ * all '<' and '>' in the embedded JSON, preventing false <\/script> matches.
75
+ */
76
+ function extractRscPayloadFromPrerenderedHtml(html) {
77
+ const scriptPattern = /<script(?:\s[^>]*)?>([\s\S]*?)<\/script>/gi;
78
+ const chunks = [];
79
+ let sawDone = false;
80
+ let match;
81
+ while ((match = scriptPattern.exec(html)) !== null) {
82
+ const script = (match[1] ?? "").trim().replace(/;$/, "");
83
+ if (script === RSC_RUNTIME_DONE_SCRIPT || script === RSC_LEGACY_DONE_SCRIPT) {
84
+ sawDone = true;
85
+ continue;
86
+ }
87
+ if (script.startsWith(RSC_RUNTIME_CHUNK_FULL_PREFIX)) {
88
+ chunks.push(decodeRscEmbeddedChunk(parseRscChunkPushArgument(script, RSC_RUNTIME_CHUNK_FULL_PREFIX)));
89
+ continue;
90
+ }
91
+ if (script.startsWith(RSC_LEGACY_CHUNK_SCRIPT_PREFIX)) chunks.push(decodeRscEmbeddedChunk(parseRscChunkPushArgument(script, RSC_LEGACY_CHUNK_FULL_PREFIX)));
92
+ }
93
+ if (chunks.length === 0 && !sawDone) return null;
94
+ if (chunks.length === 0) throw new Error("[vinext] Malformed prerender RSC embed: done marker present without chunk scripts");
95
+ if (!sawDone) throw new Error("[vinext] Malformed prerender RSC embed: missing RSC done marker");
96
+ return concatUint8Arrays(chunks);
97
+ }
98
+ /**
99
+ * Parse the JSON argument of a single chunk-push script. The script
100
+ * shape is exactly `<prefix>(<safeJsonStringify(chunk)>)` because the writer
101
+ * concatenates those literals — so the body always starts with the full
102
+ * prefix and ends with `)`. JSON.parse on the slice catches any tampering or
103
+ * trailing code.
104
+ */
105
+ function parseRscChunkPushArgument(script, chunkPrefix) {
106
+ if (!script.startsWith(chunkPrefix) || !script.endsWith(")")) throw new Error("[vinext] Malformed prerender RSC embed: unexpected chunk script shape");
107
+ const jsonSource = script.slice(chunkPrefix.length, -1);
108
+ let parsed;
109
+ try {
110
+ parsed = JSON.parse(jsonSource);
111
+ } catch {
112
+ throw new Error("[vinext] Malformed prerender RSC embed: invalid chunk JSON");
113
+ }
114
+ if (typeof parsed === "string") return parsed;
115
+ if (Array.isArray(parsed) && parsed.length === 2 && parsed[0] === 3 && typeof parsed[1] === "string") return [parsed[0], parsed[1]];
116
+ throw new Error("[vinext] Malformed prerender RSC embed: unsupported chunk payload");
117
+ }
118
+ /**
119
+ * Run an array of async tasks with bounded concurrency.
120
+ * Results are returned in the same order as `items`.
121
+ */
122
+ async function runWithConcurrency(items, concurrency, fn) {
123
+ const results = Array.from({ length: items.length });
124
+ let nextIndex = 0;
125
+ async function worker() {
126
+ while (nextIndex < items.length) {
127
+ const i = nextIndex++;
128
+ results[i] = await fn(items[i], i);
129
+ }
130
+ }
131
+ if (items.length === 0) return results;
132
+ const workers = Array.from({ length: Math.min(concurrency, items.length) }, worker);
133
+ await Promise.all(workers);
134
+ return results;
135
+ }
136
+ /**
137
+ * Build a URL path from a route pattern and params.
138
+ * "/posts/:id" + { id: "42" } → "/posts/42"
139
+ * "/docs/:slug+" + { slug: ["a", "b"] } → "/docs/a/b"
140
+ *
141
+ * Throws a descriptive error rather than a cryptic `Cannot read properties of
142
+ * undefined` if `params` itself is missing or required keys are absent — the
143
+ * caller (prerenderPages / prerenderApp) catches this and surfaces it as a
144
+ * per-route error result.
145
+ */
146
+ function buildUrlFromParams(pattern, params) {
147
+ if (params === void 0 || params === null) throw new Error(`[vinext] buildUrlFromParams: params is ${params === null ? "null" : "undefined"} for pattern "${pattern}". Check that getStaticPaths / generateStaticParams returned an object with a "params" key, or pass a string path (see https://nextjs.org/docs/pages/api-reference/functions/get-static-paths).`);
148
+ const parts = pattern.split("/").filter(Boolean);
149
+ const result = [];
150
+ for (const part of parts) if (part.endsWith("+") || part.endsWith("*")) {
151
+ const value = params[part.slice(1, -1)];
152
+ if (Array.isArray(value)) result.push(...value.map((s) => encodeURIComponent(s)));
153
+ else if (value) result.push(encodeURIComponent(String(value)));
154
+ } else if (part.startsWith(":")) {
155
+ const paramName = part.slice(1);
156
+ const value = params[paramName];
157
+ if (value === void 0 || value === null) throw new Error(`[vinext] buildUrlFromParams: required param "${paramName}" is missing for pattern "${pattern}". Check that generateStaticParams (or getStaticPaths) returns an object with a "${paramName}" key.`);
158
+ result.push(encodeURIComponent(String(value)));
159
+ } else result.push(part);
160
+ return "/" + result.join("/");
161
+ }
162
+ function metadataOutputPath(servedUrl) {
163
+ const pathname = servedUrl.split("?", 1)[0];
164
+ if (!pathname || !pathname.startsWith("/")) return null;
165
+ const segments = pathname.split("/").filter(Boolean);
166
+ if (segments.length === 0 || segments.some((segment) => segment === "." || segment === "..")) return null;
167
+ return segments.join("/");
168
+ }
169
+ function emitStaticMetadataFiles(metadataRoutes, outDir) {
170
+ const outputFiles = [];
171
+ for (const route of metadataRoutes) {
172
+ if (route.isDynamic) continue;
173
+ const outputPath = metadataOutputPath(route.servedUrl);
174
+ if (!outputPath) continue;
175
+ const fullPath = path.join(outDir, ...outputPath.split("/"));
176
+ fs.mkdirSync(path.dirname(fullPath), { recursive: true });
177
+ fs.copyFileSync(route.filePath, fullPath);
178
+ outputFiles.push(outputPath);
179
+ }
180
+ return outputFiles;
181
+ }
182
+ /**
183
+ * Resolve parent dynamic segment params for a route.
184
+ * Handles top-down generateStaticParams resolution for nested dynamic routes.
185
+ *
186
+ * Uses the `staticParamsMap` (pattern → generateStaticParams) exported from
187
+ * the production bundle.
188
+ */
189
+ async function resolveParentParams(childRoute, staticParamsMap) {
190
+ const { patternParts } = childRoute;
191
+ let lastDynamicIdx = -1;
192
+ for (let i = patternParts.length - 1; i >= 0; i--) if (patternParts[i].startsWith(":")) {
193
+ lastDynamicIdx = i;
194
+ break;
195
+ }
196
+ const parentSegments = [];
197
+ let prefixPattern = "";
198
+ for (let i = 0; i < lastDynamicIdx; i++) {
199
+ const part = patternParts[i];
200
+ prefixPattern += "/" + part;
201
+ if (!part.startsWith(":")) continue;
202
+ const fn = staticParamsMap[prefixPattern];
203
+ if (typeof fn === "function") parentSegments.push(fn);
204
+ }
205
+ if (parentSegments.length === 0) return [];
206
+ let currentParams = [{}];
207
+ let resolvedAnyParent = false;
208
+ for (const generateStaticParams of parentSegments) {
209
+ const nextParams = [];
210
+ let resolvedThisParent = false;
211
+ for (const parentParams of currentParams) {
212
+ const results = await generateStaticParams({ params: parentParams });
213
+ if (results === null) continue;
214
+ if (!Array.isArray(results)) return [];
215
+ resolvedThisParent = true;
216
+ resolvedAnyParent = true;
217
+ for (const result of results) nextParams.push({
218
+ ...parentParams,
219
+ ...result
220
+ });
221
+ }
222
+ if (resolvedThisParent) currentParams = nextParams;
223
+ }
224
+ return resolvedAnyParent ? currentParams : [];
225
+ }
226
+ /**
227
+ * Run the prerender phase for Pages Router.
228
+ *
229
+ * Rendering is done via HTTP through a locally-spawned production server.
230
+ * Works for both plain Node and Cloudflare Workers builds.
231
+ * Route classification uses static file analysis (classifyPagesRoute);
232
+ * getStaticPaths is fetched via a dedicated
233
+ * `/__vinext/prerender/pages-static-paths?pattern=…` endpoint on the server.
234
+ *
235
+ * Returns structured results for every route (rendered, skipped, or error).
236
+ * Writes HTML files to `outDir`. If `manifestDir` is set, writes
237
+ * `vinext-prerender.json` there; otherwise writes it to `outDir`.
238
+ */
239
+ async function prerenderPages({ routes, apiRoutes, pagesDir, outDir, config, mode, ...options }) {
240
+ const pagesBundlePath = options.pagesBundlePath;
241
+ const manifestDir = options.manifestDir ?? outDir;
242
+ const concurrency = options.concurrency ?? DEFAULT_CONCURRENCY;
243
+ const onProgress = options.onProgress;
244
+ const skipManifest = options.skipManifest ?? false;
245
+ const fileMatcher = createValidFileMatcher(config.pageExtensions);
246
+ const results = [];
247
+ if (!pagesBundlePath && !options._prodServer) throw new Error("[vinext] prerenderPages: either pagesBundlePath or _prodServer must be provided.");
248
+ fs.mkdirSync(outDir, { recursive: true });
249
+ for (const apiRoute of apiRoutes) results.push({
250
+ route: apiRoute.pattern,
251
+ status: "skipped",
252
+ reason: "api"
253
+ });
254
+ const previousHandler = getCacheHandler();
255
+ setCacheHandler(new NoOpCacheHandler());
256
+ const previousPrerenderFlag = process.env.VINEXT_PRERENDER;
257
+ process.env.VINEXT_PRERENDER = "1";
258
+ let ownedProdServerHandle = null;
259
+ try {
260
+ let prerenderSecret = options._prerenderSecret;
261
+ if (!prerenderSecret && pagesBundlePath) prerenderSecret = readPrerenderSecret(path.dirname(pagesBundlePath));
262
+ if (!prerenderSecret) console.warn("[vinext] Warning: prerender secret not found. /__vinext/prerender/* endpoints will return 403 and dynamic routes will produce no paths. Run `vinext build` to regenerate the secret.");
263
+ const baseUrl = `http://127.0.0.1:${(options._prodServer ? options._prodServer : await (async () => {
264
+ const srv = await startProdServer({
265
+ port: 0,
266
+ host: "127.0.0.1",
267
+ outDir: path.dirname(path.dirname(pagesBundlePath)),
268
+ noCompression: true,
269
+ purpose: "prerender"
270
+ });
271
+ ownedProdServerHandle = srv;
272
+ return srv;
273
+ })()).port}`;
274
+ const secretHeaders = prerenderSecret ? { [VINEXT_PRERENDER_SECRET_HEADER]: prerenderSecret } : {};
275
+ const renderPage = (urlPath) => fetch(`${baseUrl}${urlPath}`, {
276
+ headers: secretHeaders,
277
+ redirect: "manual"
278
+ });
279
+ const bundlePageRoutes = routes.map((r) => ({
280
+ pattern: r.pattern,
281
+ isDynamic: r.isDynamic ?? false,
282
+ params: {},
283
+ filePath: r.filePath,
284
+ module: { getStaticPaths: r.isDynamic ? async ({ locales, defaultLocale }) => {
285
+ const search = new URLSearchParams({ pattern: r.pattern });
286
+ if (locales.length > 0) search.set("locales", JSON.stringify(locales));
287
+ if (defaultLocale) search.set("defaultLocale", defaultLocale);
288
+ const res = await fetch(`${baseUrl}/__vinext/prerender/pages-static-paths?${search}`, { headers: secretHeaders });
289
+ const text = await res.text();
290
+ if (!res.ok) {
291
+ if (res.status === 500) throw new PrerenderUserFunctionError(parsePrerenderEndpointError(text));
292
+ console.warn(`[vinext] Warning: /__vinext/prerender/pages-static-paths returned ${res.status} for ${r.pattern}. Dynamic paths will be skipped. This may indicate a stale or missing prerender secret.`);
293
+ return {
294
+ paths: [],
295
+ fallback: false
296
+ };
297
+ }
298
+ if (text === "null") return {
299
+ paths: [],
300
+ fallback: false
301
+ };
302
+ return JSON.parse(text);
303
+ } : void 0 }
304
+ }));
305
+ const pagesToRender = [];
306
+ for (const route of bundlePageRoutes) {
307
+ if (BLOCKED_PAGES.includes(route.pattern)) continue;
308
+ if (route.pattern === "/404") continue;
309
+ const { type, revalidate: classifiedRevalidate } = classifyPagesRoute(route.filePath);
310
+ if (type === "ssr") {
311
+ if (mode === "export") results.push({
312
+ route: route.pattern,
313
+ status: "error",
314
+ error: `Page uses getServerSideProps which is not supported with output: 'export'. Use getStaticProps instead.`
315
+ });
316
+ else results.push({
317
+ route: route.pattern,
318
+ status: "skipped",
319
+ reason: "ssr"
320
+ });
321
+ continue;
322
+ }
323
+ const revalidate = mode === "export" ? false : typeof classifiedRevalidate === "number" ? classifiedRevalidate : false;
324
+ if (route.isDynamic) {
325
+ if (typeof route.module.getStaticPaths !== "function") {
326
+ if (mode === "export") results.push({
327
+ route: route.pattern,
328
+ status: "error",
329
+ error: `Dynamic route requires getStaticPaths with output: 'export'`
330
+ });
331
+ else results.push({
332
+ route: route.pattern,
333
+ status: "skipped",
334
+ reason: "no-static-params"
335
+ });
336
+ continue;
337
+ }
338
+ let pathsResult;
339
+ try {
340
+ pathsResult = await route.module.getStaticPaths({
341
+ locales: [],
342
+ defaultLocale: ""
343
+ });
344
+ } catch (e) {
345
+ results.push({
346
+ route: route.pattern,
347
+ status: "error",
348
+ error: `Failed to call getStaticPaths(): ${e.message}`,
349
+ ...e instanceof PrerenderUserFunctionError ? { fatal: true } : {}
350
+ });
351
+ continue;
352
+ }
353
+ const fallback = pathsResult?.fallback ?? false;
354
+ if (mode === "export" && fallback !== false) {
355
+ results.push({
356
+ route: route.pattern,
357
+ status: "error",
358
+ error: `getStaticPaths must return fallback: false with output: 'export' (got: ${JSON.stringify(fallback)})`
359
+ });
360
+ continue;
361
+ }
362
+ const paths = pathsResult?.paths ?? [];
363
+ let entryError = null;
364
+ for (const item of paths) {
365
+ const normalized = normalizeStaticPathsEntry(item, route.pattern);
366
+ if ("error" in normalized) {
367
+ entryError = normalized.error;
368
+ break;
369
+ }
370
+ const { params } = normalized;
371
+ try {
372
+ const urlPath = buildUrlFromParams(route.pattern, params);
373
+ pagesToRender.push({
374
+ route,
375
+ urlPath,
376
+ params,
377
+ revalidate
378
+ });
379
+ } catch (e) {
380
+ entryError = e.message;
381
+ break;
382
+ }
383
+ }
384
+ if (entryError) {
385
+ results.push({
386
+ route: route.pattern,
387
+ status: "error",
388
+ error: entryError
389
+ });
390
+ continue;
391
+ }
392
+ } else pagesToRender.push({
393
+ route,
394
+ urlPath: route.pattern,
395
+ params: {},
396
+ revalidate
397
+ });
398
+ }
399
+ let completed = 0;
400
+ const pageResults = await runWithConcurrency(pagesToRender, concurrency, async ({ route, urlPath, revalidate }) => {
401
+ let result;
402
+ try {
403
+ const response = await renderPage(urlPath);
404
+ const outputFiles = [];
405
+ const htmlOutputPath = getOutputPath(urlPath, config.trailingSlash);
406
+ const htmlFullPath = path.join(outDir, htmlOutputPath);
407
+ if (response.status >= 300 && response.status < 400) {
408
+ const html = `<!DOCTYPE html><html><head><meta http-equiv="refresh" content="0;url=${(response.headers.get("location") ?? "/").replace(/&/g, "&amp;").replace(/"/g, "&quot;").replace(/</g, "&lt;").replace(/>/g, "&gt;")}" /></head><body></body></html>`;
409
+ fs.mkdirSync(path.dirname(htmlFullPath), { recursive: true });
410
+ fs.writeFileSync(htmlFullPath, html, "utf-8");
411
+ outputFiles.push(htmlOutputPath);
412
+ } else {
413
+ if (!response.ok) throw new Error(`renderPage returned ${response.status} for ${urlPath}`);
414
+ const html = await response.text();
415
+ fs.mkdirSync(path.dirname(htmlFullPath), { recursive: true });
416
+ fs.writeFileSync(htmlFullPath, html, "utf-8");
417
+ outputFiles.push(htmlOutputPath);
418
+ }
419
+ result = {
420
+ route: route.pattern,
421
+ status: "rendered",
422
+ outputFiles,
423
+ revalidate,
424
+ ...typeof revalidate === "number" ? { expire: config.expireTime } : {},
425
+ router: "pages",
426
+ ...urlPath !== route.pattern ? { path: urlPath } : {}
427
+ };
428
+ } catch (e) {
429
+ const err = e;
430
+ result = {
431
+ route: route.pattern,
432
+ status: "error",
433
+ error: config.enablePrerenderSourceMaps ? getErrorMessageWithStack(err) : err.message
434
+ };
435
+ }
436
+ onProgress?.({
437
+ completed: ++completed,
438
+ total: pagesToRender.length,
439
+ route: urlPath,
440
+ status: result.status
441
+ });
442
+ return result;
443
+ });
444
+ results.push(...pageResults);
445
+ const hasCustom404 = findFileWithExtensions(path.join(pagesDir, "404"), fileMatcher);
446
+ const hasErrorPage = findFileWithExtensions(path.join(pagesDir, "_error"), fileMatcher);
447
+ if (hasCustom404 || hasErrorPage) try {
448
+ const notFoundRes = await renderPage(hasCustom404 ? "/404" : NOT_FOUND_SENTINEL_PATH);
449
+ const contentType = notFoundRes.headers.get("content-type") ?? "";
450
+ if (notFoundRes.status === 404 && contentType.includes("text/html")) {
451
+ const html404 = await notFoundRes.text();
452
+ const fullPath = path.join(outDir, "404.html");
453
+ fs.writeFileSync(fullPath, html404, "utf-8");
454
+ results.push({
455
+ route: "/404",
456
+ status: "rendered",
457
+ outputFiles: ["404.html"],
458
+ revalidate: false,
459
+ router: "pages"
460
+ });
461
+ }
462
+ } catch {}
463
+ if (!skipManifest) writePrerenderIndex(results, manifestDir, {
464
+ buildId: config.buildId,
465
+ trailingSlash: config.trailingSlash
466
+ });
467
+ return { routes: results };
468
+ } finally {
469
+ setCacheHandler(previousHandler);
470
+ if (previousPrerenderFlag === void 0) delete process.env.VINEXT_PRERENDER;
471
+ else process.env.VINEXT_PRERENDER = previousPrerenderFlag;
472
+ if (ownedProdServerHandle) await new Promise((resolve) => ownedProdServerHandle.server.close(() => resolve()));
473
+ }
474
+ }
475
+ /**
476
+ * Run the prerender phase for App Router.
477
+ *
478
+ * Starts a local production server and fetches every static/ISR route via HTTP.
479
+ * Works for both plain Node and Cloudflare Workers builds — the CF Workers bundle
480
+ * (`dist/server/index.js`) is a standard Node-compatible server entry, so no
481
+ * wrangler/miniflare is needed. Writes HTML files, `.rsc` files, and
482
+ * `vinext-prerender.json` to `outDir`.
483
+ *
484
+ * If the bundle does not exist, an error is thrown directing the user to run
485
+ * `vinext build` first.
486
+ *
487
+ * Speculative static rendering: routes classified as 'unknown' (no explicit
488
+ * config, non-dynamic URL) are attempted with an empty headers/cookies context.
489
+ * If they succeed, they are marked as rendered. If they throw a DynamicUsageError
490
+ * or fail, they are marked as skipped with reason 'dynamic'.
491
+ */
492
+ async function prerenderApp({ routes, metadataRoutes = [], outDir, config, mode, rscBundlePath, ...options }) {
493
+ const manifestDir = options.manifestDir ?? outDir;
494
+ const concurrency = options.concurrency ?? DEFAULT_CONCURRENCY;
495
+ const onProgress = options.onProgress;
496
+ const skipManifest = options.skipManifest ?? false;
497
+ const results = [];
498
+ fs.mkdirSync(outDir, { recursive: true });
499
+ const previousHandler = getCacheHandler();
500
+ setCacheHandler(new NoOpCacheHandler());
501
+ const previousPrerenderFlag = process.env.VINEXT_PRERENDER;
502
+ process.env.VINEXT_PRERENDER = "1";
503
+ const serverDir = path.dirname(rscBundlePath);
504
+ let rscHandler;
505
+ let staticParamsMap = {};
506
+ let ownedProdServerHandle = null;
507
+ try {
508
+ const prerenderSecret = readPrerenderSecret(serverDir);
509
+ if (!prerenderSecret) console.warn("[vinext] Warning: prerender secret not found. /__vinext/prerender/* endpoints will return 403 and generateStaticParams will not be called. Run `vinext build` to regenerate the secret.");
510
+ const baseUrl = `http://127.0.0.1:${(options._prodServer ? options._prodServer : await (async () => {
511
+ const srv = await startProdServer({
512
+ port: 0,
513
+ host: "127.0.0.1",
514
+ outDir: path.dirname(serverDir),
515
+ noCompression: true,
516
+ purpose: "prerender"
517
+ });
518
+ ownedProdServerHandle = srv;
519
+ return srv;
520
+ })()).port}`;
521
+ const secretHeaders = prerenderSecret ? { [VINEXT_PRERENDER_SECRET_HEADER]: prerenderSecret } : {};
522
+ rscHandler = (req) => {
523
+ const parsed = new URL(req.url);
524
+ const url = `${baseUrl}${parsed.pathname}${parsed.search}`;
525
+ return fetch(url, {
526
+ method: req.method,
527
+ headers: {
528
+ ...secretHeaders,
529
+ ...Object.fromEntries(req.headers.entries())
530
+ },
531
+ body: req.method !== "GET" && req.method !== "HEAD" ? req.body : void 0,
532
+ redirect: "manual"
533
+ });
534
+ };
535
+ const staticParamsCache = /* @__PURE__ */ new Map();
536
+ staticParamsMap = new Proxy({}, {
537
+ get(_target, pattern) {
538
+ return async ({ params }) => {
539
+ const cacheKey = `${pattern}\0${JSON.stringify(params)}`;
540
+ const cached = staticParamsCache.get(cacheKey);
541
+ if (cached !== void 0) return cached;
542
+ const request = (async () => {
543
+ const search = new URLSearchParams({ pattern });
544
+ if (Object.keys(params).length > 0) search.set("parentParams", JSON.stringify(params));
545
+ const res = await fetch(`${baseUrl}/__vinext/prerender/static-params?${search}`, { headers: secretHeaders });
546
+ const text = await res.text();
547
+ if (!res.ok) {
548
+ if (res.status === 500) throw new PrerenderUserFunctionError(parsePrerenderEndpointError(text));
549
+ console.warn(`[vinext] Warning: /__vinext/prerender/static-params returned ${res.status} for ${pattern}. Static params will be skipped. This may indicate a stale or missing prerender secret.`);
550
+ return null;
551
+ }
552
+ if (text === "null") return null;
553
+ return JSON.parse(text);
554
+ })();
555
+ request.catch(() => staticParamsCache.delete(cacheKey));
556
+ staticParamsCache.set(cacheKey, request);
557
+ return request;
558
+ };
559
+ },
560
+ has(_target, _pattern) {
561
+ return false;
562
+ }
563
+ });
564
+ const urlsToRender = [];
565
+ for (const route of routes) {
566
+ const renderEntryPath = getAppRouteRenderEntryPath(route);
567
+ if (!renderEntryPath && route.routePath) {
568
+ results.push({
569
+ route: route.pattern,
570
+ status: "skipped",
571
+ reason: "api"
572
+ });
573
+ continue;
574
+ }
575
+ if (!renderEntryPath) continue;
576
+ const { type, revalidate: classifiedRevalidate } = classifyAppRoute(renderEntryPath, route.routePath, route.isDynamic);
577
+ if (type === "api") {
578
+ results.push({
579
+ route: route.pattern,
580
+ status: "skipped",
581
+ reason: "api"
582
+ });
583
+ continue;
584
+ }
585
+ if (type === "ssr" && !route.isDynamic) {
586
+ if (mode === "export") results.push({
587
+ route: route.pattern,
588
+ status: "error",
589
+ error: `Route uses dynamic rendering (force-dynamic or revalidate=0) which is not supported with output: 'export'`
590
+ });
591
+ else results.push({
592
+ route: route.pattern,
593
+ status: "skipped",
594
+ reason: "dynamic"
595
+ });
596
+ continue;
597
+ }
598
+ const revalidate = mode === "export" ? false : typeof classifiedRevalidate === "number" ? classifiedRevalidate : false;
599
+ if (route.isDynamic) try {
600
+ const generateStaticParamsFn = staticParamsMap[route.pattern];
601
+ if (typeof generateStaticParamsFn !== "function") {
602
+ if (mode === "export") results.push({
603
+ route: route.pattern,
604
+ status: "error",
605
+ error: `Dynamic route requires generateStaticParams() with output: 'export'`
606
+ });
607
+ else results.push({
608
+ route: route.pattern,
609
+ status: "skipped",
610
+ reason: "no-static-params"
611
+ });
612
+ continue;
613
+ }
614
+ const parentParamSets = await resolveParentParams(route, staticParamsMap);
615
+ let paramSets;
616
+ if (parentParamSets.length > 0) {
617
+ paramSets = [];
618
+ for (const parentParams of parentParamSets) {
619
+ const childResults = await generateStaticParamsFn({ params: parentParams });
620
+ if (childResults === null) {
621
+ paramSets = null;
622
+ break;
623
+ }
624
+ if (Array.isArray(childResults)) for (const childParams of childResults) paramSets.push({
625
+ ...parentParams,
626
+ ...childParams
627
+ });
628
+ else {
629
+ paramSets = [];
630
+ break;
631
+ }
632
+ }
633
+ } else {
634
+ const results = await generateStaticParamsFn({ params: {} });
635
+ paramSets = Array.isArray(results) || results === null ? results : [];
636
+ }
637
+ if (paramSets === null) {
638
+ if (mode === "export") results.push({
639
+ route: route.pattern,
640
+ status: "error",
641
+ error: `Dynamic route requires generateStaticParams() with output: 'export'`
642
+ });
643
+ else results.push({
644
+ route: route.pattern,
645
+ status: "skipped",
646
+ reason: "no-static-params"
647
+ });
648
+ continue;
649
+ }
650
+ if (paramSets.length === 0) {
651
+ results.push({
652
+ route: route.pattern,
653
+ status: "skipped",
654
+ reason: "no-static-params"
655
+ });
656
+ continue;
657
+ }
658
+ const queuedRouteUrls = /* @__PURE__ */ new Set();
659
+ for (const params of paramSets) {
660
+ if (params === null || params === void 0) throw new Error(`generateStaticParams() for ${route.pattern} returned an entry with no params object.`);
661
+ const urlPath = buildUrlFromParams(route.pattern, params);
662
+ if (queuedRouteUrls.has(urlPath)) continue;
663
+ queuedRouteUrls.add(urlPath);
664
+ urlsToRender.push({
665
+ urlPath,
666
+ routePattern: route.pattern,
667
+ prerenderRouteParams: encodePrerenderRouteParams(route.pattern, params),
668
+ revalidate,
669
+ isSpeculative: false
670
+ });
671
+ if (config.cacheComponents === true && isExperimentalPprFallbackShellGenerationEnabled()) for (const fallbackShell of createAppPprFallbackShells(route, params)) {
672
+ if (queuedRouteUrls.has(fallbackShell.pathname)) continue;
673
+ queuedRouteUrls.add(fallbackShell.pathname);
674
+ urlsToRender.push({
675
+ urlPath: fallbackShell.pathname,
676
+ routePattern: route.pattern,
677
+ prerenderRouteParams: encodePrerenderRouteParams(route.pattern, fallbackShell.params, fallbackShell.fallbackParamNames),
678
+ revalidate,
679
+ isSpeculative: false,
680
+ isFallback: true
681
+ });
682
+ }
683
+ }
684
+ } catch (e) {
685
+ const err = e;
686
+ const detail = config.enablePrerenderSourceMaps ? getErrorMessageWithStack(err) : err.message;
687
+ results.push({
688
+ route: route.pattern,
689
+ status: "error",
690
+ error: `Failed to call generateStaticParams(): ${detail}`,
691
+ ...e instanceof PrerenderUserFunctionError ? { fatal: true } : {}
692
+ });
693
+ }
694
+ else if (type === "unknown") urlsToRender.push({
695
+ urlPath: route.pattern,
696
+ routePattern: route.pattern,
697
+ prerenderRouteParams: null,
698
+ revalidate: false,
699
+ isSpeculative: true
700
+ });
701
+ else urlsToRender.push({
702
+ urlPath: route.pattern,
703
+ routePattern: route.pattern,
704
+ prerenderRouteParams: null,
705
+ revalidate,
706
+ isSpeculative: false
707
+ });
708
+ }
709
+ /**
710
+ * Render a single URL and return its result.
711
+ * `onProgress` is intentionally not called here; the outer loop calls it
712
+ * exactly once per URL after this function returns, keeping the callback
713
+ * at a single, predictable call site.
714
+ */
715
+ async function renderUrl({ urlPath, routePattern, prerenderRouteParams, revalidate, isSpeculative, isFallback }) {
716
+ try {
717
+ const prerenderRouteParamsHeader = serializePrerenderRouteParamsHeader(prerenderRouteParams);
718
+ const htmlHeaders = new Headers();
719
+ if (prerenderRouteParamsHeader !== null) htmlHeaders.set(VINEXT_PRERENDER_ROUTE_PARAMS_HEADER, prerenderRouteParamsHeader);
720
+ const htmlRequest = new Request(`http://localhost${urlPath}`, { headers: htmlHeaders });
721
+ const htmlRender = await runWithHeadersContext(headersContextFromRequest(htmlRequest), async () => {
722
+ const response = await rscHandler(htmlRequest);
723
+ const cacheControl = response.headers.get("cache-control") ?? "";
724
+ if (!response.ok || isSpeculative && cacheControl.includes("no-store")) {
725
+ await response.body?.cancel();
726
+ return {
727
+ cacheControl,
728
+ html: null,
729
+ ok: response.ok,
730
+ requestCacheLife: null,
731
+ status: response.status
732
+ };
733
+ }
734
+ return {
735
+ cacheControl,
736
+ html: await response.text(),
737
+ ok: true,
738
+ requestCacheLife: _consumeRequestScopedCacheLife(),
739
+ status: response.status
740
+ };
741
+ });
742
+ const htmlCacheControl = htmlRender.cacheControl;
743
+ if (!htmlRender.ok) {
744
+ if (isSpeculative) return {
745
+ route: routePattern,
746
+ status: "skipped",
747
+ reason: "dynamic"
748
+ };
749
+ return {
750
+ route: routePattern,
751
+ status: "error",
752
+ error: `RSC handler returned ${htmlRender.status}`
753
+ };
754
+ }
755
+ if (isSpeculative) {
756
+ if (htmlCacheControl.includes("no-store")) return {
757
+ route: routePattern,
758
+ status: "skipped",
759
+ reason: "dynamic"
760
+ };
761
+ }
762
+ if (htmlRender.html === null) return {
763
+ route: routePattern,
764
+ status: "error",
765
+ error: "RSC handler returned no prerender HTML"
766
+ };
767
+ const html = isFallback ? markAppPprDynamicFallbackShellHtml(htmlRender.html) : htmlRender.html;
768
+ let rscData = extractRscPayloadFromPrerenderedHtml(html);
769
+ if (rscData === null) {
770
+ const rscHeaders = new Headers({
771
+ Accept: "text/x-component",
772
+ RSC: "1"
773
+ });
774
+ if (prerenderRouteParamsHeader !== null) rscHeaders.set(VINEXT_PRERENDER_ROUTE_PARAMS_HEADER, prerenderRouteParamsHeader);
775
+ const rscRequest = new Request(`http://localhost${urlPath}`, { headers: rscHeaders });
776
+ const rscRes = await runWithHeadersContext(headersContextFromRequest(rscRequest), () => rscHandler(rscRequest));
777
+ if (!rscRes.ok) {
778
+ await rscRes.body?.cancel();
779
+ throw new Error(`[vinext] prerenderApp: RSC fallback returned ${rscRes.status} for ${urlPath}`);
780
+ }
781
+ rscData = new Uint8Array(await rscRes.arrayBuffer());
782
+ }
783
+ const outputFiles = [];
784
+ const htmlOutputPath = getOutputPath(urlPath, config.trailingSlash);
785
+ const htmlFullPath = path.join(outDir, htmlOutputPath);
786
+ fs.mkdirSync(path.dirname(htmlFullPath), { recursive: true });
787
+ fs.writeFileSync(htmlFullPath, html, "utf-8");
788
+ outputFiles.push(htmlOutputPath);
789
+ const rscOutputPath = getRscOutputPath(urlPath);
790
+ const rscFullPath = path.join(outDir, rscOutputPath);
791
+ fs.mkdirSync(path.dirname(rscFullPath), { recursive: true });
792
+ fs.writeFileSync(rscFullPath, rscData);
793
+ outputFiles.push(rscOutputPath);
794
+ const renderedCacheControl = resolveRenderedCacheControl(htmlRender.requestCacheLife ?? {}, htmlCacheControl, config.expireTime);
795
+ const renderedRevalidate = typeof revalidate === "number" ? renderedCacheControl.revalidate === void 0 ? revalidate : Math.min(revalidate, renderedCacheControl.revalidate) : renderedCacheControl.revalidate ?? revalidate;
796
+ return {
797
+ route: routePattern,
798
+ status: "rendered",
799
+ outputFiles,
800
+ revalidate: renderedRevalidate,
801
+ ...typeof renderedRevalidate === "number" ? { expire: renderedCacheControl.expire } : {},
802
+ router: "app",
803
+ ...urlPath !== routePattern ? { path: urlPath } : {},
804
+ ...isFallback ? { fallback: true } : {}
805
+ };
806
+ } catch (e) {
807
+ if (isSpeculative) return {
808
+ route: routePattern,
809
+ status: "skipped",
810
+ reason: "dynamic"
811
+ };
812
+ const err = e;
813
+ const base = config.enablePrerenderSourceMaps ? getErrorMessageWithStack(err) : err.message;
814
+ return {
815
+ route: routePattern,
816
+ status: "error",
817
+ error: err.digest ? `${base} (digest: ${err.digest})` : base
818
+ };
819
+ }
820
+ }
821
+ let completedApp = 0;
822
+ const appResults = await runWithConcurrency(urlsToRender, concurrency, async (urlToRender) => {
823
+ const result = await renderUrl(urlToRender);
824
+ onProgress?.({
825
+ completed: ++completedApp,
826
+ total: urlsToRender.length,
827
+ route: urlToRender.urlPath,
828
+ status: result.status
829
+ });
830
+ return result;
831
+ });
832
+ results.push(...appResults);
833
+ const outputFiles = mode === "export" && metadataRoutes.length > 0 ? emitStaticMetadataFiles(metadataRoutes, outDir) : [];
834
+ try {
835
+ const notFoundRequest = new Request(`http://localhost${NOT_FOUND_SENTINEL_PATH}`);
836
+ const notFoundRes = await runWithHeadersContext(headersContextFromRequest(notFoundRequest), () => rscHandler(notFoundRequest));
837
+ if (notFoundRes.status === 404) {
838
+ const html404 = await notFoundRes.text();
839
+ const fullPath = path.join(outDir, "404.html");
840
+ fs.mkdirSync(path.dirname(fullPath), { recursive: true });
841
+ fs.writeFileSync(fullPath, html404, "utf-8");
842
+ results.push({
843
+ route: "/404",
844
+ status: "rendered",
845
+ outputFiles: ["404.html"],
846
+ revalidate: false,
847
+ router: "app"
848
+ });
849
+ }
850
+ } catch {}
851
+ if (!skipManifest) writePrerenderIndex(results, manifestDir, {
852
+ buildId: config.buildId,
853
+ trailingSlash: config.trailingSlash
854
+ });
855
+ return {
856
+ routes: results,
857
+ ...outputFiles.length > 0 ? { outputFiles } : {}
858
+ };
859
+ } finally {
860
+ setCacheHandler(previousHandler);
861
+ if (previousPrerenderFlag === void 0) delete process.env.VINEXT_PRERENDER;
862
+ else process.env.VINEXT_PRERENDER = previousPrerenderFlag;
863
+ if (ownedProdServerHandle) await new Promise((resolve) => ownedProdServerHandle.server.close(() => resolve()));
864
+ }
865
+ }
866
+ function resolveRenderedCacheControl(requestCacheLife, cacheControl, fallbackExpireSeconds) {
867
+ const sMaxage = parseCacheControlSeconds(cacheControl, "s-maxage");
868
+ const staleWhileRevalidate = parseCacheControlSeconds(cacheControl, "stale-while-revalidate");
869
+ const revalidate = requestCacheLife.revalidate ?? (staleWhileRevalidate === void 0 ? void 0 : sMaxage);
870
+ return {
871
+ expire: requestCacheLife.expire ?? resolveRenderedExpireSeconds({
872
+ fallbackExpireSeconds,
873
+ sMaxage,
874
+ staleWhileRevalidate
875
+ }),
876
+ ...revalidate === void 0 ? {} : { revalidate }
877
+ };
878
+ }
879
+ function resolveRenderedExpireSeconds(options) {
880
+ const { fallbackExpireSeconds, sMaxage, staleWhileRevalidate } = options;
881
+ if (sMaxage === void 0 || staleWhileRevalidate === void 0) return fallbackExpireSeconds;
882
+ return sMaxage + staleWhileRevalidate;
883
+ }
884
+ function parseCacheControlSeconds(cacheControl, directive) {
885
+ for (const part of cacheControl.split(",")) {
886
+ const [rawName, rawValue] = part.trim().split("=", 2);
887
+ if (rawName.trim().toLowerCase() !== directive) continue;
888
+ if (rawValue === void 0) return void 0;
889
+ const value = Number(rawValue.trim());
890
+ if (!Number.isFinite(value) || value < 0) return void 0;
891
+ return value;
892
+ }
893
+ }
894
+ /**
895
+ * Write `vinext-prerender.json` to `outDir`.
896
+ *
897
+ * Contains a flat list of route results used during testing and as a seed for
898
+ * ISR cache population at production startup. The `buildId` is included so
899
+ * the seeding function can construct matching cache keys.
900
+ */
901
+ function writePrerenderIndex(routes, outDir, options) {
902
+ const { buildId, trailingSlash } = options ?? {};
903
+ const indexRoutes = routes.map((r) => {
904
+ if (r.status === "rendered") return {
905
+ route: r.route,
906
+ status: r.status,
907
+ revalidate: r.revalidate,
908
+ ...typeof r.revalidate === "number" ? { expire: r.expire } : {},
909
+ router: r.router,
910
+ ...r.path ? { path: r.path } : {},
911
+ ...r.fallback ? { fallback: true } : {}
912
+ };
913
+ if (r.status === "skipped") return {
914
+ route: r.route,
915
+ status: r.status,
916
+ reason: r.reason
917
+ };
918
+ return {
919
+ route: r.route,
920
+ status: r.status,
921
+ error: r.error
922
+ };
923
+ });
924
+ const index = {
925
+ ...buildId ? { buildId } : {},
926
+ ...typeof trailingSlash === "boolean" ? { trailingSlash } : {},
927
+ routes: indexRoutes
928
+ };
929
+ fs.writeFileSync(path.join(outDir, "vinext-prerender.json"), JSON.stringify(index, null, 2), "utf-8");
930
+ }
931
+ //#endregion
932
+ export { extractRscPayloadFromPrerenderedHtml, prerenderApp, prerenderPages, readPrerenderSecret, resolveParentParams, writePrerenderIndex };