vinext 1.3.0 → 1.3.1

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 (391) hide show
  1. package/dist/_virtual/_rolldown/runtime.js +1 -1
  2. package/dist/build/action-owner-manifest.d.ts +3 -2
  3. package/dist/build/action-owner-manifest.js +18 -2
  4. package/dist/build/app-page-static-eligibility.d.ts +17 -1
  5. package/dist/build/app-page-static-eligibility.js +80 -13
  6. package/dist/build/clean-output.d.ts +2 -1
  7. package/dist/build/client-build-config.d.ts +13 -3
  8. package/dist/build/client-build-config.js +46 -9
  9. package/dist/build/client-reference-async.d.ts +48 -0
  10. package/dist/build/client-reference-async.js +123 -0
  11. package/dist/build/client-reference-chunks.d.ts +32 -0
  12. package/dist/build/client-reference-chunks.js +111 -0
  13. package/dist/build/client-reference-groups.d.ts +9 -1
  14. package/dist/build/client-reference-groups.js +40 -2
  15. package/dist/build/css-url-assets.d.ts +2 -1
  16. package/dist/build/google-fonts/fallback-metrics.d.ts +2 -1
  17. package/dist/build/google-fonts/find-font-files-in-css.d.ts +1 -0
  18. package/dist/build/google-fonts/find-font-files-in-css.js +17 -4
  19. package/dist/build/google-fonts/font-metadata.d.ts +2 -1
  20. package/dist/build/google-fonts/validate.d.ts +2 -1
  21. package/dist/build/inline-css.d.ts +2 -1
  22. package/dist/build/layout-classification.d.ts +2 -1
  23. package/dist/build/module-dependency-cache.d.ts +2 -1
  24. package/dist/build/next-client-runtime-manifests.d.ts +2 -1
  25. package/dist/build/precompress.d.ts +2 -1
  26. package/dist/build/precompress.js +1 -1
  27. package/dist/build/prerender-paths.d.ts +2 -1
  28. package/dist/build/prerender-phase.d.ts +2 -1
  29. package/dist/build/prerender-server-pool.js +1 -1
  30. package/dist/build/prerender.d.ts +3 -2
  31. package/dist/build/prerender.js +5 -4
  32. package/dist/build/report.d.ts +2 -1
  33. package/dist/build/route-classification-injector.d.ts +2 -1
  34. package/dist/build/route-classification-manifest.d.ts +2 -1
  35. package/dist/build/run-prerender.d.ts +2 -1
  36. package/dist/build/server-actions-encryption-key.d.ts +2 -1
  37. package/dist/build/ssr-manifest.js +25 -2
  38. package/dist/build/standalone.d.ts +2 -1
  39. package/dist/cache/cache-adapters-virtual.d.ts +2 -1
  40. package/dist/cache.js +1 -2
  41. package/dist/check.d.ts +2 -1
  42. package/dist/check.js +4 -0
  43. package/dist/cli-args.d.ts +2 -1
  44. package/dist/cli.js +2 -0
  45. package/dist/client/client-redirect-matcher.js +2 -1
  46. package/dist/client/client-redirects.d.ts +4 -3
  47. package/dist/client/client-redirects.js +2 -1
  48. package/dist/client/client-rewrites.d.ts +2 -1
  49. package/dist/client/dev-error-overlay-store.d.ts +2 -1
  50. package/dist/client/index.js +1 -2
  51. package/dist/client/instrumentation-client-state.js +5 -5
  52. package/dist/client/navigation-runtime.d.ts +3 -1
  53. package/dist/client/navigation-runtime.js +1 -1
  54. package/dist/client/pages-router-link-navigation.d.ts +2 -1
  55. package/dist/client/vinext-next-data.d.ts +25 -1
  56. package/dist/client/window-next.d.ts +2 -1
  57. package/dist/config/config-matchers.d.ts +12 -1
  58. package/dist/config/config-matchers.js +111 -16
  59. package/dist/config/dotenv.d.ts +2 -1
  60. package/dist/config/next-config.d.ts +13 -1
  61. package/dist/config/next-config.js +29 -4
  62. package/dist/config/tsconfig-paths.d.ts +2 -1
  63. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/detector.js +23 -0
  64. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/index.js +2 -0
  65. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/lookup.js +25 -0
  66. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/bmp.js +11 -0
  67. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/cur.js +15 -0
  68. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/dds.js +11 -0
  69. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/gif.js +12 -0
  70. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/heif.js +55 -0
  71. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/icns.js +76 -0
  72. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/ico.js +39 -0
  73. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/index.js +46 -0
  74. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/j2c.js +11 -0
  75. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/jp2.js +21 -0
  76. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/jpg.js +71 -0
  77. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/jxl-stream.js +42 -0
  78. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/jxl.js +46 -0
  79. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/ktx.js +19 -0
  80. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/png.js +28 -0
  81. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/pnm.js +54 -0
  82. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/psd.js +11 -0
  83. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/svg.js +79 -0
  84. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/tga.js +15 -0
  85. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/tiff.js +96 -0
  86. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/utils.js +53 -0
  87. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/webp.js +45 -0
  88. package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/utils/bit-reader.js +38 -0
  89. package/dist/deps/.pnpm/ua-parser-js@1.0.35/deps/ua-parser-js/src/ua-parser.js +2 -2
  90. package/dist/entries/app-browser-entry.d.ts +20 -5
  91. package/dist/entries/app-browser-entry.js +79 -6
  92. package/dist/entries/app-rsc-entry.d.ts +2 -1
  93. package/dist/entries/app-rsc-entry.js +42 -12
  94. package/dist/entries/app-rsc-manifest.d.ts +2 -1
  95. package/dist/entries/app-rsc-manifest.js +53 -0
  96. package/dist/entries/pages-entry-helpers.js +1 -2
  97. package/dist/entries/pages-server-entry.d.ts +2 -1
  98. package/dist/entries/pages-server-entry.js +1 -1
  99. package/dist/entries/runtime-entry-module.d.ts +1 -0
  100. package/dist/entries/runtime-entry-module.js +4 -1
  101. package/dist/image/image-adapters-virtual.d.ts +2 -1
  102. package/dist/index.js +102 -34
  103. package/dist/plugins/client-compile-hints.d.ts +30 -0
  104. package/dist/plugins/client-compile-hints.js +88 -0
  105. package/dist/plugins/client-reference-dedup.d.ts +2 -1
  106. package/dist/plugins/cloudflare-dev-module-urls.d.ts +2 -1
  107. package/dist/plugins/dynamic-preload-metadata.d.ts +3 -1
  108. package/dist/plugins/dynamic-preload-metadata.js +1 -1
  109. package/dist/plugins/environment.d.ts +2 -1
  110. package/dist/plugins/fonts.js +9 -12
  111. package/dist/plugins/ignore-dynamic-requests.d.ts +2 -1
  112. package/dist/plugins/import-meta-url.d.ts +2 -1
  113. package/dist/plugins/og-assets.d.ts +2 -1
  114. package/dist/plugins/og-assets.js +2 -3
  115. package/dist/plugins/optimize-imports.d.ts +2 -1
  116. package/dist/plugins/pages-node-externals.d.ts +2 -1
  117. package/dist/plugins/remove-console.d.ts +2 -1
  118. package/dist/plugins/require-condition-resolution.d.ts +2 -1
  119. package/dist/plugins/rsc-client-reference-loaders.d.ts +8 -0
  120. package/dist/plugins/rsc-client-reference-loaders.js +170 -68
  121. package/dist/plugins/rsc-client-shim-excludes.js +2 -0
  122. package/dist/plugins/sass.d.ts +2 -1
  123. package/dist/plugins/strip-server-exports.d.ts +2 -1
  124. package/dist/plugins/styled-jsx.d.ts +2 -1
  125. package/dist/plugins/transform-result.d.ts +2 -1
  126. package/dist/plugins/typeof-window.d.ts +2 -1
  127. package/dist/plugins/worker-image-imports.js +1 -1
  128. package/dist/plugins/worker-use-server.d.ts +2 -1
  129. package/dist/routing/app-route-graph.d.ts +40 -0
  130. package/dist/routing/app-route-graph.js +122 -50
  131. package/dist/routing/browser-route-manifest.d.ts +2 -1
  132. package/dist/routing/optimistic-route-trie.d.ts +2 -1
  133. package/dist/routing/route-matching.d.ts +2 -1
  134. package/dist/routing/route-pattern.d.ts +2 -1
  135. package/dist/server/accept-encoding.d.ts +2 -1
  136. package/dist/server/app-action-forwarding.d.ts +2 -1
  137. package/dist/server/app-bfcache-identity.d.ts +2 -1
  138. package/dist/server/app-browser-action-result.d.ts +2 -1
  139. package/dist/server/app-browser-client-reuse-manifest.d.ts +2 -1
  140. package/dist/server/app-browser-entry.js +30 -6
  141. package/dist/server/app-browser-error.d.ts +2 -1
  142. package/dist/server/app-browser-history-controller.d.ts +2 -1
  143. package/dist/server/app-browser-hydration.d.ts +2 -1
  144. package/dist/server/app-browser-interception-context.d.ts +2 -1
  145. package/dist/server/app-browser-navigation-controller.js +15 -10
  146. package/dist/server/app-browser-popstate.d.ts +2 -1
  147. package/dist/server/app-browser-rsc-redirect.d.ts +2 -1
  148. package/dist/server/app-browser-server-action-client.d.ts +2 -1
  149. package/dist/server/app-browser-state.js +1 -1
  150. package/dist/server/app-browser-stream.d.ts +2 -1
  151. package/dist/server/app-browser-visible-commit.d.ts +2 -1
  152. package/dist/server/app-client-reference-manifest.d.ts +31 -0
  153. package/dist/server/app-client-reference-manifest.js +46 -0
  154. package/dist/server/app-client-reference-preloader.d.ts +25 -5
  155. package/dist/server/app-client-reference-preloader.js +22 -7
  156. package/dist/server/app-elements-wire.d.ts +2 -1
  157. package/dist/server/app-elements.d.ts +2 -0
  158. package/dist/server/app-elements.js +3 -1
  159. package/dist/server/app-fallback-renderer.d.ts +9 -2
  160. package/dist/server/app-fallback-renderer.js +4 -1
  161. package/dist/server/app-history-state.d.ts +2 -1
  162. package/dist/server/app-inline-css-client.d.ts +2 -1
  163. package/dist/server/app-layout-param-observation.d.ts +2 -1
  164. package/dist/server/app-metadata-tracing.d.ts +2 -1
  165. package/dist/server/app-optimistic-routing.d.ts +18 -1
  166. package/dist/server/app-optimistic-routing.js +34 -1
  167. package/dist/server/app-page-boundary-render.d.ts +20 -2
  168. package/dist/server/app-page-boundary-render.js +221 -38
  169. package/dist/server/app-page-boundary.d.ts +34 -5
  170. package/dist/server/app-page-boundary.js +40 -7
  171. package/dist/server/app-page-cache-finalizer.d.ts +2 -1
  172. package/dist/server/app-page-cache-finalizer.js +1 -1
  173. package/dist/server/app-page-cache-render.d.ts +10 -2
  174. package/dist/server/app-page-cache-render.js +14 -2
  175. package/dist/server/app-page-cache.js +2 -2
  176. package/dist/server/app-page-dispatch.d.ts +34 -1
  177. package/dist/server/app-page-dispatch.js +163 -34
  178. package/dist/server/app-page-element-builder.d.ts +17 -1
  179. package/dist/server/app-page-element-builder.js +187 -66
  180. package/dist/server/app-page-execution.d.ts +28 -1
  181. package/dist/server/app-page-execution.js +114 -5
  182. package/dist/server/app-page-head.d.ts +95 -3
  183. package/dist/server/app-page-head.js +307 -152
  184. package/dist/server/app-page-http-access-fallback-metadata.d.ts +48 -2
  185. package/dist/server/app-page-http-access-fallback-metadata.js +76 -1
  186. package/dist/server/app-page-method.d.ts +2 -1
  187. package/dist/server/app-page-probe.d.ts +2 -1
  188. package/dist/server/app-page-render-identity.d.ts +2 -1
  189. package/dist/server/app-page-render.d.ts +7 -1
  190. package/dist/server/app-page-render.js +35 -10
  191. package/dist/server/app-page-request.d.ts +14 -1
  192. package/dist/server/app-page-request.js +1 -1
  193. package/dist/server/app-page-route-wiring.d.ts +52 -2
  194. package/dist/server/app-page-route-wiring.js +197 -47
  195. package/dist/server/app-page-rsc-render-status.d.ts +2 -1
  196. package/dist/server/app-page-search-params-observation.d.ts +7 -2
  197. package/dist/server/app-page-search-params-observation.js +8 -1
  198. package/dist/server/app-page-segment-plan.d.ts +2 -1
  199. package/dist/server/app-page-stream.d.ts +31 -1
  200. package/dist/server/app-page-stream.js +23 -4
  201. package/dist/server/app-pages-bridge.d.ts +2 -1
  202. package/dist/server/app-ppr-fallback-shell-render.d.ts +2 -1
  203. package/dist/server/app-ppr-fallback-shell.d.ts +2 -1
  204. package/dist/server/app-prerender-endpoints.d.ts +2 -1
  205. package/dist/server/app-prerender-static-params.d.ts +2 -1
  206. package/dist/server/app-render-dependency.d.ts +11 -1
  207. package/dist/server/app-render-dependency.js +26 -7
  208. package/dist/server/app-request-stage-independent-entry.d.ts +2 -1
  209. package/dist/server/app-response-stage-entry.d.ts +2 -1
  210. package/dist/server/app-route-handler-cache.d.ts +2 -1
  211. package/dist/server/app-route-handler-dispatch.d.ts +2 -1
  212. package/dist/server/app-route-handler-dispatch.js +1 -1
  213. package/dist/server/app-route-handler-execution.d.ts +2 -1
  214. package/dist/server/app-route-handler-response.d.ts +2 -1
  215. package/dist/server/app-route-handler-runtime.d.ts +2 -1
  216. package/dist/server/app-route-module-loader.d.ts +18 -1
  217. package/dist/server/app-route-module-loader.js +8 -0
  218. package/dist/server/app-route-tree-prefetch.d.ts +2 -1
  219. package/dist/server/app-rsc-error-handler.d.ts +2 -1
  220. package/dist/server/app-rsc-errors.d.ts +2 -1
  221. package/dist/server/app-rsc-handler.d.ts +2 -1
  222. package/dist/server/app-rsc-handler.js +6 -10
  223. package/dist/server/app-rsc-response-finalizer.d.ts +2 -1
  224. package/dist/server/app-rsc-route-matching.d.ts +38 -1
  225. package/dist/server/app-rsc-route-matching.js +24 -0
  226. package/dist/server/app-segment-config.d.ts +2 -1
  227. package/dist/server/app-segment-config.js +1 -14
  228. package/dist/server/app-server-action-execution.d.ts +2 -1
  229. package/dist/server/app-server-action-execution.js +3 -3
  230. package/dist/server/app-ssr-entry.d.ts +6 -0
  231. package/dist/server/app-ssr-entry.js +91 -44
  232. package/dist/server/app-ssr-error-meta.d.ts +2 -1
  233. package/dist/server/app-ssr-search-params-gate.d.ts +2 -1
  234. package/dist/server/app-ssr-stream.d.ts +22 -10
  235. package/dist/server/app-ssr-stream.js +299 -67
  236. package/dist/server/app-static-generation.d.ts +2 -1
  237. package/dist/server/app-streamed-client-references.d.ts +39 -0
  238. package/dist/server/app-streamed-client-references.js +156 -0
  239. package/dist/server/app-visited-response-cache.d.ts +2 -1
  240. package/dist/server/app-worker-stages.d.ts +2 -1
  241. package/dist/server/artifact-compatibility.d.ts +2 -1
  242. package/dist/server/bfcache-identity.d.ts +2 -1
  243. package/dist/server/cache-headers.d.ts +2 -1
  244. package/dist/server/cacheability-request.d.ts +2 -1
  245. package/dist/server/client-reuse-manifest.d.ts +2 -1
  246. package/dist/server/config-headers.d.ts +2 -1
  247. package/dist/server/csp.d.ts +2 -1
  248. package/dist/server/default-global-not-found-module.d.ts +2 -1
  249. package/dist/server/default-http-access-fallback-modules.d.ts +33 -0
  250. package/dist/server/default-http-access-fallback-modules.js +31 -0
  251. package/dist/server/defer-until-stream-consumed.d.ts +34 -0
  252. package/dist/server/defer-until-stream-consumed.js +154 -21
  253. package/dist/server/dev-lockfile.d.ts +32 -2
  254. package/dist/server/dev-lockfile.js +46 -2
  255. package/dist/server/dev-module-runner.d.ts +2 -1
  256. package/dist/server/dev-server.js +10 -3
  257. package/dist/server/fetch-handler.js +1 -2
  258. package/dist/server/file-based-metadata.d.ts +2 -1
  259. package/dist/server/framework-tracer.d.ts +2 -1
  260. package/dist/server/html.d.ts +1 -0
  261. package/dist/server/html.js +19 -1
  262. package/dist/server/http-conditional.d.ts +2 -1
  263. package/dist/server/http-error-responses.d.ts +2 -1
  264. package/dist/server/implicit-tags.d.ts +2 -1
  265. package/dist/server/metadata-route-build-data.d.ts +2 -1
  266. package/dist/server/metadata-route-build-data.js +1 -1
  267. package/dist/server/metadata-route-response.d.ts +2 -1
  268. package/dist/server/metadata-route-response.js +1 -1
  269. package/dist/server/metadata-routes.d.ts +2 -1
  270. package/dist/server/middleware-runtime.d.ts +2 -1
  271. package/dist/server/navigation-trace.d.ts +2 -1
  272. package/dist/server/next-error-digest.d.ts +2 -1
  273. package/dist/server/nitro-public-files-plugin.d.ts +2 -1
  274. package/dist/server/nitro-public-files.d.ts +2 -1
  275. package/dist/server/opentelemetry-api.d.ts +2 -1
  276. package/dist/server/operation-token.d.ts +2 -1
  277. package/dist/server/pages-api-route.d.ts +2 -1
  278. package/dist/server/pages-asset-tags.d.ts +2 -1
  279. package/dist/server/pages-body-parser-config.d.ts +2 -1
  280. package/dist/server/pages-client-assets.d.ts +4 -0
  281. package/dist/server/pages-data-route.d.ts +2 -1
  282. package/dist/server/pages-document-asset-props.d.ts +2 -1
  283. package/dist/server/pages-document-initial-props.d.ts +2 -1
  284. package/dist/server/pages-execution-tracing.d.ts +2 -1
  285. package/dist/server/pages-execution-tracing.js +1 -1
  286. package/dist/server/pages-get-initial-props.d.ts +2 -1
  287. package/dist/server/pages-page-data.d.ts +7 -1
  288. package/dist/server/pages-page-data.js +35 -12
  289. package/dist/server/pages-page-handler.d.ts +3 -2
  290. package/dist/server/pages-page-handler.js +16 -7
  291. package/dist/server/pages-page-method.d.ts +2 -1
  292. package/dist/server/pages-page-response.d.ts +2 -1
  293. package/dist/server/pages-preview.d.ts +2 -1
  294. package/dist/server/pages-readiness.d.ts +2 -1
  295. package/dist/server/pages-request-pipeline.d.ts +2 -1
  296. package/dist/server/pages-request-pipeline.js +4 -5
  297. package/dist/server/pages-request-stage-entry.d.ts +2 -1
  298. package/dist/server/pages-response-stage-entry.d.ts +2 -1
  299. package/dist/server/pages-route-data-kind.d.ts +2 -1
  300. package/dist/server/prerender-cache-life-header.d.ts +2 -1
  301. package/dist/server/prerender-route-params.d.ts +2 -1
  302. package/dist/server/prod-server.js +9 -3
  303. package/dist/server/request-log.d.ts +2 -1
  304. package/dist/server/request-tracing.d.ts +2 -1
  305. package/dist/server/request-tracing.js +1 -1
  306. package/dist/server/response-start-tracing.js +7 -29
  307. package/dist/server/rsc-render-stream.d.ts +4 -0
  308. package/dist/server/rsc-render-stream.js +25 -0
  309. package/dist/server/seed-cache.d.ts +2 -1
  310. package/dist/server/seed-cache.js +1 -1
  311. package/dist/server/static-file-cache.d.ts +2 -1
  312. package/dist/server/static-file-cache.js +1 -0
  313. package/dist/server/static-layout-client-reuse-proof.d.ts +2 -1
  314. package/dist/server/worker-revalidation-context.d.ts +2 -1
  315. package/dist/server/worker-stages.d.ts +2 -1
  316. package/dist/shims/app.d.ts +2 -1
  317. package/dist/shims/cache-callable-runtime.d.ts +2 -1
  318. package/dist/shims/cache-handler.d.ts +8 -3
  319. package/dist/shims/cache-handler.js +29 -9
  320. package/dist/shims/caught-not-found-boundaries.d.ts +15 -0
  321. package/dist/shims/caught-not-found-boundaries.js +48 -0
  322. package/dist/shims/cdn-purge-routes.d.ts +2 -1
  323. package/dist/shims/client-locale.js +2 -1
  324. package/dist/shims/client-page-root.d.ts +2 -1
  325. package/dist/shims/config.d.ts +2 -1
  326. package/dist/shims/default-forbidden.d.ts +4 -0
  327. package/dist/shims/default-forbidden.js +18 -0
  328. package/dist/shims/default-not-found.d.ts +0 -5
  329. package/dist/shims/default-not-found.js +5 -41
  330. package/dist/shims/default-unauthorized.d.ts +4 -0
  331. package/dist/shims/default-unauthorized.js +18 -0
  332. package/dist/shims/error-boundary.d.ts +39 -3
  333. package/dist/shims/error-boundary.js +31 -16
  334. package/dist/shims/font-google.js +1 -2
  335. package/dist/shims/font-utils.d.ts +3 -2
  336. package/dist/shims/font-utils.js +5 -3
  337. package/dist/shims/form.js +1 -1
  338. package/dist/shims/http-access-error-fallback.d.ts +7 -0
  339. package/dist/shims/http-access-error-fallback.js +47 -0
  340. package/dist/shims/image.d.ts +1 -22
  341. package/dist/shims/internal/app-prefetch-fetch-queue.d.ts +22 -2
  342. package/dist/shims/internal/app-prefetch-fetch-queue.js +71 -18
  343. package/dist/shims/internal/app-route-prefetch-policy.d.ts +14 -3
  344. package/dist/shims/internal/app-route-prefetch-policy.js +29 -4
  345. package/dist/shims/internal/cache-context-accessor.d.ts +2 -1
  346. package/dist/shims/internal/client-reference-loader.d.ts +7 -0
  347. package/dist/shims/internal/client-reference-loader.js +91 -0
  348. package/dist/shims/internal/cookie-serialize.d.ts +2 -1
  349. package/dist/shims/internal/cookies.js +1 -2
  350. package/dist/shims/internal/headers-state.d.ts +2 -0
  351. package/dist/shims/internal/headers-state.js +6 -1
  352. package/dist/shims/internal/hybrid-client-route-owner-direct.d.ts +2 -1
  353. package/dist/shims/internal/interpolate-as.d.ts +2 -1
  354. package/dist/shims/internal/pages-data-target.d.ts +2 -1
  355. package/dist/shims/internal/pages-data-url.d.ts +2 -1
  356. package/dist/shims/internal/thenable-well-known-properties.d.ts +2 -1
  357. package/dist/shims/link.js +195 -52
  358. package/dist/shims/metadata.d.ts +32 -11
  359. package/dist/shims/metadata.js +88 -26
  360. package/dist/shims/navigation-errors.d.ts +2 -1
  361. package/dist/shims/navigation.d.ts +22 -2
  362. package/dist/shims/navigation.js +74 -20
  363. package/dist/shims/pages-router-runtime.d.ts +2 -1
  364. package/dist/shims/ppr-fallback-shell.d.ts +2 -1
  365. package/dist/shims/router.js +14 -3
  366. package/dist/shims/unified-request-context.js +3 -3
  367. package/dist/typegen.d.ts +2 -1
  368. package/dist/utils/client-build-manifest.d.ts +4 -1
  369. package/dist/utils/client-build-manifest.js +9 -2
  370. package/dist/utils/client-entry-manifest.d.ts +13 -0
  371. package/dist/utils/client-entry-manifest.js +20 -1
  372. package/dist/utils/client-reference-chunks.d.ts +45 -0
  373. package/dist/utils/client-reference-chunks.js +30 -0
  374. package/dist/utils/client-runtime-metadata.d.ts +9 -1
  375. package/dist/utils/client-runtime-metadata.js +40 -9
  376. package/dist/utils/compare.d.ts +9 -0
  377. package/dist/utils/compare.js +15 -1
  378. package/dist/utils/lazy-chunks.d.ts +14 -0
  379. package/dist/utils/lazy-chunks.js +27 -1
  380. package/dist/utils/middleware-request-headers.d.ts +2 -1
  381. package/dist/utils/project.d.ts +2 -1
  382. package/dist/utils/project.js +9 -1
  383. package/dist/utils/query.d.ts +2 -1
  384. package/dist/utils/sorted-array.d.ts +2 -1
  385. package/dist/utils/vite-cli-invocation.d.ts +2 -1
  386. package/package.json +5 -5
  387. package/dist/deps/.pnpm/image-size@2.0.2/deps/image-size/dist/index.js +0 -808
  388. package/dist/server/default-not-found-module.d.ts +0 -19
  389. package/dist/server/default-not-found-module.js +0 -18
  390. package/dist/server/rsc-stream-hints.d.ts +0 -21
  391. package/dist/server/rsc-stream-hints.js +0 -227
