alchemy 0.62.3 → 0.63.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (612) hide show
  1. package/bin/alchemy.js +1517 -1203
  2. package/bin/commands/deploy.ts +2 -0
  3. package/bin/commands/dev.ts +2 -0
  4. package/bin/commands/init.ts +1 -1
  5. package/bin/services/execute-alchemy.ts +11 -0
  6. package/bin/services/github-workflow.ts +2 -2
  7. package/bin/services/template-manager.ts +2 -0
  8. package/bin/types.ts +2 -1
  9. package/lib/alchemy.d.ts +6 -22
  10. package/lib/alchemy.d.ts.map +1 -1
  11. package/lib/alchemy.js +65 -169
  12. package/lib/alchemy.js.map +1 -1
  13. package/lib/apply.d.ts +0 -2
  14. package/lib/apply.d.ts.map +1 -1
  15. package/lib/apply.js +2 -16
  16. package/lib/apply.js.map +1 -1
  17. package/lib/aws/account-id.d.ts.map +1 -1
  18. package/lib/aws/account-id.js +3 -2
  19. package/lib/aws/account-id.js.map +1 -1
  20. package/lib/aws/bucket.d.ts +8 -2
  21. package/lib/aws/bucket.d.ts.map +1 -1
  22. package/lib/aws/bucket.js +21 -14
  23. package/lib/aws/bucket.js.map +1 -1
  24. package/lib/aws/ec2/security-group.d.ts +8 -2
  25. package/lib/aws/ec2/security-group.d.ts.map +1 -1
  26. package/lib/aws/ec2/security-group.js +7 -2
  27. package/lib/aws/ec2/security-group.js.map +1 -1
  28. package/lib/aws/function.d.ts +9 -3
  29. package/lib/aws/function.d.ts.map +1 -1
  30. package/lib/aws/function.js +35 -26
  31. package/lib/aws/function.js.map +1 -1
  32. package/lib/aws/policy-attachment.d.ts.map +1 -1
  33. package/lib/aws/policy-attachment.js +2 -1
  34. package/lib/aws/policy-attachment.js.map +1 -1
  35. package/lib/aws/policy.d.ts +8 -2
  36. package/lib/aws/policy.d.ts.map +1 -1
  37. package/lib/aws/policy.js +13 -4
  38. package/lib/aws/policy.js.map +1 -1
  39. package/lib/aws/queue.d.ts +8 -2
  40. package/lib/aws/queue.d.ts.map +1 -1
  41. package/lib/aws/queue.js +22 -14
  42. package/lib/aws/queue.js.map +1 -1
  43. package/lib/aws/role.d.ts +8 -2
  44. package/lib/aws/role.d.ts.map +1 -1
  45. package/lib/aws/role.js +10 -3
  46. package/lib/aws/role.js.map +1 -1
  47. package/lib/aws/ses.d.ts +1 -1
  48. package/lib/aws/ses.d.ts.map +1 -1
  49. package/lib/aws/ses.js +2 -1
  50. package/lib/aws/ses.js.map +1 -1
  51. package/lib/aws/ssm-parameter.d.ts +8 -2
  52. package/lib/aws/ssm-parameter.d.ts.map +1 -1
  53. package/lib/aws/ssm-parameter.js +15 -10
  54. package/lib/aws/ssm-parameter.js.map +1 -1
  55. package/lib/aws/table.d.ts +8 -2
  56. package/lib/aws/table.d.ts.map +1 -1
  57. package/lib/aws/table.js +17 -9
  58. package/lib/aws/table.js.map +1 -1
  59. package/lib/cloudflare/account-api-token.d.ts +2 -2
  60. package/lib/cloudflare/account-api-token.d.ts.map +1 -1
  61. package/lib/cloudflare/account-api-token.js +7 -6
  62. package/lib/cloudflare/account-api-token.js.map +1 -1
  63. package/lib/cloudflare/ai-gateway.d.ts +9 -4
  64. package/lib/cloudflare/ai-gateway.d.ts.map +1 -1
  65. package/lib/cloudflare/ai-gateway.js +20 -24
  66. package/lib/cloudflare/ai-gateway.js.map +1 -1
  67. package/lib/cloudflare/api-schema.d.ts +2 -2
  68. package/lib/cloudflare/api-schema.d.ts.map +1 -1
  69. package/lib/cloudflare/api-schema.js +6 -2
  70. package/lib/cloudflare/api-schema.js.map +1 -1
  71. package/lib/cloudflare/api-shield.d.ts +5 -1
  72. package/lib/cloudflare/api-shield.d.ts.map +1 -1
  73. package/lib/cloudflare/api-shield.js +6 -1
  74. package/lib/cloudflare/api-shield.js.map +1 -1
  75. package/lib/cloudflare/assets.d.ts +1 -1
  76. package/lib/cloudflare/assets.d.ts.map +1 -1
  77. package/lib/cloudflare/astro/astro.d.ts.map +1 -1
  78. package/lib/cloudflare/astro/astro.js +3 -1
  79. package/lib/cloudflare/astro/astro.js.map +1 -1
  80. package/lib/cloudflare/astro/plugin.d.ts +2 -1
  81. package/lib/cloudflare/astro/plugin.d.ts.map +1 -1
  82. package/lib/cloudflare/astro/plugin.js.map +1 -1
  83. package/lib/cloudflare/bindings.d.ts +2 -2
  84. package/lib/cloudflare/bindings.d.ts.map +1 -1
  85. package/lib/cloudflare/bound.d.ts +1 -1
  86. package/lib/cloudflare/bound.d.ts.map +1 -1
  87. package/lib/cloudflare/bucket.d.ts +120 -1
  88. package/lib/cloudflare/bucket.d.ts.map +1 -1
  89. package/lib/cloudflare/bucket.js +80 -2
  90. package/lib/cloudflare/bucket.js.map +1 -1
  91. package/lib/cloudflare/cloudflare-env-proxy.js +1 -1
  92. package/lib/cloudflare/cloudflare-env-proxy.js.map +1 -1
  93. package/lib/cloudflare/compatibility-date.gen.d.ts +1 -1
  94. package/lib/cloudflare/compatibility-date.gen.js +1 -1
  95. package/lib/cloudflare/container.d.ts +10 -4
  96. package/lib/cloudflare/container.d.ts.map +1 -1
  97. package/lib/cloudflare/container.js +12 -9
  98. package/lib/cloudflare/container.js.map +1 -1
  99. package/lib/cloudflare/custom-domain.js +2 -1
  100. package/lib/cloudflare/custom-domain.js.map +1 -1
  101. package/lib/cloudflare/d1-database.d.ts +1 -1
  102. package/lib/cloudflare/d1-database.d.ts.map +1 -1
  103. package/lib/cloudflare/d1-database.js +6 -2
  104. package/lib/cloudflare/d1-database.js.map +1 -1
  105. package/lib/cloudflare/dispatch-namespace.d.ts +2 -0
  106. package/lib/cloudflare/dispatch-namespace.d.ts.map +1 -1
  107. package/lib/cloudflare/dispatch-namespace.js +7 -5
  108. package/lib/cloudflare/dispatch-namespace.js.map +1 -1
  109. package/lib/cloudflare/durable-object-namespace.d.ts.map +1 -1
  110. package/lib/cloudflare/durable-object-namespace.js.map +1 -1
  111. package/lib/cloudflare/hyperdrive.d.ts +7 -1
  112. package/lib/cloudflare/hyperdrive.d.ts.map +1 -1
  113. package/lib/cloudflare/hyperdrive.js +3 -2
  114. package/lib/cloudflare/hyperdrive.js.map +1 -1
  115. package/lib/cloudflare/kv-namespace.d.ts +3 -0
  116. package/lib/cloudflare/kv-namespace.d.ts.map +1 -1
  117. package/lib/cloudflare/kv-namespace.js +11 -2
  118. package/lib/cloudflare/kv-namespace.js.map +1 -1
  119. package/lib/cloudflare/miniflare/miniflare-worker-proxy.js +3 -1
  120. package/lib/cloudflare/miniflare/miniflare-worker-proxy.js.map +1 -1
  121. package/lib/cloudflare/miniflare/paths.d.ts +4 -0
  122. package/lib/cloudflare/miniflare/paths.d.ts.map +1 -1
  123. package/lib/cloudflare/miniflare/paths.js +11 -0
  124. package/lib/cloudflare/miniflare/paths.js.map +1 -1
  125. package/lib/cloudflare/pipeline.d.ts +14 -3
  126. package/lib/cloudflare/pipeline.d.ts.map +1 -1
  127. package/lib/cloudflare/pipeline.js +31 -2
  128. package/lib/cloudflare/pipeline.js.map +1 -1
  129. package/lib/cloudflare/queue-consumer.js +1 -1
  130. package/lib/cloudflare/queue-consumer.js.map +1 -1
  131. package/lib/cloudflare/queue.d.ts +4 -2
  132. package/lib/cloudflare/queue.d.ts.map +1 -1
  133. package/lib/cloudflare/queue.js +13 -9
  134. package/lib/cloudflare/queue.js.map +1 -1
  135. package/lib/cloudflare/react-router/plugin.d.ts +1 -1
  136. package/lib/cloudflare/react-router/plugin.d.ts.map +1 -1
  137. package/lib/cloudflare/react-router/react-router.d.ts.map +1 -1
  138. package/lib/cloudflare/react-router/react-router.js +32 -2
  139. package/lib/cloudflare/react-router/react-router.js.map +1 -1
  140. package/lib/cloudflare/redwood/plugin.d.ts +2 -1
  141. package/lib/cloudflare/redwood/plugin.d.ts.map +1 -1
  142. package/lib/cloudflare/redwood/plugin.js.map +1 -1
  143. package/lib/cloudflare/route.js +1 -1
  144. package/lib/cloudflare/route.js.map +1 -1
  145. package/lib/cloudflare/ruleset.d.ts +3 -1
  146. package/lib/cloudflare/ruleset.d.ts.map +1 -1
  147. package/lib/cloudflare/ruleset.js +3 -2
  148. package/lib/cloudflare/ruleset.js.map +1 -1
  149. package/lib/cloudflare/secret.d.ts +6 -23
  150. package/lib/cloudflare/secret.d.ts.map +1 -1
  151. package/lib/cloudflare/secret.js +8 -4
  152. package/lib/cloudflare/secret.js.map +1 -1
  153. package/lib/cloudflare/secrets-store.d.ts +1 -1
  154. package/lib/cloudflare/secrets-store.d.ts.map +1 -1
  155. package/lib/cloudflare/secrets-store.js +5 -2
  156. package/lib/cloudflare/secrets-store.js.map +1 -1
  157. package/lib/cloudflare/tunnel.d.ts +5 -1
  158. package/lib/cloudflare/tunnel.d.ts.map +1 -1
  159. package/lib/cloudflare/tunnel.js +5 -1
  160. package/lib/cloudflare/tunnel.js.map +1 -1
  161. package/lib/cloudflare/vectorize-index.d.ts +7 -1
  162. package/lib/cloudflare/vectorize-index.d.ts.map +1 -1
  163. package/lib/cloudflare/vectorize-index.js +5 -2
  164. package/lib/cloudflare/vectorize-index.js.map +1 -1
  165. package/lib/cloudflare/vite/plugin.d.ts +2 -1
  166. package/lib/cloudflare/vite/plugin.d.ts.map +1 -1
  167. package/lib/cloudflare/vite/plugin.js.map +1 -1
  168. package/lib/cloudflare/website.js +1 -1
  169. package/lib/cloudflare/website.js.map +1 -1
  170. package/lib/cloudflare/worker-metadata.js +1 -1
  171. package/lib/cloudflare/worker-metadata.js.map +1 -1
  172. package/lib/cloudflare/worker.d.ts +1 -1
  173. package/lib/cloudflare/worker.d.ts.map +1 -1
  174. package/lib/cloudflare/worker.js +12 -7
  175. package/lib/cloudflare/worker.js.map +1 -1
  176. package/lib/cloudflare/wrangler.json.d.ts +1 -1
  177. package/lib/cloudflare/wrangler.json.d.ts.map +1 -1
  178. package/lib/cloudflare/wrangler.json.js +5 -3
  179. package/lib/cloudflare/wrangler.json.js.map +1 -1
  180. package/lib/docker/container.d.ts +6 -0
  181. package/lib/docker/container.d.ts.map +1 -1
  182. package/lib/docker/container.js +5 -1
  183. package/lib/docker/container.js.map +1 -1
  184. package/lib/docker/network.d.ts +8 -2
  185. package/lib/docker/network.d.ts.map +1 -1
  186. package/lib/docker/network.js +7 -2
  187. package/lib/docker/network.js.map +1 -1
  188. package/lib/docker/volume.d.ts +8 -2
  189. package/lib/docker/volume.d.ts.map +1 -1
  190. package/lib/docker/volume.js +6 -4
  191. package/lib/docker/volume.js.map +1 -1
  192. package/lib/esbuild/bundle.d.ts +1 -1
  193. package/lib/fs/index.d.ts +0 -8
  194. package/lib/fs/index.d.ts.map +1 -1
  195. package/lib/fs/index.js +0 -8
  196. package/lib/fs/index.js.map +1 -1
  197. package/lib/github/client.d.ts +1 -1
  198. package/lib/github/client.d.ts.map +1 -1
  199. package/lib/github/client.js +2 -1
  200. package/lib/github/client.js.map +1 -1
  201. package/lib/github/repository-environment.d.ts +8 -2
  202. package/lib/github/repository-environment.d.ts.map +1 -1
  203. package/lib/github/repository-environment.js +16 -12
  204. package/lib/github/repository-environment.js.map +1 -1
  205. package/lib/neon/project.d.ts +7 -1
  206. package/lib/neon/project.d.ts.map +1 -1
  207. package/lib/neon/project.js +14 -11
  208. package/lib/neon/project.js.map +1 -1
  209. package/lib/planetscale/branch.d.ts +4 -2
  210. package/lib/planetscale/branch.d.ts.map +1 -1
  211. package/lib/planetscale/branch.js +18 -12
  212. package/lib/planetscale/branch.js.map +1 -1
  213. package/lib/planetscale/database.d.ts +8 -2
  214. package/lib/planetscale/database.d.ts.map +1 -1
  215. package/lib/planetscale/database.js +24 -16
  216. package/lib/planetscale/database.js.map +1 -1
  217. package/lib/planetscale/password.d.ts +8 -2
  218. package/lib/planetscale/password.d.ts.map +1 -1
  219. package/lib/planetscale/password.js +2 -2
  220. package/lib/planetscale/password.js.map +1 -1
  221. package/lib/resource.d.ts +0 -2
  222. package/lib/resource.d.ts.map +1 -1
  223. package/lib/resource.js +1 -9
  224. package/lib/resource.js.map +1 -1
  225. package/lib/scope.d.ts +9 -3
  226. package/lib/scope.d.ts.map +1 -1
  227. package/lib/scope.js +21 -34
  228. package/lib/scope.js.map +1 -1
  229. package/lib/sentry/client-key.d.ts +7 -1
  230. package/lib/sentry/client-key.d.ts.map +1 -1
  231. package/lib/sentry/client-key.js +45 -6
  232. package/lib/sentry/client-key.js.map +1 -1
  233. package/lib/sentry/project.d.ts +8 -2
  234. package/lib/sentry/project.d.ts.map +1 -1
  235. package/lib/sentry/project.js +35 -5
  236. package/lib/sentry/project.js.map +1 -1
  237. package/lib/sentry/team.d.ts +8 -2
  238. package/lib/sentry/team.d.ts.map +1 -1
  239. package/lib/sentry/team.js +36 -6
  240. package/lib/sentry/team.js.map +1 -1
  241. package/lib/serde.d.ts +0 -5
  242. package/lib/serde.d.ts.map +1 -1
  243. package/lib/serde.js +0 -28
  244. package/lib/serde.js.map +1 -1
  245. package/lib/state/d1-state-store.d.ts +1 -1
  246. package/lib/state/d1-state-store.d.ts.map +1 -1
  247. package/lib/state/d1-state-store.js +5 -5
  248. package/lib/state/d1-state-store.js.map +1 -1
  249. package/lib/state/sqlite-state-store.d.ts.map +1 -1
  250. package/lib/state/sqlite-state-store.js +7 -11
  251. package/lib/state/sqlite-state-store.js.map +1 -1
  252. package/lib/stripe/card.d.ts.map +1 -1
  253. package/lib/stripe/card.js +3 -2
  254. package/lib/stripe/card.js.map +1 -1
  255. package/lib/stripe/client.d.ts +2 -2
  256. package/lib/stripe/client.d.ts.map +1 -1
  257. package/lib/stripe/client.js +4 -3
  258. package/lib/stripe/client.js.map +1 -1
  259. package/lib/stripe/coupon.d.ts.map +1 -1
  260. package/lib/stripe/coupon.js +4 -3
  261. package/lib/stripe/coupon.js.map +1 -1
  262. package/lib/stripe/customer.js +2 -2
  263. package/lib/stripe/customer.js.map +1 -1
  264. package/lib/stripe/entitlements-feature.d.ts.map +1 -1
  265. package/lib/stripe/entitlements-feature.js +3 -2
  266. package/lib/stripe/entitlements-feature.js.map +1 -1
  267. package/lib/stripe/file.d.ts.map +1 -1
  268. package/lib/stripe/file.js +3 -2
  269. package/lib/stripe/file.js.map +1 -1
  270. package/lib/stripe/meter.js +2 -2
  271. package/lib/stripe/meter.js.map +1 -1
  272. package/lib/stripe/portal-configuration.d.ts.map +1 -1
  273. package/lib/stripe/portal-configuration.js +3 -2
  274. package/lib/stripe/portal-configuration.js.map +1 -1
  275. package/lib/stripe/price.d.ts.map +1 -1
  276. package/lib/stripe/price.js +3 -2
  277. package/lib/stripe/price.js.map +1 -1
  278. package/lib/stripe/product-feature.d.ts.map +1 -1
  279. package/lib/stripe/product-feature.js +3 -2
  280. package/lib/stripe/product-feature.js.map +1 -1
  281. package/lib/stripe/product.d.ts.map +1 -1
  282. package/lib/stripe/product.js +3 -2
  283. package/lib/stripe/product.js.map +1 -1
  284. package/lib/stripe/promotion-code.d.ts.map +1 -1
  285. package/lib/stripe/promotion-code.js +3 -2
  286. package/lib/stripe/promotion-code.js.map +1 -1
  287. package/lib/stripe/shipping-rate.d.ts.map +1 -1
  288. package/lib/stripe/shipping-rate.js +4 -3
  289. package/lib/stripe/shipping-rate.js.map +1 -1
  290. package/lib/stripe/tax-rate.d.ts.map +1 -1
  291. package/lib/stripe/tax-rate.js +3 -2
  292. package/lib/stripe/tax-rate.js.map +1 -1
  293. package/lib/stripe/webhook.d.ts.map +1 -1
  294. package/lib/stripe/webhook.js +4 -3
  295. package/lib/stripe/webhook.js.map +1 -1
  296. package/lib/test/vitest.d.ts.map +1 -1
  297. package/lib/test/vitest.js +1 -0
  298. package/lib/test/vitest.js.map +1 -1
  299. package/lib/upstash/redis.d.ts +8 -2
  300. package/lib/upstash/redis.d.ts.map +1 -1
  301. package/lib/upstash/redis.js +6 -5
  302. package/lib/upstash/redis.js.map +1 -1
  303. package/lib/util/idempotent-spawn.d.ts.map +1 -1
  304. package/lib/util/idempotent-spawn.js +21 -2
  305. package/lib/util/idempotent-spawn.js.map +1 -1
  306. package/lib/util/ignore-matcher.d.ts.map +1 -1
  307. package/lib/util/ignore-matcher.js +3 -1
  308. package/lib/util/ignore-matcher.js.map +1 -1
  309. package/lib/util/peer.d.ts +10 -0
  310. package/lib/util/peer.d.ts.map +1 -0
  311. package/lib/util/peer.js +42 -0
  312. package/lib/util/peer.js.map +1 -0
  313. package/lib/util/xml.js +1 -1
  314. package/lib/util/xml.js.map +1 -1
  315. package/lib/vercel/project.d.ts +7 -1
  316. package/lib/vercel/project.d.ts.map +1 -1
  317. package/lib/vercel/project.js +28 -0
  318. package/lib/vercel/project.js.map +1 -1
  319. package/package.json +88 -74
  320. package/src/alchemy.ts +76 -222
  321. package/src/apply.ts +6 -19
  322. package/src/aws/account-id.ts +6 -3
  323. package/src/aws/bucket.ts +43 -32
  324. package/src/aws/ec2/security-group.ts +15 -3
  325. package/src/aws/function.ts +65 -39
  326. package/src/aws/policy-attachment.ts +10 -6
  327. package/src/aws/policy.ts +33 -15
  328. package/src/aws/queue.ts +50 -29
  329. package/src/aws/role.ts +37 -20
  330. package/src/aws/ses.ts +24 -20
  331. package/src/aws/ssm-parameter.ts +40 -20
  332. package/src/aws/table.ts +35 -17
  333. package/src/cloudflare/account-api-token.ts +9 -7
  334. package/src/cloudflare/ai-gateway.ts +37 -34
  335. package/src/cloudflare/api-schema.ts +33 -26
  336. package/src/cloudflare/api-shield.ts +15 -2
  337. package/src/cloudflare/astro/astro.ts +5 -1
  338. package/src/cloudflare/astro/plugin.ts +2 -1
  339. package/src/cloudflare/bindings.ts +2 -2
  340. package/src/cloudflare/bound.ts +1 -1
  341. package/src/cloudflare/bucket.ts +242 -3
  342. package/src/cloudflare/cloudflare-env-proxy.ts +1 -1
  343. package/src/cloudflare/compatibility-date.gen.ts +1 -1
  344. package/src/cloudflare/container.ts +23 -12
  345. package/src/cloudflare/custom-domain.ts +2 -2
  346. package/src/cloudflare/d1-database.ts +10 -3
  347. package/src/cloudflare/dispatch-namespace.ts +10 -7
  348. package/src/cloudflare/durable-object-namespace.ts +0 -1
  349. package/src/cloudflare/hyperdrive.ts +14 -4
  350. package/src/cloudflare/kv-namespace.ts +25 -2
  351. package/src/cloudflare/miniflare/miniflare-worker-proxy.ts +3 -1
  352. package/src/cloudflare/miniflare/paths.ts +13 -0
  353. package/src/cloudflare/pipeline.ts +76 -28
  354. package/src/cloudflare/queue-consumer.ts +1 -1
  355. package/src/cloudflare/queue.ts +26 -14
  356. package/src/cloudflare/react-router/react-router.ts +28 -2
  357. package/src/cloudflare/redwood/plugin.ts +3 -2
  358. package/src/cloudflare/route.ts +1 -1
  359. package/src/cloudflare/ruleset.ts +7 -2
  360. package/src/cloudflare/secret.ts +20 -31
  361. package/src/cloudflare/secrets-store.ts +7 -3
  362. package/src/cloudflare/tunnel.ts +13 -2
  363. package/src/cloudflare/vectorize-index.ts +14 -3
  364. package/src/cloudflare/vite/plugin.ts +3 -2
  365. package/src/cloudflare/website.ts +1 -1
  366. package/src/cloudflare/worker-metadata.ts +1 -1
  367. package/src/cloudflare/worker.ts +35 -23
  368. package/src/cloudflare/wrangler.json.ts +7 -4
  369. package/src/docker/container.ts +13 -1
  370. package/src/docker/network.ts +18 -3
  371. package/src/docker/volume.ts +17 -6
  372. package/src/fs/index.ts +0 -8
  373. package/src/github/client.ts +6 -2
  374. package/src/github/repository-environment.ts +27 -13
  375. package/src/neon/project.ts +24 -11
  376. package/src/planetscale/branch.ts +24 -13
  377. package/src/planetscale/database.ts +38 -17
  378. package/src/planetscale/password.ts +10 -3
  379. package/src/resource.ts +1 -10
  380. package/src/scope.ts +29 -38
  381. package/src/sentry/client-key.ts +74 -6
  382. package/src/sentry/project.ts +59 -6
  383. package/src/sentry/team.ts +55 -7
  384. package/src/serde.ts +0 -44
  385. package/src/state/d1-state-store.ts +13 -6
  386. package/src/state/sqlite-state-store.ts +16 -17
  387. package/src/stripe/card.ts +5 -2
  388. package/src/stripe/client.ts +10 -3
  389. package/src/stripe/coupon.ts +4 -3
  390. package/src/stripe/customer.ts +2 -2
  391. package/src/stripe/entitlements-feature.ts +5 -2
  392. package/src/stripe/file.ts +3 -2
  393. package/src/stripe/meter.ts +2 -2
  394. package/src/stripe/portal-configuration.ts +5 -2
  395. package/src/stripe/price.ts +3 -2
  396. package/src/stripe/product-feature.ts +5 -2
  397. package/src/stripe/product.ts +3 -2
  398. package/src/stripe/promotion-code.ts +3 -2
  399. package/src/stripe/shipping-rate.ts +4 -3
  400. package/src/stripe/tax-rate.ts +3 -2
  401. package/src/stripe/webhook.ts +4 -3
  402. package/src/test/vitest.ts +1 -0
  403. package/src/upstash/redis.ts +16 -6
  404. package/src/util/idempotent-spawn.ts +23 -2
  405. package/src/util/ignore-matcher.ts +3 -1
  406. package/src/util/peer.ts +53 -0
  407. package/src/util/xml.ts +1 -1
  408. package/src/vercel/project.ts +46 -1
  409. package/templates/hono/README.md +19 -0
  410. package/templates/hono/_env +1 -0
  411. package/templates/hono/_env.example +1 -0
  412. package/templates/hono/_gitignore +34 -0
  413. package/templates/hono/alchemy.run.ts +22 -0
  414. package/templates/hono/package.json +18 -0
  415. package/templates/hono/src/index.ts +17 -0
  416. package/templates/hono/tsconfig.json +13 -0
  417. package/templates/hono/types/env.d.ts +16 -0
  418. package/templates/react-router/vite.config.ts +5 -3
  419. package/workers/cloudflare-state-store.js +69 -74
  420. package/workers/dofs-state-store.js +1 -1
  421. package/bin/bootstrap-s3.ts +0 -255
  422. package/lib/ai/ark.d.ts +0 -12
  423. package/lib/ai/ark.d.ts.map +0 -1
  424. package/lib/ai/ark.js +0 -87
  425. package/lib/ai/ark.js.map +0 -1
  426. package/lib/ai/astro-file.d.ts +0 -138
  427. package/lib/ai/astro-file.d.ts.map +0 -1
  428. package/lib/ai/astro-file.js +0 -158
  429. package/lib/ai/astro-file.js.map +0 -1
  430. package/lib/ai/client.d.ts +0 -51
  431. package/lib/ai/client.d.ts.map +0 -1
  432. package/lib/ai/client.js +0 -58
  433. package/lib/ai/client.js.map +0 -1
  434. package/lib/ai/css-file.d.ts +0 -132
  435. package/lib/ai/css-file.d.ts.map +0 -1
  436. package/lib/ai/css-file.js +0 -142
  437. package/lib/ai/css-file.js.map +0 -1
  438. package/lib/ai/data.d.ts +0 -152
  439. package/lib/ai/data.d.ts.map +0 -1
  440. package/lib/ai/data.js +0 -120
  441. package/lib/ai/data.js.map +0 -1
  442. package/lib/ai/document.d.ts +0 -208
  443. package/lib/ai/document.d.ts.map +0 -1
  444. package/lib/ai/document.js +0 -206
  445. package/lib/ai/document.js.map +0 -1
  446. package/lib/ai/html-file.d.ts +0 -129
  447. package/lib/ai/html-file.d.ts.map +0 -1
  448. package/lib/ai/html-file.js +0 -139
  449. package/lib/ai/html-file.js.map +0 -1
  450. package/lib/ai/index.d.ts +0 -11
  451. package/lib/ai/index.d.ts.map +0 -1
  452. package/lib/ai/index.js +0 -11
  453. package/lib/ai/index.js.map +0 -1
  454. package/lib/ai/json-file.d.ts +0 -161
  455. package/lib/ai/json-file.d.ts.map +0 -1
  456. package/lib/ai/json-file.js +0 -188
  457. package/lib/ai/json-file.js.map +0 -1
  458. package/lib/ai/typescript-file.d.ts +0 -140
  459. package/lib/ai/typescript-file.d.ts.map +0 -1
  460. package/lib/ai/typescript-file.js +0 -146
  461. package/lib/ai/typescript-file.js.map +0 -1
  462. package/lib/ai/vue-file.d.ts +0 -127
  463. package/lib/ai/vue-file.d.ts.map +0 -1
  464. package/lib/ai/vue-file.js +0 -137
  465. package/lib/ai/vue-file.js.map +0 -1
  466. package/lib/ai/yaml-file.d.ts +0 -170
  467. package/lib/ai/yaml-file.d.ts.map +0 -1
  468. package/lib/ai/yaml-file.js +0 -201
  469. package/lib/ai/yaml-file.js.map +0 -1
  470. package/lib/fs/static-astro-file.d.ts +0 -35
  471. package/lib/fs/static-astro-file.d.ts.map +0 -1
  472. package/lib/fs/static-astro-file.js +0 -40
  473. package/lib/fs/static-astro-file.js.map +0 -1
  474. package/lib/fs/static-css-file.d.ts +0 -25
  475. package/lib/fs/static-css-file.d.ts.map +0 -1
  476. package/lib/fs/static-css-file.js +0 -30
  477. package/lib/fs/static-css-file.js.map +0 -1
  478. package/lib/fs/static-html-file.d.ts +0 -32
  479. package/lib/fs/static-html-file.d.ts.map +0 -1
  480. package/lib/fs/static-html-file.js +0 -37
  481. package/lib/fs/static-html-file.js.map +0 -1
  482. package/lib/fs/static-json-file.d.ts +0 -18
  483. package/lib/fs/static-json-file.d.ts.map +0 -1
  484. package/lib/fs/static-json-file.js +0 -19
  485. package/lib/fs/static-json-file.js.map +0 -1
  486. package/lib/fs/static-text-file.d.ts +0 -13
  487. package/lib/fs/static-text-file.d.ts.map +0 -1
  488. package/lib/fs/static-text-file.js +0 -9
  489. package/lib/fs/static-text-file.js.map +0 -1
  490. package/lib/fs/static-typescript-file.d.ts +0 -20
  491. package/lib/fs/static-typescript-file.d.ts.map +0 -1
  492. package/lib/fs/static-typescript-file.js +0 -16
  493. package/lib/fs/static-typescript-file.js.map +0 -1
  494. package/lib/fs/static-vue-file.d.ts +0 -29
  495. package/lib/fs/static-vue-file.d.ts.map +0 -1
  496. package/lib/fs/static-vue-file.js +0 -34
  497. package/lib/fs/static-vue-file.js.map +0 -1
  498. package/lib/fs/static-yaml-file.d.ts +0 -23
  499. package/lib/fs/static-yaml-file.d.ts.map +0 -1
  500. package/lib/fs/static-yaml-file.js +0 -10
  501. package/lib/fs/static-yaml-file.js.map +0 -1
  502. package/lib/internal/docs/providers.d.ts +0 -34
  503. package/lib/internal/docs/providers.d.ts.map +0 -1
  504. package/lib/internal/docs/providers.js +0 -200
  505. package/lib/internal/docs/providers.js.map +0 -1
  506. package/lib/runtime/bind.d.ts +0 -25
  507. package/lib/runtime/bind.d.ts.map +0 -1
  508. package/lib/runtime/bind.js +0 -76
  509. package/lib/runtime/bind.js.map +0 -1
  510. package/lib/runtime/global.d.ts +0 -8
  511. package/lib/runtime/global.d.ts.map +0 -1
  512. package/lib/runtime/global.js +0 -3
  513. package/lib/runtime/global.js.map +0 -1
  514. package/lib/runtime/plugin.d.ts +0 -35
  515. package/lib/runtime/plugin.d.ts.map +0 -1
  516. package/lib/runtime/plugin.js +0 -134
  517. package/lib/runtime/plugin.js.map +0 -1
  518. package/lib/runtime/shims.d.ts +0 -6
  519. package/lib/runtime/shims.d.ts.map +0 -1
  520. package/lib/runtime/shims.js +0 -27
  521. package/lib/runtime/shims.js.map +0 -1
  522. package/lib/runtime/state.d.ts +0 -5
  523. package/lib/runtime/state.d.ts.map +0 -1
  524. package/lib/runtime/state.js +0 -4
  525. package/lib/runtime/state.js.map +0 -1
  526. package/lib/web/astro.d.ts +0 -148
  527. package/lib/web/astro.d.ts.map +0 -1
  528. package/lib/web/astro.js +0 -419
  529. package/lib/web/astro.js.map +0 -1
  530. package/lib/web/shadcn-component.d.ts +0 -30
  531. package/lib/web/shadcn-component.d.ts.map +0 -1
  532. package/lib/web/shadcn-component.js +0 -25
  533. package/lib/web/shadcn-component.js.map +0 -1
  534. package/lib/web/shadcn.d.ts +0 -98
  535. package/lib/web/shadcn.d.ts.map +0 -1
  536. package/lib/web/shadcn.js +0 -102
  537. package/lib/web/shadcn.js.map +0 -1
  538. package/lib/web/tailwind.d.ts +0 -65
  539. package/lib/web/tailwind.d.ts.map +0 -1
  540. package/lib/web/tailwind.js +0 -98
  541. package/lib/web/tailwind.js.map +0 -1
  542. package/lib/web/vite.d.ts +0 -96
  543. package/lib/web/vite.d.ts.map +0 -1
  544. package/lib/web/vite.js +0 -232
  545. package/lib/web/vite.js.map +0 -1
  546. package/lib/web/vitepress/config.d.ts +0 -12
  547. package/lib/web/vitepress/config.d.ts.map +0 -1
  548. package/lib/web/vitepress/config.js +0 -33
  549. package/lib/web/vitepress/config.js.map +0 -1
  550. package/lib/web/vitepress/custom-theme.d.ts +0 -174
  551. package/lib/web/vitepress/custom-theme.d.ts.map +0 -1
  552. package/lib/web/vitepress/custom-theme.js +0 -337
  553. package/lib/web/vitepress/custom-theme.js.map +0 -1
  554. package/lib/web/vitepress/dependencies.d.ts +0 -13
  555. package/lib/web/vitepress/dependencies.d.ts.map +0 -1
  556. package/lib/web/vitepress/dependencies.js +0 -37
  557. package/lib/web/vitepress/dependencies.js.map +0 -1
  558. package/lib/web/vitepress/home-page.d.ts +0 -247
  559. package/lib/web/vitepress/home-page.d.ts.map +0 -1
  560. package/lib/web/vitepress/home-page.js +0 -146
  561. package/lib/web/vitepress/home-page.js.map +0 -1
  562. package/lib/web/vitepress/index.d.ts +0 -6
  563. package/lib/web/vitepress/index.d.ts.map +0 -1
  564. package/lib/web/vitepress/index.js +0 -6
  565. package/lib/web/vitepress/index.js.map +0 -1
  566. package/lib/web/vitepress/process-front-matter-files.d.ts +0 -19
  567. package/lib/web/vitepress/process-front-matter-files.d.ts.map +0 -1
  568. package/lib/web/vitepress/process-front-matter-files.js +0 -73
  569. package/lib/web/vitepress/process-front-matter-files.js.map +0 -1
  570. package/lib/web/vitepress/vitepress.d.ts +0 -75
  571. package/lib/web/vitepress/vitepress.d.ts.map +0 -1
  572. package/lib/web/vitepress/vitepress.js +0 -254
  573. package/lib/web/vitepress/vitepress.js.map +0 -1
  574. package/src/ai/ark.ts +0 -118
  575. package/src/ai/astro-file.ts +0 -270
  576. package/src/ai/client.ts +0 -117
  577. package/src/ai/css-file.ts +0 -247
  578. package/src/ai/data.ts +0 -221
  579. package/src/ai/document.ts +0 -367
  580. package/src/ai/html-file.ts +0 -244
  581. package/src/ai/index.ts +0 -10
  582. package/src/ai/json-file.ts +0 -325
  583. package/src/ai/typescript-file.ts +0 -259
  584. package/src/ai/vue-file.ts +0 -242
  585. package/src/ai/yaml-file.ts +0 -328
  586. package/src/fs/static-astro-file.ts +0 -45
  587. package/src/fs/static-css-file.ts +0 -35
  588. package/src/fs/static-html-file.ts +0 -42
  589. package/src/fs/static-json-file.ts +0 -38
  590. package/src/fs/static-text-file.ts +0 -23
  591. package/src/fs/static-typescript-file.ts +0 -37
  592. package/src/fs/static-vue-file.ts +0 -39
  593. package/src/fs/static-yaml-file.ts +0 -33
  594. package/src/internal/docs/providers.ts +0 -286
  595. package/src/runtime/bind.ts +0 -95
  596. package/src/runtime/global.ts +0 -10
  597. package/src/runtime/plugin.ts +0 -163
  598. package/src/runtime/shims.js +0 -34
  599. package/src/runtime/state.ts +0 -9
  600. package/src/web/astro.ts +0 -643
  601. package/src/web/shadcn-component.ts +0 -72
  602. package/src/web/shadcn.ts +0 -221
  603. package/src/web/tailwind.ts +0 -167
  604. package/src/web/vite.ts +0 -407
  605. package/src/web/vitepress/config.ts +0 -50
  606. package/src/web/vitepress/custom-theme.ts +0 -514
  607. package/src/web/vitepress/dependencies.ts +0 -69
  608. package/src/web/vitepress/home-page.ts +0 -378
  609. package/src/web/vitepress/index.ts +0 -5
  610. package/src/web/vitepress/process-front-matter-files.ts +0 -107
  611. package/src/web/vitepress/vitepress.ts +0 -372
  612. package/templates/sveltekit/bun.lock +0 -1099
