vinext 0.0.51 → 0.0.53

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 (423) hide show
  1. package/README.md +1 -1
  2. package/dist/build/clean-output.d.ts +14 -0
  3. package/dist/build/clean-output.js +36 -0
  4. package/dist/build/clean-output.js.map +1 -0
  5. package/dist/build/precompress.d.ts +7 -7
  6. package/dist/build/precompress.js +18 -17
  7. package/dist/build/precompress.js.map +1 -1
  8. package/dist/build/prerender.d.ts +9 -16
  9. package/dist/build/prerender.js +88 -50
  10. package/dist/build/prerender.js.map +1 -1
  11. package/dist/build/run-prerender.js +10 -1
  12. package/dist/build/run-prerender.js.map +1 -1
  13. package/dist/build/static-export.d.ts +5 -0
  14. package/dist/build/static-export.js +8 -3
  15. package/dist/build/static-export.js.map +1 -1
  16. package/dist/check.js +4 -0
  17. package/dist/check.js.map +1 -1
  18. package/dist/cli-args.d.ts +1 -0
  19. package/dist/cli-args.js +5 -0
  20. package/dist/cli-args.js.map +1 -1
  21. package/dist/cli.js +58 -4
  22. package/dist/cli.js.map +1 -1
  23. package/dist/client/instrumentation-client-inject.d.ts +34 -0
  24. package/dist/client/instrumentation-client-inject.js +57 -0
  25. package/dist/client/instrumentation-client-inject.js.map +1 -0
  26. package/dist/client/navigation-runtime.d.ts +60 -0
  27. package/dist/client/navigation-runtime.js +171 -0
  28. package/dist/client/navigation-runtime.js.map +1 -0
  29. package/dist/client/pages-router-link-navigation.d.ts +26 -0
  30. package/dist/client/pages-router-link-navigation.js +14 -0
  31. package/dist/client/pages-router-link-navigation.js.map +1 -0
  32. package/dist/client/vinext-next-data.d.ts +14 -3
  33. package/dist/client/vinext-next-data.js +50 -1
  34. package/dist/client/vinext-next-data.js.map +1 -0
  35. package/dist/client/window-next.d.ts +10 -2
  36. package/dist/client/window-next.js.map +1 -1
  37. package/dist/cloudflare/kv-cache-handler.js +2 -1
  38. package/dist/cloudflare/kv-cache-handler.js.map +1 -1
  39. package/dist/cloudflare/tpr.js +1 -1
  40. package/dist/cloudflare/tpr.js.map +1 -1
  41. package/dist/config/config-matchers.d.ts +63 -16
  42. package/dist/config/config-matchers.js +145 -9
  43. package/dist/config/config-matchers.js.map +1 -1
  44. package/dist/config/next-config.d.ts +32 -5
  45. package/dist/config/next-config.js +55 -15
  46. package/dist/config/next-config.js.map +1 -1
  47. package/dist/deploy.js +130 -46
  48. package/dist/deploy.js.map +1 -1
  49. package/dist/entries/app-browser-entry.js +9 -3
  50. package/dist/entries/app-browser-entry.js.map +1 -1
  51. package/dist/entries/app-rsc-entry.d.ts +4 -2
  52. package/dist/entries/app-rsc-entry.js +76 -16
  53. package/dist/entries/app-rsc-entry.js.map +1 -1
  54. package/dist/entries/app-rsc-manifest.d.ts +1 -0
  55. package/dist/entries/app-rsc-manifest.js +53 -6
  56. package/dist/entries/app-rsc-manifest.js.map +1 -1
  57. package/dist/entries/app-ssr-entry.d.ts +3 -3
  58. package/dist/entries/app-ssr-entry.js +4 -4
  59. package/dist/entries/app-ssr-entry.js.map +1 -1
  60. package/dist/entries/pages-client-entry.js +40 -3
  61. package/dist/entries/pages-client-entry.js.map +1 -1
  62. package/dist/entries/pages-server-entry.js +261 -31
  63. package/dist/entries/pages-server-entry.js.map +1 -1
  64. package/dist/entries/runtime-entry-module.d.ts +2 -1
  65. package/dist/entries/runtime-entry-module.js +9 -3
  66. package/dist/entries/runtime-entry-module.js.map +1 -1
  67. package/dist/index.js +161 -46
  68. package/dist/index.js.map +1 -1
  69. package/dist/plugins/css-data-url.d.ts +7 -0
  70. package/dist/plugins/css-data-url.js +81 -0
  71. package/dist/plugins/css-data-url.js.map +1 -0
  72. package/dist/plugins/fonts.js +30 -5
  73. package/dist/plugins/fonts.js.map +1 -1
  74. package/dist/plugins/middleware-server-only.d.ts +54 -0
  75. package/dist/plugins/middleware-server-only.js +91 -0
  76. package/dist/plugins/middleware-server-only.js.map +1 -0
  77. package/dist/plugins/optimize-imports.js +4 -4
  78. package/dist/plugins/optimize-imports.js.map +1 -1
  79. package/dist/plugins/strip-server-exports.js +5 -8
  80. package/dist/plugins/strip-server-exports.js.map +1 -1
  81. package/dist/routing/app-route-graph.d.ts +20 -1
  82. package/dist/routing/app-route-graph.js +58 -6
  83. package/dist/routing/app-route-graph.js.map +1 -1
  84. package/dist/routing/app-router.d.ts +2 -2
  85. package/dist/routing/app-router.js +2 -2
  86. package/dist/routing/app-router.js.map +1 -1
  87. package/dist/routing/route-trie.js +13 -18
  88. package/dist/routing/route-trie.js.map +1 -1
  89. package/dist/routing/utils.d.ts +12 -1
  90. package/dist/routing/utils.js +18 -1
  91. package/dist/routing/utils.js.map +1 -1
  92. package/dist/server/api-handler.js +153 -42
  93. package/dist/server/api-handler.js.map +1 -1
  94. package/dist/server/app-browser-action-result.d.ts +16 -1
  95. package/dist/server/app-browser-action-result.js +15 -1
  96. package/dist/server/app-browser-action-result.js.map +1 -1
  97. package/dist/server/app-browser-entry.js +309 -155
  98. package/dist/server/app-browser-entry.js.map +1 -1
  99. package/dist/server/app-browser-interception-context.d.ts +24 -0
  100. package/dist/server/app-browser-interception-context.js +32 -0
  101. package/dist/server/app-browser-interception-context.js.map +1 -0
  102. package/dist/server/app-browser-navigation-controller.d.ts +3 -1
  103. package/dist/server/app-browser-navigation-controller.js +5 -1
  104. package/dist/server/app-browser-navigation-controller.js.map +1 -1
  105. package/dist/server/app-browser-rsc-redirect.d.ts +2 -1
  106. package/dist/server/app-browser-rsc-redirect.js +2 -2
  107. package/dist/server/app-browser-rsc-redirect.js.map +1 -1
  108. package/dist/server/app-browser-state.d.ts +18 -1
  109. package/dist/server/app-browser-state.js +19 -1
  110. package/dist/server/app-browser-state.js.map +1 -1
  111. package/dist/server/app-browser-stream.d.ts +5 -14
  112. package/dist/server/app-browser-stream.js +13 -7
  113. package/dist/server/app-browser-stream.js.map +1 -1
  114. package/dist/server/app-browser-visible-commit.d.ts +2 -1
  115. package/dist/server/app-browser-visible-commit.js +1 -0
  116. package/dist/server/app-browser-visible-commit.js.map +1 -1
  117. package/dist/server/app-elements-wire.d.ts +10 -5
  118. package/dist/server/app-elements-wire.js +84 -2
  119. package/dist/server/app-elements-wire.js.map +1 -1
  120. package/dist/server/app-elements.d.ts +3 -2
  121. package/dist/server/app-elements.js +3 -2
  122. package/dist/server/app-elements.js.map +1 -1
  123. package/dist/server/app-fallback-renderer.d.ts +12 -3
  124. package/dist/server/app-fallback-renderer.js +15 -8
  125. package/dist/server/app-fallback-renderer.js.map +1 -1
  126. package/dist/server/app-history-state.js +6 -2
  127. package/dist/server/app-history-state.js.map +1 -1
  128. package/dist/server/app-interception-context-header.d.ts +33 -0
  129. package/dist/server/app-interception-context-header.js +44 -0
  130. package/dist/server/app-interception-context-header.js.map +1 -0
  131. package/dist/server/app-middleware.d.ts +13 -0
  132. package/dist/server/app-middleware.js +3 -1
  133. package/dist/server/app-middleware.js.map +1 -1
  134. package/dist/server/app-mounted-slots-header.d.ts +19 -0
  135. package/dist/server/app-mounted-slots-header.js +40 -1
  136. package/dist/server/app-mounted-slots-header.js.map +1 -1
  137. package/dist/server/app-optimistic-routing.d.ts +54 -0
  138. package/dist/server/app-optimistic-routing.js +208 -0
  139. package/dist/server/app-optimistic-routing.js.map +1 -0
  140. package/dist/server/app-page-boundary-render.d.ts +1 -0
  141. package/dist/server/app-page-boundary-render.js +2 -0
  142. package/dist/server/app-page-boundary-render.js.map +1 -1
  143. package/dist/server/app-page-boundary.d.ts +1 -0
  144. package/dist/server/app-page-boundary.js +2 -0
  145. package/dist/server/app-page-boundary.js.map +1 -1
  146. package/dist/server/app-page-cache.d.ts +15 -1
  147. package/dist/server/app-page-cache.js +68 -7
  148. package/dist/server/app-page-cache.js.map +1 -1
  149. package/dist/server/app-page-dispatch.d.ts +5 -0
  150. package/dist/server/app-page-dispatch.js +39 -5
  151. package/dist/server/app-page-dispatch.js.map +1 -1
  152. package/dist/server/app-page-element-builder.d.ts +2 -1
  153. package/dist/server/app-page-element-builder.js +7 -3
  154. package/dist/server/app-page-element-builder.js.map +1 -1
  155. package/dist/server/app-page-execution.d.ts +29 -1
  156. package/dist/server/app-page-execution.js +91 -4
  157. package/dist/server/app-page-execution.js.map +1 -1
  158. package/dist/server/app-page-head.d.ts +1 -0
  159. package/dist/server/app-page-head.js +29 -2
  160. package/dist/server/app-page-head.js.map +1 -1
  161. package/dist/server/app-page-probe.js +1 -1
  162. package/dist/server/app-page-render-observation.js +1 -1
  163. package/dist/server/app-page-render.d.ts +3 -0
  164. package/dist/server/app-page-render.js +7 -3
  165. package/dist/server/app-page-render.js.map +1 -1
  166. package/dist/server/app-page-response.d.ts +11 -1
  167. package/dist/server/app-page-response.js +18 -5
  168. package/dist/server/app-page-response.js.map +1 -1
  169. package/dist/server/app-page-route-wiring.d.ts +1 -0
  170. package/dist/server/app-page-route-wiring.js +35 -15
  171. package/dist/server/app-page-route-wiring.js.map +1 -1
  172. package/dist/server/app-page-stream.d.ts +4 -0
  173. package/dist/server/app-page-stream.js +3 -0
  174. package/dist/server/app-page-stream.js.map +1 -1
  175. package/dist/server/app-prerender-static-params.d.ts +2 -1
  176. package/dist/server/app-prerender-static-params.js +44 -8
  177. package/dist/server/app-prerender-static-params.js.map +1 -1
  178. package/dist/server/app-route-handler-cache.d.ts +2 -2
  179. package/dist/server/app-route-handler-cache.js +3 -2
  180. package/dist/server/app-route-handler-cache.js.map +1 -1
  181. package/dist/server/app-route-handler-dispatch.d.ts +7 -1
  182. package/dist/server/app-route-handler-dispatch.js +4 -1
  183. package/dist/server/app-route-handler-dispatch.js.map +1 -1
  184. package/dist/server/app-route-handler-execution.d.ts +18 -2
  185. package/dist/server/app-route-handler-execution.js +1 -0
  186. package/dist/server/app-route-handler-execution.js.map +1 -1
  187. package/dist/server/app-route-handler-response.js +6 -5
  188. package/dist/server/app-route-handler-response.js.map +1 -1
  189. package/dist/server/app-router-entry.js +6 -2
  190. package/dist/server/app-router-entry.js.map +1 -1
  191. package/dist/server/app-rsc-handler.d.ts +11 -1
  192. package/dist/server/app-rsc-handler.js +48 -21
  193. package/dist/server/app-rsc-handler.js.map +1 -1
  194. package/dist/server/app-rsc-render-mode.d.ts +4 -3
  195. package/dist/server/app-rsc-render-mode.js +7 -1
  196. package/dist/server/app-rsc-render-mode.js.map +1 -1
  197. package/dist/server/app-rsc-request-normalization.d.ts +4 -1
  198. package/dist/server/app-rsc-request-normalization.js +6 -2
  199. package/dist/server/app-rsc-request-normalization.js.map +1 -1
  200. package/dist/server/app-rsc-response-finalizer.d.ts +8 -1
  201. package/dist/server/app-rsc-response-finalizer.js +10 -3
  202. package/dist/server/app-rsc-response-finalizer.js.map +1 -1
  203. package/dist/server/app-rsc-route-matching.js +2 -2
  204. package/dist/server/app-rsc-route-matching.js.map +1 -1
  205. package/dist/server/app-segment-config.d.ts +4 -1
  206. package/dist/server/app-segment-config.js +6 -1
  207. package/dist/server/app-segment-config.js.map +1 -1
  208. package/dist/server/app-server-action-execution.d.ts +1 -0
  209. package/dist/server/app-server-action-execution.js +5 -1
  210. package/dist/server/app-server-action-execution.js.map +1 -1
  211. package/dist/server/app-ssr-entry.d.ts +2 -0
  212. package/dist/server/app-ssr-entry.js +92 -55
  213. package/dist/server/app-ssr-entry.js.map +1 -1
  214. package/dist/server/app-ssr-stream.d.ts +30 -2
  215. package/dist/server/app-ssr-stream.js +95 -8
  216. package/dist/server/app-ssr-stream.js.map +1 -1
  217. package/dist/server/app-static-generation.d.ts +1 -0
  218. package/dist/server/app-static-generation.js +2 -1
  219. package/dist/server/app-static-generation.js.map +1 -1
  220. package/dist/server/artifact-compatibility.d.ts +1 -1
  221. package/dist/server/artifact-compatibility.js.map +1 -1
  222. package/dist/server/cache-headers.d.ts +7 -0
  223. package/dist/server/cache-headers.js +19 -0
  224. package/dist/server/cache-headers.js.map +1 -0
  225. package/dist/server/cache-proof.d.ts +49 -3
  226. package/dist/server/cache-proof.js +78 -22
  227. package/dist/server/cache-proof.js.map +1 -1
  228. package/dist/server/client-reuse-manifest.d.ts +99 -0
  229. package/dist/server/client-reuse-manifest.js +212 -0
  230. package/dist/server/client-reuse-manifest.js.map +1 -0
  231. package/dist/server/default-global-error-module.d.ts +20 -0
  232. package/dist/server/default-global-error-module.js +20 -0
  233. package/dist/server/default-global-error-module.js.map +1 -0
  234. package/dist/server/default-not-found-module.d.ts +20 -0
  235. package/dist/server/default-not-found-module.js +20 -0
  236. package/dist/server/default-not-found-module.js.map +1 -0
  237. package/dist/server/dev-server.d.ts +10 -2
  238. package/dist/server/dev-server.js +99 -36
  239. package/dist/server/dev-server.js.map +1 -1
  240. package/dist/server/edge-api-runtime.d.ts +5 -0
  241. package/dist/server/edge-api-runtime.js +8 -0
  242. package/dist/server/edge-api-runtime.js.map +1 -0
  243. package/dist/server/headers.d.ts +22 -1
  244. package/dist/server/headers.js +22 -1
  245. package/dist/server/headers.js.map +1 -1
  246. package/dist/server/http-error-responses.d.ts +16 -1
  247. package/dist/server/http-error-responses.js +21 -1
  248. package/dist/server/http-error-responses.js.map +1 -1
  249. package/dist/server/image-optimization.d.ts +13 -4
  250. package/dist/server/image-optimization.js +15 -4
  251. package/dist/server/image-optimization.js.map +1 -1
  252. package/dist/server/isr-cache.d.ts +6 -2
  253. package/dist/server/isr-cache.js +20 -4
  254. package/dist/server/isr-cache.js.map +1 -1
  255. package/dist/server/middleware-runtime.d.ts +15 -0
  256. package/dist/server/middleware-runtime.js +59 -7
  257. package/dist/server/middleware-runtime.js.map +1 -1
  258. package/dist/server/middleware.d.ts +1 -1
  259. package/dist/server/middleware.js +5 -3
  260. package/dist/server/middleware.js.map +1 -1
  261. package/dist/server/navigation-planner.d.ts +9 -3
  262. package/dist/server/navigation-planner.js +98 -25
  263. package/dist/server/navigation-planner.js.map +1 -1
  264. package/dist/server/navigation-trace.d.ts +2 -1
  265. package/dist/server/navigation-trace.js +1 -0
  266. package/dist/server/navigation-trace.js.map +1 -1
  267. package/dist/server/pages-api-route.d.ts +45 -1
  268. package/dist/server/pages-api-route.js +27 -4
  269. package/dist/server/pages-api-route.js.map +1 -1
  270. package/dist/server/pages-body-parser-config.d.ts +60 -0
  271. package/dist/server/pages-body-parser-config.js +79 -0
  272. package/dist/server/pages-body-parser-config.js.map +1 -0
  273. package/dist/server/pages-data-route.d.ts +77 -0
  274. package/dist/server/pages-data-route.js +98 -0
  275. package/dist/server/pages-data-route.js.map +1 -0
  276. package/dist/server/pages-default-404.d.ts +31 -0
  277. package/dist/server/pages-default-404.js +40 -0
  278. package/dist/server/pages-default-404.js.map +1 -0
  279. package/dist/server/pages-i18n.d.ts +51 -1
  280. package/dist/server/pages-i18n.js +61 -1
  281. package/dist/server/pages-i18n.js.map +1 -1
  282. package/dist/server/pages-node-compat.d.ts +10 -0
  283. package/dist/server/pages-node-compat.js +12 -1
  284. package/dist/server/pages-node-compat.js.map +1 -1
  285. package/dist/server/pages-page-data.d.ts +69 -2
  286. package/dist/server/pages-page-data.js +47 -31
  287. package/dist/server/pages-page-data.js.map +1 -1
  288. package/dist/server/pages-page-response.d.ts +13 -1
  289. package/dist/server/pages-page-response.js +16 -11
  290. package/dist/server/pages-page-response.js.map +1 -1
  291. package/dist/server/prerender-route-params.d.ts +14 -0
  292. package/dist/server/prerender-route-params.js +94 -0
  293. package/dist/server/prerender-route-params.js.map +1 -0
  294. package/dist/server/prod-server.d.ts +15 -37
  295. package/dist/server/prod-server.js +143 -107
  296. package/dist/server/prod-server.js.map +1 -1
  297. package/dist/server/proxy-trust.d.ts +41 -0
  298. package/dist/server/proxy-trust.js +70 -0
  299. package/dist/server/proxy-trust.js.map +1 -0
  300. package/dist/server/request-pipeline.d.ts +13 -4
  301. package/dist/server/request-pipeline.js +32 -14
  302. package/dist/server/request-pipeline.js.map +1 -1
  303. package/dist/server/seed-cache.d.ts +12 -31
  304. package/dist/server/seed-cache.js +30 -37
  305. package/dist/server/seed-cache.js.map +1 -1
  306. package/dist/server/server-action-not-found.js +8 -3
  307. package/dist/server/server-action-not-found.js.map +1 -1
  308. package/dist/server/skip-cache-proof.d.ts +41 -0
  309. package/dist/server/skip-cache-proof.js +101 -0
  310. package/dist/server/skip-cache-proof.js.map +1 -0
  311. package/dist/server/static-file-cache.d.ts +1 -1
  312. package/dist/server/static-file-cache.js +8 -7
  313. package/dist/server/static-file-cache.js.map +1 -1
  314. package/dist/server/streaming-metadata.d.ts +5 -0
  315. package/dist/server/streaming-metadata.js +10 -0
  316. package/dist/server/streaming-metadata.js.map +1 -0
  317. package/dist/shims/app-router-scroll-state.d.ts +12 -0
  318. package/dist/shims/app-router-scroll-state.js +38 -0
  319. package/dist/shims/app-router-scroll-state.js.map +1 -0
  320. package/dist/shims/app-router-scroll.d.ts +14 -0
  321. package/dist/shims/app-router-scroll.js +100 -0
  322. package/dist/shims/app-router-scroll.js.map +1 -0
  323. package/dist/shims/before-interactive-context.d.ts +30 -0
  324. package/dist/shims/before-interactive-context.js +10 -0
  325. package/dist/shims/before-interactive-context.js.map +1 -0
  326. package/dist/shims/cache-runtime.d.ts +1 -1
  327. package/dist/shims/cache-runtime.js +14 -1
  328. package/dist/shims/cache-runtime.js.map +1 -1
  329. package/dist/shims/client-locale.d.ts +15 -0
  330. package/dist/shims/client-locale.js +13 -0
  331. package/dist/shims/client-locale.js.map +1 -0
  332. package/dist/shims/default-global-error.d.ts +32 -0
  333. package/dist/shims/default-global-error.js +181 -0
  334. package/dist/shims/default-global-error.js.map +1 -0
  335. package/dist/shims/default-not-found.d.ts +12 -0
  336. package/dist/shims/default-not-found.js +61 -0
  337. package/dist/shims/default-not-found.js.map +1 -0
  338. package/dist/shims/document.d.ts +59 -3
  339. package/dist/shims/document.js +36 -5
  340. package/dist/shims/document.js.map +1 -1
  341. package/dist/shims/error-boundary.d.ts +2 -2
  342. package/dist/shims/font-local.d.ts +5 -0
  343. package/dist/shims/font-local.js +6 -2
  344. package/dist/shims/font-local.js.map +1 -1
  345. package/dist/shims/form.js +13 -6
  346. package/dist/shims/form.js.map +1 -1
  347. package/dist/shims/head.js +4 -4
  348. package/dist/shims/head.js.map +1 -1
  349. package/dist/shims/headers.d.ts +6 -2
  350. package/dist/shims/headers.js +64 -21
  351. package/dist/shims/headers.js.map +1 -1
  352. package/dist/shims/image.d.ts +1 -1
  353. package/dist/shims/image.js +4 -4
  354. package/dist/shims/image.js.map +1 -1
  355. package/dist/shims/internal/pages-data-target.d.ts +58 -0
  356. package/dist/shims/internal/pages-data-target.js +91 -0
  357. package/dist/shims/internal/pages-data-target.js.map +1 -0
  358. package/dist/shims/internal/pages-data-url.d.ts +42 -0
  359. package/dist/shims/internal/pages-data-url.js +73 -0
  360. package/dist/shims/internal/pages-data-url.js.map +1 -0
  361. package/dist/shims/link.d.ts +21 -3
  362. package/dist/shims/link.js +189 -30
  363. package/dist/shims/link.js.map +1 -1
  364. package/dist/shims/metadata.d.ts +2 -1
  365. package/dist/shims/metadata.js +65 -6
  366. package/dist/shims/metadata.js.map +1 -1
  367. package/dist/shims/navigation.d.ts +8 -2
  368. package/dist/shims/navigation.js +67 -23
  369. package/dist/shims/navigation.js.map +1 -1
  370. package/dist/shims/og.d.ts +18 -2
  371. package/dist/shims/og.js +49 -1
  372. package/dist/shims/og.js.map +1 -0
  373. package/dist/shims/request-state-types.d.ts +1 -1
  374. package/dist/shims/root-params.d.ts +3 -1
  375. package/dist/shims/root-params.js +11 -3
  376. package/dist/shims/root-params.js.map +1 -1
  377. package/dist/shims/router-state.d.ts +1 -0
  378. package/dist/shims/router-state.js.map +1 -1
  379. package/dist/shims/router.d.ts +12 -5
  380. package/dist/shims/router.js +535 -86
  381. package/dist/shims/router.js.map +1 -1
  382. package/dist/shims/script.js +86 -12
  383. package/dist/shims/script.js.map +1 -1
  384. package/dist/shims/server.d.ts +21 -4
  385. package/dist/shims/server.js +30 -9
  386. package/dist/shims/server.js.map +1 -1
  387. package/dist/shims/slot.js +5 -1
  388. package/dist/shims/slot.js.map +1 -1
  389. package/dist/shims/unified-request-context.d.ts +1 -1
  390. package/dist/shims/url-safety.d.ts +23 -1
  391. package/dist/shims/url-safety.js +29 -2
  392. package/dist/shims/url-safety.js.map +1 -1
  393. package/dist/shims/url-utils.d.ts +2 -1
  394. package/dist/shims/url-utils.js +15 -4
  395. package/dist/shims/url-utils.js.map +1 -1
  396. package/dist/typegen.d.ts +10 -0
  397. package/dist/typegen.js +242 -0
  398. package/dist/typegen.js.map +1 -0
  399. package/dist/utils/asset-prefix.d.ts +33 -5
  400. package/dist/utils/asset-prefix.js +39 -6
  401. package/dist/utils/asset-prefix.js.map +1 -1
  402. package/dist/utils/cache-control-metadata.d.ts +2 -1
  403. package/dist/utils/cache-control-metadata.js +1 -3
  404. package/dist/utils/cache-control-metadata.js.map +1 -1
  405. package/dist/utils/domain-locale.d.ts +2 -1
  406. package/dist/utils/domain-locale.js +9 -1
  407. package/dist/utils/domain-locale.js.map +1 -1
  408. package/dist/utils/html-limited-bots.d.ts +5 -0
  409. package/dist/utils/html-limited-bots.js +15 -0
  410. package/dist/utils/html-limited-bots.js.map +1 -0
  411. package/dist/utils/lazy-chunks.d.ts +1 -1
  412. package/dist/utils/lazy-chunks.js +1 -1
  413. package/dist/utils/lazy-chunks.js.map +1 -1
  414. package/dist/utils/prerender-output-paths.d.ts +15 -0
  415. package/dist/utils/prerender-output-paths.js +24 -0
  416. package/dist/utils/prerender-output-paths.js.map +1 -0
  417. package/dist/utils/query.d.ts +23 -1
  418. package/dist/utils/query.js +46 -2
  419. package/dist/utils/query.js.map +1 -1
  420. package/dist/utils/record.d.ts +5 -0
  421. package/dist/utils/record.js +8 -0
  422. package/dist/utils/record.js.map +1 -0
  423. package/package.json +11 -3