@@ -1,5 +1,6 @@
1
1
  import path from "../deps/.pnpm/pathslash@0.1.0/deps/pathslash/dist/index.js";
2
2
  import fs from "node:fs";
3
+ import os from "node:os";
3
4
  //#region src/server/dev-lockfile.ts
4
5
  /**
5
6
  * Dev server lock file.
@@ -21,6 +22,9 @@ import fs from "node:fs";
21
22
  * (`process.kill(pid, 0)`), which is good enough for the dev-server
22
23
  * "another server is running" use case. Race conditions on lock acquisition
23
24
  * are tolerated: at worst, two dev servers race and one fails to bind a port.
25
+ * Unlike a `flock()`, the lock file survives a hard restart, so a lock
26
+ * written before the current boot is treated as stale whatever its PID: the
27
+ * PID may now belong to an unrelated process. See `predatesCurrentBoot()`.
24
28
  * - Lock file lives in `<root>/.vinext/dev/lock.json` (mirroring Next.js'
25
29
  * `.next/dev/lock` layout). `.vinext/` is already used by the fonts plugin
26
30
  * to cache self-hosted Google Fonts, so this re-uses the same project-local
@@ -71,6 +75,46 @@ function isPidAlive(pid) {
71
75
  }
72
76
  }
73
77
  /**
78
+ * Slack for the boot-time comparison in `predatesCurrentBoot`. `os.uptime()`
79
+ * has whole-second resolution on some platforms (macOS derives it from
80
+ * `kern.boottime`), so the derived boot time is only accurate to about a
81
+ * second.
82
+ */
83
+ const BOOT_TIME_TOLERANCE_MS = 5e3;
84
+ /**
85
+ * Returns true if a lock with the given `startedAt` was written before the
86
+ * machine last booted.
87
+ *
88
+ * Such a lock was left behind by a session whose exit handler never ran (a
89
+ * crash, a forced restart, power loss). PIDs are handed out again after a
90
+ * boot, so the lock's PID may be held by an unrelated process, and
91
+ * `isPidAlive()` alone would report the dead server as running.
92
+ *
93
+ * The boot time is derived from `Date.now() - os.uptime()`. Stepping the wall
94
+ * clock forward moves it too (`os.uptime()` doesn't change), so a forward
95
+ * step larger than the uptime at which a server started makes its lock look
96
+ * stale, e.g. a VM resuming after the host slept. The second `vinext dev`
97
+ * then takes over, as in the acquisition race tolerated below: Vite moves it
98
+ * to another port, or it fails to bind with `strictPort`.
99
+ *
100
+ * Known limitations, where a lock is still checked by PID alone:
101
+ * - A wall clock that comes back from a reboot behind the previous session
102
+ * (an RTC running slow, or NTP stepping it back) can leave the lock's
103
+ * `startedAt` after the derived boot time.
104
+ * - Windows Fast Startup shuts down by hibernating the kernel, so
105
+ * `os.uptime()` keeps counting across that shutdown.
106
+ * - A container restart doesn't reset the host's uptime.
107
+ */
108
+ function predatesCurrentBoot(startedAt) {
109
+ let uptime;
110
+ try {
111
+ uptime = os.uptime();
112
+ } catch {
113
+ return false;
114
+ }
115
+ return startedAt < Date.now() - uptime * 1e3 - BOOT_TIME_TOLERANCE_MS;
116
+ }
117
+ /**
74
118
  * Writes the lock file with the given content. Creates the parent directory
75
119
  * if it doesn't exist.
76
120
  *
@@ -128,7 +172,7 @@ function tryAcquireLockfile(opts) {
128
172
  const lockfilePath = getLockfilePath(root);
129
173
  const existing = readLockfile(lockfilePath);
130
174
  if (existing) {
131
- if (isPidAlive(existing.pid)) return {
175
+ if (!predatesCurrentBoot(existing.startedAt) && isPidAlive(existing.pid)) return {
132
176
  ok: false,
133
177
  existing,
134
178
  lockfilePath
@@ -178,4 +222,4 @@ function tryAcquireLockfile(opts) {
178
222
  };
179
223
  }
180
224
  //#endregion
181
- export { formatAlreadyRunningError, getLockfilePath, isPidAlive, readLockfile, tryAcquireLockfile };
225
+ export { formatAlreadyRunningError, getLockfilePath, isPidAlive, predatesCurrentBoot, readLockfile, tryAcquireLockfile };
@@ -25,4 +25,5 @@ type DevEnvironmentLike = {
25
25
  * Typically `server.environments["ssr"]`.
26
26
  */
