alchemy 0.62.2 → 0.63.0

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 (611) hide show
  1. package/bin/alchemy.js +1518 -1204
  2. package/bin/commands/deploy.ts +2 -0
  3. package/bin/commands/dev.ts +2 -0
  4. package/bin/services/execute-alchemy.ts +11 -0
  5. package/bin/services/template-manager.ts +2 -0
  6. package/bin/types.ts +2 -1
  7. package/lib/alchemy.d.ts +6 -22
  8. package/lib/alchemy.d.ts.map +1 -1
  9. package/lib/alchemy.js +65 -169
  10. package/lib/alchemy.js.map +1 -1
  11. package/lib/apply.d.ts +0 -2
  12. package/lib/apply.d.ts.map +1 -1
  13. package/lib/apply.js +2 -16
  14. package/lib/apply.js.map +1 -1
  15. package/lib/aws/account-id.d.ts.map +1 -1
  16. package/lib/aws/account-id.js +3 -2
  17. package/lib/aws/account-id.js.map +1 -1
  18. package/lib/aws/bucket.d.ts +8 -2
  19. package/lib/aws/bucket.d.ts.map +1 -1
  20. package/lib/aws/bucket.js +21 -14
  21. package/lib/aws/bucket.js.map +1 -1
  22. package/lib/aws/ec2/security-group.d.ts +8 -2
  23. package/lib/aws/ec2/security-group.d.ts.map +1 -1
  24. package/lib/aws/ec2/security-group.js +7 -2
  25. package/lib/aws/ec2/security-group.js.map +1 -1
  26. package/lib/aws/function.d.ts +9 -3
  27. package/lib/aws/function.d.ts.map +1 -1
  28. package/lib/aws/function.js +35 -26
  29. package/lib/aws/function.js.map +1 -1
  30. package/lib/aws/policy-attachment.d.ts.map +1 -1
  31. package/lib/aws/policy-attachment.js +2 -1
  32. package/lib/aws/policy-attachment.js.map +1 -1
  33. package/lib/aws/policy.d.ts +8 -2
  34. package/lib/aws/policy.d.ts.map +1 -1
  35. package/lib/aws/policy.js +13 -4
  36. package/lib/aws/policy.js.map +1 -1
  37. package/lib/aws/queue.d.ts +8 -2
  38. package/lib/aws/queue.d.ts.map +1 -1
  39. package/lib/aws/queue.js +22 -14
  40. package/lib/aws/queue.js.map +1 -1
  41. package/lib/aws/role.d.ts +8 -2
  42. package/lib/aws/role.d.ts.map +1 -1
  43. package/lib/aws/role.js +10 -3
  44. package/lib/aws/role.js.map +1 -1
  45. package/lib/aws/ses.d.ts +1 -1
  46. package/lib/aws/ses.d.ts.map +1 -1
  47. package/lib/aws/ses.js +2 -1
  48. package/lib/aws/ses.js.map +1 -1
  49. package/lib/aws/ssm-parameter.d.ts +8 -2
  50. package/lib/aws/ssm-parameter.d.ts.map +1 -1
  51. package/lib/aws/ssm-parameter.js +15 -10
  52. package/lib/aws/ssm-parameter.js.map +1 -1
  53. package/lib/aws/table.d.ts +8 -2
  54. package/lib/aws/table.d.ts.map +1 -1
  55. package/lib/aws/table.js +17 -9
  56. package/lib/aws/table.js.map +1 -1
  57. package/lib/cloudflare/account-api-token.d.ts +2 -2
  58. package/lib/cloudflare/account-api-token.d.ts.map +1 -1
  59. package/lib/cloudflare/account-api-token.js +7 -6
  60. package/lib/cloudflare/account-api-token.js.map +1 -1
  61. package/lib/cloudflare/ai-gateway.d.ts +9 -4
  62. package/lib/cloudflare/ai-gateway.d.ts.map +1 -1
  63. package/lib/cloudflare/ai-gateway.js +20 -24
  64. package/lib/cloudflare/ai-gateway.js.map +1 -1
  65. package/lib/cloudflare/api-schema.d.ts +2 -2
  66. package/lib/cloudflare/api-schema.d.ts.map +1 -1
  67. package/lib/cloudflare/api-schema.js +6 -2
  68. package/lib/cloudflare/api-schema.js.map +1 -1
  69. package/lib/cloudflare/api-shield.d.ts +5 -1
  70. package/lib/cloudflare/api-shield.d.ts.map +1 -1
  71. package/lib/cloudflare/api-shield.js +6 -1
  72. package/lib/cloudflare/api-shield.js.map +1 -1
  73. package/lib/cloudflare/assets.d.ts +1 -1
  74. package/lib/cloudflare/assets.d.ts.map +1 -1
  75. package/lib/cloudflare/astro/astro.d.ts.map +1 -1
  76. package/lib/cloudflare/astro/astro.js +3 -1
  77. package/lib/cloudflare/astro/astro.js.map +1 -1
  78. package/lib/cloudflare/astro/plugin.d.ts +2 -1
  79. package/lib/cloudflare/astro/plugin.d.ts.map +1 -1
  80. package/lib/cloudflare/astro/plugin.js.map +1 -1
  81. package/lib/cloudflare/bindings.d.ts +2 -2
  82. package/lib/cloudflare/bindings.d.ts.map +1 -1
  83. package/lib/cloudflare/bound.d.ts +1 -1
  84. package/lib/cloudflare/bound.d.ts.map +1 -1
  85. package/lib/cloudflare/bucket.d.ts +120 -1
  86. package/lib/cloudflare/bucket.d.ts.map +1 -1
  87. package/lib/cloudflare/bucket.js +80 -2
  88. package/lib/cloudflare/bucket.js.map +1 -1
  89. package/lib/cloudflare/compatibility-date.gen.d.ts +1 -1
  90. package/lib/cloudflare/compatibility-date.gen.js +1 -1
  91. package/lib/cloudflare/container.d.ts +10 -4
  92. package/lib/cloudflare/container.d.ts.map +1 -1
  93. package/lib/cloudflare/container.js +12 -9
  94. package/lib/cloudflare/container.js.map +1 -1
  95. package/lib/cloudflare/custom-domain.js +2 -1
  96. package/lib/cloudflare/custom-domain.js.map +1 -1
  97. package/lib/cloudflare/d1-database.d.ts +1 -1
  98. package/lib/cloudflare/d1-database.d.ts.map +1 -1
  99. package/lib/cloudflare/d1-database.js +7 -3
  100. package/lib/cloudflare/d1-database.js.map +1 -1
  101. package/lib/cloudflare/dispatch-namespace.d.ts +2 -0
  102. package/lib/cloudflare/dispatch-namespace.d.ts.map +1 -1
  103. package/lib/cloudflare/dispatch-namespace.js +7 -5
  104. package/lib/cloudflare/dispatch-namespace.js.map +1 -1
  105. package/lib/cloudflare/hyperdrive.d.ts +7 -1
  106. package/lib/cloudflare/hyperdrive.d.ts.map +1 -1
  107. package/lib/cloudflare/hyperdrive.js +2 -1
  108. package/lib/cloudflare/hyperdrive.js.map +1 -1
  109. package/lib/cloudflare/kv-namespace.d.ts +3 -0
  110. package/lib/cloudflare/kv-namespace.d.ts.map +1 -1
  111. package/lib/cloudflare/kv-namespace.js +11 -2
  112. package/lib/cloudflare/kv-namespace.js.map +1 -1
  113. package/lib/cloudflare/miniflare/miniflare-worker-proxy.js +3 -1
  114. package/lib/cloudflare/miniflare/miniflare-worker-proxy.js.map +1 -1
  115. package/lib/cloudflare/miniflare/paths.d.ts +4 -0
  116. package/lib/cloudflare/miniflare/paths.d.ts.map +1 -1
  117. package/lib/cloudflare/miniflare/paths.js +11 -0
  118. package/lib/cloudflare/miniflare/paths.js.map +1 -1
  119. package/lib/cloudflare/pipeline.d.ts +14 -3
  120. package/lib/cloudflare/pipeline.d.ts.map +1 -1
  121. package/lib/cloudflare/pipeline.js +31 -2
  122. package/lib/cloudflare/pipeline.js.map +1 -1
  123. package/lib/cloudflare/queue-consumer.js +1 -1
  124. package/lib/cloudflare/queue-consumer.js.map +1 -1
  125. package/lib/cloudflare/queue.d.ts +6 -4
  126. package/lib/cloudflare/queue.d.ts.map +1 -1
  127. package/lib/cloudflare/queue.js +13 -9
  128. package/lib/cloudflare/queue.js.map +1 -1
  129. package/lib/cloudflare/react-router/plugin.d.ts +1 -1
  130. package/lib/cloudflare/react-router/plugin.d.ts.map +1 -1
  131. package/lib/cloudflare/react-router/react-router.d.ts.map +1 -1
  132. package/lib/cloudflare/react-router/react-router.js +32 -2
  133. package/lib/cloudflare/react-router/react-router.js.map +1 -1
  134. package/lib/cloudflare/redwood/plugin.d.ts +2 -1
  135. package/lib/cloudflare/redwood/plugin.d.ts.map +1 -1
  136. package/lib/cloudflare/redwood/plugin.js.map +1 -1
  137. package/lib/cloudflare/route.js +1 -1
  138. package/lib/cloudflare/route.js.map +1 -1
  139. package/lib/cloudflare/ruleset.d.ts +3 -1
  140. package/lib/cloudflare/ruleset.d.ts.map +1 -1
  141. package/lib/cloudflare/ruleset.js +3 -2
  142. package/lib/cloudflare/ruleset.js.map +1 -1
  143. package/lib/cloudflare/secret.d.ts +6 -23
  144. package/lib/cloudflare/secret.d.ts.map +1 -1
  145. package/lib/cloudflare/secret.js +8 -4
  146. package/lib/cloudflare/secret.js.map +1 -1
  147. package/lib/cloudflare/secrets-store.d.ts +1 -1
  148. package/lib/cloudflare/secrets-store.d.ts.map +1 -1
  149. package/lib/cloudflare/secrets-store.js +5 -2
  150. package/lib/cloudflare/secrets-store.js.map +1 -1
  151. package/lib/cloudflare/tunnel.d.ts +5 -1
  152. package/lib/cloudflare/tunnel.d.ts.map +1 -1
  153. package/lib/cloudflare/tunnel.js +5 -1
  154. package/lib/cloudflare/tunnel.js.map +1 -1
  155. package/lib/cloudflare/vectorize-index.d.ts +7 -1
  156. package/lib/cloudflare/vectorize-index.d.ts.map +1 -1
  157. package/lib/cloudflare/vectorize-index.js +5 -2
  158. package/lib/cloudflare/vectorize-index.js.map +1 -1
  159. package/lib/cloudflare/vite/plugin.d.ts +2 -1
  160. package/lib/cloudflare/vite/plugin.d.ts.map +1 -1
  161. package/lib/cloudflare/vite/plugin.js.map +1 -1
  162. package/lib/cloudflare/vite/vite.d.ts +1 -1
  163. package/lib/cloudflare/vite/vite.d.ts.map +1 -1
  164. package/lib/cloudflare/vite/vite.js +1 -1
  165. package/lib/cloudflare/vite/vite.js.map +1 -1
  166. package/lib/cloudflare/website.js +1 -1
  167. package/lib/cloudflare/website.js.map +1 -1
  168. package/lib/cloudflare/worker.d.ts +1 -1
  169. package/lib/cloudflare/worker.d.ts.map +1 -1
  170. package/lib/cloudflare/worker.js +12 -7
  171. package/lib/cloudflare/worker.js.map +1 -1
  172. package/lib/cloudflare/wrangler.json.d.ts +1 -1
  173. package/lib/cloudflare/wrangler.json.d.ts.map +1 -1
  174. package/lib/cloudflare/wrangler.json.js +5 -3
  175. package/lib/cloudflare/wrangler.json.js.map +1 -1
  176. package/lib/docker/container.d.ts +6 -0
  177. package/lib/docker/container.d.ts.map +1 -1
  178. package/lib/docker/container.js +5 -1
  179. package/lib/docker/container.js.map +1 -1
  180. package/lib/docker/network.d.ts +8 -2
  181. package/lib/docker/network.d.ts.map +1 -1
  182. package/lib/docker/network.js +7 -2
  183. package/lib/docker/network.js.map +1 -1
  184. package/lib/docker/volume.d.ts +8 -2
  185. package/lib/docker/volume.d.ts.map +1 -1
  186. package/lib/docker/volume.js +6 -4
  187. package/lib/docker/volume.js.map +1 -1
  188. package/lib/esbuild/bundle.d.ts +1 -1
  189. package/lib/fs/index.d.ts +0 -8
  190. package/lib/fs/index.d.ts.map +1 -1
  191. package/lib/fs/index.js +0 -8
  192. package/lib/fs/index.js.map +1 -1
  193. package/lib/github/client.d.ts +1 -1
  194. package/lib/github/client.d.ts.map +1 -1
  195. package/lib/github/client.js +2 -1
  196. package/lib/github/client.js.map +1 -1
  197. package/lib/github/repository-environment.d.ts +8 -2
  198. package/lib/github/repository-environment.d.ts.map +1 -1
  199. package/lib/github/repository-environment.js +16 -12
  200. package/lib/github/repository-environment.js.map +1 -1
  201. package/lib/neon/project.d.ts +7 -1
  202. package/lib/neon/project.d.ts.map +1 -1
  203. package/lib/neon/project.js +10 -6
  204. package/lib/neon/project.js.map +1 -1
  205. package/lib/planetscale/branch.d.ts +4 -2
  206. package/lib/planetscale/branch.d.ts.map +1 -1
  207. package/lib/planetscale/branch.js +18 -12
  208. package/lib/planetscale/branch.js.map +1 -1
  209. package/lib/planetscale/database.d.ts +8 -2
  210. package/lib/planetscale/database.d.ts.map +1 -1
  211. package/lib/planetscale/database.js +24 -16
  212. package/lib/planetscale/database.js.map +1 -1
  213. package/lib/planetscale/password.d.ts +8 -2
  214. package/lib/planetscale/password.d.ts.map +1 -1
  215. package/lib/planetscale/password.js +2 -2
  216. package/lib/planetscale/password.js.map +1 -1
  217. package/lib/resource.d.ts +0 -2
  218. package/lib/resource.d.ts.map +1 -1
  219. package/lib/resource.js +1 -9
  220. package/lib/resource.js.map +1 -1
  221. package/lib/scope.d.ts +9 -3
  222. package/lib/scope.d.ts.map +1 -1
  223. package/lib/scope.js +21 -34
  224. package/lib/scope.js.map +1 -1
  225. package/lib/sentry/client-key.d.ts +7 -1
  226. package/lib/sentry/client-key.d.ts.map +1 -1
  227. package/lib/sentry/client-key.js +45 -6
  228. package/lib/sentry/client-key.js.map +1 -1
  229. package/lib/sentry/project.d.ts +8 -2
  230. package/lib/sentry/project.d.ts.map +1 -1
  231. package/lib/sentry/project.js +35 -5
  232. package/lib/sentry/project.js.map +1 -1
  233. package/lib/sentry/team.d.ts +8 -2
  234. package/lib/sentry/team.d.ts.map +1 -1
  235. package/lib/sentry/team.js +36 -6
  236. package/lib/sentry/team.js.map +1 -1
  237. package/lib/serde.d.ts +0 -5
  238. package/lib/serde.d.ts.map +1 -1
  239. package/lib/serde.js +0 -28
  240. package/lib/serde.js.map +1 -1
  241. package/lib/state/d1-state-store.d.ts +1 -1
  242. package/lib/state/d1-state-store.d.ts.map +1 -1
  243. package/lib/state/d1-state-store.js +5 -5
  244. package/lib/state/d1-state-store.js.map +1 -1
  245. package/lib/state/sqlite-state-store.d.ts.map +1 -1
  246. package/lib/state/sqlite-state-store.js +7 -11
  247. package/lib/state/sqlite-state-store.js.map +1 -1
  248. package/lib/stripe/card.d.ts.map +1 -1
  249. package/lib/stripe/card.js +3 -2
  250. package/lib/stripe/card.js.map +1 -1
  251. package/lib/stripe/client.d.ts +2 -2
  252. package/lib/stripe/client.d.ts.map +1 -1
  253. package/lib/stripe/client.js +4 -3
  254. package/lib/stripe/client.js.map +1 -1
  255. package/lib/stripe/coupon.d.ts.map +1 -1
  256. package/lib/stripe/coupon.js +4 -3
  257. package/lib/stripe/coupon.js.map +1 -1
  258. package/lib/stripe/customer.js +2 -2
  259. package/lib/stripe/customer.js.map +1 -1
  260. package/lib/stripe/entitlements-feature.d.ts.map +1 -1
  261. package/lib/stripe/entitlements-feature.js +3 -2
  262. package/lib/stripe/entitlements-feature.js.map +1 -1
  263. package/lib/stripe/file.d.ts.map +1 -1
  264. package/lib/stripe/file.js +3 -2
  265. package/lib/stripe/file.js.map +1 -1
  266. package/lib/stripe/meter.js +2 -2
  267. package/lib/stripe/meter.js.map +1 -1
  268. package/lib/stripe/portal-configuration.d.ts.map +1 -1
  269. package/lib/stripe/portal-configuration.js +3 -2
  270. package/lib/stripe/portal-configuration.js.map +1 -1
  271. package/lib/stripe/price.d.ts.map +1 -1
  272. package/lib/stripe/price.js +3 -2
  273. package/lib/stripe/price.js.map +1 -1
  274. package/lib/stripe/product-feature.d.ts.map +1 -1
  275. package/lib/stripe/product-feature.js +3 -2
  276. package/lib/stripe/product-feature.js.map +1 -1
  277. package/lib/stripe/product.d.ts.map +1 -1
  278. package/lib/stripe/product.js +3 -2
  279. package/lib/stripe/product.js.map +1 -1
  280. package/lib/stripe/promotion-code.d.ts.map +1 -1
  281. package/lib/stripe/promotion-code.js +3 -2
  282. package/lib/stripe/promotion-code.js.map +1 -1
  283. package/lib/stripe/shipping-rate.d.ts.map +1 -1
  284. package/lib/stripe/shipping-rate.js +4 -3
  285. package/lib/stripe/shipping-rate.js.map +1 -1
  286. package/lib/stripe/tax-rate.d.ts.map +1 -1
  287. package/lib/stripe/tax-rate.js +3 -2
  288. package/lib/stripe/tax-rate.js.map +1 -1
  289. package/lib/stripe/webhook.d.ts.map +1 -1
  290. package/lib/stripe/webhook.js +4 -3
  291. package/lib/stripe/webhook.js.map +1 -1
  292. package/lib/test/vitest.d.ts.map +1 -1
  293. package/lib/test/vitest.js +1 -0
  294. package/lib/test/vitest.js.map +1 -1
  295. package/lib/upstash/redis.d.ts +8 -2
  296. package/lib/upstash/redis.d.ts.map +1 -1
  297. package/lib/upstash/redis.js +5 -4
  298. package/lib/upstash/redis.js.map +1 -1
  299. package/lib/util/ignore-matcher.d.ts.map +1 -1
  300. package/lib/util/ignore-matcher.js +3 -1
  301. package/lib/util/ignore-matcher.js.map +1 -1
  302. package/lib/util/peer.d.ts +10 -0
  303. package/lib/util/peer.d.ts.map +1 -0
  304. package/lib/util/peer.js +42 -0
  305. package/lib/util/peer.js.map +1 -0
  306. package/lib/util/telemetry/constants.d.ts.map +1 -1
  307. package/lib/util/telemetry/constants.js +2 -2
  308. package/lib/util/telemetry/constants.js.map +1 -1
  309. package/lib/vercel/project.d.ts +7 -1
  310. package/lib/vercel/project.d.ts.map +1 -1
  311. package/lib/vercel/project.js +28 -0
  312. package/lib/vercel/project.js.map +1 -1
  313. package/package.json +88 -74
  314. package/src/alchemy.ts +76 -222
  315. package/src/apply.ts +6 -19
  316. package/src/aws/account-id.ts +6 -3
  317. package/src/aws/bucket.ts +43 -32
  318. package/src/aws/ec2/security-group.ts +15 -3
  319. package/src/aws/function.ts +65 -39
  320. package/src/aws/policy-attachment.ts +10 -6
  321. package/src/aws/policy.ts +33 -15
  322. package/src/aws/queue.ts +50 -29
  323. package/src/aws/role.ts +37 -20
  324. package/src/aws/ses.ts +24 -20
  325. package/src/aws/ssm-parameter.ts +40 -20
  326. package/src/aws/table.ts +35 -17
  327. package/src/cloudflare/account-api-token.ts +9 -7
  328. package/src/cloudflare/ai-gateway.ts +37 -34
  329. package/src/cloudflare/api-schema.ts +33 -26
  330. package/src/cloudflare/api-shield.ts +15 -2
  331. package/src/cloudflare/astro/astro.ts +5 -1
  332. package/src/cloudflare/astro/plugin.ts +2 -1
  333. package/src/cloudflare/bindings.ts +2 -2
  334. package/src/cloudflare/bound.ts +1 -1
  335. package/src/cloudflare/bucket.ts +242 -3
  336. package/src/cloudflare/compatibility-date.gen.ts +1 -1
  337. package/src/cloudflare/container.ts +23 -12
  338. package/src/cloudflare/custom-domain.ts +2 -2
  339. package/src/cloudflare/d1-database.ts +11 -4
  340. package/src/cloudflare/dispatch-namespace.ts +10 -7
  341. package/src/cloudflare/hyperdrive.ts +13 -3
  342. package/src/cloudflare/kv-namespace.ts +25 -2
  343. package/src/cloudflare/miniflare/miniflare-worker-proxy.ts +3 -1
  344. package/src/cloudflare/miniflare/paths.ts +13 -0
  345. package/src/cloudflare/pipeline.ts +76 -28
  346. package/src/cloudflare/queue-consumer.ts +1 -1
  347. package/src/cloudflare/queue.ts +65 -54
  348. package/src/cloudflare/react-router/react-router.ts +28 -2
  349. package/src/cloudflare/redwood/plugin.ts +3 -2
  350. package/src/cloudflare/route.ts +1 -1
  351. package/src/cloudflare/ruleset.ts +7 -2
  352. package/src/cloudflare/secret.ts +20 -31
  353. package/src/cloudflare/secrets-store.ts +7 -3
  354. package/src/cloudflare/tunnel.ts +13 -2
  355. package/src/cloudflare/vectorize-index.ts +14 -3
  356. package/src/cloudflare/vite/plugin.ts +3 -2
  357. package/src/cloudflare/vite/vite.ts +2 -3
  358. package/src/cloudflare/website.ts +1 -1
  359. package/src/cloudflare/worker.ts +35 -23
  360. package/src/cloudflare/wrangler.json.ts +7 -4
  361. package/src/docker/container.ts +13 -1
  362. package/src/docker/network.ts +18 -3
  363. package/src/docker/volume.ts +17 -6
  364. package/src/fs/index.ts +0 -8
  365. package/src/github/client.ts +6 -2
  366. package/src/github/repository-environment.ts +27 -13
  367. package/src/neon/project.ts +20 -6
  368. package/src/planetscale/branch.ts +24 -13
  369. package/src/planetscale/database.ts +38 -17
  370. package/src/planetscale/password.ts +10 -3
  371. package/src/resource.ts +1 -10
  372. package/src/scope.ts +29 -38
  373. package/src/sentry/client-key.ts +74 -6
  374. package/src/sentry/project.ts +59 -6
  375. package/src/sentry/team.ts +55 -7
  376. package/src/serde.ts +0 -44
  377. package/src/state/d1-state-store.ts +13 -6
  378. package/src/state/sqlite-state-store.ts +16 -17
  379. package/src/stripe/card.ts +5 -2
  380. package/src/stripe/client.ts +10 -3
  381. package/src/stripe/coupon.ts +4 -3
  382. package/src/stripe/customer.ts +2 -2
  383. package/src/stripe/entitlements-feature.ts +5 -2
  384. package/src/stripe/file.ts +3 -2
  385. package/src/stripe/meter.ts +2 -2
  386. package/src/stripe/portal-configuration.ts +5 -2
  387. package/src/stripe/price.ts +3 -2
  388. package/src/stripe/product-feature.ts +5 -2
  389. package/src/stripe/product.ts +3 -2
  390. package/src/stripe/promotion-code.ts +3 -2
  391. package/src/stripe/shipping-rate.ts +4 -3
  392. package/src/stripe/tax-rate.ts +3 -2
  393. package/src/stripe/webhook.ts +4 -3
  394. package/src/test/vitest.ts +1 -0
  395. package/src/upstash/redis.ts +15 -5
  396. package/src/util/ignore-matcher.ts +3 -1
  397. package/src/util/peer.ts +53 -0
  398. package/src/util/telemetry/constants.ts +2 -2
  399. package/src/vercel/project.ts +46 -1
  400. package/templates/astro/_gitignore +2 -1
  401. package/templates/hono/README.md +19 -0
  402. package/templates/hono/_env +1 -0
  403. package/templates/hono/_env.example +1 -0
  404. package/templates/hono/_gitignore +34 -0
  405. package/templates/hono/alchemy.run.ts +22 -0
  406. package/templates/hono/package.json +18 -0
  407. package/templates/hono/src/index.ts +17 -0
  408. package/templates/hono/tsconfig.json +13 -0
  409. package/templates/hono/types/env.d.ts +16 -0
  410. package/templates/nuxt/_gitignore +2 -1
  411. package/templates/react-router/_gitignore +1 -0
  412. package/templates/react-router/vite.config.ts +5 -3
  413. package/templates/rwsdk/_gitignore +2 -3
  414. package/templates/sveltekit/_gitignore +2 -1
  415. package/templates/tanstack-start/_gitignore +2 -1
  416. package/templates/typescript/_gitignore +2 -1
  417. package/templates/vite/_gitignore +2 -1
  418. package/workers/cloudflare-state-store.js +69 -74
  419. package/workers/dofs-state-store.js +1 -1
  420. package/bin/bootstrap-s3.ts +0 -255
  421. package/lib/ai/ark.d.ts +0 -12
  422. package/lib/ai/ark.d.ts.map +0 -1
  423. package/lib/ai/ark.js +0 -87
  424. package/lib/ai/ark.js.map +0 -1
  425. package/lib/ai/astro-file.d.ts +0 -138
  426. package/lib/ai/astro-file.d.ts.map +0 -1
  427. package/lib/ai/astro-file.js +0 -158
  428. package/lib/ai/astro-file.js.map +0 -1
  429. package/lib/ai/client.d.ts +0 -51
  430. package/lib/ai/client.d.ts.map +0 -1
  431. package/lib/ai/client.js +0 -58
  432. package/lib/ai/client.js.map +0 -1
  433. package/lib/ai/css-file.d.ts +0 -132
  434. package/lib/ai/css-file.d.ts.map +0 -1
  435. package/lib/ai/css-file.js +0 -142
  436. package/lib/ai/css-file.js.map +0 -1
  437. package/lib/ai/data.d.ts +0 -152
  438. package/lib/ai/data.d.ts.map +0 -1
  439. package/lib/ai/data.js +0 -120
  440. package/lib/ai/data.js.map +0 -1
  441. package/lib/ai/document.d.ts +0 -208
  442. package/lib/ai/document.d.ts.map +0 -1
  443. package/lib/ai/document.js +0 -206
  444. package/lib/ai/document.js.map +0 -1
  445. package/lib/ai/html-file.d.ts +0 -129
  446. package/lib/ai/html-file.d.ts.map +0 -1
  447. package/lib/ai/html-file.js +0 -139
  448. package/lib/ai/html-file.js.map +0 -1
  449. package/lib/ai/index.d.ts +0 -11
  450. package/lib/ai/index.d.ts.map +0 -1
  451. package/lib/ai/index.js +0 -11
  452. package/lib/ai/index.js.map +0 -1
  453. package/lib/ai/json-file.d.ts +0 -161
  454. package/lib/ai/json-file.d.ts.map +0 -1
  455. package/lib/ai/json-file.js +0 -188
  456. package/lib/ai/json-file.js.map +0 -1
  457. package/lib/ai/typescript-file.d.ts +0 -140
  458. package/lib/ai/typescript-file.d.ts.map +0 -1
  459. package/lib/ai/typescript-file.js +0 -146
  460. package/lib/ai/typescript-file.js.map +0 -1
  461. package/lib/ai/vue-file.d.ts +0 -127
  462. package/lib/ai/vue-file.d.ts.map +0 -1
  463. package/lib/ai/vue-file.js +0 -137
  464. package/lib/ai/vue-file.js.map +0 -1
  465. package/lib/ai/yaml-file.d.ts +0 -170
  466. package/lib/ai/yaml-file.d.ts.map +0 -1
  467. package/lib/ai/yaml-file.js +0 -201
  468. package/lib/ai/yaml-file.js.map +0 -1
  469. package/lib/fs/static-astro-file.d.ts +0 -35
  470. package/lib/fs/static-astro-file.d.ts.map +0 -1
  471. package/lib/fs/static-astro-file.js +0 -40
  472. package/lib/fs/static-astro-file.js.map +0 -1
  473. package/lib/fs/static-css-file.d.ts +0 -25
  474. package/lib/fs/static-css-file.d.ts.map +0 -1
  475. package/lib/fs/static-css-file.js +0 -30
  476. package/lib/fs/static-css-file.js.map +0 -1
  477. package/lib/fs/static-html-file.d.ts +0 -32
  478. package/lib/fs/static-html-file.d.ts.map +0 -1
  479. package/lib/fs/static-html-file.js +0 -37
  480. package/lib/fs/static-html-file.js.map +0 -1
  481. package/lib/fs/static-json-file.d.ts +0 -18
  482. package/lib/fs/static-json-file.d.ts.map +0 -1
  483. package/lib/fs/static-json-file.js +0 -19
  484. package/lib/fs/static-json-file.js.map +0 -1
  485. package/lib/fs/static-text-file.d.ts +0 -13
  486. package/lib/fs/static-text-file.d.ts.map +0 -1
  487. package/lib/fs/static-text-file.js +0 -9
  488. package/lib/fs/static-text-file.js.map +0 -1
  489. package/lib/fs/static-typescript-file.d.ts +0 -20
  490. package/lib/fs/static-typescript-file.d.ts.map +0 -1
  491. package/lib/fs/static-typescript-file.js +0 -16
  492. package/lib/fs/static-typescript-file.js.map +0 -1
  493. package/lib/fs/static-vue-file.d.ts +0 -29
  494. package/lib/fs/static-vue-file.d.ts.map +0 -1
  495. package/lib/fs/static-vue-file.js +0 -34
  496. package/lib/fs/static-vue-file.js.map +0 -1
  497. package/lib/fs/static-yaml-file.d.ts +0 -23
  498. package/lib/fs/static-yaml-file.d.ts.map +0 -1
  499. package/lib/fs/static-yaml-file.js +0 -10
  500. package/lib/fs/static-yaml-file.js.map +0 -1
  501. package/lib/internal/docs/providers.d.ts +0 -34
  502. package/lib/internal/docs/providers.d.ts.map +0 -1
  503. package/lib/internal/docs/providers.js +0 -200
  504. package/lib/internal/docs/providers.js.map +0 -1
  505. package/lib/runtime/bind.d.ts +0 -25
  506. package/lib/runtime/bind.d.ts.map +0 -1
  507. package/lib/runtime/bind.js +0 -76
  508. package/lib/runtime/bind.js.map +0 -1
  509. package/lib/runtime/global.d.ts +0 -8
  510. package/lib/runtime/global.d.ts.map +0 -1
  511. package/lib/runtime/global.js +0 -3
  512. package/lib/runtime/global.js.map +0 -1
  513. package/lib/runtime/plugin.d.ts +0 -35
  514. package/lib/runtime/plugin.d.ts.map +0 -1
  515. package/lib/runtime/plugin.js +0 -134
  516. package/lib/runtime/plugin.js.map +0 -1
  517. package/lib/runtime/shims.d.ts +0 -6
  518. package/lib/runtime/shims.d.ts.map +0 -1
  519. package/lib/runtime/shims.js +0 -27
  520. package/lib/runtime/shims.js.map +0 -1
  521. package/lib/runtime/state.d.ts +0 -5
  522. package/lib/runtime/state.d.ts.map +0 -1
  523. package/lib/runtime/state.js +0 -4
  524. package/lib/runtime/state.js.map +0 -1
  525. package/lib/web/astro.d.ts +0 -148
  526. package/lib/web/astro.d.ts.map +0 -1
  527. package/lib/web/astro.js +0 -419
  528. package/lib/web/astro.js.map +0 -1
  529. package/lib/web/shadcn-component.d.ts +0 -30
  530. package/lib/web/shadcn-component.d.ts.map +0 -1
  531. package/lib/web/shadcn-component.js +0 -25
  532. package/lib/web/shadcn-component.js.map +0 -1
  533. package/lib/web/shadcn.d.ts +0 -98
  534. package/lib/web/shadcn.d.ts.map +0 -1
  535. package/lib/web/shadcn.js +0 -102
  536. package/lib/web/shadcn.js.map +0 -1
  537. package/lib/web/tailwind.d.ts +0 -65
  538. package/lib/web/tailwind.d.ts.map +0 -1
  539. package/lib/web/tailwind.js +0 -98
  540. package/lib/web/tailwind.js.map +0 -1
  541. package/lib/web/vite.d.ts +0 -96
  542. package/lib/web/vite.d.ts.map +0 -1
  543. package/lib/web/vite.js +0 -232
  544. package/lib/web/vite.js.map +0 -1
  545. package/lib/web/vitepress/config.d.ts +0 -12
  546. package/lib/web/vitepress/config.d.ts.map +0 -1
  547. package/lib/web/vitepress/config.js +0 -33
  548. package/lib/web/vitepress/config.js.map +0 -1
  549. package/lib/web/vitepress/custom-theme.d.ts +0 -174
  550. package/lib/web/vitepress/custom-theme.d.ts.map +0 -1
  551. package/lib/web/vitepress/custom-theme.js +0 -337
  552. package/lib/web/vitepress/custom-theme.js.map +0 -1
  553. package/lib/web/vitepress/dependencies.d.ts +0 -13
  554. package/lib/web/vitepress/dependencies.d.ts.map +0 -1
  555. package/lib/web/vitepress/dependencies.js +0 -37
  556. package/lib/web/vitepress/dependencies.js.map +0 -1
  557. package/lib/web/vitepress/home-page.d.ts +0 -247
  558. package/lib/web/vitepress/home-page.d.ts.map +0 -1
  559. package/lib/web/vitepress/home-page.js +0 -146
  560. package/lib/web/vitepress/home-page.js.map +0 -1
  561. package/lib/web/vitepress/index.d.ts +0 -6
  562. package/lib/web/vitepress/index.d.ts.map +0 -1
  563. package/lib/web/vitepress/index.js +0 -6
  564. package/lib/web/vitepress/index.js.map +0 -1
  565. package/lib/web/vitepress/process-front-matter-files.d.ts +0 -19
  566. package/lib/web/vitepress/process-front-matter-files.d.ts.map +0 -1
  567. package/lib/web/vitepress/process-front-matter-files.js +0 -73
  568. package/lib/web/vitepress/process-front-matter-files.js.map +0 -1
  569. package/lib/web/vitepress/vitepress.d.ts +0 -75
  570. package/lib/web/vitepress/vitepress.d.ts.map +0 -1
  571. package/lib/web/vitepress/vitepress.js +0 -254
  572. package/lib/web/vitepress/vitepress.js.map +0 -1
  573. package/src/ai/ark.ts +0 -118
  574. package/src/ai/astro-file.ts +0 -270
  575. package/src/ai/client.ts +0 -117
  576. package/src/ai/css-file.ts +0 -247
  577. package/src/ai/data.ts +0 -221
  578. package/src/ai/document.ts +0 -367
  579. package/src/ai/html-file.ts +0 -244
  580. package/src/ai/index.ts +0 -10
  581. package/src/ai/json-file.ts +0 -325
  582. package/src/ai/typescript-file.ts +0 -259
  583. package/src/ai/vue-file.ts +0 -242
  584. package/src/ai/yaml-file.ts +0 -328
  585. package/src/fs/static-astro-file.ts +0 -45
  586. package/src/fs/static-css-file.ts +0 -35
  587. package/src/fs/static-html-file.ts +0 -42
  588. package/src/fs/static-json-file.ts +0 -38
  589. package/src/fs/static-text-file.ts +0 -23
  590. package/src/fs/static-typescript-file.ts +0 -37
  591. package/src/fs/static-vue-file.ts +0 -39
  592. package/src/fs/static-yaml-file.ts +0 -33
  593. package/src/internal/docs/providers.ts +0 -286
  594. package/src/runtime/bind.ts +0 -95
  595. package/src/runtime/global.ts +0 -10
  596. package/src/runtime/plugin.ts +0 -163
  597. package/src/runtime/shims.js +0 -34
  598. package/src/runtime/state.ts +0 -9
  599. package/src/web/astro.ts +0 -643
  600. package/src/web/shadcn-component.ts +0 -72
  601. package/src/web/shadcn.ts +0 -221
  602. package/src/web/tailwind.ts +0 -167
  603. package/src/web/vite.ts +0 -407
  604. package/src/web/vitepress/config.ts +0 -50
  605. package/src/web/vitepress/custom-theme.ts +0 -514
  606. package/src/web/vitepress/dependencies.ts +0 -69
  607. package/src/web/vitepress/home-page.ts +0 -378
  608. package/src/web/vitepress/index.ts +0 -5
  609. package/src/web/vitepress/process-front-matter-files.ts +0 -107
  610. package/src/web/vitepress/vitepress.ts +0 -372
  611. package/templates/sveltekit/bun.lock +0 -1099
