vinext 0.0.55 → 0.1.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 (1001) hide show
  1. package/README.md +51 -15
  2. package/dist/build/assets-ignore.d.ts +32 -0
  3. package/dist/build/assets-ignore.js +48 -0
  4. package/dist/build/clean-output.d.ts +1 -2
  5. package/dist/build/clean-output.js +0 -2
  6. package/dist/build/client-build-config.d.ts +42 -3
  7. package/dist/build/client-build-config.js +86 -4
  8. package/dist/build/css-url-assets.d.ts +29 -0
  9. package/dist/build/css-url-assets.js +211 -0
  10. package/dist/build/google-fonts/build-url.d.ts +1 -2
  11. package/dist/build/google-fonts/build-url.js +0 -2
  12. package/dist/build/google-fonts/fallback-metrics-data.js +0 -2
  13. package/dist/build/google-fonts/fallback-metrics.d.ts +1 -2
  14. package/dist/build/google-fonts/fallback-metrics.js +0 -2
  15. package/dist/build/google-fonts/font-data.js +0 -2
  16. package/dist/build/google-fonts/font-metadata.d.ts +1 -2
  17. package/dist/build/google-fonts/font-metadata.js +0 -2
  18. package/dist/build/google-fonts/get-axes.d.ts +1 -2
  19. package/dist/build/google-fonts/get-axes.js +0 -2
  20. package/dist/build/google-fonts/sort-variants.d.ts +1 -2
  21. package/dist/build/google-fonts/sort-variants.js +0 -2
  22. package/dist/build/google-fonts/validate.d.ts +1 -2
  23. package/dist/build/google-fonts/validate.js +0 -2
  24. package/dist/build/inline-css.d.ts +1 -2
  25. package/dist/build/inline-css.js +0 -2
  26. package/dist/build/layout-classification-types.d.ts +1 -2
  27. package/dist/build/layout-classification.d.ts +2 -3
  28. package/dist/build/layout-classification.js +1 -3
  29. package/dist/build/next-client-runtime-manifests.d.ts +14 -0
  30. package/dist/build/next-client-runtime-manifests.js +39 -0
  31. package/dist/build/nitro-route-rules.d.ts +1 -2
  32. package/dist/build/nitro-route-rules.js +0 -2
  33. package/dist/build/precompress.d.ts +1 -2
  34. package/dist/build/precompress.js +0 -2
  35. package/dist/build/prerender.d.ts +2 -3
  36. package/dist/build/prerender.js +14 -2
  37. package/dist/build/report.d.ts +1 -2
  38. package/dist/build/report.js +0 -2
  39. package/dist/build/route-classification-injector.d.ts +1 -2
  40. package/dist/build/route-classification-injector.js +4 -6
  41. package/dist/build/route-classification-manifest.d.ts +5 -6
  42. package/dist/build/route-classification-manifest.js +5 -7
  43. package/dist/build/run-prerender.d.ts +1 -2
  44. package/dist/build/run-prerender.js +15 -7
  45. package/dist/build/server-manifest.d.ts +1 -2
  46. package/dist/build/server-manifest.js +0 -2
  47. package/dist/build/ssr-manifest.d.ts +1 -2
  48. package/dist/build/ssr-manifest.js +2 -4
  49. package/dist/build/standalone.d.ts +1 -2
  50. package/dist/build/standalone.js +0 -2
  51. package/dist/build/static-export.d.ts +2 -3
  52. package/dist/build/static-export.js +0 -2
  53. package/dist/cache/cache-adapters-virtual.d.ts +50 -0
  54. package/dist/cache/cache-adapters-virtual.js +45 -0
  55. package/dist/check.d.ts +33 -2
  56. package/dist/check.js +306 -24
  57. package/dist/cli-args.d.ts +1 -2
  58. package/dist/cli-args.js +0 -2
  59. package/dist/cli.js +9 -13
  60. package/dist/client/instrumentation-client-inject.d.ts +1 -2
  61. package/dist/client/instrumentation-client-inject.js +0 -2
  62. package/dist/client/instrumentation-client-state.d.ts +1 -2
  63. package/dist/client/instrumentation-client-state.js +0 -2
  64. package/dist/client/instrumentation-client.d.ts +1 -2
  65. package/dist/client/instrumentation-client.js +0 -2
  66. package/dist/client/navigation-runtime.d.ts +9 -2
  67. package/dist/client/navigation-runtime.js +1 -3
  68. package/dist/client/pages-router-link-navigation.d.ts +1 -2
  69. package/dist/client/pages-router-link-navigation.js +0 -2
  70. package/dist/client/validate-module-path.d.ts +1 -2
  71. package/dist/client/validate-module-path.js +0 -2
  72. package/dist/client/vinext-next-data.d.ts +3 -3
  73. package/dist/client/vinext-next-data.js +0 -2
  74. package/dist/client/window-next.d.ts +1 -2
  75. package/dist/client/window-next.js +0 -2
  76. package/dist/cloudflare/index.d.ts +1 -1
  77. package/dist/cloudflare/index.js +1 -1
  78. package/dist/cloudflare/src/cache/cdn-adapter.runtime.js +97 -0
  79. package/dist/cloudflare/{kv-cache-handler.d.ts → src/cache/kv-data-adapter.runtime.d.ts} +25 -6
  80. package/dist/cloudflare/{kv-cache-handler.js → src/cache/kv-data-adapter.runtime.js} +36 -28
  81. package/dist/cloudflare/src/utils/cache-control-metadata.js +20 -0
  82. package/dist/cloudflare/tpr.d.ts +2 -3
  83. package/dist/cloudflare/tpr.js +8 -8
  84. package/dist/config/config-matchers.d.ts +20 -2
  85. package/dist/config/config-matchers.js +35 -3
  86. package/dist/config/dotenv.d.ts +1 -2
  87. package/dist/config/dotenv.js +0 -2
  88. package/dist/config/next-config.d.ts +32 -5
  89. package/dist/config/next-config.js +53 -6
  90. package/dist/config/tsconfig-paths.d.ts +1 -2
  91. package/dist/config/tsconfig-paths.js +3 -7
  92. package/dist/deploy.d.ts +48 -3
  93. package/dist/deploy.js +180 -415
  94. package/dist/entries/app-browser-entry.d.ts +1 -2
  95. package/dist/entries/app-browser-entry.js +0 -2
  96. package/dist/entries/app-rsc-entry.d.ts +12 -6
  97. package/dist/entries/app-rsc-entry.js +101 -62
  98. package/dist/entries/app-rsc-manifest.d.ts +1 -2
  99. package/dist/entries/app-rsc-manifest.js +40 -9
  100. package/dist/entries/app-ssr-entry.d.ts +1 -2
  101. package/dist/entries/app-ssr-entry.js +0 -2
  102. package/dist/entries/pages-client-entry.d.ts +3 -3
  103. package/dist/entries/pages-client-entry.js +16 -5
  104. package/dist/entries/pages-entry-helpers.d.ts +2 -11
  105. package/dist/entries/pages-entry-helpers.js +1 -20
  106. package/dist/entries/pages-server-entry.d.ts +2 -3
  107. package/dist/entries/pages-server-entry.js +98 -703
  108. package/dist/entries/runtime-entry-module.d.ts +1 -2
  109. package/dist/entries/runtime-entry-module.js +0 -2
  110. package/dist/index.d.ts +22 -2
  111. package/dist/index.js +376 -316
  112. package/dist/init.d.ts +1 -2
  113. package/dist/init.js +1 -3
  114. package/dist/plugins/ast-utils.d.ts +20 -0
  115. package/dist/plugins/ast-utils.js +78 -0
  116. package/dist/plugins/async-hooks-stub.d.ts +1 -2
  117. package/dist/plugins/async-hooks-stub.js +0 -2
  118. package/dist/plugins/client-reference-dedup.d.ts +1 -2
  119. package/dist/plugins/client-reference-dedup.js +4 -8
  120. package/dist/plugins/css-data-url.d.ts +1 -2
  121. package/dist/plugins/css-data-url.js +0 -2
  122. package/dist/plugins/fonts.d.ts +13 -3
  123. package/dist/plugins/fonts.js +19 -13
  124. package/dist/plugins/import-meta-url.d.ts +2 -2
  125. package/dist/plugins/import-meta-url.js +187 -33
  126. package/dist/plugins/instrumentation-client.d.ts +1 -2
  127. package/dist/plugins/instrumentation-client.js +0 -2
  128. package/dist/plugins/middleware-server-only.d.ts +1 -2
  129. package/dist/plugins/middleware-server-only.js +0 -2
  130. package/dist/plugins/og-assets.d.ts +32 -8
  131. package/dist/plugins/og-assets.js +126 -34
  132. package/dist/plugins/optimize-imports.d.ts +1 -2
  133. package/dist/plugins/optimize-imports.js +9 -17
  134. package/dist/plugins/postcss.d.ts +1 -2
  135. package/dist/plugins/postcss.js +18 -16
  136. package/dist/plugins/remove-console.d.ts +1 -2
  137. package/dist/plugins/remove-console.js +0 -2
  138. package/dist/plugins/require-context.d.ts +6 -0
  139. package/dist/plugins/require-context.js +184 -0
  140. package/dist/plugins/rsc-client-reference-loaders.d.ts +1 -2
  141. package/dist/plugins/rsc-client-reference-loaders.js +0 -2
  142. package/dist/plugins/rsc-client-shim-excludes.d.ts +1 -2
  143. package/dist/plugins/rsc-client-shim-excludes.js +0 -2
  144. package/dist/plugins/sass.d.ts +1 -2
  145. package/dist/plugins/sass.js +0 -2
  146. package/dist/plugins/server-externals-manifest.d.ts +1 -2
  147. package/dist/plugins/server-externals-manifest.js +0 -2
  148. package/dist/plugins/strip-server-exports.d.ts +1 -2
  149. package/dist/plugins/strip-server-exports.js +0 -2
  150. package/dist/routing/app-route-graph.d.ts +14 -10
  151. package/dist/routing/app-route-graph.js +146 -35
  152. package/dist/routing/app-router.d.ts +1 -2
  153. package/dist/routing/app-router.js +0 -2
  154. package/dist/routing/file-matcher.d.ts +6 -2
  155. package/dist/routing/file-matcher.js +15 -7
  156. package/dist/routing/pages-router.d.ts +1 -2
  157. package/dist/routing/pages-router.js +0 -2
  158. package/dist/routing/route-matching.d.ts +1 -2
  159. package/dist/routing/route-matching.js +0 -2
  160. package/dist/routing/route-pattern.d.ts +2 -2
  161. package/dist/routing/route-pattern.js +16 -3
  162. package/dist/routing/route-trie.d.ts +1 -2
  163. package/dist/routing/route-trie.js +0 -2
  164. package/dist/routing/route-validation.d.ts +1 -2
  165. package/dist/routing/route-validation.js +0 -2
  166. package/dist/routing/utils.d.ts +44 -2
  167. package/dist/routing/utils.js +62 -3
  168. package/dist/server/api-handler.d.ts +1 -2
  169. package/dist/server/api-handler.js +4 -2
  170. package/dist/server/app-bfcache-id.d.ts +5 -0
  171. package/dist/server/app-bfcache-id.js +5 -0
  172. package/dist/server/app-browser-action-result.d.ts +1 -2
  173. package/dist/server/app-browser-action-result.js +0 -2
  174. package/dist/server/app-browser-client-reuse-manifest.d.ts +12 -0
  175. package/dist/server/app-browser-client-reuse-manifest.js +101 -0
  176. package/dist/server/app-browser-entry.js +244 -88
  177. package/dist/server/app-browser-error.d.ts +1 -2
  178. package/dist/server/app-browser-error.js +0 -2
  179. package/dist/server/app-browser-hydration.d.ts +1 -2
  180. package/dist/server/app-browser-hydration.js +0 -2
  181. package/dist/server/app-browser-interception-context.d.ts +2 -2
  182. package/dist/server/app-browser-interception-context.js +15 -4
  183. package/dist/server/app-browser-mpa-navigation.d.ts +2 -2
  184. package/dist/server/app-browser-mpa-navigation.js +9 -3
  185. package/dist/server/app-browser-navigation-controller.d.ts +15 -4
  186. package/dist/server/app-browser-navigation-controller.js +80 -4
  187. package/dist/server/app-browser-popstate.d.ts +12 -4
  188. package/dist/server/app-browser-popstate.js +19 -6
  189. package/dist/server/app-browser-rsc-redirect.d.ts +1 -2
  190. package/dist/server/app-browser-rsc-redirect.js +0 -2
  191. package/dist/server/app-browser-state.d.ts +31 -4
  192. package/dist/server/app-browser-state.js +196 -10
  193. package/dist/server/app-browser-stream.d.ts +1 -2
  194. package/dist/server/app-browser-stream.js +0 -2
  195. package/dist/server/app-browser-visible-commit.d.ts +2 -3
  196. package/dist/server/app-browser-visible-commit.js +30 -21
  197. package/dist/server/app-client-reference-preloader.d.ts +1 -2
  198. package/dist/server/app-client-reference-preloader.js +0 -2
  199. package/dist/server/app-elements-wire.d.ts +14 -8
  200. package/dist/server/app-elements-wire.js +45 -24
  201. package/dist/server/app-elements.d.ts +2 -3
  202. package/dist/server/app-elements.js +2 -4
  203. package/dist/server/app-fallback-renderer.d.ts +5 -5
  204. package/dist/server/app-fallback-renderer.js +4 -3
  205. package/dist/server/app-history-state.d.ts +62 -2
  206. package/dist/server/app-history-state.js +176 -10
  207. package/dist/server/app-hook-warning-suppression.d.ts +1 -2
  208. package/dist/server/app-hook-warning-suppression.js +0 -2
  209. package/dist/server/app-inline-css-client.d.ts +1 -2
  210. package/dist/server/app-inline-css-client.js +0 -2
  211. package/dist/server/app-interception-context-header.d.ts +1 -2
  212. package/dist/server/app-interception-context-header.js +0 -2
  213. package/dist/server/app-layout-param-observation.d.ts +15 -2
  214. package/dist/server/app-layout-param-observation.js +46 -8
  215. package/dist/server/app-middleware.d.ts +1 -2
  216. package/dist/server/app-middleware.js +0 -2
  217. package/dist/server/app-mounted-slots-header.d.ts +1 -2
  218. package/dist/server/app-mounted-slots-header.js +0 -2
  219. package/dist/server/app-optimistic-routing.d.ts +1 -2
  220. package/dist/server/app-optimistic-routing.js +0 -2
  221. package/dist/server/app-page-boundary-render.d.ts +4 -3
  222. package/dist/server/app-page-boundary-render.js +59 -28
  223. package/dist/server/app-page-boundary.d.ts +11 -2
  224. package/dist/server/app-page-boundary.js +13 -4
  225. package/dist/server/app-page-cache.d.ts +3 -3
  226. package/dist/server/app-page-cache.js +36 -11
  227. package/dist/server/app-page-dispatch.d.ts +25 -5
  228. package/dist/server/app-page-dispatch.js +122 -25
  229. package/dist/server/app-page-element-builder.d.ts +4 -2
  230. package/dist/server/app-page-element-builder.js +31 -21
  231. package/dist/server/app-page-execution.d.ts +8 -3
  232. package/dist/server/app-page-execution.js +55 -24
  233. package/dist/server/app-page-head.d.ts +1 -2
  234. package/dist/server/app-page-head.js +6 -6
  235. package/dist/server/app-page-method.d.ts +1 -2
  236. package/dist/server/app-page-method.js +0 -2
  237. package/dist/server/app-page-params.d.ts +1 -2
  238. package/dist/server/app-page-params.js +0 -2
  239. package/dist/server/app-page-probe.d.ts +79 -2
  240. package/dist/server/app-page-probe.js +89 -9
  241. package/dist/server/app-page-render-identity.d.ts +1 -2
  242. package/dist/server/app-page-render-identity.js +0 -2
  243. package/dist/server/app-page-render-observation.d.ts +1 -2
  244. package/dist/server/app-page-render-observation.js +0 -2
  245. package/dist/server/app-page-render.d.ts +15 -3
  246. package/dist/server/app-page-render.js +171 -12
  247. package/dist/server/app-page-request.d.ts +12 -9
  248. package/dist/server/app-page-request.js +12 -11
  249. package/dist/server/app-page-response.d.ts +4 -4
  250. package/dist/server/app-page-response.js +6 -4
  251. package/dist/server/app-page-route-wiring.d.ts +14 -3
  252. package/dist/server/app-page-route-wiring.js +65 -12
  253. package/dist/server/app-page-search-params-observation.d.ts +10 -0
  254. package/dist/server/app-page-search-params-observation.js +20 -0
  255. package/dist/server/app-page-segment-state.d.ts +1 -2
  256. package/dist/server/app-page-segment-state.js +1 -8
  257. package/dist/server/app-page-stream.d.ts +54 -9
  258. package/dist/server/app-page-stream.js +61 -10
  259. package/dist/server/app-pages-bridge.d.ts +41 -0
  260. package/dist/server/app-pages-bridge.js +54 -0
  261. package/dist/server/app-post-middleware-context.d.ts +1 -2
  262. package/dist/server/app-post-middleware-context.js +0 -2
  263. package/dist/server/app-ppr-fallback-shell.d.ts +21 -0
  264. package/dist/server/app-ppr-fallback-shell.js +82 -0
  265. package/dist/server/app-prerender-endpoints.d.ts +1 -2
  266. package/dist/server/app-prerender-endpoints.js +0 -2
  267. package/dist/server/app-prerender-static-params.d.ts +15 -2
  268. package/dist/server/app-prerender-static-params.js +44 -13
  269. package/dist/server/app-render-dependency.d.ts +3 -2
  270. package/dist/server/app-render-dependency.js +9 -3
  271. package/dist/server/app-request-context.d.ts +1 -2
  272. package/dist/server/app-request-context.js +0 -2
  273. package/dist/server/app-route-handler-cache.d.ts +2 -2
  274. package/dist/server/app-route-handler-cache.js +1 -2
  275. package/dist/server/app-route-handler-dispatch.d.ts +2 -2
  276. package/dist/server/app-route-handler-dispatch.js +2 -2
  277. package/dist/server/app-route-handler-execution.d.ts +2 -2
  278. package/dist/server/app-route-handler-execution.js +3 -4
  279. package/dist/server/app-route-handler-policy.d.ts +1 -2
  280. package/dist/server/app-route-handler-policy.js +0 -2
  281. package/dist/server/app-route-handler-response.d.ts +2 -3
  282. package/dist/server/app-route-handler-response.js +7 -6
  283. package/dist/server/app-route-handler-runtime.d.ts +2 -2
  284. package/dist/server/app-route-handler-runtime.js +3 -4
  285. package/dist/server/app-route-module-loader.d.ts +43 -0
  286. package/dist/server/app-route-module-loader.js +32 -0
  287. package/dist/server/app-router-entry.d.ts +1 -2
  288. package/dist/server/app-router-entry.js +2 -2
  289. package/dist/server/app-rsc-cache-busting.d.ts +10 -2
  290. package/dist/server/app-rsc-cache-busting.js +13 -4
  291. package/dist/server/app-rsc-embedded-chunks.d.ts +1 -2
  292. package/dist/server/app-rsc-embedded-chunks.js +0 -2
  293. package/dist/server/app-rsc-error-handler.d.ts +1 -2
  294. package/dist/server/app-rsc-error-handler.js +0 -2
  295. package/dist/server/app-rsc-errors.d.ts +1 -2
  296. package/dist/server/app-rsc-errors.js +0 -2
  297. package/dist/server/app-rsc-handler.d.ts +17 -2
  298. package/dist/server/app-rsc-handler.js +24 -15
  299. package/dist/server/app-rsc-render-mode.d.ts +1 -2
  300. package/dist/server/app-rsc-render-mode.js +0 -2
  301. package/dist/server/app-rsc-request-normalization.d.ts +4 -5
  302. package/dist/server/app-rsc-request-normalization.js +2 -4
  303. package/dist/server/app-rsc-response-finalizer.d.ts +1 -2
  304. package/dist/server/app-rsc-response-finalizer.js +2 -2
  305. package/dist/server/app-rsc-route-matching.d.ts +20 -2
  306. package/dist/server/app-rsc-route-matching.js +29 -6
  307. package/dist/server/app-segment-config.d.ts +4 -2
  308. package/dist/server/app-segment-config.js +8 -2
  309. package/dist/server/app-server-action-execution.d.ts +18 -3
  310. package/dist/server/app-server-action-execution.js +75 -18
  311. package/dist/server/app-ssr-entry.d.ts +11 -4
  312. package/dist/server/app-ssr-entry.js +47 -15
  313. package/dist/server/app-ssr-error-meta.d.ts +1 -2
  314. package/dist/server/app-ssr-error-meta.js +0 -2
  315. package/dist/server/app-ssr-stream.d.ts +1 -2
  316. package/dist/server/app-ssr-stream.js +31 -3
  317. package/dist/server/app-static-generation.d.ts +1 -2
  318. package/dist/server/app-static-generation.js +0 -2
  319. package/dist/server/app-visited-response-cache.d.ts +23 -0
  320. package/dist/server/app-visited-response-cache.js +19 -0
  321. package/dist/server/artifact-compatibility.d.ts +1 -2
  322. package/dist/server/artifact-compatibility.js +2 -6
  323. package/dist/server/cache-control.d.ts +15 -2
  324. package/dist/server/cache-control.js +21 -3
  325. package/dist/server/cache-headers.d.ts +1 -2
  326. package/dist/server/cache-headers.js +0 -2
  327. package/dist/server/cache-proof.d.ts +1 -2
  328. package/dist/server/cache-proof.js +0 -2
  329. package/dist/server/client-reuse-manifest.d.ts +3 -3
  330. package/dist/server/client-reuse-manifest.js +6 -10
  331. package/dist/server/client-trace-metadata.d.ts +1 -2
  332. package/dist/server/client-trace-metadata.js +0 -2
  333. package/dist/server/cookie-utils.d.ts +1 -2
  334. package/dist/server/cookie-utils.js +0 -2
  335. package/dist/server/csp.d.ts +1 -2
  336. package/dist/server/csp.js +0 -2
  337. package/dist/server/default-global-error-module.d.ts +1 -2
  338. package/dist/server/default-global-error-module.js +0 -2
  339. package/dist/server/default-not-found-module.d.ts +1 -2
  340. package/dist/server/default-not-found-module.js +0 -2
  341. package/dist/server/dev-error-overlay-store.d.ts +20 -4
  342. package/dist/server/dev-error-overlay-store.js +23 -4
  343. package/dist/server/dev-error-overlay.d.ts +39 -3
  344. package/dist/server/dev-error-overlay.js +952 -164
  345. package/dist/server/dev-initial-server-error.d.ts +9 -0
  346. package/dist/server/dev-initial-server-error.js +26 -0
  347. package/dist/server/dev-lockfile.d.ts +1 -2
  348. package/dist/server/dev-lockfile.js +0 -2
  349. package/dist/server/dev-module-runner.d.ts +1 -2
  350. package/dist/server/dev-module-runner.js +0 -2
  351. package/dist/server/dev-origin-check.d.ts +1 -2
  352. package/dist/server/dev-origin-check.js +0 -2
  353. package/dist/server/dev-route-files.d.ts +1 -2
  354. package/dist/server/dev-route-files.js +0 -2
  355. package/dist/server/dev-server.d.ts +3 -4
  356. package/dist/server/dev-server.js +129 -49
  357. package/dist/server/dev-stack-sourcemap-endpoint.d.ts +4 -0
  358. package/dist/server/dev-stack-sourcemap-endpoint.js +4 -0
  359. package/dist/server/dev-stack-sourcemap.d.ts +43 -0
  360. package/dist/server/dev-stack-sourcemap.js +443 -0
  361. package/dist/server/document-initial-head.d.ts +1 -2
  362. package/dist/server/document-initial-head.js +0 -2
  363. package/dist/server/edge-api-runtime.d.ts +1 -2
  364. package/dist/server/edge-api-runtime.js +0 -2
  365. package/dist/server/file-based-metadata.d.ts +1 -2
  366. package/dist/server/file-based-metadata.js +0 -2
  367. package/dist/server/headers.d.ts +3 -2
  368. package/dist/server/headers.js +3 -3
  369. package/dist/server/html.d.ts +1 -2
  370. package/dist/server/html.js +0 -2
  371. package/dist/server/http-error-responses.d.ts +1 -2
  372. package/dist/server/http-error-responses.js +0 -2
  373. package/dist/server/image-optimization.d.ts +1 -2
  374. package/dist/server/image-optimization.js +0 -2
  375. package/dist/server/implicit-tags.d.ts +1 -2
  376. package/dist/server/implicit-tags.js +0 -2
  377. package/dist/server/instrumentation-runtime.d.ts +1 -2
  378. package/dist/server/instrumentation-runtime.js +0 -2
  379. package/dist/server/instrumentation.d.ts +1 -2
  380. package/dist/server/instrumentation.js +0 -2
  381. package/dist/server/isr-cache.d.ts +46 -3
  382. package/dist/server/isr-cache.js +93 -24
  383. package/dist/server/metadata-route-build-data.d.ts +1 -2
  384. package/dist/server/metadata-route-build-data.js +0 -2
  385. package/dist/server/metadata-route-response.d.ts +1 -2
  386. package/dist/server/metadata-route-response.js +0 -2
  387. package/dist/server/metadata-routes.d.ts +1 -2
  388. package/dist/server/metadata-routes.js +0 -2
  389. package/dist/server/middleware-matcher.d.ts +1 -2
  390. package/dist/server/middleware-matcher.js +0 -2
  391. package/dist/server/middleware-request-headers.d.ts +1 -2
  392. package/dist/server/middleware-request-headers.js +0 -2
  393. package/dist/server/middleware-response-headers.d.ts +1 -2
  394. package/dist/server/middleware-response-headers.js +0 -2
  395. package/dist/server/middleware-runtime.d.ts +1 -2
  396. package/dist/server/middleware-runtime.js +14 -5
  397. package/dist/server/middleware.d.ts +2 -3
  398. package/dist/server/middleware.js +0 -2
  399. package/dist/server/navigation-planner.d.ts +16 -2
  400. package/dist/server/navigation-planner.js +6 -6
  401. package/dist/server/navigation-trace.d.ts +1 -2
  402. package/dist/server/navigation-trace.js +0 -2
  403. package/dist/server/next-error-digest.d.ts +1 -2
  404. package/dist/server/next-error-digest.js +0 -2
  405. package/dist/server/normalize-path.d.ts +1 -2
  406. package/dist/server/normalize-path.js +0 -2
  407. package/dist/server/pages-api-route.d.ts +1 -2
  408. package/dist/server/pages-api-route.js +1 -3
  409. package/dist/server/pages-asset-tags.d.ts +66 -0
  410. package/dist/server/pages-asset-tags.js +116 -0
  411. package/dist/server/pages-body-parser-config.d.ts +1 -2
  412. package/dist/server/pages-body-parser-config.js +0 -2
  413. package/dist/server/pages-data-route.d.ts +39 -2
  414. package/dist/server/pages-data-route.js +46 -3
  415. package/dist/server/pages-default-404.d.ts +1 -2
  416. package/dist/server/pages-default-404.js +0 -2
  417. package/dist/server/pages-document-initial-props.d.ts +1 -2
  418. package/dist/server/pages-document-initial-props.js +0 -2
  419. package/dist/server/pages-get-initial-props.d.ts +17 -0
  420. package/dist/server/pages-get-initial-props.js +50 -0
  421. package/dist/server/pages-i18n.d.ts +1 -2
  422. package/dist/server/pages-i18n.js +0 -2
  423. package/dist/server/pages-media-type.d.ts +1 -2
  424. package/dist/server/pages-media-type.js +1 -2
  425. package/dist/server/pages-node-compat.d.ts +11 -2
  426. package/dist/server/pages-node-compat.js +38 -3
  427. package/dist/server/pages-page-data.d.ts +17 -10
  428. package/dist/server/pages-page-data.js +79 -35
  429. package/dist/server/pages-page-handler.d.ts +97 -0
  430. package/dist/server/pages-page-handler.js +348 -0
  431. package/dist/server/pages-page-method.d.ts +1 -2
  432. package/dist/server/pages-page-method.js +0 -2
  433. package/dist/server/pages-page-response.d.ts +11 -3
  434. package/dist/server/pages-page-response.js +16 -5
  435. package/dist/server/pages-readiness.d.ts +36 -0
  436. package/dist/server/pages-readiness.js +21 -0
  437. package/dist/server/pages-request-pipeline.d.ts +99 -0
  438. package/dist/server/pages-request-pipeline.js +209 -0
  439. package/dist/server/pages-revalidate.d.ts +15 -0
  440. package/dist/server/pages-revalidate.js +19 -0
  441. package/dist/server/pages-serializable-props.d.ts +1 -2
  442. package/dist/server/pages-serializable-props.js +0 -2
  443. package/dist/server/pregenerated-concrete-paths.d.ts +32 -0
  444. package/dist/server/pregenerated-concrete-paths.js +78 -0
  445. package/dist/server/prerender-route-params.d.ts +13 -3
  446. package/dist/server/prerender-route-params.js +30 -11
  447. package/dist/server/prerender-work-unit-setup.d.ts +1 -2
  448. package/dist/server/prerender-work-unit-setup.js +0 -2
  449. package/dist/server/prod-server.d.ts +8 -6
  450. package/dist/server/prod-server.js +101 -219
  451. package/dist/server/proxy-trust.d.ts +1 -2
  452. package/dist/server/proxy-trust.js +0 -2
  453. package/dist/server/request-log.d.ts +1 -2
  454. package/dist/server/request-log.js +0 -2
  455. package/dist/server/request-pipeline.d.ts +14 -2
  456. package/dist/server/request-pipeline.js +42 -3
  457. package/dist/server/rsc-stream-hints.d.ts +1 -2
  458. package/dist/server/rsc-stream-hints.js +0 -2
  459. package/dist/server/seed-cache.d.ts +6 -2
  460. package/dist/server/seed-cache.js +10 -8
  461. package/dist/server/server-action-not-found.d.ts +1 -2
  462. package/dist/server/server-action-not-found.js +0 -2
  463. package/dist/server/server-globals.d.ts +1 -2
  464. package/dist/server/server-globals.js +0 -2
  465. package/dist/server/skip-cache-proof.d.ts +1 -2
  466. package/dist/server/skip-cache-proof.js +0 -2
  467. package/dist/server/socket-error-backstop.d.ts +19 -2
  468. package/dist/server/socket-error-backstop.js +77 -6
  469. package/dist/server/static-file-cache.d.ts +1 -2
  470. package/dist/server/static-file-cache.js +0 -2
  471. package/dist/server/static-layout-client-reuse-proof.d.ts +1 -2
  472. package/dist/server/static-layout-client-reuse-proof.js +0 -2
  473. package/dist/server/streaming-metadata.d.ts +1 -2
  474. package/dist/server/streaming-metadata.js +0 -2
  475. package/dist/server/worker-utils.d.ts +1 -2
  476. package/dist/server/worker-utils.js +3 -6
  477. package/dist/shims/amp.d.ts +1 -2
  478. package/dist/shims/amp.js +0 -2
  479. package/dist/shims/app-router-scroll-state.d.ts +1 -2
  480. package/dist/shims/app-router-scroll-state.js +0 -2
  481. package/dist/shims/app-router-scroll.d.ts +3 -5
  482. package/dist/shims/app-router-scroll.js +22 -6
  483. package/dist/shims/app.d.ts +1 -2
  484. package/dist/shims/app.js +0 -2
  485. package/dist/shims/before-interactive-context.d.ts +1 -2
  486. package/dist/shims/before-interactive-context.js +0 -2
  487. package/dist/shims/cache-for-request.d.ts +1 -2
  488. package/dist/shims/cache-for-request.js +0 -2
  489. package/dist/shims/cache-runtime.d.ts +20 -5
  490. package/dist/shims/cache-runtime.js +66 -31
  491. package/dist/shims/cache.d.ts +48 -7
  492. package/dist/shims/cache.js +79 -20
  493. package/dist/shims/cdn-cache.d.ts +125 -0
  494. package/dist/shims/cdn-cache.js +100 -0
  495. package/dist/shims/client-hook-error.d.ts +1 -2
  496. package/dist/shims/client-hook-error.js +0 -2
  497. package/dist/shims/client-locale.d.ts +1 -2
  498. package/dist/shims/client-locale.js +1 -3
  499. package/dist/shims/compat-router.d.ts +1 -2
  500. package/dist/shims/compat-router.js +0 -2
  501. package/dist/shims/config.d.ts +1 -2
  502. package/dist/shims/config.js +0 -2
  503. package/dist/shims/constants.d.ts +1 -2
  504. package/dist/shims/constants.js +0 -2
  505. package/dist/shims/default-global-error.d.ts +3 -4
  506. package/dist/shims/default-global-error.js +0 -2
  507. package/dist/shims/default-not-found.d.ts +1 -2
  508. package/dist/shims/default-not-found.js +0 -2
  509. package/dist/shims/document.d.ts +5 -7
  510. package/dist/shims/document.js +0 -2
  511. package/dist/shims/dynamic.d.ts +1 -2
  512. package/dist/shims/dynamic.js +0 -2
  513. package/dist/shims/error-boundary.d.ts +32 -18
  514. package/dist/shims/error-boundary.js +43 -3
  515. package/dist/shims/error.d.ts +1 -2
  516. package/dist/shims/error.js +0 -2
  517. package/dist/shims/fetch-cache.d.ts +14 -2
  518. package/dist/shims/fetch-cache.js +20 -5
  519. package/dist/shims/font-google-base.d.ts +1 -2
  520. package/dist/shims/font-google-base.js +1 -13
  521. package/dist/shims/font-local.d.ts +1 -2
  522. package/dist/shims/font-local.js +1 -15
  523. package/dist/shims/font-utils.d.ts +7 -2
  524. package/dist/shims/font-utils.js +13 -3
  525. package/dist/shims/form.d.ts +12 -5
  526. package/dist/shims/form.js +98 -21
  527. package/dist/shims/hash-scroll.d.ts +2 -2
  528. package/dist/shims/hash-scroll.js +3 -3
  529. package/dist/shims/head-state.d.ts +1 -2
  530. package/dist/shims/head-state.js +0 -2
  531. package/dist/shims/head.d.ts +1 -2
  532. package/dist/shims/head.js +0 -2
  533. package/dist/shims/headers.d.ts +9 -2
  534. package/dist/shims/headers.js +13 -3
  535. package/dist/shims/i18n-context.d.ts +1 -2
  536. package/dist/shims/i18n-context.js +0 -2
  537. package/dist/shims/i18n-state.d.ts +1 -2
  538. package/dist/shims/i18n-state.js +0 -2
  539. package/dist/shims/image-config.d.ts +1 -2
  540. package/dist/shims/image-config.js +0 -2
  541. package/dist/shims/image.d.ts +1 -2
  542. package/dist/shims/image.js +1 -3
  543. package/dist/shims/internal/als-registry.d.ts +1 -2
  544. package/dist/shims/internal/als-registry.js +0 -2
  545. package/dist/shims/internal/api-utils.d.ts +1 -2
  546. package/dist/shims/internal/app-route-detection.d.ts +1 -2
  547. package/dist/shims/internal/app-route-detection.js +0 -2
  548. package/dist/shims/internal/app-router-context.d.ts +1 -2
  549. package/dist/shims/internal/app-router-context.js +0 -2
  550. package/dist/shims/internal/cookie-serialize.d.ts +1 -2
  551. package/dist/shims/internal/cookie-serialize.js +0 -2
  552. package/dist/shims/internal/link-status-registry.d.ts +43 -0
  553. package/dist/shims/internal/link-status-registry.js +42 -0
  554. package/dist/shims/internal/make-hanging-promise.d.ts +1 -2
  555. package/dist/shims/internal/make-hanging-promise.js +0 -2
  556. package/dist/shims/internal/pages-data-fetch-dedup.d.ts +1 -2
  557. package/dist/shims/internal/pages-data-fetch-dedup.js +0 -2
  558. package/dist/shims/internal/pages-data-target.d.ts +1 -2
  559. package/dist/shims/internal/pages-data-target.js +0 -2
  560. package/dist/shims/internal/pages-data-url.d.ts +1 -2
  561. package/dist/shims/internal/pages-data-url.js +0 -2
  562. package/dist/shims/internal/parse-cookie-header.d.ts +1 -2
  563. package/dist/shims/internal/parse-cookie-header.js +0 -2
  564. package/dist/shims/internal/route-pattern-for-warning.d.ts +27 -0
  565. package/dist/shims/internal/route-pattern-for-warning.js +40 -0
  566. package/dist/shims/internal/router-context.d.ts +2 -4
  567. package/dist/shims/internal/router-context.js +0 -2
  568. package/dist/shims/internal/utils.d.ts +2 -2
  569. package/dist/shims/internal/utils.js +0 -2
  570. package/dist/shims/internal/work-unit-async-storage.d.ts +1 -2
  571. package/dist/shims/internal/work-unit-async-storage.js +0 -2
  572. package/dist/shims/layout-segment-context.d.ts +2 -4
  573. package/dist/shims/layout-segment-context.js +0 -2
  574. package/dist/shims/legacy-image.d.ts +1 -2
  575. package/dist/shims/legacy-image.js +0 -2
  576. package/dist/shims/link-prefetch.d.ts +1 -2
  577. package/dist/shims/link-prefetch.js +0 -2
  578. package/dist/shims/link.d.ts +2 -2
  579. package/dist/shims/link.js +40 -20
  580. package/dist/shims/metadata.d.ts +4 -5
  581. package/dist/shims/metadata.js +1 -3
  582. package/dist/shims/navigation-state.d.ts +1 -2
  583. package/dist/shims/navigation-state.js +0 -2
  584. package/dist/shims/navigation.d.ts +25 -9
  585. package/dist/shims/navigation.js +251 -46
  586. package/dist/shims/navigation.react-server.d.ts +1 -2
  587. package/dist/shims/navigation.react-server.js +0 -2
  588. package/dist/shims/offline.d.ts +1 -2
  589. package/dist/shims/offline.js +0 -2
  590. package/dist/shims/og.d.ts +1 -2
  591. package/dist/shims/og.js +2 -4
  592. package/dist/shims/pages-router-runtime.d.ts +7 -2
  593. package/dist/shims/pages-router-runtime.js +11 -3
  594. package/dist/shims/ppr-fallback-shell.d.ts +29 -0
  595. package/dist/shims/ppr-fallback-shell.js +149 -0
  596. package/dist/shims/readonly-url-search-params.d.ts +1 -2
  597. package/dist/shims/readonly-url-search-params.js +0 -2
  598. package/dist/shims/request-context.d.ts +9 -5
  599. package/dist/shims/request-context.js +0 -2
  600. package/dist/shims/request-state-types.d.ts +1 -1
  601. package/dist/shims/root-params.d.ts +1 -2
  602. package/dist/shims/root-params.js +0 -2
  603. package/dist/shims/router-state.d.ts +2 -2
  604. package/dist/shims/router-state.js +2 -2
  605. package/dist/shims/router.d.ts +6 -4
  606. package/dist/shims/router.js +262 -40
  607. package/dist/shims/script-nonce-context.d.ts +1 -2
  608. package/dist/shims/script-nonce-context.js +0 -2
  609. package/dist/shims/script.d.ts +1 -2
  610. package/dist/shims/script.js +0 -2
  611. package/dist/shims/server.d.ts +1 -2
  612. package/dist/shims/server.js +0 -2
  613. package/dist/shims/slot.d.ts +11 -4
  614. package/dist/shims/slot.js +121 -9
  615. package/dist/shims/thenable-params.d.ts +2 -2
  616. package/dist/shims/thenable-params.js +107 -12
  617. package/dist/shims/unified-request-context.d.ts +1 -2
  618. package/dist/shims/unified-request-context.js +0 -2
  619. package/dist/shims/unrecognized-action-error.d.ts +1 -2
  620. package/dist/shims/unrecognized-action-error.js +0 -2
  621. package/dist/shims/url-safety.d.ts +1 -2
  622. package/dist/shims/url-safety.js +0 -2
  623. package/dist/shims/url-utils.d.ts +1 -2
  624. package/dist/shims/url-utils.js +0 -2
  625. package/dist/shims/use-merged-ref.d.ts +1 -2
  626. package/dist/shims/use-merged-ref.js +0 -2
  627. package/dist/shims/web-vitals.d.ts +1 -2
  628. package/dist/shims/web-vitals.js +0 -2
  629. package/dist/typegen.d.ts +1 -2
  630. package/dist/typegen.js +2 -9
  631. package/dist/utils/asset-prefix.d.ts +1 -2
  632. package/dist/utils/asset-prefix.js +0 -2
  633. package/dist/utils/base-path.d.ts +1 -2
  634. package/dist/utils/base-path.js +0 -2
  635. package/dist/utils/cache-control-metadata.d.ts +1 -4
  636. package/dist/utils/cache-control-metadata.js +1 -3
  637. package/dist/utils/client-build-manifest.d.ts +8 -2
  638. package/dist/utils/client-build-manifest.js +30 -7
  639. package/dist/utils/client-entry-manifest.d.ts +11 -0
  640. package/dist/utils/client-entry-manifest.js +29 -0
  641. package/dist/utils/compare.d.ts +4 -0
  642. package/dist/utils/compare.js +8 -0
  643. package/dist/utils/dev-error-recovery-event.d.ts +4 -0
  644. package/dist/utils/dev-error-recovery-event.js +4 -0
  645. package/dist/utils/domain-locale.d.ts +1 -2
  646. package/dist/utils/domain-locale.js +2 -4
  647. package/dist/utils/encode-cache-tag.d.ts +1 -2
  648. package/dist/utils/encode-cache-tag.js +0 -2
  649. package/dist/utils/error-cause.d.ts +1 -2
  650. package/dist/utils/error-cause.js +0 -2
  651. package/dist/utils/hash.d.ts +1 -2
  652. package/dist/utils/hash.js +0 -2
  653. package/dist/utils/html-limited-bots.d.ts +1 -2
  654. package/dist/utils/html-limited-bots.js +0 -2
  655. package/dist/utils/lazy-chunks.d.ts +1 -2
  656. package/dist/utils/lazy-chunks.js +0 -2
  657. package/dist/utils/manifest-paths.d.ts +8 -3
  658. package/dist/utils/manifest-paths.js +15 -3
  659. package/dist/utils/mdx-scan.d.ts +1 -2
  660. package/dist/utils/mdx-scan.js +0 -2
  661. package/dist/utils/navigation-signal.d.ts +1 -2
  662. package/dist/utils/navigation-signal.js +0 -2
  663. package/dist/utils/number.d.ts +4 -0
  664. package/dist/utils/number.js +6 -0
  665. package/dist/utils/path.d.ts +4 -2
  666. package/dist/utils/path.js +5 -3
  667. package/dist/utils/prerender-output-paths.d.ts +1 -2
  668. package/dist/utils/prerender-output-paths.js +0 -2
  669. package/dist/utils/project.d.ts +1 -2
  670. package/dist/utils/project.js +0 -2
  671. package/dist/utils/promise.d.ts +4 -0
  672. package/dist/utils/promise.js +6 -0
  673. package/dist/utils/public-routes.d.ts +1 -2
  674. package/dist/utils/public-routes.js +0 -2
  675. package/dist/utils/query.d.ts +1 -2
  676. package/dist/utils/query.js +0 -2
  677. package/dist/utils/record.d.ts +1 -2
  678. package/dist/utils/record.js +0 -2
  679. package/dist/utils/regex.d.ts +4 -0
  680. package/dist/utils/regex.js +6 -0
  681. package/dist/utils/safe-json-file.d.ts +1 -2
  682. package/dist/utils/safe-json-file.js +0 -2
  683. package/dist/utils/sorted-array.d.ts +1 -2
  684. package/dist/utils/sorted-array.js +0 -2
  685. package/dist/utils/text-stream.d.ts +1 -2
  686. package/dist/utils/text-stream.js +0 -2
  687. package/dist/utils/vinext-root.d.ts +1 -2
  688. package/dist/utils/vinext-root.js +0 -2
  689. package/dist/utils/vite-version.d.ts +1 -2
  690. package/dist/utils/vite-version.js +0 -2
  691. package/package.json +23 -6
  692. package/dist/build/clean-output.js.map +0 -1
  693. package/dist/build/client-build-config.js.map +0 -1
  694. package/dist/build/google-fonts/build-url.js.map +0 -1
  695. package/dist/build/google-fonts/fallback-metrics-data.js.map +0 -1
  696. package/dist/build/google-fonts/fallback-metrics.js.map +0 -1
  697. package/dist/build/google-fonts/font-data.js.map +0 -1
  698. package/dist/build/google-fonts/font-metadata.js.map +0 -1
  699. package/dist/build/google-fonts/get-axes.js.map +0 -1
  700. package/dist/build/google-fonts/sort-variants.js.map +0 -1
  701. package/dist/build/google-fonts/validate.js.map +0 -1
  702. package/dist/build/inline-css.js.map +0 -1
  703. package/dist/build/layout-classification.js.map +0 -1
  704. package/dist/build/nitro-route-rules.js.map +0 -1
  705. package/dist/build/precompress.js.map +0 -1
  706. package/dist/build/prerender.js.map +0 -1
  707. package/dist/build/report.js.map +0 -1
  708. package/dist/build/route-classification-injector.js.map +0 -1
  709. package/dist/build/route-classification-manifest.js.map +0 -1
  710. package/dist/build/run-prerender.js.map +0 -1
  711. package/dist/build/server-manifest.js.map +0 -1
  712. package/dist/build/ssr-manifest.js.map +0 -1
  713. package/dist/build/standalone.js.map +0 -1
  714. package/dist/build/static-export.js.map +0 -1
  715. package/dist/check.js.map +0 -1
  716. package/dist/cli-args.js.map +0 -1
  717. package/dist/cli.js.map +0 -1
  718. package/dist/client/instrumentation-client-inject.js.map +0 -1
  719. package/dist/client/instrumentation-client-state.js.map +0 -1
  720. package/dist/client/instrumentation-client.js.map +0 -1
  721. package/dist/client/navigation-runtime.js.map +0 -1
  722. package/dist/client/pages-router-link-navigation.js.map +0 -1
  723. package/dist/client/validate-module-path.js.map +0 -1
  724. package/dist/client/vinext-next-data.js.map +0 -1
  725. package/dist/client/window-next.js.map +0 -1
  726. package/dist/cloudflare/kv-cache-handler.js.map +0 -1
  727. package/dist/cloudflare/tpr.js.map +0 -1
  728. package/dist/config/config-matchers.js.map +0 -1
  729. package/dist/config/dotenv.js.map +0 -1
  730. package/dist/config/next-config.js.map +0 -1
  731. package/dist/config/tsconfig-paths.js.map +0 -1
  732. package/dist/deploy.js.map +0 -1
  733. package/dist/entries/app-browser-entry.js.map +0 -1
  734. package/dist/entries/app-rsc-entry.js.map +0 -1
  735. package/dist/entries/app-rsc-manifest.js.map +0 -1
  736. package/dist/entries/app-ssr-entry.js.map +0 -1
  737. package/dist/entries/pages-client-entry.js.map +0 -1
  738. package/dist/entries/pages-entry-helpers.js.map +0 -1
  739. package/dist/entries/pages-server-entry.js.map +0 -1
  740. package/dist/entries/runtime-entry-module.js.map +0 -1
  741. package/dist/index.js.map +0 -1
  742. package/dist/init.js.map +0 -1
  743. package/dist/plugins/async-hooks-stub.js.map +0 -1
  744. package/dist/plugins/client-reference-dedup.js.map +0 -1
  745. package/dist/plugins/css-data-url.js.map +0 -1
  746. package/dist/plugins/fonts.js.map +0 -1
  747. package/dist/plugins/import-meta-url.js.map +0 -1
  748. package/dist/plugins/instrumentation-client.js.map +0 -1
  749. package/dist/plugins/middleware-server-only.js.map +0 -1
  750. package/dist/plugins/og-assets.js.map +0 -1
  751. package/dist/plugins/optimize-imports.js.map +0 -1
  752. package/dist/plugins/postcss.js.map +0 -1
  753. package/dist/plugins/remove-console.js.map +0 -1
  754. package/dist/plugins/rsc-client-reference-loaders.js.map +0 -1
  755. package/dist/plugins/rsc-client-shim-excludes.js.map +0 -1
  756. package/dist/plugins/sass.js.map +0 -1
  757. package/dist/plugins/server-externals-manifest.js.map +0 -1
  758. package/dist/plugins/strip-server-exports.js.map +0 -1
  759. package/dist/routing/app-route-graph.js.map +0 -1
  760. package/dist/routing/app-router.js.map +0 -1
  761. package/dist/routing/file-matcher.js.map +0 -1
  762. package/dist/routing/pages-router.js.map +0 -1
  763. package/dist/routing/route-matching.js.map +0 -1
  764. package/dist/routing/route-pattern.js.map +0 -1
  765. package/dist/routing/route-trie.js.map +0 -1
  766. package/dist/routing/route-validation.js.map +0 -1
  767. package/dist/routing/utils.js.map +0 -1
  768. package/dist/server/api-handler.js.map +0 -1
  769. package/dist/server/app-browser-action-result.js.map +0 -1
  770. package/dist/server/app-browser-entry.js.map +0 -1
  771. package/dist/server/app-browser-error.js.map +0 -1
  772. package/dist/server/app-browser-hydration.js.map +0 -1
  773. package/dist/server/app-browser-interception-context.js.map +0 -1
  774. package/dist/server/app-browser-mpa-navigation.js.map +0 -1
  775. package/dist/server/app-browser-navigation-controller.js.map +0 -1
  776. package/dist/server/app-browser-popstate.js.map +0 -1
  777. package/dist/server/app-browser-rsc-redirect.js.map +0 -1
  778. package/dist/server/app-browser-state.js.map +0 -1
  779. package/dist/server/app-browser-stream.js.map +0 -1
  780. package/dist/server/app-browser-visible-commit.js.map +0 -1
  781. package/dist/server/app-client-reference-preloader.js.map +0 -1
  782. package/dist/server/app-elements-wire.js.map +0 -1
  783. package/dist/server/app-elements.js.map +0 -1
  784. package/dist/server/app-fallback-renderer.js.map +0 -1
  785. package/dist/server/app-history-state.js.map +0 -1
  786. package/dist/server/app-hook-warning-suppression.js.map +0 -1
  787. package/dist/server/app-inline-css-client.js.map +0 -1
  788. package/dist/server/app-interception-context-header.js.map +0 -1
  789. package/dist/server/app-layout-param-observation.js.map +0 -1
  790. package/dist/server/app-middleware.js.map +0 -1
  791. package/dist/server/app-mounted-slots-header.js.map +0 -1
  792. package/dist/server/app-optimistic-routing.js.map +0 -1
  793. package/dist/server/app-page-boundary-render.js.map +0 -1
  794. package/dist/server/app-page-boundary.js.map +0 -1
  795. package/dist/server/app-page-cache.js.map +0 -1
  796. package/dist/server/app-page-dispatch.js.map +0 -1
  797. package/dist/server/app-page-element-builder.js.map +0 -1
  798. package/dist/server/app-page-execution.js.map +0 -1
  799. package/dist/server/app-page-head.js.map +0 -1
  800. package/dist/server/app-page-method.js.map +0 -1
  801. package/dist/server/app-page-params.js.map +0 -1
  802. package/dist/server/app-page-probe.js.map +0 -1
  803. package/dist/server/app-page-render-identity.js.map +0 -1
  804. package/dist/server/app-page-render-observation.js.map +0 -1
  805. package/dist/server/app-page-render.js.map +0 -1
  806. package/dist/server/app-page-request.js.map +0 -1
  807. package/dist/server/app-page-response.js.map +0 -1
  808. package/dist/server/app-page-route-wiring.js.map +0 -1
  809. package/dist/server/app-page-segment-state.js.map +0 -1
  810. package/dist/server/app-page-stream.js.map +0 -1
  811. package/dist/server/app-post-middleware-context.js.map +0 -1
  812. package/dist/server/app-prerender-endpoints.js.map +0 -1
  813. package/dist/server/app-prerender-static-params.js.map +0 -1
  814. package/dist/server/app-render-dependency.js.map +0 -1
  815. package/dist/server/app-request-context.js.map +0 -1
  816. package/dist/server/app-route-handler-cache.js.map +0 -1
  817. package/dist/server/app-route-handler-dispatch.js.map +0 -1
  818. package/dist/server/app-route-handler-execution.js.map +0 -1
  819. package/dist/server/app-route-handler-policy.js.map +0 -1
  820. package/dist/server/app-route-handler-response.js.map +0 -1
  821. package/dist/server/app-route-handler-runtime.js.map +0 -1
  822. package/dist/server/app-router-entry.js.map +0 -1
  823. package/dist/server/app-rsc-cache-busting.js.map +0 -1
  824. package/dist/server/app-rsc-embedded-chunks.js.map +0 -1
  825. package/dist/server/app-rsc-error-handler.js.map +0 -1
  826. package/dist/server/app-rsc-errors.js.map +0 -1
  827. package/dist/server/app-rsc-handler.js.map +0 -1
  828. package/dist/server/app-rsc-render-mode.js.map +0 -1
  829. package/dist/server/app-rsc-request-normalization.js.map +0 -1
  830. package/dist/server/app-rsc-response-finalizer.js.map +0 -1
  831. package/dist/server/app-rsc-route-matching.js.map +0 -1
  832. package/dist/server/app-segment-config.js.map +0 -1
  833. package/dist/server/app-server-action-execution.js.map +0 -1
  834. package/dist/server/app-ssr-entry.js.map +0 -1
  835. package/dist/server/app-ssr-error-meta.js.map +0 -1
  836. package/dist/server/app-ssr-stream.js.map +0 -1
  837. package/dist/server/app-static-generation.js.map +0 -1
  838. package/dist/server/artifact-compatibility.js.map +0 -1
  839. package/dist/server/cache-control.js.map +0 -1
  840. package/dist/server/cache-headers.js.map +0 -1
  841. package/dist/server/cache-proof.js.map +0 -1
  842. package/dist/server/client-reuse-manifest.js.map +0 -1
  843. package/dist/server/client-trace-metadata.js.map +0 -1
  844. package/dist/server/cookie-utils.js.map +0 -1
  845. package/dist/server/csp.js.map +0 -1
  846. package/dist/server/default-global-error-module.js.map +0 -1
  847. package/dist/server/default-not-found-module.js.map +0 -1
  848. package/dist/server/dev-error-overlay-store.js.map +0 -1
  849. package/dist/server/dev-error-overlay.js.map +0 -1
  850. package/dist/server/dev-lockfile.js.map +0 -1
  851. package/dist/server/dev-module-runner.js.map +0 -1
  852. package/dist/server/dev-origin-check.js.map +0 -1
  853. package/dist/server/dev-route-files.js.map +0 -1
  854. package/dist/server/dev-server.js.map +0 -1
  855. package/dist/server/document-initial-head.js.map +0 -1
  856. package/dist/server/edge-api-runtime.js.map +0 -1
  857. package/dist/server/file-based-metadata.js.map +0 -1
  858. package/dist/server/headers.js.map +0 -1
  859. package/dist/server/html.js.map +0 -1
  860. package/dist/server/http-error-responses.js.map +0 -1
  861. package/dist/server/image-optimization.js.map +0 -1
  862. package/dist/server/implicit-tags.js.map +0 -1
  863. package/dist/server/instrumentation-runtime.js.map +0 -1
  864. package/dist/server/instrumentation.js.map +0 -1
  865. package/dist/server/isr-cache.js.map +0 -1
  866. package/dist/server/metadata-route-build-data.js.map +0 -1
  867. package/dist/server/metadata-route-response.js.map +0 -1
  868. package/dist/server/metadata-routes.js.map +0 -1
  869. package/dist/server/middleware-matcher.js.map +0 -1
  870. package/dist/server/middleware-request-headers.js.map +0 -1
  871. package/dist/server/middleware-response-headers.js.map +0 -1
  872. package/dist/server/middleware-runtime.js.map +0 -1
  873. package/dist/server/middleware.js.map +0 -1
  874. package/dist/server/navigation-planner.js.map +0 -1
  875. package/dist/server/navigation-trace.js.map +0 -1
  876. package/dist/server/next-error-digest.js.map +0 -1
  877. package/dist/server/normalize-path.js.map +0 -1
  878. package/dist/server/pages-api-route.js.map +0 -1
  879. package/dist/server/pages-body-parser-config.js.map +0 -1
  880. package/dist/server/pages-data-route.js.map +0 -1
  881. package/dist/server/pages-default-404.js.map +0 -1
  882. package/dist/server/pages-document-initial-props.js.map +0 -1
  883. package/dist/server/pages-i18n.js.map +0 -1
  884. package/dist/server/pages-media-type.js.map +0 -1
  885. package/dist/server/pages-node-compat.js.map +0 -1
  886. package/dist/server/pages-page-data.js.map +0 -1
  887. package/dist/server/pages-page-method.js.map +0 -1
  888. package/dist/server/pages-page-response.js.map +0 -1
  889. package/dist/server/pages-serializable-props.js.map +0 -1
  890. package/dist/server/prerender-route-params.js.map +0 -1
  891. package/dist/server/prerender-work-unit-setup.js.map +0 -1
  892. package/dist/server/prod-server.js.map +0 -1
  893. package/dist/server/proxy-trust.js.map +0 -1
  894. package/dist/server/request-log.js.map +0 -1
  895. package/dist/server/request-pipeline.js.map +0 -1
  896. package/dist/server/rsc-stream-hints.js.map +0 -1
  897. package/dist/server/seed-cache.js.map +0 -1
  898. package/dist/server/server-action-not-found.js.map +0 -1
  899. package/dist/server/server-globals.js.map +0 -1
  900. package/dist/server/skip-cache-proof.js.map +0 -1
  901. package/dist/server/socket-error-backstop.js.map +0 -1
  902. package/dist/server/static-file-cache.js.map +0 -1
  903. package/dist/server/static-layout-client-reuse-proof.js.map +0 -1
  904. package/dist/server/streaming-metadata.js.map +0 -1
  905. package/dist/server/worker-utils.js.map +0 -1
  906. package/dist/shims/amp.js.map +0 -1
  907. package/dist/shims/app-router-scroll-state.js.map +0 -1
  908. package/dist/shims/app-router-scroll.js.map +0 -1
  909. package/dist/shims/app.js.map +0 -1
  910. package/dist/shims/before-interactive-context.js.map +0 -1
  911. package/dist/shims/cache-for-request.js.map +0 -1
  912. package/dist/shims/cache-runtime.js.map +0 -1
  913. package/dist/shims/cache.js.map +0 -1
  914. package/dist/shims/client-hook-error.js.map +0 -1
  915. package/dist/shims/client-locale.js.map +0 -1
  916. package/dist/shims/compat-router.js.map +0 -1
  917. package/dist/shims/config.js.map +0 -1
  918. package/dist/shims/constants.js.map +0 -1
  919. package/dist/shims/default-global-error.js.map +0 -1
  920. package/dist/shims/default-not-found.js.map +0 -1
  921. package/dist/shims/document.js.map +0 -1
  922. package/dist/shims/dynamic.js.map +0 -1
  923. package/dist/shims/error-boundary.js.map +0 -1
  924. package/dist/shims/error.js.map +0 -1
  925. package/dist/shims/fetch-cache.js.map +0 -1
  926. package/dist/shims/font-google-base.js.map +0 -1
  927. package/dist/shims/font-local.js.map +0 -1
  928. package/dist/shims/font-utils.js.map +0 -1
  929. package/dist/shims/form.js.map +0 -1
  930. package/dist/shims/hash-scroll.js.map +0 -1
  931. package/dist/shims/head-state.js.map +0 -1
  932. package/dist/shims/head.js.map +0 -1
  933. package/dist/shims/headers.js.map +0 -1
  934. package/dist/shims/i18n-context.js.map +0 -1
  935. package/dist/shims/i18n-state.js.map +0 -1
  936. package/dist/shims/image-config.js.map +0 -1
  937. package/dist/shims/image.js.map +0 -1
  938. package/dist/shims/internal/als-registry.js.map +0 -1
  939. package/dist/shims/internal/app-route-detection.js.map +0 -1
  940. package/dist/shims/internal/app-router-context.js.map +0 -1
  941. package/dist/shims/internal/cookie-serialize.js.map +0 -1
  942. package/dist/shims/internal/make-hanging-promise.js.map +0 -1
  943. package/dist/shims/internal/pages-data-fetch-dedup.js.map +0 -1
  944. package/dist/shims/internal/pages-data-target.js.map +0 -1
  945. package/dist/shims/internal/pages-data-url.js.map +0 -1
  946. package/dist/shims/internal/parse-cookie-header.js.map +0 -1
  947. package/dist/shims/internal/router-context.js.map +0 -1
  948. package/dist/shims/internal/utils.js.map +0 -1
  949. package/dist/shims/internal/work-unit-async-storage.js.map +0 -1
  950. package/dist/shims/layout-segment-context.js.map +0 -1
  951. package/dist/shims/legacy-image.js.map +0 -1
  952. package/dist/shims/link-prefetch.js.map +0 -1
  953. package/dist/shims/link.js.map +0 -1
  954. package/dist/shims/metadata.js.map +0 -1
  955. package/dist/shims/navigation-state.js.map +0 -1
  956. package/dist/shims/navigation.js.map +0 -1
  957. package/dist/shims/navigation.react-server.js.map +0 -1
  958. package/dist/shims/offline.js.map +0 -1
  959. package/dist/shims/og.js.map +0 -1
  960. package/dist/shims/pages-router-runtime.js.map +0 -1
  961. package/dist/shims/readonly-url-search-params.js.map +0 -1
  962. package/dist/shims/request-context.js.map +0 -1
  963. package/dist/shims/root-params.js.map +0 -1
  964. package/dist/shims/router-state.js.map +0 -1
  965. package/dist/shims/router.js.map +0 -1
  966. package/dist/shims/script-nonce-context.js.map +0 -1
  967. package/dist/shims/script.js.map +0 -1
  968. package/dist/shims/server.js.map +0 -1
  969. package/dist/shims/slot.js.map +0 -1
  970. package/dist/shims/thenable-params.js.map +0 -1
  971. package/dist/shims/unified-request-context.js.map +0 -1
  972. package/dist/shims/unrecognized-action-error.js.map +0 -1
  973. package/dist/shims/url-safety.js.map +0 -1
  974. package/dist/shims/url-utils.js.map +0 -1
  975. package/dist/shims/use-merged-ref.js.map +0 -1
  976. package/dist/shims/web-vitals.js.map +0 -1
  977. package/dist/typegen.js.map +0 -1
  978. package/dist/utils/asset-prefix.js.map +0 -1
  979. package/dist/utils/base-path.js.map +0 -1
  980. package/dist/utils/cache-control-metadata.js.map +0 -1
  981. package/dist/utils/client-build-manifest.js.map +0 -1
  982. package/dist/utils/domain-locale.js.map +0 -1
  983. package/dist/utils/encode-cache-tag.js.map +0 -1
  984. package/dist/utils/error-cause.js.map +0 -1
  985. package/dist/utils/hash.js.map +0 -1
  986. package/dist/utils/html-limited-bots.js.map +0 -1
  987. package/dist/utils/lazy-chunks.js.map +0 -1
  988. package/dist/utils/manifest-paths.js.map +0 -1
  989. package/dist/utils/mdx-scan.js.map +0 -1
  990. package/dist/utils/navigation-signal.js.map +0 -1
  991. package/dist/utils/path.js.map +0 -1
  992. package/dist/utils/prerender-output-paths.js.map +0 -1
  993. package/dist/utils/project.js.map +0 -1
  994. package/dist/utils/public-routes.js.map +0 -1
  995. package/dist/utils/query.js.map +0 -1
  996. package/dist/utils/record.js.map +0 -1
  997. package/dist/utils/safe-json-file.js.map +0 -1
  998. package/dist/utils/sorted-array.js.map +0 -1
  999. package/dist/utils/text-stream.js.map +0 -1
  1000. package/dist/utils/vinext-root.js.map +0 -1
  1001. package/dist/utils/vite-version.js.map +0 -1