27
27
  export declare function createDirectRunner(environment: DevEnvironmentLike | DevEnvironment): ModuleRunner;
28
- //#endregion
28
+ //#endregion
29
+ export {};
@@ -41,7 +41,7 @@ import { PAGES_PREVIEW_CACHE_CONTROL, appendPagesPreviewClearCookies, getPagesPr
41
41
  import { attachPagesRequestCookies } from "./pages-node-compat.js";
42
42
  import { randomUUID } from "node:crypto";
43
43
  import React from "react";
44
- import { renderToReadableStream } from "react-dom/server.edge";
44
+ import { renderToReadableStream } from "react-dom/server";
45
45
  //#region src/server/dev-server.ts
46
46
  /**
47
47
  * Render a React element to a string using renderToReadableStream.
@@ -112,6 +112,7 @@ function writeGsspRedirect(res, redirect, isDataReq, props, options) {
112
112
  ...props,
113
113
  pageProps: props.pageProps
114
114
  });
115
+ if (options.method === "getServerSideProps" && !res.getHeader("Cache-Control")) res.setHeader("Cache-Control", NEVER_CACHE_CONTROL);
115
116
  const gsspHeaders = Object.fromEntries(Object.entries(res.getHeaders()).filter((entry) => entry[1] !== void 0));
116
117
  if (isDangerousScheme(resolved.destination)) {
117
118
  const deploymentId = process.env.__VINEXT_DEPLOYMENT_ID || process.env.NEXT_DEPLOYMENT_ID;
@@ -643,14 +644,17 @@ function createSSRHandler(server, runner, routes, pagesDir, i18nConfig, fileMatc
643
644
  const deploymentId = process.env.__VINEXT_DEPLOYMENT_ID || process.env.NEXT_DEPLOYMENT_ID;
644
645
  stripDevPagesNotFoundFramingHeaders(res);
645
646
  if (!res.hasHeader("Content-Type")) res.setHeader("Content-Type", "application/json");
647
+ if (!res.getHeader("Cache-Control")) res.setHeader("Cache-Control", NEVER_CACHE_CONTROL);
646
648
  if (deploymentId && !res.hasHeader("x-nextjs-deployment-id")) res.setHeader(NEXTJS_DEPLOYMENT_ID_HEADER, deploymentId);
647
649
  res.writeHead(404);
648
650
  res.end("{\"notFound\":true}");
649
651
  return;
650
652
  }
653
+ if (!res.getHeader("Cache-Control")) res.setHeader("Cache-Control", NEVER_CACHE_CONTROL);
651
654
  await renderErrorPage(server, runner, req, res, url, pagesDir, 404, routerShim.wrapWithRouterContext, void 0, void 0, reactStrictMode, {
652
655
  ...errorPageContext,
653
- notFoundSrcPage: patternToNextFormat(route.pattern)
656
+ notFoundSrcPage: patternToNextFormat(route.pattern),
657
+ cacheControl: requestPreview.data === false && !requestPreview.shouldClear ? DEV_PAGES_CACHE_CONTROL : PAGES_PREVIEW_CACHE_CONTROL
654
658
  });
655
659
  return;
656
660
  }
@@ -1130,7 +1134,8 @@ async function renderErrorPage(server, runner, req, res, url, pagesDir, statusCo
1130
1134
  getTailHeadHTML: () => getClientTraceMetadataHTML(context.clientTraceMetadata),
1131
1135
  setDocumentInitialHead: typeof headShim.setDocumentInitialHead === "function" ? headShim.setDocumentInitialHead : void 0,
1132
1136
  crossOrigin: context.crossOrigin,
1133
- preserveExistingContentType: statusCode === 404
1137
+ preserveExistingContentType: statusCode === 404,
1138
+ extraHeaders: context.cacheControl ? { "Cache-Control": context.cacheControl } : void 0
1134
1139
  });
1135
1140
  else {
1136
1141
  const bodyHtml = await tracePagesDocument(errorPage, () => renderToStringAsync(element));
@@ -1155,6 +1160,7 @@ async function renderErrorPage(server, runner, req, res, url, pagesDir, statusCo
1155
1160
  configuredCrossOrigin: context.crossOrigin,
1156
1161
  protectedAssetMarker
1157
1162
  }), protectedAssetMarker);
1163
+ if (context.cacheControl) res.setHeader("Cache-Control", context.cacheControl);
1158
1164
  res.writeHead(statusCode, statusCode === 404 && res.hasHeader("Content-Type") ? void 0 : { "Content-Type": "text/html; charset=utf-8" });
1159
1165
  res.end(transformedHtml);
1160
1166
  }
@@ -1173,6 +1179,7 @@ async function renderErrorPage(server, runner, req, res, url, pagesDir, statusCo
1173
1179
  defaultResponse.headers.forEach((value, key) => {
1174
1180
  headers[key] = value;
1175
1181
  });
1182
+ if (context.cacheControl) headers["cache-control"] = context.cacheControl;
1176
1183
  res.writeHead(defaultResponse.status, headers);
1177
1184
  res.end(await defaultResponse.text());
1178
1185
  return;
@@ -1,3 +1,2 @@
1
- import virtual_vinext_worker_entry_default from "virtual:vinext-worker-entry";
1
+ export { default } from "virtual:vinext-worker-entry";
2
2
  export * from "virtual:vinext-worker-entry";
3
- export { virtual_vinext_worker_entry_default as default };
@@ -24,4 +24,5 @@ type FileBasedMetadataOptions = {
24
24
  basePath?: string;
25
25
  };
26
26
  export declare function applyFileBasedMetadata(metadata: Metadata | null, routePath: string, params: AppPageParams, metadataRoutes: readonly MetadataFileRoute[] | null | undefined, options?: FileBasedMetadataOptions): Promise<Metadata | null>;
27
- //#endregion
27
+ //#endregion
28
+ export {};
@@ -43,4 +43,5 @@ export type FrameworkTracer = {
43
43
  };
44
44
  export declare function recordFrameworkSpanError(span: FrameworkSpan, error: unknown): void;
45
45
  export declare function createFrameworkTracer(integrations: readonly FrameworkTracingIntegration[]): FrameworkTracer;
46
- //#endregion
46
+ //#endregion
47
+ export {};
@@ -1,5 +1,6 @@
1
1
  //#region src/server/html.d.ts
2
2
  export declare function safeJsonStringify(data: unknown): string;
3
+ export declare function scriptSafeJsonStringify(data: unknown): string;
3
4
  export declare function escapeHtmlAttr(value: string): string;
4
5
  export declare function htmlTokenListContains(value: string | null, token: string): boolean;
5
6
  export declare function createNonceAttribute(nonce?: string): string;
@@ -37,6 +37,24 @@ function safeJsonStringify(data) {
37
37
  if (!HTML_UNSAFE_JSON_CHAR_RE.test(json)) return json;
38
38
  return json.replace(HTML_UNSAFE_JSON_CHARS_RE, escapeHtmlUnsafeJsonChar);
39
39
  }
40
+ /**
41
+ * Minimal escaping for JSON that is only ever embedded as the content of a
42
+ * classic inline <script> element. The HTML spec only forbids "<!--",
43
+ * "<script" and "<\/script" (ASCII case-insensitive) in script content, so
44
+ * only a '<' that begins one of those is escaped; '>' and '&' have no
45
+ * meaning there.
46
+ * https://html.spec.whatwg.org/multipage/scripting.html#restrictions-for-contents-of-script-elements
47
+ *
48
+ * Used for the large RSC payload chunks: leaving markup such as "<p>" intact
49
+ * lets compression match it against the identical SSR markup. Do not use
50
+ * this for values that can land outside a script element.
51
+ */
52
+ const SCRIPT_UNSAFE_JSON_CHARS_RE = /<(?=!--|\/?script)|[\u2028\u2029]/gi;
53
+ function scriptSafeJsonStringify(data) {
54
+ const json = JSON.stringify(data);
55
+ if (json === void 0) throw new TypeError("Cannot serialize value as JSON");
56
+ return json.replace(SCRIPT_UNSAFE_JSON_CHARS_RE, escapeHtmlUnsafeJsonChar);
57
+ }
40
58
  function escapeHtmlAttr(value) {
41
59
  return value.replace(/&/g, "&amp;").replace(/"/g, "&quot;").replace(/</g, "&lt;").replace(/>/g, "&gt;");
42
60
  }
@@ -53,4 +71,4 @@ function createInlineScriptTag(content, nonce) {
53
71
  return `<script${createNonceAttribute(nonce)}>${content}<\/script>`;
54
72
  }
55
73
  //#endregion
56
- export { createInlineScriptTag, createNonceAttribute, escapeHtmlAttr, htmlTokenListContains, safeJsonStringify };
74
+ export { createInlineScriptTag, createNonceAttribute, escapeHtmlAttr, htmlTokenListContains, safeJsonStringify, scriptSafeJsonStringify };
@@ -29,4 +29,5 @@ type StaticConditionalHeaders = {
29
29
  export type StaticPreconditionResult = "proceed" | "not-modified" | "precondition-failed";
30
30
  /** Evaluate static representation preconditions in RFC 9110 section 13.2.2 order. */
31
31
  export declare function evaluateStaticPreconditions(headers: StaticConditionalHeaders, method: string | undefined, etag: string | undefined, mtimeMs: number): StaticPreconditionResult;
32
- //#endregion
32
+ //#endregion
33
+ export {};
@@ -88,4 +88,5 @@ export declare function payloadTooLargeResponse(): Response;
88
88
  * to use the canonical "Internal Server Error" body.
89
89
  */
90
90
  export declare function internalServerErrorResponse(message?: string, init?: ErrorResponseInit): Response;
91
- //#endregion
91
+ //#endregion
92
+ export {};
@@ -2,4 +2,5 @@
2
2
  type AppCacheLeafKind = "page" | "route";
3
3
  export declare function buildAppPageTags(cleanPathname: string, extraTags: string[], routeSegments: readonly string[]): string[];
4
4
  export declare function buildPageCacheTags(pathname: string, extraTags: string[], routeSegments: string[], leafKind: AppCacheLeafKind): string[];
5
- //#endregion
5
+ //#endregion
6
+ export {};
@@ -19,4 +19,5 @@ type MetadataRouteEntryData = {
19
19
  export declare function createMetadataRouteEntryData(route: MetadataFileRoute): MetadataRouteEntryData;
20
20
  export declare function createMetadataRouteEntrySource(input: MetadataRouteEntrySourceInput): string;
21
21
  export declare function createMetadataRouteEntriesSource(routes: readonly MetadataFileRoute[], moduleNames: ReadonlyMap<string, string>): string[];
22
- //#endregion
22
+ //#endregion
23
+ export {};
@@ -1,6 +1,6 @@
1
1
  import { routePatternParts } from "../routing/route-pattern.js";
2
2
  import { getMetadataRouteKind } from "./metadata-routes.js";
3
- import imageSize from "../deps/.pnpm/image-size@2.0.2/deps/image-size/dist/index.js";
3
+ import { imageSize } from "../deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/lookup.js";
4
4
  import fs from "node:fs";
5
5
  import { createHash } from "node:crypto";
6
6
  //#region src/server/metadata-route-build-data.ts
@@ -37,4 +37,5 @@ export type PrerenderableMetadataRoute = {
37
37
  export declare function getPrerenderableMetadataRoutePaths(metadataRoutes: readonly MetadataRuntimeRoute[]): Promise<PrerenderableMetadataRoute[]>;
38
38
  export declare function isMetadataRouteRequestPath(metadataRoutes: readonly MetadataRuntimeRoute[], cleanPathname: string): boolean;
39
39
  export declare function handleMetadataRouteRequest(options: MetadataRouteRequestOptions): Promise<Response | null>;
40
- //#endregion
40
+ //#endregion
41
+ export {};
@@ -17,8 +17,8 @@ import { ensureFetchPatch, getCollectedFetchTags, setCurrentFetchSoftTags } from
17
17
  import { isValidMetadataImageId, manifestToJson, matchMetadataRoutePattern, robotsToText, sitemapToXml } from "./metadata-routes.js";
18
18
  import { applyPrerenderCacheLifeHeader, applyPrerenderCacheTagsHeader } from "./prerender-cache-life-header.js";
19
19
  import { canonicalizeAppPageParams } from "./app-page-segment-state.js";
20
- import { buildPageCacheTags } from "./implicit-tags.js";
21
20
  import { buildAppRouteCacheValue, buildRouteHandlerCachedResponse } from "./app-route-handler-response.js";
21
+ import { buildPageCacheTags } from "./implicit-tags.js";
22
22
  import { createStaticGenerationHeadersContext } from "./app-static-generation.js";
23
23
  import { completeAppRouteHandlerResponse } from "./app-route-handler-execution.js";
24
24
  //#region src/server/metadata-route-response.ts
@@ -155,4 +155,5 @@ export declare function invalidateMetadataFileCache(): void;
155
155
  * Scan an app directory for metadata files.
156
156
  */
157
157
  export declare function scanMetadataFiles(appDir: string): MetadataFileRoute[];
158
- //#endregion
158
+ //#endregion
159
+ export {};
@@ -87,4 +87,5 @@ export declare function resolveMiddlewareModuleHandler(mod: MiddlewareModule, op
87
87
  }): MiddlewareHandler;
88
88
  export declare function executeMiddleware(options: ExecuteMiddlewareOptions): Promise<MiddlewareResult>;
89
89
  export declare function runGeneratedMiddleware(options: RunGeneratedMiddlewareOptions): Promise<MiddlewareResult>;
90
- //#endregion
90
+ //#endregion
91
+ export {};
@@ -65,4 +65,5 @@ export declare function createNavigationLifecycleTraceFields(options: {
65
65
  }): NavigationTraceFields;
66
66
  export declare function createNavigationTrace(code: NavigationTraceCode, fields?: NavigationTraceFields): NavigationTrace;
67
67
  export declare function prependNavigationTraceEntry(trace: NavigationTrace, code: NavigationTraceCode, fields?: NavigationTraceFields): NavigationTrace;
68
- //#endregion
68
+ //#endregion
69
+ export {};
@@ -24,4 +24,5 @@ export declare function parseNextRedirectDigest(digest: string): NextRedirectDig
24
24
  * for the fallback form. Returns null otherwise.
25
25
  */
26
26
  export declare function parseNextHttpErrorDigest(digest: string): NextHttpErrorDigest | null;
27
- //#endregion
27
+ //#endregion
28
+ export {};
@@ -35,4 +35,5 @@ type NitroPublicFilesPluginOptions = {
35
35
  fetchApp(request: Request): Promise<Response>;
36
36
  };
37
37
  export declare function createNitroPublicFilesPlugin(options: NitroPublicFilesPluginOptions): (nitroApp: NitroApp) => void;
38
- //#endregion
38
+ //#endregion
39
+ export {};
@@ -18,4 +18,5 @@ type PagesWorkerEntry<Env, Context extends object> = {
18
18
  * fetcher that reads files through Nitro's static handler.
19
19
  */
20
20
  export declare function withNitroPagesPublicFiles<Env, Context extends object>(worker: PagesWorkerEntry<Env, Context>): PagesWorkerEntry<Env, Context>;
21
- //#endregion
21
+ //#endregion
22
+ export {};
@@ -56,4 +56,5 @@ export type OpenTelemetryApi = {
56
56
  export declare function getOpenTelemetryRootContext(): OpenTelemetryContext;
57
57
  /** Resolve the API registered by the application, if any. */
58
58
  export declare function getOpenTelemetryApi(): OpenTelemetryApi | undefined;
59
- //#endregion
59
+ //#endregion
60
+ export {};
@@ -36,4 +36,5 @@ export type OperationTokenVerificationPolicy = {
36
36
  export declare function verifyOperationToken(token: OperationToken, authority: OperationTokenAuthority, policy: OperationTokenVerificationPolicy): OperationTokenVerdict;
37
37
  export declare function verifyOperationTokenForCommit(token: OperationToken, authority: Pick<OperationTokenAuthority, "activeNavigationId" | "visibleCommitVersion">): OperationTokenVerdict;
38
38
  export declare function verifyOperationTokenForCacheReuse(token: OperationToken, authority: Pick<OperationTokenAuthority, "graphVersion" | "installedCacheVariantFingerprint">): OperationTokenVerdict;
39
- //#endregion
39
+ //#endregion
40
+ export {};
@@ -85,4 +85,5 @@ type HandlePagesApiRouteOptions = {
85
85
  trustedRevalidateOrigin?: string;
86
86
  };
87
87
  export declare function handlePagesApiRoute(options: HandlePagesApiRouteOptions): Promise<Response>;
88
- //#endregion
88
+ //#endregion
89
+ export {};
@@ -81,4 +81,5 @@ type CollectAssetTagsOptions = {
81
81
  * Extracted from `entries/pages-server-entry.ts`.
82
82
  */
83
83
  export declare function collectAssetTags(options: CollectAssetTagsOptions): string;
84
- //#endregion
84
+ //#endregion
85
+ export {};
@@ -55,4 +55,5 @@ export declare function resolveBodyParserConfig(moduleConfig: {
55
55
  };
56
56
  };
57
57
  } | undefined, defaultSizeLimit?: number): ResolvedBodyParserConfig;
58
- //#endregion
58
+ //#endregion
59
+ export {};
@@ -1,8 +1,12 @@
1
+ import { ClientReferenceChunks } from "../utils/client-reference-chunks.js";
1
2
  //#region src/server/pages-client-assets.d.ts
2
3
  export type AssetCrossOrigin = "" | "anonymous" | "use-credentials";
3
4
  export type PagesClientAssets = {
4
5
  clientEntry?: string;
5
6
  appBootstrapPreinitModules?: string[];
7
+ appRouteManifestModule?: string;
8
+ /** What each App Router client reference loads in the browser, by URL. */
9
+ appClientReferenceChunks?: ClientReferenceChunks;
6
10
  ssrManifest?: Record<string, string[]>;
7
11
  /**
8
12
  * Shared Pages chunk files (framework, vinext runtime, client entry) keyed on
@@ -138,4 +138,5 @@ type NormalizePagesDataRequestResult = {
138
138
  * `runMiddleware` share a single implementation.
139
139
  */
140
140
  export declare function normalizePagesDataRequest(request: Request, buildId: string | null, basePath?: string, trailingSlash?: boolean): NormalizePagesDataRequestResult;
141
- //#endregion
141
+ //#endregion
142
+ export {};
@@ -26,4 +26,5 @@ export declare function extractDocumentAssetProps(html: string, token: string):
26
26
  export declare function markDocumentAssetPropsProtectedTags(html: string, markerAttribute: string): string;
27
27
  export declare function stripDocumentAssetPropsProtectionMarkers(html: string, markerAttribute: string): string;
28
28
  export declare function applyDocumentAssetProps(html: string, props: DocumentAssetProps, options?: ApplyDocumentAssetPropsOptions): string;
29
- //#endregion
29
+ //#endregion
30
+ export {};
@@ -78,4 +78,5 @@ type RunDocumentRenderPageResult = {
78
78
  * @see .nextjs-ref/packages/next/src/server/render.tsx (search `renderPage`)
79
79
  */
80
80
  export declare function runDocumentRenderPage(input: DocumentRenderPageInput): Promise<RunDocumentRenderPageResult>;
81
- //#endregion
81
+ //#endregion
82
+ export {};
@@ -37,4 +37,5 @@ export declare function createFindPageComponentsSpanDescriptor(routePattern: str
37
37
  readonly type: "NextNodeServer.findPageComponents";
38
38
  };
39
39
  export declare function traceFindPageComponents<T>(routePattern: string, callback: () => T): T;
40
- //#endregion
40
+ //#endregion
41
+ export {};
@@ -1,6 +1,6 @@
1
+ import { deferUntilStreamConsumed } from "./defer-until-stream-consumed.js";
1
2
  import { patternToNextFormat } from "../routing/route-validation.js";
2
3
  import { frameworkTracer } from "./tracer.js";
3
- import { deferUntilStreamConsumed } from "./defer-until-stream-consumed.js";
4
4
  //#region src/server/pages-execution-tracing.ts
5
5
  function createPagesDataSpanDescriptor(method, routePattern) {
6
6
  const route = patternToNextFormat(routePattern);
@@ -76,4 +76,5 @@ export type DevAppInitialPropsContext = {
76
76
  * data code does not run on the cache hot path.
77
77
  */
78
78
  export declare function loadDevAppInitialProps(ctx: DevAppInitialPropsContext): Promise<DevAppInitialPropsResult>;
79
- //#endregion
79
+ //#endregion
80
+ export {};
@@ -298,6 +298,11 @@ type ResolvePagesPageDataNotFoundResult = {
298
298
  cacheState?: "MISS" | "HIT" | "STALE";
299
299
  };
300
300
  type ResolvePagesPageDataResult = ResolvePagesPageDataRenderResult | ResolvePagesPageDataResponseResult | ResolvePagesPageDataNotFoundResult;
301
+ /**
302
+ * Write a Pages res header the way Node sends it: an array sends one header
303
+ * line per item, so `[]` sends none.
304
+ */
305
+ export declare function setPagesResponseHeader(headers: Headers, name: string, value: string | number | boolean | string[]): void;
301
306
  export declare function mergePagesNotFoundSourceHeaders(response: Response, sourceHeaders: Record<string, string | number | boolean | string[]> | undefined): Response;
302
307
  /** Validate and normalize the redirect metadata returned by gSP/gSSP. */
303
308
  export declare function resolvePagesRedirect(redirect: PagesRedirectResult, options: {
@@ -330,4 +335,5 @@ export type PagesRouteParam = {
330
335
  export declare function getPagesRouteParams(routePattern: string): PagesRouteParam[];
331
336
  export declare function matchesPagesStaticPath(pathEntry: PagesStaticPathsEntry, params: Record<string, unknown>, routeParams: PagesRouteParam[], routeUrl: string, i18n?: Pick<PagesI18nRenderContext, "locale" | "locales" | "defaultLocale">): boolean;
332
337
  export declare function resolvePagesPageData(options: ResolvePagesPageDataOptions): Promise<ResolvePagesPageDataResult>;
333
- //#endregion
338
+ //#endregion
339
+ export {};
@@ -6,7 +6,7 @@ import { isDangerousScheme } from "../shims/url-safety.js";
6
6
  import { extractLocaleFromUrl } from "./pages-i18n.js";
7
7
  import { buildNextDataPropsJsonResponse } from "./pages-data-route.js";
8
8
  import { recordRouteCacheability } from "../shims/cacheability-classification.js";
9
- import { applyCdnResponseHeaders } from "./cache-control.js";
9
+ import { NEVER_CACHE_CONTROL, applyCdnResponseHeaders } from "./cache-control.js";
10
10
  import { buildMissIsrCacheControl, decideIsr } from "./isr-decision.js";
11
11
  import { isrCacheControl } from "./isr-cache.js";
12
12
  import { normalizeStaticPathname } from "../routing/route-pattern.js";
@@ -98,14 +98,22 @@ function buildPagesNotFoundResult(options, revalidateSeconds, cacheState, expire
98
98
  responseHeaders
99
99
  };
100
100
  }
101
+ /**
102
+ * Write a Pages res header the way Node sends it: an array sends one header
103
+ * line per item, so `[]` sends none.
104
+ */
105
+ function setPagesResponseHeader(headers, name, value) {
106
+ headers.delete(name);
107
+ if (!Array.isArray(value)) {
108
+ headers.set(name, String(value));
109
+ return;
110
+ }
111
+ for (const item of value) headers.append(name, String(item));
112
+ }
101
113
  function mergePagesNotFoundSourceHeaders(response, sourceHeaders) {
102
114
  if (!sourceHeaders) return response;
103
115
  const headers = new Headers(response.headers);
104
- for (const [name, value] of Object.entries(sourceHeaders)) if (name.toLowerCase() === "set-cookie") {
105
- headers.delete("set-cookie");
106
- const cookies = Array.isArray(value) ? value : [value];
107
- for (const cookie of cookies) headers.append("set-cookie", String(cookie));
108
- } else headers.set(name, Array.isArray(value) ? value.join(", ") : String(value));
116
+ for (const [name, value] of Object.entries(sourceHeaders)) setPagesResponseHeader(headers, name, value);
109
117
  return new Response(response.body, {
110
118
  headers,
111
119
  status: response.status,
@@ -292,6 +300,15 @@ function buildPagesRedirectResponse(redirect, options, props = { pageProps: {} }
292
300
  headers
293
301
  });
294
302
  }
303
+ /**
304
+ * Next.js pages-handler.ts gives a getServerSideProps result `revalidate: 0`,
305
+ * so its redirect and notFound exits are answered private/no-store unless the
306
+ * handler set its own Cache-Control. Like Next's `!res.getHeader(...)`, this
307
+ * reads the raw value, so `""` and `0` count as unset.
308
+ */
309
+ function applyPagesGsspCacheControlDefault(headers, res) {
310
+ if (!res.getHeaders()["cache-control"]) headers.set("Cache-Control", NEVER_CACHE_CONTROL);
311
+ }
295
312
  function getPagesGsspResponseHeaders(res) {
296
313
  const headers = new Headers();
297
314
  for (const [name, value] of Object.entries(res.getHeaders())) if (Array.isArray(value)) for (const item of value) headers.append(name, item);
@@ -566,13 +583,19 @@ async function resolvePagesPageData(options) {
566
583
  pageProps
567
584
  };
568
585
  }
569
- if (result?.redirect) return {
570
- kind: "response",
571
- response: buildPagesRedirectResponse(result.redirect, options, renderProps, "getServerSideProps", getPagesGsspResponseHeaders(res))
572
- };
586
+ if (result?.redirect) {
587
+ const responseHeaders = getPagesGsspResponseHeaders(res);
588
+ applyPagesGsspCacheControlDefault(responseHeaders, res);
589
+ return {
590
+ kind: "response",
591
+ response: buildPagesRedirectResponse(result.redirect, options, renderProps, "getServerSideProps", responseHeaders)
592
+ };
593
+ }
573
594
  if (result?.notFound) {
574
595
  const responseHeaders = res.getHeaders();
575
- return buildPagesNotFoundResult(options, void 0, void 0, void 0, Object.keys(responseHeaders).length > 0 ? responseHeaders : void 0);
596
+ const notFoundResult = buildPagesNotFoundResult(options, void 0, void 0, void 0, Object.keys(responseHeaders).length > 0 ? responseHeaders : void 0);
597
+ if (notFoundResult.kind === "response") applyPagesGsspCacheControlDefault(notFoundResult.response.headers, res);
598
+ return notFoundResult;
576
599
  }
577
600
  if (result?.props !== void 0 && options.validatePropsSerialization !== false) isSerializableProps(options.routePattern, "getServerSideProps", pageProps);
578
601
  gsspRes = res;
@@ -796,4 +819,4 @@ async function resolvePagesPageData(options) {
796
819
  };
797
820
  }
798
821
  //#endregion
799
- export { assertPages404DoesNotReturnNotFound, buildPagesRedirectProps, getPagesRouteParams, matchesPagesStaticPath, mergePagesDataProps, mergePagesNotFoundSourceHeaders, resolvePagesPageData, resolvePagesRedirect, resolvePagesRedirectLocation, resolvePagesRevalidateSeconds, resolvePagesStatusPageRenderPath };
822
+ export { assertPages404DoesNotReturnNotFound, buildPagesRedirectProps, getPagesRouteParams, matchesPagesStaticPath, mergePagesDataProps, mergePagesNotFoundSourceHeaders, resolvePagesPageData, resolvePagesRedirect, resolvePagesRedirectLocation, resolvePagesRevalidateSeconds, resolvePagesStatusPageRenderPath, setPagesResponseHeader };
@@ -97,7 +97,7 @@ export type CreatePagesPageHandlerOptions = {
97
97
  href: string;
98
98
  type: string;
99
99
  }>;
100
- /** `renderToReadableStream` from `react-dom/server.edge`. */
100
+ /** `renderToReadableStream` from `react-dom/server`. */
101
101
  renderToReadableStream: (element: ReactNode) => Promise<ReadableStream<Uint8Array>>;
102
102
  /** `safeJsonStringify` from `vinext/html`. */
103
103
  safeJsonStringify: (value: unknown) => string;
@@ -139,4 +139,5 @@ type RenderPageOptions = {
139
139
  * accepts the same options shape the generated entry always passed inline.
140
140
  */
141
141
  export declare function createPagesPageHandler(opts: CreatePagesPageHandlerOptions): (request: Request, url: string, manifest: Record<string, string[]> | null | undefined, middlewareHeaders: Headers | null | undefined, options: RenderPageOptions | null | undefined, initialResponseHeaders?: Headers) => Promise<Response>;
142
- //#endregion
142
+ //#endregion
143
+ export {};
@@ -10,7 +10,7 @@ import { buildNextDataNotFoundResponse, buildNextDataPropsJsonResponse, normaliz
10
10
  import { reportRequestError } from "./instrumentation.js";
11
11
  import { getCdnCacheAdapter } from "../shims/cdn-cache.js";
12
12
  import { beginRouteCacheability, isRouteCacheabilityIdentityProbe, isRouteCacheabilityProbe, markRouteCacheabilityExplicitResponsePolicy, markRouteCacheabilityFinalResponseUncacheable, recordRouteCacheability } from "../shims/cacheability-classification.js";
13
- import { BROWSER_REVALIDATE_CACHE_CONTROL, NEVER_CACHE_CONTROL, STATIC_CACHE_CONTROL, applyCdnResponseHeaders, hasCdnResponsePolicy, hasExplicitNonCacheableResponsePolicy, shouldUseNextDeployCacheControl } from "./cache-control.js";
13
+ import { BROWSER_REVALIDATE_CACHE_CONTROL, NEVER_CACHE_CONTROL, STATIC_CACHE_CONTROL, applyCdnResponseHeaders, hasCdnResponsePolicy, hasExplicitNonCacheableResponsePolicy, isCdnResponsePolicyHeader, shouldUseNextDeployCacheControl } from "./cache-control.js";
14
14
  import { buildMissIsrCacheControl } from "./isr-decision.js";
15
15
  import { isOnDemandRevalidateRequest } from "./revalidation-request.js";
16
16
  import { coalesceOnDemandRevalidation, isrGet, isrSet, pagesIsrCacheKey, triggerBackgroundRegeneration } from "./isr-cache.js";
@@ -25,7 +25,7 @@ import { pagesPathCacheTag } from "./pages-cache-tag.js";
25
25
  import { renderPagesPageResponse } from "./pages-page-response.js";
26
26
  import { hasPagesGetInitialProps } from "./pages-get-initial-props.js";
27
27
  import { traceFindPageComponents, tracePagesDocumentStream } from "./pages-execution-tracing.js";
28
- import { mergePagesNotFoundSourceHeaders, resolvePagesPageData, resolvePagesStatusPageRenderPath } from "./pages-page-data.js";
28
+ import { mergePagesNotFoundSourceHeaders, resolvePagesPageData, resolvePagesStatusPageRenderPath, setPagesResponseHeader } from "./pages-page-data.js";
29
29
  import { collectAssetTags, resolveClientModuleUrl } from "./pages-asset-tags.js";
30
30
  import { PAGES_PREVIEW_CACHE_CONTROL, appendPagesPreviewClearCookies, getPagesPreviewState } from "./pages-preview.js";
31
31
  import { createPagesReqRes } from "./pages-node-compat.js";
@@ -87,14 +87,23 @@ function stripPagesNotFoundFramingHeaders(response) {
87
87
  statusText: response.statusText
88
88
  });
89
89
  }
90
- function applyPagesErrorCachePolicy(response, revalidateSeconds, expireSeconds, cacheTagPathname) {
90
+ /**
91
+ * `notFoundResHeaders` is the getServerSideProps res as it stands after the
92
+ * 404 render: the middleware and next.config headers, the handler's writes,
93
+ * then any write from the 404 render's own user code.
94
+ */
95
+ function applyPagesErrorCachePolicy(response, revalidateSeconds, expireSeconds, cacheTagPathname, notFoundResHeaders) {
91
96
  const headers = new Headers(response.headers);
92
97
  recordRouteCacheability(revalidateSeconds === void 0 ? { cacheable: false } : {
93
98
  cacheable: revalidateSeconds !== 0,
94
99
  cacheControl: buildMissIsrCacheControl(revalidateSeconds, expireSeconds)
95
100
  });
96
101
  if (hasExplicitNonCacheableResponsePolicy(headers)) return response;
97
- if (revalidateSeconds === void 0) applyCdnResponseHeaders(headers, { cacheControl: NEVER_CACHE_CONTROL });
102
+ if (revalidateSeconds === void 0 && notFoundResHeaders?.["cache-control"]) {
103
+ const policyHeaderNames = Array.from(headers.keys()).filter(isCdnResponsePolicyHeader);
104
+ for (const name of policyHeaderNames) headers.delete(name);
105
+ for (const [name, value] of Object.entries(notFoundResHeaders)) if (isCdnResponsePolicyHeader(name)) setPagesResponseHeader(headers, name, value);
106
+ } else if (revalidateSeconds === void 0) applyCdnResponseHeaders(headers, { cacheControl: NEVER_CACHE_CONTROL });
98
107
  else applyCdnResponseHeaders(headers, {
99
108
  cacheControl: buildMissIsrCacheControl(revalidateSeconds, expireSeconds),
100
109
  tags: [pagesPathCacheTag(cacheTagPathname)]
@@ -364,7 +373,7 @@ function createPagesPageHandler(opts) {
364
373
  }
365
374
  };
366
375
  const scriptNonce = getScriptNonceFromHeaderSources(request.headers, middlewareHeaders);
367
- const browserCacheControl = isStaticPropsRoute && !scriptNonce ? (initialResponseHeaders ?? middlewareHeaders)?.get("Cache-Control") : null;
376
+ const browserCacheControl = isStaticPropsRoute && !scriptNonce && !options?.__notFoundSourceHeaders ? (initialResponseHeaders ?? middlewareHeaders)?.get("Cache-Control") : null;
368
377
  const withBrowserPolicy = (response) => {
369
378
  if (browserCacheControl) response.headers.set("Cache-Control", browserCacheControl);
370
379
  return response;
@@ -590,7 +599,7 @@ function createPagesPageHandler(opts) {
590
599
  if (pageDataResult.kind === "response") {
591
600
  if (sendsEarly && pageResponseSent()) return pageDataResult.response;
592
601
  let response = isOnDemandRevalidate && pageDataResult.onDemandRevalidateSuccess !== false ? withPagesCacheState(pageDataResult.response, "REVALIDATED", isrCachePathname) : pageDataResult.response;
593
- if (shouldApplyErrorResponsePolicy) response = applyPagesErrorCachePolicy(response, errorPageRevalidateSeconds, errorPageExpireSeconds, errorResponseCachePathname);
602
+ if (shouldApplyErrorResponsePolicy) response = applyPagesErrorCachePolicy(response, errorPageRevalidateSeconds, errorPageExpireSeconds, errorResponseCachePathname, options?.__notFoundSourceHeaders);
594
603
  return finalizePagesPreviewResponse(withBrowserPolicy(response), preview);
595
604
  }
596
605
  const { pageProps, renderProps } = withErrorStatusCode(pageDataResult.pageProps, previewData !== false ? {
@@ -656,7 +665,7 @@ function createPagesPageHandler(opts) {
656
665
  requestCacheControl: request.headers.get("cache-control") ?? void 0
657
666
  });
658
667
  if (sendsEarly && pageResponseSent()) return pageResponse;
659
- if (shouldApplyErrorResponsePolicy) pageResponse = applyPagesErrorCachePolicy(pageResponse, errorPageRevalidateSeconds, errorPageExpireSeconds, errorResponseCachePathname);
668
+ if (shouldApplyErrorResponsePolicy) pageResponse = applyPagesErrorCachePolicy(pageResponse, errorPageRevalidateSeconds, errorPageExpireSeconds, errorResponseCachePathname, options?.__notFoundSourceHeaders ? documentReqRes?.res.getHeaders() ?? options.__notFoundSourceHeaders : void 0);
660
669
  return finalizePagesPreviewResponse(withBrowserPolicy(pageResponse), preview);
661
670
  } catch (e) {
662
671
  await reportSsrError(e);
@@ -43,4 +43,5 @@ type PagesPageMethodOptions = {
43
43
  * static (no `getServerSideProps`) Pages Router page, otherwise `null`.
44
44
  */
45
45
  export declare function resolvePagesPageMethodResponse(options: PagesPageMethodOptions): Response | null;
46
- //#endregion
46
+ //#endregion
47
+ export {};