@vasfal/vellum 0.1.0 → 0.1.2

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 (484) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-path-routes-manifest.json +5 -5
  3. package/.next/build-manifest.json +13 -14
  4. package/.next/next-minimal-server.js.nft.json +1 -1
  5. package/.next/next-server.js.nft.json +1 -1
  6. package/.next/prerender-manifest.json +3 -3
  7. package/.next/required-server-files.js +2 -0
  8. package/.next/required-server-files.json +2 -0
  9. package/.next/server/app/(app)/page.js +2 -15
  10. package/.next/server/app/(app)/page.js.nft.json +1 -1
  11. package/.next/server/app/(app)/page_client-reference-manifest.js +1 -3
  12. package/.next/server/app/(app)/session/[name]/page.js +2 -15
  13. package/.next/server/app/(app)/session/[name]/page.js.nft.json +1 -1
  14. package/.next/server/app/(app)/session/[name]/page_client-reference-manifest.js +1 -3
  15. package/.next/server/app/(app)/settings/key/page.js +2 -15
  16. package/.next/server/app/(app)/settings/key/page.js.nft.json +1 -1
  17. package/.next/server/app/(app)/settings/key/page_client-reference-manifest.js +1 -3
  18. package/.next/server/app/_global-error/page.js +32 -9
  19. package/.next/server/app/_global-error/page.js.nft.json +1 -1
  20. package/.next/server/app/_global-error/page_client-reference-manifest.js +1 -3
  21. package/.next/server/app/_global-error.html +1 -1
  22. package/.next/server/app/_global-error.meta +2 -1
  23. package/.next/server/app/_global-error.rsc +7 -7
  24. package/.next/server/app/_global-error.segments/_full.segment.rsc +7 -7
  25. package/.next/server/app/_global-error.segments/{__PAGE__.segment.rsc → _global-error/__PAGE__.segment.rsc} +2 -2
  26. package/.next/server/app/_global-error.segments/_global-error.segment.rsc +5 -0
  27. package/.next/server/app/_global-error.segments/_head.segment.rsc +3 -3
  28. package/.next/server/app/_global-error.segments/_index.segment.rsc +3 -3
  29. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  30. package/.next/server/app/_not-found/page.js +2 -13
  31. package/.next/server/app/_not-found/page.js.nft.json +1 -1
  32. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -3
  33. package/.next/server/app/_not-found.html +1 -1
  34. package/.next/server/app/_not-found.rsc +14 -12
  35. package/.next/server/app/_not-found.segments/_full.segment.rsc +14 -12
  36. package/.next/server/app/_not-found.segments/_head.segment.rsc +4 -4
  37. package/.next/server/app/_not-found.segments/_index.segment.rsc +6 -6
  38. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
  39. package/.next/server/app/_not-found.segments/_not-found.segment.rsc +3 -3
  40. package/.next/server/app/_not-found.segments/_tree.segment.rsc +4 -2
  41. package/.next/server/app/api/analyze/route.js +12 -9
  42. package/.next/server/app/api/analyze/route.js.nft.json +1 -1
  43. package/.next/server/app/api/analyze/route_client-reference-manifest.js +1 -3
  44. package/.next/server/app/api/key/route.js +1 -8
  45. package/.next/server/app/api/key/route.js.nft.json +1 -1
  46. package/.next/server/app/api/key/route_client-reference-manifest.js +1 -3
  47. package/.next/server/app/api/key-status/route.js +1 -7
  48. package/.next/server/app/api/key-status/route.js.nft.json +1 -1
  49. package/.next/server/app/api/key-status/route_client-reference-manifest.js +1 -3
  50. package/.next/server/app/api/models/route.js +1 -7
  51. package/.next/server/app/api/models/route.js.nft.json +1 -1
  52. package/.next/server/app/api/models/route_client-reference-manifest.js +1 -3
  53. package/.next/server/app/api/revise/route.js +1 -8
  54. package/.next/server/app/api/revise/route.js.nft.json +1 -1
  55. package/.next/server/app/api/revise/route_client-reference-manifest.js +1 -3
  56. package/.next/server/app/icon.svg/route.js +1 -7
  57. package/.next/server/app/icon.svg/route.js.nft.json +1 -1
  58. package/.next/server/app/index.html +1 -1
  59. package/.next/server/app/index.rsc +24 -27
  60. package/.next/server/app/index.segments/!KGFwcCk/__PAGE__.segment.rsc +6 -6
  61. package/.next/server/app/index.segments/!KGFwcCk.segment.rsc +9 -9
  62. package/.next/server/app/index.segments/_full.segment.rsc +24 -27
  63. package/.next/server/app/index.segments/_head.segment.rsc +4 -4
  64. package/.next/server/app/index.segments/_index.segment.rsc +6 -6
  65. package/.next/server/app/index.segments/_tree.segment.rsc +4 -4
  66. package/.next/server/app/record-test/page.js +8 -14
  67. package/.next/server/app/record-test/page.js.nft.json +1 -1
  68. package/.next/server/app/record-test/page_client-reference-manifest.js +1 -3
  69. package/.next/server/app/record-test.html +2 -2
  70. package/.next/server/app/record-test.rsc +16 -16
  71. package/.next/server/app/record-test.segments/_full.segment.rsc +16 -16
  72. package/.next/server/app/record-test.segments/_head.segment.rsc +4 -4
  73. package/.next/server/app/record-test.segments/_index.segment.rsc +6 -6
  74. package/.next/server/app/record-test.segments/_tree.segment.rsc +4 -4
  75. package/.next/server/app/record-test.segments/record-test/__PAGE__.segment.rsc +4 -4
  76. package/.next/server/app/record-test.segments/record-test.segment.rsc +3 -3
  77. package/.next/server/app/settings/key.html +1 -1
  78. package/.next/server/app/settings/key.rsc +28 -34
  79. package/.next/server/app/settings/key.segments/!KGFwcCk/settings/key/__PAGE__.segment.rsc +5 -5
  80. package/.next/server/app/settings/key.segments/!KGFwcCk/settings/key.segment.rsc +3 -3
  81. package/.next/server/app/settings/key.segments/!KGFwcCk/settings.segment.rsc +3 -3
  82. package/.next/server/app/settings/key.segments/!KGFwcCk.segment.rsc +9 -9
  83. package/.next/server/app/settings/key.segments/_full.segment.rsc +28 -34
  84. package/.next/server/app/settings/key.segments/_head.segment.rsc +4 -4
  85. package/.next/server/app/settings/key.segments/_index.segment.rsc +6 -6
  86. package/.next/server/app/settings/key.segments/_tree.segment.rsc +4 -4
  87. package/.next/server/app/styleguide/page.js +2 -15
  88. package/.next/server/app/styleguide/page.js.nft.json +1 -1
  89. package/.next/server/app/styleguide/page_client-reference-manifest.js +1 -3
  90. package/.next/server/app/styleguide.html +1 -1
  91. package/.next/server/app/styleguide.rsc +68 -71
  92. package/.next/server/app/styleguide.segments/_full.segment.rsc +68 -71
  93. package/.next/server/app/styleguide.segments/_head.segment.rsc +4 -4
  94. package/.next/server/app/styleguide.segments/_index.segment.rsc +6 -6
  95. package/.next/server/app/styleguide.segments/_tree.segment.rsc +4 -4
  96. package/.next/server/app/styleguide.segments/styleguide/__PAGE__.segment.rsc +43 -45
  97. package/.next/server/app/styleguide.segments/styleguide.segment.rsc +3 -3
  98. package/.next/server/app-paths-manifest.json +5 -5
  99. package/.next/server/chunks/15.js +1 -0
  100. package/.next/server/chunks/319.js +45 -0
  101. package/.next/server/chunks/367.js +122 -0
  102. package/.next/server/chunks/393.js +4 -0
  103. package/.next/server/chunks/491.js +2 -0
  104. package/.next/server/chunks/497.js +1 -0
  105. package/.next/server/chunks/546.js +1 -0
  106. package/.next/server/chunks/592.js +44 -0
  107. package/.next/server/chunks/607.js +4 -0
  108. package/.next/server/chunks/724.js +1 -0
  109. package/.next/server/chunks/741.js +18 -0
  110. package/.next/server/chunks/813.js +1 -0
  111. package/.next/server/chunks/837.js +75 -0
  112. package/.next/server/chunks/852.js +14 -0
  113. package/.next/server/chunks/907.js +62 -0
  114. package/.next/server/chunks/915.js +8 -0
  115. package/.next/server/chunks/994.js +8 -0
  116. package/.next/server/middleware-build-manifest.js +1 -21
  117. package/.next/server/middleware-manifest.json +2 -2
  118. package/.next/server/middleware-react-loadable-manifest.js +1 -0
  119. package/.next/server/next-font-manifest.js +1 -1
  120. package/.next/server/next-font-manifest.json +1 -31
  121. package/.next/server/pages/404.html +1 -1
  122. package/.next/server/pages/500.html +1 -1
  123. package/.next/server/server-reference-manifest.js +1 -1
  124. package/.next/server/server-reference-manifest.json +1 -5
  125. package/.next/server/webpack-runtime.js +1 -0
  126. package/.next/static/FExJe2q2O67X3zxf-SYQ_/_buildManifest.js +1 -0
  127. package/.next/static/chunks/185-9c51ded7cd36ca7e.js +1 -0
  128. package/.next/static/chunks/20-cca33f633fa125b2.js +1 -0
  129. package/.next/static/chunks/27-02413cc56fbb4570.js +1 -0
  130. package/.next/static/chunks/376-6f7bc95550542e0b.js +62 -0
  131. package/.next/static/chunks/479-ea67f878851afbcd.js +1 -0
  132. package/.next/static/chunks/493-6bd8c75c972d3abd.js +2 -0
  133. package/.next/static/chunks/4bd1b696-deb4a0a1da1923b0.js +1 -0
  134. package/.next/static/chunks/603-6235d4d53b37035c.js +1 -0
  135. package/.next/static/chunks/743-c183133e0fbf1564.js +44 -0
  136. package/.next/static/chunks/793-5e37343b804eb1d9.js +1 -0
  137. package/.next/static/chunks/794-dc751ec6c8c611f8.js +32 -0
  138. package/.next/static/chunks/924-9226750edc5c2c2f.js +1 -0
  139. package/.next/static/chunks/95247769-a29d70f7fbba27c6.js +1 -0
  140. package/.next/static/chunks/app/(app)/layout-aad46049bfd54648.js +1 -0
  141. package/.next/static/chunks/app/(app)/page-d75e1fccccdbe30e.js +1 -0
  142. package/.next/static/chunks/app/(app)/session/[name]/page-60529ed1fd7a66a1.js +1 -0
  143. package/.next/static/chunks/app/(app)/settings/key/page-c2aab9f11db98d4e.js +1 -0
  144. package/.next/static/chunks/app/_global-error/page-b1c3f51315835726.js +1 -0
  145. package/.next/static/chunks/app/_not-found/page-6830be21b0ed0c95.js +1 -0
  146. package/.next/static/chunks/app/api/analyze/route-b1c3f51315835726.js +1 -0
  147. package/.next/static/chunks/app/api/key/route-b1c3f51315835726.js +1 -0
  148. package/.next/static/chunks/app/api/key-status/route-b1c3f51315835726.js +1 -0
  149. package/.next/static/chunks/app/api/models/route-b1c3f51315835726.js +1 -0
  150. package/.next/static/chunks/app/api/revise/route-b1c3f51315835726.js +1 -0
  151. package/.next/static/chunks/app/layout-aa71ca14e7f13c0c.js +1 -0
  152. package/.next/static/chunks/app/record-test/page-efb4287dda79ede4.js +7 -0
  153. package/.next/static/chunks/app/styleguide/page-f39510e82c1f9f31.js +1 -0
  154. package/.next/static/chunks/framework-b29f9083d3cda3b2.js +1 -0
  155. package/.next/static/chunks/main-app-39f57c6e6702740e.js +1 -0
  156. package/.next/static/chunks/main-fac8900b4f9c4833.js +5 -0
  157. package/.next/static/chunks/next/dist/client/components/builtin/app-error-b1c3f51315835726.js +1 -0
  158. package/.next/static/chunks/next/dist/client/components/builtin/forbidden-b1c3f51315835726.js +1 -0
  159. package/.next/static/chunks/next/dist/client/components/builtin/global-error-c1d4bb24e31b66a2.js +1 -0
  160. package/.next/static/chunks/next/dist/client/components/builtin/not-found-b1c3f51315835726.js +1 -0
  161. package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-b1c3f51315835726.js +1 -0
  162. package/.next/static/chunks/webpack-ceb933bd5f77076f.js +1 -0
  163. package/.next/static/css/e2905f0858acd77d.css +3 -0
  164. package/.next/types/app/(app)/page.ts +87 -0
  165. package/.next/types/app/(app)/session/[name]/page.ts +87 -0
  166. package/.next/types/app/(app)/settings/key/page.ts +87 -0
  167. package/.next/types/app/api/analyze/route.ts +351 -0
  168. package/.next/types/app/api/key/route.ts +351 -0
  169. package/.next/types/app/api/key-status/route.ts +351 -0
  170. package/.next/types/app/api/models/route.ts +351 -0
  171. package/.next/types/app/api/revise/route.ts +351 -0
  172. package/.next/types/app/layout.ts +87 -0
  173. package/.next/types/app/record-test/page.ts +87 -0
  174. package/.next/types/app/styleguide/page.ts +87 -0
  175. package/.next/types/package.json +1 -0
  176. package/README.md +4 -6
  177. package/next.config.ts +8 -0
  178. package/package.json +4 -4
  179. package/.next/build/56416d4ae4ce586f.js +0 -6
  180. package/.next/build/56416d4ae4ce586f.js.map +0 -5
  181. package/.next/build/chunks/[root-of-the-server]__0oj80bi._.js +0 -206
  182. package/.next/build/chunks/[root-of-the-server]__0oj80bi._.js.map +0 -8
  183. package/.next/build/chunks/[root-of-the-server]__1f933tp._.js +0 -500
  184. package/.next/build/chunks/[root-of-the-server]__1f933tp._.js.map +0 -11
  185. package/.next/build/chunks/[turbopack-node]_transforms_postcss_ts_0b7xl6g._.js +0 -13
  186. package/.next/build/chunks/[turbopack-node]_transforms_postcss_ts_0b7xl6g._.js.map +0 -5
  187. package/.next/build/chunks/[turbopack]_runtime.js +0 -890
  188. package/.next/build/chunks/[turbopack]_runtime.js.map +0 -11
  189. package/.next/build/chunks/node_modules_20v-8wl._.js +0 -6832
  190. package/.next/build/chunks/node_modules_20v-8wl._.js.map +0 -47
  191. package/.next/build/package.json +0 -1
  192. package/.next/cache/.previewinfo +0 -1
  193. package/.next/cache/.rscinfo +0 -1
  194. package/.next/cache/.tsbuildinfo +0 -1
  195. package/.next/diagnostics/route-bundle-stats.json +0 -111
  196. package/.next/fallback-build-manifest.json +0 -13
  197. package/.next/server/app/(app)/page/app-paths-manifest.json +0 -3
  198. package/.next/server/app/(app)/page/build-manifest.json +0 -17
  199. package/.next/server/app/(app)/page/next-font-manifest.json +0 -11
  200. package/.next/server/app/(app)/page/server-reference-manifest.json +0 -4
  201. package/.next/server/app/(app)/page.js.map +0 -5
  202. package/.next/server/app/(app)/session/[name]/page/app-paths-manifest.json +0 -3
  203. package/.next/server/app/(app)/session/[name]/page/build-manifest.json +0 -17
  204. package/.next/server/app/(app)/session/[name]/page/next-font-manifest.json +0 -11
  205. package/.next/server/app/(app)/session/[name]/page/react-loadable-manifest.json +0 -1
  206. package/.next/server/app/(app)/session/[name]/page/server-reference-manifest.json +0 -4
  207. package/.next/server/app/(app)/session/[name]/page.js.map +0 -5
  208. package/.next/server/app/(app)/settings/key/page/app-paths-manifest.json +0 -3
  209. package/.next/server/app/(app)/settings/key/page/build-manifest.json +0 -17
  210. package/.next/server/app/(app)/settings/key/page/next-font-manifest.json +0 -11
  211. package/.next/server/app/(app)/settings/key/page/react-loadable-manifest.json +0 -1
  212. package/.next/server/app/(app)/settings/key/page/server-reference-manifest.json +0 -4
  213. package/.next/server/app/(app)/settings/key/page.js.map +0 -5
  214. package/.next/server/app/_global-error/page/app-paths-manifest.json +0 -3
  215. package/.next/server/app/_global-error/page/build-manifest.json +0 -17
  216. package/.next/server/app/_global-error/page/next-font-manifest.json +0 -6
  217. package/.next/server/app/_global-error/page/react-loadable-manifest.json +0 -1
  218. package/.next/server/app/_global-error/page/server-reference-manifest.json +0 -4
  219. package/.next/server/app/_global-error/page.js.map +0 -5
  220. package/.next/server/app/_not-found/page/app-paths-manifest.json +0 -3
  221. package/.next/server/app/_not-found/page/build-manifest.json +0 -17
  222. package/.next/server/app/_not-found/page/next-font-manifest.json +0 -11
  223. package/.next/server/app/_not-found/page/react-loadable-manifest.json +0 -1
  224. package/.next/server/app/_not-found/page/server-reference-manifest.json +0 -4
  225. package/.next/server/app/_not-found/page.js.map +0 -5
  226. package/.next/server/app/api/analyze/route/app-paths-manifest.json +0 -3
  227. package/.next/server/app/api/analyze/route/build-manifest.json +0 -9
  228. package/.next/server/app/api/analyze/route/server-reference-manifest.json +0 -4
  229. package/.next/server/app/api/analyze/route.js.map +0 -5
  230. package/.next/server/app/api/key/route/app-paths-manifest.json +0 -3
  231. package/.next/server/app/api/key/route/build-manifest.json +0 -9
  232. package/.next/server/app/api/key/route/server-reference-manifest.json +0 -4
  233. package/.next/server/app/api/key/route.js.map +0 -5
  234. package/.next/server/app/api/key-status/route/app-paths-manifest.json +0 -3
  235. package/.next/server/app/api/key-status/route/build-manifest.json +0 -9
  236. package/.next/server/app/api/key-status/route/server-reference-manifest.json +0 -4
  237. package/.next/server/app/api/key-status/route.js.map +0 -5
  238. package/.next/server/app/api/models/route/app-paths-manifest.json +0 -3
  239. package/.next/server/app/api/models/route/build-manifest.json +0 -9
  240. package/.next/server/app/api/models/route/server-reference-manifest.json +0 -4
  241. package/.next/server/app/api/models/route.js.map +0 -5
  242. package/.next/server/app/api/revise/route/app-paths-manifest.json +0 -3
  243. package/.next/server/app/api/revise/route/build-manifest.json +0 -9
  244. package/.next/server/app/api/revise/route/server-reference-manifest.json +0 -4
  245. package/.next/server/app/api/revise/route.js.map +0 -5
  246. package/.next/server/app/icon.svg/route/app-paths-manifest.json +0 -3
  247. package/.next/server/app/icon.svg/route/build-manifest.json +0 -9
  248. package/.next/server/app/icon.svg/route.js.map +0 -5
  249. package/.next/server/app/record-test/page/app-paths-manifest.json +0 -3
  250. package/.next/server/app/record-test/page/build-manifest.json +0 -17
  251. package/.next/server/app/record-test/page/next-font-manifest.json +0 -11
  252. package/.next/server/app/record-test/page/react-loadable-manifest.json +0 -1
  253. package/.next/server/app/record-test/page/server-reference-manifest.json +0 -4
  254. package/.next/server/app/record-test/page.js.map +0 -5
  255. package/.next/server/app/styleguide/page/app-paths-manifest.json +0 -3
  256. package/.next/server/app/styleguide/page/build-manifest.json +0 -17
  257. package/.next/server/app/styleguide/page/next-font-manifest.json +0 -11
  258. package/.next/server/app/styleguide/page/react-loadable-manifest.json +0 -1
  259. package/.next/server/app/styleguide/page/server-reference-manifest.json +0 -4
  260. package/.next/server/app/styleguide/page.js.map +0 -5
  261. package/.next/server/chunks/[externals]__1l0bqbz._.js +0 -3
  262. package/.next/server/chunks/[externals]__1l0bqbz._.js.map +0 -1
  263. package/.next/server/chunks/[root-of-the-server]__00u0a0m._.js +0 -3
  264. package/.next/server/chunks/[root-of-the-server]__00u0a0m._.js.map +0 -1
  265. package/.next/server/chunks/[root-of-the-server]__02oblj7._.js +0 -3
  266. package/.next/server/chunks/[root-of-the-server]__02oblj7._.js.map +0 -1
  267. package/.next/server/chunks/[root-of-the-server]__04dzkv1._.js +0 -3
  268. package/.next/server/chunks/[root-of-the-server]__04dzkv1._.js.map +0 -1
  269. package/.next/server/chunks/[root-of-the-server]__081zp1m._.js +0 -3
  270. package/.next/server/chunks/[root-of-the-server]__081zp1m._.js.map +0 -1
  271. package/.next/server/chunks/[root-of-the-server]__0dkua3v._.js +0 -3
  272. package/.next/server/chunks/[root-of-the-server]__0dkua3v._.js.map +0 -1
  273. package/.next/server/chunks/[root-of-the-server]__0ezil_h._.js +0 -3
  274. package/.next/server/chunks/[root-of-the-server]__0ezil_h._.js.map +0 -1
  275. package/.next/server/chunks/[root-of-the-server]__0ww_12a._.js +0 -3
  276. package/.next/server/chunks/[root-of-the-server]__0ww_12a._.js.map +0 -1
  277. package/.next/server/chunks/[root-of-the-server]__0x-kpif._.js +0 -3
  278. package/.next/server/chunks/[root-of-the-server]__0x-kpif._.js.map +0 -1
  279. package/.next/server/chunks/[root-of-the-server]__15bjnu5._.js +0 -3
  280. package/.next/server/chunks/[root-of-the-server]__15bjnu5._.js.map +0 -1
  281. package/.next/server/chunks/[root-of-the-server]__1kmbnvv._.js +0 -3
  282. package/.next/server/chunks/[root-of-the-server]__1kmbnvv._.js.map +0 -1
  283. package/.next/server/chunks/[root-of-the-server]__1kp4vwc._.js +0 -14
  284. package/.next/server/chunks/[root-of-the-server]__1kp4vwc._.js.map +0 -1
  285. package/.next/server/chunks/[root-of-the-server]__1lbd3kd._.js +0 -3
  286. package/.next/server/chunks/[root-of-the-server]__1lbd3kd._.js.map +0 -1
  287. package/.next/server/chunks/[root-of-the-server]__1ra6psc._.js +0 -3
  288. package/.next/server/chunks/[root-of-the-server]__1ra6psc._.js.map +0 -1
  289. package/.next/server/chunks/[root-of-the-server]__1zn977r._.js +0 -3
  290. package/.next/server/chunks/[root-of-the-server]__1zn977r._.js.map +0 -1
  291. package/.next/server/chunks/[turbopack]_runtime.js +0 -903
  292. package/.next/server/chunks/[turbopack]_runtime.js.map +0 -11
  293. package/.next/server/chunks/_04h1cv_._.js +0 -185
  294. package/.next/server/chunks/_04h1cv_._.js.map +0 -1
  295. package/.next/server/chunks/_0pqmhjh._.js +0 -185
  296. package/.next/server/chunks/_0pqmhjh._.js.map +0 -1
  297. package/.next/server/chunks/_next-internal_server_app_api_analyze_route_actions_0lx-23h.js +0 -3
  298. package/.next/server/chunks/_next-internal_server_app_api_analyze_route_actions_0lx-23h.js.map +0 -1
  299. package/.next/server/chunks/_next-internal_server_app_api_key-status_route_actions_1qgztm2.js +0 -3
  300. package/.next/server/chunks/_next-internal_server_app_api_key-status_route_actions_1qgztm2.js.map +0 -1
  301. package/.next/server/chunks/_next-internal_server_app_api_key_route_actions_15n2qsb.js +0 -3
  302. package/.next/server/chunks/_next-internal_server_app_api_key_route_actions_15n2qsb.js.map +0 -1
  303. package/.next/server/chunks/_next-internal_server_app_api_models_route_actions_1h6mkqp.js +0 -3
  304. package/.next/server/chunks/_next-internal_server_app_api_models_route_actions_1h6mkqp.js.map +0 -1
  305. package/.next/server/chunks/_next-internal_server_app_api_revise_route_actions_19kk3m-.js +0 -3
  306. package/.next/server/chunks/_next-internal_server_app_api_revise_route_actions_19kk3m-.js.map +0 -1
  307. package/.next/server/chunks/_next-internal_server_app_icon_svg_route_actions_1r2h_ub.js +0 -3
  308. package/.next/server/chunks/_next-internal_server_app_icon_svg_route_actions_1r2h_ub.js.map +0 -1
  309. package/.next/server/chunks/node_modules_0x51oh_._.js +0 -10
  310. package/.next/server/chunks/node_modules_0x51oh_._.js.map +0 -1
  311. package/.next/server/chunks/node_modules_19bvt3l._.js +0 -6
  312. package/.next/server/chunks/node_modules_19bvt3l._.js.map +0 -1
  313. package/.next/server/chunks/node_modules_1_-az43._.js +0 -16
  314. package/.next/server/chunks/node_modules_1_-az43._.js.map +0 -1
  315. package/.next/server/chunks/node_modules_1t2pqct._.js +0 -10
  316. package/.next/server/chunks/node_modules_1t2pqct._.js.map +0 -1
  317. package/.next/server/chunks/node_modules_next_08s853w._.js +0 -13
  318. package/.next/server/chunks/node_modules_next_08s853w._.js.map +0 -1
  319. package/.next/server/chunks/node_modules_node-fetch_src_index_1gf-_pn.js +0 -3
  320. package/.next/server/chunks/node_modules_node-fetch_src_index_1gf-_pn.js.map +0 -1
  321. package/.next/server/chunks/ssr/[externals]__1l0bqbz._.js +0 -3
  322. package/.next/server/chunks/ssr/[externals]__1l0bqbz._.js.map +0 -1
  323. package/.next/server/chunks/ssr/[root-of-the-server]__06ync7f._.js +0 -3
  324. package/.next/server/chunks/ssr/[root-of-the-server]__06ync7f._.js.map +0 -1
  325. package/.next/server/chunks/ssr/[root-of-the-server]__0hml-pd._.js +0 -3
  326. package/.next/server/chunks/ssr/[root-of-the-server]__0hml-pd._.js.map +0 -1
  327. package/.next/server/chunks/ssr/[root-of-the-server]__0ntia6u._.js +0 -3
  328. package/.next/server/chunks/ssr/[root-of-the-server]__0ntia6u._.js.map +0 -1
  329. package/.next/server/chunks/ssr/[root-of-the-server]__0sdpd0o._.js +0 -3
  330. package/.next/server/chunks/ssr/[root-of-the-server]__0sdpd0o._.js.map +0 -1
  331. package/.next/server/chunks/ssr/[root-of-the-server]__0w2pa_y._.js +0 -33
  332. package/.next/server/chunks/ssr/[root-of-the-server]__0w2pa_y._.js.map +0 -1
  333. package/.next/server/chunks/ssr/[root-of-the-server]__10y0-wv._.js +0 -3
  334. package/.next/server/chunks/ssr/[root-of-the-server]__10y0-wv._.js.map +0 -1
  335. package/.next/server/chunks/ssr/[root-of-the-server]__11_7weu._.js +0 -3
  336. package/.next/server/chunks/ssr/[root-of-the-server]__11_7weu._.js.map +0 -1
  337. package/.next/server/chunks/ssr/[root-of-the-server]__1_stkwn._.js +0 -3
  338. package/.next/server/chunks/ssr/[root-of-the-server]__1_stkwn._.js.map +0 -1
  339. package/.next/server/chunks/ssr/[root-of-the-server]__1dky4g0._.js +0 -33
  340. package/.next/server/chunks/ssr/[root-of-the-server]__1dky4g0._.js.map +0 -1
  341. package/.next/server/chunks/ssr/[root-of-the-server]__1k6ey-q._.js +0 -3
  342. package/.next/server/chunks/ssr/[root-of-the-server]__1k6ey-q._.js.map +0 -1
  343. package/.next/server/chunks/ssr/[root-of-the-server]__1la73u1._.js +0 -3
  344. package/.next/server/chunks/ssr/[root-of-the-server]__1la73u1._.js.map +0 -1
  345. package/.next/server/chunks/ssr/[root-of-the-server]__1nshnxm._.js +0 -3
  346. package/.next/server/chunks/ssr/[root-of-the-server]__1nshnxm._.js.map +0 -1
  347. package/.next/server/chunks/ssr/[root-of-the-server]__1pssg49._.js +0 -3
  348. package/.next/server/chunks/ssr/[root-of-the-server]__1pssg49._.js.map +0 -1
  349. package/.next/server/chunks/ssr/[root-of-the-server]__1q6zd30._.js +0 -3
  350. package/.next/server/chunks/ssr/[root-of-the-server]__1q6zd30._.js.map +0 -1
  351. package/.next/server/chunks/ssr/[root-of-the-server]__1qlmg27._.js +0 -3
  352. package/.next/server/chunks/ssr/[root-of-the-server]__1qlmg27._.js.map +0 -1
  353. package/.next/server/chunks/ssr/[turbopack]_runtime.js +0 -903
  354. package/.next/server/chunks/ssr/[turbopack]_runtime.js.map +0 -11
  355. package/.next/server/chunks/ssr/_01pksvc._.js +0 -78
  356. package/.next/server/chunks/ssr/_01pksvc._.js.map +0 -1
  357. package/.next/server/chunks/ssr/_03lgii8._.js +0 -3
  358. package/.next/server/chunks/ssr/_03lgii8._.js.map +0 -1
  359. package/.next/server/chunks/ssr/_05tft_r._.js +0 -3
  360. package/.next/server/chunks/ssr/_05tft_r._.js.map +0 -1
  361. package/.next/server/chunks/ssr/_06gt995._.js +0 -3
  362. package/.next/server/chunks/ssr/_06gt995._.js.map +0 -1
  363. package/.next/server/chunks/ssr/_0jrh37c._.js +0 -46
  364. package/.next/server/chunks/ssr/_0jrh37c._.js.map +0 -1
  365. package/.next/server/chunks/ssr/_0kw6yq_._.js +0 -3
  366. package/.next/server/chunks/ssr/_0kw6yq_._.js.map +0 -1
  367. package/.next/server/chunks/ssr/_0l3c05z._.js +0 -3
  368. package/.next/server/chunks/ssr/_0l3c05z._.js.map +0 -1
  369. package/.next/server/chunks/ssr/_0n-ojw-._.js +0 -3
  370. package/.next/server/chunks/ssr/_0n-ojw-._.js.map +0 -1
  371. package/.next/server/chunks/ssr/_0t6a1ln._.js +0 -6
  372. package/.next/server/chunks/ssr/_0t6a1ln._.js.map +0 -1
  373. package/.next/server/chunks/ssr/_0td-xk-._.js +0 -3
  374. package/.next/server/chunks/ssr/_0td-xk-._.js.map +0 -1
  375. package/.next/server/chunks/ssr/_0y92f-y._.js +0 -46
  376. package/.next/server/chunks/ssr/_0y92f-y._.js.map +0 -1
  377. package/.next/server/chunks/ssr/_1b6au28._.js +0 -3
  378. package/.next/server/chunks/ssr/_1b6au28._.js.map +0 -1
  379. package/.next/server/chunks/ssr/_next-internal_server_app_(app)_page_actions_1gxdy57.js +0 -3
  380. package/.next/server/chunks/ssr/_next-internal_server_app_(app)_page_actions_1gxdy57.js.map +0 -1
  381. package/.next/server/chunks/ssr/_next-internal_server_app_(app)_session_[name]_page_actions_115d_ja.js +0 -3
  382. package/.next/server/chunks/ssr/_next-internal_server_app_(app)_session_[name]_page_actions_115d_ja.js.map +0 -1
  383. package/.next/server/chunks/ssr/_next-internal_server_app_(app)_settings_key_page_actions_1jsc3or.js +0 -3
  384. package/.next/server/chunks/ssr/_next-internal_server_app_(app)_settings_key_page_actions_1jsc3or.js.map +0 -1
  385. package/.next/server/chunks/ssr/_next-internal_server_app__global-error_page_actions_0zi5s8-.js +0 -3
  386. package/.next/server/chunks/ssr/_next-internal_server_app__global-error_page_actions_0zi5s8-.js.map +0 -1
  387. package/.next/server/chunks/ssr/_next-internal_server_app__not-found_page_actions_0pt47yr.js +0 -3
  388. package/.next/server/chunks/ssr/_next-internal_server_app__not-found_page_actions_0pt47yr.js.map +0 -1
  389. package/.next/server/chunks/ssr/_next-internal_server_app_record-test_page_actions_0a_yofw.js +0 -3
  390. package/.next/server/chunks/ssr/_next-internal_server_app_record-test_page_actions_0a_yofw.js.map +0 -1
  391. package/.next/server/chunks/ssr/_next-internal_server_app_styleguide_page_actions_174h7x7.js +0 -3
  392. package/.next/server/chunks/ssr/_next-internal_server_app_styleguide_page_actions_174h7x7.js.map +0 -1
  393. package/.next/server/chunks/ssr/node_modules_0el53_h._.js +0 -10
  394. package/.next/server/chunks/ssr/node_modules_0el53_h._.js.map +0 -1
  395. package/.next/server/chunks/ssr/node_modules_0h91jdk._.js +0 -33
  396. package/.next/server/chunks/ssr/node_modules_0h91jdk._.js.map +0 -1
  397. package/.next/server/chunks/ssr/node_modules_1fxqp22._.js +0 -10
  398. package/.next/server/chunks/ssr/node_modules_1fxqp22._.js.map +0 -1
  399. package/.next/server/chunks/ssr/node_modules_1loo6j7._.js +0 -6
  400. package/.next/server/chunks/ssr/node_modules_1loo6j7._.js.map +0 -1
  401. package/.next/server/chunks/ssr/node_modules_1pvqj0r._.js +0 -3
  402. package/.next/server/chunks/ssr/node_modules_1pvqj0r._.js.map +0 -1
  403. package/.next/server/chunks/ssr/node_modules_next_dist_0uboya6._.js +0 -6
  404. package/.next/server/chunks/ssr/node_modules_next_dist_0uboya6._.js.map +0 -1
  405. package/.next/server/chunks/ssr/node_modules_next_dist_172hvm-._.js +0 -19
  406. package/.next/server/chunks/ssr/node_modules_next_dist_172hvm-._.js.map +0 -1
  407. package/.next/server/chunks/ssr/node_modules_next_dist_client_components_0wpq8j3._.js +0 -3
  408. package/.next/server/chunks/ssr/node_modules_next_dist_client_components_0wpq8j3._.js.map +0 -1
  409. package/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_forbidden_0symwr9.js +0 -3
  410. package/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_forbidden_0symwr9.js.map +0 -1
  411. package/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_global-error_0-o-goa.js +0 -3
  412. package/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_global-error_0-o-goa.js.map +0 -1
  413. package/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_unauthorized_0l_sp0x.js +0 -3
  414. package/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_unauthorized_0l_sp0x.js.map +0 -1
  415. package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0_q50sh.js +0 -4
  416. package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0_q50sh.js.map +0 -1
  417. package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0_xbpm0.js +0 -4
  418. package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0_xbpm0.js.map +0 -1
  419. package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_119i6eu.js +0 -4
  420. package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_119i6eu.js.map +0 -1
  421. package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_14nl2rs.js +0 -4
  422. package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_14nl2rs.js.map +0 -1
  423. package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_18u8k23.js +0 -4
  424. package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_18u8k23.js.map +0 -1
  425. package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_19--w_z.js +0 -4
  426. package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_19--w_z.js.map +0 -1
  427. package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1_iwj0a.js +0 -4
  428. package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1_iwj0a.js.map +0 -1
  429. package/.next/server/chunks/ssr/node_modules_node-fetch_src_index_1e0t9p6.js +0 -3
  430. package/.next/server/chunks/ssr/node_modules_node-fetch_src_index_1e0t9p6.js.map +0 -1
  431. package/.next/server/chunks/ssr/src_19oqe9t._.js +0 -3
  432. package/.next/server/chunks/ssr/src_19oqe9t._.js.map +0 -1
  433. package/.next/server/chunks/ssr/src_app_record-test_page_tsx_08-2bld._.js +0 -9
  434. package/.next/server/chunks/ssr/src_app_record-test_page_tsx_08-2bld._.js.map +0 -1
  435. package/.next/server/chunks/ssr/src_components_app-sidebar_tsx_1xx2k53._.js +0 -3
  436. package/.next/server/chunks/ssr/src_components_app-sidebar_tsx_1xx2k53._.js.map +0 -1
  437. package/.next/server/chunks/ssr/src_components_settings_key-setup_tsx_0jxhnpa._.js +0 -3
  438. package/.next/server/chunks/ssr/src_components_settings_key-setup_tsx_0jxhnpa._.js.map +0 -1
  439. package/.next/server/chunks/ssr/src_components_ui_0lq7ewx._.js +0 -3
  440. package/.next/server/chunks/ssr/src_components_ui_0lq7ewx._.js.map +0 -1
  441. package/.next/static/CIZxngYjzUw1Kb0KrE473/_buildManifest.js +0 -11
  442. package/.next/static/CIZxngYjzUw1Kb0KrE473/_clientMiddlewareManifest.js +0 -1
  443. package/.next/static/chunks/05-c3ty_6dwfk.js +0 -1
  444. package/.next/static/chunks/07-hzktxqjvzd.js +0 -4
  445. package/.next/static/chunks/09bn0buuu6k2x.js +0 -1
  446. package/.next/static/chunks/0kkimqpuecvfn.js +0 -1
  447. package/.next/static/chunks/0mk1g55o6kl1e.js +0 -2
  448. package/.next/static/chunks/0ul837-9k0zx_.js +0 -63
  449. package/.next/static/chunks/0wpges32btt_p.js +0 -1
  450. package/.next/static/chunks/18qo-4_hfuwko.js +0 -1
  451. package/.next/static/chunks/1_dsevxz78b97.js +0 -1
  452. package/.next/static/chunks/2-oqhnxovgl_2.js +0 -44
  453. package/.next/static/chunks/2et_7fxuzt9cq.js +0 -31
  454. package/.next/static/chunks/2im7c515bo69p.js +0 -1
  455. package/.next/static/chunks/2merpuxt1zcvf.js +0 -1
  456. package/.next/static/chunks/2qb8lge1e2sv2.js +0 -1
  457. package/.next/static/chunks/2sj0gufu0lojq.css +0 -3
  458. package/.next/static/chunks/2zloaj9ja_vpy.js +0 -1
  459. package/.next/static/chunks/3rvy2rc9d_hwt.js +0 -1
  460. package/.next/static/chunks/3uci2qhsbp444.js +0 -50
  461. package/.next/static/chunks/3yao5u25-bf0g.js +0 -1
  462. package/.next/static/chunks/41_0qs6kjmoek.js +0 -1
  463. package/.next/static/chunks/4395sbjm36lbl.js +0 -1
  464. package/.next/static/chunks/turbopack-2cevjmbuh84ft.js +0 -1
  465. package/.next/static/media/icon.2_sgat73yt9an.svg +0 -7
  466. package/.next/trace +0 -1
  467. package/.next/trace-build +0 -1
  468. package/.next/turbopack +0 -0
  469. /package/.next/{server/app/(app)/page/react-loadable-manifest.json → react-loadable-manifest.json} +0 -0
  470. /package/.next/static/{CIZxngYjzUw1Kb0KrE473 → FExJe2q2O67X3zxf-SYQ_}/_ssgManifest.js +0 -0
  471. /package/.next/static/chunks/{0cz1d0mv5g_q7.js → polyfills-42372ed130431b0a.js} +0 -0
  472. /package/.next/static/media/{5ce348bf30bf5439-s.31988l_ccedte.woff2 → 013b72fa676f92e0-s.woff2} +0 -0
  473. /package/.next/static/media/{5476f68d60460930-s.2uwcyprjm3xu3.woff2 → 19cfc7226ec3afaa-s.woff2} +0 -0
  474. /package/.next/static/media/{9c72aa0f40e4eef8-s.1y4-pdgsjb-pw.woff2 → 21350d82a1f187e9-s.woff2} +0 -0
  475. /package/.next/static/media/{bbc41e54d2fcbd21-s.1rgnod-3esatf.woff2 → 2b5b02fc7e511755-s.woff2} +0 -0
  476. /package/.next/static/media/{6306c77e7c8268e4-s.2dbetqa9o8jxf.woff2 → 65f03d54ccadf4a8-s.woff2} +0 -0
  477. /package/.next/static/media/{797e433ab948586e-s.p.0r6juujl39pe6.woff2 → 7d4881bb7e1bf84d-s.p.woff2} +0 -0
  478. /package/.next/static/media/{1bffadaabf893a1e-s.3-6t-g6q0vh0a.woff2 → 8e9860b6e62d6359-s.woff2} +0 -0
  479. /package/.next/static/media/{4fa387ec64143e14-s.2tuy5pz7dlieh.woff2 → b9408752a0c24fb9-s.woff2} +0 -0
  480. /package/.next/static/media/{2c55a0e60120577a-s.0-dom-5bn10r2.woff2 → ba9851c3c22cd980-s.woff2} +0 -0
  481. /package/.next/static/media/{ad66f9afd8947f86-s.3lvt2whj97whp.woff2 → c5fe6dc8356a8c31-s.woff2} +0 -0
  482. /package/.next/static/media/{2bbe8d2671613f1f-s.0k62hbripvv8p.woff2 → df0a9ae256c0569c-s.woff2} +0 -0
  483. /package/.next/static/media/{7d817b4c03b0c5f1-s.1uyisp29ctx0d.woff2 → e038a29029a234f2-s.woff2} +0 -0
  484. /package/.next/static/media/{83afe278b6a6bb3c-s.p.2bn3s6zvc0dyp.woff2 → e4af272ccee01ff0-s.p.woff2} +0 -0