@@ -2,14 +2,14 @@ import { createRequestContext, runWithRequestContext } from "../shims/unified-re
2
2
  import { createValidFileMatcher, findFileWithExtensions } from "../routing/file-matcher.js";
3
3
  import { patternToNextFormat } from "../routing/route-validation.js";
4
4
  import { matchRoute } from "../routing/pages-router.js";
5
- import { VINEXT_CACHE_HEADER } from "./headers.js";
5
+ import { mergeRouteParamsIntoQuery, parseQueryString } from "../utils/query.js";
6
6
  import { normalizeStaticPathname } from "../routing/route-pattern.js";
7
7
  import { importModule, reportRequestError } from "./instrumentation.js";
8
+ import { buildCacheStateHeaders } from "./cache-headers.js";
8
9
  import { _runWithCacheState } from "../shims/cache.js";
9
10
  import { buildPagesCacheValue, getRevalidateDuration, isrCacheKey, isrGet, isrSet, setRevalidateDuration, triggerBackgroundRegeneration } from "./isr-cache.js";
10
11
  import { runWithPrivateCache } from "../shims/cache-runtime.js";
11
12
  import { ensureFetchPatch, runWithFetchCache } from "../shims/fetch-cache.js";
12
- import { mergeRouteParamsIntoQuery, parseQueryString } from "../utils/query.js";
13
13
  import "../shims/router-state.js";