@@ -1,4 +1,5 @@
1
1
  import { ValidFileMatcher } from "./file-matcher.js";
2
+ import { isInvisibleSegment } from "./utils.js";
2
3
 
3
4
  //#region src/routing/app-route-graph.d.ts
4
5
  type InterceptingRoute = {
@@ -23,6 +24,11 @@ type InterceptingRoute = {
23
24
  pagePath: string; /** Absolute layout paths inside the intercepting route tree, outermost to innermost */
24
25
  layoutPaths: string[]; /** Parameter names for dynamic segments */
25
26
  params: string[];
27
+ /**
28
+ * Synthetic page-carrier slot id for sibling (slot-less) interception.
29
+ * Set only when the marker has no `@slot` wrapper; undefined for slot intercepts.
30
+ */
31
+ slotId?: string;
26
32
  };
27
33
  type ParallelSlot = {
28
34
  /** Graph-owned semantic slot identity. Required on AppRouteGraphParallelSlot. */id?: string; /** Stable slot identity (name + owning directory), used for route serialization keys. */
@@ -72,7 +78,13 @@ type AppRoute = {
72
78
  routePath: string | null; /** Ordered list of layout files from root to leaf */
73
79
  layouts: string[]; /** Ordered list of all discovered template files from root to leaf (not necessarily aligned 1:1 with layouts) */
74
80
  templates: string[]; /** Parallel route slots (from @slot directories at the route's directory level) */
75
- parallelSlots: ParallelSlot[]; /** Loading component path */
81
+ parallelSlots: ParallelSlot[];
82
+ /**
83
+ * Interception markers not wrapped in an `@slot` directory.
84
+ * On soft-nav, the intercepting page replaces the entire page response.
85
+ * Empty array when there are no sibling-style interception markers.
86
+ */
87
+ siblingIntercepts: InterceptingRoute[]; /** Loading component path */
76
88
  loadingPath: string | null; /** Error component path (leaf directory only) */
77
89
  errorPath: string | null;
78
90
  /**
@@ -264,13 +276,6 @@ declare function buildAppRouteGraph(appDir: string, matcher: ValidFileMatcher):
264
276
  routeManifest: RouteManifest;
265
277
  }>;
266
278
  declare function computeRootParamNames(routeSegments: readonly string[], layoutTreePositions: readonly number[]): string[];
267
- /**
268
- * Check whether a path segment is invisible in the URL (route groups, parallel slots, ".").
269
- *
270
- * Used by computeInterceptTarget, convertSegmentsToRouteParts, and
271
- * hasRemainingVisibleSegments — keep this the single source of truth.
272
- */
273
- declare function isInvisibleSegment(segment: string): boolean;
274
279
  /**
275
280
  * Convert filesystem path segments to URL route parts, skipping invisible segments
276
281
  * (route groups, @slots, ".") and converting dynamic segment syntax to Express-style
@@ -305,5 +310,4 @@ declare function computeAppRouteStaticSiblings(allRoutes: readonly {
305
310
  patternParts?: readonly string[] | null;
306
311
  }): string[];
307
312
  //#endregion
308
- export { AppRoute, AppRouteGraphParallelSlot, AppRouteGraphRoute, AppRouteSemanticIds, GraphVersion, InterceptingRoute, ParallelSlot, RootBoundaryId, RouteManifest, RouteManifestBoundary, RouteManifestBoundaryOutcome, RouteManifestDefault, RouteManifestInterception, RouteManifestLayout, RouteManifestPage, RouteManifestRootBoundary, RouteManifestRoute, RouteManifestRouteHandler, RouteManifestSlot, RouteManifestSlotBinding, RouteManifestSlotBindingState, RouteManifestTemplate, StaticSegmentGraph, buildAppRouteGraph, computeAppRouteStaticSiblings, computeRootParamNames, convertSegmentsToRouteParts, isInvisibleSegment };
309
- //# sourceMappingURL=app-route-graph.d.ts.map
313
+ export { AppRoute, AppRouteGraphRoute, AppRouteSemanticIds, GraphVersion, RootBoundaryId, RouteManifest, RouteManifestInterception, RouteManifestRootBoundary, RouteManifestRoute, RouteManifestSlotBinding, StaticSegmentGraph, buildAppRouteGraph, computeAppRouteStaticSiblings, computeRootParamNames, convertSegmentsToRouteParts, isInvisibleSegment };
@@ -1,6 +1,7 @@
1
- import { compareRoutes, decodeRouteSegment } from "./utils.js";
2
- import { scanWithExtensions } from "./file-matcher.js";
1
+ import { compareRoutes, decodeRouteSegment, isInvisibleSegment } from "./utils.js";
2
+ import { findFileWithExts, scanWithExtensions } from "./file-matcher.js";
3
3
  import { validateRoutePatterns } from "./route-validation.js";
4
+ import { compareStrings } from "../utils/compare.js";
4
5
  import fs from "node:fs";
5
6
  import path from "node:path";
6
7
  import { createHash } from "node:crypto";
@@ -32,17 +33,17 @@ function createAppRouteGraphSlotId(slotName, ownerTreePath) {
32
33
  function createAppRouteGraphDefaultId(slotId) {
33
34
  return `default:${slotId}`;
34
35
  }
36
+ const SIBLING_INTERCEPT_SLOT_NAME = "__vinext_sibling_intercept";
37
+ function createAppRouteGraphSiblingInterceptSlotId(sourcePattern) {
38
+ return createAppRouteGraphSlotId(SIBLING_INTERCEPT_SLOT_NAME, sourcePattern);
39
+ }
35
40
  function createAppRouteGraphInterceptionId(slotId, sourcePattern, targetPattern) {
36
41
  return `interception:${slotId}:${sourcePattern}->${targetPattern}`;
37
42
  }
38
43
  function createAppRouteGraphRootBoundaryId(treePath) {
39
44
  return `root-boundary:${treePath}`;
40
45
  }
41
- function compareStableStrings(left, right) {
42
- if (left < right) return -1;
43
- if (left > right) return 1;
44
- return 0;
45
- }
46
+ const compareStableStrings = compareStrings;
46
47
  function sortedMapValues(map) {
47
48
  return Array.from(map.entries()).sort(([left], [right]) => compareStableStrings(left, right)).map(([, value]) => value);
48
49
  }
@@ -185,6 +186,21 @@ function createStaticSegmentGraph(routes) {
185
186
  slot
186
187
  });
187
188
  }
189
+ for (const ir of route.siblingIntercepts) {
190
+ if (!ir.slotId) continue;
191
+ const id = createAppRouteGraphInterceptionId(ir.slotId, ir.sourceMatchPattern, ir.targetPattern);
192
+ interceptions.set(id, {
193
+ id,
194
+ sourcePattern: ir.sourceMatchPattern,
195
+ sourcePatternParts: splitRouteManifestPatternParts(ir.sourceMatchPattern),
196
+ targetPattern: ir.targetPattern,
197
+ targetPatternParts: splitRouteManifestPatternParts(ir.targetPattern),
198
+ slotId: ir.slotId,
199
+ ownerLayoutId: null,
200
+ interceptingRouteId: routeIdByPattern.get(ir.sourceMatchPattern) ?? null,
201
+ targetRouteId: routeIdByPattern.get(ir.targetPattern) ?? null
202
+ });
203
+ }
188
204
  }
189
205
  return {
190
206
  routes: routeEntries,
@@ -356,9 +372,10 @@ async function buildAppRouteGraph(appDir, matcher) {
356
372
  }
357
373
  const slotSubRoutes = discoverSlotSubRoutes(routes, matcher, ghostParentRoutes);
358
374
  routes.push(...slotSubRoutes);
375
+ discoverSiblingInterceptingRoutes(routes, appDir, matcher);
359
376
  validatePageRouteConflicts(routes, appDir);
360
377
  validateRoutePatterns(routes.map((route) => route.pattern));
361
- validateRoutePatterns([...new Set(routes.flatMap((route) => route.parallelSlots.flatMap((slot) => slot.interceptingRoutes.map((intercept) => intercept.targetPattern))))]);
378
+ validateRoutePatterns([...new Set(routes.flatMap((route) => [...route.parallelSlots.flatMap((slot) => slot.interceptingRoutes.map((intercept) => intercept.targetPattern)), ...route.siblingIntercepts.map((intercept) => intercept.targetPattern)]))]);
362
379
  routes.sort(compareRoutes);
363
380
  return {
364
381
  routes,
@@ -459,6 +476,8 @@ function discoverSlotSubRoutes(routes, matcher, ghostParents = []) {
459
476
  if (subPathMap.size === 0) continue;
460
477
  const childrenDefault = findFile(parentPageDir, "default", matcher);
461
478
  if (parentRoute.pagePath && !childrenDefault) continue;
479
+ const childrenCatchAll = childrenDefault ? null : findCatchAllPage(parentPageDir, matcher);
480
+ const childrenFallback = childrenDefault ?? childrenCatchAll;
462
481
  for (const { rawSegments, converted: convertedSubRoute, slotPages } of subPathMap.values()) {
463
482
  const { urlSegments: urlParts, params: subParams, isDynamic: subIsDynamic } = convertedSubRoute;
464
483
  const subUrlPath = urlParts.join("/");
@@ -482,7 +501,7 @@ function discoverSlotSubRoutes(routes, matcher, ghostParents = []) {
482
501
  const newRoute = {
483
502
  ids: createAppRouteSemanticIds({
484
503
  pattern,
485
- pagePath: childrenDefault,
504
+ pagePath: childrenFallback,
486
505
  routePath: null,
487
506
  routeSegments: [...parentRoute.routeSegments, ...rawSegments],
488
507
  layoutTreePositions: parentRoute.layoutTreePositions,
@@ -490,7 +509,7 @@ function discoverSlotSubRoutes(routes, matcher, ghostParents = []) {
490
509
  slots: subSlots
491
510
  }),
492
511
  pattern,
493
- pagePath: childrenDefault,
512
+ pagePath: childrenFallback,
494
513
  routePath: null,
495
514
  layouts: parentRoute.layouts,
496
515
  templates: parentRoute.templates,
@@ -510,7 +529,8 @@ function discoverSlotSubRoutes(routes, matcher, ghostParents = []) {
510
529
  isDynamic: parentRoute.isDynamic || subIsDynamic,
511
530
  params: [...parentRoute.params, ...subParams],
512
531
  rootParamNames: parentRoute.rootParamNames,
513
- patternParts: [...parentRoute.patternParts, ...urlParts]
532
+ patternParts: [...parentRoute.patternParts, ...urlParts],
533
+ siblingIntercepts: []
514
534
  };
515
535
  syntheticRoutes.push(newRoute);
516
536
  routesByPattern.set(pattern, newRoute);
@@ -552,6 +572,34 @@ function findSlotSubPages(slotDir, matcher) {
552
572
  return results;
553
573
  }
554
574
  /**
575
+ * Find a sibling catch-all page directly under `dir`, i.e. a `[...slug]` or
576
+ * `[[...slug]]` directory that contains a `page` file. Returns the absolute
577
+ * page path, or null when no catch-all sibling exists.
578
+ *
579
+ * Used as the children fallback for slot-only sub-routes (an explicit `@slot`
580
+ * sub-page with no corresponding children page or `default.tsx`): Next.js
581
+ * serves the children prop from the nearest catch-all, so `/baz` renders
582
+ * `[...catchAll]/page.tsx` for children while `@slot/baz/page.tsx` fills the
583
+ * slot. Optional catch-alls (`[[...slug]]`) qualify because they also match a
584
+ * single extra segment.
585
+ */
586
+ function findCatchAllPage(dir, matcher) {
587
+ let entries;
588
+ try {
589
+ entries = fs.readdirSync(dir, { withFileTypes: true });
590
+ } catch {
591
+ return null;
592
+ }
593
+ for (const entry of entries) {
594
+ if (!entry.isDirectory()) continue;
595
+ const name = entry.name;
596
+ if (!(name.startsWith("[...") && name.endsWith("]") || name.startsWith("[[...") && name.endsWith("]]"))) continue;
597
+ const page = findFile(path.join(dir, name), "page", matcher);
598
+ if (page) return page;
599
+ }
600
+ return null;
601
+ }
602
+ /**
555
603
  * Convert a file path relative to app/ into an AppRoute.
556
604
  */
557
605
  function fileToAppRoute(file, appDir, type, matcher) {
@@ -623,7 +671,8 @@ function directoryToAppRoute(dir, appDir, matcher, pagePath, routePath) {
623
671
  isDynamic,
624
672
  params,
625
673
  rootParamNames: computeRootParamNames(segments, layoutTreePositions),
626
- patternParts: urlSegments
674
+ patternParts: urlSegments,
675
+ siblingIntercepts: []
627
676
  };
628
677
  }
629
678
  function dynamicParamNameFromSegment(segment) {
@@ -1065,6 +1114,86 @@ function discoverInterceptingRoutes(slotDir, routeDir, appDir, matcher) {
1065
1114
  return results;
1066
1115
  }
1067
1116
  /**
1117
+ * Discover sibling-style interception markers — interception marker directories
1118
+ * (e.g. `(..)showcase`, `(..)(..)hoge`) that are NOT wrapped inside an `@slot`
1119
+ * directory. Mutates each matching route's `siblingIntercepts` array.
1120
+ *
1121
+ * Sibling intercepts use the same conventions and target-computation logic as
1122
+ * slot intercepts, but their intercepting page replaces the full page response
1123
+ * (not a slot) during soft navigation.
1124
+ */
1125
+ function discoverSiblingInterceptingRoutes(routes, appDir, matcher) {
1126
+ const routesByDir = /* @__PURE__ */ new Map();
1127
+ for (const route of routes) {
1128
+ const filePath = route.pagePath ?? route.routePath;
1129
+ if (!filePath) continue;
1130
+ const routeDir = path.dirname(filePath);
1131
+ if (!routesByDir.has(routeDir)) routesByDir.set(routeDir, route);
1132
+ }
1133
+ function walk(dir) {
1134
+ let entries;
1135
+ try {
1136
+ entries = fs.readdirSync(dir, { withFileTypes: true });
1137
+ } catch {
1138
+ return;
1139
+ }
1140
+ for (const entry of entries) {
1141
+ if (!entry.isDirectory()) continue;
1142
+ if (entry.name.startsWith("_")) continue;
1143
+ if (entry.name.startsWith("@")) continue;
1144
+ const childDir = path.join(dir, entry.name);
1145
+ const marker = matchInterceptConvention(entry.name);
1146
+ if (marker) {
1147
+ const restOfName = entry.name.slice(marker.prefix.length);
1148
+ const parentDir = dir;
1149
+ const results = [];
1150
+ collectInterceptingPages(childDir, childDir, marker.convention, restOfName, parentDir, appDir, parentDir, results, matcher);
1151
+ for (const ir of results) {
1152
+ ir.slotId = createAppRouteGraphSiblingInterceptSlotId(ir.sourceMatchPattern);
1153
+ const owner = findOwnerRouteForDir(parentDir, appDir, routes, routesByDir);
1154
+ if (owner) owner.siblingIntercepts.push(ir);
1155
+ }
1156
+ continue;
1157
+ }
1158
+ walk(childDir);
1159
+ }
1160
+ }
1161
+ walk(appDir);
1162
+ }
1163
+ /**
1164
+ * Find the best route to attach a sibling intercept to, given the directory
1165
+ * that contains the interception marker.
1166
+ *
1167
+ * 1. Exact hit: a route whose page/handler lives directly in `dir`.
1168
+ * 2. Subtree hit: shallowest route whose page lives anywhere under `dir`
1169
+ * (handles catch-all routes like `/templates/:catchAll+`).
1170
+ * 3. Ancestor walk: walk up the directory tree toward `appDir` looking for
1171
+ * any of the above. This handles the case where the marker directory has
1172
+ * no sibling pages at all (e.g. `deep/path/(...)target` with no
1173
+ * `deep/path/page.tsx`).
1174
+ */
1175
+ function findOwnerRouteForDir(dir, appDir, routes, routesByDir) {
1176
+ let current = dir;
1177
+ while (true) {
1178
+ const exact = routesByDir.get(current);
1179
+ if (exact) return exact;
1180
+ const currentWithSep = current + path.sep;
1181
+ let best = null;
1182
+ for (const route of routes) {
1183
+ const filePath = route.pagePath ?? route.routePath;
1184
+ if (!filePath) continue;
1185
+ if (!filePath.startsWith(currentWithSep)) continue;
1186
+ if (!best || route.patternParts.length < best.patternParts.length) best = route;
1187
+ }
1188
+ if (best) return best;
1189
+ if (current === appDir) break;
1190
+ const parent = path.dirname(current);
1191
+ if (parent === current) break;
1192
+ current = parent;
1193
+ }
1194
+ return null;
1195
+ }
1196
+ /**
1068
1197
  * Recursively scan a directory tree for page.tsx files that are inside
1069
1198
  * intercepting route directories.
1070
1199
  */
@@ -1140,18 +1269,6 @@ function computeInterceptSourceMatchPattern(interceptParentDir, appDir) {
1140
1269
  return "/" + urlSegments.join("/");
1141
1270
  }
1142
1271
  /**
1143
- * Check whether a path segment is invisible in the URL (route groups, parallel slots, ".").
1144
- *
1145
- * Used by computeInterceptTarget, convertSegmentsToRouteParts, and
1146
- * hasRemainingVisibleSegments — keep this the single source of truth.
1147
- */
1148
- function isInvisibleSegment(segment) {
1149
- if (segment === ".") return true;
1150
- if (segment.startsWith("(") && segment.endsWith(")")) return true;
1151
- if (segment.startsWith("@")) return true;
1152
- return false;
1153
- }
1154
- /**
1155
1272
  * Compute the target URL pattern for an intercepting route.
1156
1273
  *
1157
1274
  * Interception conventions (..), (..)(..)" climb by *visible route segments*
@@ -1167,9 +1284,11 @@ function computeInterceptTarget(convention, interceptSegment, currentDir, interc
1167
1284
  const routeSegments = path.relative(appDir, routeDir).split(path.sep).filter(Boolean);
1168
1285
  let baseParts;
1169
1286
  switch (convention) {
1170
- case ".":
1171
- baseParts = routeSegments;
1287
+ case ".": {
1288
+ const interceptParentDir = path.dirname(interceptRoot);
1289
+ baseParts = path.relative(appDir, interceptParentDir).split(path.sep).filter(Boolean);
1172
1290
  break;
1291
+ }
1173
1292
  case "..":
1174
1293
  case "../..": {
1175
1294
  const levelsToClimb = convention === ".." ? 1 : 2;
@@ -1229,13 +1348,7 @@ function markerForInterceptionConvention(convention) {
1229
1348
  * Find a file by name (without extension) in a directory.
1230
1349
  * Checks configured pageExtensions.
1231
1350
  */
1232
- function findFile(dir, name, matcher) {
1233
- for (const ext of matcher.dottedExtensions) {
1234
- const filePath = path.join(dir, name + ext);
1235
- if (fs.existsSync(filePath)) return filePath;
1236
- }
1237
- return null;
1238
- }
1351
+ const findFile = findFileWithExts;
1239
1352
  /**
1240
1353
  * Convert filesystem path segments to URL route parts, skipping invisible segments
1241
1354
  * (route groups, @slots, ".") and converting dynamic segment syntax to Express-style
@@ -1334,5 +1447,3 @@ function computeAppRouteStaticSiblings(allRoutes, matchedRoute) {
1334
1447
  }
1335
1448
  //#endregion
1336
1449
  export { buildAppRouteGraph, computeAppRouteStaticSiblings, computeRootParamNames, convertSegmentsToRouteParts, isInvisibleSegment };
1337
-
1338
- //# sourceMappingURL=app-route-graph.js.map
@@ -27,5 +27,4 @@ declare function matchAppRoute(url: string, routes: AppRoute[]): {
27
27
  params: Record<string, string | string[]>;
28
28
  } | null;
29
29
  //#endregion
30
- export { type AppRoute, appRouteGraph, appRouter, computeAppRouteStaticSiblings, computeRootParamNames, convertSegmentsToRouteParts, invalidateAppRouteCache, matchAppRoute };
31
- //# sourceMappingURL=app-router.d.ts.map
30
+ export { type AppRoute, appRouteGraph, appRouter, computeAppRouteStaticSiblings, computeRootParamNames, convertSegmentsToRouteParts, invalidateAppRouteCache, matchAppRoute };
@@ -57,5 +57,3 @@ function matchAppRoute(url, routes) {
57
57
  }
58
58
  //#endregion
59
59
  export { appRouteGraph, appRouter, computeAppRouteStaticSiblings, computeRootParamNames, convertSegmentsToRouteParts, invalidateAppRouteCache, matchAppRoute };
60
-
61
- //# sourceMappingURL=app-router.js.map
@@ -18,6 +18,11 @@ type ValidFileMatcher = {
18
18
  declare function createValidFileMatcher(pageExtensions?: readonly string[] | null): ValidFileMatcher;
19
19
  /** Check if a file exists with any configured page extension. */
20
20
  declare function findFileWithExtensions(basePath: string, matcher: ValidFileMatcher): boolean;
21
+ /**
22
+ * Find a file by basename and configured page extension in a directory.
23
+ * Returns the first matching absolute path, or null if not found.
24
+ */
25
+ declare function findFileWithExts(dir: string, name: string, matcher: ValidFileMatcher): string | null;
21
26
  /**
22
27
  * Vite's default `resolve.extensions` covers `.tsx/.ts/.jsx/.js/.json` (and
23
28
  * `.mjs/.mts`). When the user configures `pageExtensions` with values Vite
@@ -43,5 +48,4 @@ declare function buildViteResolveExtensions(pageExtensions?: readonly string[] |
43
48
  */
44
49
  declare function scanWithExtensions(stem: string, cwd: string, extensions: readonly string[], exclude?: (name: string) => boolean): AsyncGenerator<string>;
45
50
  //#endregion
46
- export { ValidFileMatcher, buildViteResolveExtensions, createValidFileMatcher, findFileWithExtensions, normalizePageExtensions, scanWithExtensions };
47
- //# sourceMappingURL=file-matcher.d.ts.map
51
+ export { ValidFileMatcher, buildViteResolveExtensions, createValidFileMatcher, findFileWithExtensions, findFileWithExts, normalizePageExtensions, scanWithExtensions };
@@ -1,4 +1,6 @@
1
+ import { escapeRegExp } from "../utils/regex.js";
1
2
  import { existsSync } from "node:fs";
3
+ import path from "node:path";
2
4
  import { glob } from "node:fs/promises";
3
5
  //#region src/routing/file-matcher.ts
4
6
  const DEFAULT_PAGE_EXTENSIONS = [
@@ -7,9 +9,6 @@ const DEFAULT_PAGE_EXTENSIONS = [
7
9
  "jsx",
8
10
  "js"
9
11
  ];
10
- function escapeRegex(value) {
11
- return value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
12
- }
13
12
  function normalizePageExtensions(pageExtensions) {
14
13
  if (!Array.isArray(pageExtensions) || pageExtensions.length === 0) return [...DEFAULT_PAGE_EXTENSIONS];
15
14
  const filtered = pageExtensions.filter((ext) => typeof ext === "string").map((ext) => ext.trim().replace(/^\.+/, "")).filter((ext) => ext.length > 0);
@@ -26,7 +25,7 @@ function buildExtensionGlob(stem, extensions) {
26
25
  function createValidFileMatcher(pageExtensions) {
27
26
  const extensions = normalizePageExtensions(pageExtensions);
28
27
  const dottedExtensions = extensions.map((ext) => `.${ext}`);
29
- const extPattern = `(?:${extensions.map((ext) => escapeRegex(ext)).join("|")})`;
28
+ const extPattern = `(?:${extensions.map((ext) => escapeRegExp(ext)).join("|")})`;
30
29
  const extensionRegex = new RegExp(`\\.${extPattern}$`);
31
30
  const createLeafPattern = (fileNames) => {
32
31
  const names = fileNames.length === 1 ? fileNames[0] : `(${fileNames.join("|")})`;
@@ -65,6 +64,17 @@ function findFileWithExtensions(basePath, matcher) {
65
64
  return matcher.dottedExtensions.some((ext) => existsSync(basePath + ext));
66
65
  }
67
66
  /**
67
+ * Find a file by basename and configured page extension in a directory.
68
+ * Returns the first matching absolute path, or null if not found.
69
+ */
70
+ function findFileWithExts(dir, name, matcher) {
71
+ for (const ext of matcher.dottedExtensions) {
72
+ const filePath = path.join(dir, name + ext);
73
+ if (existsSync(filePath)) return filePath;
74
+ }
75
+ return null;
76
+ }
77
+ /**
68
78
  * Vite's default `resolve.extensions` covers `.tsx/.ts/.jsx/.js/.json` (and
69
79
  * `.mjs/.mts`). When the user configures `pageExtensions` with values Vite
70
80
  * does not know about — e.g. `["platform.tsx", "tsx", "mdx"]` from the
@@ -113,6 +123,4 @@ async function* scanWithExtensions(stem, cwd, extensions, exclude) {
113
123
  })) yield file;
114
124
  }
115
125
  //#endregion
116
- export { buildViteResolveExtensions, createValidFileMatcher, findFileWithExtensions, normalizePageExtensions, scanWithExtensions };
117
-
118
- //# sourceMappingURL=file-matcher.js.map
126
+ export { buildViteResolveExtensions, createValidFileMatcher, findFileWithExtensions, findFileWithExts, normalizePageExtensions, scanWithExtensions };
@@ -45,5 +45,4 @@ declare function matchRoute(url: string, routes: Route[]): {
45
45
  */
46
46
  declare function apiRouter(pagesDir: string, pageExtensions?: readonly string[], matcher?: ValidFileMatcher): Promise<Route[]>;
47
47
  //#endregion
48
- export { Route, apiRouter, invalidateRouteCache, matchRoute, pagesRouter, patternToNextFormat };
49
- //# sourceMappingURL=pages-router.d.ts.map
48
+ export { Route, apiRouter, invalidateRouteCache, matchRoute, pagesRouter, patternToNextFormat };
@@ -161,5 +161,3 @@ async function scanApiRoutes(pagesDir, matcher) {
161
161
  }
162
162
  //#endregion
163
163
  export { apiRouter, invalidateRouteCache, matchRoute, pagesRouter, patternToNextFormat };
164
-
165
- //# sourceMappingURL=pages-router.js.map
@@ -24,5 +24,4 @@ declare function matchRouteWithTrie<R extends {
24
24
  params: Record<string, string | string[]>;
25
25
  } | null;
26
26
  //#endregion
27
- export { createRouteTrieCache, matchRouteWithTrie };
28
- //# sourceMappingURL=route-matching.d.ts.map
27
+ export { createRouteTrieCache, matchRouteWithTrie };
@@ -40,5 +40,3 @@ function matchRouteWithTrie(url, routes, cache) {
40
40
  }
41
41
  //#endregion
42
42
  export { createRouteTrieCache, matchRouteWithTrie };
43
-
44
- //# sourceMappingURL=route-matching.js.map
@@ -5,6 +5,7 @@ declare function routePattern(pathname: string): string;
5
5
  declare function fillRoutePatternSegments(pathname: string, params: RoutePatternParams): string | null;
6
6
  declare function matchRoutePattern(urlParts: readonly string[], patternParts: readonly string[]): RoutePatternParams | null;
7
7
  declare function matchRoutePatternPrefix(pathParts: readonly string[], patternParts: readonly string[]): boolean;
8
+ declare function matchRoutePatternWithOptionalDynamicSegments(pathParts: readonly string[], patternParts: readonly string[]): boolean;
8
9
  /**
9
10
  * A single entry from `getStaticPaths().paths`.
10
11
  *
@@ -60,5 +61,4 @@ declare function normalizeStaticPathname(pathname: string): string;
60
61
  */
61
62
  declare function normalizeStaticPathsEntry(entry: StaticPathsEntry, routePattern: string): NormalizedStaticPathsEntry;
62
63
  //#endregion
63
- export { RoutePatternParams, StaticPathsEntry, fillRoutePatternSegments, matchRoutePattern, matchRoutePatternPrefix, normalizeStaticPathname, normalizeStaticPathsEntry, routePattern, routePatternParts };
64
- //# sourceMappingURL=route-pattern.d.ts.map
64
+ export { RoutePatternParams, StaticPathsEntry, fillRoutePatternSegments, matchRoutePattern, matchRoutePatternPrefix, matchRoutePatternWithOptionalDynamicSegments, normalizeStaticPathname, normalizeStaticPathsEntry, routePattern, routePatternParts };
@@ -104,6 +104,21 @@ function matchRoutePatternPrefix(pathParts, patternParts) {
104
104
  }
105
105
  return true;
106
106
  }
107
+ function matchRoutePatternWithOptionalDynamicSegments(pathParts, patternParts) {
108
+ function matchFrom(pathIndex, patternIndex) {
109
+ if (patternIndex === patternParts.length) return pathIndex === pathParts.length;
110
+ const patternPart = patternParts[patternIndex];
111
+ if (patternPart.startsWith(":") && (patternPart.endsWith("+") || patternPart.endsWith("*"))) {
112
+ const minLength = patternPart.endsWith("+") ? 1 : 0;
113
+ for (let endIndex = pathIndex + minLength; endIndex <= pathParts.length; endIndex++) if (matchFrom(endIndex, patternIndex + 1)) return true;
114
+ return false;
115
+ }
116
+ if (patternPart.startsWith(":")) return matchFrom(pathIndex, patternIndex + 1) || pathIndex < pathParts.length && matchFrom(pathIndex + 1, patternIndex + 1);
117
+ if (pathIndex >= pathParts.length || pathParts[pathIndex] !== patternPart) return false;
118
+ return matchFrom(pathIndex + 1, patternIndex + 1);
119
+ }
120
+ return matchFrom(0, 0);
121
+ }
107
122
  /**
108
123
  * Strip query string and a single trailing slash from a pathname.
109
124
  *
@@ -147,6 +162,4 @@ function normalizeStaticPathsEntry(entry, routePattern) {
147
162
  return { params };
148
163
  }
149
164
  //#endregion
150
- export { fillRoutePatternSegments, matchRoutePattern, matchRoutePatternPrefix, normalizeStaticPathname, normalizeStaticPathsEntry, routePattern, routePatternParts };
151
-
152
- //# sourceMappingURL=route-pattern.js.map
165
+ export { fillRoutePatternSegments, matchRoutePattern, matchRoutePatternPrefix, matchRoutePatternWithOptionalDynamicSegments, normalizeStaticPathname, normalizeStaticPathsEntry, routePattern, routePatternParts };
@@ -64,5 +64,4 @@ declare function trieMatch<R>(root: TrieNode<R>, urlParts: string[]): {
64
64
  params: Record<string, string | string[]>;
65
65
  } | null;
66
66
  //#endregion
67
- export { TrieNode, buildRouteTrie, trieMatch };
68
- //# sourceMappingURL=route-trie.d.ts.map
67
+ export { TrieNode, buildRouteTrie, trieMatch };
@@ -141,5 +141,3 @@ function match(node, urlParts, index, entries) {
141
141
  }
142
142
  //#endregion
143
143
  export { buildRouteTrie, trieMatch };
144
-
145
- //# sourceMappingURL=route-trie.js.map
@@ -7,5 +7,4 @@
7
7
  declare function patternToNextFormat(pattern: string): string;
8
8
  declare function validateRoutePatterns(patterns: readonly string[]): void;
9
9
  //#endregion
10
- export { patternToNextFormat, validateRoutePatterns };
11
- //# sourceMappingURL=route-validation.d.ts.map
10
+ export { patternToNextFormat, validateRoutePatterns };
@@ -99,5 +99,3 @@ function validateRoutePatterns(patterns) {
99
99
  }
100
100
  //#endregion
101
101
  export { patternToNextFormat, validateRoutePatterns };
102
-
103
- //# sourceMappingURL=route-validation.js.map
@@ -41,6 +41,48 @@ declare function buildParams(entries: Array<[string, string | string[]]>): Recor
41
41
  * strict normalization layer rejects them at the request boundary).
42
42
  */
43
43
  declare function decodeMatchedParams(params: Record<string, string | string[]>): void;
44
+ /**
45
+ * Check whether a path segment is invisible in the URL (route groups, parallel
46
+ * slots, "."). Single source of truth shared by the route graph (Node) and
47
+ * browser-side bfcache identity logic. Lives in this browser-safe utils module
48
+ * so importing it does not drag node:path/node:fs into the client bundle.
49
+ */
50
+ declare function isInvisibleSegment(segment: string): boolean;
51
+ /** Split a pathname into its non-empty segments without decoding. */
52
+ declare function splitPathSegments(pathname: string): string[];
53
+ /**
54
+ * Catch-all filesystem segment, e.g. `[...slug]`. Browser-safe predicate shared
55
+ * with the route graph's segment parsing (dynamicParamNameFromSegment) so the
56
+ * bracket conventions live in one place. The length guard rejects empty names
57
+ * (`[...]`).
58
+ */
59
+ declare function isCatchAllSegment(segment: string): boolean;
60
+ /**
61
+ * Optional-catch-all filesystem segment, e.g. `[[...slug]]`. Unlike a catch-all,
62
+ * this matches zero or more URL segments.
63
+ */
64
+ declare function isOptionalCatchAllSegment(segment: string): boolean;
65
+ /**
66
+ * Count how many pathname segments a tree path's *visible* segments consume,
67
+ * given the total number of pathname segments available.
68
+ *
69
+ * This is the minimal pure slice of the canonical filesystem-segment →
70
+ * URL-segment mapping in `app-route-graph.ts` (`convertSegmentsToRouteParts`),
71
+ * extracted here so browser-side bfcache identity logic can share it without
72
+ * importing the Node-bound route graph module. `convertSegmentsToRouteParts`
73
+ * remains the source of truth for how each segment kind maps to a URL part.
74
+ *
75
+ * Each ordinary visible segment (static or `[x]`) consumes exactly one pathname
76
+ * segment. A catch-all (`[...x]`) is terminal and consumes every remaining
77
+ * pathname segment. An optional-catch-all (`[[...x]]`) is also terminal but may
78
+ * match zero segments, so it consumes only the remaining pathname segments
79
+ * (which is zero once preceding segments have already consumed the pathname) —
80
+ * never more than are actually present.
81
+ *
82
+ * @param visibleTreePathSegments URL-visible tree-path segments (callers must
83
+ * pre-filter invisible segments via `isInvisibleSegment`).
84
+ * @param pathnameSegmentCount Total number of pathname segments available.
85
+ */
86
+ declare function countConsumedPathnameSegments(visibleTreePathSegments: readonly string[], pathnameSegmentCount: number): number;
44
87
  //#endregion
45
- export { buildParams, compareRoutes, decodeMatchedParams, decodeRouteSegment, normalizePathnameForRouteMatch, normalizePathnameForRouteMatchStrict, splitPathnameForRouteMatch };
46
- //# sourceMappingURL=utils.d.ts.map
88
+ export { buildParams, compareRoutes, countConsumedPathnameSegments, decodeMatchedParams, decodeRouteSegment, isCatchAllSegment, isInvisibleSegment, isOptionalCatchAllSegment, normalizePathnameForRouteMatch, normalizePathnameForRouteMatchStrict, splitPathSegments, splitPathnameForRouteMatch };
@@ -125,7 +125,66 @@ function decodeMatchedParams(params) {
125
125
  else params[key] = decodeMatchedParam(value);
126
126
  }
127
127
  }
128
+ /**
129
+ * Check whether a path segment is invisible in the URL (route groups, parallel
130
+ * slots, "."). Single source of truth shared by the route graph (Node) and
131
+ * browser-side bfcache identity logic. Lives in this browser-safe utils module
132
+ * so importing it does not drag node:path/node:fs into the client bundle.
133
+ */
134
+ function isInvisibleSegment(segment) {
135
+ if (segment === ".") return true;
136
+ if (segment.startsWith("(") && segment.endsWith(")")) return true;
137
+ if (segment.startsWith("@")) return true;
138
+ return false;
139
+ }
140
+ /** Split a pathname into its non-empty segments without decoding. */
141
+ function splitPathSegments(pathname) {
142
+ return pathname.split("/").filter(Boolean);
143
+ }
144
+ /**
145
+ * Catch-all filesystem segment, e.g. `[...slug]`. Browser-safe predicate shared
146
+ * with the route graph's segment parsing (dynamicParamNameFromSegment) so the
147
+ * bracket conventions live in one place. The length guard rejects empty names
148
+ * (`[...]`).
149
+ */
150
+ function isCatchAllSegment(segment) {
151
+ return segment.startsWith("[...") && segment.endsWith("]") && segment.length > 5;
152
+ }
153
+ /**
154
+ * Optional-catch-all filesystem segment, e.g. `[[...slug]]`. Unlike a catch-all,
155
+ * this matches zero or more URL segments.
156
+ */
157
+ function isOptionalCatchAllSegment(segment) {
158
+ return segment.startsWith("[[...") && segment.endsWith("]]") && segment.length > 7;
159
+ }
160
+ /**
161
+ * Count how many pathname segments a tree path's *visible* segments consume,
162
+ * given the total number of pathname segments available.
163
+ *
164
+ * This is the minimal pure slice of the canonical filesystem-segment →
165
+ * URL-segment mapping in `app-route-graph.ts` (`convertSegmentsToRouteParts`),
166
+ * extracted here so browser-side bfcache identity logic can share it without
167
+ * importing the Node-bound route graph module. `convertSegmentsToRouteParts`
168
+ * remains the source of truth for how each segment kind maps to a URL part.
169
+ *
170
+ * Each ordinary visible segment (static or `[x]`) consumes exactly one pathname
171
+ * segment. A catch-all (`[...x]`) is terminal and consumes every remaining
172
+ * pathname segment. An optional-catch-all (`[[...x]]`) is also terminal but may
173
+ * match zero segments, so it consumes only the remaining pathname segments
174
+ * (which is zero once preceding segments have already consumed the pathname) —
175
+ * never more than are actually present.
176
+ *
177
+ * @param visibleTreePathSegments URL-visible tree-path segments (callers must
178
+ * pre-filter invisible segments via `isInvisibleSegment`).
179
+ * @param pathnameSegmentCount Total number of pathname segments available.
180
+ */
181
+ function countConsumedPathnameSegments(visibleTreePathSegments, pathnameSegmentCount) {
182
+ let consumed = 0;
183
+ for (const segment of visibleTreePathSegments) {
184
+ if (isCatchAllSegment(segment) || isOptionalCatchAllSegment(segment)) return Math.max(consumed, pathnameSegmentCount);
185
+ consumed += 1;
186
+ }
187
+ return consumed;
188
+ }
128
189
  //#endregion
129
- export { buildParams, compareRoutes, decodeMatchedParams, decodeRouteSegment, normalizePathnameForRouteMatch, normalizePathnameForRouteMatchStrict, splitPathnameForRouteMatch };
130
-
131
- //# sourceMappingURL=utils.js.map
190
+ export { buildParams, compareRoutes, countConsumedPathnameSegments, decodeMatchedParams, decodeRouteSegment, isCatchAllSegment, isInvisibleSegment, isOptionalCatchAllSegment, normalizePathnameForRouteMatch, normalizePathnameForRouteMatchStrict, splitPathSegments, splitPathnameForRouteMatch };
@@ -9,5 +9,4 @@ import { IncomingMessage, ServerResponse } from "node:http";
9
9
  */
10
10
  declare function handleApiRoute(runner: ModuleImporter, req: IncomingMessage, res: ServerResponse, url: string, apiRoutes: Route[]): Promise<boolean>;
11
11
  //#endregion
12
- export { handleApiRoute };
13
- //# sourceMappingURL=api-handler.d.ts.map
12
+ export { handleApiRoute };