vinext 0.0.0 → 0.0.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 (272) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +1 -0
  3. package/dist/build/static-export.d.ts +78 -0
  4. package/dist/build/static-export.d.ts.map +1 -0
  5. package/dist/build/static-export.js +553 -0
  6. package/dist/build/static-export.js.map +1 -0
  7. package/dist/check.d.ts +52 -0
  8. package/dist/check.d.ts.map +1 -0
  9. package/dist/check.js +483 -0
  10. package/dist/check.js.map +1 -0
  11. package/dist/cli.d.ts +15 -0
  12. package/dist/cli.d.ts.map +1 -0
  13. package/dist/cli.js +565 -0
  14. package/dist/cli.js.map +1 -0
  15. package/dist/client/entry.d.ts +2 -0
  16. package/dist/client/entry.d.ts.map +1 -0
  17. package/dist/client/entry.js +85 -0
  18. package/dist/client/entry.js.map +1 -0
  19. package/dist/cloudflare/index.d.ts +8 -0
  20. package/dist/cloudflare/index.d.ts.map +1 -0
  21. package/dist/cloudflare/index.js +8 -0
  22. package/dist/cloudflare/index.js.map +1 -0
  23. package/dist/cloudflare/kv-cache-handler.d.ts +68 -0
  24. package/dist/cloudflare/kv-cache-handler.d.ts.map +1 -0
  25. package/dist/cloudflare/kv-cache-handler.js +304 -0
  26. package/dist/cloudflare/kv-cache-handler.js.map +1 -0
  27. package/dist/cloudflare/tpr.d.ts +78 -0
  28. package/dist/cloudflare/tpr.d.ts.map +1 -0
  29. package/dist/cloudflare/tpr.js +672 -0
  30. package/dist/cloudflare/tpr.js.map +1 -0
  31. package/dist/config/config-matchers.d.ts +106 -0
  32. package/dist/config/config-matchers.d.ts.map +1 -0
  33. package/dist/config/config-matchers.js +499 -0
  34. package/dist/config/config-matchers.js.map +1 -0
  35. package/dist/config/next-config.d.ts +153 -0
  36. package/dist/config/next-config.d.ts.map +1 -0
  37. package/dist/config/next-config.js +274 -0
  38. package/dist/config/next-config.js.map +1 -0
  39. package/dist/deploy.d.ts +87 -0
  40. package/dist/deploy.d.ts.map +1 -0
  41. package/dist/deploy.js +644 -0
  42. package/dist/deploy.js.map +1 -0
  43. package/dist/index.d.ts +156 -0
  44. package/dist/index.d.ts.map +1 -0
  45. package/dist/index.js +3287 -0
  46. package/dist/index.js.map +1 -0
  47. package/dist/init.d.ts +55 -0
  48. package/dist/init.d.ts.map +1 -0
  49. package/dist/init.js +201 -0
  50. package/dist/init.js.map +1 -0
  51. package/dist/routing/app-router.d.ts +96 -0
  52. package/dist/routing/app-router.d.ts.map +1 -0
  53. package/dist/routing/app-router.js +815 -0
  54. package/dist/routing/app-router.js.map +1 -0
  55. package/dist/routing/pages-router.d.ts +52 -0
  56. package/dist/routing/pages-router.d.ts.map +1 -0
  57. package/dist/routing/pages-router.js +239 -0
  58. package/dist/routing/pages-router.js.map +1 -0
  59. package/dist/server/api-handler.d.ts +18 -0
  60. package/dist/server/api-handler.d.ts.map +1 -0
  61. package/dist/server/api-handler.js +169 -0
  62. package/dist/server/api-handler.js.map +1 -0
  63. package/dist/server/app-dev-server.d.ts +42 -0
  64. package/dist/server/app-dev-server.d.ts.map +1 -0
  65. package/dist/server/app-dev-server.js +2718 -0
  66. package/dist/server/app-dev-server.js.map +1 -0
  67. package/dist/server/app-router-entry.d.ts +18 -0
  68. package/dist/server/app-router-entry.d.ts.map +1 -0
  69. package/dist/server/app-router-entry.js +34 -0
  70. package/dist/server/app-router-entry.js.map +1 -0
  71. package/dist/server/dev-server.d.ts +40 -0
  72. package/dist/server/dev-server.d.ts.map +1 -0
  73. package/dist/server/dev-server.js +758 -0
  74. package/dist/server/dev-server.js.map +1 -0
  75. package/dist/server/html.d.ts +22 -0
  76. package/dist/server/html.d.ts.map +1 -0
  77. package/dist/server/html.js +29 -0
  78. package/dist/server/html.js.map +1 -0
  79. package/dist/server/image-optimization.d.ts +56 -0
  80. package/dist/server/image-optimization.d.ts.map +1 -0
  81. package/dist/server/image-optimization.js +103 -0
  82. package/dist/server/image-optimization.js.map +1 -0
  83. package/dist/server/instrumentation.d.ts +68 -0
  84. package/dist/server/instrumentation.d.ts.map +1 -0
  85. package/dist/server/instrumentation.js +90 -0
  86. package/dist/server/instrumentation.js.map +1 -0
  87. package/dist/server/isr-cache.d.ts +61 -0
  88. package/dist/server/isr-cache.d.ts.map +1 -0
  89. package/dist/server/isr-cache.js +134 -0
  90. package/dist/server/isr-cache.js.map +1 -0
  91. package/dist/server/metadata-routes.d.ts +103 -0
  92. package/dist/server/metadata-routes.d.ts.map +1 -0
  93. package/dist/server/metadata-routes.js +270 -0
  94. package/dist/server/metadata-routes.js.map +1 -0
  95. package/dist/server/middleware.d.ts +77 -0
  96. package/dist/server/middleware.d.ts.map +1 -0
  97. package/dist/server/middleware.js +228 -0
  98. package/dist/server/middleware.js.map +1 -0
  99. package/dist/server/prod-server.d.ts +78 -0
  100. package/dist/server/prod-server.d.ts.map +1 -0
  101. package/dist/server/prod-server.js +712 -0
  102. package/dist/server/prod-server.js.map +1 -0
  103. package/dist/shims/amp.d.ts +17 -0
  104. package/dist/shims/amp.d.ts.map +1 -0
  105. package/dist/shims/amp.js +21 -0
  106. package/dist/shims/amp.js.map +1 -0
  107. package/dist/shims/app.d.ts +12 -0
  108. package/dist/shims/app.d.ts.map +1 -0
  109. package/dist/shims/app.js +2 -0
  110. package/dist/shims/app.js.map +1 -0
  111. package/dist/shims/cache-runtime.d.ts +68 -0
  112. package/dist/shims/cache-runtime.d.ts.map +1 -0
  113. package/dist/shims/cache-runtime.js +437 -0
  114. package/dist/shims/cache-runtime.js.map +1 -0
  115. package/dist/shims/cache.d.ts +243 -0
  116. package/dist/shims/cache.d.ts.map +1 -0
  117. package/dist/shims/cache.js +415 -0
  118. package/dist/shims/cache.js.map +1 -0
  119. package/dist/shims/client-only.d.ts +18 -0
  120. package/dist/shims/client-only.d.ts.map +1 -0
  121. package/dist/shims/client-only.js +18 -0
  122. package/dist/shims/client-only.js.map +1 -0
  123. package/dist/shims/config.d.ts +27 -0
  124. package/dist/shims/config.d.ts.map +1 -0
  125. package/dist/shims/config.js +30 -0
  126. package/dist/shims/config.js.map +1 -0
  127. package/dist/shims/constants.d.ts +13 -0
  128. package/dist/shims/constants.d.ts.map +1 -0
  129. package/dist/shims/constants.js +13 -0
  130. package/dist/shims/constants.js.map +1 -0
  131. package/dist/shims/document.d.ts +33 -0
  132. package/dist/shims/document.d.ts.map +1 -0
  133. package/dist/shims/document.js +32 -0
  134. package/dist/shims/document.js.map +1 -0
  135. package/dist/shims/dynamic.d.ts +33 -0
  136. package/dist/shims/dynamic.d.ts.map +1 -0
  137. package/dist/shims/dynamic.js +148 -0
  138. package/dist/shims/dynamic.js.map +1 -0
  139. package/dist/shims/error-boundary.d.ts +33 -0
  140. package/dist/shims/error-boundary.d.ts.map +1 -0
  141. package/dist/shims/error-boundary.js +88 -0
  142. package/dist/shims/error-boundary.js.map +1 -0
  143. package/dist/shims/error.d.ts +16 -0
  144. package/dist/shims/error.d.ts.map +1 -0
  145. package/dist/shims/error.js +45 -0
  146. package/dist/shims/error.js.map +1 -0
  147. package/dist/shims/fetch-cache.d.ts +61 -0
  148. package/dist/shims/fetch-cache.d.ts.map +1 -0
  149. package/dist/shims/fetch-cache.js +307 -0
  150. package/dist/shims/fetch-cache.js.map +1 -0
  151. package/dist/shims/font-google.d.ts +122 -0
  152. package/dist/shims/font-google.d.ts.map +1 -0
  153. package/dist/shims/font-google.js +387 -0
  154. package/dist/shims/font-google.js.map +1 -0
  155. package/dist/shims/font-local.d.ts +61 -0
  156. package/dist/shims/font-local.d.ts.map +1 -0
  157. package/dist/shims/font-local.js +303 -0
  158. package/dist/shims/font-local.js.map +1 -0
  159. package/dist/shims/form.d.ts +30 -0
  160. package/dist/shims/form.d.ts.map +1 -0
  161. package/dist/shims/form.js +78 -0
  162. package/dist/shims/form.js.map +1 -0
  163. package/dist/shims/head-state.d.ts +11 -0
  164. package/dist/shims/head-state.d.ts.map +1 -0
  165. package/dist/shims/head-state.js +47 -0
  166. package/dist/shims/head-state.js.map +1 -0
  167. package/dist/shims/head.d.ts +28 -0
  168. package/dist/shims/head.d.ts.map +1 -0
  169. package/dist/shims/head.js +148 -0
  170. package/dist/shims/head.js.map +1 -0
  171. package/dist/shims/headers.d.ts +150 -0
  172. package/dist/shims/headers.d.ts.map +1 -0
  173. package/dist/shims/headers.js +412 -0
  174. package/dist/shims/headers.js.map +1 -0
  175. package/dist/shims/image-config.d.ts +30 -0
  176. package/dist/shims/image-config.d.ts.map +1 -0
  177. package/dist/shims/image-config.js +91 -0
  178. package/dist/shims/image-config.js.map +1 -0
  179. package/dist/shims/image.d.ts +63 -0
  180. package/dist/shims/image.d.ts.map +1 -0
  181. package/dist/shims/image.js +284 -0
  182. package/dist/shims/image.js.map +1 -0
  183. package/dist/shims/internal/api-utils.d.ts +12 -0
  184. package/dist/shims/internal/api-utils.d.ts.map +1 -0
  185. package/dist/shims/internal/api-utils.js +7 -0
  186. package/dist/shims/internal/api-utils.js.map +1 -0
  187. package/dist/shims/internal/app-router-context.d.ts +21 -0
  188. package/dist/shims/internal/app-router-context.d.ts.map +1 -0
  189. package/dist/shims/internal/app-router-context.js +15 -0
  190. package/dist/shims/internal/app-router-context.js.map +1 -0
  191. package/dist/shims/internal/cookies.d.ts +9 -0
  192. package/dist/shims/internal/cookies.d.ts.map +1 -0
  193. package/dist/shims/internal/cookies.js +9 -0
  194. package/dist/shims/internal/cookies.js.map +1 -0
  195. package/dist/shims/internal/router-context.d.ts +2 -0
  196. package/dist/shims/internal/router-context.d.ts.map +1 -0
  197. package/dist/shims/internal/router-context.js +9 -0
  198. package/dist/shims/internal/router-context.js.map +1 -0
  199. package/dist/shims/internal/utils.d.ts +48 -0
  200. package/dist/shims/internal/utils.d.ts.map +1 -0
  201. package/dist/shims/internal/utils.js +35 -0
  202. package/dist/shims/internal/utils.js.map +1 -0
  203. package/dist/shims/internal/work-unit-async-storage.d.ts +12 -0
  204. package/dist/shims/internal/work-unit-async-storage.d.ts.map +1 -0
  205. package/dist/shims/internal/work-unit-async-storage.js +13 -0
  206. package/dist/shims/internal/work-unit-async-storage.js.map +1 -0
  207. package/dist/shims/layout-segment-context.d.ts +21 -0
  208. package/dist/shims/layout-segment-context.d.ts.map +1 -0
  209. package/dist/shims/layout-segment-context.js +27 -0
  210. package/dist/shims/layout-segment-context.js.map +1 -0
  211. package/dist/shims/legacy-image.d.ts +52 -0
  212. package/dist/shims/legacy-image.d.ts.map +1 -0
  213. package/dist/shims/legacy-image.js +46 -0
  214. package/dist/shims/legacy-image.js.map +1 -0
  215. package/dist/shims/link.d.ts +48 -0
  216. package/dist/shims/link.d.ts.map +1 -0
  217. package/dist/shims/link.js +395 -0
  218. package/dist/shims/link.js.map +1 -0
  219. package/dist/shims/metadata.d.ts +184 -0
  220. package/dist/shims/metadata.d.ts.map +1 -0
  221. package/dist/shims/metadata.js +472 -0
  222. package/dist/shims/metadata.js.map +1 -0
  223. package/dist/shims/navigation-state.d.ts +14 -0
  224. package/dist/shims/navigation-state.d.ts.map +1 -0
  225. package/dist/shims/navigation-state.js +77 -0
  226. package/dist/shims/navigation-state.js.map +1 -0
  227. package/dist/shims/navigation.d.ts +201 -0
  228. package/dist/shims/navigation.d.ts.map +1 -0
  229. package/dist/shims/navigation.js +672 -0
  230. package/dist/shims/navigation.js.map +1 -0
  231. package/dist/shims/og.d.ts +20 -0
  232. package/dist/shims/og.d.ts.map +1 -0
  233. package/dist/shims/og.js +19 -0
  234. package/dist/shims/og.js.map +1 -0
  235. package/dist/shims/router-state.d.ts +11 -0
  236. package/dist/shims/router-state.d.ts.map +1 -0
  237. package/dist/shims/router-state.js +56 -0
  238. package/dist/shims/router-state.js.map +1 -0
  239. package/dist/shims/router.d.ts +103 -0
  240. package/dist/shims/router.d.ts.map +1 -0
  241. package/dist/shims/router.js +536 -0
  242. package/dist/shims/router.js.map +1 -0
  243. package/dist/shims/script.d.ts +58 -0
  244. package/dist/shims/script.d.ts.map +1 -0
  245. package/dist/shims/script.js +163 -0
  246. package/dist/shims/script.js.map +1 -0
  247. package/dist/shims/server-only.d.ts +19 -0
  248. package/dist/shims/server-only.d.ts.map +1 -0
  249. package/dist/shims/server-only.js +19 -0
  250. package/dist/shims/server-only.js.map +1 -0
  251. package/dist/shims/server.d.ts +178 -0
  252. package/dist/shims/server.d.ts.map +1 -0
  253. package/dist/shims/server.js +377 -0
  254. package/dist/shims/server.js.map +1 -0
  255. package/dist/shims/web-vitals.d.ts +24 -0
  256. package/dist/shims/web-vitals.d.ts.map +1 -0
  257. package/dist/shims/web-vitals.js +17 -0
  258. package/dist/shims/web-vitals.js.map +1 -0
  259. package/dist/utils/hash.d.ts +6 -0
  260. package/dist/utils/hash.d.ts.map +1 -0
  261. package/dist/utils/hash.js +20 -0
  262. package/dist/utils/hash.js.map +1 -0
  263. package/dist/utils/project.d.ts +36 -0
  264. package/dist/utils/project.d.ts.map +1 -0
  265. package/dist/utils/project.js +112 -0
  266. package/dist/utils/project.js.map +1 -0
  267. package/dist/utils/query.d.ts +10 -0
  268. package/dist/utils/query.d.ts.map +1 -0
  269. package/dist/utils/query.js +27 -0
  270. package/dist/utils/query.js.map +1 -0
  271. package/package.json +65 -7
  272. package/index.js +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isr-cache.js","sourceRoot":"","sources":["../../src/server/isr-cache.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EACL,eAAe,GAKhB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAO3C;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,GAAW;IACtC,MAAM,OAAO,GAAG,eAAe,EAAE,CAAC;IAClC,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACtC,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IAE1C,OAAO;QACL,KAAK,EAAE,MAAM;QACb,OAAO,EAAE,MAAM,CAAC,UAAU,KAAK,OAAO;KACvC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,MAAM,CAC1B,GAAW,EACX,IAA2B,EAC3B,iBAAyB,EACzB,IAAe;IAEf,MAAM,OAAO,GAAG,eAAe,EAAE,CAAC;IAClC,MAAM,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE;QAC3B,UAAU,EAAE,iBAAiB;QAC7B,IAAI,EAAE,IAAI,IAAI,EAAE;KACjB,CAAC,CAAC;AACL,CAAC;AAED,8EAA8E;AAC9E,gCAAgC;AAChC,8EAA8E;AAE9E,MAAM,oBAAoB,GAAG,IAAI,GAAG,EAAyB,CAAC;AAE9D;;;;;GAKG;AACH,MAAM,UAAU,6BAA6B,CAC3C,GAAW,EACX,QAA6B;IAE7B,IAAI,oBAAoB,CAAC,GAAG,CAAC,GAAG,CAAC;QAAE,OAAO;IAE1C,MAAM,OAAO,GAAG,QAAQ,EAAE;SACvB,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;QACb,OAAO,CAAC,KAAK,CAAC,mDAAmD,GAAG,GAAG,EAAE,GAAG,CAAC,CAAC;IAChF,CAAC,CAAC;SACD,OAAO,CAAC,GAAG,EAAE;QACZ,oBAAoB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;IAEL,oBAAoB,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;AACzC,CAAC;AAED,8EAA8E;AAC9E,wCAAwC;AACxC,8EAA8E;AAE9E;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAClC,IAAY,EACZ,QAAgB,EAChB,MAAe;IAEf,OAAO;QACL,IAAI,EAAE,OAAO;QACb,IAAI;QACJ,QAAQ;QACR,OAAO,EAAE,SAAS;QAClB,MAAM;KACP,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,sBAAsB,CACpC,IAAY,EACZ,OAAqB,EACrB,MAAe;IAEf,OAAO;QACL,IAAI,EAAE,UAAU;QAChB,IAAI;QACJ,OAAO;QACP,OAAO,EAAE,SAAS;QAClB,SAAS,EAAE,SAAS;QACpB,MAAM;KACP,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,MAAuB,EAAE,QAAgB;IACnE,MAAM,UAAU,GAAG,QAAQ,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACxE,MAAM,GAAG,GAAG,GAAG,MAAM,IAAI,UAAU,EAAE,CAAC;IACtC,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG;QAAE,OAAO,GAAG,CAAC;IAClC,OAAO,GAAG,MAAM,WAAW,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;AACnD,CAAC;AAED,8EAA8E;AAC9E,0EAA0E;AAC1E,8DAA8D;AAC9D,8EAA8E;AAE9E,MAAM,sBAAsB,GAAG,MAAM,CAAC;AACtC,MAAM,mBAAmB,GAAG,IAAI,GAAG,EAAkB,CAAC;AAEtD;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CAAC,GAAW,EAAE,OAAe;IAChE,gEAAgE;IAChE,mBAAmB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAChC,mBAAmB,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IACtC,qCAAqC;IACrC,OAAO,mBAAmB,CAAC,IAAI,GAAG,sBAAsB,EAAE,CAAC;QACzD,MAAM,KAAK,GAAG,mBAAmB,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC;QACtD,IAAI,KAAK,KAAK,SAAS;YAAE,mBAAmB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;;YACtD,MAAM;IACb,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB,CAAC,GAAW;IAC/C,OAAO,mBAAmB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACtC,CAAC"}
