alchemy-effect 0.0.0 → 0.2.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 (494) hide show
  1. package/README.md +179 -0
  2. package/bin/alchemy-effect.js +15 -0
  3. package/bin/alchemy-effect.js.map +1 -0
  4. package/bin/alchemy-effect.ts +10 -0
  5. package/lib/app.d.ts +7 -2
  6. package/lib/app.d.ts.map +1 -1
  7. package/lib/app.js +1 -0
  8. package/lib/app.js.map +1 -1
  9. package/lib/apply.d.ts +57 -1
  10. package/lib/apply.d.ts.map +1 -1
  11. package/lib/apply.js +141 -55
  12. package/lib/apply.js.map +1 -1
  13. package/lib/aws/account.d.ts +18 -0
  14. package/lib/aws/account.d.ts.map +1 -0
  15. package/lib/aws/account.js +18 -0
  16. package/lib/aws/account.js.map +1 -0
  17. package/lib/aws/arn.d.ts +2 -0
  18. package/lib/aws/arn.d.ts.map +1 -0
  19. package/lib/aws/arn.js +1 -0
  20. package/lib/aws/arn.js.map +1 -0
  21. package/lib/aws/assets.d.ts +8 -0
  22. package/lib/aws/assets.d.ts.map +1 -0
  23. package/lib/aws/assets.js +4 -0
  24. package/lib/aws/assets.js.map +1 -0
  25. package/lib/aws/bundle.d.ts +4 -0
  26. package/lib/aws/bundle.d.ts.map +1 -0
  27. package/lib/aws/bundle.js +4 -0
  28. package/lib/aws/bundle.js.map +1 -0
  29. package/lib/aws/client.d.ts +8 -0
  30. package/lib/aws/client.d.ts.map +1 -0
  31. package/lib/aws/client.js +28 -0
  32. package/lib/aws/client.js.map +1 -0
  33. package/lib/aws/credentials.d.ts +146 -0
  34. package/lib/aws/credentials.d.ts.map +1 -0
  35. package/lib/aws/credentials.js +170 -0
  36. package/lib/aws/credentials.js.map +1 -0
  37. package/lib/aws/dynamodb/attribute-value.d.ts +20 -0
  38. package/lib/aws/dynamodb/attribute-value.d.ts.map +1 -0
  39. package/lib/aws/dynamodb/attribute-value.js +217 -0
  40. package/lib/aws/dynamodb/attribute-value.js.map +1 -0
  41. package/lib/aws/dynamodb/client.d.ts +12 -0
  42. package/lib/aws/dynamodb/client.d.ts.map +1 -0
  43. package/lib/aws/dynamodb/client.js +11 -0
  44. package/lib/aws/dynamodb/client.js.map +1 -0
  45. package/lib/aws/dynamodb/expr.d.ts +41 -0
  46. package/lib/aws/dynamodb/expr.d.ts.map +1 -0
  47. package/lib/aws/dynamodb/expr.js +1 -0
  48. package/lib/aws/dynamodb/expr.js.map +1 -0
  49. package/lib/aws/dynamodb/index.d.ts +9 -0
  50. package/lib/aws/dynamodb/index.d.ts.map +1 -0
  51. package/lib/aws/dynamodb/index.js +10 -0
  52. package/lib/aws/dynamodb/index.js.map +1 -0
  53. package/lib/aws/dynamodb/projection.d.ts +25 -0
  54. package/lib/aws/dynamodb/projection.d.ts.map +1 -0
  55. package/lib/aws/dynamodb/projection.js +1 -0
  56. package/lib/aws/dynamodb/projection.js.map +1 -0
  57. package/lib/aws/dynamodb/secondary-index.d.ts +25 -0
  58. package/lib/aws/dynamodb/secondary-index.d.ts.map +1 -0
  59. package/lib/aws/dynamodb/secondary-index.js +4 -0
  60. package/lib/aws/dynamodb/secondary-index.js.map +1 -0
  61. package/lib/aws/dynamodb/table.d.ts +56 -0
  62. package/lib/aws/dynamodb/table.d.ts.map +1 -0
  63. package/lib/aws/dynamodb/table.get-item.d.ts +55 -0
  64. package/lib/aws/dynamodb/table.get-item.d.ts.map +1 -0
  65. package/lib/aws/dynamodb/table.get-item.js +75 -0
  66. package/lib/aws/dynamodb/table.get-item.js.map +1 -0
  67. package/lib/aws/dynamodb/table.js +4 -0
  68. package/lib/aws/dynamodb/table.js.map +1 -0
  69. package/lib/aws/dynamodb/table.provider.d.ts +8 -0
  70. package/lib/aws/dynamodb/table.provider.d.ts.map +1 -0
  71. package/lib/aws/dynamodb/table.provider.js +199 -0
  72. package/lib/aws/dynamodb/table.provider.js.map +1 -0
  73. package/lib/aws/ec2/client.d.ts +12 -0
  74. package/lib/aws/ec2/client.d.ts.map +1 -0
  75. package/lib/aws/ec2/client.js +11 -0
  76. package/lib/aws/ec2/client.js.map +1 -0
  77. package/lib/aws/ec2/index.d.ts +4 -0
  78. package/lib/aws/ec2/index.d.ts.map +1 -0
  79. package/lib/aws/ec2/index.js +4 -0
  80. package/lib/aws/ec2/index.js.map +1 -0
  81. package/lib/aws/ec2/vpc.d.ts +131 -0
  82. package/lib/aws/ec2/vpc.d.ts.map +1 -0
  83. package/lib/aws/ec2/vpc.js +3 -0
  84. package/lib/aws/ec2/vpc.js.map +1 -0
  85. package/lib/aws/ec2/vpc.provider.d.ts +7 -0
  86. package/lib/aws/ec2/vpc.provider.d.ts.map +1 -0
  87. package/lib/aws/ec2/vpc.provider.js +198 -0
  88. package/lib/aws/ec2/vpc.provider.js.map +1 -0
  89. package/lib/aws/iam.d.ts +23 -0
  90. package/lib/aws/iam.d.ts.map +1 -0
  91. package/lib/aws/iam.js +7 -0
  92. package/lib/aws/iam.js.map +1 -0
  93. package/lib/aws/index.d.ts +32 -0
  94. package/lib/aws/index.d.ts.map +1 -0
  95. package/lib/aws/index.js +23 -0
  96. package/lib/aws/index.js.map +1 -0
  97. package/lib/aws/lambda/client.d.ts +8 -0
  98. package/lib/aws/lambda/client.d.ts.map +1 -0
  99. package/lib/aws/lambda/client.js +7 -0
  100. package/lib/aws/lambda/client.js.map +1 -0
  101. package/lib/aws/lambda/consume.d.ts +17 -0
  102. package/lib/aws/lambda/consume.d.ts.map +1 -0
  103. package/lib/aws/lambda/consume.js +30 -0
  104. package/lib/aws/lambda/consume.js.map +1 -0
  105. package/lib/aws/lambda/function.d.ts +41 -0
  106. package/lib/aws/lambda/function.d.ts.map +1 -0
  107. package/lib/aws/lambda/function.handler.d.ts +7 -0
  108. package/lib/aws/lambda/function.handler.d.ts.map +1 -0
  109. package/lib/aws/lambda/function.handler.js +8 -0
  110. package/lib/aws/lambda/function.handler.js.map +1 -0
  111. package/lib/aws/lambda/function.invoke.d.ts +10 -0
  112. package/lib/aws/lambda/function.invoke.d.ts.map +1 -0
  113. package/lib/aws/lambda/function.invoke.js +31 -0
  114. package/lib/aws/lambda/function.invoke.js.map +1 -0
  115. package/lib/aws/lambda/function.js +3 -0
  116. package/lib/aws/lambda/function.js.map +1 -0
  117. package/lib/aws/lambda/function.provider.d.ts +9 -0
  118. package/lib/aws/lambda/function.provider.d.ts.map +1 -0
  119. package/lib/aws/lambda/function.provider.js +465 -0
  120. package/lib/aws/lambda/function.provider.js.map +1 -0
  121. package/lib/aws/lambda/index.d.ts +8 -0
  122. package/lib/aws/lambda/index.d.ts.map +1 -0
  123. package/lib/aws/lambda/index.js +9 -0
  124. package/lib/aws/lambda/index.js.map +1 -0
  125. package/lib/aws/lambda/serve.d.ts +14 -0
  126. package/lib/aws/lambda/serve.d.ts.map +1 -0
  127. package/lib/aws/lambda/serve.js +7 -0
  128. package/lib/aws/lambda/serve.js.map +1 -0
  129. package/lib/aws/parse-ini.d.ts +4 -0
  130. package/lib/aws/parse-ini.d.ts.map +1 -0
  131. package/lib/aws/parse-ini.js +67 -0
  132. package/lib/aws/parse-ini.js.map +1 -0
  133. package/lib/aws/profile.d.ts +6 -0
  134. package/lib/aws/profile.d.ts.map +1 -0
  135. package/lib/aws/profile.js +4 -0
  136. package/lib/aws/profile.js.map +1 -0
  137. package/lib/aws/region.d.ts +19 -0
  138. package/lib/aws/region.d.ts.map +1 -0
  139. package/lib/aws/region.js +21 -0
  140. package/lib/aws/region.js.map +1 -0
  141. package/lib/aws/s3.d.ts +8 -0
  142. package/lib/aws/s3.d.ts.map +1 -0
  143. package/lib/aws/s3.js +7 -0
  144. package/lib/aws/s3.js.map +1 -0
  145. package/lib/aws/sqs/client.d.ts +12 -0
  146. package/lib/aws/sqs/client.d.ts.map +1 -0
  147. package/lib/aws/sqs/client.js +11 -0
  148. package/lib/aws/sqs/client.js.map +1 -0
  149. package/lib/aws/sqs/index.d.ts +7 -0
  150. package/lib/aws/sqs/index.d.ts.map +1 -0
  151. package/lib/aws/sqs/index.js +7 -0
  152. package/lib/aws/sqs/index.js.map +1 -0
  153. package/lib/aws/sqs/queue.consume.d.ts +12 -0
  154. package/lib/aws/sqs/queue.consume.d.ts.map +1 -0
  155. package/lib/aws/sqs/queue.consume.js +3 -0
  156. package/lib/aws/sqs/queue.consume.js.map +1 -0
  157. package/lib/aws/sqs/queue.d.ts +79 -0
  158. package/lib/aws/sqs/queue.d.ts.map +1 -0
  159. package/lib/aws/sqs/queue.event-source.d.ts +20 -0
  160. package/lib/aws/sqs/queue.event-source.d.ts.map +1 -0
  161. package/lib/aws/sqs/queue.event-source.js +148 -0
  162. package/lib/aws/sqs/queue.event-source.js.map +1 -0
  163. package/lib/aws/sqs/queue.js +3 -0
  164. package/lib/aws/sqs/queue.js.map +1 -0
  165. package/lib/aws/sqs/queue.provider.d.ts +7 -0
  166. package/lib/aws/sqs/queue.provider.d.ts.map +1 -0
  167. package/lib/aws/sqs/queue.provider.js +79 -0
  168. package/lib/aws/sqs/queue.provider.js.map +1 -0
  169. package/lib/aws/sqs/queue.send-message.d.ts +11 -0
  170. package/lib/aws/sqs/queue.send-message.d.ts.map +1 -0
  171. package/lib/aws/sqs/queue.send-message.js +32 -0
  172. package/lib/aws/sqs/queue.send-message.js.map +1 -0
  173. package/lib/aws/sts.d.ts +8 -0
  174. package/lib/aws/sts.d.ts.map +1 -0
  175. package/lib/aws/sts.js +7 -0
  176. package/lib/aws/sts.js.map +1 -0
  177. package/lib/aws/zip.d.ts +3 -0
  178. package/lib/aws/zip.d.ts.map +1 -0
  179. package/lib/aws/zip.js +12 -0
  180. package/lib/aws/zip.js.map +1 -0
  181. package/lib/binding.d.ts +70 -22
  182. package/lib/binding.d.ts.map +1 -1
  183. package/lib/binding.js.map +1 -1
  184. package/lib/capability.d.ts +38 -0
  185. package/lib/capability.d.ts.map +1 -1
  186. package/lib/cli/approve.d.ts +4 -0
  187. package/lib/cli/approve.d.ts.map +1 -0
  188. package/lib/cli/approve.js +18 -0
  189. package/lib/cli/approve.js.map +1 -0
  190. package/lib/cli/clack.d.ts +14 -0
  191. package/lib/cli/clack.d.ts.map +1 -0
  192. package/lib/cli/clack.js +12 -0
  193. package/lib/cli/clack.js.map +1 -0
  194. package/lib/cli/components/ApprovePlan.d.ts +8 -0
  195. package/lib/cli/components/ApprovePlan.d.ts.map +1 -0
  196. package/lib/cli/components/ApprovePlan.js +30 -0
  197. package/lib/cli/components/ApprovePlan.js.map +1 -0
  198. package/lib/cli/components/Plan.d.ts +7 -0
  199. package/lib/cli/components/Plan.d.ts.map +1 -0
  200. package/lib/cli/components/Plan.js +100 -0
  201. package/lib/cli/components/Plan.js.map +1 -0
  202. package/lib/cli/components/PlanProgress.d.ts +9 -0
  203. package/lib/cli/components/PlanProgress.d.ts.map +1 -0
  204. package/lib/cli/components/PlanProgress.js +166 -0
  205. package/lib/cli/components/PlanProgress.js.map +1 -0
  206. package/lib/cli/index.d.ts +449 -0
  207. package/lib/cli/index.d.ts.map +1 -0
  208. package/lib/cli/index.js +39912 -0
  209. package/lib/cli/index.js.map +1 -0
  210. package/lib/cli/main.d.ts +2 -0
  211. package/lib/cli/main.d.ts.map +1 -0
  212. package/lib/cli/main.js +1 -0
  213. package/lib/cli/main.js.map +1 -0
  214. package/lib/cli/plan.d.ts +13 -0
  215. package/lib/cli/plan.d.ts.map +1 -0
  216. package/lib/cli/plan.js +1 -0
  217. package/lib/cli/plan.js.map +1 -0
  218. package/lib/cli/progress.d.ts +7 -0
  219. package/lib/cli/progress.d.ts.map +1 -0
  220. package/lib/cli/progress.js +30 -0
  221. package/lib/cli/progress.js.map +1 -0
  222. package/lib/cli/spinner.d.ts +2 -0
  223. package/lib/cli/spinner.d.ts.map +1 -0
  224. package/lib/cli/spinner.js +13 -0
  225. package/lib/cli/spinner.js.map +1 -0
  226. package/lib/cloudflare/api.d.ts +36 -0
  227. package/lib/cloudflare/api.d.ts.map +1 -0
  228. package/lib/cloudflare/api.js +99 -0
  229. package/lib/cloudflare/api.js.map +1 -0
  230. package/lib/cloudflare/context.d.ts +27 -0
  231. package/lib/cloudflare/context.d.ts.map +1 -0
  232. package/lib/cloudflare/context.js +24 -0
  233. package/lib/cloudflare/context.js.map +1 -0
  234. package/lib/cloudflare/index.d.ts +6 -0
  235. package/lib/cloudflare/index.d.ts.map +1 -0
  236. package/lib/cloudflare/index.js +5 -0
  237. package/lib/cloudflare/index.js.map +1 -0
  238. package/lib/cloudflare/kv/index.d.ts +4 -0
  239. package/lib/cloudflare/kv/index.d.ts.map +1 -0
  240. package/lib/cloudflare/kv/index.js +4 -0
  241. package/lib/cloudflare/kv/index.js.map +1 -0
  242. package/lib/cloudflare/kv/namespace.binding.d.ts +8 -0
  243. package/lib/cloudflare/kv/namespace.binding.d.ts.map +1 -0
  244. package/lib/cloudflare/kv/namespace.binding.js +15 -0
  245. package/lib/cloudflare/kv/namespace.binding.js.map +1 -0
  246. package/lib/cloudflare/kv/namespace.client.d.ts +11 -0
  247. package/lib/cloudflare/kv/namespace.client.d.ts.map +1 -0
  248. package/lib/cloudflare/kv/namespace.client.js +31 -0
  249. package/lib/cloudflare/kv/namespace.client.js.map +1 -0
  250. package/lib/cloudflare/kv/namespace.d.ts +23 -0
  251. package/lib/cloudflare/kv/namespace.d.ts.map +1 -0
  252. package/lib/cloudflare/kv/namespace.js +3 -0
  253. package/lib/cloudflare/kv/namespace.js.map +1 -0
  254. package/lib/cloudflare/kv/namespace.provider.d.ts +5 -0
  255. package/lib/cloudflare/kv/namespace.provider.d.ts.map +1 -0
  256. package/lib/cloudflare/kv/namespace.provider.js +80 -0
  257. package/lib/cloudflare/kv/namespace.provider.js.map +1 -0
  258. package/lib/cloudflare/live.d.ts +11 -0
  259. package/lib/cloudflare/live.d.ts.map +1 -0
  260. package/lib/cloudflare/live.js +18 -0
  261. package/lib/cloudflare/live.js.map +1 -0
  262. package/lib/cloudflare/r2/bucket.binding.d.ts +8 -0
  263. package/lib/cloudflare/r2/bucket.binding.d.ts.map +1 -0
  264. package/lib/cloudflare/r2/bucket.binding.js +18 -0
  265. package/lib/cloudflare/r2/bucket.binding.js.map +1 -0
  266. package/lib/cloudflare/r2/bucket.client.d.ts +8 -0
  267. package/lib/cloudflare/r2/bucket.client.d.ts.map +1 -0
  268. package/lib/cloudflare/r2/bucket.client.js +9 -0
  269. package/lib/cloudflare/r2/bucket.client.js.map +1 -0
  270. package/lib/cloudflare/r2/bucket.d.ts +32 -0
  271. package/lib/cloudflare/r2/bucket.d.ts.map +1 -0
  272. package/lib/cloudflare/r2/bucket.del.d.ts +4 -0
  273. package/lib/cloudflare/r2/bucket.del.d.ts.map +1 -0
  274. package/lib/cloudflare/r2/bucket.del.js +7 -0
  275. package/lib/cloudflare/r2/bucket.del.js.map +1 -0
  276. package/lib/cloudflare/r2/bucket.get.d.ts +5 -0
  277. package/lib/cloudflare/r2/bucket.get.d.ts.map +1 -0
  278. package/lib/cloudflare/r2/bucket.get.js +7 -0
  279. package/lib/cloudflare/r2/bucket.get.js.map +1 -0
  280. package/lib/cloudflare/r2/bucket.head.d.ts +4 -0
  281. package/lib/cloudflare/r2/bucket.head.d.ts.map +1 -0
  282. package/lib/cloudflare/r2/bucket.head.js +7 -0
  283. package/lib/cloudflare/r2/bucket.head.js.map +1 -0
  284. package/lib/cloudflare/r2/bucket.js +3 -0
  285. package/lib/cloudflare/r2/bucket.js.map +1 -0
  286. package/lib/cloudflare/r2/bucket.list.d.ts +5 -0
  287. package/lib/cloudflare/r2/bucket.list.d.ts.map +1 -0
  288. package/lib/cloudflare/r2/bucket.list.js +7 -0
  289. package/lib/cloudflare/r2/bucket.list.js.map +1 -0
  290. package/lib/cloudflare/r2/bucket.multipart.d.ts +19 -0
  291. package/lib/cloudflare/r2/bucket.multipart.d.ts.map +1 -0
  292. package/lib/cloudflare/r2/bucket.multipart.js +25 -0
  293. package/lib/cloudflare/r2/bucket.multipart.js.map +1 -0
  294. package/lib/cloudflare/r2/bucket.provider.d.ts +5 -0
  295. package/lib/cloudflare/r2/bucket.provider.d.ts.map +1 -0
  296. package/lib/cloudflare/r2/bucket.provider.js +66 -0
  297. package/lib/cloudflare/r2/bucket.provider.js.map +1 -0
  298. package/lib/cloudflare/r2/bucket.put.d.ts +6 -0
  299. package/lib/cloudflare/r2/bucket.put.d.ts.map +1 -0
  300. package/lib/cloudflare/r2/bucket.put.js +8 -0
  301. package/lib/cloudflare/r2/bucket.put.js.map +1 -0
  302. package/lib/cloudflare/r2/index.d.ts +10 -0
  303. package/lib/cloudflare/r2/index.d.ts.map +1 -0
  304. package/lib/cloudflare/r2/index.js +10 -0
  305. package/lib/cloudflare/r2/index.js.map +1 -0
  306. package/lib/cloudflare/stream.d.ts +10 -0
  307. package/lib/cloudflare/stream.d.ts.map +1 -0
  308. package/lib/cloudflare/stream.js +16 -0
  309. package/lib/cloudflare/stream.js.map +1 -0
  310. package/lib/cloudflare/worker/assets.fetch.d.ts +8 -0
  311. package/lib/cloudflare/worker/assets.fetch.d.ts.map +1 -0
  312. package/lib/cloudflare/worker/assets.fetch.js +11 -0
  313. package/lib/cloudflare/worker/assets.fetch.js.map +1 -0
  314. package/lib/cloudflare/worker/assets.provider.d.ts +66 -0
  315. package/lib/cloudflare/worker/assets.provider.d.ts.map +1 -0
  316. package/lib/cloudflare/worker/assets.provider.js +145 -0
  317. package/lib/cloudflare/worker/assets.provider.js.map +1 -0
  318. package/lib/cloudflare/worker/index.d.ts +6 -0
  319. package/lib/cloudflare/worker/index.d.ts.map +1 -0
  320. package/lib/cloudflare/worker/index.js +5 -0
  321. package/lib/cloudflare/worker/index.js.map +1 -0
  322. package/lib/cloudflare/worker/worker.d.ts +67 -0
  323. package/lib/cloudflare/worker/worker.d.ts.map +1 -0
  324. package/lib/cloudflare/worker/worker.handler.d.ts +11 -0
  325. package/lib/cloudflare/worker/worker.handler.d.ts.map +1 -0
  326. package/lib/cloudflare/worker/worker.handler.js +15 -0
  327. package/lib/cloudflare/worker/worker.handler.js.map +1 -0
  328. package/lib/cloudflare/worker/worker.js +4 -0
  329. package/lib/cloudflare/worker/worker.js.map +1 -0
  330. package/lib/cloudflare/worker/worker.provider.d.ts +10 -0
  331. package/lib/cloudflare/worker/worker.provider.d.ts.map +1 -0
  332. package/lib/cloudflare/worker/worker.provider.js +193 -0
  333. package/lib/cloudflare/worker/worker.provider.js.map +1 -0
  334. package/lib/cloudflare/worker/worker.serve.d.ts +39 -0
  335. package/lib/cloudflare/worker/worker.serve.d.ts.map +1 -0
  336. package/lib/cloudflare/worker/worker.serve.js +4 -0
  337. package/lib/cloudflare/worker/worker.serve.js.map +1 -0
  338. package/lib/destroy.d.ts +1 -3
  339. package/lib/destroy.d.ts.map +1 -1
  340. package/lib/destroy.js +5 -0
  341. package/lib/destroy.js.map +1 -1
  342. package/lib/dot-alchemy.d.ts +3 -2
  343. package/lib/dot-alchemy.d.ts.map +1 -1
  344. package/lib/dot-alchemy.js +3 -2
  345. package/lib/dot-alchemy.js.map +1 -1
  346. package/lib/esbuild.d.ts +28 -0
  347. package/lib/esbuild.d.ts.map +1 -0
  348. package/lib/esbuild.js +63 -0
  349. package/lib/esbuild.js.map +1 -0
  350. package/lib/index.d.ts +1 -0
  351. package/lib/index.d.ts.map +1 -1
  352. package/lib/index.js +4 -0
  353. package/lib/index.js.map +1 -1
  354. package/lib/plan.d.ts +19 -8
  355. package/lib/plan.d.ts.map +1 -1
  356. package/lib/plan.js +144 -72
  357. package/lib/plan.js.map +1 -1
  358. package/lib/policy.d.ts +19 -1
  359. package/lib/policy.d.ts.map +1 -1
  360. package/lib/policy.js +10 -1
  361. package/lib/policy.js.map +1 -1
  362. package/lib/provider.d.ts +2 -2
  363. package/lib/provider.d.ts.map +1 -1
  364. package/lib/resource.d.ts +2 -10
  365. package/lib/resource.d.ts.map +1 -1
  366. package/lib/resource.js +1 -0
  367. package/lib/resource.js.map +1 -1
  368. package/lib/runtime.d.ts +1 -1
  369. package/lib/runtime.d.ts.map +1 -1
  370. package/lib/schema.d.ts +37 -0
  371. package/lib/schema.d.ts.map +1 -0
  372. package/lib/schema.js +61 -0
  373. package/lib/schema.js.map +1 -0
  374. package/lib/sha256.d.ts +5 -0
  375. package/lib/sha256.d.ts.map +1 -0
  376. package/lib/sha256.js +16 -0
  377. package/lib/sha256.js.map +1 -0
  378. package/lib/state.d.ts +3 -2
  379. package/lib/state.d.ts.map +1 -1
  380. package/lib/state.js +3 -2
  381. package/lib/state.js.map +1 -1
  382. package/lib/tags.d.ts +17 -0
  383. package/lib/tags.d.ts.map +1 -0
  384. package/lib/tags.js +22 -0
  385. package/lib/tags.js.map +1 -0
  386. package/lib/test.d.ts +14 -0
  387. package/lib/test.d.ts.map +1 -0
  388. package/lib/test.js +28 -0
  389. package/lib/test.js.map +1 -0
  390. package/lib/tsconfig.test.tsbuildinfo +1 -0
  391. package/lib/type.d.ts +3 -0
  392. package/lib/type.d.ts.map +1 -0
  393. package/lib/type.js +3 -0
  394. package/lib/type.js.map +1 -0
  395. package/package.json +115 -3
  396. package/src/app.ts +8 -7
  397. package/src/apply.ts +251 -93
  398. package/src/aws/account.ts +37 -0
  399. package/src/aws/arn.ts +1 -0
  400. package/src/aws/assets.ts +8 -0
  401. package/src/aws/bundle.ts +5 -0
  402. package/src/aws/client.ts +47 -0
  403. package/src/aws/credentials.ts +409 -0
  404. package/src/aws/dynamodb/attribute-value.ts +240 -0
  405. package/src/aws/dynamodb/client.ts +20 -0
  406. package/src/aws/dynamodb/expr.ts +90 -0
  407. package/src/aws/dynamodb/index.ts +12 -0
  408. package/src/aws/dynamodb/projection.ts +159 -0
  409. package/src/aws/dynamodb/secondary-index.ts +45 -0
  410. package/src/aws/dynamodb/table.get-item.ts +177 -0
  411. package/src/aws/dynamodb/table.provider.ts +280 -0
  412. package/src/aws/dynamodb/table.ts +156 -0
  413. package/src/aws/ec2/client.ts +20 -0
  414. package/src/aws/ec2/index.ts +3 -0
  415. package/src/aws/ec2/vpc.provider.ts +285 -0
  416. package/src/aws/ec2/vpc.ts +152 -0
  417. package/src/aws/iam.ts +30 -0
  418. package/src/aws/index.ts +54 -0
  419. package/src/aws/lambda/client.ts +14 -0
  420. package/src/aws/lambda/consume.ts +63 -0
  421. package/src/aws/lambda/function.handler.ts +30 -0
  422. package/src/aws/lambda/function.invoke.ts +40 -0
  423. package/src/aws/lambda/function.provider.ts +655 -0
  424. package/src/aws/lambda/function.ts +45 -0
  425. package/src/aws/lambda/index.ts +9 -0
  426. package/src/aws/lambda/serve.ts +29 -0
  427. package/src/aws/parse-ini.ts +80 -0
  428. package/src/aws/profile.ts +6 -0
  429. package/src/aws/region.ts +37 -0
  430. package/src/aws/s3.ts +10 -0
  431. package/src/aws/sqs/client.ts +20 -0
  432. package/src/aws/sqs/index.ts +6 -0
  433. package/src/aws/sqs/queue.consume.ts +13 -0
  434. package/src/aws/sqs/queue.event-source.ts +253 -0
  435. package/src/aws/sqs/queue.provider.ts +94 -0
  436. package/src/aws/sqs/queue.send-message.ts +51 -0
  437. package/src/aws/sqs/queue.ts +86 -0
  438. package/src/aws/sts.ts +13 -0
  439. package/src/aws/zip.ts +17 -0
  440. package/src/binding.ts +121 -25
  441. package/src/capability.ts +44 -0
  442. package/src/cli/approve.tsx +30 -0
  443. package/src/cli/clack.ts +22 -0
  444. package/src/cli/components/ApprovePlan.tsx +44 -0
  445. package/src/cli/components/Plan.tsx +154 -0
  446. package/src/cli/components/PlanProgress.tsx +206 -0
  447. package/src/cli/index.ts +6 -0
  448. package/src/cli/main.ts +0 -0
  449. package/src/cli/plan.ts +16 -0
  450. package/src/cli/progress.tsx +46 -0
  451. package/src/cli/spinner.ts +14 -0
  452. package/src/cloudflare/api.ts +152 -0
  453. package/src/cloudflare/context.ts +49 -0
  454. package/src/cloudflare/index.ts +6 -0
  455. package/src/cloudflare/kv/index.ts +3 -0
  456. package/src/cloudflare/kv/namespace.binding.ts +25 -0
  457. package/src/cloudflare/kv/namespace.client.ts +70 -0
  458. package/src/cloudflare/kv/namespace.provider.ts +99 -0
  459. package/src/cloudflare/kv/namespace.ts +29 -0
  460. package/src/cloudflare/live.ts +38 -0
  461. package/src/cloudflare/r2/bucket.binding.ts +27 -0
  462. package/src/cloudflare/r2/bucket.client.ts +22 -0
  463. package/src/cloudflare/r2/bucket.del.ts +11 -0
  464. package/src/cloudflare/r2/bucket.get.ts +13 -0
  465. package/src/cloudflare/r2/bucket.head.ts +11 -0
  466. package/src/cloudflare/r2/bucket.list.ts +12 -0
  467. package/src/cloudflare/r2/bucket.multipart.ts +55 -0
  468. package/src/cloudflare/r2/bucket.provider.ts +83 -0
  469. package/src/cloudflare/r2/bucket.put.ts +17 -0
  470. package/src/cloudflare/r2/bucket.ts +38 -0
  471. package/src/cloudflare/r2/index.ts +9 -0
  472. package/src/cloudflare/stream.ts +21 -0
  473. package/src/cloudflare/worker/assets.fetch.ts +27 -0
  474. package/src/cloudflare/worker/assets.provider.ts +249 -0
  475. package/src/cloudflare/worker/index.ts +6 -0
  476. package/src/cloudflare/worker/worker.handler.ts +39 -0
  477. package/src/cloudflare/worker/worker.provider.ts +246 -0
  478. package/src/cloudflare/worker/worker.serve.ts +19 -0
  479. package/src/cloudflare/worker/worker.ts +76 -0
  480. package/src/destroy.ts +6 -3
  481. package/src/dot-alchemy.ts +3 -2
  482. package/src/esbuild.ts +98 -0
  483. package/src/index.ts +5 -0
  484. package/src/plan.ts +233 -120
  485. package/src/policy.ts +55 -2
  486. package/src/provider.ts +2 -2
  487. package/src/resource.ts +3 -2
  488. package/src/runtime.ts +1 -1
  489. package/src/schema.ts +102 -0
  490. package/src/sha256.ts +23 -0
  491. package/src/state.ts +3 -2
  492. package/src/tags.ts +38 -0
  493. package/src/test.ts +71 -0
  494. package/src/type.ts +2 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assets.provider.d.ts","sourceRoot":"","sources":["../../../src/cloudflare/worker/assets.provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,OAAO,EAAQ,KAAK,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AAE9D,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAC9D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAK1C,MAAM,CAAC,OAAO,WAAW,MAAM,CAAC;IAC9B,UAAiB,UAAU;QACzB,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE,MAAM,CAAC,YAAY,GAAG,SAAS,CAAC;QACxC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QACzD,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;QAC7B,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;KAChC;CACF;;oBAMgB,MAAM,CAAC,WAAW,GAC5B,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,aAAa,GAAG,eAAe,CAAC;sBAEvD,MAAM,cACL,MAAM,UACV,MAAM,CAAC,UAAU,WAChB,uBAAuB,GAC/B,MAAM,CAAC,MAAM,CACd;QAAE,GAAG,EAAE,MAAM,GAAG,SAAS,CAAA;KAAE,EAC3B,aAAa,GAAG,eAAe,GAAG,kBAAkB,CACrD;;AAdL,qBAAa,MAAO,SAAQ,WAgBzB;CAAG;;;;AAEN,qBAAa,kBAAmB,SAAQ,wBAAuC;IAC7E,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;CAAG;;;;AAEL,qBAAa,kBAAmB,SAAQ,wBAAuC;IAC7E,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;CAAG;;;;AAEL,qBAAa,kBAAmB,SAAQ,wBAAuC;IAC7E,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;CAAG;;;;AAEL,qBAAa,sBAAuB,SAAQ,4BAE1C;IACA,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,aAAa,CAAC;CACtB,CAAC;CAAG;AAEL,MAAM,MAAM,eAAe,GACvB,kBAAkB,GAClB,kBAAkB,GAClB,kBAAkB,GAClB,sBAAsB,CAAC;AAE3B,eAAO,MAAM,cAAc,qFAiLxB,CAAC"}
