@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,9 @@
1
+ //#region src/server/dev-initial-server-error.d.ts
2
+ type InitialDevServerErrorPayload = {
3
+ message: string;
4
+ name?: string;
5
+ stack?: string;
6
+ };
7
+ declare function createInitialDevServerErrorScript(error: unknown, scriptNonce?: string, nodeEnv?: string | undefined): string;
8
+ //#endregion
9
+ export { InitialDevServerErrorPayload, createInitialDevServerErrorScript };
@@ -0,0 +1,26 @@
1
+ import { createInlineScriptTag, safeJsonStringify } from "./html.js";
2
+ //#region src/server/dev-initial-server-error.ts
3
+ const INITIAL_DEV_SERVER_ERRORS_GLOBAL = "__VINEXT_INITIAL_DEV_ERRORS__";
4
+ function stringifyThrownValue(error) {
5
+ if (typeof error === "string") return error;
6
+ try {
7
+ return String(error);
8
+ } catch {
9
+ return Object.prototype.toString.call(error);
10
+ }
11
+ }
12
+ function createInitialDevServerErrorPayload(error) {
13
+ if (error instanceof Error) return {
14
+ message: error.message,
15
+ name: error.name || void 0,
16
+ stack: error.stack || void 0
17
+ };
18
+ return { message: stringifyThrownValue(error) };
19
+ }
20
+ function createInitialDevServerErrorScript(error, scriptNonce, nodeEnv = process.env.NODE_ENV) {
21
+ if (error == null || nodeEnv === "production") return "";
22
+ const globalRef = "self[" + safeJsonStringify(INITIAL_DEV_SERVER_ERRORS_GLOBAL) + "]";
23
+ return createInlineScriptTag(`${globalRef}=${globalRef}||[];${globalRef}.push(${safeJsonStringify(createInitialDevServerErrorPayload(error))})`, scriptNonce);
24
+ }
25
+ //#endregion
26
+ export { createInitialDevServerErrorScript };
@@ -0,0 +1,109 @@
1
+ //#region src/server/dev-lockfile.d.ts
2
+ /**
3
+ * Dev server lock file.
4
+ *
5
+ * Writes the running dev server's PID, port, and URL into a lock file at
6
+ * `<root>/.vinext/dev/lock.json`. When a second `vinext dev` process starts in
7
+ * the same project directory, it reads the lock file and either fails with an
8
+ * actionable error or, if the previous process is dead, takes over the lock.
9
+ *
10
+ * This is especially useful for AI coding agents, which frequently attempt to
11
+ * start `vinext dev` without knowing a server is already running.
12
+ *
13
+ * Ported behaviorally from Next.js:
14
+ * https://github.com/vercel/next.js/blob/canary/packages/next/src/build/lockfile.ts
15
+ *
16
+ * Differences vs Next.js:
17
+ * - No native `flock()`. Next.js uses Rust SWC bindings for cross-platform
18
+ * advisory locking; vinext uses a JSON file plus a PID liveness check
19
+ * (`process.kill(pid, 0)`), which is good enough for the dev-server
20
+ * "another server is running" use case. Race conditions on lock acquisition
21
+ * are tolerated: at worst, two dev servers race and one fails to bind a port.
22
+ * - Lock file lives in `<root>/.vinext/dev/lock.json` (mirroring Next.js'
23
+ * `.next/dev/lock` layout). `.vinext/` is already used by the fonts plugin
24
+ * to cache self-hosted Google Fonts, so this re-uses the same project-local
25
+ * state directory rather than polluting `node_modules`.
26
+ */
27
+ /**
28
+ * Information about a running dev server, stored inside the lock file itself.
29
+ */
30
+ type DevServerInfo = {
31
+ pid: number;
32
+ port: number;
33
+ hostname: string;
34
+ appUrl: string;
35
+ startedAt: number; /** Project directory the server is running in. Used to detect stale entries. */
36
+ cwd: string;
37
+ };
38
+ type DevLockfile = {
39
+ /** Update the lock file contents (e.g. once the port is known after listen). */update(info: DevServerInfo): void; /** Release the lock — deletes the file. Safe to call multiple times. */
40
+ release(): void; /** Absolute path to the lock file. */
41
+ path: string;
42
+ };
43
+ /**
44
+ * Returns the absolute path to the lock file for a given project root.
45
+ */
46
+ declare function getLockfilePath(root: string): string;
47
+ /**
48
+ * Reads and parses the lock file at the given path. Returns `undefined` if the
49
+ * file doesn't exist or can't be parsed.
50
+ */
51
+ declare function readLockfile(lockfilePath: string): DevServerInfo | undefined;
52
+ /**
53
+ * Returns true if a process with the given PID is running.
54
+ *
55
+ * Uses `process.kill(pid, 0)`, which sends a null signal — it doesn't actually
56
+ * kill the process, it just checks if it exists. Throws `ESRCH` if the process
57
+ * doesn't exist, or `EPERM` if it exists but we don't have permission to
58
+ * signal it (in which case it's still running, just owned by someone else).
59
+ */
60
+ declare function isPidAlive(pid: number): boolean;
61
+ type FormatErrorOptions = {
62
+ /** Existing server info from the lock file, if readable. */existing: DevServerInfo | undefined; /** Project directory the new (failing) process is trying to run in. */
63
+ cwd: string; /** Path to the lock file. */
64
+ lockfilePath: string;
65
+ };
66
+ /**
67
+ * Format the error message printed when another dev server is already running.
68
+ *
69
+ * Matches Next.js' error layout so AI agents and CLIs can parse the same
70
+ * `- PID: ` / `- Local: ` lines.
71
+ *
72
+ * The `existing: undefined` branch below is defensive — `tryAcquireLockfile`
73
+ * currently only returns `ok: false` with a defined `existing`, but the
74
+ * formatter is exported and unit-tested separately, so it handles both shapes.
75
+ */
76
+ declare function formatAlreadyRunningError(opts: FormatErrorOptions): string;
77
+ type AcquireOptions = {
78
+ /** Project root. Lock file goes in `<root>/.vinext/dev/lock.json`. */root: string; /** Initial server info to write. Port/URL may be updated later via `update()`. */
79
+ info: DevServerInfo;
80
+ /**
81
+ * If a lock file exists but its PID is dead, take over instead of failing.
82
+ * Defaults to `true`. Set to `false` for testing.
83
+ */
84
+ takeOverStale?: boolean; /** Register `process.on('exit', release)`. Defaults to `true`. */
85
+ unlockOnExit?: boolean;
86
+ };
87
+ type AcquireSuccess = {
88
+ ok: true;
89
+ lockfile: DevLockfile;
90
+ };
91
+ type AcquireFailure = {
92
+ ok: false; /** The server info from the existing lock file, if readable. */
93
+ existing: DevServerInfo | undefined; /** Absolute path to the lock file. */
94
+ lockfilePath: string;
95
+ };
96
+ type AcquireResult = AcquireSuccess | AcquireFailure;
97
+ /**
98
+ * Try to acquire the dev lock file for the given project root.
99
+ *
100
+ * Returns `{ ok: true, lockfile }` on success — the caller should call
101
+ * `lockfile.release()` on shutdown (or rely on the exit listener registered
102
+ * via `unlockOnExit`).
103
+ *
104
+ * Returns `{ ok: false, existing, lockfilePath }` if another live dev server
105
+ * already holds the lock.
106
+ */
107
+ declare function tryAcquireLockfile(opts: AcquireOptions): AcquireResult;
108
+ //#endregion
109
+ export { DevLockfile, DevServerInfo, formatAlreadyRunningError, getLockfilePath, isPidAlive, readLockfile, tryAcquireLockfile };
@@ -0,0 +1,179 @@
1
+ import { normalizePathSeparators } from "../utils/path.js";
2
+ import fs from "node:fs";
3
+ import path from "node:path";
4
+ //#region src/server/dev-lockfile.ts
5
+ /**
6
+ * Dev server lock file.
7
+ *
8
+ * Writes the running dev server's PID, port, and URL into a lock file at
9
+ * `<root>/.vinext/dev/lock.json`. When a second `vinext dev` process starts in
10
+ * the same project directory, it reads the lock file and either fails with an
11
+ * actionable error or, if the previous process is dead, takes over the lock.
12
+ *
13
+ * This is especially useful for AI coding agents, which frequently attempt to
14
+ * start `vinext dev` without knowing a server is already running.
15
+ *
16
+ * Ported behaviorally from Next.js:
17
+ * https://github.com/vercel/next.js/blob/canary/packages/next/src/build/lockfile.ts
18
+ *
19
+ * Differences vs Next.js:
20
+ * - No native `flock()`. Next.js uses Rust SWC bindings for cross-platform
21
+ * advisory locking; vinext uses a JSON file plus a PID liveness check
22
+ * (`process.kill(pid, 0)`), which is good enough for the dev-server
23
+ * "another server is running" use case. Race conditions on lock acquisition
24
+ * are tolerated: at worst, two dev servers race and one fails to bind a port.
25
+ * - Lock file lives in `<root>/.vinext/dev/lock.json` (mirroring Next.js'
26
+ * `.next/dev/lock` layout). `.vinext/` is already used by the fonts plugin
27
+ * to cache self-hosted Google Fonts, so this re-uses the same project-local
28
+ * state directory rather than polluting `node_modules`.
29
+ */
30
+ const LOCK_DIR_RELATIVE = path.join(".vinext", "dev");
31
+ const LOCK_FILE_NAME = "lock.json";
32
+ /**
33
+ * Returns the absolute path to the lock file for a given project root.
34
+ */
35
+ function getLockfilePath(root) {
36
+ return path.join(root, LOCK_DIR_RELATIVE, LOCK_FILE_NAME);
37
+ }
38
+ /**
39
+ * Reads and parses the lock file at the given path. Returns `undefined` if the
40
+ * file doesn't exist or can't be parsed.
41
+ */
42
+ function readLockfile(lockfilePath) {
43
+ let content;
44
+ try {
45
+ content = fs.readFileSync(lockfilePath, "utf-8");
46
+ } catch {
47
+ return;
48
+ }
49
+ try {
50
+ const parsed = JSON.parse(content);
51
+ if (typeof parsed.pid === "number" && typeof parsed.port === "number" && typeof parsed.hostname === "string" && typeof parsed.appUrl === "string" && typeof parsed.startedAt === "number" && typeof parsed.cwd === "string") return parsed;
52
+ return;
53
+ } catch {
54
+ return;
55
+ }
56
+ }
57
+ /**
58
+ * Returns true if a process with the given PID is running.
59
+ *
60
+ * Uses `process.kill(pid, 0)`, which sends a null signal — it doesn't actually
61
+ * kill the process, it just checks if it exists. Throws `ESRCH` if the process
62
+ * doesn't exist, or `EPERM` if it exists but we don't have permission to
63
+ * signal it (in which case it's still running, just owned by someone else).
64
+ */
65
+ function isPidAlive(pid) {
66
+ if (!Number.isInteger(pid) || pid <= 0) return false;
67
+ try {
68
+ process.kill(pid, 0);
69
+ return true;
70
+ } catch (err) {
71
+ return err.code === "EPERM";
72
+ }
73
+ }
74
+ /**
75
+ * Writes the lock file with the given content. Creates the parent directory
76
+ * if it doesn't exist.
77
+ *
78
+ * Mode `0o600` because the lock file contains a PID that, in principle, lets
79
+ * other users on the machine send signals to this user's dev server.
80
+ * Restricting reads is defense-in-depth: the PID is also discoverable via
81
+ * `ps` and the port via `netstat`/`ss`, so this isn't load-bearing.
82
+ */
83
+ function writeLockfile(lockfilePath, info) {
84
+ fs.mkdirSync(path.dirname(lockfilePath), { recursive: true });
85
+ fs.writeFileSync(lockfilePath, JSON.stringify(info, null, 2), { mode: 384 });
86
+ }
87
+ /**
88
+ * Format the error message printed when another dev server is already running.
89
+ *
90
+ * Matches Next.js' error layout so AI agents and CLIs can parse the same
91
+ * `- PID: ` / `- Local: ` lines.
92
+ *
93
+ * The `existing: undefined` branch below is defensive — `tryAcquireLockfile`
94
+ * currently only returns `ok: false` with a defined `existing`, but the
95
+ * formatter is exported and unit-tested separately, so it handles both shapes.
96
+ */
97
+ function formatAlreadyRunningError(opts) {
98
+ const { existing, cwd, lockfilePath } = opts;
99
+ if (!existing) return [
100
+ "Another vinext dev server appears to be running in this directory.",
101
+ "",
102
+ `Stale lock file: ${normalizePathSeparators(path.relative(cwd, lockfilePath))}`,
103
+ "Remove it manually if no server is running, then re-run `vinext dev`."
104
+ ].join("\n");
105
+ const killCommand = process.platform === "win32" ? `taskkill /PID ${existing.pid} /F` : `kill ${existing.pid}`;
106
+ return [
107
+ "Another vinext dev server is already running.",
108
+ "",
109
+ `- Local: ${existing.appUrl}`,
110
+ `- PID: ${existing.pid}`,
111
+ `- Dir: ${existing.cwd}`,
112
+ "",
113
+ `You can access the existing server at ${existing.appUrl},`,
114
+ `or run \`${killCommand}\` to stop it and start a new one.`
115
+ ].join("\n");
116
+ }
117
+ /**
118
+ * Try to acquire the dev lock file for the given project root.
119
+ *
120
+ * Returns `{ ok: true, lockfile }` on success — the caller should call
121
+ * `lockfile.release()` on shutdown (or rely on the exit listener registered
122
+ * via `unlockOnExit`).
123
+ *
124
+ * Returns `{ ok: false, existing, lockfilePath }` if another live dev server
125
+ * already holds the lock.
126
+ */
127
+ function tryAcquireLockfile(opts) {
128
+ const { root, info, takeOverStale = true, unlockOnExit = true } = opts;
129
+ const lockfilePath = getLockfilePath(root);
130
+ const existing = readLockfile(lockfilePath);
131
+ if (existing) {
132
+ if (isPidAlive(existing.pid)) return {
133
+ ok: false,
134
+ existing,
135
+ lockfilePath
136
+ };
137
+ if (!takeOverStale) return {
138
+ ok: false,
139
+ existing,
140
+ lockfilePath
141
+ };
142
+ }
143
+ writeLockfile(lockfilePath, info);
144
+ const ownerPid = info.pid;
145
+ let released = false;
146
+ const release = () => {
147
+ if (released) return;
148
+ released = true;
149
+ try {
150
+ const current = readLockfile(lockfilePath);
151
+ if (current && current.pid === ownerPid) fs.unlinkSync(lockfilePath);
152
+ } catch {}
153
+ };
154
+ let exitListener;
155
+ if (unlockOnExit) {
156
+ exitListener = () => release();
157
+ process.on("exit", exitListener);
158
+ }
159
+ return {
160
+ ok: true,
161
+ lockfile: {
162
+ path: lockfilePath,
163
+ update(next) {
164
+ try {
165
+ writeLockfile(lockfilePath, next);
166
+ } catch {}
167
+ },
168
+ release() {
169
+ release();
170
+ if (exitListener) {
171
+ process.off("exit", exitListener);
172
+ exitListener = void 0;
173
+ }
174
+ }
175
+ }
176
+ };
177
+ }
178
+ //#endregion
179
+ export { formatAlreadyRunningError, getLockfilePath, isPidAlive, readLockfile, tryAcquireLockfile };
@@ -0,0 +1,30 @@
1
+ import { DevEnvironment } from "vite";
2
+ import { ModuleRunner } from "vite/module-runner";
3
+
4
+ //#region src/server/dev-module-runner.d.ts
5
+ /**
6
+ * A Vite DevEnvironment duck-typed to the minimal surface we need.
7
+ * `DevEnvironment.fetchModule()` is a plain async method available on all
8
+ * environment types — including Cloudflare's custom environments that don't
9
+ * support the hot-channel-based transport.
10
+ */
11
+ type DevEnvironmentLike = {
12
+ fetchModule: (id: string, importer?: string, options?: {
13
+ cached?: boolean;
14
+ startOffset?: number;
15
+ }) => Promise<Record<string, unknown>>;
16
+ };
17
+ /**
18
+ * Build a ModuleRunner that calls `environment.fetchModule()` directly,
19
+ * bypassing the hot channel entirely.
20
+ *
21
+ * Safe to construct and call at any time — including during `configureServer()`
22
+ * before the server is listening, and inside request handlers — because it
23
+ * never accesses `environment.hot.api`.
24
+ *
25
+ * @param environment - Any Vite DevEnvironment (or duck-typed equivalent).
26
+ * Typically `server.environments["ssr"]`.
27
+ */
28
+ declare function createDirectRunner(environment: DevEnvironmentLike | DevEnvironment): ModuleRunner;
29
+ //#endregion
30
+ export { createDirectRunner };
@@ -0,0 +1,91 @@
1
+ import { ESModulesEvaluator, ModuleRunner, createNodeImportMeta } from "vite/module-runner";
2
+ //#region src/server/dev-module-runner.ts
3
+ /**
4
+ * dev-module-runner.ts
5
+ *
6
+ * Shared utility for loading modules via a Vite DevEnvironment's
7
+ * fetchModule() method, bypassing the hot channel entirely.
8
+ *
9
+ * ## Why this exists
10
+ *
11
+ * Vite 7's `server.ssrLoadModule()` and the lazy `RunnableDevEnvironment.runner`
12
+ * getter both use `SSRCompatModuleRunner`, which constructs a
13
+ * `createServerModuleRunnerTransport` synchronously. That transport calls
14
+ * `connect()` immediately, which reads `environment.hot.api.outsideEmitter` —
15
+ * a property that only exists on `RunnableDevEnvironment` after the server
16
+ * starts listening.
17
+ *
18
+ * When `@cloudflare/vite-plugin` is present it registers its own Vite
19
+ * environments (e.g. `"rsc"`, `"ssr"`) that are *not* `RunnableDevEnvironment`
20
+ * instances. Calling `ssrLoadModule()` in that context crashes with:
21
+ *
22
+ * TypeError: Cannot read properties of undefined (reading 'outsideEmitter')
23
+ *
24
+ * This affects any code that needs to load a user module at request time (or
25
+ * at startup before the server is listening) from the host Node.js process:
26
+ * - Pages Router middleware (`runMiddleware` → `ssrLoadModule` on every request)
27
+ * - Pages Router instrumentation (`runInstrumentation` → `ssrLoadModule` at startup)
28
+ *
29
+ * ## The fix
30
+ *
31
+ * `DevEnvironment.fetchModule()` is a plain `async` method — it does not touch
32
+ * the hot channel at all. We build a `ModuleRunner` whose transport invokes
33
+ * `fetchModule()` directly. This is safe at any time: before the server is
34
+ * listening, during request handling, whenever.
35
+ *
36
+ * ## Usage
37
+ *
38
+ * ```ts
39
+ * import { createDirectRunner } from "./dev-module-runner.js";
40
+ *
41
+ * const runner = createDirectRunner(server.environments["ssr"]);
42
+ * const mod = await runner.import("/abs/path/to/file.ts");
43
+ * await runner.close();
44
+ * ```
45
+ *
46
+ * For long-lived use (e.g. per-request middleware loading), create the runner
47
+ * once and reuse it — do NOT create a new runner on every request.
48
+ *
49
+ * ## Environment selection
50
+ *
51
+ * Prefer the `"ssr"` environment; fall back to any other available environment.
52
+ * Never use the `"rsc"` environment for Pages Router concerns — that environment
53
+ * may be a Cloudflare Workers environment and not suitable for Node.js modules.
54
+ *
55
+ * ```ts
56
+ * const env = server.environments["ssr"] ?? Object.values(server.environments)[0];
57
+ * const runner = createDirectRunner(env);
58
+ * ```
59
+ */
60
+ /**
61
+ * Build a ModuleRunner that calls `environment.fetchModule()` directly,
62
+ * bypassing the hot channel entirely.
63
+ *
64
+ * Safe to construct and call at any time — including during `configureServer()`
65
+ * before the server is listening, and inside request handlers — because it
66
+ * never accesses `environment.hot.api`.
67
+ *
68
+ * @param environment - Any Vite DevEnvironment (or duck-typed equivalent).
69
+ * Typically `server.environments["ssr"]`.
70
+ */
71
+ function createDirectRunner(environment) {
72
+ return new ModuleRunner({
73
+ transport: { invoke: async (payload) => {
74
+ const { name, data: args } = payload.data;
75
+ if (name === "fetchModule") {
76
+ const [id, importer, options] = args;
77
+ return { result: await environment.fetchModule(id, importer, options) };
78
+ }
79
+ if (name === "getBuiltins") return { result: [] };
80
+ return { error: {
81
+ name: "Error",
82
+ message: `[vinext] Unexpected ModuleRunner invoke: ${name}`
83
+ } };
84
+ } },
85
+ createImportMeta: createNodeImportMeta,
86
+ sourcemapInterceptor: false,
87
+ hmr: false
88
+ }, new ESModulesEvaluator());
89
+ }
90
+ //#endregion
91
+ export { createDirectRunner };
@@ -0,0 +1,62 @@
1
+ //#region src/server/dev-origin-check.d.ts
2
+ /**
3
+ * Cross-origin request protection for the dev server.
4
+ *
5
+ * Prevents external websites from making cross-origin requests to the
6
+ * local dev server and reading the responses (data exfiltration).
7
+ *
8
+ * Vite 7 provides built-in CORS and WebSocket origin protection, but
9
+ * vinext overrides Vite's CORS config to allow OPTIONS passthrough.
10
+ * This module adds origin verification to vinext's own request handlers.
11
+ */
12
+ /**
13
+ * Check if a request origin is allowed for dev server access.
14
+ *
15
+ * Returns true if the request should be allowed, false if it should be blocked.
16
+ *
17
+ * Allowed origins:
18
+ * - Requests with no Origin header (same-origin navigations, curl, etc.)
19
+ * - Requests from localhost, 127.0.0.1, or [::1] (any port)
20
+ * - Requests from any subdomain of localhost (e.g., foo.localhost)
21
+ * - Requests where Origin hostname matches the Host header
22
+ * - Requests from origins in the allowedDevOrigins list
23
+ *
24
+ * @param origin - The Origin header value (may be null/undefined)
25
+ * @param host - The Host header value for same-origin comparison
26
+ * @param allowedDevOrigins - Additional allowed origins from config
27
+ */
28
+ declare function isAllowedDevOrigin(origin: string | null | undefined, host: string | null | undefined, allowedDevOrigins?: string[]): boolean;
29
+ /**
30
+ * Check if a cross-origin request should be blocked based on Sec-Fetch headers.
31
+ *
32
+ * Browsers set `Sec-Fetch-Site: cross-site` and `Sec-Fetch-Mode: no-cors` on
33
+ * requests from <script>, <img>, <link> tags on a different origin. These
34
+ * requests don't include an Origin header but can still exfiltrate data via
35
+ * script execution or timing side channels.
36
+ *
37
+ * @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/Sec-Fetch-Site
38
+ */
39
+ declare function isCrossSiteNoCorsRequest(secFetchSite: string | null | undefined, secFetchMode: string | null | undefined): boolean;
40
+ /**
41
+ * Validate a dev server request from a Node.js IncomingMessage.
42
+ *
43
+ * Returns null if the request is allowed, or a reason string if it should be blocked.
44
+ * This is used by the Pages Router connect middleware.
45
+ */
46
+ declare function validateDevRequest(headers: {
47
+ origin?: string;
48
+ host?: string;
49
+ "x-forwarded-host"?: string;
50
+ "sec-fetch-site"?: string;
51
+ "sec-fetch-mode"?: string;
52
+ }, allowedDevOrigins?: string[]): string | null;
53
+ /**
54
+ * Generate JavaScript code for origin validation in the App Router RSC entry.
55
+ *
56
+ * The App Router handler runs in the RSC Vite environment where requests are
57
+ * Web API Request objects (not Node.js IncomingMessage). This generates inline
58
+ * code that performs the same checks as validateDevRequest().
59
+ */
60
+ declare function generateDevOriginCheckCode(allowedDevOrigins?: string[]): string;
61
+ //#endregion
62
+ export { generateDevOriginCheckCode, isAllowedDevOrigin, isCrossSiteNoCorsRequest, validateDevRequest };
@@ -0,0 +1,156 @@
1
+ //#region src/server/dev-origin-check.ts
2
+ /**
3
+ * Cross-origin request protection for the dev server.
4
+ *
5
+ * Prevents external websites from making cross-origin requests to the
6
+ * local dev server and reading the responses (data exfiltration).
7
+ *
8
+ * Vite 7 provides built-in CORS and WebSocket origin protection, but
9
+ * vinext overrides Vite's CORS config to allow OPTIONS passthrough.
10
+ * This module adds origin verification to vinext's own request handlers.
11
+ */
12
+ /**
13
+ * Default hostnames considered safe for dev server access.
14
+ * These are always allowed regardless of configuration.
15
+ */
16
+ const SAFE_DEV_HOSTS = [
17
+ "localhost",
18
+ "127.0.0.1",
19
+ "[::1]"
20
+ ];
21
+ /**
22
+ * Check if a request origin is allowed for dev server access.
23
+ *
24
+ * Returns true if the request should be allowed, false if it should be blocked.
25
+ *
26
+ * Allowed origins:
27
+ * - Requests with no Origin header (same-origin navigations, curl, etc.)
28
+ * - Requests from localhost, 127.0.0.1, or [::1] (any port)
29
+ * - Requests from any subdomain of localhost (e.g., foo.localhost)
30
+ * - Requests where Origin hostname matches the Host header
31
+ * - Requests from origins in the allowedDevOrigins list
32
+ *
33
+ * @param origin - The Origin header value (may be null/undefined)
34
+ * @param host - The Host header value for same-origin comparison
35
+ * @param allowedDevOrigins - Additional allowed origins from config
36
+ */
37
+ function isAllowedDevOrigin(origin, host, allowedDevOrigins) {
38
+ if (!origin) return true;
39
+ if (origin === "null") return allowedDevOrigins?.includes("null") ?? false;
40
+ let originHostname;
41
+ try {
42
+ originHostname = new URL(origin).hostname.toLowerCase();
43
+ } catch {
44
+ return false;
45
+ }
46
+ if (SAFE_DEV_HOSTS.includes(originHostname)) return true;
47
+ if (originHostname.endsWith(".localhost")) return true;
48
+ if (host) {
49
+ const hostHostname = host.split(",")[0].trim().split(":")[0].toLowerCase();
50
+ if (originHostname === hostHostname) return true;
51
+ }
52
+ if (allowedDevOrigins) {
53
+ for (const pattern of allowedDevOrigins) if (pattern.startsWith("*.")) {
54
+ const suffix = pattern.slice(1);
55
+ if (originHostname === pattern.slice(2) || originHostname.endsWith(suffix)) return true;
56
+ } else if (originHostname === pattern) return true;
57
+ }
58
+ return false;
59
+ }
60
+ /**
61
+ * Check if a cross-origin request should be blocked based on Sec-Fetch headers.
62
+ *
63
+ * Browsers set `Sec-Fetch-Site: cross-site` and `Sec-Fetch-Mode: no-cors` on
64
+ * requests from <script>, <img>, <link> tags on a different origin. These
65
+ * requests don't include an Origin header but can still exfiltrate data via
66
+ * script execution or timing side channels.
67
+ *
68
+ * @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/Sec-Fetch-Site
69
+ */
70
+ function isCrossSiteNoCorsRequest(secFetchSite, secFetchMode) {
71
+ return secFetchMode === "no-cors" && secFetchSite === "cross-site";
72
+ }
73
+ /**
74
+ * Validate a dev server request from a Node.js IncomingMessage.
75
+ *
76
+ * Returns null if the request is allowed, or a reason string if it should be blocked.
77
+ * This is used by the Pages Router connect middleware.
78
+ */
79
+ function validateDevRequest(headers, allowedDevOrigins) {
80
+ if (isCrossSiteNoCorsRequest(headers["sec-fetch-site"], headers["sec-fetch-mode"])) return `cross-site no-cors request blocked`;
81
+ const effectiveHost = headers["x-forwarded-host"] || headers.host;
82
+ if (!isAllowedDevOrigin(headers.origin, effectiveHost, allowedDevOrigins)) return `origin "${headers.origin}" is not allowed`;
83
+ return null;
84
+ }
85
+ /**
86
+ * Generate JavaScript code for origin validation in the App Router RSC entry.
87
+ *
88
+ * The App Router handler runs in the RSC Vite environment where requests are
89
+ * Web API Request objects (not Node.js IncomingMessage). This generates inline
90
+ * code that performs the same checks as validateDevRequest().
91
+ */
92
+ function generateDevOriginCheckCode(allowedDevOrigins) {
93
+ return `
94
+ // ── Dev server origin verification ──────────────────────────────────────
95
+ // Block cross-origin requests to prevent data exfiltration during development.
96
+ const __allowedDevOrigins = ${JSON.stringify(allowedDevOrigins ?? [])};
97
+ const __safeDevHosts = ["localhost", "127.0.0.1", "[::1]"];
98
+
99
+ function __forbidden() {
100
+ return new Response("Forbidden", { status: 403, headers: { "Content-Type": "text/plain" } });
101
+ }
102
+
103
+ function __validateDevRequestOrigin(request) {
104
+ // Check Sec-Fetch headers (catches <script> tag exfiltration)
105
+ if (request.headers.get("sec-fetch-mode") === "no-cors" &&
106
+ request.headers.get("sec-fetch-site") === "cross-site") {
107
+ console.warn("[vinext] Blocked cross-site no-cors request to " + new URL(request.url).pathname);
108
+ return __forbidden();
109
+ }
110
+
111
+ const origin = request.headers.get("origin");
112
+ if (!origin) return null;
113
+
114
+ // Origin "null" is sent by opaque/sandboxed contexts. Block unless explicitly allowed.
115
+ if (origin === "null") {
116
+ if (!__allowedDevOrigins.includes("null")) {
117
+ console.warn("[vinext] Blocked request with Origin: null. Add \\"null\\" to allowedDevOrigins to allow sandboxed contexts.");
118
+ return __forbidden();
119
+ }
120
+ return null;
121
+ }
122
+
123
+ let originHostname;
124
+ try {
125
+ originHostname = new URL(origin).hostname.toLowerCase();
126
+ } catch {
127
+ return __forbidden();
128
+ }
129
+
130
+ // Allow localhost, 127.0.0.1, [::1], and *.localhost
131
+ if (__safeDevHosts.includes(originHostname) || originHostname.endsWith(".localhost")) return null;
132
+
133
+ // Same-origin: compare against Host header
134
+ const hostHeader = (request.headers.get("x-forwarded-host") || request.headers.get("host") || "").split(",")[0].trim().split(":")[0].toLowerCase();
135
+ if (hostHeader && originHostname === hostHeader) return null;
136
+
137
+ // Check user-configured allowed origins
138
+ for (const pattern of __allowedDevOrigins) {
139
+ if (pattern.startsWith("*.")) {
140
+ const suffix = pattern.slice(1);
141
+ if (originHostname === pattern.slice(2) || originHostname.endsWith(suffix)) return null;
142
+ } else if (originHostname === pattern) {
143
+ return null;
144
+ }
145
+ }
146
+
147
+ console.warn(
148
+ \`[vinext] Blocked cross-origin request from "\${origin}" to \${new URL(request.url).pathname}. \` +
149
+ \`To allow this origin, add it to allowedDevOrigins in next.config.js.\`
150
+ );
151
+ return __forbidden();
152
+ }
153
+ `;
154
+ }
155
+ //#endregion
156
+ export { generateDevOriginCheckCode, isAllowedDevOrigin, isCrossSiteNoCorsRequest, validateDevRequest };
@@ -0,0 +1,6 @@
1
+ import { ValidFileMatcher } from "../routing/file-matcher.js";
2
+
3
+ //#region src/server/dev-route-files.d.ts
4
+ declare function shouldInvalidateAppRouteFile(appDir: string, filePath: string, matcher: ValidFileMatcher): boolean;
5
+ //#endregion
6
+ export { shouldInvalidateAppRouteFile };