vinext 0.0.49 → 0.0.50

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 (390) 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/get-axes.js.map +1 -1
  4. package/dist/build/google-fonts/sort-variants.js.map +1 -1
  5. package/dist/build/google-fonts/validate.js.map +1 -1
  6. package/dist/build/layout-classification.js.map +1 -1
  7. package/dist/build/nitro-route-rules.js.map +1 -1
  8. package/dist/build/precompress.js.map +1 -1
  9. package/dist/build/prerender.d.ts +17 -1
  10. package/dist/build/prerender.js +77 -16
  11. package/dist/build/prerender.js.map +1 -1
  12. package/dist/build/report.js.map +1 -1
  13. package/dist/build/route-classification-injector.js.map +1 -1
  14. package/dist/build/route-classification-manifest.js.map +1 -1
  15. package/dist/build/run-prerender.js.map +1 -1
  16. package/dist/build/server-manifest.js.map +1 -1
  17. package/dist/build/ssr-manifest.js.map +1 -1
  18. package/dist/build/standalone.js.map +1 -1
  19. package/dist/build/static-export.js.map +1 -1
  20. package/dist/check.js +1 -1
  21. package/dist/check.js.map +1 -1
  22. package/dist/cli-args.js.map +1 -1
  23. package/dist/cli.js +8 -4
  24. package/dist/cli.js.map +1 -1
  25. package/dist/client/instrumentation-client-state.js.map +1 -1
  26. package/dist/client/validate-module-path.js.map +1 -1
  27. package/dist/client/vinext-next-data.d.ts +5 -1
  28. package/dist/client/window-next.d.ts +149 -0
  29. package/dist/client/window-next.js +48 -0
  30. package/dist/client/window-next.js.map +1 -0
  31. package/dist/cloudflare/kv-cache-handler.js.map +1 -1
  32. package/dist/cloudflare/tpr.js +2 -1
  33. package/dist/cloudflare/tpr.js.map +1 -1
  34. package/dist/config/config-matchers.d.ts +3 -1
  35. package/dist/config/config-matchers.js +5 -4
  36. package/dist/config/config-matchers.js.map +1 -1
  37. package/dist/config/dotenv.js.map +1 -1
  38. package/dist/config/next-config.d.ts +6 -3
  39. package/dist/config/next-config.js +13 -2
  40. package/dist/config/next-config.js.map +1 -1
  41. package/dist/deploy.js +13 -5
  42. package/dist/deploy.js.map +1 -1
  43. package/dist/entries/app-browser-entry.d.ts +3 -1
  44. package/dist/entries/app-browser-entry.js +11 -2
  45. package/dist/entries/app-browser-entry.js.map +1 -1
  46. package/dist/entries/app-rsc-entry.js +11 -0
  47. package/dist/entries/app-rsc-entry.js.map +1 -1
  48. package/dist/entries/app-rsc-manifest.js +4 -0
  49. package/dist/entries/app-rsc-manifest.js.map +1 -1
  50. package/dist/entries/app-ssr-entry.js.map +1 -1
  51. package/dist/entries/pages-client-entry.js.map +1 -1
  52. package/dist/entries/pages-entry-helpers.js.map +1 -1
  53. package/dist/entries/pages-server-entry.js +15 -0
  54. package/dist/entries/pages-server-entry.js.map +1 -1
  55. package/dist/entries/runtime-entry-module.js.map +1 -1
  56. package/dist/index.js +76 -18
  57. package/dist/index.js.map +1 -1
  58. package/dist/init.js.map +1 -1
  59. package/dist/plugins/async-hooks-stub.js.map +1 -1
  60. package/dist/plugins/client-reference-dedup.js.map +1 -1
  61. package/dist/plugins/fonts.js.map +1 -1
  62. package/dist/plugins/instrumentation-client.js.map +1 -1
  63. package/dist/plugins/og-assets.js.map +1 -1
  64. package/dist/plugins/optimize-imports.js.map +1 -1
  65. package/dist/plugins/postcss.js.map +1 -1
  66. package/dist/plugins/rsc-client-reference-loaders.d.ts +7 -0
  67. package/dist/plugins/rsc-client-reference-loaders.js +48 -0
  68. package/dist/plugins/rsc-client-reference-loaders.js.map +1 -0
  69. package/dist/plugins/rsc-client-shim-excludes.js.map +1 -1
  70. package/dist/plugins/server-externals-manifest.js.map +1 -1
  71. package/dist/plugins/strip-server-exports.js.map +1 -1
  72. package/dist/routing/app-route-graph.d.ts +48 -5
  73. package/dist/routing/app-route-graph.js +159 -15
  74. package/dist/routing/app-route-graph.js.map +1 -1
  75. package/dist/routing/app-router.js.map +1 -1
  76. package/dist/routing/file-matcher.js.map +1 -1
  77. package/dist/routing/pages-router.js.map +1 -1
  78. package/dist/routing/route-matching.js.map +1 -1
  79. package/dist/routing/route-pattern.js.map +1 -1
  80. package/dist/routing/route-trie.js.map +1 -1
  81. package/dist/routing/route-validation.js.map +1 -1
  82. package/dist/routing/utils.js.map +1 -1
  83. package/dist/server/api-handler.js.map +1 -1
  84. package/dist/server/app-browser-action-result.d.ts +19 -0
  85. package/dist/server/app-browser-action-result.js +18 -0
  86. package/dist/server/app-browser-action-result.js.map +1 -0
  87. package/dist/server/app-browser-entry.js +91 -48
  88. package/dist/server/app-browser-entry.js.map +1 -1
  89. package/dist/server/app-browser-error.js.map +1 -1
  90. package/dist/server/app-browser-hydration.d.ts +19 -0
  91. package/dist/server/app-browser-hydration.js +22 -0
  92. package/dist/server/app-browser-hydration.js.map +1 -0
  93. package/dist/server/app-browser-navigation-controller.d.ts +6 -3
  94. package/dist/server/app-browser-navigation-controller.js +67 -19
  95. package/dist/server/app-browser-navigation-controller.js.map +1 -1
  96. package/dist/server/app-browser-state.d.ts +17 -17
  97. package/dist/server/app-browser-state.js +122 -36
  98. package/dist/server/app-browser-state.js.map +1 -1
  99. package/dist/server/app-browser-stream.d.ts +4 -0
  100. package/dist/server/app-browser-stream.js +24 -2
  101. package/dist/server/app-browser-stream.js.map +1 -1
  102. package/dist/server/app-browser-visible-commit.d.ts +6 -1
  103. package/dist/server/app-browser-visible-commit.js +34 -19
  104. package/dist/server/app-browser-visible-commit.js.map +1 -1
  105. package/dist/server/app-client-reference-preloader.js.map +1 -1
  106. package/dist/server/app-elements-wire.d.ts +6 -1
  107. package/dist/server/app-elements-wire.js +17 -1
  108. package/dist/server/app-elements-wire.js.map +1 -1
  109. package/dist/server/app-elements.d.ts +2 -2
  110. package/dist/server/app-elements.js +2 -2
  111. package/dist/server/app-elements.js.map +1 -1
  112. package/dist/server/app-fallback-renderer.js.map +1 -1
  113. package/dist/server/app-hook-warning-suppression.js.map +1 -1
  114. package/dist/server/app-middleware.d.ts +1 -1
  115. package/dist/server/app-middleware.js +4 -9
  116. package/dist/server/app-middleware.js.map +1 -1
  117. package/dist/server/app-mounted-slots-header.js.map +1 -1
  118. package/dist/server/app-page-boundary-render.d.ts +1 -0
  119. package/dist/server/app-page-boundary-render.js +14 -13
  120. package/dist/server/app-page-boundary-render.js.map +1 -1
  121. package/dist/server/app-page-boundary.d.ts +1 -0
  122. package/dist/server/app-page-boundary.js +7 -5
  123. package/dist/server/app-page-boundary.js.map +1 -1
  124. package/dist/server/app-page-cache.d.ts +10 -3
  125. package/dist/server/app-page-cache.js +42 -23
  126. package/dist/server/app-page-cache.js.map +1 -1
  127. package/dist/server/app-page-dispatch.d.ts +6 -1
  128. package/dist/server/app-page-dispatch.js +21 -7
  129. package/dist/server/app-page-dispatch.js.map +1 -1
  130. package/dist/server/app-page-element-builder.d.ts +3 -1
  131. package/dist/server/app-page-element-builder.js +6 -2
  132. package/dist/server/app-page-element-builder.js.map +1 -1
  133. package/dist/server/app-page-execution.js.map +1 -1
  134. package/dist/server/app-page-head.js +4 -0
  135. package/dist/server/app-page-head.js.map +1 -1
  136. package/dist/server/app-page-method.js.map +1 -1
  137. package/dist/server/app-page-params.js.map +1 -1
  138. package/dist/server/app-page-probe.js.map +1 -1
  139. package/dist/server/app-page-render.d.ts +7 -1
  140. package/dist/server/app-page-render.js +11 -4
  141. package/dist/server/app-page-render.js.map +1 -1
  142. package/dist/server/app-page-request.js +2 -1
  143. package/dist/server/app-page-request.js.map +1 -1
  144. package/dist/server/app-page-response.d.ts +2 -0
  145. package/dist/server/app-page-response.js +15 -5
  146. package/dist/server/app-page-response.js.map +1 -1
  147. package/dist/server/app-page-route-wiring.d.ts +6 -2
  148. package/dist/server/app-page-route-wiring.js +50 -49
  149. package/dist/server/app-page-route-wiring.js.map +1 -1
  150. package/dist/server/app-page-segment-state.d.ts +10 -0
  151. package/dist/server/app-page-segment-state.js +87 -0
  152. package/dist/server/app-page-segment-state.js.map +1 -0
  153. package/dist/server/app-page-stream.d.ts +7 -2
  154. package/dist/server/app-page-stream.js +3 -1
  155. package/dist/server/app-page-stream.js.map +1 -1
  156. package/dist/server/app-post-middleware-context.js.map +1 -1
  157. package/dist/server/app-prerender-endpoints.js.map +1 -1
  158. package/dist/server/app-prerender-static-params.js.map +1 -1
  159. package/dist/server/app-render-dependency.js.map +1 -1
  160. package/dist/server/app-request-context.js.map +1 -1
  161. package/dist/server/app-route-handler-cache.js.map +1 -1
  162. package/dist/server/app-route-handler-dispatch.js +3 -1
  163. package/dist/server/app-route-handler-dispatch.js.map +1 -1
  164. package/dist/server/app-route-handler-execution.js.map +1 -1
  165. package/dist/server/app-route-handler-policy.js +1 -0
  166. package/dist/server/app-route-handler-policy.js.map +1 -1
  167. package/dist/server/app-route-handler-response.js +4 -3
  168. package/dist/server/app-route-handler-response.js.map +1 -1
  169. package/dist/server/app-route-handler-runtime.js.map +1 -1
  170. package/dist/server/app-router-entry.js +6 -2
  171. package/dist/server/app-router-entry.js.map +1 -1
  172. package/dist/server/app-rsc-cache-busting.d.ts +5 -2
  173. package/dist/server/app-rsc-cache-busting.js +40 -19
  174. package/dist/server/app-rsc-cache-busting.js.map +1 -1
  175. package/dist/server/app-rsc-error-handler.js.map +1 -1
  176. package/dist/server/app-rsc-errors.js.map +1 -1
  177. package/dist/server/app-rsc-handler.d.ts +10 -1
  178. package/dist/server/app-rsc-handler.js +51 -17
  179. package/dist/server/app-rsc-handler.js.map +1 -1
  180. package/dist/server/app-rsc-render-mode.d.ts +11 -0
  181. package/dist/server/app-rsc-render-mode.js +21 -0
  182. package/dist/server/app-rsc-render-mode.js.map +1 -0
  183. package/dist/server/app-rsc-request-normalization.d.ts +4 -1
  184. package/dist/server/app-rsc-request-normalization.js +7 -2
  185. package/dist/server/app-rsc-request-normalization.js.map +1 -1
  186. package/dist/server/app-rsc-response-finalizer.d.ts +2 -1
  187. package/dist/server/app-rsc-response-finalizer.js +6 -1
  188. package/dist/server/app-rsc-response-finalizer.js.map +1 -1
  189. package/dist/server/app-rsc-route-matching.js.map +1 -1
  190. package/dist/server/app-segment-config.js.map +1 -1
  191. package/dist/server/app-server-action-execution.d.ts +16 -2
  192. package/dist/server/app-server-action-execution.js +79 -23
  193. package/dist/server/app-server-action-execution.js.map +1 -1
  194. package/dist/server/app-ssr-entry.d.ts +6 -0
  195. package/dist/server/app-ssr-entry.js +10 -4
  196. package/dist/server/app-ssr-entry.js.map +1 -1
  197. package/dist/server/app-ssr-stream.js.map +1 -1
  198. package/dist/server/app-static-generation.js.map +1 -1
  199. package/dist/server/artifact-compatibility.js.map +1 -1
  200. package/dist/server/cache-control.js +1 -0
  201. package/dist/server/cache-control.js.map +1 -1
  202. package/dist/server/cache-proof.js.map +1 -1
  203. package/dist/server/csp.js.map +1 -1
  204. package/dist/server/dev-error-overlay-store.js.map +1 -1
  205. package/dist/server/dev-error-overlay.js +5 -0
  206. package/dist/server/dev-error-overlay.js.map +1 -1
  207. package/dist/server/dev-module-runner.js.map +1 -1
  208. package/dist/server/dev-origin-check.js.map +1 -1
  209. package/dist/server/dev-route-files.js.map +1 -1
  210. package/dist/server/dev-server.js +8 -5
  211. package/dist/server/dev-server.js.map +1 -1
  212. package/dist/server/file-based-metadata.js.map +1 -1
  213. package/dist/server/headers.d.ts +79 -0
  214. package/dist/server/headers.js +101 -0
  215. package/dist/server/headers.js.map +1 -0
  216. package/dist/server/html.js.map +1 -1
  217. package/dist/server/http-error-responses.js.map +1 -1
  218. package/dist/server/image-optimization.d.ts +11 -1
  219. package/dist/server/image-optimization.js.map +1 -1
  220. package/dist/server/implicit-tags.js +2 -1
  221. package/dist/server/implicit-tags.js.map +1 -1
  222. package/dist/server/instrumentation-runtime.js.map +1 -1
  223. package/dist/server/instrumentation.js.map +1 -1
  224. package/dist/server/isr-cache.d.ts +10 -1
  225. package/dist/server/isr-cache.js +12 -3
  226. package/dist/server/isr-cache.js.map +1 -1
  227. package/dist/server/metadata-route-build-data.js.map +1 -1
  228. package/dist/server/metadata-route-response.js.map +1 -1
  229. package/dist/server/metadata-routes.js.map +1 -1
  230. package/dist/server/middleware-matcher.js.map +1 -1
  231. package/dist/server/middleware-request-headers.d.ts +4 -1
  232. package/dist/server/middleware-request-headers.js +15 -8
  233. package/dist/server/middleware-request-headers.js.map +1 -1
  234. package/dist/server/middleware-response-headers.d.ts +2 -1
  235. package/dist/server/middleware-response-headers.js +1 -1
  236. package/dist/server/middleware-response-headers.js.map +1 -1
  237. package/dist/server/middleware-runtime.d.ts +1 -0
  238. package/dist/server/middleware-runtime.js +6 -3
  239. package/dist/server/middleware-runtime.js.map +1 -1
  240. package/dist/server/middleware.js.map +1 -1
  241. package/dist/server/navigation-planner.d.ts +119 -0
  242. package/dist/server/navigation-planner.js +171 -0
  243. package/dist/server/navigation-planner.js.map +1 -0
  244. package/dist/server/navigation-trace.d.ts +12 -2
  245. package/dist/server/navigation-trace.js +13 -1
  246. package/dist/server/navigation-trace.js.map +1 -1
  247. package/dist/server/next-error-digest.d.ts +3 -2
  248. package/dist/server/next-error-digest.js +4 -2
  249. package/dist/server/next-error-digest.js.map +1 -1
  250. package/dist/server/normalize-path.js.map +1 -1
  251. package/dist/server/pages-api-route.js.map +1 -1
  252. package/dist/server/pages-i18n.js.map +1 -1
  253. package/dist/server/pages-media-type.js.map +1 -1
  254. package/dist/server/pages-node-compat.js.map +1 -1
  255. package/dist/server/pages-page-data.js +5 -2
  256. package/dist/server/pages-page-data.js.map +1 -1
  257. package/dist/server/pages-page-response.js +3 -2
  258. package/dist/server/pages-page-response.js.map +1 -1
  259. package/dist/server/prerender-work-unit-setup.js +1 -1
  260. package/dist/server/prerender-work-unit-setup.js.map +1 -1
  261. package/dist/server/prod-server.js +35 -13
  262. package/dist/server/prod-server.js.map +1 -1
  263. package/dist/server/request-log.js.map +1 -1
  264. package/dist/server/request-pipeline.d.ts +1 -13
  265. package/dist/server/request-pipeline.js +3 -25
  266. package/dist/server/request-pipeline.js.map +1 -1
  267. package/dist/server/rsc-stream-hints.js.map +1 -1
  268. package/dist/server/seed-cache.js.map +1 -1
  269. package/dist/server/server-action-not-found.js +3 -3
  270. package/dist/server/server-action-not-found.js.map +1 -1
  271. package/dist/server/socket-error-backstop.js.map +1 -1
  272. package/dist/server/static-file-cache.js.map +1 -1
  273. package/dist/server/worker-utils.d.ts +0 -7
  274. package/dist/server/worker-utils.js +3 -2
  275. package/dist/server/worker-utils.js.map +1 -1
  276. package/dist/shims/amp.js.map +1 -1
  277. package/dist/shims/app.d.ts +37 -4
  278. package/dist/shims/app.js +50 -1
  279. package/dist/shims/app.js.map +1 -0
  280. package/dist/shims/cache-for-request.js.map +1 -1
  281. package/dist/shims/cache-runtime.js +20 -8
  282. package/dist/shims/cache-runtime.js.map +1 -1
  283. package/dist/shims/cache.d.ts +15 -3
  284. package/dist/shims/cache.js +99 -15
  285. package/dist/shims/cache.js.map +1 -1
  286. package/dist/shims/client-hook-error.js.map +1 -1
  287. package/dist/shims/compat-router.js.map +1 -1
  288. package/dist/shims/config.js.map +1 -1
  289. package/dist/shims/constants.js.map +1 -1
  290. package/dist/shims/document.js.map +1 -1
  291. package/dist/shims/dynamic.d.ts +18 -10
  292. package/dist/shims/dynamic.js +107 -51
  293. package/dist/shims/dynamic.js.map +1 -1
  294. package/dist/shims/error-boundary.d.ts +35 -6
  295. package/dist/shims/error-boundary.js +118 -33
  296. package/dist/shims/error-boundary.js.map +1 -1
  297. package/dist/shims/error.js.map +1 -1
  298. package/dist/shims/fetch-cache.d.ts +22 -1
  299. package/dist/shims/fetch-cache.js +124 -13
  300. package/dist/shims/fetch-cache.js.map +1 -1
  301. package/dist/shims/font-google-base.js.map +1 -1
  302. package/dist/shims/font-local.js.map +1 -1
  303. package/dist/shims/form.js +3 -1
  304. package/dist/shims/form.js.map +1 -1
  305. package/dist/shims/head-state.js.map +1 -1
  306. package/dist/shims/head.d.ts +3 -1
  307. package/dist/shims/head.js +28 -16
  308. package/dist/shims/head.js.map +1 -1
  309. package/dist/shims/headers.d.ts +4 -2
  310. package/dist/shims/headers.js +24 -7
  311. package/dist/shims/headers.js.map +1 -1
  312. package/dist/shims/i18n-context.js.map +1 -1
  313. package/dist/shims/i18n-state.js.map +1 -1
  314. package/dist/shims/image-config.d.ts +14 -1
  315. package/dist/shims/image-config.js +24 -1
  316. package/dist/shims/image-config.js.map +1 -1
  317. package/dist/shims/image.js +15 -2
  318. package/dist/shims/image.js.map +1 -1
  319. package/dist/shims/internal/als-registry.js.map +1 -1
  320. package/dist/shims/internal/app-router-context.d.ts +1 -0
  321. package/dist/shims/internal/app-router-context.js.map +1 -1
  322. package/dist/shims/internal/cookie-serialize.js.map +1 -1
  323. package/dist/shims/internal/make-hanging-promise.d.ts +1 -1
  324. package/dist/shims/internal/make-hanging-promise.js +1 -1
  325. package/dist/shims/internal/make-hanging-promise.js.map +1 -1
  326. package/dist/shims/internal/parse-cookie-header.js.map +1 -1
  327. package/dist/shims/internal/utils.js.map +1 -1
  328. package/dist/shims/internal/work-unit-async-storage.js +2 -2
  329. package/dist/shims/internal/work-unit-async-storage.js.map +1 -1
  330. package/dist/shims/layout-segment-context.js.map +1 -1
  331. package/dist/shims/legacy-image.js.map +1 -1
  332. package/dist/shims/link-prefetch.d.ts +34 -0
  333. package/dist/shims/link-prefetch.js +40 -0
  334. package/dist/shims/link-prefetch.js.map +1 -0
  335. package/dist/shims/link.d.ts +27 -4
  336. package/dist/shims/link.js +91 -27
  337. package/dist/shims/link.js.map +1 -1
  338. package/dist/shims/metadata.js.map +1 -1
  339. package/dist/shims/navigation-state.js.map +1 -1
  340. package/dist/shims/navigation.d.ts +22 -1
  341. package/dist/shims/navigation.js +30 -15
  342. package/dist/shims/navigation.js.map +1 -1
  343. package/dist/shims/navigation.react-server.js.map +1 -1
  344. package/dist/shims/offline.js.map +1 -1
  345. package/dist/shims/readonly-url-search-params.js.map +1 -1
  346. package/dist/shims/request-context.js.map +1 -1
  347. package/dist/shims/root-params.js.map +1 -1
  348. package/dist/shims/router-state.js.map +1 -1
  349. package/dist/shims/router.d.ts +38 -2
  350. package/dist/shims/router.js +45 -17
  351. package/dist/shims/router.js.map +1 -1
  352. package/dist/shims/script-nonce-context.js.map +1 -1
  353. package/dist/shims/script.js.map +1 -1
  354. package/dist/shims/server.js +10 -14
  355. package/dist/shims/server.js.map +1 -1
  356. package/dist/shims/slot.d.ts +6 -1
  357. package/dist/shims/slot.js +20 -7
  358. package/dist/shims/slot.js.map +1 -1
  359. package/dist/shims/thenable-params.js.map +1 -1
  360. package/dist/shims/unified-request-context.js +3 -0
  361. package/dist/shims/unified-request-context.js.map +1 -1
  362. package/dist/shims/url-safety.js.map +1 -1
  363. package/dist/shims/url-utils.d.ts +2 -1
  364. package/dist/shims/url-utils.js +10 -1
  365. package/dist/shims/url-utils.js.map +1 -1
  366. package/dist/shims/use-merged-ref.js.map +1 -1
  367. package/dist/shims/web-vitals.d.ts +4 -21
  368. package/dist/shims/web-vitals.js +19 -6
  369. package/dist/shims/web-vitals.js.map +1 -1
  370. package/dist/utils/base-path.js.map +1 -1
  371. package/dist/utils/cache-control-metadata.js.map +1 -1
  372. package/dist/utils/domain-locale.js.map +1 -1
  373. package/dist/utils/encode-cache-tag.d.ts +31 -0
  374. package/dist/utils/encode-cache-tag.js +38 -0
  375. package/dist/utils/encode-cache-tag.js.map +1 -0
  376. package/dist/utils/error-cause.js.map +1 -1
  377. package/dist/utils/hash.js.map +1 -1
  378. package/dist/utils/lazy-chunks.js.map +1 -1
  379. package/dist/utils/manifest-paths.js.map +1 -1
  380. package/dist/utils/mdx-scan.js.map +1 -1
  381. package/dist/utils/navigation-signal.d.ts +6 -0
  382. package/dist/utils/navigation-signal.js +14 -0
  383. package/dist/utils/navigation-signal.js.map +1 -0
  384. package/dist/utils/project.js.map +1 -1
  385. package/dist/utils/public-routes.js.map +1 -1
  386. package/dist/utils/query.js.map +1 -1
  387. package/dist/utils/safe-json-file.js.map +1 -1
  388. package/dist/utils/text-stream.js.map +1 -1
  389. package/dist/utils/vinext-root.js.map +1 -1
  390. package/package.json +6 -4
