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
@@ -151,4 +151,5 @@ export declare function buildPagesNextDataScript(options: Pick<RenderPagesPageRe
151
151
  vinext?: VinextNextData["__vinext"];
152
152
  }): string;
153
153
  export declare function renderPagesPageResponse(options: RenderPagesPageResponseOptions): Promise<Response>;
154
- //#endregion
154
+ //#endregion
155
+ export {};
@@ -22,4 +22,5 @@ export declare function clearPagesPreviewData(response: PreviewResponse, options
22
22
  path?: string;
23
23
  }): void;
24
24
  export declare function appendPagesPreviewClearCookies(headers: Headers): void;
25
- //#endregion
25
+ //#endregion
26
+ export {};
@@ -32,4 +32,5 @@ export declare function buildPagesReadinessNextData(options: {
32
32
  } | null | undefined;
33
33
  hasRewrites: boolean;
34
34
  }): PagesReadinessNextData;
35
- //#endregion
35
+ //#endregion
36
+ export {};
@@ -157,4 +157,5 @@ export type PagesPipelineResult = {
157
157
  * runPagesRequest receives a "clean" request with basePath-stripped URL.
158
158
  */
159
159
  export declare function runPagesRequest(request: Request, deps: PagesPipelineDeps): Promise<PagesPipelineResult>;
160
- //#endregion
160
+ //#endregion
161
+ export {};
@@ -1,11 +1,11 @@
1
1
  import { PRERENDER_REVALIDATE_HEADER } from "../utils/protocol-headers.js";
2
2
  import { requestContextFromRequest } from "../config/request-context.js";
3
3
  import { isExternalUrl } from "../utils/external-url.js";
4
- import { addBasePathToPathname, hasBasePath } from "../utils/base-path.js";
4
+ import { addBasePathToPathname } from "../utils/base-path.js";
5
5
  import { VINEXT_PRERENDER_REWRITTEN_HEADER } from "./headers.js";
6
6
  import { methodNotAllowedResponse, notFoundStaticAssetResponse, sanitizeMethodNotAllowedHeaders } from "./http-error-responses.js";
7
7
  import { cloneRequestWithUrl, normalizeTrailingSlash } from "./request-pipeline.js";
8
- import { applyMiddlewareRequestHeaders, matchRedirect, matchRewrite, preserveRedirectDestinationQuery, proxyExternalRequest, sanitizeDestination } from "../config/config-matchers.js";
8
+ import { applyMiddlewareRequestHeaders, encodeRedirectLocation, matchRedirect, matchRewrite, preserveRedirectDestinationQuery, proxyExternalRequest } from "../config/config-matchers.js";
9
9
  import { assetPrefixPathname, isAssetPrefixBuildAsset, isNextStaticPath } from "../utils/asset-prefix.js";
10
10
  import { normalizePathnameForRouteMatchStrict } from "../routing/utils.js";
11
11
  import { patternToNextFormat } from "../routing/route-validation.js";
@@ -127,12 +127,11 @@ async function runPagesRequest(request, deps) {
127
127
  if (configRedirects.length) {
128
128
  const redirect = matchRedirect(requestConfigMatchPathname, configRedirects, reqCtx, basePathState, conditionalRedirectCacheability);
129
129
  if (redirect) {
130
- const dest = sanitizeDestination(basePath && hadBasePath && !isExternalUrl(redirect.destination) && !hasBasePath(redirect.destination, basePath) ? basePath + redirect.destination : redirect.destination);
131
- const location = preserveRedirectDestinationQuery(dest, deps.rawSearch ?? search, redirect.destinationQuery);
130
+ const location = encodeRedirectLocation(preserveRedirectDestinationQuery(redirect.destination, deps.rawSearch ?? search, redirect.destinationQuery));
132
131
  return {
133
132
  type: "response",
134
133
  response: new Response(null, {
135
- status: redirect.permanent ? 308 : 307,
134
+ status: redirect.statusCode,
136
135
  headers: { Location: location }
137
136
  })
138
137
  };
@@ -26,4 +26,5 @@ export declare function isPagesClientBuildFileRequest(request: Request, env: Pag
26
26
  export declare function handleRequestStage(request: Request, env: PagesWorkerEnv | undefined, ctx: PagesWorkerExecutionContext | undefined, dispatchResponseStage: DispatchWorkerResponseStage): Promise<Response>;
27
27
  /** Preserve the direct single-entry Worker path without retaining it in request-only builds. */
28
28
  export declare function handleRequestStageLocally(request: Request, env: PagesWorkerEnv | undefined, ctx: PagesWorkerExecutionContext | undefined, dispatchResponseStage: PagesLocalResponseStage): Promise<Response>;
29
- //#endregion
29
+ //#endregion
30
+ export {};
@@ -8,4 +8,5 @@ type PagesWorkerExecutionContext = ExecutionContextLike & {
8
8
  };
9
9
  export declare function renderPagesResponse(request: Request, env: PagesWorkerEnv | undefined, platformCtx: PagesWorkerExecutionContext | undefined, props: WorkerResponseStageProps, stagedHeaders?: Headers, dispatchRequestStage?: VinextRequestStageTransport, dispatchOptions?: VinextResponseStageDispatchOptions): Promise<Response>;
10
10
  export declare function handleResponseStage(request: Request, env: PagesWorkerEnv | undefined, ctx: PagesWorkerExecutionContext | undefined, props: WorkerResponseStageProps, dispatchRequestStage: VinextRequestStageTransport, options: VinextResponseStageDispatchOptions): Promise<Response>;
11
- //#endregion
11
+ //#endregion
12
+ export {};
@@ -15,4 +15,5 @@ type AppComponent = {
15
15
  } | null;
16
16
  /** Classify loaded Pages modules after HOCs and re-exports have been evaluated. */
17
17
  export declare function getRuntimePagesDataKind(pageModule: PagesModule, appComponent: AppComponent): RuntimePagesDataKind;
18
- //#endregion
18
+ //#endregion
19
+ export {};
@@ -7,4 +7,5 @@ type PrerenderCacheLife = {
7
7
  };
8
8
  export declare function applyPrerenderCacheLifeHeader(headers: Headers, requestCacheLife: PrerenderCacheLife | null | undefined): void;
9
9
  export declare function applyPrerenderCacheTagsHeader(headers: Headers, cacheTags: readonly string[]): void;
10
- //#endregion
10
+ //#endregion
11
+ export {};
@@ -26,4 +26,5 @@ export declare function readTrustedPrerenderStateFromHeaders(headers: Headers, e
26
26
  export declare function readTrustedPrerenderRouteParams(request: Request): PrerenderRouteParamsPayload | null;
27
27
  export declare function matchPrerenderRouteParamsPayload(payload: PrerenderRouteParamsPayload | null, routePattern: string, params: PrerenderRouteParams): PrerenderRouteParamsRouteMatch | null;
28
28
  export declare function encodePrerenderRouteParams(pattern: string, params: PrerenderRouteParams, fallbackParamNames?: readonly string[]): PrerenderRouteParamsPayload | null;
29
- //#endregion
29
+ //#endregion
30
+ export {};
@@ -31,7 +31,6 @@ import { readPrerenderSecret, readServerCompress } from "../build/server-manifes
31
31
  import { readTrustedPrerenderRouteParamsFromHeaders, serializePrerenderRouteParamsHeader } from "./prerender-route-params.js";
32
32
  import { resolveClientBuildFile } from "./client-build-files.js";
33
33
  import { registerPrerenderCloudflareLoader } from "../build/prerender-cloudflare-loader.js";
34
- import { seedMemoryCacheFromPrerender } from "./seed-cache.js";
35
34
  import { negotiateEncoding, parseAcceptedEncodings, selectContentEncoding } from "./accept-encoding.js";
36
35
  import { COMPRESS_THRESHOLD, hasNoTransform, isCompressibleContentType, parseContentLengthHeader, resolveResponseCompression } from "./response-compression.js";
37
36
  import { ifRangeAllowsRange, parseByteRange } from "./http-range.js";
@@ -329,6 +328,7 @@ function installClientBuildManifestGlobals(clientDir, assetBase, assetPrefix, cr
329
328
  });
330
329
  setPagesClientAssets({
331
330
  appBootstrapPreinitModules: metadata.appBootstrapPreinitModules,
331
+ appRouteManifestModule: metadata.appRouteManifestModule,
332
332
  lazyChunks: metadata.lazyChunks,
333
333
  dynamicPreloads: metadata.dynamicPreloads,
334
334
  crossOrigin
@@ -904,6 +904,7 @@ function waitForNodeResponseCompletion(res) {
904
904
  */
905
905
  async function startProdServer(options = {}) {
906
906
  installSocketErrorBackstop({ runningServer: options.purpose !== "prerender" });
907
+ if (options.purpose !== "prerender" && !process.env.NODE_ENV) Reflect.set(process.env, "NODE_ENV", "production");
907
908
  const { port = process.env.PORT ? parseInt(process.env.PORT) : 3e3, host = "0.0.0.0", outDir = path.resolve("dist"), rscEntryPath: explicitRscEntryPath, serverDir: explicitServerDir, serverEntryPath: explicitServerEntryPath, noCompression = false, purpose, silent = false } = options;
908
909
  if (purpose === "prerender") registerPrerenderCloudflareLoader();
909
910
  const compress = !noCompression;
@@ -1007,15 +1008,19 @@ function resolveAppRouterHandler(entry) {
1007
1008
  console.error("[vinext] App Router entry must export either a default handler function or a Worker-style default export with fetch()");
1008
1009
  process.exit(1);
1009
1010
  }
1011
+ async function seedMemoryCacheFromPrerenderFallback(serverDir) {
1012
+ const { seedMemoryCacheFromPrerender } = await import("./seed-cache.js");
1013
+ return seedMemoryCacheFromPrerender(serverDir);
1014
+ }
1010
1015
  function isAppRouterPrerenderSeederExport(value) {
1011
1016
  return typeof value === "function";
1012
1017
  }
1013
1018
  function resolveAppRouterPrerenderSeeder(entryModule) {
1014
- if (typeof entryModule !== "object" || entryModule === null) return seedMemoryCacheFromPrerender;
1019
+ if (typeof entryModule !== "object" || entryModule === null) return seedMemoryCacheFromPrerenderFallback;
1015
1020
  const seedExport = Object.getOwnPropertyDescriptor(entryModule, "seedMemoryCacheFromPrerender")?.value;
1016
1021
  if (!isAppRouterPrerenderSeederExport(seedExport)) {
1017
1022
  if (process.env.NEXT_PRIVATE_DEBUG_CACHE) console.debug("[vinext] ISR: using fallback prerender cache seeder");
1018
- return seedMemoryCacheFromPrerender;
1023
+ return seedMemoryCacheFromPrerenderFallback;
1019
1024
  }
1020
1025
  if (process.env.NEXT_PRIVATE_DEBUG_CACHE) console.debug("[vinext] ISR: using App Router entry prerender cache seeder");
1021
1026
  return async (serverDir) => {
@@ -1091,6 +1096,7 @@ function installPagesClientAssets(options) {
1091
1096
  setPagesClientAssets({
1092
1097
  clientEntry: metadata.clientEntryFile,
1093
1098
  appBootstrapPreinitModules: metadata.appBootstrapPreinitModules,
1099
+ appRouteManifestModule: metadata.appRouteManifestModule,
1094
1100
  ssrManifest: Object.keys(ssrManifest).length > 0 ? ssrManifest : void 0,
1095
1101
  sharedChunks: metadata.sharedChunks,
1096
1102
  cssGraph: metadata.cssGraph,
@@ -31,4 +31,5 @@ export declare function logRequest({ method, url, status, totalMs, compileMs, re
31
31
  * Returns `performance.now()` - a high-resolution monotonic timestamp.
32
32
  */
33
33
  export declare function now(): number;
34
- //#endregion
34
+ //#endregion
35
+ export {};
@@ -19,4 +19,5 @@ export declare function clearFrameworkRequestError(response: Response): Response
19
19
  export declare function attachFrameworkRequestError(response: Response, error: unknown): Response;
20
20
  export declare function consumeFrameworkRequestRoute(response: Response): Response;
21
21
  export declare function traceFrameworkRequest<T>(input: RequestTraceInput<T>): Promise<T>;
22
- //#endregion
22
+ //#endregion
23
+ export {};
@@ -1,8 +1,8 @@
1
1
  import { getOrCreateAls } from "../shims/internal/als-registry.js";
2
2
  import { isFullyBufferedBody, markFullyBufferedBody, preserveFullyBufferedBodyMetadata } from "./fully-buffered-response.js";
3
+ import { deferUntilStreamConsumed } from "./defer-until-stream-consumed.js";
3
4
  import { VINEXT_TRACE_BUFFERED_BODY_HEADER, VINEXT_TRACE_ERROR_HEADER, VINEXT_TRACE_ROUTE_HEADER } from "./headers.js";
4
5
  import { frameworkTracer } from "./tracer.js";
5
- import { deferUntilStreamConsumed } from "./defer-until-stream-consumed.js";
6
6
  import { getResponseStartCompletion } from "./response-start-tracing.js";
7
7
  //#region src/server/request-tracing.ts
8
8
  const activeRequestTrace = getOrCreateAls("vinext.requestTracing.als");
@@ -1,4 +1,5 @@
1
1
  import { preserveFullyBufferedBodyMetadata } from "./fully-buffered-response.js";
2
+ import { observeStreamConsumption } from "./defer-until-stream-consumed.js";
2
3
  import { frameworkTracer } from "./tracer.js";
3
4
  import { copyLinkHeaderProvenance } from "./app-response-header-provenance.js";
4
5
  //#region src/server/response-start-tracing.ts
@@ -13,37 +14,14 @@ function createResponseStartSpanDescriptor() {
13
14
  };
14
15
  }
15
16
  function traceResponseStartStream(stream, onSettled) {
16
- const reader = stream.getReader();
17
17
  const runInTraceContext = frameworkTracer.captureActiveContext();
18
- let started = false;
19
- return new ReadableStream({
20
- async pull(controller) {
21
- try {
22
- const result = await reader.read();
23
- if (result.done) {
24
- onSettled();
25
- controller.close();
26
- return;
27
- }
28
- if (!started) {
29
- started = true;
30
- runInTraceContext(() => frameworkTracer.trace(createResponseStartSpanDescriptor(), () => void 0));
31
- onSettled();
32
- }
33
- controller.enqueue(result.value);
34
- } catch (error) {
35
- onSettled();
36
- controller.error(error);
37
- }
18
+ return observeStreamConsumption(stream, {
19
+ onStart() {
20
+ runInTraceContext(() => frameworkTracer.trace(createResponseStartSpanDescriptor(), () => void 0));
21
+ onSettled();
38
22
  },
39
- async cancel(reason) {
40
- try {
41
- await reader.cancel(reason);
42
- } finally {
43
- onSettled();
44
- }
45
- }
46
- }, { highWaterMark: 0 });
23
+ onFlush: onSettled
24
+ });
47
25
  }
48
26
  function traceResponseStartWithCompletion(response) {
49
27
  const existing = tracedResponses.get(response);
@@ -0,0 +1,4 @@
1
+ //#region src/server/rsc-render-stream.d.ts
2
+ export type RscRawRenderer = (model: unknown, options?: unknown) => ReadableStream<Uint8Array>;
3
+ export declare function createRscRenderer(render: RscRawRenderer): RscRawRenderer;
4
+ //#endregion
@@ -0,0 +1,25 @@
1
+ import { deferUntilStreamConsumed } from "./defer-until-stream-consumed.js";
2
+ import { createRenderStreamCancellation } from "./app-render-abort-error.js";
3
+ //#region src/server/rsc-render-stream.ts
4
+ const noop = () => {};
5
+ function createRscRenderer(render) {
6
+ return (model, options) => {
7
+ const cancellation = createRenderStreamCancellation();
8
+ return deferUntilStreamConsumed(render(model, ignoreCancellationErrors(options, cancellation)), noop, void 0, cancellation.record);
9
+ };
10
+ }
11
+ /** A consumer cancelling the payload is not a render failure. */
12
+ function ignoreCancellationErrors(options, cancellation) {
13
+ if (!options || typeof options !== "object") return options;
14
+ const onError = Reflect.get(options, "onError");
15
+ if (typeof onError !== "function") return options;
16
+ return {
17
+ ...options,
18
+ onError(error, ...rest) {
19
+ if (cancellation.isReason(error)) return void 0;
20
+ return Reflect.apply(onError, options, [error, ...rest]);
21
+ }
22
+ };
23
+ }
24
+ //#endregion
25
+ export { createRscRenderer };
@@ -30,4 +30,5 @@ type PrerenderCacheSeedOptions = {
30
30
  * @returns The number of routes seeded (0 if no manifest or no renderable routes).
31
31
  */
32
32
  export declare function seedMemoryCacheFromPrerender(serverDir: string, options?: PrerenderCacheSeedOptions): Promise<number>;
33
- //#endregion
33
+ //#endregion
34
+ export {};
@@ -2,8 +2,8 @@ import path from "../deps/.pnpm/pathslash@0.1.0/deps/pathslash/dist/index.js";
2
2
  import { appIsrCacheKey, appIsrFallbackShellKey, isrSet, isrSetPrerenderedAppPage } from "./isr-cache.js";
3
3
  import { addPregeneratedConcretePath, addPregeneratedRoute, clearPregeneratedConcretePaths, normalizePregeneratedPathname } from "./pregenerated-concrete-paths.js";
4
4
  import { getRenderedAppRoutes, getRenderedMetadataRoutes, isFallbackShellArtifactPath, readPrerenderManifest } from "./prerender-manifest.js";
5
- import { buildAppPageCacheTags, buildAppRouteCacheTags } from "./app-page-cache.js";
6
5
  import { getAppRouteOutputPath, getOutputPath, getRscOutputPath } from "../utils/prerender-output-paths.js";
6
+ import { buildAppPageCacheTags, buildAppRouteCacheTags } from "./app-page-cache.js";
7
7
  import fs from "node:fs";
8
8
  //#region src/server/seed-cache.ts
9
9
  /**
@@ -66,4 +66,5 @@ export declare class StaticFileCache {
66
66
  * so the caller can fall back to mtime-based ETags.
67
67
  */
68
68
  export declare function etagFromFilenameHash(relativePath: string, ext: string): string | null;
69
- //#endregion
69
+ //#endregion
70
+ export {};
@@ -37,6 +37,7 @@ const CONTENT_TYPES = {
37
37
  ".mp4": "video/mp4",
38
38
  ".ogg": "audio/ogg",
39
39
  ".ogv": "video/ogg",
40
+ ".otf": "font/otf",
40
41
  ".pdf": "application/pdf",
41
42
  ".png": "image/png",
42
43
  ".rsc": "text/x-component",
@@ -10,4 +10,5 @@ type StaticLayoutClientReuseProofInput = Readonly<{
10
10
  export declare function createStaticLayoutClientReuseRouteId(layoutId: string): string;
11
11
  export declare function createStaticLayoutClientReusePayloadHash(input: StaticLayoutClientReuseProofInput): string;
12
12
  export declare function createStaticLayoutClientReuseArtifactCompatibility(input: StaticLayoutClientReuseProofInput): ArtifactCompatibilityEnvelope;
13
- //#endregion
13
+ //#endregion
14
+ export {};
@@ -9,4 +9,5 @@ type PlatformExecutionContext = Partial<ExecutionContextLike> & VinextRequestSta
9
9
  * on the normal header-scrubbing path.
10
10
  */
11
11
  export declare function createWorkerRevalidationContext(base: PlatformExecutionContext | undefined, handleInternalRequest: (request: Request, ctx: ExecutionContextLike) => Promise<Response>, defaultHostRuntime?: "node" | "worker"): ExecutionContextLike;
12
- //#endregion
12
+ //#endregion
13
+ export {};
@@ -40,4 +40,5 @@ export type WorkerResponseStageProps = PagesApiResponseStageProps | PagesPageRes
40
40
  */
41
41
  export type DispatchWorkerResponseStage = VinextResponseStageTransport<WorkerResponseStageProps>;
42
42
  export declare function isPagesResponseStageProps(value: unknown): value is WorkerResponseStageProps;
43
- //#endregion
43
+ //#endregion
44
+ export {};
@@ -34,4 +34,5 @@ export default class App<P = any, CP = any, S = any> extends React.Component<P &
34
34
  static getInitialProps: typeof appGetInitialProps;
35
35
  render(): React.ReactElement;
36
36
  }
37
- //#endregion
37
+ //#endregion
38
+ export {};
@@ -12,4 +12,5 @@ export declare function registerCachedFunction<TArgs extends unknown[], TResult>
12
12
  }): (...args: TArgs) => Promise<TResult>;
13
13
  /** Replay the persisted payload without re-reading or re-encoding caller objects. */
14
14
  export declare function invokeCacheFunction(invocation: VinextCacheFunctionInvocation, loadServerAction: (id: string) => Promise<unknown>): Promise<void>;
15
- //#endregion
15
+ //#endregion
16
+ export {};
@@ -96,7 +96,7 @@ type MemoryCacheHandlerOptions = Pick<CacheHandlerContext, "maxMemoryCacheSize">
96
96
  };
97
97
  export declare class MemoryCacheHandler implements CacheHandler {
98
98
  private store;
99
- private tagRevalidatedAt;
99
+ private tagsManifest;
100
100
  private readonly maxMemoryCacheSize;
101
101
  private currentMemoryCacheSize;
102
102
  constructor(options?: number | MemoryCacheHandlerOptions);
@@ -106,7 +106,11 @@ export declare class MemoryCacheHandler implements CacheHandler {
106
106
  private evictLeastRecentlyUsed;
107
107
  get(key: string, ctx?: Record<string, unknown>): Promise<CacheHandlerValue | null>;
108
108
  set(key: string, data: IncrementalCacheValue | null, ctx?: Record<string, unknown>): Promise<void>;
109
- revalidateTag(tags: string | string[]): Promise<void>;
109
+ revalidateTag(tags: string | string[], durations?: {
110
+ expire?: number;
111
+ }): Promise<void>;
112
+ private isTagExpired;
113
+ private isTagStale;
110
114
  resetRequestCache(): void;
111
115
  }
112
116
  export declare function configureMemoryCacheHandler(options?: MemoryCacheHandlerOptions): void;
@@ -121,4 +125,5 @@ export declare function registerLazyDataCacheHandler(load: () => Promise<void>):
121
125
  export declare function getDataCacheHandler(): CacheHandler;
122
126
  export declare function setCacheHandler(handler: CacheHandler): void;
123
127
  export declare function getCacheHandler(): CacheHandler;
124
- //#endregion
128
+ //#endregion
129
+ export {};
@@ -48,7 +48,7 @@ function readPositiveNumberField(ctx, field) {
48
48
  }
49
49
  var MemoryCacheHandler = class {
50
50
  store = /* @__PURE__ */ new Map();
51
- tagRevalidatedAt = /* @__PURE__ */ new Map();
51
+ tagsManifest = /* @__PURE__ */ new Map();
52
52
  maxMemoryCacheSize;
53
53
  currentMemoryCacheSize = 0;
54
54
  constructor(options) {
@@ -77,19 +77,20 @@ var MemoryCacheHandler = class {
77
77
  async get(key, ctx) {
78
78
  const entry = this.store.get(key);
79
79
  if (!entry) return null;
80
+ const now = Date.now();
81
+ let hasStaleTag = false;
80
82
  for (const tag of entry.tags) {
81
- const revalidatedAt = this.tagRevalidatedAt.get(tag);
82
- if (revalidatedAt && revalidatedAt >= entry.lastModified) {
83
+ if (this.isTagExpired(tag, entry.lastModified, now)) {
83
84
  this.deleteEntry(key);
84
85
  return null;
85
86
  }
87
+ hasStaleTag ||= this.isTagStale(tag, entry.lastModified);
86
88
  }
87
89
  for (const tag of readStringArrayField(ctx, "softTags")) {
88
- const revalidatedAt = this.tagRevalidatedAt.get(tag);
89
- if (revalidatedAt && revalidatedAt >= entry.lastModified) return null;
90
+ if (this.isTagExpired(tag, entry.lastModified, now)) return null;
91
+ hasStaleTag ||= this.isTagStale(tag, entry.lastModified);
90
92
  }
91
93
  this.touchEntry(key, entry);
92
- const now = Date.now();
93
94
  if (entry.expireAt !== null && now > entry.expireAt) return {
94
95
  lastModified: entry.lastModified,
95
96
  value: entry.value,
@@ -98,7 +99,7 @@ var MemoryCacheHandler = class {
98
99
  };
99
100
  const requestedRevalidate = readPositiveNumberField(ctx, "revalidate");
100
101
  const requestedRevalidateAt = requestedRevalidate === void 0 ? null : entry.lastModified + requestedRevalidate * 1e3;
101
- if (entry.revalidateAt !== null && now > entry.revalidateAt || requestedRevalidateAt !== null && now > requestedRevalidateAt) return {
102
+ if (hasStaleTag || entry.revalidateAt !== null && now > entry.revalidateAt || requestedRevalidateAt !== null && now > requestedRevalidateAt) return {
102
103
  lastModified: entry.lastModified,
103
104
  value: entry.value,
104
105
  cacheState: "stale",
@@ -148,10 +149,29 @@ var MemoryCacheHandler = class {
148
149
  this.currentMemoryCacheSize += entrySize;
149
150
  this.evictLeastRecentlyUsed();
150
151
  }
151
- async revalidateTag(tags) {
152
+ async revalidateTag(tags, durations) {
152
153
  const tagList = Array.isArray(tags) ? tags : [tags];
153
154
  const now = Date.now();
154
- for (const tag of tagList) this.tagRevalidatedAt.set(tag, now);
155
+ for (const tag of tagList) {
156
+ const existing = this.tagsManifest.get(tag) ?? {};
157
+ if (durations) this.tagsManifest.set(tag, {
158
+ ...existing,
159
+ stale: now,
160
+ ...durations.expire === void 0 ? {} : { expired: now + durations.expire * 1e3 }
161
+ });
162
+ else this.tagsManifest.set(tag, {
163
+ ...existing,
164
+ expired: now
165
+ });
166
+ }
167
+ }
168
+ isTagExpired(tag, lastModified, now) {
169
+ const expired = this.tagsManifest.get(tag)?.expired;
170
+ return expired !== void 0 && expired <= now && expired >= lastModified;
171
+ }
172
+ isTagStale(tag, lastModified) {
173
+ const stale = this.tagsManifest.get(tag)?.stale;
174
+ return stale !== void 0 && stale > lastModified;
155
175
  }
156
176
  resetRequestCache() {}
157
177
  };
@@ -0,0 +1,15 @@
1
+ import React from "react";
2
+ //#region src/shims/caught-not-found-boundaries.d.ts
3
+ export declare const CAUGHT_NOT_FOUND_BOUNDARIES_GLOBAL = "__VINEXT_CAUGHT_NOT_FOUND__";
4
+ /** The boundaries that caught, and those of them the document rendered. */
5
+ export type CaughtNotFoundBoundaries = {
6
+ ids: ReadonlySet<string>;
7
+ rendered: Set<string>;
8
+ };
9
+ export declare const CaughtNotFoundBoundariesContext: React.Context<CaughtNotFoundBoundaries | null> | null;
10
+ export declare function withCaughtNotFoundBoundaries(boundaries: CaughtNotFoundBoundaries, children: React.ReactElement): React.ReactElement;
11
+ /** Whether the boundary with this id caught a notFound() in the document. */
12
+ export declare function useCaughtNotFoundBoundary(id: string | undefined): boolean;
13
+ /** A hydrated boundary consumes its id, so a later mount renders its children. */
14
+ export declare function consumeCaughtNotFoundBoundary(id: string | undefined): void;
15
+ //#endregion
@@ -0,0 +1,48 @@
1
+ import React from "react";
2
+ //#region src/shims/caught-not-found-boundaries.ts
3
+ /**
4
+ * The parallel slot not-found boundaries that caught a slot's notFound() in
5
+ * the document. Fizz has no error boundaries, so a slot page's notFound()
6
+ * rejects the shell; the App Router SSR entry then renders the document again
7
+ * from the same Flight payload, with the boundaries that would have caught it
8
+ * on the client rendering their fallback (Next.js renders them in the browser
9
+ * after an empty error shell). The browser reads the same ids from
10
+ * `self.__VINEXT_CAUGHT_NOT_FOUND__`, so those boundaries hydrate caught. Only
11
+ * the boundaries the document rendered are sent, since one inside another
12
+ * caught boundary never mounts to consume its id.
13
+ *
14
+ * Stored on a global symbol so duplicate module instances share one context,
15
+ * and null in react-server, which has no createContext.
16
+ */
17
+ const CAUGHT_NOT_FOUND_BOUNDARIES_CONTEXT_KEY = Symbol.for("vinext.caughtNotFoundBoundariesContext");
18
+ const CAUGHT_NOT_FOUND_BOUNDARIES_GLOBAL = "__VINEXT_CAUGHT_NOT_FOUND__";
19
+ function getCaughtNotFoundBoundariesContext() {
20
+ if (typeof React.createContext !== "function") return null;
21
+ const globalState = globalThis;
22
+ globalState[CAUGHT_NOT_FOUND_BOUNDARIES_CONTEXT_KEY] ??= React.createContext(null);
23
+ return globalState[CAUGHT_NOT_FOUND_BOUNDARIES_CONTEXT_KEY];
24
+ }
25
+ const CaughtNotFoundBoundariesContext = getCaughtNotFoundBoundariesContext();
26
+ function withCaughtNotFoundBoundaries(boundaries, children) {
27
+ return CaughtNotFoundBoundariesContext ? React.createElement(CaughtNotFoundBoundariesContext.Provider, { value: boundaries }, children) : children;
28
+ }
29
+ /** Whether the boundary with this id caught a notFound() in the document. */
30
+ function useCaughtNotFoundBoundary(id) {
31
+ const serverBoundaries = React.useContext(CaughtNotFoundBoundariesContext);
32
+ if (id === void 0) return false;
33
+ if (typeof window === "undefined") {
34
+ if (serverBoundaries?.ids.has(id) !== true) return false;
35
+ serverBoundaries.rendered.add(id);
36
+ return true;
37
+ }
38
+ return globalThis[CAUGHT_NOT_FOUND_BOUNDARIES_GLOBAL]?.includes(id) === true;
39
+ }
40
+ /** A hydrated boundary consumes its id, so a later mount renders its children. */
41
+ function consumeCaughtNotFoundBoundary(id) {
42
+ if (id === void 0 || typeof window === "undefined") return;
43
+ const ids = globalThis[CAUGHT_NOT_FOUND_BOUNDARIES_GLOBAL];
44
+ const index = ids?.indexOf(id) ?? -1;
45
+ if (index !== -1) ids.splice(index, 1);
46
+ }
47
+ //#endregion
48
+ export { CAUGHT_NOT_FOUND_BOUNDARIES_GLOBAL, CaughtNotFoundBoundariesContext, consumeCaughtNotFoundBoundary, useCaughtNotFoundBoundary, withCaughtNotFoundBoundaries };
@@ -21,4 +21,5 @@ export declare function registerCdnPurgeRoutes(routes: CdnPurgeRoutes): void;
21
21
  * also the `/docs` page tag) always purge.
22
22
  */
23
23
  export declare function isPathKnownNotEdgeCached(path: string): boolean;
24
- //#endregion
24
+ //#endregion
25
+ export {};
@@ -3,7 +3,8 @@ import { detectDomainLocale, getLocalePathPrefix } from "../utils/domain-locale.
3
3
  //#region src/shims/client-locale.ts
4
4
  function getCurrentBrowserLocale({ basePath, domainLocales, hostname }) {
5
5
  if (typeof window === "undefined") return void 0;
6
- const pathnameLocale = getLocalePathPrefix(stripBasePath(window.location.pathname, basePath), window.__VINEXT_LOCALES__);
6
+ const locales = window.__VINEXT_LOCALES__;
7
+ const pathnameLocale = locales?.length ? getLocalePathPrefix(stripBasePath(window.location.pathname, basePath), locales) : void 0;
7
8
  if (pathnameLocale) return pathnameLocale;
8
9
  return detectDomainLocale(domainLocales, hostname ?? void 0)?.defaultLocale ?? window.__VINEXT_LOCALE__ ?? window.__VINEXT_DEFAULT_LOCALE__;
9
10
  }
@@ -21,4 +21,5 @@ export type ClientPageRootProps = {
21
21
  */
22
22
  export declare function createClientPageSearchParams(searchParams: URLSearchParams | null | undefined): Promise<ClientPageSearchParams>;
23
23
  export declare function ClientPageRoot({ Component, pageProps, emptySearchParams }: ClientPageRootProps): import("react").ReactElement<Record<string, unknown>, string | import("react").JSXElementConstructor<any>>;
24
- //#endregion
24
+ //#endregion
25
+ export {};
@@ -24,4 +24,5 @@ export declare function setConfig(configValue: RuntimeConfig): void;
24
24
  * Default export — matches `import getConfig from "next/config"`.
25
25
  */
26
26
  export default function getConfig(): RuntimeConfig;
27
- //#endregion
27
+ //#endregion
28
+ export {};
@@ -0,0 +1,4 @@
1
+ import React from "react";
2
+ //#region src/shims/default-forbidden.d.ts
3
+ export default function DefaultForbidden(): React.ReactElement;
4
+ //#endregion
@@ -0,0 +1,18 @@
1
+ import { HTTPAccessErrorFallback } from "./http-access-error-fallback.js";
2
+ import React from "react";
3
+ //#region src/shims/default-forbidden.tsx
4
+ /**
5
+ * Ported from Next.js's built-in default forbidden component:
6
+ * https://github.com/vercel/next.js/blob/canary/packages/next/src/client/components/builtin/forbidden.tsx
7
+ *
8
+ * Rendered when `forbidden()` is called and no `app/forbidden.tsx` boundary
9
+ * catches it.
10
+ */
11
+ function DefaultForbidden() {
12
+ return React.createElement(HTTPAccessErrorFallback, {
13
+ status: 403,
14
+ message: "This page could not be accessed."
15
+ });
16
+ }
17
+ //#endregion
18
+ export { DefaultForbidden as default };
@@ -1,9 +1,4 @@
1
1
  import React from "react";
2
2
  //#region src/shims/default-not-found.d.ts
3
- /**
4
- * Mirrors `<HTTPAccessErrorFallback status={404} message="This page could not be found." />`
5
- * from Next.js. Kept in sync with the upstream component's structure so HTML
6
- * snapshot diffs between Next.js and vinext stay minimal.
7
- */
8
3
  export default function DefaultNotFound(): React.ReactElement;
9
4
  //#endregion