@@ -0,0 +1,351 @@
1
+ // File: /Users/vasylf/Desktop/projects/vellum/src/app/api/revise/route.ts
2
+ import * as entry from '../../../../../src/app/api/revise/route.js'
3
+ import type { NextRequest } from 'next/server.js'
4
+
5
+ import type { InstantConfigForTypeCheckInternal } from 'next/dist/build/segment-config/app/app-segment-config.js'
6
+
7
+ type TEntry = typeof import('../../../../../src/app/api/revise/route.js')
8
+
9
+ type SegmentParams<T extends Object = any> = T extends Record<string, any>
10
+ ? { [K in keyof T]: T[K] extends string ? string | string[] | undefined : never }
11
+ : T
12
+
13
+ // Check that the entry is a valid entry
14
+ checkFields<Diff<{
15
+ GET?: Function
16
+ HEAD?: Function
17
+ OPTIONS?: Function
18
+ POST?: Function
19
+ PUT?: Function
20
+ DELETE?: Function
21
+ PATCH?: Function
22
+ config?: {}
23
+ generateStaticParams?: Function
24
+ unstable_instant?: InstantConfigForTypeCheckInternal
25
+ unstable_dynamicStaleTime?: number
26
+ revalidate?: RevalidateRange<TEntry> | false
27
+ dynamic?: 'auto' | 'force-dynamic' | 'error' | 'force-static'
28
+ dynamicParams?: boolean
29
+ fetchCache?: 'auto' | 'force-no-store' | 'only-no-store' | 'default-no-store' | 'default-cache' | 'only-cache' | 'force-cache'
30
+ preferredRegion?: 'auto' | 'global' | 'home' | string | string[]
31
+ runtime?: 'nodejs' | 'experimental-edge' | 'edge'
32
+ maxDuration?: number
33
+
34
+ }, TEntry, ''>>()
35
+
36
+ type RouteContext = { params: Promise<SegmentParams> }
37
+ // Check the prop type of the entry function
38
+ if ('GET' in entry) {
39
+ checkFields<
40
+ Diff<
41
+ ParamCheck<Request | NextRequest>,
42
+ {
43
+ __tag__: 'GET'
44
+ __param_position__: 'first'
45
+ __param_type__: FirstArg<MaybeField<TEntry, 'GET'>>
46
+ },
47
+ 'GET'
48
+ >
49
+ >()
50
+ checkFields<
51
+ Diff<
52
+ ParamCheck<RouteContext>,
53
+ {
54
+ __tag__: 'GET'
55
+ __param_position__: 'second'
56
+ __param_type__: SecondArg<MaybeField<TEntry, 'GET'>>
57
+ },
58
+ 'GET'
59
+ >
60
+ >()
61
+
62
+ checkFields<
63
+ Diff<
64
+ {
65
+ __tag__: 'GET',
66
+ __return_type__: Response | void | never | Promise<Response | void | never>
67
+ },
68
+ {
69
+ __tag__: 'GET',
70
+ __return_type__: ReturnType<MaybeField<TEntry, 'GET'>>
71
+ },
72
+ 'GET'
73
+ >
74
+ >()
75
+ }
76
+ // Check the prop type of the entry function
77
+ if ('HEAD' in entry) {
78
+ checkFields<
79
+ Diff<
80
+ ParamCheck<Request | NextRequest>,
81
+ {
82
+ __tag__: 'HEAD'
83
+ __param_position__: 'first'
84
+ __param_type__: FirstArg<MaybeField<TEntry, 'HEAD'>>
85
+ },
86
+ 'HEAD'
87
+ >
88
+ >()
89
+ checkFields<
90
+ Diff<
91
+ ParamCheck<RouteContext>,
92
+ {
93
+ __tag__: 'HEAD'
94
+ __param_position__: 'second'
95
+ __param_type__: SecondArg<MaybeField<TEntry, 'HEAD'>>
96
+ },
97
+ 'HEAD'
98
+ >
99
+ >()
100
+
101
+ checkFields<
102
+ Diff<
103
+ {
104
+ __tag__: 'HEAD',
105
+ __return_type__: Response | void | never | Promise<Response | void | never>
106
+ },
107
+ {
108
+ __tag__: 'HEAD',
109
+ __return_type__: ReturnType<MaybeField<TEntry, 'HEAD'>>
110
+ },
111
+ 'HEAD'
112
+ >
113
+ >()
114
+ }
115
+ // Check the prop type of the entry function
116
+ if ('OPTIONS' in entry) {
117
+ checkFields<
118
+ Diff<
119
+ ParamCheck<Request | NextRequest>,
120
+ {
121
+ __tag__: 'OPTIONS'
122
+ __param_position__: 'first'
123
+ __param_type__: FirstArg<MaybeField<TEntry, 'OPTIONS'>>
124
+ },
125
+ 'OPTIONS'
126
+ >
127
+ >()
128
+ checkFields<
129
+ Diff<
130
+ ParamCheck<RouteContext>,
131
+ {
132
+ __tag__: 'OPTIONS'
133
+ __param_position__: 'second'
134
+ __param_type__: SecondArg<MaybeField<TEntry, 'OPTIONS'>>
135
+ },
136
+ 'OPTIONS'
137
+ >
138
+ >()
139
+
140
+ checkFields<
141
+ Diff<
142
+ {
143
+ __tag__: 'OPTIONS',
144
+ __return_type__: Response | void | never | Promise<Response | void | never>
145
+ },
146
+ {
147
+ __tag__: 'OPTIONS',
148
+ __return_type__: ReturnType<MaybeField<TEntry, 'OPTIONS'>>
149
+ },
150
+ 'OPTIONS'
151
+ >
152
+ >()
153
+ }
154
+ // Check the prop type of the entry function
155
+ if ('POST' in entry) {
156
+ checkFields<
157
+ Diff<
158
+ ParamCheck<Request | NextRequest>,
159
+ {
160
+ __tag__: 'POST'
161
+ __param_position__: 'first'
162
+ __param_type__: FirstArg<MaybeField<TEntry, 'POST'>>
163
+ },
164
+ 'POST'
165
+ >
166
+ >()
167
+ checkFields<
168
+ Diff<
169
+ ParamCheck<RouteContext>,
170
+ {
171
+ __tag__: 'POST'
172
+ __param_position__: 'second'
173
+ __param_type__: SecondArg<MaybeField<TEntry, 'POST'>>
174
+ },
175
+ 'POST'
176
+ >
177
+ >()
178
+
179
+ checkFields<
180
+ Diff<
181
+ {
182
+ __tag__: 'POST',
183
+ __return_type__: Response | void | never | Promise<Response | void | never>
184
+ },
185
+ {
186
+ __tag__: 'POST',
187
+ __return_type__: ReturnType<MaybeField<TEntry, 'POST'>>
188
+ },
189
+ 'POST'
190
+ >
191
+ >()
192
+ }
193
+ // Check the prop type of the entry function
194
+ if ('PUT' in entry) {
195
+ checkFields<
196
+ Diff<
197
+ ParamCheck<Request | NextRequest>,
198
+ {
199
+ __tag__: 'PUT'
200
+ __param_position__: 'first'
201
+ __param_type__: FirstArg<MaybeField<TEntry, 'PUT'>>
202
+ },
203
+ 'PUT'
204
+ >
205
+ >()
206
+ checkFields<
207
+ Diff<
208
+ ParamCheck<RouteContext>,
209
+ {
210
+ __tag__: 'PUT'
211
+ __param_position__: 'second'
212
+ __param_type__: SecondArg<MaybeField<TEntry, 'PUT'>>
213
+ },
214
+ 'PUT'
215
+ >
216
+ >()
217
+
218
+ checkFields<
219
+ Diff<
220
+ {
221
+ __tag__: 'PUT',
222
+ __return_type__: Response | void | never | Promise<Response | void | never>
223
+ },
224
+ {
225
+ __tag__: 'PUT',
226
+ __return_type__: ReturnType<MaybeField<TEntry, 'PUT'>>
227
+ },
228
+ 'PUT'
229
+ >
230
+ >()
231
+ }
232
+ // Check the prop type of the entry function
233
+ if ('DELETE' in entry) {
234
+ checkFields<
235
+ Diff<
236
+ ParamCheck<Request | NextRequest>,
237
+ {
238
+ __tag__: 'DELETE'
239
+ __param_position__: 'first'
240
+ __param_type__: FirstArg<MaybeField<TEntry, 'DELETE'>>
241
+ },
242
+ 'DELETE'
243
+ >
244
+ >()
245
+ checkFields<
246
+ Diff<
247
+ ParamCheck<RouteContext>,
248
+ {
249
+ __tag__: 'DELETE'
250
+ __param_position__: 'second'
251
+ __param_type__: SecondArg<MaybeField<TEntry, 'DELETE'>>
252
+ },
253
+ 'DELETE'
254
+ >
255
+ >()
256
+
257
+ checkFields<
258
+ Diff<
259
+ {
260
+ __tag__: 'DELETE',
261
+ __return_type__: Response | void | never | Promise<Response | void | never>
262
+ },
263
+ {
264
+ __tag__: 'DELETE',
265
+ __return_type__: ReturnType<MaybeField<TEntry, 'DELETE'>>
266
+ },
267
+ 'DELETE'
268
+ >
269
+ >()
270
+ }
271
+ // Check the prop type of the entry function
272
+ if ('PATCH' in entry) {
273
+ checkFields<
274
+ Diff<
275
+ ParamCheck<Request | NextRequest>,
276
+ {
277
+ __tag__: 'PATCH'
278
+ __param_position__: 'first'
279
+ __param_type__: FirstArg<MaybeField<TEntry, 'PATCH'>>
280
+ },
281
+ 'PATCH'
282
+ >
283
+ >()
284
+ checkFields<
285
+ Diff<
286
+ ParamCheck<RouteContext>,
287
+ {
288
+ __tag__: 'PATCH'
289
+ __param_position__: 'second'
290
+ __param_type__: SecondArg<MaybeField<TEntry, 'PATCH'>>
291
+ },
292
+ 'PATCH'
293
+ >
294
+ >()
295
+
296
+ checkFields<
297
+ Diff<
298
+ {
299
+ __tag__: 'PATCH',
300
+ __return_type__: Response | void | never | Promise<Response | void | never>
301
+ },
302
+ {
303
+ __tag__: 'PATCH',
304
+ __return_type__: ReturnType<MaybeField<TEntry, 'PATCH'>>
305
+ },
306
+ 'PATCH'
307
+ >
308
+ >()
309
+ }
310
+
311
+ // Check the arguments and return type of the generateStaticParams function
312
+ if ('generateStaticParams' in entry) {
313
+ checkFields<Diff<{ params: SegmentParams }, FirstArg<MaybeField<TEntry, 'generateStaticParams'>>, 'generateStaticParams'>>()
314
+ checkFields<Diff<{ __tag__: 'generateStaticParams', __return_type__: any[] | Promise<any[]> }, { __tag__: 'generateStaticParams', __return_type__: ReturnType<MaybeField<TEntry, 'generateStaticParams'>> }>>()
315
+ }
316
+
317
+ export interface PageProps {
318
+ params?: Promise<SegmentParams>
319
+ searchParams?: Promise<any>
320
+ }
321
+ export interface LayoutProps {
322
+ children?: React.ReactNode
323
+
324
+ params?: Promise<SegmentParams>
325
+ }
326
+
327
+ // =============
328
+ // Utility types
329
+ type RevalidateRange<T> = T extends { revalidate: any } ? NonNegative<T['revalidate']> : never
330
+
331
+ // If T is unknown or any, it will be an empty {} type. Otherwise, it will be the same as Omit<T, keyof Base>.
332
+ type OmitWithTag<T, K extends keyof any, _M> = Omit<T, K>
333
+ type Diff<Base, T extends Base, Message extends string = ''> = 0 extends (1 & T) ? {} : OmitWithTag<T, keyof Base, Message>
334
+
335
+ type FirstArg<T extends Function> = T extends (...args: [infer T, any]) => any ? unknown extends T ? any : T : never
336
+ type SecondArg<T extends Function> = T extends (...args: [any, infer T]) => any ? unknown extends T ? any : T : never
337
+ type MaybeField<T, K extends string> = T extends { [k in K]: infer G } ? G extends Function ? G : never : never
338
+
339
+ type ParamCheck<T> = {
340
+ __tag__: string
341
+ __param_position__: string
342
+ __param_type__: T
343
+ }
344
+
345
+ function checkFields<_ extends { [k in keyof any]: never }>() {}
346
+
347
+ // https://github.com/sindresorhus/type-fest
348
+ type Numeric = number | bigint
349
+ type Zero = 0 | 0n
350
+ type Negative<T extends Numeric> = T extends Zero ? never : `${T}` extends `-${string}` ? T : never
351
+ type NonNegative<T extends Numeric> = T extends Zero ? T : Negative<T> extends never ? T : '__invalid_negative_number__'
@@ -0,0 +1,87 @@
1
+ // File: /Users/vasylf/Desktop/projects/vellum/src/app/layout.tsx
2
+ import * as entry from '../../../src/app/layout.js'
3
+ import type { ResolvingMetadata, ResolvingViewport } from 'next/dist/lib/metadata/types/metadata-interface.js'
4
+
5
+ import type { InstantConfigForTypeCheckInternal } from 'next/dist/build/segment-config/app/app-segment-config.js'
6
+
7
+ type TEntry = typeof import('../../../src/app/layout.js')
8
+
9
+ type SegmentParams<T extends Object = any> = T extends Record<string, any>
10
+ ? { [K in keyof T]: T[K] extends string ? string | string[] | undefined : never }
11
+ : T
12
+
13
+ // Check that the entry is a valid entry
14
+ checkFields<Diff<{
15
+ default: Function
16
+ config?: {}
17
+ generateStaticParams?: Function
18
+ unstable_instant?: InstantConfigForTypeCheckInternal
19
+ unstable_dynamicStaleTime?: number
20
+ revalidate?: RevalidateRange<TEntry> | false
21
+ dynamic?: 'auto' | 'force-dynamic' | 'error' | 'force-static'
22
+ dynamicParams?: boolean
23
+ fetchCache?: 'auto' | 'force-no-store' | 'only-no-store' | 'default-no-store' | 'default-cache' | 'only-cache' | 'force-cache'
24
+ preferredRegion?: 'auto' | 'global' | 'home' | string | string[]
25
+ runtime?: 'nodejs' | 'experimental-edge' | 'edge'
26
+ maxDuration?: number
27
+
28
+ metadata?: any
29
+ generateMetadata?: Function
30
+ viewport?: any
31
+ generateViewport?: Function
32
+
33
+ }, TEntry, ''>>()
34
+
35
+
36
+ // Check the prop type of the entry function
37
+ checkFields<Diff<LayoutProps, FirstArg<TEntry['default']>, 'default'>>()
38
+
39
+ // Check the arguments and return type of the generateMetadata function
40
+ if ('generateMetadata' in entry) {
41
+ checkFields<Diff<LayoutProps, FirstArg<MaybeField<TEntry, 'generateMetadata'>>, 'generateMetadata'>>()
42
+ checkFields<Diff<ResolvingMetadata, SecondArg<MaybeField<TEntry, 'generateMetadata'>>, 'generateMetadata'>>()
43
+ }
44
+
45
+ // Check the arguments and return type of the generateViewport function
46
+ if ('generateViewport' in entry) {
47
+ checkFields<Diff<LayoutProps, FirstArg<MaybeField<TEntry, 'generateViewport'>>, 'generateViewport'>>()
48
+ checkFields<Diff<ResolvingViewport, SecondArg<MaybeField<TEntry, 'generateViewport'>>, 'generateViewport'>>()
49
+ }
50
+
51
+ // Check the arguments and return type of the generateStaticParams function
52
+ if ('generateStaticParams' in entry) {
53
+ checkFields<Diff<{ params: SegmentParams }, FirstArg<MaybeField<TEntry, 'generateStaticParams'>>, 'generateStaticParams'>>()
54
+ checkFields<Diff<{ __tag__: 'generateStaticParams', __return_type__: any[] | Promise<any[]> }, { __tag__: 'generateStaticParams', __return_type__: ReturnType<MaybeField<TEntry, 'generateStaticParams'>> }>>()
55
+ }
56
+
57
+ export interface PageProps {
58
+ params?: Promise<SegmentParams>
59
+ searchParams?: Promise<any>
60
+ }
61
+ export interface LayoutProps {
62
+ children?: React.ReactNode
63
+
64
+ params?: Promise<SegmentParams>
65
+ }
66
+
67
+ // =============
68
+ // Utility types
69
+ type RevalidateRange<T> = T extends { revalidate: any } ? NonNegative<T['revalidate']> : never
70
+
71
+ // If T is unknown or any, it will be an empty {} type. Otherwise, it will be the same as Omit<T, keyof Base>.
72
+ type OmitWithTag<T, K extends keyof any, _M> = Omit<T, K>
73
+ type Diff<Base, T extends Base, Message extends string = ''> = 0 extends (1 & T) ? {} : OmitWithTag<T, keyof Base, Message>
74
+
75
+ type FirstArg<T extends Function> = T extends (...args: [infer T, any]) => any ? unknown extends T ? any : T : never
76
+ type SecondArg<T extends Function> = T extends (...args: [any, infer T]) => any ? unknown extends T ? any : T : never
77
+ type MaybeField<T, K extends string> = T extends { [k in K]: infer G } ? G extends Function ? G : never : never
78
+
79
+
80
+
81
+ function checkFields<_ extends { [k in keyof any]: never }>() {}
82
+
83
+ // https://github.com/sindresorhus/type-fest
84
+ type Numeric = number | bigint
85
+ type Zero = 0 | 0n
86
+ type Negative<T extends Numeric> = T extends Zero ? never : `${T}` extends `-${string}` ? T : never
87
+ type NonNegative<T extends Numeric> = T extends Zero ? T : Negative<T> extends never ? T : '__invalid_negative_number__'
@@ -0,0 +1,87 @@
1
+ // File: /Users/vasylf/Desktop/projects/vellum/src/app/record-test/page.tsx
2
+ import * as entry from '../../../../src/app/record-test/page.js'
3
+ import type { ResolvingMetadata, ResolvingViewport } from 'next/dist/lib/metadata/types/metadata-interface.js'
4
+
5
+ import type { InstantConfigForTypeCheckInternal } from 'next/dist/build/segment-config/app/app-segment-config.js'
6
+
7
+ type TEntry = typeof import('../../../../src/app/record-test/page.js')
8
+
9
+ type SegmentParams<T extends Object = any> = T extends Record<string, any>
10
+ ? { [K in keyof T]: T[K] extends string ? string | string[] | undefined : never }
11
+ : T
12
+
13
+ // Check that the entry is a valid entry
14
+ checkFields<Diff<{
15
+ default: Function
16
+ config?: {}
17
+ generateStaticParams?: Function
18
+ unstable_instant?: InstantConfigForTypeCheckInternal
19
+ unstable_dynamicStaleTime?: number
20
+ revalidate?: RevalidateRange<TEntry> | false
21
+ dynamic?: 'auto' | 'force-dynamic' | 'error' | 'force-static'
22
+ dynamicParams?: boolean
23
+ fetchCache?: 'auto' | 'force-no-store' | 'only-no-store' | 'default-no-store' | 'default-cache' | 'only-cache' | 'force-cache'
24
+ preferredRegion?: 'auto' | 'global' | 'home' | string | string[]
25
+ runtime?: 'nodejs' | 'experimental-edge' | 'edge'
26
+ maxDuration?: number
27
+
28
+ metadata?: any
29
+ generateMetadata?: Function
30
+ viewport?: any
31
+ generateViewport?: Function
32
+
33
+ }, TEntry, ''>>()
34
+
35
+
36
+ // Check the prop type of the entry function
37
+ checkFields<Diff<PageProps, FirstArg<TEntry['default']>, 'default'>>()
38
+
39
+ // Check the arguments and return type of the generateMetadata function
40
+ if ('generateMetadata' in entry) {
41
+ checkFields<Diff<PageProps, FirstArg<MaybeField<TEntry, 'generateMetadata'>>, 'generateMetadata'>>()
42
+ checkFields<Diff<ResolvingMetadata, SecondArg<MaybeField<TEntry, 'generateMetadata'>>, 'generateMetadata'>>()
43
+ }
44
+
45
+ // Check the arguments and return type of the generateViewport function
46
+ if ('generateViewport' in entry) {
47
+ checkFields<Diff<PageProps, FirstArg<MaybeField<TEntry, 'generateViewport'>>, 'generateViewport'>>()
48
+ checkFields<Diff<ResolvingViewport, SecondArg<MaybeField<TEntry, 'generateViewport'>>, 'generateViewport'>>()
49
+ }
50
+
51
+ // Check the arguments and return type of the generateStaticParams function
52
+ if ('generateStaticParams' in entry) {
53
+ checkFields<Diff<{ params: SegmentParams }, FirstArg<MaybeField<TEntry, 'generateStaticParams'>>, 'generateStaticParams'>>()
54
+ checkFields<Diff<{ __tag__: 'generateStaticParams', __return_type__: any[] | Promise<any[]> }, { __tag__: 'generateStaticParams', __return_type__: ReturnType<MaybeField<TEntry, 'generateStaticParams'>> }>>()
55
+ }
56
+
57
+ export interface PageProps {
58
+ params?: Promise<SegmentParams>
59
+ searchParams?: Promise<any>
60
+ }
61
+ export interface LayoutProps {
62
+ children?: React.ReactNode
63
+
64
+ params?: Promise<SegmentParams>
65
+ }
66
+
67
+ // =============
68
+ // Utility types
69
+ type RevalidateRange<T> = T extends { revalidate: any } ? NonNegative<T['revalidate']> : never
70
+
71
+ // If T is unknown or any, it will be an empty {} type. Otherwise, it will be the same as Omit<T, keyof Base>.
72
+ type OmitWithTag<T, K extends keyof any, _M> = Omit<T, K>
73
+ type Diff<Base, T extends Base, Message extends string = ''> = 0 extends (1 & T) ? {} : OmitWithTag<T, keyof Base, Message>
74
+
75
+ type FirstArg<T extends Function> = T extends (...args: [infer T, any]) => any ? unknown extends T ? any : T : never
76
+ type SecondArg<T extends Function> = T extends (...args: [any, infer T]) => any ? unknown extends T ? any : T : never
77
+ type MaybeField<T, K extends string> = T extends { [k in K]: infer G } ? G extends Function ? G : never : never
78
+
79
+
80
+
81
+ function checkFields<_ extends { [k in keyof any]: never }>() {}
82
+
83
+ // https://github.com/sindresorhus/type-fest
84
+ type Numeric = number | bigint
85
+ type Zero = 0 | 0n
86
+ type Negative<T extends Numeric> = T extends Zero ? never : `${T}` extends `-${string}` ? T : never
87
+ type NonNegative<T extends Numeric> = T extends Zero ? T : Negative<T> extends never ? T : '__invalid_negative_number__'
@@ -0,0 +1,87 @@
1
+ // File: /Users/vasylf/Desktop/projects/vellum/src/app/styleguide/page.tsx
2
+ import * as entry from '../../../../src/app/styleguide/page.js'
3
+ import type { ResolvingMetadata, ResolvingViewport } from 'next/dist/lib/metadata/types/metadata-interface.js'
4
+
5
+ import type { InstantConfigForTypeCheckInternal } from 'next/dist/build/segment-config/app/app-segment-config.js'
6
+
7
+ type TEntry = typeof import('../../../../src/app/styleguide/page.js')
8
+
9
+ type SegmentParams<T extends Object = any> = T extends Record<string, any>
10
+ ? { [K in keyof T]: T[K] extends string ? string | string[] | undefined : never }
11
+ : T
12
+
13
+ // Check that the entry is a valid entry
14
+ checkFields<Diff<{
15
+ default: Function
16
+ config?: {}
17
+ generateStaticParams?: Function
18
+ unstable_instant?: InstantConfigForTypeCheckInternal
19
+ unstable_dynamicStaleTime?: number
20
+ revalidate?: RevalidateRange<TEntry> | false
21
+ dynamic?: 'auto' | 'force-dynamic' | 'error' | 'force-static'
22
+ dynamicParams?: boolean
23
+ fetchCache?: 'auto' | 'force-no-store' | 'only-no-store' | 'default-no-store' | 'default-cache' | 'only-cache' | 'force-cache'
24
+ preferredRegion?: 'auto' | 'global' | 'home' | string | string[]
25
+ runtime?: 'nodejs' | 'experimental-edge' | 'edge'
26
+ maxDuration?: number
27
+
28
+ metadata?: any
29
+ generateMetadata?: Function
30
+ viewport?: any
31
+ generateViewport?: Function
32
+
33
+ }, TEntry, ''>>()
34
+
35
+
36
+ // Check the prop type of the entry function
37
+ checkFields<Diff<PageProps, FirstArg<TEntry['default']>, 'default'>>()
38
+
39
+ // Check the arguments and return type of the generateMetadata function
40
+ if ('generateMetadata' in entry) {
41
+ checkFields<Diff<PageProps, FirstArg<MaybeField<TEntry, 'generateMetadata'>>, 'generateMetadata'>>()
42
+ checkFields<Diff<ResolvingMetadata, SecondArg<MaybeField<TEntry, 'generateMetadata'>>, 'generateMetadata'>>()
43
+ }
44
+
45
+ // Check the arguments and return type of the generateViewport function
46
+ if ('generateViewport' in entry) {
47
+ checkFields<Diff<PageProps, FirstArg<MaybeField<TEntry, 'generateViewport'>>, 'generateViewport'>>()
48
+ checkFields<Diff<ResolvingViewport, SecondArg<MaybeField<TEntry, 'generateViewport'>>, 'generateViewport'>>()
49
+ }
50
+
51
+ // Check the arguments and return type of the generateStaticParams function
52
+ if ('generateStaticParams' in entry) {
53
+ checkFields<Diff<{ params: SegmentParams }, FirstArg<MaybeField<TEntry, 'generateStaticParams'>>, 'generateStaticParams'>>()
54
+ checkFields<Diff<{ __tag__: 'generateStaticParams', __return_type__: any[] | Promise<any[]> }, { __tag__: 'generateStaticParams', __return_type__: ReturnType<MaybeField<TEntry, 'generateStaticParams'>> }>>()
55
+ }
56
+
57
+ export interface PageProps {
58
+ params?: Promise<SegmentParams>
59
+ searchParams?: Promise<any>
60
+ }
61
+ export interface LayoutProps {
62
+ children?: React.ReactNode
63
+
64
+ params?: Promise<SegmentParams>
65
+ }
66
+
67
+ // =============
68
+ // Utility types
69
+ type RevalidateRange<T> = T extends { revalidate: any } ? NonNegative<T['revalidate']> : never
70
+
71
+ // If T is unknown or any, it will be an empty {} type. Otherwise, it will be the same as Omit<T, keyof Base>.
72
+ type OmitWithTag<T, K extends keyof any, _M> = Omit<T, K>
73
+ type Diff<Base, T extends Base, Message extends string = ''> = 0 extends (1 & T) ? {} : OmitWithTag<T, keyof Base, Message>
74
+
75
+ type FirstArg<T extends Function> = T extends (...args: [infer T, any]) => any ? unknown extends T ? any : T : never
76
+ type SecondArg<T extends Function> = T extends (...args: [any, infer T]) => any ? unknown extends T ? any : T : never
77
+ type MaybeField<T, K extends string> = T extends { [k in K]: infer G } ? G extends Function ? G : never : never
78
+
79
+
80
+
81
+ function checkFields<_ extends { [k in keyof any]: never }>() {}
82
+
83
+ // https://github.com/sindresorhus/type-fest
84
+ type Numeric = number | bigint
85
+ type Zero = 0 | 0n
86
+ type Negative<T extends Numeric> = T extends Zero ? never : `${T}` extends `-${string}` ? T : never
87
+ type NonNegative<T extends Numeric> = T extends Zero ? T : Negative<T> extends never ? T : '__invalid_negative_number__'
@@ -0,0 +1 @@
1
+ {"type": "module"}
package/README.md CHANGED
@@ -1,8 +1,8 @@
1
1
  # Vellum