@@ -0,0 +1,145 @@
1
+ import { FileSystem, Path } from "@effect/platform";
2
+ import { Context, Data, Layer } from "effect";
3
+ import * as Effect from "effect/Effect";
4
+ import { sha256 } from "../../sha256.js";
5
+ import { CloudflareApi, CloudflareApiError } from "../api.js";
6
+ const MAX_ASSET_SIZE = 1024 * 1024 * 25; // 25MB
7
+ const MAX_ASSET_COUNT = 20_000;
8
+ export class Assets extends Context.Tag("Assets")() {
9
+ }
10
+ export class AssetTooLargeError extends Data.TaggedError("AssetTooLargeError") {
11
+ }
12
+ export class TooManyAssetsError extends Data.TaggedError("TooManyAssetsError") {
13
+ }
14
+ export class AssetNotFoundError extends Data.TaggedError("AssetNotFoundError") {
15
+ }
16
+ export class FailedToReadAssetError extends Data.TaggedError("FailedToReadAssetError") {
17
+ }
18
+ export const assetsProvider = () => Layer.effect(Assets, Effect.gen(function* () {
19
+ const fs = yield* FileSystem.FileSystem;
20
+ const path = yield* Path.Path;
21
+ const api = yield* CloudflareApi;
22
+ const maybeReadString = Effect.fnUntraced(function* (file) {
23
+ return yield* fs.readFileString(file).pipe(Effect.catchIf((error) => error._tag === "SystemError" && error.reason === "NotFound", () => Effect.succeed(undefined)));
24
+ });
25
+ const createIgnoreMatcher = Effect.fnUntraced(function* (patterns) {
26
+ const matcher = yield* Effect.promise(() => import("ignore").then(({ default: ignore }) => ignore().add(patterns)));
27
+ return (file) => matcher.ignores(file);
28
+ });
29
+ return {
30
+ read: Effect.fnUntraced(function* (props) {
31
+ const resolvedDirectory = path.resolve(props.directory);
32
+ const [files, ignore, _headers, _redirects] = yield* Effect.all([
33
+ fs.readDirectory(resolvedDirectory, { recursive: true }),
34
+ maybeReadString(path.join(resolvedDirectory, ".assetsignore")),
35
+ maybeReadString(path.join(resolvedDirectory, "_headers")),
36
+ maybeReadString(path.join(resolvedDirectory, "_redirects")),
37
+ ]);
38
+ const ignores = yield* createIgnoreMatcher([
39
+ ".assetsignore",
40
+ "_headers",
41
+ "_redirects",
42
+ ...(ignore
43
+ ?.split("\n")
44
+ .map((line) => line.trim())
45
+ .filter((line) => line.length > 0 && !line.startsWith("#")) ??
46
+ []),
47
+ ]);
48
+ const manifest = new Map();
49
+ let count = 0;
50
+ yield* Effect.forEach(files, Effect.fnUntraced(function* (name) {
51
+ if (ignores(name)) {
52
+ return;
53
+ }
54
+ const file = path.join(resolvedDirectory, name);
55
+ const stat = yield* fs.stat(file);
56
+ if (stat.type !== "File") {
57
+ return;
58
+ }
59
+ const size = Number(stat.size);
60
+ if (size > MAX_ASSET_SIZE) {
61
+ return yield* new AssetTooLargeError({
62
+ message: `Asset ${name} is too large (the maximum size is ${MAX_ASSET_SIZE / 1024 / 1024} MB; this asset is ${size / 1024 / 1024} MB)`,
63
+ name,
64
+ size,
65
+ });
66
+ }
67
+ const hash = yield* fs.readFile(file).pipe(Effect.flatMap(sha256), Effect.map((hash) => hash.slice(0, 32)));
68
+ count++;
69
+ if (count > MAX_ASSET_COUNT) {
70
+ return yield* new TooManyAssetsError({
71
+ message: `Too many assets (the maximum count is ${MAX_ASSET_COUNT}; this directory has ${count} assets)`,
72
+ directory: props.directory,
73
+ count,
74
+ });
75
+ }
76
+ manifest.set(name.startsWith("/") ? name : `/${name}`, {
77
+ hash,
78
+ size,
79
+ });
80
+ }));
81
+ return {
82
+ directory: props.directory,
83
+ config: props.config,
84
+ manifest: Object.fromEntries(Array.from(manifest.entries()).sort((a, b) => a[0].localeCompare(b[0]))),
85
+ _headers,
86
+ _redirects,
87
+ };
88
+ }),
89
+ upload: Effect.fnUntraced(function* (accountId, workerName, assets, { note }) {
90
+ yield* note("Checking assets...");
91
+ const session = yield* api.workers.scripts.assets.upload.create(workerName, {
92
+ account_id: accountId,
93
+ manifest: assets.manifest,
94
+ });
95
+ if (!session.buckets?.length) {
96
+ return { jwt: session.jwt };
97
+ }
98
+ let uploaded = 0;
99
+ const total = session.buckets.flat().length;
100
+ yield* note(`Uploaded ${uploaded} of ${total} assets...`);
101
+ const assetsByHash = new Map();
102
+ for (const [name, { hash }] of Object.entries(assets.manifest)) {
103
+ assetsByHash.set(hash, name);
104
+ }
105
+ let jwt;
106
+ const directory = path.resolve(assets.directory);
107
+ yield* Effect.forEach(session.buckets, Effect.fnUntraced(function* (bucket) {
108
+ const body = {};
109
+ yield* Effect.forEach(bucket, Effect.fnUntraced(function* (hash) {
110
+ const name = assetsByHash.get(hash);
111
+ if (!name) {
112
+ return yield* new AssetNotFoundError({
113
+ message: `Asset ${hash} not found in manifest`,
114
+ hash,
115
+ });
116
+ }
117
+ const file = yield* fs
118
+ .readFile(path.join(directory, name))
119
+ .pipe(Effect.mapError((error) => new FailedToReadAssetError({
120
+ message: `Failed to read asset ${name}: ${error.message}`,
121
+ name,
122
+ cause: error,
123
+ })));
124
+ body[hash] = Buffer.from(file).toString("base64");
125
+ }));
126
+ const result = yield* api.workers.assets.upload.create({
127
+ account_id: accountId,
128
+ base64: true,
129
+ body,
130
+ }, {
131
+ headers: {
132
+ Authorization: `Bearer ${session.jwt}`,
133
+ },
134
+ });
135
+ uploaded += bucket.length;
136
+ yield* note(`Uploaded ${uploaded} of ${total} assets...`);
137
+ if (result.jwt) {
138
+ jwt = result.jwt;
139
+ }
140
+ }));
141
+ return { jwt };
142
+ }),
143
+ };
144
+ }));
145
+ //# sourceMappingURL=assets.provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assets.provider.js","sourceRoot":"","sources":["../../../src/cloudflare/worker/assets.provider.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ export * from "./assets.fetch.ts";
2
+ export * from "./worker.handler.ts";
3
+ export * from "./worker.serve.ts";
4
+ export * from "./worker.ts";
5
+ export type * as Alchemy from "../../index.ts";
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cloudflare/worker/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAE5B,YAAY,KAAK,OAAO,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1,5 @@
1
+ export * from "./assets.fetch.js";
2
+ export * from "./worker.handler.js";
3
+ export * from "./worker.serve.js";
4
+ export * from "./worker.js";
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cloudflare/worker/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC"}
@@ -0,0 +1,67 @@
1
+ import type { Workers } from "cloudflare/resources";
2
+ import { Runtime, type RuntimeProps } from "../../runtime.ts";
3
+ import type * as Assets from "./assets.fetch.ts";
4
+ export declare const WorkerType: "Cloudflare.Worker";
5
+ export type WorkerType = typeof WorkerType;
6
+ export type WorkerProps<Req = any> = RuntimeProps<Worker, Exclude<Req, Assets.Fetch>> & {
7
+ name?: string;
8
+ logpush?: boolean;
9
+ observability?: Worker.Observability;
10
+ subdomain?: Worker.Subdomain;
11
+ tags?: string[];
12
+ main: string;
13
+ compatibility?: {
14
+ date?: string;
15
+ flags?: string[];
16
+ };
17
+ limits?: Worker.Limits;
18
+ placement?: Worker.Placement;
19
+ } & (Extract<Req, Assets.Fetch> extends never ? {
20
+ assets?: string | Worker.AssetsProps;
21
+ } : {
22
+ assets: string | Worker.AssetsProps;
23
+ });
24
+ export type WorkerAttr<Props extends WorkerProps> = {
25
+ id: string;
26
+ name: Props["name"] extends string ? Props["name"] : string;
27
+ logpush: Props["logpush"] extends boolean ? Props["logpush"] : boolean;
28
+ observability: Props["observability"] extends Worker.Observability ? Props["observability"] : {};
29
+ url: Props["subdomain"] extends {
30
+ enabled: false;
31
+ } ? undefined : string;
32
+ subdomain: Props["subdomain"] extends Worker.Subdomain ? Props["subdomain"] : {
33
+ enabled: true;
34
+ previews_enabled: true;
35
+ };
36
+ tags: Props["tags"] extends string[] ? Props["tags"] : string[];
37
+ accountId: string;
38
+ hash: {
39
+ assets: string | undefined;
40
+ bundle: string;
41
+ };
42
+ };
43
+ export interface Worker extends Runtime<WorkerType> {
44
+ props: WorkerProps;
45
+ attr: WorkerAttr<Extract<this["props"], WorkerProps>>;
46
+ binding: {
47
+ bindings: Worker.Binding[];
48
+ };
49
+ }
50
+ export declare const Worker: Worker & {
51
+ provider: import("../../resource.ts").ResourceTags<Worker>;
52
+ };
53
+ export declare namespace Worker {
54
+ type Observability = Workers.ScriptUpdateParams.Metadata.Observability;
55
+ type Subdomain = Workers.Beta.Worker.Subdomain;
56
+ type Binding = NonNullable<Workers.Beta.Workers.VersionCreateParams["bindings"]>[number];
57
+ type Limits = Workers.Beta.Workers.Version.Limits;
58
+ type Placement = Workers.Beta.Workers.Version.Placement;
59
+ type Assets = Workers.Beta.Workers.Version.Assets;
60
+ type AssetsConfig = Workers.Beta.Workers.Version.Assets.Config;
61
+ type Module = Workers.Beta.Workers.Version.Module;
62
+ interface AssetsProps {
63
+ directory: string;
64
+ config?: AssetsConfig;
65
+ }
66
+ }
67
+ //# sourceMappingURL=worker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../../../src/cloudflare/worker/worker.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import type * as runtime from "@cloudflare/workers-types";
2
+ import type { Capability } from "alchemy-effect";
3
+ import * as Effect from "effect/Effect";
4
+ import { CloudflareContext } from "../context.ts";
5
+ type Handler = (request: Request, env: unknown, ctx: runtime.ExecutionContext) => Effect.Effect<Response, any, CloudflareContext>;
6
+ type HandlerFactory<H extends Handler, Req = Capability> = Effect.Effect<H, any, Req>;
7
+ export declare const toHandler: <H extends Handler>(factory: HandlerFactory<H, Capability>) => {
8
+ fetch: (request: Request, env: unknown, ctx: runtime.ExecutionContext) => Promise<Response>;
9
+ };
10
+ export {};
11
+ //# sourceMappingURL=worker.handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worker.handler.d.ts","sourceRoot":"","sources":["../../../src/cloudflare/worker/worker.handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,OAAO,MAAM,2BAA2B,CAAC;AAC1D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAElD,KAAK,OAAO,GAAG,CACb,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,OAAO,CAAC,gBAAgB,KAC1B,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAG,EAAE,iBAAiB,CAAC,CAAC;AACrD,KAAK,cAAc,CAAC,CAAC,SAAS,OAAO,EAAE,GAAG,GAAG,UAAU,IAAI,MAAM,CAAC,MAAM,CACtE,CAAC,EACD,GAAG,EACH,GAAG,CACJ,CAAC;AAEF,eAAO,MAAM,SAAS,GAAI,CAAC,SAAS,OAAO,EACzC,SAAS,cAAc,CAAC,CAAC,EAAE,UAAU,CAAC;qBAIzB,OAAO,OACX,OAAO,OACP,OAAO,CAAC,gBAAgB;CAclC,CAAC"}
@@ -0,0 +1,15 @@
1
+ import * as Effect from "effect/Effect";
2
+ import * as Layer from "effect/Layer";
3
+ import { CloudflareContext } from "../context.js";
4
+ export const toHandler = (factory) => {
5
+ return {
6
+ fetch: async (request, env, ctx) => {
7
+ const exit = await Effect.runPromiseExit(factory.pipe(Effect.flatMap((handler) => handler(request, env, ctx)), Effect.provide(Layer.succeed(CloudflareContext, { env, ctx }))));
8
+ if (exit._tag === "Success") {
9
+ return exit.value;
10
+ }
11
+ return Response.json(exit, { status: 500 });
12
+ },
13
+ };
14
+ };
15
+ //# sourceMappingURL=worker.handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worker.handler.js","sourceRoot":"","sources":["../../../src/cloudflare/worker/worker.handler.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAalD,MAAM,CAAC,MAAM,SAAS,GAAG,CACvB,OAAsC,EACtC,EAAE;IACF,OAAO;QACL,KAAK,EAAE,KAAK,EACV,OAAgB,EAChB,GAAY,EACZ,GAA6B,EAC7B,EAAE;YACF,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,cAAc,CACrC,OAAoC,CAAC,IAAI,CACxC,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,EACvD,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,iBAAiB,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAC/D,CACF,CAAC;YACF,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBAC5B,OAAO,IAAI,CAAC,KAAK,CAAC;YACpB,CAAC;YACD,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;QAC9C,CAAC;KACF,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { Runtime } from "../../runtime.js";
2
+ export const WorkerType = "Cloudflare.Worker";
3
+ export const Worker = Runtime(WorkerType)();
4
+ //# sourceMappingURL=worker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worker.js","sourceRoot":"","sources":["../../../src/cloudflare/worker/worker.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAqB,MAAM,kBAAkB,CAAC;AAG9D,MAAM,CAAC,MAAM,UAAU,GAAG,mBAA4B,CAAC;AAqDvD,MAAM,CAAC,MAAM,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,EAAU,CAAC"}
@@ -0,0 +1,10 @@
1
+ import * as FileSystem from "@effect/platform/FileSystem";
2
+ import * as Path from "@effect/platform/Path";
3
+ import { App } from "../../app.ts";
4
+ import { DotAlchemy } from "../../dot-alchemy.ts";
5
+ import { ESBuild } from "../../esbuild.ts";
6
+ import { CloudflareAccountId, CloudflareApi } from "../api.ts";
7
+ import { Assets } from "./assets.provider.ts";
8
+ import { Worker } from "./worker.ts";
9
+ export declare const workerProvider: () => import("effect/Layer").Layer<import("../../provider.ts").Provider<Worker>, never, App | FileSystem.FileSystem | Path.Path | DotAlchemy | ESBuild | CloudflareAccountId | CloudflareApi | Assets>;
10
+ //# sourceMappingURL=worker.provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worker.provider.d.ts","sourceRoot":"","sources":["../../../src/cloudflare/worker/worker.provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,UAAU,MAAM,6BAA6B,CAAC;AAC1D,OAAO,KAAK,IAAI,MAAM,uBAAuB,CAAC;AAG9C,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AAEnC,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAE3C,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC/D,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAqC,MAAM,aAAa,CAAC;AAExE,eAAO,MAAM,cAAc,wMAwOxB,CAAC"}
@@ -0,0 +1,193 @@
1
+ import * as FileSystem from "@effect/platform/FileSystem";
2
+ import * as Path from "@effect/platform/Path";
3
+ import * as Effect from "effect/Effect";
4
+ import { App } from "../../app.js";
5
+ import { DotAlchemy } from "../../dot-alchemy.js";
6
+ import { ESBuild } from "../../esbuild.js";
7
+ import { sha256 } from "../../sha256.js";
8
+ import { CloudflareAccountId, CloudflareApi } from "../api.js";
9
+ import { Assets } from "./assets.provider.js";
10
+ import { Worker } from "./worker.js";
11
+ export const workerProvider = () => Worker.provider.effect(Effect.gen(function* () {
12
+ const app = yield* App;
13
+ const api = yield* CloudflareApi;
14
+ const accountId = yield* CloudflareAccountId;
15
+ const { read, upload } = yield* Assets;
16
+ const { build } = yield* ESBuild;
17
+ const fs = yield* FileSystem.FileSystem;
18
+ const path = yield* Path.Path;
19
+ const dotAlchemy = yield* DotAlchemy;
20
+ const getAccountSubdomain = yield* Effect.cachedFunction(Effect.fnUntraced(function* (accountId) {
21
+ const { subdomain } = yield* api.workers.subdomains.get({
22
+ account_id: accountId,
23
+ });
24
+ return subdomain;
25
+ }));
26
+ // pre-fetch subdomain in background
27
+ yield* Effect.forkDaemon(getAccountSubdomain(accountId));
28
+ const setWorkerSubdomain = Effect.fnUntraced(function* (name, enabled) {
29
+ const subdomain = yield* api.workers.scripts.subdomain.create(name, {
30
+ account_id: accountId,
31
+ enabled,
32
+ });
33
+ yield* Effect.logDebug("setWorkerSubdomain", subdomain);
34
+ });
35
+ const createWorkerName = (id, props) => props?.name ?? `${app.name}-${id}-${app.stage}`.toLowerCase();
36
+ const prepareAssets = Effect.fnUntraced(function* (assets) {
37
+ if (!assets)
38
+ return undefined;
39
+ const result = yield* read(typeof assets === "string" ? { directory: assets } : assets);
40
+ return {
41
+ ...result,
42
+ hash: yield* sha256(JSON.stringify(result)),
43
+ };
44
+ });
45
+ const prepareBundle = Effect.fnUntraced(function* (id, main) {
46
+ const outfile = path.join(dotAlchemy, "out", `${id}.js`);
47
+ yield* build({
48
+ entryPoints: [path.relative(process.cwd(), main)],
49
+ outfile,
50
+ write: true,
51
+ bundle: true,
52
+ format: "esm",
53
+ sourcemap: false,
54
+ treeShaking: true,
55
+ });
56
+ const code = yield* fs.readFileString(outfile);
57
+ return {
58
+ code,
59
+ hash: yield* sha256(code),
60
+ };
61
+ });
62
+ const prepareMetadata = Effect.fnUntraced(function* (props) {
63
+ const metadata = {
64
+ assets: undefined,
65
+ bindings: [],
66
+ body_part: undefined,
67
+ compatibility_date: props.compatibility?.date,
68
+ compatibility_flags: props.compatibility?.flags,
69
+ keep_assets: undefined,
70
+ keep_bindings: undefined,
71
+ limits: props.limits,
72
+ logpush: props.logpush,
73
+ main_module: "worker.js",
74
+ migrations: undefined,
75
+ observability: props.observability ?? {
76
+ enabled: true,
77
+ logs: {
78
+ enabled: true,
79
+ invocation_logs: true,
80
+ },
81
+ },
82
+ placement: props.placement,
83
+ tags: props.tags,
84
+ tail_consumers: undefined,
85
+ usage_model: undefined,
86
+ };
87
+ return metadata;
88
+ });
89
+ const putWorker = Effect.fnUntraced(function* (id, news, bindings, olds, output, session) {
90
+ const name = createWorkerName(id, news);
91
+ const [assets, bundle, metadata] = yield* Effect.all([
92
+ prepareAssets(news.assets),
93
+ prepareBundle(id, news.main),
94
+ prepareMetadata(news),
95
+ ]).pipe(Effect.orDie);
96
+ metadata.bindings = bindings.flatMap((binding) => binding.bindings);
97
+ if (assets) {
98
+ if (output?.hash.assets !== assets.hash) {
99
+ const { jwt } = yield* upload(accountId, name, assets, session);
100
+ metadata.assets = {
101
+ jwt,
102
+ config: assets.config,
103
+ };
104
+ }
105
+ else {
106
+ metadata.assets = {
107
+ config: assets.config,
108
+ };
109
+ metadata.keep_assets = true;
110
+ }
111
+ metadata.bindings.push({
112
+ type: "assets",
113
+ name: "ASSETS",
114
+ });
115
+ }
116
+ yield* session.note("Uploading worker...");
117
+ const worker = yield* api.workers.scripts.update(name, {
118
+ account_id: accountId,
119
+ metadata: metadata,
120
+ files: [
121
+ new File([bundle.code], "worker.js", {
122
+ type: "application/javascript+module",
123
+ }),
124
+ ],
125
+ });
126
+ if (!olds || news.subdomain?.enabled !== olds.subdomain?.enabled) {
127
+ const enable = news.subdomain?.enabled !== false;
128
+ yield* session.note(`${enable ? "Enabling" : "Disabling"} workers.dev subdomain...`);
129
+ yield* setWorkerSubdomain(name, enable);
130
+ }
131
+ return {
132
+ id: worker.id,
133
+ name,
134
+ logpush: worker.logpush,
135
+ observability: metadata.observability,
136
+ subdomain: news.subdomain ?? {
137
+ enabled: true,
138
+ previews_enabled: true,
139
+ },
140
+ url: news.subdomain?.enabled !== false
141
+ ? `https://${name}.${yield* getAccountSubdomain(accountId)}.workers.dev`
142
+ : undefined,
143
+ tags: metadata.tags,
144
+ accountId,
145
+ hash: {
146
+ assets: assets?.hash,
147
+ bundle: bundle.hash,
148
+ },
149
+ };
150
+ });
151
+ return {
152
+ diff: Effect.fnUntraced(function* ({ id, olds, news, output }) {
153
+ if (output.accountId !== accountId) {
154
+ return { action: "replace" };
155
+ }
156
+ const workerName = createWorkerName(id, news);
157
+ if (workerName !== output.name) {
158
+ return { action: "replace" };
159
+ }
160
+ const [assets, bundle] = yield* Effect.all([
161
+ prepareAssets(news.assets),
162
+ prepareBundle(id, news.main),
163
+ ]).pipe(Effect.orDie);
164
+ if (assets?.hash !== output.hash.assets ||
165
+ bundle.hash !== output.hash.bundle) {
166
+ return { action: "update" };
167
+ }
168
+ }),
169
+ create: Effect.fnUntraced(function* ({ id, news, bindings, session }) {
170
+ const name = createWorkerName(id, news);
171
+ const existing = yield* api.workers.beta.workers
172
+ .get(name, {
173
+ account_id: accountId,
174
+ })
175
+ .pipe(Effect.catchTag("NotFound", () => Effect.void));
176
+ if (existing) {
177
+ return yield* Effect.fail(new Error(`Worker "${name}" already exists`));
178
+ }
179
+ return yield* putWorker(id, news, bindings, undefined, undefined, session);
180
+ }),
181
+ update: Effect.fnUntraced(function* ({ id, olds, news, output, bindings, session, }) {
182
+ return yield* putWorker(id, news, bindings, olds, output, session);
183
+ }),
184
+ delete: Effect.fnUntraced(function* ({ output }) {
185
+ yield* api.workers.scripts
186
+ .delete(output.id, {
187
+ account_id: output.accountId,
188
+ })
189
+ .pipe(Effect.catchTag("NotFound", () => Effect.void));
190
+ }),
191
+ };
192
+ }));
193
+ //# sourceMappingURL=worker.provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worker.provider.js","sourceRoot":"","sources":["../../../src/cloudflare/worker/worker.provider.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ import type * as types from "@cloudflare/workers-types";
2
+ import * as Effect from "effect/Effect";
3
+ import * as Worker from "./worker.ts";
4
+ export declare const serve: <const ID extends string, Req>(id: ID, { fetch, }: {
5
+ fetch: (request: Request, env: unknown, ctx: types.ExecutionContext) => Effect.Effect<Response, never, Req>;
6
+ }) => <const Props extends Worker.WorkerProps<Req>>(props: Props) => import("../../service.ts").Service<ID, Worker.Worker & {
7
+ provider: import("../../resource.ts").ResourceTags<Worker.Worker>;
8
+ }, (request: Request, env: unknown, ctx: types.ExecutionContext) => Effect.Effect<Response, never, Req>, Props, Worker.WorkerAttr<Extract<import("../../runtime.ts").RuntimeProps<Worker.Worker, any> & {
9
+ name?: string;
10
+ logpush?: boolean;
11
+ observability?: Worker.Worker.Observability;
12
+ subdomain?: Worker.Worker.Subdomain;
13
+ tags?: string[];
14
+ main: string;
15
+ compatibility?: {
16
+ date?: string;
17
+ flags?: string[];
18
+ };
19
+ limits?: Worker.Worker.Limits;
20
+ placement?: Worker.Worker.Placement;
21
+ } & {
22
+ assets?: string | Worker.Worker.AssetsProps;
23
+ } & Props, Worker.WorkerProps<any>> | Extract<import("../../runtime.ts").RuntimeProps<Worker.Worker, any> & {
24
+ name?: string;
25
+ logpush?: boolean;
26
+ observability?: Worker.Worker.Observability;
27
+ subdomain?: Worker.Worker.Subdomain;
28
+ tags?: string[];
29
+ main: string;
30
+ compatibility?: {
31
+ date?: string;
32
+ flags?: string[];
33
+ };
34
+ limits?: Worker.Worker.Limits;
35
+ placement?: Worker.Worker.Placement;
36
+ } & {
37
+ assets: string | Worker.Worker.AssetsProps;
38
+ } & Props, Worker.WorkerProps<any>>>>;
39
+ //# sourceMappingURL=worker.serve.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worker.serve.d.ts","sourceRoot":"","sources":["../../../src/cloudflare/worker/worker.serve.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,2BAA2B,CAAC;AACxD,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AAEtC,eAAO,MAAM,KAAK,GACf,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,EAC3B,IAAI,EAAE,EACN,YAEG;IACD,KAAK,EAAE,CACL,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,KAAK,CAAC,gBAAgB,KACxB,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;CAC1C,MAEF,KAAK,CAAC,KAAK,SAAS,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,OAAO,KAAK;;aAN3C,OAAO,OACX,OAAO,OACP,KAAK,CAAC,gBAAgB,KACxB,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,KAAK,EAAE,GAAG,CAAC;;;;;;;;YAKlB,CAAC;aAAmB,CAAC;;;;;;;;;;;;;;YAArB,CAAC;aAAmB,CAAC;;;;;;qCADF,CAAC"}
@@ -0,0 +1,4 @@
1
+ import * as Effect from "effect/Effect";
2
+ import * as Worker from "./worker.js";
3
+ export const serve = (id, { fetch, }) => (props) => Worker.Worker(id, { handle: fetch })(props);
4
+ //# sourceMappingURL=worker.serve.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worker.serve.js","sourceRoot":"","sources":["../../../src/cloudflare/worker/worker.serve.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AAEtC,MAAM,CAAC,MAAM,KAAK,GAChB,CACE,EAAM,EACN,EACE,KAAK,GAON,EACD,EAAE,CACJ,CAA8C,KAAY,EAAE,EAAE,CAC5D,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC"}
package/lib/destroy.d.ts CHANGED
@@ -1,4 +1,2 @@
1
- import type * as Effect from "effect/Effect";
2
- import type { App } from "./app.ts";
3
- export declare const destroy: () => Effect.Effect<void, never, App>;
1
+ export declare const destroy: () => import("effect/Effect").Effect<void, import("./approve.ts").PlanRejected, import("./state.ts").State>;
4
2
  //# sourceMappingURL=destroy.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"destroy.d.ts","sourceRoot":"","sources":["../src/destroy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,MAAM,eAAe,CAAC;AAC7C,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAEpC,MAAM,CAAC,OAAO,CAAC,MAAM,OAAO,EAAE,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC"}
