vinext 0.0.49 → 0.0.51

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 (506) hide show
  1. package/dist/build/client-build-config.js.map +1 -1
  2. package/dist/build/google-fonts/build-url.js.map +1 -1
  3. package/dist/build/google-fonts/fallback-metrics-data.js +14031 -0
  4. package/dist/build/google-fonts/fallback-metrics-data.js.map +1 -0
  5. package/dist/build/google-fonts/fallback-metrics.d.ts +13 -0
  6. package/dist/build/google-fonts/fallback-metrics.js +46 -0
  7. package/dist/build/google-fonts/fallback-metrics.js.map +1 -0
  8. package/dist/build/google-fonts/get-axes.js.map +1 -1
  9. package/dist/build/google-fonts/sort-variants.js.map +1 -1
  10. package/dist/build/google-fonts/validate.js.map +1 -1
  11. package/dist/build/layout-classification.js.map +1 -1
  12. package/dist/build/nitro-route-rules.js.map +1 -1
  13. package/dist/build/precompress.d.ts +13 -2
  14. package/dist/build/precompress.js +12 -3
  15. package/dist/build/precompress.js.map +1 -1
  16. package/dist/build/prerender.d.ts +17 -1
  17. package/dist/build/prerender.js +114 -23
  18. package/dist/build/prerender.js.map +1 -1
  19. package/dist/build/report.d.ts +5 -4
  20. package/dist/build/report.js +196 -348
  21. package/dist/build/report.js.map +1 -1
  22. package/dist/build/route-classification-injector.js.map +1 -1
  23. package/dist/build/route-classification-manifest.js.map +1 -1
  24. package/dist/build/run-prerender.js.map +1 -1
  25. package/dist/build/server-manifest.js.map +1 -1
  26. package/dist/build/ssr-manifest.js.map +1 -1
  27. package/dist/build/standalone.js.map +1 -1
  28. package/dist/build/static-export.js.map +1 -1
  29. package/dist/check.js +2 -1
  30. package/dist/check.js.map +1 -1
  31. package/dist/cli-args.js.map +1 -1
  32. package/dist/cli.js +68 -7
  33. package/dist/cli.js.map +1 -1
  34. package/dist/client/instrumentation-client-state.js.map +1 -1
  35. package/dist/client/validate-module-path.js.map +1 -1
  36. package/dist/client/vinext-next-data.d.ts +5 -1
  37. package/dist/client/window-next.d.ts +151 -0
  38. package/dist/client/window-next.js +48 -0
  39. package/dist/client/window-next.js.map +1 -0
  40. package/dist/cloudflare/kv-cache-handler.js.map +1 -1
  41. package/dist/cloudflare/tpr.js +2 -1
  42. package/dist/cloudflare/tpr.js.map +1 -1
  43. package/dist/config/config-matchers.d.ts +3 -1
  44. package/dist/config/config-matchers.js +5 -4
  45. package/dist/config/config-matchers.js.map +1 -1
  46. package/dist/config/dotenv.d.ts +11 -1
  47. package/dist/config/dotenv.js.map +1 -1
  48. package/dist/config/next-config.d.ts +93 -6
  49. package/dist/config/next-config.js +233 -6
  50. package/dist/config/next-config.js.map +1 -1
  51. package/dist/config/tsconfig-paths.d.ts +13 -0
  52. package/dist/config/tsconfig-paths.js +117 -0
  53. package/dist/config/tsconfig-paths.js.map +1 -0
  54. package/dist/deploy.js +16 -7
  55. package/dist/deploy.js.map +1 -1
  56. package/dist/entries/app-browser-entry.d.ts +3 -1
  57. package/dist/entries/app-browser-entry.js +36 -2
  58. package/dist/entries/app-browser-entry.js.map +1 -1
  59. package/dist/entries/app-rsc-entry.d.ts +19 -1
  60. package/dist/entries/app-rsc-entry.js +49 -12
  61. package/dist/entries/app-rsc-entry.js.map +1 -1
  62. package/dist/entries/app-rsc-manifest.d.ts +9 -0
  63. package/dist/entries/app-rsc-manifest.js +8 -1
  64. package/dist/entries/app-rsc-manifest.js.map +1 -1
  65. package/dist/entries/app-ssr-entry.js.map +1 -1
  66. package/dist/entries/pages-client-entry.js +3 -5
  67. package/dist/entries/pages-client-entry.js.map +1 -1
  68. package/dist/entries/pages-entry-helpers.js.map +1 -1
  69. package/dist/entries/pages-server-entry.js +34 -1
  70. package/dist/entries/pages-server-entry.js.map +1 -1
  71. package/dist/entries/runtime-entry-module.js.map +1 -1
  72. package/dist/index.js +204 -53
  73. package/dist/index.js.map +1 -1
  74. package/dist/init.js.map +1 -1
  75. package/dist/plugins/async-hooks-stub.js.map +1 -1
  76. package/dist/plugins/client-reference-dedup.d.ts +15 -2
  77. package/dist/plugins/client-reference-dedup.js +138 -16
  78. package/dist/plugins/client-reference-dedup.js.map +1 -1
  79. package/dist/plugins/fonts.d.ts +2 -2
  80. package/dist/plugins/fonts.js +15 -6
  81. package/dist/plugins/fonts.js.map +1 -1
  82. package/dist/plugins/instrumentation-client.js.map +1 -1
  83. package/dist/plugins/og-assets.js.map +1 -1
  84. package/dist/plugins/optimize-imports.js.map +1 -1
  85. package/dist/plugins/postcss.js.map +1 -1
  86. package/dist/plugins/rsc-client-reference-loaders.d.ts +7 -0
  87. package/dist/plugins/rsc-client-reference-loaders.js +48 -0
  88. package/dist/plugins/rsc-client-reference-loaders.js.map +1 -0
  89. package/dist/plugins/rsc-client-shim-excludes.js.map +1 -1
  90. package/dist/plugins/sass.d.ts +34 -0
  91. package/dist/plugins/sass.js +22 -0
  92. package/dist/plugins/sass.js.map +1 -0
  93. package/dist/plugins/server-externals-manifest.js.map +1 -1
  94. package/dist/plugins/strip-server-exports.js.map +1 -1
  95. package/dist/routing/app-route-graph.d.ts +78 -6
  96. package/dist/routing/app-route-graph.js +241 -25
  97. package/dist/routing/app-route-graph.js.map +1 -1
  98. package/dist/routing/app-router.js.map +1 -1
  99. package/dist/routing/file-matcher.js.map +1 -1
  100. package/dist/routing/pages-router.js.map +1 -1
  101. package/dist/routing/route-matching.js.map +1 -1
  102. package/dist/routing/route-pattern.d.ts +56 -1
  103. package/dist/routing/route-pattern.js +60 -1
  104. package/dist/routing/route-pattern.js.map +1 -1
  105. package/dist/routing/route-trie.js.map +1 -1
  106. package/dist/routing/route-validation.js.map +1 -1
  107. package/dist/routing/utils.js.map +1 -1
  108. package/dist/server/api-handler.js.map +1 -1
  109. package/dist/server/app-browser-action-result.d.ts +44 -0
  110. package/dist/server/app-browser-action-result.js +79 -0
  111. package/dist/server/app-browser-action-result.js.map +1 -0
  112. package/dist/server/app-browser-entry.js +330 -133
  113. package/dist/server/app-browser-entry.js.map +1 -1
  114. package/dist/server/app-browser-error.js.map +1 -1
  115. package/dist/server/app-browser-hydration.d.ts +31 -0
  116. package/dist/server/app-browser-hydration.js +30 -0
  117. package/dist/server/app-browser-hydration.js.map +1 -0
  118. package/dist/server/app-browser-navigation-controller.d.ts +20 -4
  119. package/dist/server/app-browser-navigation-controller.js +90 -23
  120. package/dist/server/app-browser-navigation-controller.js.map +1 -1
  121. package/dist/server/app-browser-popstate.d.ts +16 -0
  122. package/dist/server/app-browser-popstate.js +17 -0
  123. package/dist/server/app-browser-popstate.js.map +1 -0
  124. package/dist/server/app-browser-rsc-redirect.d.ts +28 -0
  125. package/dist/server/app-browser-rsc-redirect.js +37 -0
  126. package/dist/server/app-browser-rsc-redirect.js.map +1 -0
  127. package/dist/server/app-browser-state.d.ts +27 -23
  128. package/dist/server/app-browser-state.js +158 -54
  129. package/dist/server/app-browser-state.js.map +1 -1
  130. package/dist/server/app-browser-stream.d.ts +9 -4
  131. package/dist/server/app-browser-stream.js +29 -8
  132. package/dist/server/app-browser-stream.js.map +1 -1
  133. package/dist/server/app-browser-visible-commit.d.ts +11 -1
  134. package/dist/server/app-browser-visible-commit.js +69 -21
  135. package/dist/server/app-browser-visible-commit.js.map +1 -1
  136. package/dist/server/app-client-reference-preloader.js.map +1 -1
  137. package/dist/server/app-elements-wire.d.ts +43 -6
  138. package/dist/server/app-elements-wire.js +121 -5
  139. package/dist/server/app-elements-wire.js.map +1 -1
  140. package/dist/server/app-elements.d.ts +2 -2
  141. package/dist/server/app-elements.js +2 -2
  142. package/dist/server/app-elements.js.map +1 -1
  143. package/dist/server/app-fallback-renderer.d.ts +10 -1
  144. package/dist/server/app-fallback-renderer.js +37 -1
  145. package/dist/server/app-fallback-renderer.js.map +1 -1
  146. package/dist/server/app-history-state.d.ts +26 -0
  147. package/dist/server/app-history-state.js +53 -0
  148. package/dist/server/app-history-state.js.map +1 -0
  149. package/dist/server/app-hook-warning-suppression.js.map +1 -1
  150. package/dist/server/app-middleware.d.ts +1 -1
  151. package/dist/server/app-middleware.js +4 -9
  152. package/dist/server/app-middleware.js.map +1 -1
  153. package/dist/server/app-mounted-slots-header.js.map +1 -1
  154. package/dist/server/app-page-boundary-render.d.ts +11 -1
  155. package/dist/server/app-page-boundary-render.js +27 -19
  156. package/dist/server/app-page-boundary-render.js.map +1 -1
  157. package/dist/server/app-page-boundary.d.ts +1 -0
  158. package/dist/server/app-page-boundary.js +10 -7
  159. package/dist/server/app-page-boundary.js.map +1 -1
  160. package/dist/server/app-page-cache.d.ts +23 -3
  161. package/dist/server/app-page-cache.js +63 -27
  162. package/dist/server/app-page-cache.js.map +1 -1
  163. package/dist/server/app-page-dispatch.d.ts +11 -1
  164. package/dist/server/app-page-dispatch.js +85 -14
  165. package/dist/server/app-page-dispatch.js.map +1 -1
  166. package/dist/server/app-page-element-builder.d.ts +10 -1
  167. package/dist/server/app-page-element-builder.js +38 -6
  168. package/dist/server/app-page-element-builder.js.map +1 -1
  169. package/dist/server/app-page-execution.js +2 -3
  170. package/dist/server/app-page-execution.js.map +1 -1
  171. package/dist/server/app-page-head.d.ts +7 -0
  172. package/dist/server/app-page-head.js +6 -1
  173. package/dist/server/app-page-head.js.map +1 -1
  174. package/dist/server/app-page-method.js.map +1 -1
  175. package/dist/server/app-page-params.js.map +1 -1
  176. package/dist/server/app-page-probe.d.ts +23 -1
  177. package/dist/server/app-page-probe.js +29 -1
  178. package/dist/server/app-page-probe.js.map +1 -1
  179. package/dist/server/app-page-render-observation.d.ts +35 -0
  180. package/dist/server/app-page-render-observation.js +68 -0
  181. package/dist/server/app-page-render-observation.js.map +1 -0
  182. package/dist/server/app-page-render.d.ts +12 -2
  183. package/dist/server/app-page-render.js +90 -7
  184. package/dist/server/app-page-render.js.map +1 -1
  185. package/dist/server/app-page-request.d.ts +1 -0
  186. package/dist/server/app-page-request.js +2 -1
  187. package/dist/server/app-page-request.js.map +1 -1
  188. package/dist/server/app-page-response.d.ts +2 -0
  189. package/dist/server/app-page-response.js +18 -7
  190. package/dist/server/app-page-response.js.map +1 -1
  191. package/dist/server/app-page-route-wiring.d.ts +9 -3
  192. package/dist/server/app-page-route-wiring.js +91 -62
  193. package/dist/server/app-page-route-wiring.js.map +1 -1
  194. package/dist/server/app-page-segment-state.d.ts +10 -0
  195. package/dist/server/app-page-segment-state.js +87 -0
  196. package/dist/server/app-page-segment-state.js.map +1 -0
  197. package/dist/server/app-page-stream.d.ts +9 -2
  198. package/dist/server/app-page-stream.js +4 -1
  199. package/dist/server/app-page-stream.js.map +1 -1
  200. package/dist/server/app-post-middleware-context.js.map +1 -1
  201. package/dist/server/app-prerender-endpoints.js.map +1 -1
  202. package/dist/server/app-prerender-static-params.js.map +1 -1
  203. package/dist/server/app-render-dependency.js.map +1 -1
  204. package/dist/server/app-request-context.js.map +1 -1
  205. package/dist/server/app-route-handler-cache.js.map +1 -1
  206. package/dist/server/app-route-handler-dispatch.js +3 -1
  207. package/dist/server/app-route-handler-dispatch.js.map +1 -1
  208. package/dist/server/app-route-handler-execution.js.map +1 -1
  209. package/dist/server/app-route-handler-policy.js +1 -0
  210. package/dist/server/app-route-handler-policy.js.map +1 -1
  211. package/dist/server/app-route-handler-response.js +4 -3
  212. package/dist/server/app-route-handler-response.js.map +1 -1
  213. package/dist/server/app-route-handler-runtime.js.map +1 -1
  214. package/dist/server/app-router-entry.js +7 -15
  215. package/dist/server/app-router-entry.js.map +1 -1
  216. package/dist/server/app-rsc-cache-busting.d.ts +23 -2
  217. package/dist/server/app-rsc-cache-busting.js +75 -19
  218. package/dist/server/app-rsc-cache-busting.js.map +1 -1
  219. package/dist/server/app-rsc-embedded-chunks.d.ts +9 -0
  220. package/dist/server/app-rsc-embedded-chunks.js +34 -0
  221. package/dist/server/app-rsc-embedded-chunks.js.map +1 -0
  222. package/dist/server/app-rsc-error-handler.js.map +1 -1
  223. package/dist/server/app-rsc-errors.d.ts +4 -1
  224. package/dist/server/app-rsc-errors.js +1 -1
  225. package/dist/server/app-rsc-errors.js.map +1 -1
  226. package/dist/server/app-rsc-handler.d.ts +18 -1
  227. package/dist/server/app-rsc-handler.js +55 -16
  228. package/dist/server/app-rsc-handler.js.map +1 -1
  229. package/dist/server/app-rsc-render-mode.d.ts +11 -0
  230. package/dist/server/app-rsc-render-mode.js +21 -0
  231. package/dist/server/app-rsc-render-mode.js.map +1 -0
  232. package/dist/server/app-rsc-request-normalization.d.ts +4 -1
  233. package/dist/server/app-rsc-request-normalization.js +7 -2
  234. package/dist/server/app-rsc-request-normalization.js.map +1 -1
  235. package/dist/server/app-rsc-response-finalizer.d.ts +2 -1
  236. package/dist/server/app-rsc-response-finalizer.js +6 -1
  237. package/dist/server/app-rsc-response-finalizer.js.map +1 -1
  238. package/dist/server/app-rsc-route-matching.d.ts +23 -0
  239. package/dist/server/app-rsc-route-matching.js +45 -23
  240. package/dist/server/app-rsc-route-matching.js.map +1 -1
  241. package/dist/server/app-segment-config.js.map +1 -1
  242. package/dist/server/app-server-action-execution.d.ts +51 -5
  243. package/dist/server/app-server-action-execution.js +161 -51
  244. package/dist/server/app-server-action-execution.js.map +1 -1
  245. package/dist/server/app-ssr-entry.d.ts +7 -0
  246. package/dist/server/app-ssr-entry.js +44 -14
  247. package/dist/server/app-ssr-entry.js.map +1 -1
  248. package/dist/server/app-ssr-error-meta.d.ts +14 -0
  249. package/dist/server/app-ssr-error-meta.js +50 -0
  250. package/dist/server/app-ssr-error-meta.js.map +1 -0
  251. package/dist/server/app-ssr-stream.d.ts +1 -1
  252. package/dist/server/app-ssr-stream.js +9 -12
  253. package/dist/server/app-ssr-stream.js.map +1 -1
  254. package/dist/server/app-static-generation.js.map +1 -1
  255. package/dist/server/artifact-compatibility.d.ts +12 -2
  256. package/dist/server/artifact-compatibility.js +12 -8
  257. package/dist/server/artifact-compatibility.js.map +1 -1
  258. package/dist/server/cache-control.js +1 -0
  259. package/dist/server/cache-control.js.map +1 -1
  260. package/dist/server/cache-proof.d.ts +124 -5
  261. package/dist/server/cache-proof.js +416 -18
  262. package/dist/server/cache-proof.js.map +1 -1
  263. package/dist/server/csp.js.map +1 -1
  264. package/dist/server/dev-error-overlay-store.js.map +1 -1
  265. package/dist/server/dev-error-overlay.js +5 -0
  266. package/dist/server/dev-error-overlay.js.map +1 -1
  267. package/dist/server/dev-lockfile.d.ts +110 -0
  268. package/dist/server/dev-lockfile.js +180 -0
  269. package/dist/server/dev-lockfile.js.map +1 -0
  270. package/dist/server/dev-module-runner.js.map +1 -1
  271. package/dist/server/dev-origin-check.js.map +1 -1
  272. package/dist/server/dev-route-files.js.map +1 -1
  273. package/dist/server/dev-server.js +23 -10
  274. package/dist/server/dev-server.js.map +1 -1
  275. package/dist/server/file-based-metadata.d.ts +13 -0
  276. package/dist/server/file-based-metadata.js +49 -2
  277. package/dist/server/file-based-metadata.js.map +1 -1
  278. package/dist/server/headers.d.ts +81 -0
  279. package/dist/server/headers.js +104 -0
  280. package/dist/server/headers.js.map +1 -0
  281. package/dist/server/html.js +1 -1
  282. package/dist/server/html.js.map +1 -1
  283. package/dist/server/http-error-responses.d.ts +10 -0
  284. package/dist/server/http-error-responses.js +11 -1
  285. package/dist/server/http-error-responses.js.map +1 -1
  286. package/dist/server/image-optimization.d.ts +11 -1
  287. package/dist/server/image-optimization.js.map +1 -1
  288. package/dist/server/implicit-tags.js +2 -1
  289. package/dist/server/implicit-tags.js.map +1 -1
  290. package/dist/server/instrumentation-runtime.js.map +1 -1
  291. package/dist/server/instrumentation.js.map +1 -1
  292. package/dist/server/isr-cache.d.ts +12 -2
  293. package/dist/server/isr-cache.js +16 -5
  294. package/dist/server/isr-cache.js.map +1 -1
  295. package/dist/server/metadata-route-build-data.js.map +1 -1
  296. package/dist/server/metadata-route-response.js +22 -5
  297. package/dist/server/metadata-route-response.js.map +1 -1
  298. package/dist/server/metadata-routes.js +27 -8
  299. package/dist/server/metadata-routes.js.map +1 -1
  300. package/dist/server/middleware-matcher.js.map +1 -1
  301. package/dist/server/middleware-request-headers.d.ts +4 -1
  302. package/dist/server/middleware-request-headers.js +15 -8
  303. package/dist/server/middleware-request-headers.js.map +1 -1
  304. package/dist/server/middleware-response-headers.d.ts +2 -1
  305. package/dist/server/middleware-response-headers.js +1 -1
  306. package/dist/server/middleware-response-headers.js.map +1 -1
  307. package/dist/server/middleware-runtime.d.ts +1 -0
  308. package/dist/server/middleware-runtime.js +7 -3
  309. package/dist/server/middleware-runtime.js.map +1 -1
  310. package/dist/server/middleware.d.ts +12 -0
  311. package/dist/server/middleware.js +12 -0
  312. package/dist/server/middleware.js.map +1 -1
  313. package/dist/server/navigation-planner.d.ts +133 -0
  314. package/dist/server/navigation-planner.js +432 -0
  315. package/dist/server/navigation-planner.js.map +1 -0
  316. package/dist/server/navigation-trace.d.ts +19 -2
  317. package/dist/server/navigation-trace.js +20 -1
  318. package/dist/server/navigation-trace.js.map +1 -1
  319. package/dist/server/next-error-digest.d.ts +3 -2
  320. package/dist/server/next-error-digest.js +4 -2
  321. package/dist/server/next-error-digest.js.map +1 -1
  322. package/dist/server/normalize-path.d.ts +2 -1
  323. package/dist/server/normalize-path.js +4 -1
  324. package/dist/server/normalize-path.js.map +1 -1
  325. package/dist/server/pages-api-route.js +1 -0
  326. package/dist/server/pages-api-route.js.map +1 -1
  327. package/dist/server/pages-i18n.js.map +1 -1
  328. package/dist/server/pages-media-type.js.map +1 -1
  329. package/dist/server/pages-node-compat.js.map +1 -1
  330. package/dist/server/pages-page-data.d.ts +3 -2
  331. package/dist/server/pages-page-data.js +27 -5
  332. package/dist/server/pages-page-data.js.map +1 -1
  333. package/dist/server/pages-page-response.js +2 -1
  334. package/dist/server/pages-page-response.js.map +1 -1
  335. package/dist/server/prerender-work-unit-setup.js +1 -1
  336. package/dist/server/prerender-work-unit-setup.js.map +1 -1
  337. package/dist/server/prod-server.d.ts +28 -1
  338. package/dist/server/prod-server.js +97 -22
  339. package/dist/server/prod-server.js.map +1 -1
  340. package/dist/server/request-log.js.map +1 -1
  341. package/dist/server/request-pipeline.d.ts +1 -13
  342. package/dist/server/request-pipeline.js +3 -25
  343. package/dist/server/request-pipeline.js.map +1 -1
  344. package/dist/server/rsc-stream-hints.js.map +1 -1
  345. package/dist/server/seed-cache.js.map +1 -1
  346. package/dist/server/server-action-not-found.d.ts +16 -3
  347. package/dist/server/server-action-not-found.js +22 -4
  348. package/dist/server/server-action-not-found.js.map +1 -1
  349. package/dist/server/server-globals.d.ts +5 -0
  350. package/dist/server/server-globals.js +37 -0
  351. package/dist/server/server-globals.js.map +1 -0
  352. package/dist/server/socket-error-backstop.js.map +1 -1
  353. package/dist/server/static-file-cache.js +1 -1
  354. package/dist/server/static-file-cache.js.map +1 -1
  355. package/dist/server/worker-utils.d.ts +0 -7
  356. package/dist/server/worker-utils.js +3 -2
  357. package/dist/server/worker-utils.js.map +1 -1
  358. package/dist/shims/amp.js.map +1 -1
  359. package/dist/shims/app.d.ts +37 -4
  360. package/dist/shims/app.js +50 -1
  361. package/dist/shims/app.js.map +1 -0
  362. package/dist/shims/cache-for-request.js.map +1 -1
  363. package/dist/shims/cache-runtime.d.ts +19 -2
  364. package/dist/shims/cache-runtime.js +87 -19
  365. package/dist/shims/cache-runtime.js.map +1 -1
  366. package/dist/shims/cache.d.ts +20 -21
  367. package/dist/shims/cache.js +101 -15
  368. package/dist/shims/cache.js.map +1 -1
  369. package/dist/shims/client-hook-error.js.map +1 -1
  370. package/dist/shims/compat-router.js.map +1 -1
  371. package/dist/shims/config.js.map +1 -1
  372. package/dist/shims/constants.js.map +1 -1
  373. package/dist/shims/document.js.map +1 -1
  374. package/dist/shims/dynamic.d.ts +18 -10
  375. package/dist/shims/dynamic.js +107 -51
  376. package/dist/shims/dynamic.js.map +1 -1
  377. package/dist/shims/error-boundary.d.ts +35 -6
  378. package/dist/shims/error-boundary.js +116 -33
  379. package/dist/shims/error-boundary.js.map +1 -1
  380. package/dist/shims/error.d.ts +18 -1
  381. package/dist/shims/error.js +56 -1
  382. package/dist/shims/error.js.map +1 -1
  383. package/dist/shims/fetch-cache.d.ts +25 -1
  384. package/dist/shims/fetch-cache.js +159 -13
  385. package/dist/shims/fetch-cache.js.map +1 -1
  386. package/dist/shims/font-google-base.d.ts +22 -8
  387. package/dist/shims/font-google-base.js +41 -71
  388. package/dist/shims/font-google-base.js.map +1 -1
  389. package/dist/shims/font-local.d.ts +3 -20
  390. package/dist/shims/font-local.js +23 -75
  391. package/dist/shims/font-local.js.map +1 -1
  392. package/dist/shims/font-utils.d.ts +51 -0
  393. package/dist/shims/font-utils.js +97 -0
  394. package/dist/shims/font-utils.js.map +1 -0
  395. package/dist/shims/form.js +3 -1
  396. package/dist/shims/form.js.map +1 -1
  397. package/dist/shims/hash-scroll.d.ts +7 -0
  398. package/dist/shims/hash-scroll.js +30 -0
  399. package/dist/shims/hash-scroll.js.map +1 -0
  400. package/dist/shims/head-state.js.map +1 -1
  401. package/dist/shims/head.d.ts +3 -1
  402. package/dist/shims/head.js +28 -16
  403. package/dist/shims/head.js.map +1 -1
  404. package/dist/shims/headers.d.ts +11 -12
  405. package/dist/shims/headers.js +45 -8
  406. package/dist/shims/headers.js.map +1 -1
  407. package/dist/shims/i18n-context.js.map +1 -1
  408. package/dist/shims/i18n-state.js.map +1 -1
  409. package/dist/shims/image-config.d.ts +14 -1
  410. package/dist/shims/image-config.js +24 -1
  411. package/dist/shims/image-config.js.map +1 -1
  412. package/dist/shims/image.d.ts +1 -0
  413. package/dist/shims/image.js +159 -80
  414. package/dist/shims/image.js.map +1 -1
  415. package/dist/shims/internal/als-registry.js.map +1 -1
  416. package/dist/shims/internal/app-router-context.d.ts +7 -6
  417. package/dist/shims/internal/app-router-context.js +17 -6
  418. package/dist/shims/internal/app-router-context.js.map +1 -1
  419. package/dist/shims/internal/cookie-serialize.js.map +1 -1
  420. package/dist/shims/internal/make-hanging-promise.d.ts +1 -1
  421. package/dist/shims/internal/make-hanging-promise.js +1 -1
  422. package/dist/shims/internal/make-hanging-promise.js.map +1 -1
  423. package/dist/shims/internal/parse-cookie-header.js.map +1 -1
  424. package/dist/shims/internal/utils.js.map +1 -1
  425. package/dist/shims/internal/work-unit-async-storage.js +2 -2
  426. package/dist/shims/internal/work-unit-async-storage.js.map +1 -1
  427. package/dist/shims/layout-segment-context.js.map +1 -1
  428. package/dist/shims/legacy-image.js.map +1 -1
  429. package/dist/shims/link-prefetch.d.ts +42 -0
  430. package/dist/shims/link-prefetch.js +45 -0
  431. package/dist/shims/link-prefetch.js.map +1 -0
  432. package/dist/shims/link.d.ts +37 -4
  433. package/dist/shims/link.js +156 -46
  434. package/dist/shims/link.js.map +1 -1
  435. package/dist/shims/metadata.d.ts +16 -30
  436. package/dist/shims/metadata.js +87 -28
  437. package/dist/shims/metadata.js.map +1 -1
  438. package/dist/shims/navigation-state.js.map +1 -1
  439. package/dist/shims/navigation.d.ts +172 -10
  440. package/dist/shims/navigation.js +335 -70
  441. package/dist/shims/navigation.js.map +1 -1
  442. package/dist/shims/navigation.react-server.d.ts +3 -2
  443. package/dist/shims/navigation.react-server.js +5 -2
  444. package/dist/shims/navigation.react-server.js.map +1 -1
  445. package/dist/shims/offline.js.map +1 -1
  446. package/dist/shims/pages-router-runtime.d.ts +7 -0
  447. package/dist/shims/pages-router-runtime.js +16 -0
  448. package/dist/shims/pages-router-runtime.js.map +1 -0
  449. package/dist/shims/readonly-url-search-params.js.map +1 -1
  450. package/dist/shims/request-context.js.map +1 -1
  451. package/dist/shims/root-params.js.map +1 -1
  452. package/dist/shims/router-state.js.map +1 -1
  453. package/dist/shims/router.d.ts +69 -7
  454. package/dist/shims/router.js +232 -249
  455. package/dist/shims/router.js.map +1 -1
  456. package/dist/shims/script-nonce-context.js.map +1 -1
  457. package/dist/shims/script.js +110 -32
  458. package/dist/shims/script.js.map +1 -1
  459. package/dist/shims/server.js +12 -15
  460. package/dist/shims/server.js.map +1 -1
  461. package/dist/shims/slot.d.ts +7 -1
  462. package/dist/shims/slot.js +60 -7
  463. package/dist/shims/slot.js.map +1 -1
  464. package/dist/shims/thenable-params.js.map +1 -1
  465. package/dist/shims/unified-request-context.js +5 -0
  466. package/dist/shims/unified-request-context.js.map +1 -1
  467. package/dist/shims/unrecognized-action-error.d.ts +35 -0
  468. package/dist/shims/unrecognized-action-error.js +41 -0
  469. package/dist/shims/unrecognized-action-error.js.map +1 -0
  470. package/dist/shims/url-safety.js.map +1 -1
  471. package/dist/shims/url-utils.d.ts +22 -1
  472. package/dist/shims/url-utils.js +76 -3
  473. package/dist/shims/url-utils.js.map +1 -1
  474. package/dist/shims/use-merged-ref.js.map +1 -1
  475. package/dist/shims/web-vitals.d.ts +4 -21
  476. package/dist/shims/web-vitals.js +19 -6
  477. package/dist/shims/web-vitals.js.map +1 -1
  478. package/dist/utils/asset-prefix.d.ts +69 -0
  479. package/dist/utils/asset-prefix.js +91 -0
  480. package/dist/utils/asset-prefix.js.map +1 -0
  481. package/dist/utils/base-path.d.ts +7 -1
  482. package/dist/utils/base-path.js +10 -1
  483. package/dist/utils/base-path.js.map +1 -1
  484. package/dist/utils/cache-control-metadata.js.map +1 -1
  485. package/dist/utils/domain-locale.js.map +1 -1
  486. package/dist/utils/encode-cache-tag.d.ts +31 -0
  487. package/dist/utils/encode-cache-tag.js +38 -0
  488. package/dist/utils/encode-cache-tag.js.map +1 -0
  489. package/dist/utils/error-cause.js.map +1 -1
  490. package/dist/utils/hash.js.map +1 -1
  491. package/dist/utils/lazy-chunks.js.map +1 -1
  492. package/dist/utils/manifest-paths.js.map +1 -1
  493. package/dist/utils/mdx-scan.js.map +1 -1
  494. package/dist/utils/navigation-signal.d.ts +5 -0
  495. package/dist/utils/navigation-signal.js +14 -0
  496. package/dist/utils/navigation-signal.js.map +1 -0
  497. package/dist/utils/project.js.map +1 -1
  498. package/dist/utils/public-routes.js.map +1 -1
  499. package/dist/utils/query.js.map +1 -1
  500. package/dist/utils/safe-json-file.js.map +1 -1
  501. package/dist/utils/sorted-array.d.ts +9 -0
  502. package/dist/utils/sorted-array.js +22 -0
  503. package/dist/utils/sorted-array.js.map +1 -0
  504. package/dist/utils/text-stream.js.map +1 -1
  505. package/dist/utils/vinext-root.js.map +1 -1
  506. package/package.json +8 -6