@@ -0,0 +1,103 @@
1
+ export interface SitemapEntry {
2
+ url: string;
3
+ lastModified?: string | Date;
4
+ changeFrequency?: "always" | "hourly" | "daily" | "weekly" | "monthly" | "yearly" | "never";
5
+ priority?: number;
6
+ alternates?: {
7
+ languages?: Record<string, string>;
8
+ };
9
+ images?: string[];
10
+ videos?: Array<{
11
+ title: string;
12
+ thumbnail_loc: string;
13
+ description: string;
14
+ content_loc?: string;
15
+ player_loc?: string;
16
+ duration?: number;
17
+ expiration_date?: string;
18
+ rating?: number;
19
+ view_count?: number;
20
+ publication_date?: string;
21
+ family_friendly?: "yes" | "no";
22
+ restriction?: {
23
+ relationship: "allow" | "deny";
24
+ content: string;
25
+ };
26
+ platform?: {
27
+ relationship: "allow" | "deny";
28
+ content: string;
29
+ };
30
+ live?: "yes" | "no";
31
+ }>;
32
+ }
33
+ export interface RobotsRule {
34
+ userAgent?: string | string[];
35
+ allow?: string | string[];
36
+ disallow?: string | string[];
37
+ crawlDelay?: number;
38
+ }
39
+ export interface RobotsConfig {
40
+ rules: RobotsRule | RobotsRule[];
41
+ sitemap?: string | string[];
42
+ host?: string;
43
+ }
44
+ export interface ManifestConfig {
45
+ name?: string;
46
+ short_name?: string;
47
+ description?: string;
48
+ start_url?: string;
49
+ display?: "fullscreen" | "standalone" | "minimal-ui" | "browser";
50
+ background_color?: string;
51
+ theme_color?: string;
52
+ icons?: Array<{
53
+ src: string;
54
+ sizes?: string;
55
+ type?: string;
56
+ purpose?: string;
57
+ }>;
58
+ [key: string]: unknown;
59
+ }
60
+ /** Map of metadata file base names to their URL path and content type. */
61
+ export declare const METADATA_FILE_MAP: Record<string, {
62
+ /** URL path this file is served at */
63
+ urlPath: string;
64
+ /** Content type for the response */
65
+ contentType: string;
66
+ /** Whether this can be dynamic (.ts/.tsx/.js) */
67
+ canBeDynamic: boolean;
68
+ /** File extensions for static variants */
69
+ staticExtensions: string[];
70
+ /** File extensions for dynamic variants */
71
+ dynamicExtensions: string[];
72
+ /** Whether this can be nested in sub-segments */
73
+ nestable: boolean;
74
+ }>;
75
+ /**
76
+ * Convert a sitemap array to XML string.
77
+ */
78
+ export declare function sitemapToXml(entries: SitemapEntry[]): string;
79
+ /**
80
+ * Convert a robots config to text format.
81
+ */
82
+ export declare function robotsToText(config: RobotsConfig): string;
83
+ /**
84
+ * Convert a manifest config to JSON string.
85
+ */
86
+ export declare function manifestToJson(config: ManifestConfig): string;
87
+ export interface MetadataFileRoute {
88
+ /** Type of metadata file */
89
+ type: string;
90
+ /** Whether this is a dynamic (code-generated) route */
91
+ isDynamic: boolean;
92
+ /** Absolute file path */
93
+ filePath: string;
94
+ /** URL path this file is served at */
95
+ servedUrl: string;
96
+ /** Content type for the response */
97
+ contentType: string;
98
+ }
99
+ /**
100
+ * Scan an app directory for metadata files.
101
+ */
102
+ export declare function scanMetadataFiles(appDir: string): MetadataFileRoute[];
103
+ //# sourceMappingURL=metadata-routes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metadata-routes.d.ts","sourceRoot":"","sources":["../../src/server/metadata-routes.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,270 @@
1
+ /**
2
+ * File-based metadata route handling.
3
+ *
4
+ * Next.js supports special files in the app/ directory that auto-generate
5
+ * metadata routes:
6
+ * - sitemap.ts/.xml → /sitemap.xml (application/xml)
7
+ * - robots.ts/.txt → /robots.txt (text/plain)
8
+ * - manifest.ts/.json/.webmanifest → /manifest.webmanifest (application/manifest+json)
9
+ * - icon.tsx/.png → /icon (image/*)
10
+ * - opengraph-image.tsx/.png → /opengraph-image (image/*)
11
+ * - twitter-image.tsx/.png → /twitter-image (image/*)
12
+ * - apple-icon.tsx/.png → /apple-icon (image/*)
13
+ * - favicon.ico → /favicon.ico (image/x-icon)
14
+ *
15
+ * Dynamic versions (ts/tsx/js) export a default function that returns the data.
16
+ * Static versions (xml/txt/json/png/etc.) are served as-is.
17
+ */
18
+ import fs from "node:fs";
19
+ import path from "node:path";
20
+ // -------------------------------------------------------------------
21
+ // Known metadata file patterns
22
+ // -------------------------------------------------------------------
23
+ /** Map of metadata file base names to their URL path and content type. */
24
+ export const METADATA_FILE_MAP = {
25
+ sitemap: {
26
+ urlPath: "/sitemap.xml",
27
+ contentType: "application/xml",
28
+ canBeDynamic: true,
29
+ staticExtensions: [".xml"],
30
+ dynamicExtensions: [".ts", ".js"],
31
+ nestable: true,
32
+ },
33
+ robots: {
34
+ urlPath: "/robots.txt",
35
+ contentType: "text/plain",
36
+ canBeDynamic: true,
37
+ staticExtensions: [".txt"],
38
+ dynamicExtensions: [".ts", ".js"],
39
+ nestable: false,
40
+ },
41
+ manifest: {
42
+ urlPath: "/manifest.webmanifest",
43
+ contentType: "application/manifest+json",
44
+ canBeDynamic: true,
45
+ staticExtensions: [".json", ".webmanifest"],
46
+ dynamicExtensions: [".ts", ".js"],
47
+ nestable: false,
48
+ },
49
+ favicon: {
50
+ urlPath: "/favicon.ico",
51
+ contentType: "image/x-icon",
52
+ canBeDynamic: false,
53
+ staticExtensions: [".ico"],
54
+ dynamicExtensions: [],
55
+ nestable: false,
56
+ },
57
+ icon: {
58
+ urlPath: "/icon",
59
+ contentType: "image/png",
60
+ canBeDynamic: true,
61
+ staticExtensions: [".ico", ".jpg", ".jpeg", ".png", ".svg"],
62
+ dynamicExtensions: [".ts", ".tsx", ".js"],
63
+ nestable: true,
64
+ },
65
+ "opengraph-image": {
66
+ urlPath: "/opengraph-image",
67
+ contentType: "image/png",
68
+ canBeDynamic: true,
69
+ staticExtensions: [".jpg", ".jpeg", ".png", ".gif"],
70
+ dynamicExtensions: [".ts", ".tsx", ".js"],
71
+ nestable: true,
72
+ },
73
+ "twitter-image": {
74
+ urlPath: "/twitter-image",
75
+ contentType: "image/png",
76
+ canBeDynamic: true,
77
+ staticExtensions: [".jpg", ".jpeg", ".png", ".gif"],
78
+ dynamicExtensions: [".ts", ".tsx", ".js"],
79
+ nestable: true,
80
+ },
81
+ "apple-icon": {
82
+ urlPath: "/apple-icon",
83
+ contentType: "image/png",
84
+ canBeDynamic: true,
85
+ staticExtensions: [".jpg", ".jpeg", ".png"],
86
+ dynamicExtensions: [".ts", ".tsx", ".js"],
87
+ nestable: true,
88
+ },
89
+ };
90
+ // -------------------------------------------------------------------
91
+ // Serializers
92
+ // -------------------------------------------------------------------
93
+ /**
94
+ * Convert a sitemap array to XML string.
95
+ */
96
+ export function sitemapToXml(entries) {
97
+ const lines = [
98
+ '<?xml version="1.0" encoding="UTF-8"?>',
99
+ '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">',
100
+ ];
101
+ for (const entry of entries) {
102
+ lines.push(" <url>");
103
+ lines.push(` <loc>${escapeXml(entry.url)}</loc>`);
104
+ if (entry.lastModified) {
105
+ const date = entry.lastModified instanceof Date
106
+ ? entry.lastModified.toISOString()
107
+ : entry.lastModified;
108
+ lines.push(` <lastmod>${escapeXml(date)}</lastmod>`);
109
+ }
110
+ if (entry.changeFrequency) {
111
+ lines.push(` <changefreq>${escapeXml(entry.changeFrequency)}</changefreq>`);
112
+ }
113
+ if (entry.priority !== undefined) {
114
+ lines.push(` <priority>${entry.priority}</priority>`);
115
+ }
116
+ if (entry.images) {
117
+ for (const image of entry.images) {
118
+ lines.push(" <image:image>");
119
+ lines.push(` <image:loc>${escapeXml(image)}</image:loc>`);
120
+ lines.push(" </image:image>");
121
+ }
122
+ }
123
+ lines.push(" </url>");
124
+ }
125
+ lines.push("</urlset>");
126
+ return lines.join("\n");
127
+ }
128
+ /**
129
+ * Convert a robots config to text format.
130
+ */
131
+ export function robotsToText(config) {
132
+ const lines = [];
133
+ const rules = Array.isArray(config.rules) ? config.rules : [config.rules];
134
+ for (const rule of rules) {
135
+ const agents = Array.isArray(rule.userAgent)
136
+ ? rule.userAgent
137
+ : [rule.userAgent ?? "*"];
138
+ for (const agent of agents) {
139
+ lines.push(`User-Agent: ${agent}`);
140
+ }
141
+ if (rule.allow) {
142
+ const allows = Array.isArray(rule.allow) ? rule.allow : [rule.allow];
143
+ for (const allow of allows) {
144
+ lines.push(`Allow: ${allow}`);
145
+ }
146
+ }
147
+ if (rule.disallow) {
148
+ const disallows = Array.isArray(rule.disallow)
149
+ ? rule.disallow
150
+ : [rule.disallow];
151
+ for (const disallow of disallows) {
152
+ lines.push(`Disallow: ${disallow}`);
153
+ }
154
+ }
155
+ if (rule.crawlDelay !== undefined) {
156
+ lines.push(`Crawl-delay: ${rule.crawlDelay}`);
157
+ }
158
+ lines.push("");
159
+ }
160
+ if (config.sitemap) {
161
+ const sitemaps = Array.isArray(config.sitemap)
162
+ ? config.sitemap
163
+ : [config.sitemap];
164
+ for (const sitemap of sitemaps) {
165
+ lines.push(`Sitemap: ${sitemap}`);
166
+ }
167
+ }
168
+ if (config.host) {
169
+ lines.push(`Host: ${config.host}`);
170
+ }
171
+ return lines.join("\n").trim() + "\n";
172
+ }
173
+ /**
174
+ * Convert a manifest config to JSON string.
175
+ */
176
+ export function manifestToJson(config) {
177
+ return JSON.stringify(config, null, 2);
178
+ }
179
+ function escapeXml(s) {
180
+ return s
181
+ .replace(/&/g, "&amp;")
182
+ .replace(/</g, "&lt;")
183
+ .replace(/>/g, "&gt;")
184
+ .replace(/"/g, "&quot;")
185
+ .replace(/'/g, "&apos;");
186
+ }
187
+ /**
188
+ * Scan an app directory for metadata files.
189
+ */
190
+ export function scanMetadataFiles(appDir) {
191
+ const routes = [];
192
+ // Scan the app directory recursively
193
+ function scan(dir, urlPrefix) {
194
+ if (!fs.existsSync(dir))
195
+ return;
196
+ const entries = fs.readdirSync(dir, { withFileTypes: true });
197
+ for (const entry of entries) {
198
+ if (entry.isDirectory()) {
199
+ // Skip route group parentheses from URL
200
+ const dirName = entry.name;
201
+ const isRouteGroup = dirName.startsWith("(") && dirName.endsWith(")");
202
+ const nextUrlPrefix = isRouteGroup
203
+ ? urlPrefix
204
+ : `${urlPrefix}/${dirName}`;
205
+ scan(path.join(dir, dirName), nextUrlPrefix);
206
+ continue;
207
+ }
208
+ // Check each metadata file pattern
209
+ const fileName = entry.name;
210
+ const baseName = fileName.replace(/\.[^.]+$/, "");
211
+ const ext = fileName.slice(baseName.length);
212
+ for (const [metaType, config] of Object.entries(METADATA_FILE_MAP)) {
213
+ // Check if the base name matches
214
+ if (baseName !== metaType)
215
+ continue;
216
+ // Check nestability — non-nestable types only at root
217
+ if (!config.nestable && urlPrefix !== "")
218
+ continue;
219
+ // Check if this is a static or dynamic variant
220
+ const isStatic = config.staticExtensions.includes(ext);
221
+ const isDynamic = config.dynamicExtensions.includes(ext);
222
+ if (!isStatic && !isDynamic)
223
+ continue;
224
+ routes.push({
225
+ type: metaType,
226
+ isDynamic,
227
+ filePath: path.join(dir, fileName),
228
+ servedUrl: urlPrefix === ""
229
+ ? config.urlPath
230
+ : `${urlPrefix}${config.urlPath}`,
231
+ contentType: isStatic
232
+ ? getStaticContentType(ext, config.contentType)
233
+ : config.contentType,
234
+ });
235
+ }
236
+ }
237
+ }
238
+ scan(appDir, "");
239
+ // Deduplicate: if both dynamic and static variants exist at the same URL,
240
+ // keep only the dynamic one (matches Next.js behavior).
241
+ const byUrl = new Map();
242
+ for (const route of routes) {
243
+ const existing = byUrl.get(route.servedUrl);
244
+ if (!existing) {
245
+ byUrl.set(route.servedUrl, route);
246
+ }
247
+ else if (route.isDynamic && !existing.isDynamic) {
248
+ // Dynamic takes priority over static
249
+ byUrl.set(route.servedUrl, route);
250
+ }
251
+ // If both are static or both dynamic, keep the first one found
252
+ }
253
+ return Array.from(byUrl.values());
254
+ }
255
+ function getStaticContentType(ext, fallback) {
256
+ const map = {
257
+ ".xml": "application/xml",
258
+ ".txt": "text/plain",
259
+ ".json": "application/json",
260
+ ".webmanifest": "application/manifest+json",
261
+ ".ico": "image/x-icon",
262
+ ".png": "image/png",
263
+ ".jpg": "image/jpeg",
264
+ ".jpeg": "image/jpeg",
265
+ ".gif": "image/gif",
266
+ ".svg": "image/svg+xml",
267
+ };
268
+ return map[ext] ?? fallback;
269
+ }
270
+ //# sourceMappingURL=metadata-routes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metadata-routes.js","sourceRoot":"","sources":["../../src/server/metadata-routes.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,77 @@
1
+ /**
2
+ * proxy.ts / middleware.ts runner
3
+ *
4
+ * Loads and executes the user's proxy.ts (Next.js 16) or middleware.ts file
5
+ * before routing. Runs in Node (not Edge Runtime), per the vinext design.
6
+ *
7
+ * In Next.js 16, proxy.ts replaces middleware.ts:
8
+ * - proxy.ts: default export function, runs on Node.js runtime
9
+ * - middleware.ts: deprecated but still supported for Edge runtime use cases
10
+ *
11
+ * The proxy/middleware receives a NextRequest and can:
12
+ * - Return NextResponse.next() to continue to the route
13
+ * - Return NextResponse.redirect() to redirect
14
+ * - Return NextResponse.rewrite() to rewrite the URL
15
+ * - Set/modify headers and cookies
16
+ * - Return a Response directly (e.g., for auth guards)
17
+ *
18
+ * Supports the `config.matcher` export for path filtering.
19
+ */
20
+ import type { ViteDevServer } from "vite";
21
+ /**
22
+ * Find the proxy or middleware file in the project root.
23
+ * Checks for proxy.ts (Next.js 16) first, then falls back to middleware.ts.
24
+ * If middleware.ts is found, logs a deprecation warning.
25
+ */
26
+ export declare function findMiddlewareFile(root: string): string | null;
27
+ /** Matcher pattern from middleware config export. */
28
+ type MatcherConfig = string | string[] | {
29
+ source: string;
30
+ regexp?: string;
31
+ locale?: boolean;
32
+ has?: any[];
33
+ missing?: any[];
34
+ }[];
35
+ /**
36
+ * Check if a pathname matches the middleware matcher config.
37
+ * If no matcher is configured, middleware runs on all paths
38
+ * except static files and internal Next.js paths.
39
+ */
40
+ export declare function matchesMiddleware(pathname: string, matcher: MatcherConfig | undefined): boolean;
41
+ /**
42
+ * Match a single pattern against a pathname.
43
+ * Supports Next.js matcher patterns:
44
+ * /about -> exact match
45
+ * /dashboard/:path* -> prefix match with params
46
+ * /api/:path+ -> one or more segments
47
+ * /((?!api|_next).*) -> regex patterns
48
+ */
49
+ export declare function matchPattern(pathname: string, pattern: string): boolean;
50
+ /** Result of running middleware. */
51
+ export interface MiddlewareResult {
52
+ /** Whether to continue to the route handler. */
53
+ continue: boolean;
54
+ /** If set, redirect to this URL. */
55
+ redirectUrl?: string;
56
+ /** HTTP status for redirect (default 307). */
57
+ redirectStatus?: number;
58
+ /** If set, rewrite to this URL (internal). */
59
+ rewriteUrl?: string;
60
+ /** HTTP status for rewrite (e.g. 403 from NextResponse.rewrite(url, { status: 403 })). */
61
+ rewriteStatus?: number;
62
+ /** Headers to set on the response. */
63
+ responseHeaders?: Headers;
64
+ /** If the middleware returned a full Response, use it directly. */
65
+ response?: Response;
66
+ }
67
+ /**
68
+ * Load and execute middleware for a given request.
69
+ *
70
+ * @param server - Vite dev server (for SSR module loading)
71
+ * @param middlewarePath - Absolute path to the middleware file
72
+ * @param request - The incoming Request object
73
+ * @returns Middleware result describing what action to take
74
+ */
75
+ export declare function runMiddleware(server: ViteDevServer, middlewarePath: string, request: Request): Promise<MiddlewareResult>;
76
+ export {};
77
+ //# sourceMappingURL=middleware.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"middleware.d.ts","sourceRoot":"","sources":["../../src/server/middleware.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,MAAM,CAAC;AA8B1C;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAqB9D;AAED,qDAAqD;AACrD,KAAK,aAAa,GACd,MAAM,GACN,MAAM,EAAE,GACR;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC;IAAC,OAAO,CAAC,EAAE,GAAG,EAAE,CAAA;CAAE,EAAE,CAAC;AAE1F;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,aAAa,GAAG,SAAS,GACjC,OAAO,CAyBT;AAED;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAwBvE;AAED,oCAAoC;AACpC,MAAM,WAAW,gBAAgB;IAC/B,gDAAgD;IAChD,QAAQ,EAAE,OAAO,CAAC;IAClB,oCAAoC;IACpC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,8CAA8C;IAC9C,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,8CAA8C;IAC9C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,0FAA0F;IAC1F,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,sCAAsC;IACtC,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,mEAAmE;IACnE,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB;AAED;;;;;;;GAOG;AACH,wBAAsB,aAAa,CACjC,MAAM,EAAE,aAAa,EACrB,cAAc,EAAE,MAAM,EACtB,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,gBAAgB,CAAC,CAiG3B"}