1
+ {"version":3,"file":"destroy.d.ts","sourceRoot":"","sources":["../src/destroy.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,OAAO,6GAIhB,CAAC"}
package/lib/destroy.js CHANGED
@@ -1 +1,6 @@
1
+ import { apply } from "./apply.js";
2
+ export const destroy = () => apply({
3
+ phase: "destroy",
4
+ resources: [],
5
+ });
1
6
  //# sourceMappingURL=destroy.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"destroy.js","sourceRoot":"","sources":["../src/destroy.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"destroy.js","sourceRoot":"","sources":["../src/destroy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,MAAM,CAAC,MAAM,OAAO,GAAG,GAAG,EAAE,CAC1B,KAAK,CAAC;IACJ,KAAK,EAAE,SAAS;IAChB,SAAS,EAAE,EAAE;CACd,CAAC,CAAC"}
@@ -1,9 +1,10 @@
1
- import { FileSystem } from "@effect/platform";
1
+ import * as FileSystem from "@effect/platform/FileSystem";
2
+ import * as Path from "@effect/platform/Path";
2
3
  import * as Context from "effect/Context";
3
4
  import * as Layer from "effect/Layer";
4
5
  declare const DotAlchemy_base: Context.TagClass<DotAlchemy, ".alchemy", string>;
5
6
  export declare class DotAlchemy extends DotAlchemy_base {
6
7
  }
7
- export declare const dotAlchemy: Layer.Layer<DotAlchemy, import("@effect/platform/Error").PlatformError, FileSystem.FileSystem>;
8
+ export declare const dotAlchemy: Layer.Layer<DotAlchemy, import("@effect/platform/Error").PlatformError, FileSystem.FileSystem | Path.Path>;
8
9
  export {};
9
10
  //# sourceMappingURL=dot-alchemy.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"dot-alchemy.d.ts","sourceRoot":"","sources":["../src/dot-alchemy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAE1C,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;;AAGtC,qBAAa,UAAW,SAAQ,eAA6C;CAAG;AAEhF,eAAO,MAAM,UAAU,gGAQtB,CAAC"}
1
+ {"version":3,"file":"dot-alchemy.d.ts","sourceRoot":"","sources":["../src/dot-alchemy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,UAAU,MAAM,6BAA6B,CAAC;AAC1D,OAAO,KAAK,IAAI,MAAM,uBAAuB,CAAC;AAC9C,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAE1C,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;;AAEtC,qBAAa,UAAW,SAAQ,eAA6C;CAAG;AAEhF,eAAO,MAAM,UAAU,4GAStB,CAAC"}