14
14
  import { runWithHeadState } from "../shims/head-state.js";
15
15
  import { runWithServerInsertedHTMLState } from "../shims/navigation-state.js";
@@ -18,6 +18,7 @@ import { createInlineScriptTag, createNonceAttribute, safeJsonStringify } from "
18
18
  import { getScriptNonceFromNodeHeaderSources } from "./csp.js";
19
19
  import { logRequest, now } from "./request-log.js";
20
20
  import { detectLocaleFromAcceptLanguage, extractLocaleFromUrl as extractLocaleFromUrl$1, parseCookieLocaleFromHeader, resolvePagesI18nRequest } from "./pages-i18n.js";
21
+ import { buildDefaultPagesNotFoundResponse } from "./pages-default-404.js";
21
22
  import path from "node:path";
22
23
  import React from "react";
23
24
  import { renderToReadableStream } from "react-dom/server.edge";
@@ -132,11 +133,11 @@ function parseCookieLocale(req, i18nConfig) {
132
133
  * 4. Render the component to HTML
133
134
  * 5. Wrap in _document shell and send response
134
135
  */
135
- function createSSRHandler(server, runner, routes, pagesDir, i18nConfig, fileMatcher, basePath = "", trailingSlash = false) {
136
+ function createSSRHandler(server, runner, routes, pagesDir, i18nConfig, fileMatcher, basePath = "", trailingSlash = false, hasMiddleware = false) {
136
137
  const matcher = fileMatcher ?? createValidFileMatcher();
137
138
  const _alsRegistration = Promise.all([runner.import("vinext/head-state"), runner.import("vinext/router-state")]);
138
139
  _alsRegistration.catch(() => {});
139
- return async (req, res, url, statusCode) => {
140
+ return async (req, res, url, statusCode, isDataReq = false) => {
140
141
  const _reqStart = now();
141
142
  let _compileEnd;
142
143
  let _renderEnd;
@@ -170,10 +171,16 @@ function createSSRHandler(server, runner, routes, pagesDir, i18nConfig, fileMatc
170
171
  }
171
172
  const match = matchRoute(localeStrippedUrl, routes);
172
173
  if (!match) {
174
+ if (isDataReq) {
175
+ res.writeHead(404, { "Content-Type": "application/json" });
176
+ res.end("{}");
177
+ return;
178
+ }
173
179
  await renderErrorPage(server, runner, req, res, url, pagesDir, 404, void 0, matcher);
174
180
  return;
175
181
  }
176
182
  const { route, params } = match;
183
+ const userFacingParams = route.isDynamic ? params : null;
177
184
  const query = mergeRouteParamsIntoQuery(parseQueryString(url), params);
178
185
  return runWithRequestContext(createRequestContext(), async () => {
179
186
  ensureFetchPatch();
@@ -211,34 +218,53 @@ function createSSRHandler(server, runner, routes, pagesDir, i18nConfig, fileMatc
211
218
  }
212
219
  let pageProps = {};
213
220
  let isrRevalidateSeconds = null;
221
+ let isFallbackRender = false;
214
222
  if (typeof pageModule.getStaticPaths === "function" && route.isDynamic) {
215
223
  const pathsResult = await pageModule.getStaticPaths({
216
224
  locales: i18nConfig?.locales ?? [],
217
225
  defaultLocale: currentDefaultLocale ?? ""
218
226
  });
219
- if ((pathsResult?.fallback ?? false) === false) {
220
- const paths = pathsResult?.paths ?? [];
221
- const currentPathname = normalizeStaticPathname(url);
222
- if (!paths.some((p) => {
223
- if (typeof p === "string") return normalizeStaticPathname(p) === currentPathname;
224
- const entryParams = p.params;
225
- if (entryParams === void 0 || entryParams === null) return false;
226
- return Object.entries(entryParams).every(([key, val]) => {
227
- const actual = params[key];
228
- if (Array.isArray(val)) return Array.isArray(actual) && val.join("/") === actual.join("/");
229
- return String(val) === String(actual);
230
- });
231
- })) {
232
- await renderErrorPage(server, runner, req, res, url, pagesDir, 404, routerShim.wrapWithRouterContext, matcher);
227
+ const fallback = pathsResult?.fallback ?? false;
228
+ const paths = pathsResult?.paths ?? [];
229
+ const currentPathname = normalizeStaticPathname(url);
230
+ const isValidPath = paths.some((p) => {
231
+ if (typeof p === "string") return normalizeStaticPathname(p) === currentPathname;
232
+ const entryParams = p.params;
233
+ if (entryParams === void 0 || entryParams === null) return false;
234
+ return Object.entries(entryParams).every(([key, val]) => {
235
+ const actual = params[key];
236
+ if (Array.isArray(val)) return Array.isArray(actual) && val.join("/") === actual.join("/");
237
+ return String(val) === String(actual);
238
+ });
239
+ });
240
+ if (fallback === false && !isValidPath) {
241
+ if (isDataReq) {
242
+ res.writeHead(404, { "Content-Type": "application/json" });
243
+ res.end("{}");
233
244
  return;
234
245
  }
246
+ await renderErrorPage(server, runner, req, res, url, pagesDir, 404, routerShim.wrapWithRouterContext, matcher);
247
+ return;
248
+ }
249
+ if (fallback === true && !isValidPath && !isDataReq) {
250
+ isFallbackRender = true;
251
+ if (typeof routerShim.setSSRContext === "function") routerShim.setSSRContext({
252
+ pathname: patternToNextFormat(route.pattern),
253
+ query,
254
+ asPath: url,
255
+ locale: locale ?? currentDefaultLocale,
256
+ locales: i18nConfig?.locales,
257
+ defaultLocale: currentDefaultLocale,
258
+ domainLocales,
259
+ isFallback: true
260
+ });
235
261
  }
236
262
  }
237
263
  const gsspExtraHeaders = {};
238
- if (typeof pageModule.getServerSideProps === "function") {
264
+ if (typeof pageModule.getServerSideProps === "function" && !isFallbackRender) {
239
265
  const headersBeforeGSSP = new Set(Object.keys(res.getHeaders()));
240
266
  const context = {
241
- params,
267
+ params: userFacingParams,
242
268
  req,
243
269
  res,
244
270
  query,
@@ -249,7 +275,7 @@ function createSSRHandler(server, runner, routes, pagesDir, i18nConfig, fileMatc
249
275
  };
250
276
  const result = await pageModule.getServerSideProps(context);
251
277
  if (res.writableEnded) return;
252
- if (result && "props" in result) pageProps = result.props;
278
+ if (result && "props" in result) pageProps = await Promise.resolve(result.props);
253
279
  if (result && "redirect" in result) {
254
280
  const { redirect } = result;
255
281
  const status = redirect.statusCode ?? (redirect.permanent ? 308 : 307);
@@ -260,6 +286,11 @@ function createSSRHandler(server, runner, routes, pagesDir, i18nConfig, fileMatc
260
286
  return;
261
287
  }
262
288
  if (result && "notFound" in result && result.notFound) {
289
+ if (isDataReq) {
290
+ res.writeHead(404, { "Content-Type": "application/json" });
291
+ res.end("{}");
292
+ return;
293
+ }
263
294
  await renderErrorPage(server, runner, req, res, url, pagesDir, 404, routerShim.wrapWithRouterContext);
264
295
  return;
265
296
  }
@@ -271,6 +302,7 @@ function createSSRHandler(server, runner, routes, pagesDir, i18nConfig, fileMatc
271
302
  if (Array.isArray(val)) gsspExtraHeaders[key] = val.map(String);
272
303
  else gsspExtraHeaders[key] = String(val);
273
304
  }
305
+ if (!Object.keys(gsspExtraHeaders).some((k) => k.toLowerCase() === "cache-control")) gsspExtraHeaders["Cache-Control"] = "private, no-cache, no-store, max-age=0, must-revalidate";
274
306
  }
275
307
  const responseHeaders = typeof res.getHeaders === "function" ? res.getHeaders() : void 0;
276
308
  const scriptNonce = getScriptNonceFromNodeHeaderSources(req.headers, responseHeaders);
@@ -283,16 +315,16 @@ function createSSRHandler(server, runner, routes, pagesDir, i18nConfig, fileMatc
283
315
  if (typeof fontLocalEarly.getSSRFontPreloads === "function") earlyPreloads.push(...fontLocalEarly.getSSRFontPreloads());
284
316
  if (earlyPreloads.length > 0) earlyFontLinkHeader = earlyPreloads.map((p) => `<${p.href}>; rel=preload; as=font; type=${p.type}; crossorigin`).join(", ");
285
317
  } catch {}
286
- if (typeof pageModule.getStaticProps === "function") {
318
+ if (typeof pageModule.getStaticProps === "function" && !isFallbackRender) {
287
319
  const cacheKey = isrCacheKey("pages", url.split("?")[0], process.env.__VINEXT_BUILD_ID);
288
320
  const cached = await isrGet(cacheKey);
289
- if (cached && !cached.isStale && cached.value.value?.kind === "PAGES" && !scriptNonce) {
321
+ if (cached && !cached.isStale && cached.value.value?.kind === "PAGES" && !scriptNonce && !isDataReq) {
290
322
  const cachedHtml = cached.value.value.html;
291
323
  const transformedHtml = await server.transformIndexHtml(url, cachedHtml);
292
324
  const revalidateSecs = getRevalidateDuration(cacheKey) ?? 60;
293
325
  const hitHeaders = {
294
326
  "Content-Type": "text/html",
295
- [VINEXT_CACHE_HEADER]: "HIT",
327
+ ...buildCacheStateHeaders("HIT"),
296
328
  "Cache-Control": `s-maxage=${revalidateSecs}, stale-while-revalidate`
297
329
  };
298
330
  if (earlyFontLinkHeader) hitHeaders["Link"] = earlyFontLinkHeader;
@@ -300,17 +332,18 @@ function createSSRHandler(server, runner, routes, pagesDir, i18nConfig, fileMatc
300
332
  res.end(transformedHtml);
301
333
  return;
302
334
  }
303
- if (cached && cached.isStale && cached.value.value?.kind === "PAGES" && !scriptNonce) {
335
+ if (cached && cached.isStale && cached.value.value?.kind === "PAGES" && !scriptNonce && !isDataReq) {
304
336
  const cachedHtml = cached.value.value.html;
305
337
  const transformedHtml = await server.transformIndexHtml(url, cachedHtml);
306
338
  triggerBackgroundRegeneration(cacheKey, async () => {
307
339
  return runWithRequestContext(createRequestContext({ executionContext: null }), async () => {
308
340
  ensureFetchPatch();
309
341
  const freshResult = await pageModule.getStaticProps({
310
- params,
342
+ params: userFacingParams,
311
343
  locale: locale ?? currentDefaultLocale,
312
344
  locales: i18nConfig?.locales,
313
- defaultLocale: currentDefaultLocale
345
+ defaultLocale: currentDefaultLocale,
346
+ revalidateReason: "stale"
314
347
  });
315
348
  if (freshResult && "props" in freshResult) {
316
349
  const revalidate = typeof freshResult.revalidate === "number" ? freshResult.revalidate : 0;
@@ -362,7 +395,8 @@ function createSSRHandler(server, runner, routes, pagesDir, i18nConfig, fileMatc
362
395
  domainLocales,
363
396
  __vinext: {
364
397
  pageModuleUrl: regenPageUrl,
365
- appModuleUrl: regenAppUrl
398
+ appModuleUrl: regenAppUrl,
399
+ hasMiddleware
366
400
  }
367
401
  })}${i18nConfig ? `;window.__VINEXT_LOCALE__=${safeJsonStringify(locale ?? currentDefaultLocale)};window.__VINEXT_LOCALES__=${safeJsonStringify(i18nConfig.locales)};window.__VINEXT_DEFAULT_LOCALE__=${safeJsonStringify(currentDefaultLocale)}` : ""}<\/script>`}\n ${cachedHtml.match(/<script type="module">[\s\S]*?<\/script>/)?.[0] ?? ""}</body></html>`, freshProps), revalidate);
368
402
  setRevalidateDuration(cacheKey, revalidate);
@@ -377,7 +411,7 @@ function createSSRHandler(server, runner, routes, pagesDir, i18nConfig, fileMatc
377
411
  const revalidateSecs = getRevalidateDuration(cacheKey) ?? 60;
378
412
  const staleHeaders = {
379
413
  "Content-Type": "text/html",
380
- [VINEXT_CACHE_HEADER]: "STALE",
414
+ ...buildCacheStateHeaders("STALE"),
381
415
  "Cache-Control": `s-maxage=${revalidateSecs}, stale-while-revalidate`
382
416
  };
383
417
  if (earlyFontLinkHeader) staleHeaders["Link"] = earlyFontLinkHeader;
@@ -386,10 +420,11 @@ function createSSRHandler(server, runner, routes, pagesDir, i18nConfig, fileMatc
386
420
  return;
387
421
  }
388
422
  const context = {
389
- params,
423
+ params: userFacingParams,
390
424
  locale: locale ?? currentDefaultLocale,
391
425
  locales: i18nConfig?.locales,
392
- defaultLocale: currentDefaultLocale
426
+ defaultLocale: currentDefaultLocale,
427
+ revalidateReason: "stale"
393
428
  };
394
429
  const result = await pageModule.getStaticProps(context);
395
430
  if (result && "props" in result) pageProps = result.props;
@@ -403,11 +438,24 @@ function createSSRHandler(server, runner, routes, pagesDir, i18nConfig, fileMatc
403
438
  return;
404
439
  }
405
440
  if (result && "notFound" in result && result.notFound) {
441
+ if (isDataReq) {
442
+ res.writeHead(404, { "Content-Type": "application/json" });
443
+ res.end("{}");
444
+ return;
445
+ }
406
446
  await renderErrorPage(server, runner, req, res, url, pagesDir, 404, routerShim.wrapWithRouterContext);
407
447
  return;
408
448
  }
409
449
  if (typeof result?.revalidate === "number" && result.revalidate > 0) isrRevalidateSeconds = result.revalidate;
410
450
  }
451
+ if (isDataReq) {
452
+ const dataHeaders = { "Content-Type": "application/json" };
453
+ if (gsspExtraHeaders) for (const [k, v] of Object.entries(gsspExtraHeaders)) dataHeaders[k] = v;
454
+ res.writeHead(statusCode ?? 200, dataHeaders);
455
+ res.end(JSON.stringify({ pageProps }));
456
+ _renderEnd = now();
457
+ return;
458
+ }
411
459
  let AppComponent = null;
412
460
  const appPath = path.join(pagesDir, "_app");
413
461
  if (findFileWithExtensions(appPath, matcher)) try {
@@ -483,7 +531,11 @@ async function hydrate() {
483
531
  const root = hydrateRoot(document.getElementById("__next"), element);
484
532
  window.__VINEXT_ROOT__ = root;
485
533
  installPagesRouterRuntime();
486
- window.__VINEXT_HYDRATED_AT = performance.now();
534
+ const hydratedAt = performance.now();
535
+ window.__VINEXT_HYDRATED_AT = hydratedAt;
536
+ window.__NEXT_HYDRATED = true;
537
+ window.__NEXT_HYDRATED_AT = hydratedAt;
538
+ window.__NEXT_HYDRATED_CB?.();
487
539
  }
488
540
  hydrate();
489
541
  <\/script>`;
@@ -492,14 +544,15 @@ hydrate();
492
544
  page: patternToNextFormat(route.pattern),
493
545
  query: params,
494
546
  buildId: process.env.__VINEXT_BUILD_ID,
495
- isFallback: false,
547
+ isFallback: isFallbackRender,
496
548
  locale: locale ?? currentDefaultLocale,
497
549
  locales: i18nConfig?.locales,
498
550
  defaultLocale: currentDefaultLocale,
499
551
  domainLocales,
500
552
  __vinext: {
501
553
  pageModuleUrl,
502
- appModuleUrl
554
+ appModuleUrl,
555
+ hasMiddleware
503
556
  }
504
557
  })}${i18nConfig ? `;window.__VINEXT_LOCALE__=${safeJsonStringify(locale ?? currentDefaultLocale)};window.__VINEXT_LOCALES__=${safeJsonStringify(i18nConfig.locales)};window.__VINEXT_DEFAULT_LOCALE__=${safeJsonStringify(currentDefaultLocale)}` : ""}`, scriptNonce);
505
558
  const docPath = path.join(pagesDir, "_document");
@@ -512,7 +565,7 @@ hydrate();
512
565
  if (isrRevalidateSeconds) if (scriptNonce) extraHeaders["Cache-Control"] = "no-store, must-revalidate";
513
566
  else {
514
567
  extraHeaders["Cache-Control"] = `s-maxage=${isrRevalidateSeconds}, stale-while-revalidate`;
515
- extraHeaders[VINEXT_CACHE_HEADER] = "MISS";
568
+ Object.assign(extraHeaders, buildCacheStateHeaders("MISS"));
516
569
  }
517
570
  if (allFontPreloads.length > 0) extraHeaders["Link"] = allFontPreloads.map((p) => `<${p.href}>; rel=preload; as=font; type=${p.type}; crossorigin`).join(", ");
518
571
  await streamPageToResponse(res, withScriptNonce(element, scriptNonce), {
@@ -622,8 +675,18 @@ async function renderErrorPage(server, runner, _req, res, url, pagesDir, statusC
622
675
  } catch {
623
676
  continue;
624
677
  }
678
+ if (statusCode === 404) {
679
+ const defaultResponse = buildDefaultPagesNotFoundResponse();
680
+ const headers = {};
681
+ defaultResponse.headers.forEach((value, key) => {
682
+ headers[key] = value;
683
+ });
684
+ res.writeHead(defaultResponse.status, headers);
685
+ res.end(await defaultResponse.text());
686
+ return;
687
+ }
625
688
  res.writeHead(statusCode, { "Content-Type": "text/plain" });
626
- res.end(`${statusCode} - ${statusCode === 404 ? "Page not found" : "Internal Server Error"}`);
689
+ res.end(`${statusCode} - Internal Server Error`);
627
690
  }
628
691
  //#endregion
629
692
  export { createSSRHandler, detectLocaleFromHeaders, extractLocaleFromUrl, parseCookieLocale };