@@ -1,337 +0,0 @@
1
- import { type } from "arktype";
2
- import path from "node:path";
3
- import { CSSFile } from "../../ai/css-file.js";
4
- import { Data } from "../../ai/data.js";
5
- import { TypeScriptFile } from "../../ai/typescript-file.js";
6
- import { VueFile } from "../../ai/vue-file.js";
7
- import { alchemy } from "../../alchemy.js";
8
- import { Folder } from "../../fs/folder.js";
9
- import { Resource } from "../../resource.js";
10
- /**
11
- * Resource for generating a custom VitePress theme using AI.
12
- *
13
- * Generates the necessary theme files including:
14
- * - Theme entry file (index.ts)
15
- * - Layout component (Layout.vue)
16
- * - Additional components based on configuration
17
- * - Style sheets and utilities
18
- *
19
- * @example
20
- * // Create a basic custom theme
21
- * const theme = await CustomTheme("docs-theme", {
22
- * outDir: "./.vitepress/theme",
23
- * title: "My Custom Theme",
24
- * description: "A clean, minimal theme for documentation",
25
- * prompt: "Create a clean documentation theme with a sidebar and search"
26
- * });
27
- *
28
- * @example
29
- * // Create a theme with specific components
30
- * const complexTheme = await CustomTheme("blog-theme", {
31
- * outDir: "./.vitepress/theme",
32
- * title: "Blog Theme",
33
- * description: "A theme for technical blogs",
34
- * components: [
35
- * {
36
- * name: "PostList",
37
- * description: "Component that displays a list of blog posts with pagination",
38
- * features: ["thumbnail images", "post dates", "categories", "excerpts"]
39
- * },
40
- * {
41
- * name: "TableOfContents",
42
- * description: "Component that displays the current page's table of contents",
43
- * features: ["sticky positioning", "active link highlighting"]
44
- * }
45
- * ],
46
- * darkMode: true,
47
- * prompt: "Create a modern blog theme with post listings and detailed article pages"
48
- * });
49
- *
50
- * @example
51
- * // Create a theme with custom CSS variables
52
- * const brandedTheme = await CustomTheme("branded-theme", {
53
- * outDir: "./.vitepress/theme",
54
- * title: "Branded Docs",
55
- * description: "A themed documentation site with custom branding",
56
- * customCssVars: {
57
- * "--vp-c-brand": "#3a70b0",
58
- * "--vp-c-brand-light": "#5785bc",
59
- * "--vp-c-brand-lighter": "#79a1ce",
60
- * "--vp-c-brand-dark": "#2c5989",
61
- * "--vp-c-brand-darker": "#1e3d5c"
62
- * },
63
- * prompt: "Create a documentation theme with custom branding and color scheme"
64
- * });
65
- */
66
- export const CustomTheme = Resource("vitepress::CustomTheme", async function (id, props) {
67
- // Handle deletion
68
- if (this.phase === "delete") {
69
- // No need to actually delete files, as they're not critical infrastructure
70
- // In a real implementation, you might want to clean up files
71
- return this.destroy();
72
- }
73
- // Ensure the output directory exists
74
- await Folder(props.outDir);
75
- // Create components directory if it doesn't exist
76
- await Folder(path.join(props.outDir, "components"));
77
- // Build the system prompt with optional extension
78
- const systemPrompt = `
79
- You are creating a custom VitePress theme.
80
-
81
- A VitePress custom theme consists of multiple files:
82
- 1. An entry file (index.ts or index.js) that exports the theme object
83
- 2. A Layout component (Layout.vue) that handles the overall page structure
84
- 3. Optional additional Vue components for specific functionality
85
- 4. Optional style files for theming and customization
86
-
87
- The theme entry file must export an object with:
88
- - Layout: The root layout component (required)
89
- - enhanceApp: Function to enhance the Vue app (optional)
90
- - extends: Another theme to extend (optional)
91
-
92
- Follow these guidelines:
93
- 1. Use Vue 3 Composition API and <script setup> syntax
94
- 2. Ensure the theme is SSR-compatible
95
- 3. Use the useData() composable to access page and site data
96
- 4. Handle different page layouts (home, 404, regular pages)
97
- 5. Include proper TypeScript types
98
- 6. Use modern JavaScript/TypeScript features
99
- 7. Include clear comments explaining key functionality
100
- 8. Make components reusable and customizable
101
- 9. Include support for dark mode if requested
102
-
103
- ${props.systemPromptExtension || ""}
104
- `;
105
- // Generate the theme entry file (index.ts)
106
- const indexFile = await TypeScriptFile(`${id}-index`, {
107
- path: path.join(props.outDir, "index.ts"),
108
- prompt: await alchemy `
109
- Create a VitePress theme entry file (index.ts) for a theme named "${props.title}".
110
-
111
- The theme should:
112
- - Export a default theme object with the required properties
113
- - Import the Layout component
114
- - Include a proper enhanceApp function
115
- - Include TypeScript types
116
- - Have clear comments explaining the code
117
-
118
- ${props.description ? `Theme description: ${props.description}` : ""}
119
- ${props.plugins?.length ? `Include these plugins: ${props.plugins.join(", ")}` : ""}
120
-
121
- The output should be a complete, well-structured TypeScript file.
122
- `,
123
- system: `${systemPrompt}
124
- You are writing a TypeScript entry file for a VitePress theme.`,
125
- baseURL: props.baseURL,
126
- apiKey: props.apiKey,
127
- model: props.model,
128
- temperature: props.temperature,
129
- });
130
- // Generate the Layout component
131
- const layoutFile = await VueFile(`${id}-layout`, {
132
- path: path.join(props.outDir, "Layout.vue"),
133
- prompt: await alchemy `
134
- Create a Layout.vue component for a VitePress theme named "${props.title}".
135
-
136
- The layout should:
137
- - Use <script setup> with the Composition API
138
- - Import and use the useData() composable
139
- - Handle different page types (regular pages, home pages, 404 pages)
140
- - Include a <Content /> component to render the page content
141
- - Have a clean, modern design
142
- - Include proper TypeScript types
143
- - Use Vue's Teleport for elements like modals if needed
144
-
145
- The layout should use modular components for different parts of the UI, such as:
146
- - NavBar/Header component for navigation
147
- - Sidebar component for documentation navigation
148
- - Footer component
149
- - Home page specific components (like hero sections)
150
- - 404 page component
151
-
152
- These components should be imported from the components directory.
153
-
154
- ${props.description ? `Theme description: ${props.description}` : ""}
155
- ${props.darkMode !== false ? "Include support for dark mode" : "Dark mode is not required"}
156
-
157
- The layout should follow the user's requirements:
158
- ${props.prompt}
159
-
160
- The output should be a complete, well-structured Vue component file.
161
- `,
162
- system: `${systemPrompt}
163
- You are writing a Vue component for a VitePress theme Layout.
164
- Import smaller components from the components directory using relative paths (e.g., import NavBar from './components/NavBar.vue').
165
- Break down the layout into logical components like NavBar, Sidebar, Footer, etc., which will be generated separately.`,
166
- baseURL: props.baseURL,
167
- apiKey: props.apiKey,
168
- model: props.model,
169
- temperature: props.temperature,
170
- });
171
- // Extract component imports from the Layout.vue file
172
- const componentImportsData = await Data(`${id}-component-imports`, {
173
- schema: type({
174
- components: type({
175
- name: type("string").describe("Component name as used in the import statement (e.g., NavBar, Footer)"),
176
- path: type("string").describe("Import path as written in the import statement (e.g., './components/NavBar.vue')"),
177
- purpose: type("string").describe("A clear description of the component's purpose, functionality, and responsibilities in the layout"),
178
- }).array(),
179
- }),
180
- prompt: await alchemy `
181
- Analyze the following Layout.vue file and extract information about all the component imports:
182
-
183
- ${layoutFile.content}
184
-
185
- For each component import:
186
- 1. Extract the component name (e.g., NavBar)
187
- 2. Extract the import path (e.g., ./components/NavBar.vue)
188
- 3. Infer the purpose of the component based on its name and usage in the file
189
-
190
- Return a structured list of all component imports found in the file.
191
- Only include components that are imported from local files (not from VitePress or other libraries).
192
- Focus on components that are likely Vue components (.vue files).
193
- `,
194
- system: "You are a code analyzer tasked with extracting component imports from a Vue file. Be precise and thorough in identifying all local component imports.",
195
- baseURL: props.baseURL,
196
- apiKey: props.apiKey,
197
- model: props.model,
198
- temperature: props.temperature || 0.2, // Lower temperature for more deterministic extraction
199
- });
200
- // Generate the detected components
201
- const autoComponentFiles = await Promise.all(componentImportsData.object.components.map(async (component) => {
202
- const componentName = component.name;
203
- const componentPath = component.path;
204
- const componentPurpose = component.purpose;
205
- // Extract the relative path from the import
206
- const relativePath = componentPath.startsWith("./")
207
- ? componentPath.slice(2) // Remove './'
208
- : componentPath.startsWith("/")
209
- ? componentPath.slice(1) // Remove '/'
210
- : componentPath;
211
- // Compute the full file path
212
- const fullPath = path.join(props.outDir, relativePath);
213
- return VueFile(`${id}-component-${componentName}`, {
214
- path: fullPath,
215
- prompt: await alchemy `
216
- Create a Vue component named "${componentName}" for a VitePress theme.
217
-
218
- Component purpose: ${componentPurpose}
219
-
220
- The component should:
221
- - Use <script setup> with the Composition API
222
- - Have a clean, focused design for its specific purpose
223
- - Include proper TypeScript types
224
- - Be reusable and customizable
225
- - Include clear comments explaining key functionality
226
- - Fit seamlessly with the overall theme design described below
227
-
228
- This component will be used in the following layout context:
229
- ${layoutFile.content}
230
-
231
- ${props.description ? `Theme description: ${props.description}` : ""}
232
- ${props.darkMode !== false ? "Include support for dark mode" : "Dark mode is not required"}
233
-
234
- The component should follow the user's theme requirements:
235
- ${props.prompt}
236
- `,
237
- system: `${systemPrompt}
238
- You are writing a Vue component for a VitePress theme. This component (${componentName}) is intended to ${componentPurpose}.
239
- Make sure it integrates well with the overall layout and theme style.`,
240
- baseURL: props.baseURL,
241
- apiKey: props.apiKey,
242
- model: props.model,
243
- temperature: props.temperature,
244
- });
245
- }));
246
- // Generate user-specified components if provided
247
- const userComponentFiles = await Promise.all((props.components || []).map(async (component) => {
248
- return VueFile(`${id}-user-component-${component.name}`, {
249
- path: path.join(props.outDir, "components", `${component.name}.vue`),
250
- prompt: await alchemy `
251
- Create a Vue component named "${component.name}" for a VitePress theme.
252
-
253
- Component description: ${component.description}
254
-
255
- The component should:
256
- - Use <script setup> with the Composition API
257
- - Have a clean, focused design for its specific purpose
258
- - Include proper TypeScript types
259
- - Be reusable and customizable
260
- - Include clear comments
261
-
262
- ${component.features?.length
263
- ? `Include these features:
264
- ${component.features.map((f) => `- ${f}`).join("\n")}`
265
- : ""}
266
-
267
- Make sure the component integrates well with the overall theme.
268
-
269
- The output should be a complete, well-structured Vue component file.
270
- `,
271
- system: `${systemPrompt}
272
- You are writing a Vue component for a VitePress theme.`,
273
- baseURL: props.baseURL,
274
- apiKey: props.apiKey,
275
- model: props.model,
276
- temperature: props.temperature,
277
- });
278
- }));
279
- // Generate styles file
280
- const stylesFile = await CSSFile(`${id}-styles`, {
281
- path: path.join(props.outDir, "styles.css"),
282
- prompt: await alchemy `
283
- Create a CSS styles file for a VitePress theme named "${props.title}".
284
-
285
- The styles should:
286
- - Define a cohesive set of styles for the theme
287
- - Include CSS variables for customization
288
- - Use modern CSS features
289
- - Be well-organized with clear comments
290
- ${props.darkMode !== false ? "- Include dark mode variants using :root.dark selectors" : ""}
291
-
292
- ${props.description ? `Theme description: ${props.description}` : ""}
293
-
294
- ${props.customCssVars
295
- ? `Include these custom CSS variables:
296
- ${Object.entries(props.customCssVars)
297
- .map(([key, value]) => `${key}: ${value};`)
298
- .join("\n")}`
299
- : ""}
300
-
301
- Style according to the user's requirements:
302
- ${props.prompt}
303
-
304
- The output should be a complete, well-structured CSS file.
305
- `,
306
- system: `${systemPrompt}
307
- You are writing CSS styles for a VitePress theme.`,
308
- baseURL: props.baseURL,
309
- apiKey: props.apiKey,
310
- model: props.model,
311
- temperature: props.temperature,
312
- });
313
- // Collect all generated files
314
- const allFiles = [
315
- indexFile,
316
- layoutFile,
317
- ...autoComponentFiles,
318
- ...userComponentFiles,
319
- stylesFile,
320
- ];
321
- // Create file objects for resource output
322
- const files = allFiles.map((file) => ({
323
- path: file.path,
324
- content: file.content,
325
- }));
326
- // Get the current timestamp
327
- const now = Date.now();
328
- // Return the resource using this() to construct output
329
- return this({
330
- ...props,
331
- themePath: props.outDir,
332
- files,
333
- createdAt: this.output?.createdAt || now,
334
- updatedAt: now,
335
- });
336
- });
337
- //# sourceMappingURL=custom-theme.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"custom-theme.js","sourceRoot":"","sources":["../../../src/web/vitepress/custom-theme.ts"],"names":[],"mappings":"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"}
@@ -1,13 +0,0 @@
1
- import type { Context } from "../../context.ts";
2
- import { Resource } from "../../resource.ts";
3
- export type InstallDependencies = Resource<"project::InstallDependencies">;
4
- export declare const InstallDependencies: (((this: any, id: string, props?: {}) => never) & (new (_: never) => never)) | ((this: Context<InstallDependencies>, _id: string, { cwd, dependencies, devDependencies, }: {
5
- cwd: string;
6
- dependencies?: Record<string, string>;
7
- devDependencies?: Record<string, string>;
8
- }) => Promise<InstallDependencies>);
9
- export declare function fixedDependencies(dependencies?: Record<string, string>): {
10
- [k: string]: string;
11
- };
12
- export declare function installDependencies(cwd: string, dependencies: Record<string, string> | undefined, ...args: string[]): Promise<void>;
13
- //# sourceMappingURL=dependencies.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dependencies.d.ts","sourceRoot":"","sources":["../../../src/web/vitepress/dependencies.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAK7C,MAAM,MAAM,mBAAmB,GAAG,QAAQ,CAAC,8BAA8B,CAAC,CAAC;AAE3E,eAAO,MAAM,mBAAmB,yFAMtB,OAAO,CAAC,mBAAmB,CAAC,OAC7B,MAAM,2CAKR;IACD,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC1C,kCAYJ,CAAC;AAOF,wBAAgB,iBAAiB,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;;EAOtE;AAED,wBAAsB,mBAAmB,CACvC,GAAG,EAAE,MAAM,EACX,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,EAChD,GAAG,IAAI,EAAE,MAAM,EAAE,iBAWlB"}
@@ -1,37 +0,0 @@
1
- import { exec } from "node:child_process";
2
- import { promisify } from "node:util";
3
- import { Resource } from "../../resource.js";
4
- import { logger } from "../../util/logger.js";
5
- const execAsync = promisify(exec);
6
- export const InstallDependencies = Resource("project::InstallDependencies", {
7
- alwaysUpdate: true,
8
- }, async function (_id, { cwd, dependencies, devDependencies, }) {
9
- if (this.phase === "delete") {
10
- return this.destroy();
11
- }
12
- await installDependencies(cwd, dependencies);
13
- await installDependencies(cwd, devDependencies, "-D");
14
- await execAsync("bun install", { cwd });
15
- return this({});
16
- });
17
- function isInstallableVersion(version) {
18
- // TODO: file:// ?
19
- return !version.startsWith("workspace:");
20
- }
21
- export function fixedDependencies(dependencies) {
22
- if (!dependencies)
23
- return {};
24
- return Object.fromEntries(Object.entries(dependencies).filter(([, value]) => !isInstallableVersion(value)));
25
- }
26
- export async function installDependencies(cwd, dependencies, ...args) {
27
- if (!dependencies)
28
- return;
29
- const deps = Object.entries(dependencies)
30
- .filter(([, value]) => isInstallableVersion(value))
31
- .map(([pkg, version]) => `${pkg}@${version}`)
32
- .join(" ");
33
- const cmd = `bun add ${args.join(" ")} ${deps}`;
34
- logger.log(cmd);
35
- await execAsync(cmd, { cwd });
36
- }
37
- //# sourceMappingURL=dependencies.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dependencies.js","sourceRoot":"","sources":["../../../src/web/vitepress/dependencies.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAE9C,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;AAIlC,MAAM,CAAC,MAAM,mBAAmB,GAAG,QAAQ,CACzC,8BAA8B,EAC9B;IACE,YAAY,EAAE,IAAI;CACnB,EACD,KAAK,WAEH,GAAW,EACX,EACE,GAAG,EACH,YAAY,EACZ,eAAe,GAKhB;IAED,IAAI,IAAI,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC5B,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC;IACxB,CAAC;IAED,MAAM,mBAAmB,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;IAC7C,MAAM,mBAAmB,CAAC,GAAG,EAAE,eAAe,EAAE,IAAI,CAAC,CAAC;IACtD,MAAM,SAAS,CAAC,aAAa,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;IAExC,OAAO,IAAI,CAAC,EAAE,CAAC,CAAC;AAClB,CAAC,CACF,CAAC;AAEF,SAAS,oBAAoB,CAAC,OAAe;IAC3C,kBAAkB;IAClB,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;AAC3C,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,YAAqC;IACrE,IAAI,CAAC,YAAY;QAAE,OAAO,EAAE,CAAC;IAC7B,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,MAAM,CACjC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAC5C,CACF,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,GAAW,EACX,YAAgD,EAChD,GAAG,IAAc;IAEjB,IAAI,CAAC,YAAY;QAAE,OAAO;IAC1B,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC;SACtC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;SAClD,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,OAAO,EAAE,CAAC;SAC5C,IAAI,CAAC,GAAG,CAAC,CAAC;IAEb,MAAM,GAAG,GAAG,WAAW,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;IAChD,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAChB,MAAM,SAAS,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;AAChC,CAAC"}
@@ -1,247 +0,0 @@
1
- import { Document } from "../../ai/document.ts";
2
- import { StaticTextFile } from "../../fs/static-text-file.ts";
3
- import type { Secret } from "../../secret.ts";
4
- /**
5
- * Image that can be themed for light/dark mode
6
- */
7
- export interface ThemeableImage {
8
- /**
9
- * Image source URL
10
- */
11
- src?: string;
12
- /**
13
- * Image alt text
14
- */
15
- alt?: string;
16
- /**
17
- * Light theme image URL
18
- */
19
- light?: string;
20
- /**
21
- * Dark theme image URL
22
- */
23
- dark?: string;
24
- }
25
- /**
26
- * Hero action button configuration
27
- */
28
- export interface HeroAction {
29
- /**
30
- * Color theme of the button
31
- * @default "brand"
32
- */
33
- theme?: "brand" | "alt";
34
- /**
35
- * Label of the button
36
- */
37
- text: string;
38
- /**
39
- * Destination link of the button
40
- */
41
- link: string;
42
- /**
43
- * Link target attribute
44
- */
45
- target?: string;
46
- /**
47
- * Link rel attribute
48
- */
49
- rel?: string;
50
- }
51
- /**
52
- * Hero section configuration
53
- */
54
- export interface Hero {
55
- /**
56
- * The string shown top of text. Comes with brand color
57
- * and expected to be short, such as product name.
58
- */
59
- name?: string;
60
- /**
61
- * The main text for the hero section. This will be defined
62
- * as h1 tag.
63
- */
64
- text: string;
65
- /**
66
- * Tagline displayed below text
67
- */
68
- tagline?: string;
69
- /**
70
- * The image displayed next to the text and tagline area
71
- */
72
- image?: string | ThemeableImage;
73
- /**
74
- * Action buttons to display in home hero section
75
- */
76
- actions?: HeroAction[];
77
- }
78
- /**
79
- * Feature item configuration
80
- */
81
- export interface Feature {
82
- /**
83
- * Show icon on each feature box
84
- */
85
- icon?: string | ThemeableImage;
86
- /**
87
- * Title of the feature
88
- */
89
- title: string;
90
- /**
91
- * Details of the feature
92
- */
93
- details: string;
94
- /**
95
- * Link when clicked on feature component
96
- */
97
- link?: string;
98
- /**
99
- * Link text to be shown inside feature component
100
- */
101
- linkText?: string;
102
- /**
103
- * Link rel attribute
104
- */
105
- rel?: string;
106
- /**
107
- * Link target attribute
108
- */
109
- target?: string;
110
- }
111
- /**
112
- * VitePress home page configuration
113
- */
114
- export interface HomePageConfig {
115
- /**
116
- * Use home page layout
117
- */
118
- layout: "home";
119
- /**
120
- * Hero section configuration
121
- */
122
- hero?: Hero;
123
- /**
124
- * Features section configuration
125
- */
126
- features?: Feature[];
127
- /**
128
- * Whether to apply default markdown styles
129
- * @default true
130
- */
131
- markdownStyles?: boolean;
132
- }
133
- /**
134
- * Properties for creating or updating a VitePress HomePage
135
- */
136
- export interface HomePageProps {
137
- /**
138
- * Output directory for the home page markdown file
139
- */
140
- outFile: string;
141
- /**
142
- * Title of the home page document
143
- */
144
- title: string;
145
- /**
146
- * Hero section configuration
147
- */
148
- hero?: Hero;
149
- /**
150
- * Features section configuration
151
- */
152
- features?: Feature[];
153
- /**
154
- * User prompt describing the design of the home page
155
- */
156
- prompt?: string;
157
- /**
158
- * Optional extension to the built-in system prompt
159
- */
160
- system?: string;
161
- /**
162
- * Base URL for the OpenAI API
163
- * @default 'https://api.openai.com/v1'
164
- */
165
- baseURL?: string;
166
- /**
167
- * OpenAI API key to use for generating content
168
- * If not provided, will use OPENAI_API_KEY environment variable
169
- */
170
- apiKey?: Secret;
171
- /**
172
- * Model configuration for the AI generator
173
- */
174
- model?: import("../../ai/client").ModelConfig;
175
- /**
176
- * Temperature for controlling randomness in generation
177
- * @default 0.7
178
- */
179
- temperature?: number;
180
- }
181
- /**
182
- * Output type for the HomePage resource
183
- */
184
- export type HomePage = StaticTextFile | Document;
185
- /**
186
- * Parse YAML frontmatter to home page config
187
- */
188
- export declare function parseHomePage(content: string): HomePageConfig;
189
- /**
190
- * Resource for generating a VitePress homepage using AI.
191
- * Creates an index.md file with the appropriate frontmatter and content
192
- * based on the provided prompt and configuration.
193
- *
194
- * @example
195
- * // Create a basic home page with just a prompt
196
- * const homePage = await HomePage("docs-home", {
197
- * outDir: "./docs",
198
- * title: "My Project Documentation",
199
- * prompt: "Create a welcoming homepage for a JavaScript utility library with modern design"
200
- * });
201
- *
202
- * @example
203
- * // Create a home page with hero and features configuration
204
- * const detailedHome = await HomePage("product-home", {
205
- * outDir: "./website",
206
- * title: "Product Landing Page",
207
- * prompt: "Create an engaging product page for our cloud database service",
208
- * hero: {
209
- * name: "CloudDB",
210
- * text: "The database built for the cloud era",
211
- * tagline: "Scalable, reliable, and developer-friendly",
212
- * image: "/images/cloud-db-logo.png",
213
- * actions: [
214
- * { text: "Get Started", link: "/guide/", theme: "brand" },
215
- * { text: "View on GitHub", link: "https://github.com/org/cloud-db" }
216
- * ]
217
- * },
218
- * features: [
219
- * {
220
- * icon: "🚀",
221
- * title: "Lightning Fast",
222
- * details: "Optimized for performance at any scale"
223
- * },
224
- * {
225
- * icon: "🔒",
226
- * title: "Secure by Default",
227
- * details: "Enterprise-grade security built in"
228
- * }
229
- * ]
230
- * });
231
- *
232
- * @example
233
- * // Create a home page with custom model settings
234
- * const customHome = await HomePage("docs-home", {
235
- * outDir: "./docs",
236
- * title: "API Documentation",
237
- * prompt: "Create a technical homepage for our REST API documentation",
238
- * model: {
239
- * id: "gpt-4o",
240
- * provider: "openai"
241
- * },
242
- * temperature: 0.3,
243
- * systemPromptExtension: "Make sure to use technical terminology appropriate for developers."
244
- * });
245
- */
246
- export declare function HomePage(id: string, props: HomePageProps): Promise<HomePage>;
247
- //# sourceMappingURL=home-page.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"home-page.d.ts","sourceRoot":"","sources":["../../../src/web/vitepress/home-page.ts"],"names":[],"mappings":"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"}