2
2
 
3
- > Think out loud over your screen. Vellum turns the recording into a structured report — every point you made, timestamped, screenshotted, and sorted into tasks.
3
+ > Vellum turns spoken screen reviews into structured task reports.
4
4
 
5
- The best reviews happen out loud: you point at something and say what's wrong with it — then it vanishes into a screen recording nobody rewatches. Vellum keeps the substance instead. Talk through the work, and get back a clean, actionable report — problems, ideas, questions, and decisions, each linked to the exact moment and frame it came from. It runs entirely on your machine, under your own API key: no account, no cloud.
5
+ Talk through a design, a build, or a doc point at what's wrong and say it — and get back every point you made as a discrete task: categorized, timestamped, and linked to the exact frame it came from. It runs entirely on your machine, under your own API key no account, no cloud.
6
6
 
7
7
  Built for design and product reviews — the analysis is tuned for critiquing UI, checking a build against its design, and reviewing docs — but the mechanic works for any spoken walkthrough of a screen.
8
8
 
@@ -127,13 +127,11 @@ Re-running analysis keeps your history — the latest report is always `report.m
127
127
 
128
128
  ## Contributing
129
129
 
130
- Issues and pull requests are welcome — there are templates for both. If you're developing Vellum rather than just using it, start with:
130
+ Issues and pull requests are welcome. If you're developing Vellum rather than just using it, start with:
131
131
 
132
132
  - [`ARCHITECTURE.md`](ARCHITECTURE.md) — the current locked state of the system
133
- - [`DECISIONS.md`](DECISIONS.md) — the architecture decision log
134
- - [`SCENARIOS.md`](SCENARIOS.md) — the core user scenarios the product supports
135
133
 
136
- Vellum is developed with AI assistance; the architecture docs above are the source of truth for how it fits together.
134
+ Vellum is developed with AI assistance; `ARCHITECTURE.md` is the source of truth for how it fits together.
137
135
 
138
136
  ## License
139
137
 
package/next.config.ts CHANGED
@@ -8,6 +8,14 @@ const nextConfig: NextConfig = {
8
8
  // from node_modules, where the path stays correct. Same reasoning for the
9
9
  // Gemini SDK's native/file deps — exclude the packages the API route spawns
10
10
  // or streams from disk. (ADR-014: the analyze route runs the Node pipeline.)
11
+ //
12
+ // NOTE: the prod build MUST run with `next build --webpack` (see package.json
13
+ // build/prepack). Turbopack's production build externalizes this package but
14
+ // writes the runtime require under a content-hashed specifier —
15
+ // require("ffmpeg-static-<hash>") instead of require("ffmpeg-static") — which
16
+ // resolves to nothing, so /api/analyze fails at module load with a bare 500
17
+ // (TASK-67, ADR-029). Webpack keeps the external as the plain specifier. `next
18
+ // dev` is unaffected and stays on Turbopack.
11
19
  serverExternalPackages: ["ffmpeg-static"],
12
20
 
13
21
  // Vellum is a focused, single-window desktop tool; the floating Next.js dev