@@ -1,6 +1,7 @@
1
1
  import { fnv1a64 } from "../utils/hash.js";
2
+ import { findSortedStringPosition } from "../utils/sorted-array.js";
2
3
  //#region src/server/cache-proof.ts
3
- const CACHE_PROOF_MODEL_SCHEMA_VERSION = 0;
4
+ const CACHE_PROOF_MODEL_SCHEMA_VERSION = 1;
4
5
  const DEFAULT_CACHE_VARIANT_BUDGET = {
5
6
  maxDimensionCount: 8,
6
7
  maxDimensionNameLength: 64,
@@ -9,6 +10,14 @@ const DEFAULT_CACHE_VARIANT_BUDGET = {
9
10
  maxValuesPerDimension: 8,
10
11
  maxVariantsPerRoute: 64
11
12
  };
13
+ const ALL_RENDER_REQUEST_API_KINDS = [
14
+ "connection",
15
+ "cookies",
16
+ "draftMode",
17
+ "headers",
18
+ "params",
19
+ "searchParams"
20
+ ];
12
21
  const PUBLIC_UNSAFE_DIMENSION_SOURCES = new Set([
13
22
  "auth",
14
23
  "cookie",
@@ -197,14 +206,6 @@ function buildCacheVariant(input) {
197
206
  kind: "breakerFallback",
198
207
  fallback: budgetFallback
199
208
  };
200
- if (input.existingVariantCount >= input.budget.maxVariantsPerRoute) return {
201
- kind: "breakerFallback",
202
- fallback: buildBreakerFallback("CP_ROUTE_VARIANT_CEILING_EXCEEDED", {
203
- existingVariantCount: input.existingVariantCount,
204
- maxVariantsPerRoute: input.budget.maxVariantsPerRoute,
205
- routeId: input.output.routeId
206
- }, "privateUncacheable", "route")
207
- };
208
209
  const dimensionInputs = mergeDimensionInputs(input.dimensions);
209
210
  if (dimensionInputs.length > input.budget.maxDimensionCount) return {
210
211
  kind: "breakerFallback",
@@ -225,7 +226,7 @@ function buildCacheVariant(input) {
225
226
  }
226
227
  dimensions.sort(compareDimensions);
227
228
  const encoded = [
228
- `schema:0`,
229
+ `schema:1`,
229
230
  encodeOutputScope(input.output),
230
231
  ...dimensions.map((dimension) => dimension.encoded)
231
232
  ].join("|");
@@ -241,8 +242,8 @@ function buildCacheVariant(input) {
241
242
  return {
242
243
  kind: "variant",
243
244
  variant: {
244
- schemaVersion: 0,
245
- cacheKey: `cp0:${fnv1a64(encoded)}`,
245
+ schemaVersion: 1,
246
+ cacheKey: `cp1:${fnv1a64(encoded)}`,
246
247
  output: input.output,
247
248
  dimensions,
248
249
  encodedLength: encoded.length,
@@ -250,6 +251,80 @@ function buildCacheVariant(input) {
250
251
  }
251
252
  };
252
253
  }
254
+ function normalizeRouteBudget(input) {
255
+ return {
256
+ routeId: input.routeId,
257
+ variantCacheKeys: sortedUnique(input.variantCacheKeys)
258
+ };
259
+ }
260
+ function buildRouteVariantCeilingFallback(variant, existingVariantCount) {
261
+ return buildBreakerFallback("CP_ROUTE_VARIANT_CEILING_EXCEEDED", {
262
+ existingVariantCount,
263
+ maxVariantsPerRoute: variant.budget.maxVariantsPerRoute,
264
+ routeId: variant.output.routeId
265
+ }, "privateUncacheable", "route");
266
+ }
267
+ function enforceCacheVariantRouteBudget(input) {
268
+ if (input.routeBudget && input.routeBudget.routeId !== input.variant.output.routeId) return {
269
+ kind: "breakerFallback",
270
+ routeBudget: normalizeRouteBudget(input.routeBudget),
271
+ fallback: buildBreakerFallback("CP_ROUTE_VARIANT_BUDGET_ROUTE_MISMATCH", {
272
+ budgetRouteId: input.routeBudget.routeId,
273
+ routeId: input.variant.output.routeId
274
+ }, "privateUncacheable", "route")
275
+ };
276
+ const routeBudget = normalizeRouteBudget(input.routeBudget ?? {
277
+ routeId: input.variant.output.routeId,
278
+ variantCacheKeys: []
279
+ });
280
+ const existingVariantCount = routeBudget.variantCacheKeys.length;
281
+ const variantKeyPosition = findSortedStringPosition(routeBudget.variantCacheKeys, input.variant.cacheKey);
282
+ if (existingVariantCount > input.variant.budget.maxVariantsPerRoute) return {
283
+ kind: "breakerFallback",
284
+ routeBudget,
285
+ fallback: buildRouteVariantCeilingFallback(input.variant, existingVariantCount)
286
+ };
287
+ if (variantKeyPosition.found) return {
288
+ kind: "variant",
289
+ variant: input.variant,
290
+ routeBudget,
291
+ didConsumeRouteVariantBudget: false
292
+ };
293
+ if (existingVariantCount >= input.variant.budget.maxVariantsPerRoute) return {
294
+ kind: "breakerFallback",
295
+ routeBudget,
296
+ fallback: buildRouteVariantCeilingFallback(input.variant, existingVariantCount)
297
+ };
298
+ return {
299
+ kind: "variant",
300
+ variant: input.variant,
301
+ routeBudget: {
302
+ routeId: routeBudget.routeId,
303
+ variantCacheKeys: [
304
+ ...routeBudget.variantCacheKeys.slice(0, variantKeyPosition.index),
305
+ input.variant.cacheKey,
306
+ ...routeBudget.variantCacheKeys.slice(variantKeyPosition.index)
307
+ ]
308
+ },
309
+ didConsumeRouteVariantBudget: true
310
+ };
311
+ }
312
+ function buildCacheVariantWithRouteBudget(input) {
313
+ const variantResult = buildCacheVariant({
314
+ budget: input.budget,
315
+ dimensions: input.dimensions,
316
+ output: input.output
317
+ });
318
+ if (variantResult.kind === "breakerFallback") return {
319
+ kind: "breakerFallback",
320
+ routeBudget: input.routeBudget ? normalizeRouteBudget(input.routeBudget) : null,
321
+ fallback: variantResult.fallback
322
+ };
323
+ return enforceCacheVariantRouteBudget({
324
+ routeBudget: input.routeBudget,
325
+ variant: variantResult.variant
326
+ });
327
+ }
253
328
  function boundaryOutcomesMatch(expected, candidate) {
254
329
  switch (expected.kind) {
255
330
  case "error": return candidate.kind === "error" && (expected.digest ?? "") === (candidate.digest ?? "");
@@ -307,36 +382,359 @@ function normalizeRequestApiObservations(observations) {
307
382
  status
308
383
  }));
309
384
  }
385
+ function cacheProofDowngradeTargetRank(target) {
386
+ switch (target) {
387
+ case "public": return 0;
388
+ case "publicVariant": return 1;
389
+ case "private": return 2;
390
+ case "privateUncacheable": return 3;
391
+ case "freshRender": return 4;
392
+ default: return assertNever(target);
393
+ }
394
+ }
395
+ function maxCacheProofDowngradeTarget(current, candidate) {
396
+ return cacheProofDowngradeTargetRank(candidate) > cacheProofDowngradeTargetRank(current) ? candidate : current;
397
+ }
398
+ function createDowngradeFallback(target, reasons) {
399
+ switch (target) {
400
+ case "public":
401
+ case "publicVariant":
402
+ case "private": return null;
403
+ case "privateUncacheable": return buildBreakerFallback("CP_PRIVATE_DYNAMIC_DOWNGRADE", {
404
+ reasonCodes: reasons.map((reason) => reason.code),
405
+ target
406
+ }, "privateUncacheable");
407
+ case "freshRender": return buildBreakerFallback("CP_PRIVATE_DYNAMIC_DOWNGRADE", {
408
+ reasonCodes: reasons.map((reason) => reason.code),
409
+ target
410
+ });
411
+ default: return assertNever(target);
412
+ }
413
+ }
414
+ function classifyObservedRequestApiDowngrade(kind) {
415
+ switch (kind) {
416
+ case "connection": return {
417
+ code: "CP_DOWNGRADE_DYNAMIC_REQUEST_API",
418
+ requestApi: "connection",
419
+ target: "freshRender"
420
+ };
421
+ case "cookies": return {
422
+ code: "CP_DOWNGRADE_PRIVATE_REQUEST_API",
423
+ requestApi: "cookies",
424
+ target: "private"
425
+ };
426
+ case "draftMode": return {
427
+ code: "CP_DOWNGRADE_DRAFT_MODE",
428
+ requestApi: "draftMode",
429
+ target: "privateUncacheable"
430
+ };
431
+ case "headers": return {
432
+ code: "CP_DOWNGRADE_PRIVATE_REQUEST_API",
433
+ requestApi: "headers",
434
+ target: "private"
435
+ };
436
+ case "params": return {
437
+ code: "CP_DOWNGRADE_PUBLIC_REQUEST_API",
438
+ requestApi: "params",
439
+ target: "publicVariant"
440
+ };
441
+ case "searchParams": return {
442
+ code: "CP_DOWNGRADE_PUBLIC_REQUEST_API",
443
+ requestApi: "searchParams",
444
+ target: "publicVariant"
445
+ };
446
+ default: return assertNever(kind);
447
+ }
448
+ }
449
+ function classifyCacheVariantDimensionDowngrade(input) {
450
+ switch (input.source) {
451
+ case "auth": return {
452
+ code: "CP_DOWNGRADE_PRIVATE_DIMENSION",
453
+ inputClass: "auth",
454
+ source: "auth",
455
+ target: "private"
456
+ };
457
+ case "cookie": return {
458
+ code: "CP_DOWNGRADE_PRIVATE_DIMENSION",
459
+ inputClass: "private",
460
+ source: "cookie",
461
+ target: "private"
462
+ };
463
+ case "draft-mode": return {
464
+ code: "CP_DOWNGRADE_PRIVATE_DIMENSION",
465
+ inputClass: "draft",
466
+ source: "draft-mode",
467
+ target: "privateUncacheable"
468
+ };
469
+ case "header": return {
470
+ code: "CP_DOWNGRADE_PRIVATE_DIMENSION",
471
+ inputClass: "private",
472
+ source: "header",
473
+ target: "private"
474
+ };
475
+ case "session": return {
476
+ code: "CP_DOWNGRADE_PRIVATE_DIMENSION",
477
+ inputClass: "session",
478
+ source: "session",
479
+ target: "private"
480
+ };
481
+ case "custom":
482
+ case "interception":
483
+ case "mounted-slots":
484
+ case "params":
485
+ case "route":
486
+ case "search": return null;
487
+ default: return assertNever(input.source);
488
+ }
489
+ }
490
+ function classifyRenderObservationDowngrade(input) {
491
+ const reasons = [];
492
+ let target = "public";
493
+ switch (input.cacheability) {
494
+ case "public": break;
495
+ case "private": {
496
+ const reason = {
497
+ code: "CP_DOWNGRADE_CACHEABILITY_PRIVATE",
498
+ target: "private"
499
+ };
500
+ reasons.push(reason);
501
+ target = maxCacheProofDowngradeTarget(target, reason.target);
502
+ break;
503
+ }
504
+ case "uncacheable": {
505
+ const reason = {
506
+ code: "CP_DOWNGRADE_CACHEABILITY_UNCACHEABLE",
507
+ target: "privateUncacheable"
508
+ };
509
+ reasons.push(reason);
510
+ target = maxCacheProofDowngradeTarget(target, reason.target);
511
+ break;
512
+ }
513
+ case "unknown": {
514
+ const reason = {
515
+ code: "CP_DOWNGRADE_CACHEABILITY_UNKNOWN",
516
+ target: "freshRender"
517
+ };
518
+ reasons.push(reason);
519
+ target = maxCacheProofDowngradeTarget(target, reason.target);
520
+ break;
521
+ }
522
+ default: assertNever(input.cacheability);
523
+ }
524
+ if (input.completeness !== "complete") {
525
+ const reason = {
526
+ code: "CP_DOWNGRADE_INCOMPLETE_OBSERVATION",
527
+ completeness: input.completeness,
528
+ target: "freshRender"
529
+ };
530
+ reasons.push(reason);
531
+ target = maxCacheProofDowngradeTarget(target, reason.target);
532
+ }
533
+ if (input.dynamicFetches.length > 0) {
534
+ const reason = {
535
+ code: "CP_DOWNGRADE_DYNAMIC_FETCH",
536
+ dynamicFetchCount: input.dynamicFetches.length,
537
+ target: "freshRender"
538
+ };
539
+ reasons.push(reason);
540
+ target = maxCacheProofDowngradeTarget(target, reason.target);
541
+ }
542
+ const requestApis = normalizeRequestApiObservations(input.requestApis);
543
+ for (const requestApi of requestApis) {
544
+ if (requestApi.status === "notObserved") continue;
545
+ const reason = requestApi.status === "unknown" ? {
546
+ code: "CP_DOWNGRADE_UNKNOWN_REQUEST_API",
547
+ requestApi: requestApi.kind,
548
+ target: "freshRender"
549
+ } : classifyObservedRequestApiDowngrade(requestApi.kind);
550
+ reasons.push(reason);
551
+ target = maxCacheProofDowngradeTarget(target, reason.target);
552
+ }
553
+ return {
554
+ target,
555
+ reasons,
556
+ fallback: createDowngradeFallback(target, reasons),
557
+ isPublicCacheCandidate: target === "public" || target === "publicVariant"
558
+ };
559
+ }
560
+ function buildRenderRequestApiObservations(input) {
561
+ const observedKinds = new Set(input.observed);
562
+ const absentStatus = input.completeness === "complete" ? "notObserved" : "unknown";
563
+ return ALL_RENDER_REQUEST_API_KINDS.map((kind) => ({
564
+ kind,
565
+ status: observedKinds.has(kind) ? "observed" : absentStatus
566
+ }));
567
+ }
310
568
  function buildRenderObservation(input) {
569
+ const requestApis = normalizeRequestApiObservations(input.requestApis);
570
+ const dynamicFetches = sortedUniqueRedacted(input.dynamicFetches);
311
571
  return {
312
- schemaVersion: 0,
572
+ schemaVersion: 1,
313
573
  output: input.output,
314
574
  completeness: input.completeness,
315
575
  boundaryOutcome: input.boundaryOutcome,
316
- requestApis: normalizeRequestApiObservations(input.requestApis),
317
- dynamicFetches: sortedUniqueRedacted(input.dynamicFetches),
576
+ requestApis,
577
+ dynamicFetches,
318
578
  cacheTags: sortedUnique(input.cacheTags),
319
579
  pathTags: sortedUnique(input.pathTags),
320
- cacheability: input.cacheability
580
+ cacheability: input.cacheability,
581
+ downgrade: classifyRenderObservationDowngrade({
582
+ cacheability: input.cacheability,
583
+ completeness: input.completeness,
584
+ dynamicFetches,
585
+ requestApis
586
+ })
321
587
  };
322
588
  }
323
589
  function hasCompleteNegativeRequestApiProof(observation, requiredApis) {
324
590
  if (observation.completeness !== "complete") return false;
325
591
  const statuses = /* @__PURE__ */ new Map();
326
- for (const requestApi of observation.requestApis) statuses.set(requestApi.kind, requestApi.status);
592
+ for (const requestApi of normalizeRequestApiObservations(observation.requestApis)) statuses.set(requestApi.kind, requestApi.status);
327
593
  for (const api of requiredApis) if (statuses.get(api) !== "notObserved") return false;
328
594
  return true;
329
595
  }
596
+ function isStaticLayoutOutputScope(output) {
597
+ return output.kind === "layout";
598
+ }
599
+ function rejectStaticLayoutReuseProof(code, fields, mode = "renderFresh") {
600
+ return {
601
+ kind: "rejected",
602
+ fallback: buildBreakerFallback(code, fields, mode)
603
+ };
604
+ }
605
+ function getRequestApiStatus(observations, kind) {
606
+ let status = null;
607
+ for (const requestApi of observations) {
608
+ if (requestApi.kind !== kind) continue;
609
+ if (status === null || requestApiStatusRank(requestApi.status) > requestApiStatusRank(status)) status = requestApi.status;
610
+ }
611
+ return status ?? "missing";
612
+ }
613
+ function createStaticLayoutDowngradeFallback(downgrade) {
614
+ const mode = downgrade.target === "privateUncacheable" ? "privateUncacheable" : "renderFresh";
615
+ return buildBreakerFallback("CP_STATIC_LAYOUT_PRIVATE_DYNAMIC_DOWNGRADE", {
616
+ reasonCodes: downgrade.reasons.map((reason) => reason.code),
617
+ target: downgrade.target
618
+ }, mode);
619
+ }
620
+ function createPrivateVariantDimensionFallback(dimension) {
621
+ const downgrade = classifyCacheVariantDimensionDowngrade({ source: dimension.source });
622
+ if (!downgrade && dimension.privacy !== "private") return null;
623
+ const target = downgrade?.target ?? "private";
624
+ const mode = target === "privateUncacheable" ? "privateUncacheable" : "renderFresh";
625
+ return buildBreakerFallback("CP_STATIC_LAYOUT_PRIVATE_VARIANT_DIMENSION", {
626
+ dimension: dimension.name,
627
+ privacy: dimension.privacy,
628
+ reasonCode: downgrade?.code ?? null,
629
+ source: dimension.source,
630
+ target
631
+ }, mode);
632
+ }
633
+ function outputFieldMismatch(candidate, observation) {
634
+ if (candidate.layoutId !== observation.layoutId) return "layoutId";
635
+ if (candidate.rootBoundaryId !== observation.rootBoundaryId) return "rootBoundaryId";
636
+ if (candidate.routeId !== observation.routeId) return "routeId";
637
+ return null;
638
+ }
639
+ function buildStaticLayoutReuseProof(input) {
640
+ if (!isStaticLayoutOutputScope(input.currentOutput)) return rejectStaticLayoutReuseProof("CP_STATIC_LAYOUT_CURRENT_OUTPUT_KIND", { currentOutputKind: input.currentOutput.kind });
641
+ if (!isStaticLayoutOutputScope(input.candidateVariant.output)) return rejectStaticLayoutReuseProof("CP_STATIC_LAYOUT_CANDIDATE_OUTPUT_KIND", { candidateOutputKind: input.candidateVariant.output.kind });
642
+ if (!isStaticLayoutOutputScope(input.candidateObservation.output)) return rejectStaticLayoutReuseProof("CP_STATIC_LAYOUT_OBSERVATION_OUTPUT_KIND", { observationOutputKind: input.candidateObservation.output.kind });
643
+ const currentOutput = input.currentOutput;
644
+ const candidateOutput = input.candidateVariant.output;
645
+ const observationOutput = input.candidateObservation.output;
646
+ const requestApis = normalizeRequestApiObservations(input.candidateObservation.requestApis);
647
+ const candidateObservation = {
648
+ ...input.candidateObservation,
649
+ requestApis,
650
+ downgrade: classifyRenderObservationDowngrade({
651
+ cacheability: input.candidateObservation.cacheability,
652
+ completeness: input.candidateObservation.completeness,
653
+ dynamicFetches: input.candidateObservation.dynamicFetches,
654
+ requestApis
655
+ })
656
+ };
657
+ const observedOutputMismatch = outputFieldMismatch(candidateOutput, observationOutput);
658
+ if (observedOutputMismatch) return rejectStaticLayoutReuseProof("CP_STATIC_LAYOUT_OBSERVATION_OUTPUT_MISMATCH", {
659
+ candidateLayoutId: candidateOutput.layoutId,
660
+ candidateRootBoundaryId: candidateOutput.rootBoundaryId,
661
+ candidateRouteId: candidateOutput.routeId,
662
+ field: observedOutputMismatch,
663
+ observationLayoutId: observationOutput.layoutId,
664
+ observationRootBoundaryId: observationOutput.rootBoundaryId,
665
+ observationRouteId: observationOutput.routeId
666
+ });
667
+ if (currentOutput.layoutId !== candidateOutput.layoutId) return rejectStaticLayoutReuseProof("CP_STATIC_LAYOUT_ID_MISMATCH", {
668
+ candidateLayoutId: candidateOutput.layoutId,
669
+ currentLayoutId: currentOutput.layoutId
670
+ });
671
+ if (currentOutput.rootBoundaryId === null || candidateOutput.rootBoundaryId === null) return rejectStaticLayoutReuseProof("CP_STATIC_LAYOUT_ROOT_BOUNDARY_UNKNOWN", {
672
+ candidateRootBoundaryId: candidateOutput.rootBoundaryId,
673
+ currentRootBoundaryId: currentOutput.rootBoundaryId
674
+ });
675
+ if (currentOutput.rootBoundaryId !== candidateOutput.rootBoundaryId) return rejectStaticLayoutReuseProof("CP_STATIC_LAYOUT_ROOT_BOUNDARY_MISMATCH", {
676
+ candidateRootBoundaryId: candidateOutput.rootBoundaryId,
677
+ currentRootBoundaryId: currentOutput.rootBoundaryId
678
+ });
679
+ const boundaryCompatibility = buildBoundaryOutcomeCompatibility({
680
+ candidate: candidateObservation.boundaryOutcome,
681
+ expected: { kind: "success" }
682
+ });
683
+ if (boundaryCompatibility.kind === "incompatible") return {
684
+ kind: "rejected",
685
+ fallback: boundaryCompatibility.fallback
686
+ };
687
+ for (const dimension of input.candidateVariant.dimensions) {
688
+ const fallback = createPrivateVariantDimensionFallback(dimension);
689
+ if (fallback) return {
690
+ kind: "rejected",
691
+ fallback
692
+ };
693
+ }
694
+ if (!candidateObservation.downgrade.isPublicCacheCandidate) return {
695
+ kind: "rejected",
696
+ fallback: createStaticLayoutDowngradeFallback(candidateObservation.downgrade)
697
+ };
698
+ const requiredNegativeRequestApis = ALL_RENDER_REQUEST_API_KINDS;
699
+ for (const api of requiredNegativeRequestApis) {
700
+ const status = getRequestApiStatus(candidateObservation.requestApis, api);
701
+ if (status === "notObserved") continue;
702
+ return rejectStaticLayoutReuseProof(status === "missing" ? "CP_STATIC_LAYOUT_REQUEST_API_UNKNOWN" : "CP_STATIC_LAYOUT_REQUEST_API_OBSERVED", {
703
+ requestApi: api,
704
+ status
705
+ });
706
+ }
707
+ return {
708
+ kind: "proof",
709
+ proof: {
710
+ authorizesRuntimeReuse: false,
711
+ candidateOutput,
712
+ code: "CP_STATIC_LAYOUT_REUSE_PROVEN",
713
+ currentOutput,
714
+ fields: {
715
+ candidateRouteId: candidateOutput.routeId,
716
+ currentRouteId: currentOutput.routeId,
717
+ layoutId: currentOutput.layoutId,
718
+ rootBoundaryId: currentOutput.rootBoundaryId
719
+ },
720
+ observation: candidateObservation,
721
+ requiredNegativeRequestApis: [...requiredNegativeRequestApis],
722
+ reuseClass: "static-layout",
723
+ variant: input.candidateVariant
724
+ }
725
+ };
726
+ }
330
727
  function createDisabledCacheProofDecision(input) {
331
728
  return {
332
729
  kind: "disabled",
333
730
  canReuse: false,
334
731
  variant: input.variant,
335
732
  observation: input.observation,
733
+ ...input.staticLayoutProof ? { staticLayoutProof: input.staticLayoutProof } : {},
336
734
  fallback: buildBreakerFallback("CP_MODEL_DISABLED")
337
735
  };
338
736
  }
339
737
  //#endregion
340
- export { CACHE_PROOF_MODEL_SCHEMA_VERSION, DEFAULT_CACHE_VARIANT_BUDGET, buildBoundaryOutcomeCompatibility, buildCacheVariant, buildRenderObservation, createAppRouteCacheProofGraphScope, createDisabledCacheProofDecision, hasCompleteNegativeRequestApiProof };
738
+ export { ALL_RENDER_REQUEST_API_KINDS, CACHE_PROOF_MODEL_SCHEMA_VERSION, DEFAULT_CACHE_VARIANT_BUDGET, buildBoundaryOutcomeCompatibility, buildCacheVariant, buildCacheVariantWithRouteBudget, buildRenderObservation, buildRenderRequestApiObservations, buildStaticLayoutReuseProof, classifyCacheVariantDimensionDowngrade, classifyRenderObservationDowngrade, createAppRouteCacheProofGraphScope, createDisabledCacheProofDecision, enforceCacheVariantRouteBudget, hasCompleteNegativeRequestApiProof };
341
739
 
342
740
  //# sourceMappingURL=cache-proof.js.map