@@ -1 +0,0 @@
1
- {"version":3,"file":"typescript-file.d.ts","sourceRoot":"","sources":["../../src/ai/typescript-file.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAE7C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAe,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AAE5D;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;;;;;;OAQG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;;;;OAKG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,KAAK,CAAC,EAAE,WAAW,CAAC;IAEpB;;;;;OAKG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,cACf,SAAQ,mBAAmB,EACzB,QAAQ,CAAC,oBAAoB,CAAC;IAChC;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;CACnB;AAQD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgEG;AACH,eAAO,MAAM,cAAc,yFAGjB,OAAO,CAAC,cAAc,CAAC,OACxB,MAAM,SACJ,mBAAmB,KACzB,OAAO,CAAC,cAAc,CAAC,CA4D3B,CAAC"}
@@ -1,146 +0,0 @@
1
- import { generateText } from "ai";
2
- import { StaticTypeScriptFile } from "../fs/static-typescript-file.js";
3
- import { Resource } from "../resource.js";
4
- import { createModel } from "./client.js";
5
- /**
6
- * Default system prompt for TypeScript file generation
7
- */
8
- const DEFAULT_TS_SYSTEM_PROMPT = "You are a TypeScript code generator. Create TypeScript code based on the user's requirements. Your response MUST include only TypeScript code inside ```ts fences. Do not include any other text, explanations, or multiple code blocks.";
9
- /**
10
- * Resource for generating TypeScript files using AI models.
11
- * Extracts TypeScript code from between ```ts fences, validates the response,
12
- * and formats the code with Prettier.
13
- *
14
- * @example
15
- * // Create a utility function
16
- * const utils = await TypeScriptFile("string-utils", {
17
- * path: "./src/utils/string-utils.ts",
18
- * prompt: await alchemy`
19
- * Generate TypeScript utility functions for string manipulation:
20
- * - Capitalize first letter
21
- * - Truncate with ellipsis
22
- * - Convert to camelCase and kebab-case
23
- * - Remove special characters
24
- * `,
25
- * model: {
26
- * id: "gpt-4o",
27
- * provider: "openai"
28
- * }
29
- * });
30
- *
31
- * @example
32
- * // Generate a TypeScript class with custom formatting
33
- * const userService = await TypeScriptFile("user-service", {
34
- * path: "./src/services/UserService.ts",
35
- * prompt: await alchemy`
36
- * Create a UserService class that handles user authentication and profile management.
37
- * The service should use the User type from:
38
- * ${alchemy.file("src/types/User.ts")}
39
- *
40
- * Include methods for:
41
- * - login(email, password)
42
- * - register(user)
43
- * - updateProfile(userId, profileData)
44
- * - deleteAccount(userId)
45
- * `,
46
- * temperature: 0.2,
47
- * prettierConfig: {
48
- * semi: false,
49
- * singleQuote: true,
50
- * printWidth: 120
51
- * }
52
- * });
53
- *
54
- * @example
55
- * // Generate a React hook with custom system prompt
56
- * const useFormHook = await TypeScriptFile("use-form", {
57
- * path: "./src/hooks/useForm.ts",
58
- * prompt: await alchemy`
59
- * Create a custom React hook called useForm that handles form state, validation, and submission.
60
- * It should support:
61
- * - Initial values
62
- * - Validation rules
63
- * - Field errors
64
- * - Form submission with loading state
65
- * - Reset functionality
66
- * `,
67
- * system: "You are an expert React developer specializing in TypeScript hooks. Create a single TypeScript file inside ```ts fences with no additional text. Follow React best practices and include proper typing.",
68
- * model: {
69
- * id: "claude-3-opus-20240229",
70
- * provider: "anthropic"
71
- * }
72
- * });
73
- */
74
- export const TypeScriptFile = Resource("ai::TypeScriptFile", async function (_id, props) {
75
- // Handle delete phase
76
- if (this.phase === "delete") {
77
- // StaticTypeScriptFile will handle the deletion
78
- return this.destroy();
79
- }
80
- // Use provided system prompt or default
81
- const system = props.system || DEFAULT_TS_SYSTEM_PROMPT;
82
- // Generate initial content
83
- const { text } = await generateText({
84
- model: createModel(props),
85
- prompt: props.prompt,
86
- system,
87
- providerOptions: props.model?.options,
88
- ...(props.temperature === undefined
89
- ? {}
90
- : { temperature: props.temperature }),
91
- });
92
- // Extract and validate TypeScript code
93
- let { code, error } = await extractTypeScriptCode(text);
94
- // Re-prompt if there are validation errors
95
- if (error) {
96
- const errorSystem = `${system}\n\nERROR: ${error}\n\nPlease try again and ensure your response contains exactly one TypeScript code block inside \`\`\`ts fences.`;
97
- const { text: retryText } = await generateText({
98
- model: createModel(props),
99
- prompt: props.prompt,
100
- system: errorSystem,
101
- providerOptions: props.model?.options,
102
- ...(props.temperature === undefined
103
- ? {}
104
- : { temperature: props.temperature }),
105
- });
106
- const retryResult = await extractTypeScriptCode(retryText);
107
- if (retryResult.error) {
108
- throw new Error(`Failed to generate valid TypeScript code: ${retryResult.error}`);
109
- }
110
- code = retryResult.code;
111
- }
112
- // Use StaticTypeScriptFile to create/update the file
113
- const file = await StaticTypeScriptFile("file", props.path, code);
114
- // Return the resource
115
- return this({
116
- ...props,
117
- content: file.content,
118
- createdAt: Date.now(),
119
- updatedAt: Date.now(),
120
- });
121
- });
122
- /**
123
- * Extracts TypeScript code from between ```ts fences
124
- * Validates that exactly one TypeScript code block exists
125
- *
126
- * @param text The text to extract TypeScript code from
127
- * @returns The extracted TypeScript code or error message
128
- */
129
- async function extractTypeScriptCode(text) {
130
- const tsCodeRegex = /```ts\s*([\s\S]*?)```/g;
131
- const matches = Array.from(text.matchAll(tsCodeRegex));
132
- if (matches.length === 0) {
133
- return {
134
- code: "",
135
- error: "No TypeScript code block found in the response. Please include your code within ```ts fences.",
136
- };
137
- }
138
- if (matches.length > 1) {
139
- return {
140
- code: "",
141
- error: "Multiple TypeScript code blocks found in the response. Please provide exactly one code block within ```ts fences.",
142
- };
143
- }
144
- return { code: matches[0][1].trim() };
145
- }
146
- //# sourceMappingURL=typescript-file.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"typescript-file.js","sourceRoot":"","sources":["../../src/ai/typescript-file.ts"],"names":[],"mappings":"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"}
@@ -1,127 +0,0 @@
1
- import type { Context } from "../context.ts";
2
- import { Resource } from "../resource.ts";
3
- import type { Secret } from "../secret.ts";
4
- import { type ModelConfig } from "./client.ts";
5
- /**
6
- * Properties for creating or updating a VueFile
7
- */
8
- export interface VueFileProps {
9
- /**
10
- * Path to the Vue file
11
- */
12
- path: string;
13
- /**
14
- * Base URL for the OpenAI API
15
- * @default 'https://api.openai.com/v1'
16
- */
17
- baseURL?: string;
18
- /**
19
- * Prompt for generating content
20
- * Use alchemy template literals to include file context:
21
- * @example
22
- * prompt: await alchemy`
23
- * Generate a Vue component using:
24
- * ${alchemy.file("src/api.ts")}
25
- * `
26
- */
27
- prompt: string;
28
- /**
29
- * System prompt for the model
30
- * This is used to provide instructions to the model about how to format the response
31
- * The default system prompt instructs the model to return a single Vue component inside ```vue fences
32
- * @default "You are a Vue component generator. Create a single Vue component based on the user's requirements. Your response MUST include only a single Vue component inside ```vue fences. Do not include any other text, explanations, or multiple code blocks."
33
- */
34
- system?: string;
35
- /**
36
- * OpenAI API key to use for generating content
37
- * If not provided, will use OPENAI_API_KEY environment variable
38
- */
39
- apiKey?: Secret;
40
- /**
41
- * Model configuration
42
- */
43
- model?: ModelConfig;
44
- /**
45
- * Temperature for controlling randomness in generation.
46
- * Higher values (e.g., 0.8) make output more random,
47
- * lower values (e.g., 0.2) make it more deterministic.
48
- * @default 0.7
49
- */
50
- temperature?: number;
51
- }
52
- /**
53
- * A Vue file that can be created, updated, and deleted
54
- */
55
- export interface VueFile extends VueFileProps, Resource<"ai::VueFile"> {
56
- /**
57
- * Content of the Vue file
58
- */
59
- content: string;
60
- /**
61
- * Time at which the file was created
62
- */
63
- createdAt: number;
64
- /**
65
- * Time at which the file was last updated
66
- */
67
- updatedAt: number;
68
- }
69
- /**
70
- * Resource for generating Vue files using AI models.
71
- * Extracts Vue code from between ```vue fences and validates the response.
72
- *
73
- * @example
74
- * // Create a simple Vue component
75
- * const button = await VueFile("button-component", {
76
- * path: "./src/components/Button.vue",
77
- * prompt: await alchemy`
78
- * Generate a customizable button Vue component with:
79
- * - Primary, secondary, and outline variants
80
- * - Small, medium, and large sizes
81
- * - Loading state with spinner
82
- * - Disabled state
83
- * `,
84
- * model: {
85
- * id: "gpt-4o",
86
- * provider: "openai"
87
- * }
88
- * });
89
- *
90
- * @example
91
- * // Generate a Vue component using existing files as reference
92
- * const userCard = await VueFile("user-card", {
93
- * path: "./src/components/UserCard.vue",
94
- * prompt: await alchemy`
95
- * Create a UserCard Vue component that displays user information.
96
- * Follow the styling patterns from:
97
- * ${alchemy.file("src/components/Card.vue")}
98
- *
99
- * Use the user type from:
100
- * ${alchemy.file("src/types/User.ts")}
101
- * `,
102
- * temperature: 0.2
103
- * });
104
- *
105
- * @example
106
- * // Generate a complex form component with validation and custom system prompt
107
- * const form = await VueFile("registration-form", {
108
- * path: "./src/components/RegistrationForm.vue",
109
- * prompt: await alchemy`
110
- * Generate a registration form Vue component with:
111
- * - Email, password, and confirm password fields
112
- * - Form validation using Vuelidate or similar
113
- * - Error messages for each field
114
- * - Submit handler that emits form data
115
- *
116
- * Follow these style guidelines:
117
- * ${alchemy.file("src/styles/guidelines.md")}
118
- * `,
119
- * system: "You are an expert Vue component creator specializing in form components with validation. Create a single Vue component inside ```vue fences with no additional text.",
120
- * model: {
121
- * id: "claude-3-opus-20240229",
122
- * provider: "anthropic"
123
- * }
124
- * });
125
- */
126
- export declare const VueFile: (((this: any, id: string, props?: {}) => never) & (new (_: never) => never)) | ((this: Context<VueFile>, _id: string, props: VueFileProps) => Promise<VueFile>);
127
- //# sourceMappingURL=vue-file.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"vue-file.d.ts","sourceRoot":"","sources":["../../src/ai/vue-file.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAE7C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,KAAK,WAAW,EAAe,MAAM,aAAa,CAAC;AAE5D;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;;;;;;OAQG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;;;;OAKG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,KAAK,CAAC,EAAE,WAAW,CAAC;IAEpB;;;;;OAKG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,OAAQ,SAAQ,YAAY,EAAE,QAAQ,CAAC,aAAa,CAAC;IACpE;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;CACnB;AAQD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwDG;AACH,eAAO,MAAM,OAAO,yFAGV,OAAO,CAAC,OAAO,CAAC,OACjB,MAAM,SACJ,YAAY,KAClB,OAAO,CAAC,OAAO,CAAC,CA2DpB,CAAC"}
@@ -1,137 +0,0 @@
1
- import { generateText } from "ai";
2
- import { StaticVueFile } from "../fs/static-vue-file.js";
3
- import { Resource } from "../resource.js";
4
- import { createModel } from "./client.js";
5
- /**
6
- * Default system prompt for Vue file generation
7
- */
8
- const DEFAULT_VUE_SYSTEM_PROMPT = "You are a Vue component generator. Create a single Vue component based on the user's requirements. Your response MUST include only a single Vue component inside ```vue fences. Do not include any other text, explanations, or multiple code blocks.";
9
- /**
10
- * Resource for generating Vue files using AI models.
11
- * Extracts Vue code from between ```vue fences and validates the response.
12
- *
13
- * @example
14
- * // Create a simple Vue component
15
- * const button = await VueFile("button-component", {
16
- * path: "./src/components/Button.vue",
17
- * prompt: await alchemy`
18
- * Generate a customizable button Vue component with:
19
- * - Primary, secondary, and outline variants
20
- * - Small, medium, and large sizes
21
- * - Loading state with spinner
22
- * - Disabled state
23
- * `,
24
- * model: {
25
- * id: "gpt-4o",
26
- * provider: "openai"
27
- * }
28
- * });
29
- *
30
- * @example
31
- * // Generate a Vue component using existing files as reference
32
- * const userCard = await VueFile("user-card", {
33
- * path: "./src/components/UserCard.vue",
34
- * prompt: await alchemy`
35
- * Create a UserCard Vue component that displays user information.
36
- * Follow the styling patterns from:
37
- * ${alchemy.file("src/components/Card.vue")}
38
- *
39
- * Use the user type from:
40
- * ${alchemy.file("src/types/User.ts")}
41
- * `,
42
- * temperature: 0.2
43
- * });
44
- *
45
- * @example
46
- * // Generate a complex form component with validation and custom system prompt
47
- * const form = await VueFile("registration-form", {
48
- * path: "./src/components/RegistrationForm.vue",
49
- * prompt: await alchemy`
50
- * Generate a registration form Vue component with:
51
- * - Email, password, and confirm password fields
52
- * - Form validation using Vuelidate or similar
53
- * - Error messages for each field
54
- * - Submit handler that emits form data
55
- *
56
- * Follow these style guidelines:
57
- * ${alchemy.file("src/styles/guidelines.md")}
58
- * `,
59
- * system: "You are an expert Vue component creator specializing in form components with validation. Create a single Vue component inside ```vue fences with no additional text.",
60
- * model: {
61
- * id: "claude-3-opus-20240229",
62
- * provider: "anthropic"
63
- * }
64
- * });
65
- */
66
- export const VueFile = Resource("ai::VueFile", async function (_id, props) {
67
- // Handle deletion phase
68
- if (this.phase === "delete") {
69
- return this.destroy();
70
- }
71
- // Use provided system prompt or default
72
- const system = props.system || DEFAULT_VUE_SYSTEM_PROMPT;
73
- // Generate initial content
74
- const { text } = await generateText({
75
- model: createModel(props),
76
- prompt: props.prompt,
77
- system,
78
- providerOptions: props.model?.options,
79
- ...(props.temperature === undefined
80
- ? {}
81
- : { temperature: props.temperature }),
82
- });
83
- // Extract and validate Vue code
84
- let { code, error } = await extractVueCode(text);
85
- // Re-prompt if there are validation errors
86
- if (error) {
87
- const errorSystem = `${system}\n\nERROR: ${error}\n\nPlease try again and ensure your response contains exactly one Vue component inside \`\`\`vue fences.`;
88
- const { text: retryText } = await generateText({
89
- model: createModel(props),
90
- prompt: props.prompt,
91
- system: errorSystem,
92
- providerOptions: props.model?.options,
93
- ...(props.temperature === undefined
94
- ? {}
95
- : { temperature: props.temperature }),
96
- });
97
- const retryResult = await extractVueCode(retryText);
98
- if (retryResult.error) {
99
- throw new Error(`Failed to generate valid Vue code: ${retryResult.error}`);
100
- }
101
- code = retryResult.code;
102
- }
103
- // Use StaticVueFile to create/update the file
104
- const file = await StaticVueFile("file", props.path, code);
105
- // Return the resource
106
- return this({
107
- ...props,
108
- content: file.content,
109
- createdAt: Date.now(),
110
- updatedAt: Date.now(),
111
- });
112
- });
113
- /**
114
- * Extracts Vue code from between ```vue fences
115
- * Validates that exactly one Vue code block exists
116
- *
117
- * @param text The text to extract Vue code from
118
- * @returns The extracted Vue code or error message
119
- */
120
- async function extractVueCode(text) {
121
- const vueCodeRegex = /```vue\s*([\s\S]*?)```/g;
122
- const matches = Array.from(text.matchAll(vueCodeRegex));
123
- if (matches.length === 0) {
124
- return {
125
- code: "",
126
- error: "No Vue code block found in the response. Please include your code within ```vue fences.",
127
- };
128
- }
129
- if (matches.length > 1) {
130
- return {
131
- code: "",
132
- error: "Multiple Vue code blocks found in the response. Please provide exactly one code block within ```vue fences.",
133
- };
134
- }
135
- return { code: matches[0][1].trim() };
136
- }
137
- //# sourceMappingURL=vue-file.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"vue-file.js","sourceRoot":"","sources":["../../src/ai/vue-file.ts"],"names":[],"mappings":"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"}
@@ -1,170 +0,0 @@
1
- import type { JsonSchema, Type, type } from "arktype";
2
- import type { Context } from "../context.ts";
3
- import { Resource } from "../resource.ts";
4
- import type { Secret } from "../secret.ts";
5
- import { type ModelConfig } from "./client.ts";
6
- /**
7
- * Properties for creating or updating a YAMLFile
8
- */
9
- export interface YAMLFileProps<T extends Type<any, any> | undefined = undefined> {
10
- /**
11
- * Path to the YAML file
12
- */
13
- path: string;
14
- /**
15
- * Optional ArkType schema to validate and structure the generated YAML
16
- * When provided, the resource will use generateObject with schema validation
17
- * When not provided, it will extract YAML from between ```yaml fences
18
- */
19
- schema?: T;
20
- /**
21
- * Base URL for the OpenAI API
22
- * @default 'https://api.openai.com/v1'
23
- */
24
- baseURL?: string;
25
- /**
26
- * Prompt for generating content
27
- * Use alchemy template literals to include file context:
28
- * @example
29
- * prompt: await alchemy`
30
- * Generate a YAML configuration for:
31
- * ${alchemy.file("src/serverless.js")}
32
- * `
33
- */
34
- prompt: string;
35
- /**
36
- * System prompt for the model
37
- * This is used to provide instructions to the model about how to format the response
38
- * @default Depends on whether schema is provided
39
- */
40
- system?: string;
41
- /**
42
- * OpenAI API key to use for generating content
43
- * If not provided, will use OPENAI_API_KEY environment variable
44
- */
45
- apiKey?: Secret;
46
- /**
47
- * Model configuration
48
- */
49
- model?: ModelConfig;
50
- /**
51
- * Temperature for controlling randomness in generation.
52
- * Higher values (e.g., 0.8) make output more random,
53
- * lower values (e.g., 0.2) make it more deterministic.
54
- * @default 0.7
55
- */
56
- temperature?: number;
57
- }
58
- /**
59
- * A YAML file that can be created, updated, and deleted
60
- */
61
- export interface YAMLFile<T = any> extends Omit<YAMLFileProps, "schema">, Resource<"ai::YAMLFile"> {
62
- /**
63
- * Content of the YAML file as a string
64
- */
65
- content: string;
66
- /**
67
- * Parsed YAML object
68
- */
69
- yaml: T;
70
- /**
71
- * Schema used to validate the YAML (if provided)
72
- */
73
- schema?: JsonSchema;
74
- /**
75
- * Time at which the file was created
76
- */
77
- createdAt: number;
78
- /**
79
- * Time at which the file was last updated
80
- */
81
- updatedAt: number;
82
- }
83
- /**
84
- * Resource for generating YAML files using AI models.
85
- * Can operate in two modes:
86
- * 1. With schema: Uses generateObject with type validation, then converts to YAML
87
- * 2. Without schema: Extracts YAML from between ```yaml fences
88
- *
89
- * @example
90
- * // Generate a serverless configuration file
91
- * const serverlessConfig = await YAMLFile("serverless-config", {
92
- * path: "./serverless.yml",
93
- * prompt: await alchemy`
94
- * Generate a serverless.yml configuration for an AWS Lambda API with:
95
- * - A service name "user-api"
96
- * - Node.js 16.x runtime
97
- * - Three functions: createUser, getUser, and listUsers
98
- * - API Gateway endpoints for each function
99
- * - DynamoDB table for users
100
- * - IAM permissions for DynamoDB access
101
- * `,
102
- * model: {
103
- * id: "gpt-4o",
104
- * provider: "openai"
105
- * }
106
- * });
107
- *
108
- * @example
109
- * // Generate YAML with schema validation
110
- * import { type } from "arktype";
111
- *
112
- * const k8sConfigSchema = type({
113
- * apiVersion: "string",
114
- * kind: "string",
115
- * metadata: {
116
- * name: "string",
117
- * namespace: "string?",
118
- * labels: "Record<string, string>?"
119
- * },
120
- * spec: {
121
- * replicas: "number",
122
- * selector: {
123
- * matchLabels: "Record<string, string>"
124
- * },
125
- * template: {
126
- * metadata: {
127
- * labels: "Record<string, string>"
128
- * },
129
- * spec: {
130
- * containers: [{
131
- * name: "string",
132
- * image: "string",
133
- * ports: [{
134
- * containerPort: "number"
135
- * }]
136
- * }]
137
- * }
138
- * }
139
- * }
140
- * });
141
- *
142
- * const deployment = await YAMLFile("k8s-deployment", {
143
- * path: "./kubernetes/deployment.yaml",
144
- * schema: k8sConfigSchema,
145
- * prompt: "Generate a Kubernetes deployment for a web application named 'frontend' with 3 replicas using the nginx:latest image and exposing port 80",
146
- * temperature: 0.2
147
- * });
148
- *
149
- * @example
150
- * // Generate GitHub Actions workflow with custom system prompt
151
- * const workflow = await YAMLFile("github-workflow", {
152
- * path: "./.github/workflows/ci.yml",
153
- * prompt: await alchemy`
154
- * Create a GitHub Actions workflow for a Node.js project that:
155
- * - Runs on push to main and pull requests
156
- * - Sets up Node.js 18
157
- * - Installs dependencies with npm
158
- * - Runs linting and tests
159
- * - Builds the project
160
- * - Deploys to GitHub Pages on success (main branch only)
161
- * `,
162
- * system: "You are a DevOps expert specializing in GitHub Actions workflows. Create a single YAML file inside ```yaml fences with no additional text. Follow GitHub Actions best practices and use proper YAML syntax.",
163
- * model: {
164
- * id: "claude-3-opus-20240229",
165
- * provider: "anthropic"
166
- * }
167
- * });
168
- */
169
- export declare const YAMLFile: (((this: any, id: string, props?: {}) => never) & (new (_: never) => never)) | (<const T extends Type<any, any> | undefined = undefined>(this: Context<YAMLFile<T extends Type<any, any> ? type.infer<T> : any>>, _id: string, props: YAMLFileProps<T>) => Promise<YAMLFile<T extends Type<any, any> ? type.infer<T> : any>>);
170
- //# sourceMappingURL=yaml-file.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"yaml-file.d.ts","sourceRoot":"","sources":["../../src/ai/yaml-file.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AACtD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAE7C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAE3C,OAAO,EAAE,KAAK,WAAW,EAAe,MAAM,aAAa,CAAC;AAE5D;;GAEG;AACH,MAAM,WAAW,aAAa,CAC5B,CAAC,SAAS,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,SAAS,GAAG,SAAS;IAEhD;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;;;OAIG;IACH,MAAM,CAAC,EAAE,CAAC,CAAC;IAEX;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;;;;;;OAQG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,KAAK,CAAC,EAAE,WAAW,CAAC;IAEpB;;;;;OAKG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ,CAAC,CAAC,GAAG,GAAG,CAC/B,SAAQ,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC,EACnC,QAAQ,CAAC,cAAc,CAAC;IAC1B;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,IAAI,EAAE,CAAC,CAAC;IAER;;OAEG;IACH,MAAM,CAAC,EAAE,UAAU,CAAC;IAEpB;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;CACnB;AAQD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqFG;AACH,eAAO,MAAM,QAAQ,yFACb,CAAC,SAAS,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,SAAS,oBACpC,OAAO,CAAC,QAAQ,CAAC,CAAC,SAAS,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,OAAO,MAAM,SAAS,aAAa,CAAC,CAAC,CAAC,KAAG,OAAO,CACvH,QAAQ,CAAC,CAAC,SAAS,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CACzD,CA2FC,CAAC"}