@@ -29,6 +29,9 @@ function createAppRouteGraphTemplateId(treePath) {
29
29
  function createAppRouteGraphSlotId(slotName, ownerTreePath) {
30
30
  return `slot:${slotName}:${ownerTreePath}`;
31
31
  }
32
+ function createAppRouteGraphDefaultId(slotId) {
33
+ return `default:${slotId}`;
34
+ }
32
35
  function createAppRouteGraphRootBoundaryId(treePath) {
33
36
  return `root-boundary:${treePath}`;
34
37
  }
@@ -54,6 +57,9 @@ function createStaticSegmentGraph(routes) {
54
57
  const layouts = /* @__PURE__ */ new Map();
55
58
  const templates = /* @__PURE__ */ new Map();
56
59
  const slots = /* @__PURE__ */ new Map();
60
+ const defaults = /* @__PURE__ */ new Map();
61
+ const slotBindings = /* @__PURE__ */ new Map();
62
+ const boundaries = /* @__PURE__ */ new Map();
57
63
  const rootBoundaries = /* @__PURE__ */ new Map();
58
64
  for (const route of routes) {
59
65
  routeEntries.set(route.ids.route, {
@@ -86,10 +92,18 @@ function createStaticSegmentGraph(routes) {
86
92
  const treePath = createAppRouteGraphTreePath(route.routeSegments, treePosition);
87
93
  const existingLayout = layouts.get(layoutId);
88
94
  if (existingLayout) assertRouteManifestRootBoundary("layout", route, layoutId, existingLayout.rootBoundaryId);
89
- layouts.set(layoutId, {
95
+ const layout = {
90
96
  id: layoutId,
91
97
  treePath,
92
98
  rootBoundaryId: route.ids.rootBoundary
99
+ };
100
+ layouts.set(layoutId, layout);
101
+ addRouteManifestBoundaryFacts({
102
+ boundaries,
103
+ route,
104
+ layoutId,
105
+ treePath,
106
+ layoutIndex: index
93
107
  });
94
108
  if (index === 0 && route.ids.rootBoundary) rootBoundaries.set(route.ids.rootBoundary, {
95
109
  id: route.ids.rootBoundary,
@@ -97,22 +111,51 @@ function createStaticSegmentGraph(routes) {
97
111
  treePath
98
112
  });
99
113
  }
114
+ addRouteManifestSegmentErrorBoundaryFacts({
115
+ boundaries,
116
+ route
117
+ });
100
118
  for (const [index, templateId] of route.ids.templates.entries()) {
101
119
  const treePosition = route.templateTreePositions?.[index];
102
120
  assertRouteManifestTreePosition("template", route, templateId, treePosition);
121
+ const treePath = createAppRouteGraphTreePath(route.routeSegments, treePosition);
103
122
  const existingTemplate = templates.get(templateId);
104
123
  if (existingTemplate) assertRouteManifestRootBoundary("template", route, templateId, existingTemplate.rootBoundaryId);
105
124
  templates.set(templateId, {
106
125
  id: templateId,
107
- treePath: createAppRouteGraphTreePath(route.routeSegments, treePosition),
108
- rootBoundaryId: route.ids.rootBoundary
126
+ treePath,
127
+ rootBoundaryId: route.ids.rootBoundary,
128
+ ownerLayoutId: findRouteManifestOwnerLayoutId(route, treePosition),
129
+ reset: {
130
+ kind: "remountSubtree",
131
+ treePath
132
+ }
109
133
  });
110
134
  }
111
- for (const slot of route.parallelSlots) slots.set(slot.id, {
112
- id: slot.id,
113
- key: slot.key,
114
- name: slot.name
115
- });
135
+ for (const slot of route.parallelSlots) {
136
+ const ownerLayoutId = findSlotOwnerLayoutId(route, slot);
137
+ const defaultId = slot.defaultPath ? createAppRouteGraphDefaultId(slot.id) : null;
138
+ slots.set(slot.id, {
139
+ id: slot.id,
140
+ key: slot.key,
141
+ name: slot.name,
142
+ ownerTreePath: slot.ownerTreePath,
143
+ ownerLayoutId,
144
+ rootBoundaryId: ownerLayoutId ? route.ids.rootBoundary : null,
145
+ defaultId,
146
+ hasDefault: slot.defaultPath !== null,
147
+ hasPage: slot.hasPage
148
+ });
149
+ if (defaultId) defaults.set(defaultId, {
150
+ id: defaultId,
151
+ slotId: slot.id,
152
+ ownerTreePath: slot.ownerTreePath,
153
+ ownerLayoutId,
154
+ rootBoundaryId: ownerLayoutId ? route.ids.rootBoundary : null
155
+ });
156
+ const binding = createRouteManifestSlotBinding(route, slot, ownerLayoutId, defaultId);
157
+ slotBindings.set(binding.id, binding);
158
+ }
116
159
  }
117
160
  return {
118
161
  routes: routeEntries,
@@ -121,13 +164,80 @@ function createStaticSegmentGraph(routes) {
121
164
  layouts,
122
165
  templates,
123
166
  slots,
167
+ defaults,
168
+ slotBindings,
169
+ boundaries,
124
170
  rootBoundaries
125
171
  };
126
172
  }
173
+ function findRouteManifestOwnerLayoutId(route, treePosition) {
174
+ const layoutIndex = route.layoutTreePositions.indexOf(treePosition);
175
+ return route.ids.layouts[layoutIndex] ?? null;
176
+ }
177
+ function findSlotOwnerLayoutId(route, slot) {
178
+ if (slot.layoutIndex < 0) return null;
179
+ return route.ids.layouts[slot.layoutIndex] ?? null;
180
+ }
181
+ function createRouteManifestSlotBinding(route, slot, ownerLayoutId, defaultId) {
182
+ const state = getRouteManifestSlotBindingState(slot);
183
+ const binding = {
184
+ id: `${route.ids.route}::${slot.id}`,
185
+ routeId: route.ids.route,
186
+ slotId: slot.id,
187
+ ownerLayoutId,
188
+ state,
189
+ defaultId: state === "default" ? defaultId : null,
190
+ routeSegments: slot.routeSegments ? [...slot.routeSegments] : null
191
+ };
192
+ if (slot.slotPatternParts) binding.slotPatternParts = [...slot.slotPatternParts];
193
+ if (slot.slotParamNames) binding.slotParamNames = [...slot.slotParamNames];
194
+ return binding;
195
+ }
196
+ function getRouteManifestSlotBindingState(slot) {
197
+ if (slot.pagePath) return "active";
198
+ if (slot.defaultPath) return "default";
199
+ return "unmatched";
200
+ }
201
+ function addRouteManifestBoundaryFacts(input) {
202
+ addRouteManifestBoundaryFact(input, "error", input.route.layoutErrorPaths[input.layoutIndex]);
203
+ addRouteManifestBoundaryFact(input, "notFound", input.route.notFoundPaths[input.layoutIndex]);
204
+ addRouteManifestBoundaryFact(input, "forbidden", input.route.forbiddenPaths[input.layoutIndex]);
205
+ addRouteManifestBoundaryFact(input, "unauthorized", input.route.unauthorizedPaths[input.layoutIndex]);
206
+ }
207
+ function addRouteManifestSegmentErrorBoundaryFacts(input) {
208
+ for (const [index, boundaryPath] of (input.route.errorPaths ?? []).entries()) {
209
+ const treePosition = input.route.errorTreePositions?.[index];
210
+ assertRouteManifestBoundaryTreePosition(input.route, boundaryPath, treePosition);
211
+ const ownerLayoutId = findRouteManifestOwnerLayoutId(input.route, treePosition);
212
+ if (ownerLayoutId !== null) continue;
213
+ const treePath = createAppRouteGraphTreePath(input.route.routeSegments, treePosition);
214
+ addRouteManifestBoundaryFact({
215
+ boundaries: input.boundaries,
216
+ route: input.route,
217
+ layoutId: ownerLayoutId,
218
+ treePath
219
+ }, "error", boundaryPath);
220
+ }
221
+ }
222
+ function addRouteManifestBoundaryFact(input, outcome, boundaryPath) {
223
+ if (!boundaryPath) return;
224
+ const id = `boundary:${outcome}:${input.treePath}`;
225
+ input.boundaries.set(id, {
226
+ id,
227
+ outcome,
228
+ treePath: input.treePath,
229
+ ownerLayoutId: input.layoutId,
230
+ rootBoundaryId: input.route.ids.rootBoundary
231
+ });
232
+ }
127
233
  function assertRouteManifestTreePosition(kind, route, id, treePosition) {
128
234
  if (treePosition !== void 0) return;
129
235
  throw new Error(`[vinext] App route graph invariant violated: missing ${kind} tree position for ${id} on ${route.pattern}`);
130
236
  }
237
+ function assertRouteManifestBoundaryTreePosition(route, boundaryPath, treePosition) {
238
+ if (treePosition !== void 0) return;
239
+ throw new Error(`[vinext] App route graph invariant violated: missing boundary tree position for ${boundaryPath} on ${route.pattern}`);
240
+ }
131
241
  function assertRouteManifestRootBoundary(kind, route, id, existingRootBoundaryId) {
132
242
  if (existingRootBoundaryId === route.ids.rootBoundary) return;
133
243
  throw new Error(`[vinext] App route graph invariant violated: ${kind} ${id} is shared across root boundaries (${existingRootBoundaryId ?? "none"} and ${route.ids.rootBoundary ?? "none"}) on ${route.pattern}`);
@@ -140,6 +250,9 @@ function createRouteManifestGraphVersion(segmentGraph) {
140
250
  layouts: sortedMapValues(segmentGraph.layouts),
141
251
  templates: sortedMapValues(segmentGraph.templates),
142
252
  slots: sortedMapValues(segmentGraph.slots),
253
+ defaults: sortedMapValues(segmentGraph.defaults),
254
+ slotBindings: sortedMapValues(segmentGraph.slotBindings),
255
+ boundaries: sortedMapValues(segmentGraph.boundaries),
143
256
  rootBoundaries: sortedMapValues(segmentGraph.rootBoundaries)
144
257
  };
145
258
  return `graph:${createHash("sha256").update(JSON.stringify(stableShape)).digest("hex")}`;
@@ -383,6 +496,9 @@ function directoryToAppRoute(dir, appDir, matcher, pagePath, routePath) {
383
496
  const templateTreePositions = computeLayoutTreePositions(appDir, templates);
384
497
  const layoutTreePositions = computeLayoutTreePositions(appDir, layouts);
385
498
  const layoutErrorPaths = discoverLayoutAlignedErrors(segments, appDir, matcher);
499
+ const errorEntries = discoverSegmentErrors(segments, appDir, matcher);
500
+ const errorPaths = errorEntries.map((entry) => entry.path);
501
+ const errorTreePositions = errorEntries.map((entry) => entry.treePosition);
386
502
  const routeDir = dir === "." ? appDir : path.join(appDir, dir);
387
503
  const loadingPath = findFile(routeDir, "loading", matcher);
388
504
  const errorPath = findFile(routeDir, "error", matcher);
@@ -412,6 +528,8 @@ function directoryToAppRoute(dir, appDir, matcher, pagePath, routePath) {
412
528
  loadingPath,
413
529
  errorPath,
414
530
  layoutErrorPaths,
531
+ errorPaths,
532
+ errorTreePositions,
415
533
  notFoundPath,
416
534
  notFoundPaths,
417
535
  forbiddenPaths,
@@ -512,15 +630,39 @@ function discoverTemplates(segments, appDir, matcher) {
512
630
  return templates;
513
631
  }
514
632
  /**
633
+ * Discover error.tsx files by segment tree position.
634
+ *
635
+ * Next.js stores conventions on every loader-tree segment; a route-group
636
+ * directory with error.tsx but no sibling layout.tsx must still wrap its
637
+ * descendants. Keeping positions explicit avoids conflating segment boundaries
638
+ * with layout component ownership.
639
+ */
640
+ function discoverSegmentErrors(segments, appDir, matcher) {
641
+ const errors = [];
642
+ const rootError = findFile(appDir, "error", matcher);
643
+ if (rootError) errors.push({
644
+ path: rootError,
645
+ treePosition: 0
646
+ });
647
+ let currentDir = appDir;
648
+ for (let index = 0; index < segments.length; index++) {
649
+ const segment = segments[index];
650
+ currentDir = path.join(currentDir, segment);
651
+ const error = findFile(currentDir, "error", matcher);
652
+ if (error) errors.push({
653
+ path: error,
654
+ treePosition: index + 1
655
+ });
656
+ }
657
+ return errors;
658
+ }
659
+ /**
515
660
  * Discover error.tsx files aligned with the layouts array.
516
- * Walks the same directory levels as discoverLayouts and, for each level
517
- * that contributes a layout entry, checks whether error.tsx also exists.
518
- * Returns an array of the same length as discoverLayouts() would return,
519
- * with the error path (or null) at each corresponding layout level.
520
661
  *
521
- * This enables interleaving ErrorBoundary components with layouts in the
522
- * rendering tree, matching Next.js behavior where each segment independently
523
- * wraps its children with an error boundary.
662
+ * Route manifests still model layout-owned boundary facts by layout index.
663
+ * Keep this layout-aligned compatibility shape separate from segment-owned
664
+ * error boundaries so route-group errors without layouts do not get attributed
665
+ * to unrelated layouts.
524
666
  */
525
667
  function discoverLayoutAlignedErrors(segments, appDir, matcher) {
526
668
  const errors = [];
@@ -764,6 +906,8 @@ function discoverParallelSlots(dir, appDir, matcher) {
764
906
  key: `${slotName}@${path.relative(appDir, slotDir).replace(/\\/g, "/")}`,
765
907
  name: slotName,
766
908
  ownerDir: slotDir,
909
+ ownerTreePath,
910
+ hasPage: pagePath !== null,
767
911
  pagePath,
768
912
  defaultPath,
769
913
  layoutPath: findFile(slotDir, "layout", matcher),