@alchemy.run/fly 0.0.0-stage → 2.0.0-beta.84

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 (499) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +61 -2
  3. package/lib/App.d.ts +230 -0
  4. package/lib/App.d.ts.map +1 -0
  5. package/lib/App.js +340 -0
  6. package/lib/App.js.map +1 -0
  7. package/lib/AuthProvider.d.ts +22 -0
  8. package/lib/AuthProvider.d.ts.map +1 -0
  9. package/lib/AuthProvider.js +48 -0
  10. package/lib/AuthProvider.js.map +1 -0
  11. package/lib/BindService.d.ts +159 -0
  12. package/lib/BindService.d.ts.map +1 -0
  13. package/lib/BindService.js +222 -0
  14. package/lib/BindService.js.map +1 -0
  15. package/lib/Bootstrap.d.ts +8 -0
  16. package/lib/Bootstrap.d.ts.map +1 -0
  17. package/lib/Bootstrap.js +41 -0
  18. package/lib/Bootstrap.js.map +1 -0
  19. package/lib/Bucket.d.ts +278 -0
  20. package/lib/Bucket.d.ts.map +1 -0
  21. package/lib/Bucket.js +658 -0
  22. package/lib/Bucket.js.map +1 -0
  23. package/lib/BucketBinding.d.ts +33 -0
  24. package/lib/BucketBinding.d.ts.map +1 -0
  25. package/lib/BucketBinding.js +70 -0
  26. package/lib/BucketBinding.js.map +1 -0
  27. package/lib/Catalog.d.ts +28 -0
  28. package/lib/Catalog.d.ts.map +1 -0
  29. package/lib/Catalog.js +31 -0
  30. package/lib/Catalog.js.map +1 -0
  31. package/lib/Certificate.d.ts +189 -0
  32. package/lib/Certificate.d.ts.map +1 -0
  33. package/lib/Certificate.js +380 -0
  34. package/lib/Certificate.js.map +1 -0
  35. package/lib/Checkpoint.d.ts +55 -0
  36. package/lib/Checkpoint.d.ts.map +1 -0
  37. package/lib/Checkpoint.js +3 -0
  38. package/lib/Checkpoint.js.map +1 -0
  39. package/lib/CheckpointHttp.d.ts +22 -0
  40. package/lib/CheckpointHttp.d.ts.map +1 -0
  41. package/lib/CheckpointHttp.js +53 -0
  42. package/lib/CheckpointHttp.js.map +1 -0
  43. package/lib/ConnectPostgres.d.ts +58 -0
  44. package/lib/ConnectPostgres.d.ts.map +1 -0
  45. package/lib/ConnectPostgres.js +13 -0
  46. package/lib/ConnectPostgres.js.map +1 -0
  47. package/lib/ConnectPostgresHttp.d.ts +26 -0
  48. package/lib/ConnectPostgresHttp.d.ts.map +1 -0
  49. package/lib/ConnectPostgresHttp.js +57 -0
  50. package/lib/ConnectPostgresHttp.js.map +1 -0
  51. package/lib/Contributions.d.ts +7 -0
  52. package/lib/Contributions.d.ts.map +1 -0
  53. package/lib/Contributions.js +6 -0
  54. package/lib/Contributions.js.map +1 -0
  55. package/lib/Credentials.d.ts +33 -0
  56. package/lib/Credentials.d.ts.map +1 -0
  57. package/lib/Credentials.js +59 -0
  58. package/lib/Credentials.js.map +1 -0
  59. package/lib/Decrypt.d.ts +52 -0
  60. package/lib/Decrypt.d.ts.map +1 -0
  61. package/lib/Decrypt.js +3 -0
  62. package/lib/Decrypt.js.map +1 -0
  63. package/lib/DecryptHttp.d.ts +22 -0
  64. package/lib/DecryptHttp.d.ts.map +1 -0
  65. package/lib/DecryptHttp.js +43 -0
  66. package/lib/DecryptHttp.js.map +1 -0
  67. package/lib/DeleteObject.d.ts +29 -0
  68. package/lib/DeleteObject.d.ts.map +1 -0
  69. package/lib/DeleteObject.js +3 -0
  70. package/lib/DeleteObject.js.map +1 -0
  71. package/lib/DeleteObjectHttp.d.ts +12 -0
  72. package/lib/DeleteObjectHttp.d.ts.map +1 -0
  73. package/lib/DeleteObjectHttp.js +17 -0
  74. package/lib/DeleteObjectHttp.js.map +1 -0
  75. package/lib/Deployment.d.ts +51 -0
  76. package/lib/Deployment.d.ts.map +1 -0
  77. package/lib/Deployment.js +62 -0
  78. package/lib/Deployment.js.map +1 -0
  79. package/lib/DeploymentImages.d.ts +18 -0
  80. package/lib/DeploymentImages.d.ts.map +1 -0
  81. package/lib/DeploymentImages.js +61 -0
  82. package/lib/DeploymentImages.js.map +1 -0
  83. package/lib/DeploymentState.d.ts +17 -0
  84. package/lib/DeploymentState.d.ts.map +1 -0
  85. package/lib/DeploymentState.js +87 -0
  86. package/lib/DeploymentState.js.map +1 -0
  87. package/lib/Encrypt.d.ts +50 -0
  88. package/lib/Encrypt.d.ts.map +1 -0
  89. package/lib/Encrypt.js +3 -0
  90. package/lib/Encrypt.js.map +1 -0
  91. package/lib/EncryptHttp.d.ts +22 -0
  92. package/lib/EncryptHttp.d.ts.map +1 -0
  93. package/lib/EncryptHttp.js +39 -0
  94. package/lib/EncryptHttp.js.map +1 -0
  95. package/lib/Environment.d.ts +45 -0
  96. package/lib/Environment.d.ts.map +1 -0
  97. package/lib/Environment.js +43 -0
  98. package/lib/Environment.js.map +1 -0
  99. package/lib/Errors.d.ts +18 -0
  100. package/lib/Errors.d.ts.map +1 -0
  101. package/lib/Errors.js +13 -0
  102. package/lib/Errors.js.map +1 -0
  103. package/lib/Exec.d.ts +41 -0
  104. package/lib/Exec.d.ts.map +1 -0
  105. package/lib/Exec.js +3 -0
  106. package/lib/Exec.js.map +1 -0
  107. package/lib/ExecHttp.d.ts +22 -0
  108. package/lib/ExecHttp.d.ts.map +1 -0
  109. package/lib/ExecHttp.js +39 -0
  110. package/lib/ExecHttp.js.map +1 -0
  111. package/lib/GetObject.d.ts +34 -0
  112. package/lib/GetObject.d.ts.map +1 -0
  113. package/lib/GetObject.js +3 -0
  114. package/lib/GetObject.js.map +1 -0
  115. package/lib/GetObjectHttp.d.ts +12 -0
  116. package/lib/GetObjectHttp.d.ts.map +1 -0
  117. package/lib/GetObjectHttp.js +17 -0
  118. package/lib/GetObjectHttp.js.map +1 -0
  119. package/lib/GetSecret.d.ts +44 -0
  120. package/lib/GetSecret.d.ts.map +1 -0
  121. package/lib/GetSecret.js +3 -0
  122. package/lib/GetSecret.js.map +1 -0
  123. package/lib/GetSecretHttp.d.ts +22 -0
  124. package/lib/GetSecretHttp.d.ts.map +1 -0
  125. package/lib/GetSecretHttp.js +50 -0
  126. package/lib/GetSecretHttp.js.map +1 -0
  127. package/lib/HeadObject.d.ts +29 -0
  128. package/lib/HeadObject.d.ts.map +1 -0
  129. package/lib/HeadObject.js +3 -0
  130. package/lib/HeadObject.js.map +1 -0
  131. package/lib/HeadObjectHttp.d.ts +12 -0
  132. package/lib/HeadObjectHttp.d.ts.map +1 -0
  133. package/lib/HeadObjectHttp.js +17 -0
  134. package/lib/HeadObjectHttp.js.map +1 -0
  135. package/lib/IpAssignment.d.ts +258 -0
  136. package/lib/IpAssignment.d.ts.map +1 -0
  137. package/lib/IpAssignment.js +376 -0
  138. package/lib/IpAssignment.js.map +1 -0
  139. package/lib/ListObjectsV2.d.ts +29 -0
  140. package/lib/ListObjectsV2.d.ts.map +1 -0
  141. package/lib/ListObjectsV2.js +3 -0
  142. package/lib/ListObjectsV2.js.map +1 -0
  143. package/lib/ListObjectsV2Http.d.ts +12 -0
  144. package/lib/ListObjectsV2Http.d.ts.map +1 -0
  145. package/lib/ListObjectsV2Http.js +17 -0
  146. package/lib/ListObjectsV2Http.js.map +1 -0
  147. package/lib/ListSecrets.d.ts +53 -0
  148. package/lib/ListSecrets.d.ts.map +1 -0
  149. package/lib/ListSecrets.js +3 -0
  150. package/lib/ListSecrets.js.map +1 -0
  151. package/lib/ListSecretsHttp.d.ts +22 -0
  152. package/lib/ListSecretsHttp.d.ts.map +1 -0
  153. package/lib/ListSecretsHttp.js +35 -0
  154. package/lib/ListSecretsHttp.js.map +1 -0
  155. package/lib/Machine.d.ts +802 -0
  156. package/lib/Machine.d.ts.map +1 -0
  157. package/lib/Machine.js +773 -0
  158. package/lib/Machine.js.map +1 -0
  159. package/lib/MachineContainers.d.ts +44 -0
  160. package/lib/MachineContainers.d.ts.map +1 -0
  161. package/lib/MachineContainers.js +115 -0
  162. package/lib/MachineContainers.js.map +1 -0
  163. package/lib/Metadata.d.ts +109 -0
  164. package/lib/Metadata.d.ts.map +1 -0
  165. package/lib/Metadata.js +159 -0
  166. package/lib/Metadata.js.map +1 -0
  167. package/lib/MountVolume.d.ts +295 -0
  168. package/lib/MountVolume.d.ts.map +1 -0
  169. package/lib/MountVolume.js +20 -0
  170. package/lib/MountVolume.js.map +1 -0
  171. package/lib/Postgres.d.ts +298 -0
  172. package/lib/Postgres.d.ts.map +1 -0
  173. package/lib/Postgres.js +508 -0
  174. package/lib/Postgres.js.map +1 -0
  175. package/lib/PostgresMigrations.d.ts +35 -0
  176. package/lib/PostgresMigrations.d.ts.map +1 -0
  177. package/lib/PostgresMigrations.js +110 -0
  178. package/lib/PostgresMigrations.js.map +1 -0
  179. package/lib/Providers.d.ts +38 -0
  180. package/lib/Providers.d.ts.map +1 -0
  181. package/lib/Providers.js +95 -0
  182. package/lib/Providers.js.map +1 -0
  183. package/lib/PutObject.d.ts +35 -0
  184. package/lib/PutObject.d.ts.map +1 -0
  185. package/lib/PutObject.js +3 -0
  186. package/lib/PutObject.js.map +1 -0
  187. package/lib/PutObjectHttp.d.ts +12 -0
  188. package/lib/PutObjectHttp.d.ts.map +1 -0
  189. package/lib/PutObjectHttp.js +17 -0
  190. package/lib/PutObjectHttp.js.map +1 -0
  191. package/lib/ReadRedis.d.ts +26 -0
  192. package/lib/ReadRedis.d.ts.map +1 -0
  193. package/lib/ReadRedis.js +3 -0
  194. package/lib/ReadRedis.js.map +1 -0
  195. package/lib/ReadRedisHttp.d.ts +11 -0
  196. package/lib/ReadRedisHttp.d.ts.map +1 -0
  197. package/lib/ReadRedisHttp.js +15 -0
  198. package/lib/ReadRedisHttp.js.map +1 -0
  199. package/lib/ReadWriteRedis.d.ts +29 -0
  200. package/lib/ReadWriteRedis.d.ts.map +1 -0
  201. package/lib/ReadWriteRedis.js +3 -0
  202. package/lib/ReadWriteRedis.js.map +1 -0
  203. package/lib/ReadWriteRedisHttp.d.ts +11 -0
  204. package/lib/ReadWriteRedisHttp.d.ts.map +1 -0
  205. package/lib/ReadWriteRedisHttp.js +15 -0
  206. package/lib/ReadWriteRedisHttp.js.map +1 -0
  207. package/lib/Redis.d.ts +252 -0
  208. package/lib/Redis.d.ts.map +1 -0
  209. package/lib/Redis.js +608 -0
  210. package/lib/Redis.js.map +1 -0
  211. package/lib/RedisBinding.d.ts +7 -0
  212. package/lib/RedisBinding.d.ts.map +1 -0
  213. package/lib/RedisBinding.js +53 -0
  214. package/lib/RedisBinding.js.map +1 -0
  215. package/lib/RedisHttp.d.ts +8 -0
  216. package/lib/RedisHttp.d.ts.map +1 -0
  217. package/lib/RedisHttp.js +8 -0
  218. package/lib/RedisHttp.js.map +1 -0
  219. package/lib/Region.d.ts +16 -0
  220. package/lib/Region.d.ts.map +1 -0
  221. package/lib/Region.js +13 -0
  222. package/lib/Region.js.map +1 -0
  223. package/lib/Secret.d.ts +190 -0
  224. package/lib/Secret.d.ts.map +1 -0
  225. package/lib/Secret.js +310 -0
  226. package/lib/Secret.js.map +1 -0
  227. package/lib/SecretHttp.d.ts +54 -0
  228. package/lib/SecretHttp.d.ts.map +1 -0
  229. package/lib/SecretHttp.js +66 -0
  230. package/lib/SecretHttp.js.map +1 -0
  231. package/lib/SecretKey.d.ts +164 -0
  232. package/lib/SecretKey.d.ts.map +1 -0
  233. package/lib/SecretKey.js +277 -0
  234. package/lib/SecretKey.js.map +1 -0
  235. package/lib/SecretKeyHttp.d.ts +14 -0
  236. package/lib/SecretKeyHttp.d.ts.map +1 -0
  237. package/lib/SecretKeyHttp.js +5 -0
  238. package/lib/SecretKeyHttp.js.map +1 -0
  239. package/lib/Service.d.ts +1022 -0
  240. package/lib/Service.d.ts.map +1 -0
  241. package/lib/Service.js +1397 -0
  242. package/lib/Service.js.map +1 -0
  243. package/lib/Sign.d.ts +36 -0
  244. package/lib/Sign.d.ts.map +1 -0
  245. package/lib/Sign.js +3 -0
  246. package/lib/Sign.js.map +1 -0
  247. package/lib/SignHttp.d.ts +22 -0
  248. package/lib/SignHttp.d.ts.map +1 -0
  249. package/lib/SignHttp.js +36 -0
  250. package/lib/SignHttp.js.map +1 -0
  251. package/lib/Sprite.d.ts +283 -0
  252. package/lib/Sprite.d.ts.map +1 -0
  253. package/lib/Sprite.js +469 -0
  254. package/lib/Sprite.js.map +1 -0
  255. package/lib/SpriteHttp.d.ts +25 -0
  256. package/lib/SpriteHttp.d.ts.map +1 -0
  257. package/lib/SpriteHttp.js +33 -0
  258. package/lib/SpriteHttp.js.map +1 -0
  259. package/lib/Verify.d.ts +37 -0
  260. package/lib/Verify.d.ts.map +1 -0
  261. package/lib/Verify.js +3 -0
  262. package/lib/Verify.js.map +1 -0
  263. package/lib/VerifyHttp.d.ts +22 -0
  264. package/lib/VerifyHttp.d.ts.map +1 -0
  265. package/lib/VerifyHttp.js +38 -0
  266. package/lib/VerifyHttp.js.map +1 -0
  267. package/lib/Volume.d.ts +53 -0
  268. package/lib/Volume.d.ts.map +1 -0
  269. package/lib/Volume.js +188 -0
  270. package/lib/Volume.js.map +1 -0
  271. package/lib/VolumeSnapshot.d.ts +135 -0
  272. package/lib/VolumeSnapshot.d.ts.map +1 -0
  273. package/lib/VolumeSnapshot.js +213 -0
  274. package/lib/VolumeSnapshot.js.map +1 -0
  275. package/lib/Website/AssetDeployment.d.ts +43 -0
  276. package/lib/Website/AssetDeployment.d.ts.map +1 -0
  277. package/lib/Website/AssetDeployment.js +162 -0
  278. package/lib/Website/AssetDeployment.js.map +1 -0
  279. package/lib/Website/Astro.d.ts +87 -0
  280. package/lib/Website/Astro.d.ts.map +1 -0
  281. package/lib/Website/Astro.js +55 -0
  282. package/lib/Website/Astro.js.map +1 -0
  283. package/lib/Website/Foldkit.d.ts +52 -0
  284. package/lib/Website/Foldkit.d.ts.map +1 -0
  285. package/lib/Website/Foldkit.js +45 -0
  286. package/lib/Website/Foldkit.js.map +1 -0
  287. package/lib/Website/FrameworkSite.d.ts +175 -0
  288. package/lib/Website/FrameworkSite.d.ts.map +1 -0
  289. package/lib/Website/FrameworkSite.js +162 -0
  290. package/lib/Website/FrameworkSite.js.map +1 -0
  291. package/lib/Website/Nextjs.d.ts +54 -0
  292. package/lib/Website/Nextjs.d.ts.map +1 -0
  293. package/lib/Website/Nextjs.js +46 -0
  294. package/lib/Website/Nextjs.js.map +1 -0
  295. package/lib/Website/Nuxt.d.ts +51 -0
  296. package/lib/Website/Nuxt.d.ts.map +1 -0
  297. package/lib/Website/Nuxt.js +36 -0
  298. package/lib/Website/Nuxt.js.map +1 -0
  299. package/lib/Website/Octane.d.ts +49 -0
  300. package/lib/Website/Octane.d.ts.map +1 -0
  301. package/lib/Website/Octane.js +39 -0
  302. package/lib/Website/Octane.js.map +1 -0
  303. package/lib/Website/ReactRouter.d.ts +80 -0
  304. package/lib/Website/ReactRouter.d.ts.map +1 -0
  305. package/lib/Website/ReactRouter.js +70 -0
  306. package/lib/Website/ReactRouter.js.map +1 -0
  307. package/lib/Website/SolidStart.d.ts +93 -0
  308. package/lib/Website/SolidStart.d.ts.map +1 -0
  309. package/lib/Website/SolidStart.js +71 -0
  310. package/lib/Website/SolidStart.js.map +1 -0
  311. package/lib/Website/StaticSite.d.ts +155 -0
  312. package/lib/Website/StaticSite.d.ts.map +1 -0
  313. package/lib/Website/StaticSite.js +168 -0
  314. package/lib/Website/StaticSite.js.map +1 -0
  315. package/lib/Website/SvelteKit.d.ts +52 -0
  316. package/lib/Website/SvelteKit.d.ts.map +1 -0
  317. package/lib/Website/SvelteKit.js +37 -0
  318. package/lib/Website/SvelteKit.js.map +1 -0
  319. package/lib/Website/TanStackStart.d.ts +76 -0
  320. package/lib/Website/TanStackStart.d.ts.map +1 -0
  321. package/lib/Website/TanStackStart.js +66 -0
  322. package/lib/Website/TanStackStart.js.map +1 -0
  323. package/lib/Website/Vinext.d.ts +73 -0
  324. package/lib/Website/Vinext.d.ts.map +1 -0
  325. package/lib/Website/Vinext.js +67 -0
  326. package/lib/Website/Vinext.js.map +1 -0
  327. package/lib/Website/Vite.d.ts +103 -0
  328. package/lib/Website/Vite.d.ts.map +1 -0
  329. package/lib/Website/Vite.js +91 -0
  330. package/lib/Website/Vite.js.map +1 -0
  331. package/lib/Website/Vocs.d.ts +52 -0
  332. package/lib/Website/Vocs.d.ts.map +1 -0
  333. package/lib/Website/Vocs.js +38 -0
  334. package/lib/Website/Vocs.js.map +1 -0
  335. package/lib/Website/Waku.d.ts +64 -0
  336. package/lib/Website/Waku.d.ts.map +1 -0
  337. package/lib/Website/Waku.js +39 -0
  338. package/lib/Website/Waku.js.map +1 -0
  339. package/lib/Website/index.d.ts +17 -0
  340. package/lib/Website/index.d.ts.map +1 -0
  341. package/lib/Website/index.js +17 -0
  342. package/lib/Website/index.js.map +1 -0
  343. package/lib/WriteCertificates.d.ts +63 -0
  344. package/lib/WriteCertificates.d.ts.map +1 -0
  345. package/lib/WriteCertificates.js +3 -0
  346. package/lib/WriteCertificates.js.map +1 -0
  347. package/lib/WriteCertificatesHttp.d.ts +25 -0
  348. package/lib/WriteCertificatesHttp.d.ts.map +1 -0
  349. package/lib/WriteCertificatesHttp.js +67 -0
  350. package/lib/WriteCertificatesHttp.js.map +1 -0
  351. package/lib/WriteRedis.d.ts +26 -0
  352. package/lib/WriteRedis.d.ts.map +1 -0
  353. package/lib/WriteRedis.js +3 -0
  354. package/lib/WriteRedis.js.map +1 -0
  355. package/lib/WriteRedisHttp.d.ts +11 -0
  356. package/lib/WriteRedisHttp.d.ts.map +1 -0
  357. package/lib/WriteRedisHttp.js +15 -0
  358. package/lib/WriteRedisHttp.js.map +1 -0
  359. package/lib/WriteSecret.d.ts +68 -0
  360. package/lib/WriteSecret.d.ts.map +1 -0
  361. package/lib/WriteSecret.js +4 -0
  362. package/lib/WriteSecret.js.map +1 -0
  363. package/lib/WriteSecretHttp.d.ts +26 -0
  364. package/lib/WriteSecretHttp.d.ts.map +1 -0
  365. package/lib/WriteSecretHttp.js +54 -0
  366. package/lib/WriteSecretHttp.js.map +1 -0
  367. package/lib/bluegreen.d.ts +36 -0
  368. package/lib/bluegreen.d.ts.map +1 -0
  369. package/lib/bluegreen.js +458 -0
  370. package/lib/bluegreen.js.map +1 -0
  371. package/lib/hosted.d.ts +172 -0
  372. package/lib/hosted.d.ts.map +1 -0
  373. package/lib/hosted.js +458 -0
  374. package/lib/hosted.js.map +1 -0
  375. package/lib/index.d.ts +65 -0
  376. package/lib/index.d.ts.map +1 -0
  377. package/lib/index.js +63 -0
  378. package/lib/index.js.map +1 -0
  379. package/lib/internal/RemoteBuilder.d.ts +28 -0
  380. package/lib/internal/RemoteBuilder.d.ts.map +1 -0
  381. package/lib/internal/RemoteBuilder.js +145 -0
  382. package/lib/internal/RemoteBuilder.js.map +1 -0
  383. package/lib/leases.d.ts +53 -0
  384. package/lib/leases.d.ts.map +1 -0
  385. package/lib/leases.js +279 -0
  386. package/lib/leases.js.map +1 -0
  387. package/lib/ports.d.ts +51 -0
  388. package/lib/ports.d.ts.map +1 -0
  389. package/lib/ports.js +123 -0
  390. package/lib/ports.js.map +1 -0
  391. package/lib/replicas.d.ts +270 -0
  392. package/lib/replicas.d.ts.map +1 -0
  393. package/lib/replicas.js +969 -0
  394. package/lib/replicas.js.map +1 -0
  395. package/lib/rpc.d.ts +35 -0
  396. package/lib/rpc.d.ts.map +1 -0
  397. package/lib/rpc.js +113 -0
  398. package/lib/rpc.js.map +1 -0
  399. package/package.json +97 -3
  400. package/src/App.ts +516 -0
  401. package/src/AuthProvider.ts +68 -0
  402. package/src/BindService.ts +304 -0
  403. package/src/Bootstrap.ts +66 -0
  404. package/src/Bucket.ts +916 -0
  405. package/src/BucketBinding.ts +128 -0
  406. package/src/Catalog.ts +43 -0
  407. package/src/Certificate.ts +548 -0
  408. package/src/Checkpoint.ts +69 -0
  409. package/src/CheckpointHttp.ts +66 -0
  410. package/src/ConnectPostgres.ts +68 -0
  411. package/src/ConnectPostgresHttp.ts +77 -0
  412. package/src/Contributions.ts +9 -0
  413. package/src/Credentials.ts +102 -0
  414. package/src/Decrypt.ts +62 -0
  415. package/src/DecryptHttp.ts +52 -0
  416. package/src/DeleteObject.ts +43 -0
  417. package/src/DeleteObjectHttp.ts +20 -0
  418. package/src/Deployment.ts +121 -0
  419. package/src/DeploymentImages.ts +84 -0
  420. package/src/DeploymentState.ts +104 -0
  421. package/src/Encrypt.ts +60 -0
  422. package/src/EncryptHttp.ts +48 -0
  423. package/src/Environment.ts +81 -0
  424. package/src/Errors.ts +14 -0
  425. package/src/Exec.ts +50 -0
  426. package/src/ExecHttp.ts +47 -0
  427. package/src/GetObject.ts +48 -0
  428. package/src/GetObjectHttp.ts +20 -0
  429. package/src/GetSecret.ts +48 -0
  430. package/src/GetSecretHttp.ts +60 -0
  431. package/src/HeadObject.ts +43 -0
  432. package/src/HeadObjectHttp.ts +20 -0
  433. package/src/IpAssignment.ts +522 -0
  434. package/src/ListObjectsV2.ts +43 -0
  435. package/src/ListObjectsV2Http.ts +20 -0
  436. package/src/ListSecrets.ts +57 -0
  437. package/src/ListSecretsHttp.ts +43 -0
  438. package/src/Machine.ts +1268 -0
  439. package/src/MachineContainers.ts +152 -0
  440. package/src/Metadata.ts +195 -0
  441. package/src/MountVolume.ts +315 -0
  442. package/src/Postgres.ts +777 -0
  443. package/src/PostgresMigrations.ts +153 -0
  444. package/src/Providers.ts +155 -0
  445. package/src/PutObject.ts +49 -0
  446. package/src/PutObjectHttp.ts +20 -0
  447. package/src/ReadRedis.ts +31 -0
  448. package/src/ReadRedisHttp.ts +18 -0
  449. package/src/ReadWriteRedis.ts +33 -0
  450. package/src/ReadWriteRedisHttp.ts +18 -0
  451. package/src/Redis.ts +820 -0
  452. package/src/RedisBinding.ts +64 -0
  453. package/src/RedisHttp.ts +11 -0
  454. package/src/Region.ts +44 -0
  455. package/src/Secret.ts +405 -0
  456. package/src/SecretHttp.ts +149 -0
  457. package/src/SecretKey.ts +389 -0
  458. package/src/SecretKeyHttp.ts +23 -0
  459. package/src/Service.ts +1934 -0
  460. package/src/Sign.ts +46 -0
  461. package/src/SignHttp.ts +44 -0
  462. package/src/Sprite.ts +671 -0
  463. package/src/SpriteHttp.ts +50 -0
  464. package/src/Verify.ts +47 -0
  465. package/src/VerifyHttp.ts +46 -0
  466. package/src/Volume.ts +264 -0
  467. package/src/VolumeSnapshot.ts +321 -0
  468. package/src/Website/AssetDeployment.ts +294 -0
  469. package/src/Website/Astro.ts +87 -0
  470. package/src/Website/Foldkit.ts +54 -0
  471. package/src/Website/FrameworkSite.ts +363 -0
  472. package/src/Website/Nextjs.ts +50 -0
  473. package/src/Website/Nuxt.ts +48 -0
  474. package/src/Website/Octane.ts +44 -0
  475. package/src/Website/ReactRouter.ts +76 -0
  476. package/src/Website/SolidStart.ts +90 -0
  477. package/src/Website/StaticSite.ts +275 -0
  478. package/src/Website/SvelteKit.ts +49 -0
  479. package/src/Website/TanStackStart.ts +72 -0
  480. package/src/Website/Vinext.ts +79 -0
  481. package/src/Website/Vite.ts +112 -0
  482. package/src/Website/Vocs.ts +50 -0
  483. package/src/Website/Waku.ts +65 -0
  484. package/src/Website/index.ts +16 -0
  485. package/src/WriteCertificates.ts +90 -0
  486. package/src/WriteCertificatesHttp.ts +93 -0
  487. package/src/WriteRedis.ts +31 -0
  488. package/src/WriteRedisHttp.ts +18 -0
  489. package/src/WriteSecret.ts +86 -0
  490. package/src/WriteSecretHttp.ts +71 -0
  491. package/src/bluegreen.ts +708 -0
  492. package/src/globals.d.ts +2 -0
  493. package/src/hosted.ts +668 -0
  494. package/src/index.ts +64 -0
  495. package/src/internal/RemoteBuilder.ts +224 -0
  496. package/src/leases.ts +437 -0
  497. package/src/ports.ts +177 -0
  498. package/src/replicas.ts +1480 -0
  499. package/src/rpc.ts +136 -0
@@ -0,0 +1,38 @@
1
+ import { frameworkSite } from "./FrameworkSite.js";
2
+ /** The framework-integration package that drives the Vocs build. */
3
+ export const VOCS_FRAMEWORK_SPECIFIER = "@alchemy.run/frontend-frameworks/vocs/node";
4
+ /** The Node container deploy target for the Vocs build. */
5
+ export const VOCS_NODE_TARGET_SPECIFIER = "@alchemy.run/frontend-frameworks/vocs/node";
6
+ /**
7
+ * Deploy a [Vocs](https://vocs.dev) documentation site to Fly. The node
8
+ * target serves static assets first, then Vocs' Waku RSC handler
9
+ * (`/about` → `about/index.html`, otherwise SSR).
10
+ *
11
+ *
12
+ * ### Creating Vocs Sites
13
+ * **Example:** Vocs documentation site
14
+ * ```typescript
15
+ * const docs = yield* Fly.Website.Vocs("Docs", {
16
+ * rootDir: "./docs",
17
+ * });
18
+ * ```
19
+ *
20
+ * **Example:** Custom output directory
21
+ * ```typescript
22
+ * const docs = yield* Fly.Website.Vocs("Docs", {
23
+ * rootDir: "./docs",
24
+ * outDir: "build",
25
+ * });
26
+ * ```
27
+ *
28
+ * @resource
29
+ * @product Website
30
+ */
31
+ export const Vocs = (id, props = {}) => frameworkSite(id, props, {
32
+ name: "Vocs",
33
+ framework: VOCS_FRAMEWORK_SPECIFIER,
34
+ target: VOCS_NODE_TARGET_SPECIFIER,
35
+ options: props.outDir !== undefined ? { outDir: props.outDir } : undefined,
36
+ htmlHandling: "drop-trailing-slash",
37
+ });
38
+ //# sourceMappingURL=Vocs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Vocs.js","sourceRoot":"","sources":["../../src/Website/Vocs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAA2B,MAAM,oBAAoB,CAAC;AAE5E,oEAAoE;AACpE,MAAM,CAAC,MAAM,wBAAwB,GAAG,4CAA4C,CAAC;AAErF,2DAA2D;AAC3D,MAAM,CAAC,MAAM,0BAA0B,GAAG,4CAA4C,CAAC;AAWvF;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,EAAU,EAAE,KAAK,GAAc,EAAE,EAAE,EAAE,CACxD,aAAa,CAAC,EAAE,EAAE,KAAK,EAAE;IACvB,IAAI,EAAE,MAAM;IACZ,SAAS,EAAE,wBAAwB;IACnC,MAAM,EAAE,0BAA0B;IAClC,OAAO,EAAE,KAAK,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,SAAS;IAC1E,YAAY,EAAE,qBAAqB;CACpC,CAAC,CAAC"}
@@ -0,0 +1,64 @@
1
+ import { type FrameworkSiteProps } from "./FrameworkSite.ts";
2
+ /** The framework-integration package that drives the Waku build. */
3
+ export declare const WAKU_FRAMEWORK_SPECIFIER = "@alchemy.run/frontend-frameworks/waku";
4
+ /** The Node container deploy target for the Waku build. */
5
+ export declare const WAKU_NODE_TARGET_SPECIFIER = "@alchemy.run/frontend-frameworks/waku/node";
6
+ export interface WakuProps extends FrameworkSiteProps {
7
+ /**
8
+ * Serializable Waku config merged OVER the project's own
9
+ * `waku.config.*`.
10
+ */
11
+ waku?: {
12
+ /**
13
+ * Source directory, relative to `rootDir` (waku's `srcDir`).
14
+ * @default the project's `waku.config.*` value, or `"src"`
15
+ */
16
+ srcDir?: string;
17
+ /**
18
+ * Build output directory (waku's `distDir`).
19
+ * @default the project's `waku.config.*` value, or `"dist"`
20
+ */
21
+ distDir?: string;
22
+ /** Public base path the site deploys under (waku's `basePath`). */
23
+ basePath?: string;
24
+ };
25
+ }
26
+ /**
27
+ * Deploy a [Waku](https://waku.gg) application to Fly: the RSC server on a
28
+ * Machine, static assets (SSG pages included) baked into the image.
29
+ * Prerendered pages are served extensionless (`/about`).
30
+ *
31
+ *
32
+ * ### Creating Waku Sites
33
+ * **Example:** Basic Waku App
34
+ * ```typescript
35
+ * const site = yield* Fly.Website.Waku("Web", {
36
+ * rootDir: "./app",
37
+ * });
38
+ * ```
39
+ *
40
+ * **Example:** Custom Domain
41
+ * ```typescript
42
+ * const site = yield* Fly.Website.Waku("Web", {
43
+ * rootDir: "./app",
44
+ * domain: "app.example.com",
45
+ * });
46
+ * ```
47
+ *
48
+ * @resource
49
+ * @product Website
50
+ */
51
+ export declare const Waku: (id: string, props?: WakuProps) => import("effect/Effect").Effect<{
52
+ url: import("alchemy/Output").Output<string | undefined, never>;
53
+ app: undefined;
54
+ service: undefined;
55
+ ip: undefined;
56
+ certificate: undefined;
57
+ } | {
58
+ url: string | import("alchemy/Output").Output<string, never>;
59
+ app: import("../App.ts").App;
60
+ service: import("../Service.ts").Service;
61
+ ip: import("../IpAssignment.ts").IpAssignment;
62
+ certificate: import("../Certificate.ts").Certificate | undefined;
63
+ }, never, import("alchemy/AlchemyContext").AlchemyContext | import("effect/FileSystem").FileSystem | import("effect/Path").Path | import("alchemy/Provider").Provider<import("alchemy/Website/Server").Server> | import("../Providers.ts").Providers>;
64
+ //# sourceMappingURL=Waku.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Waku.d.ts","sourceRoot":"","sources":["../../src/Website/Waku.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAE5E,oEAAoE;AACpE,eAAO,MAAM,wBAAwB,0CAA0C,CAAC;AAEhF,2DAA2D;AAC3D,eAAO,MAAM,0BAA0B,+CAA+C,CAAC;AAKvF,MAAM,WAAW,SAAU,SAAQ,kBAAkB;IACnD;;;OAGG;IACH,IAAI,CAAC,EAAE;QACL;;;WAGG;QACH,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB;;;WAGG;QACH,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,mEAAmE;QACnE,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,eAAO,MAAM,IAAI,OAAQ,MAAM,UAAS,SAAS;;;;;;;;;;;;qPAO7C,CAAC"}
@@ -0,0 +1,39 @@
1
+ import { frameworkSite } from "./FrameworkSite.js";
2
+ /** The framework-integration package that drives the Waku build. */
3
+ export const WAKU_FRAMEWORK_SPECIFIER = "@alchemy.run/frontend-frameworks/waku";
4
+ /** The Node container deploy target for the Waku build. */
5
+ export const WAKU_NODE_TARGET_SPECIFIER = "@alchemy.run/frontend-frameworks/waku/node";
6
+ const wakuOptions = (props) => props.waku !== undefined ? { waku: props.waku } : undefined;
7
+ /**
8
+ * Deploy a [Waku](https://waku.gg) application to Fly: the RSC server on a
9
+ * Machine, static assets (SSG pages included) baked into the image.
10
+ * Prerendered pages are served extensionless (`/about`).
11
+ *
12
+ *
13
+ * ### Creating Waku Sites
14
+ * **Example:** Basic Waku App
15
+ * ```typescript
16
+ * const site = yield* Fly.Website.Waku("Web", {
17
+ * rootDir: "./app",
18
+ * });
19
+ * ```
20
+ *
21
+ * **Example:** Custom Domain
22
+ * ```typescript
23
+ * const site = yield* Fly.Website.Waku("Web", {
24
+ * rootDir: "./app",
25
+ * domain: "app.example.com",
26
+ * });
27
+ * ```
28
+ *
29
+ * @resource
30
+ * @product Website
31
+ */
32
+ export const Waku = (id, props = {}) => frameworkSite(id, props, {
33
+ name: "Waku",
34
+ framework: WAKU_FRAMEWORK_SPECIFIER,
35
+ target: WAKU_NODE_TARGET_SPECIFIER,
36
+ options: wakuOptions(props),
37
+ htmlHandling: "drop-trailing-slash",
38
+ });
39
+ //# sourceMappingURL=Waku.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Waku.js","sourceRoot":"","sources":["../../src/Website/Waku.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAA2B,MAAM,oBAAoB,CAAC;AAE5E,oEAAoE;AACpE,MAAM,CAAC,MAAM,wBAAwB,GAAG,uCAAuC,CAAC;AAEhF,2DAA2D;AAC3D,MAAM,CAAC,MAAM,0BAA0B,GAAG,4CAA4C,CAAC;AAEvF,MAAM,WAAW,GAAG,CAAC,KAAgB,EAAE,EAAE,CACvC,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;AAuB9D;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,EAAU,EAAE,KAAK,GAAc,EAAE,EAAE,EAAE,CACxD,aAAa,CAAC,EAAE,EAAE,KAAK,EAAE;IACvB,IAAI,EAAE,MAAM;IACZ,SAAS,EAAE,wBAAwB;IACnC,MAAM,EAAE,0BAA0B;IAClC,OAAO,EAAE,WAAW,CAAC,KAAK,CAAC;IAC3B,YAAY,EAAE,qBAAqB;CACpC,CAAC,CAAC"}
@@ -0,0 +1,17 @@
1
+ export * from "./AssetDeployment.ts";
2
+ export * from "./Astro.ts";
3
+ export * from "./Foldkit.ts";
4
+ export * from "./FrameworkSite.ts";
5
+ export * from "./Nextjs.ts";
6
+ export * from "./Nuxt.ts";
7
+ export * from "./Octane.ts";
8
+ export * from "./ReactRouter.ts";
9
+ export * from "./SolidStart.ts";
10
+ export * from "./StaticSite.ts";
11
+ export * from "./SvelteKit.ts";
12
+ export * from "./TanStackStart.ts";
13
+ export * from "./Vinext.ts";
14
+ export * from "./Vite.ts";
15
+ export * from "./Vocs.ts";
16
+ export * from "./Waku.ts";
17
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/Website/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,oBAAoB,CAAC;AACnC,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC"}
@@ -0,0 +1,17 @@
1
+ export * from "./AssetDeployment.js";
2
+ export * from "./Astro.js";
3
+ export * from "./Foldkit.js";
4
+ export * from "./FrameworkSite.js";
5
+ export * from "./Nextjs.js";
6
+ export * from "./Nuxt.js";
7
+ export * from "./Octane.js";
8
+ export * from "./ReactRouter.js";
9
+ export * from "./SolidStart.js";
10
+ export * from "./StaticSite.js";
11
+ export * from "./SvelteKit.js";
12
+ export * from "./TanStackStart.js";
13
+ export * from "./Vinext.js";
14
+ export * from "./Vite.js";
15
+ export * from "./Vocs.js";
16
+ export * from "./Waku.js";
17
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/Website/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,oBAAoB,CAAC;AACnC,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC"}
@@ -0,0 +1,63 @@
1
+ import type { CertificateCheckResponse, CertificateDetail, CheckAppCertificateError, CreateAppAcmeCertificateError, CreateAppCustomCertificateError, DeleteAppCertificateError, DeleteAppCustomCertificateError, GetAppCertificateError } from "@distilled.cloud/fly-io/machines";
2
+ import * as Binding from "alchemy/Binding";
3
+ import type { RuntimeContext } from "alchemy/RuntimeContext";
4
+ import type * as Effect from "effect/Effect";
5
+ import type * as Redacted from "effect/Redacted";
6
+ import type { App } from "./App.ts";
7
+ /**
8
+ * Manage an App's TLS certificates at runtime — the companion to the
9
+ * deploy-time {@link Certificate} resource, for services that mint or
10
+ * rotate certificates on their own (a relay adding a tenant's wildcard,
11
+ * a renewal loop).
12
+ *
13
+ * The App is fixed by `WriteCertificates(app)`; calls take a hostname.
14
+ *
15
+ * ### Fly-managed (Let's Encrypt)
16
+ * **Example:** Request and check
17
+ * ```typescript
18
+ * const certs = yield* Fly.WriteCertificates(Site);
19
+ * const requested = yield* certs.request("www.example.com");
20
+ * // publish requested.dns_requirements, then:
21
+ * const status = yield* certs.check("www.example.com");
22
+ * ```
23
+ *
24
+ * ### Bring your own PEM
25
+ * A certificate issued elsewhere (an `ACME.IssueCertificate` wildcard
26
+ * from ZeroSSL, say) goes up as a custom certificate.
27
+ *
28
+ * **Example:** Upload
29
+ * ```typescript
30
+ * yield* certs.upload({
31
+ * hostname: "*.tenant.example.com",
32
+ * fullchain: issued.chain,
33
+ * privateKey: issued.privateKey,
34
+ * });
35
+ * ```
36
+ *
37
+ * @binding
38
+ * @product Certificate
39
+ */
40
+ export interface WriteCertificates extends Binding.Service<WriteCertificates, "Fly.WriteCertificates", (app: App) => Effect.Effect<WriteCertificatesClient>> {
41
+ }
42
+ export declare const WriteCertificates: WriteCertificates;
43
+ export interface UploadCertificateRequest {
44
+ readonly hostname: string;
45
+ /** PEM chain, leaf first. */
46
+ readonly fullchain: string;
47
+ /** PEM private key. */
48
+ readonly privateKey: Redacted.Redacted<string> | string;
49
+ }
50
+ /** Certificate operations on one App. */
51
+ export interface WriteCertificatesClient {
52
+ /** Request a Fly-managed (Let's Encrypt) certificate. Idempotent. */
53
+ request(hostname: string): Effect.Effect<CertificateDetail | undefined, CreateAppAcmeCertificateError, RuntimeContext>;
54
+ /** Upload a custom PEM. Replaces an existing custom certificate. */
55
+ upload(request: UploadCertificateRequest): Effect.Effect<CertificateDetail | undefined, CreateAppCustomCertificateError | DeleteAppCustomCertificateError, RuntimeContext>;
56
+ /** Re-run Fly's validation checks for the hostname. */
57
+ check(hostname: string): Effect.Effect<CertificateCheckResponse, CheckAppCertificateError, RuntimeContext>;
58
+ /** The certificate for a hostname, or `undefined`. */
59
+ get(hostname: string): Effect.Effect<CertificateDetail | undefined, GetAppCertificateError, RuntimeContext>;
60
+ /** Remove the hostname's certificate. Missing counts as removed. */
61
+ remove(hostname: string): Effect.Effect<void, DeleteAppCertificateError, RuntimeContext>;
62
+ }
63
+ //# sourceMappingURL=WriteCertificates.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WriteCertificates.d.ts","sourceRoot":"","sources":["../src/WriteCertificates.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,wBAAwB,EACxB,iBAAiB,EACjB,wBAAwB,EACxB,6BAA6B,EAC7B,+BAA+B,EAC/B,yBAAyB,EACzB,+BAA+B,EAC/B,sBAAsB,EACvB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,KAAK,OAAO,MAAM,iBAAiB,CAAC;AAC3C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,KAAK,KAAK,MAAM,MAAM,eAAe,CAAC;AAC7C,OAAO,KAAK,KAAK,QAAQ,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAEpC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,MAAM,WAAW,iBAAkB,SAAQ,OAAO,CAAC,OAAO,CACxD,iBAAiB,EACjB,uBAAuB,EACvB,CAAC,GAAG,EAAE,GAAG,KAAK,MAAM,CAAC,MAAM,CAAC,uBAAuB,CAAC,CACrD;CAAG;AAEJ,eAAO,MAAM,iBAAiB,mBAA8D,CAAC;AAE7F,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,6BAA6B;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,uBAAuB;IACvB,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;CACzD;AAED,yCAAyC;AACzC,MAAM,WAAW,uBAAuB;IACtC,qEAAqE;IACrE,OAAO,CACL,QAAQ,EAAE,MAAM,GACf,MAAM,CAAC,MAAM,CAAC,iBAAiB,GAAG,SAAS,EAAE,6BAA6B,EAAE,cAAc,CAAC,CAAC;IAC/F,oEAAoE;IACpE,MAAM,CACJ,OAAO,EAAE,wBAAwB,GAChC,MAAM,CAAC,MAAM,CACd,iBAAiB,GAAG,SAAS,EAC7B,+BAA+B,GAAG,+BAA+B,EACjE,cAAc,CACf,CAAC;IACF,uDAAuD;IACvD,KAAK,CACH,QAAQ,EAAE,MAAM,GACf,MAAM,CAAC,MAAM,CAAC,wBAAwB,EAAE,wBAAwB,EAAE,cAAc,CAAC,CAAC;IACrF,sDAAsD;IACtD,GAAG,CACD,QAAQ,EAAE,MAAM,GACf,MAAM,CAAC,MAAM,CAAC,iBAAiB,GAAG,SAAS,EAAE,sBAAsB,EAAE,cAAc,CAAC,CAAC;IACxF,oEAAoE;IACpE,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,yBAAyB,EAAE,cAAc,CAAC,CAAC;CAC1F"}
@@ -0,0 +1,3 @@
1
+ import * as Binding from "alchemy/Binding";
2
+ export const WriteCertificates = Binding.Service("Fly.WriteCertificates");
3
+ //# sourceMappingURL=WriteCertificates.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WriteCertificates.js","sourceRoot":"","sources":["../src/WriteCertificates.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,OAAO,MAAM,iBAAiB,CAAC;AA6C3C,MAAM,CAAC,MAAM,iBAAiB,GAAG,OAAO,CAAC,OAAO,CAAoB,uBAAuB,CAAC,CAAC"}
@@ -0,0 +1,25 @@
1
+ import * as Effect from "effect/Effect";
2
+ import * as Layer from "effect/Layer";
3
+ import { type SecretAuth } from "./SecretHttp.ts";
4
+ import { WriteCertificates, type WriteCertificatesClient } from "./WriteCertificates.ts";
5
+ /**
6
+ * HTTP implementation of {@link WriteCertificates}. Provide it on the
7
+ * {@link Service} or Action Effect.
8
+ *
9
+ * ### Provide the layer
10
+ * **Example:** On a Service
11
+ * ```typescript
12
+ * Effect.gen(function* () {
13
+ * const certs = yield* Fly.WriteCertificates(Site);
14
+ * // ...
15
+ * }).pipe(Effect.provide(Fly.WriteCertificatesHttp))
16
+ * ```
17
+ *
18
+ * @layer
19
+ * @product Certificate
20
+ * @provides Fly.WriteCertificates
21
+ */
22
+ export declare const WriteCertificatesHttp: Layer.Layer<WriteCertificates, never, never>;
23
+ /** Build the client over an injectable auth and App name. */
24
+ export declare const certificatesWriteClient: (auth: SecretAuth, appName: Effect.Effect<string>) => WriteCertificatesClient;
25
+ //# sourceMappingURL=WriteCertificatesHttp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WriteCertificatesHttp.d.ts","sourceRoot":"","sources":["../src/WriteCertificatesHttp.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAEtC,OAAO,EAAE,KAAK,UAAU,EAAyC,MAAM,iBAAiB,CAAC;AACzF,OAAO,EAAE,iBAAiB,EAAE,KAAK,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAEzF;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,qBAAqB,8CAOsD,CAAC;AAEzF,6DAA6D;AAC7D,eAAO,MAAM,uBAAuB,SAC5B,UAAU,WACP,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,KAC7B,uBAsDF,CAAC"}
@@ -0,0 +1,67 @@
1
+ import * as machines from "@distilled.cloud/fly-io/machines";
2
+ import * as Effect from "effect/Effect";
3
+ import * as FetchHttpClient from "effect/http/FetchHttpClient";
4
+ import * as Layer from "effect/Layer";
5
+ import { CredentialsFromAmbientOrEnv } from "./Credentials.js";
6
+ import { makeHttpAppBinding, unwrapSecretValue } from "./SecretHttp.js";
7
+ import { WriteCertificates } from "./WriteCertificates.js";
8
+ /**
9
+ * HTTP implementation of {@link WriteCertificates}. Provide it on the
10
+ * {@link Service} or Action Effect.
11
+ *
12
+ * ### Provide the layer
13
+ * **Example:** On a Service
14
+ * ```typescript
15
+ * Effect.gen(function* () {
16
+ * const certs = yield* Fly.WriteCertificates(Site);
17
+ * // ...
18
+ * }).pipe(Effect.provide(Fly.WriteCertificatesHttp))
19
+ * ```
20
+ *
21
+ * @layer
22
+ * @product Certificate
23
+ * @provides Fly.WriteCertificates
24
+ */
25
+ export const WriteCertificatesHttp = Layer.effect(WriteCertificates, Effect.suspend(() => makeHttpAppBinding({
26
+ makeClient: certificatesWriteClient,
27
+ }))).pipe(Layer.provide(FetchHttpClient.layer), Layer.provide(CredentialsFromAmbientOrEnv));
28
+ /** Build the client over an injectable auth and App name. */
29
+ export const certificatesWriteClient = (auth, appName) => {
30
+ const authorize = auth.authorize;
31
+ return {
32
+ request: Effect.fn("Fly.Certificates.request")(function* (hostname) {
33
+ return yield* authorize(machines
34
+ .createAppAcmeCertificate({ app_name: yield* appName, hostname })
35
+ .pipe(Effect.catchTag("Conflict", () => Effect.succeed(undefined))));
36
+ }),
37
+ upload: Effect.fn("Fly.Certificates.upload")(function* (request) {
38
+ const app_name = yield* appName;
39
+ const body = {
40
+ app_name,
41
+ hostname: request.hostname,
42
+ fullchain: request.fullchain,
43
+ private_key: unwrapSecretValue(request.privateKey),
44
+ };
45
+ return yield* authorize(machines.createAppCustomCertificate(body).pipe(
46
+ // An existing custom certificate conflicts: replace it.
47
+ Effect.catchTag("Conflict", () => machines
48
+ .deleteAppCustomCertificate({
49
+ app_name,
50
+ hostname: request.hostname,
51
+ })
52
+ .pipe(Effect.catchTag("NotFound", () => Effect.void), Effect.andThen(machines.createAppCustomCertificate(body))))));
53
+ }),
54
+ check: Effect.fn("Fly.Certificates.check")(function* (hostname) {
55
+ return yield* authorize(machines.checkAppCertificate({ app_name: yield* appName, hostname }));
56
+ }),
57
+ get: Effect.fn("Fly.Certificates.get")(function* (hostname) {
58
+ return yield* authorize(machines
59
+ .getAppCertificate({ app_name: yield* appName, hostname })
60
+ .pipe(Effect.catchTag("NotFound", () => Effect.succeed(undefined))));
61
+ }),
62
+ remove: Effect.fn("Fly.Certificates.remove")(function* (hostname) {
63
+ return yield* authorize(machines.deleteAppCertificate({ app_name: yield* appName, hostname }).pipe(Effect.catchTag("NotFound", () => Effect.void), Effect.asVoid));
64
+ }),
65
+ };
66
+ };
67
+ //# sourceMappingURL=WriteCertificatesHttp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WriteCertificatesHttp.js","sourceRoot":"","sources":["../src/WriteCertificatesHttp.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ import type { WriteClient } from "@alchemy.run/redis";
2
+ import * as Binding from "alchemy/Binding";
3
+ import type * as Effect from "effect/Effect";
4
+ import type { Redis } from "./Redis.ts";
5
+ /**
6
+ * Bind a {@link Redis} database with write access (`set`, `del`).
7
+ *
8
+ * `WriteRedis` is the Context tag, the type, and the callable —
9
+ * `yield* Fly.WriteRedis(Cache)`. Provide {@link WriteRedisHttp}.
10
+ *
11
+ *
12
+ * ### Write
13
+ * **Example:** Set a key
14
+ * ```typescript
15
+ * const cache = yield* Fly.WriteRedis(Cache);
16
+ * yield* cache.set("marker", "hello");
17
+ * ```
18
+ *
19
+ * @binding
20
+ * @product Redis
21
+ */
22
+ export interface WriteRedis extends Binding.Service<WriteRedis, "Fly.WriteRedis", (redis: Redis) => Effect.Effect<WriteRedisClient>> {
23
+ }
24
+ export declare const WriteRedis: WriteRedis;
25
+ export type WriteRedisClient = WriteClient;
26
+ //# sourceMappingURL=WriteRedis.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WriteRedis.d.ts","sourceRoot":"","sources":["../src/WriteRedis.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,OAAO,MAAM,iBAAiB,CAAC;AAC3C,OAAO,KAAK,KAAK,MAAM,MAAM,eAAe,CAAC;AAC7C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAExC;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,WAAW,UAAW,SAAQ,OAAO,CAAC,OAAO,CACjD,UAAU,EACV,gBAAgB,EAChB,CAAC,KAAK,EAAE,KAAK,KAAK,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAClD;CAAG;AAEJ,eAAO,MAAM,UAAU,YAAgD,CAAC;AAExE,MAAM,MAAM,gBAAgB,GAAG,WAAW,CAAC"}
@@ -0,0 +1,3 @@
1
+ import * as Binding from "alchemy/Binding";
2
+ export const WriteRedis = Binding.Service("Fly.WriteRedis");
3
+ //# sourceMappingURL=WriteRedis.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WriteRedis.js","sourceRoot":"","sources":["../src/WriteRedis.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,OAAO,MAAM,iBAAiB,CAAC;AA2B3C,MAAM,CAAC,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAa,gBAAgB,CAAC,CAAC"}
@@ -0,0 +1,11 @@
1
+ import * as Layer from "effect/Layer";
2
+ import { WriteRedis } from "./WriteRedis.ts";
3
+ /**
4
+ * HTTP implementation of {@link WriteRedis}.
5
+ *
6
+ * @layer
7
+ * @product Redis
8
+ * @provides Fly.WriteRedis
9
+ */
10
+ export declare const WriteRedisHttp: Layer.Layer<WriteRedis, never, never>;
11
+ //# sourceMappingURL=WriteRedisHttp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WriteRedisHttp.d.ts","sourceRoot":"","sources":["../src/WriteRedisHttp.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAGtC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,uCAK1B,CAAC"}
@@ -0,0 +1,15 @@
1
+ import * as Layer from "effect/Layer";
2
+ import { makeRedisBinding } from "./RedisBinding.js";
3
+ import { makeWriteRedisClient } from "./RedisHttp.js";
4
+ import { WriteRedis } from "./WriteRedis.js";
5
+ /**
6
+ * HTTP implementation of {@link WriteRedis}.
7
+ *
8
+ * @layer
9
+ * @product Redis
10
+ * @provides Fly.WriteRedis
11
+ */
12
+ export const WriteRedisHttp = Layer.effect(WriteRedis, makeRedisBinding({
13
+ makeClient: makeWriteRedisClient,
14
+ }));
15
+ //# sourceMappingURL=WriteRedisHttp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WriteRedisHttp.js","sourceRoot":"","sources":["../src/WriteRedisHttp.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,CAAC,MAAM,CACxC,UAAU,EACV,gBAAgB,CAAC;IACf,UAAU,EAAE,oBAAoB;CACjC,CAAC,CACH,CAAC"}
@@ -0,0 +1,68 @@
1
+ import type { AppSecretsUpdateResp, DeleteAppSecretResponse, CreateSecretError, DeleteSecretError, UpdateSecretsError, SetAppSecretResponse } from "@distilled.cloud/fly-io/machines";
2
+ import * as Binding from "alchemy/Binding";
3
+ import type { RuntimeContext } from "alchemy/RuntimeContext";
4
+ import * as Effect from "effect/Effect";
5
+ import type * as Redacted from "effect/Redacted";
6
+ import type { Secret } from "./Secret.ts";
7
+ /**
8
+ * Create, update, and delete Fly.io App secrets at runtime.
9
+ *
10
+ * The App is fixed by `WriteSecret(secret)`. Calls take no
11
+ * `app_name`. Inside a {@link Machine} or {@link Service}, Alchemy
12
+ * mints an App deploy token. Inside an Action, the ambient
13
+ * `FLY_API_TOKEN` is used.
14
+ *
15
+ *
16
+ * ### Create
17
+ * Bind the client in init. Provide {@link WriteSecretHttp}. Wrap
18
+ * values with `Redacted.make`.
19
+ *
20
+ * **Example:** Create a secret
21
+ * ```typescript
22
+ * const Seed = Alchemy.Action(
23
+ * "Seed",
24
+ * Effect.gen(function* () {
25
+ * const secrets = yield* Fly.WriteSecret(ApiToken);
26
+ *
27
+ * return Effect.fn(function* () {
28
+ * yield* secrets.create("API_KEY", Redacted.make("sk_live"));
29
+ * });
30
+ * }).pipe(Effect.provide(Fly.WriteSecretHttp)),
31
+ * );
32
+ * ```
33
+ *
34
+ * ### Update
35
+ * `update` rotates by name (batch of one).
36
+ *
37
+ * **Example:** Rotate
38
+ * ```typescript
39
+ * yield* secrets.update("API_KEY", Redacted.make("sk_live_rotated"));
40
+ * ```
41
+ *
42
+ * ### Delete
43
+ * `delete` removes a secret by name.
44
+ *
45
+ * **Example:** Delete
46
+ * ```typescript
47
+ * yield* secrets.delete("API_KEY");
48
+ * ```
49
+ *
50
+ * @binding
51
+ * @product Secret
52
+ */
53
+ export interface WriteSecret extends Binding.Service<WriteSecret, "Fly.WriteSecret", (secret: Secret) => Effect.Effect<WriteSecretClient>> {
54
+ }
55
+ export declare const WriteSecret: WriteSecret;
56
+ /**
57
+ * Mutating App secret operations. The App is fixed when the client is
58
+ * bound, so no `app_name` is passed per call.
59
+ */
60
+ export interface WriteSecretClient {
61
+ /** Create or upsert a secret by name. */
62
+ create(name: string, value: Redacted.Redacted<string> | string): Effect.Effect<SetAppSecretResponse, CreateSecretError, RuntimeContext>;
63
+ /** Update secrets by name (batch of one). */
64
+ update(name: string, value: Redacted.Redacted<string> | string): Effect.Effect<AppSecretsUpdateResp, UpdateSecretsError, RuntimeContext>;
65
+ /** Delete a secret by name. */
66
+ delete(name: string): Effect.Effect<DeleteAppSecretResponse, DeleteSecretError, RuntimeContext>;
67
+ }
68
+ //# sourceMappingURL=WriteSecret.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WriteSecret.d.ts","sourceRoot":"","sources":["../src/WriteSecret.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EACpB,uBAAuB,EACvB,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,oBAAoB,EACrB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,KAAK,OAAO,MAAM,iBAAiB,CAAC;AAC3C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,KAAK,QAAQ,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE1C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AACH,MAAM,WAAW,WAAY,SAAQ,OAAO,CAAC,OAAO,CAClD,WAAW,EACX,iBAAiB,EACjB,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAAC,CACrD;CAAG;AAEJ,eAAO,MAAM,WAAW,aAAkD,CAAC;AAE3E;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,yCAAyC;IACzC,MAAM,CACJ,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,MAAM,GACxC,MAAM,CAAC,MAAM,CAAC,oBAAoB,EAAE,iBAAiB,EAAE,cAAc,CAAC,CAAC;IAC1E,6CAA6C;IAC7C,MAAM,CACJ,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,MAAM,GACxC,MAAM,CAAC,MAAM,CAAC,oBAAoB,EAAE,kBAAkB,EAAE,cAAc,CAAC,CAAC;IAC3E,+BAA+B;IAC/B,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,uBAAuB,EAAE,iBAAiB,EAAE,cAAc,CAAC,CAAC;CACjG"}
@@ -0,0 +1,4 @@
1
+ import * as Binding from "alchemy/Binding";
2
+ import * as Effect from "effect/Effect";
3
+ export const WriteSecret = Binding.Service("Fly.WriteSecret");
4
+ //# sourceMappingURL=WriteSecret.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WriteSecret.js","sourceRoot":"","sources":["../src/WriteSecret.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,OAAO,MAAM,iBAAiB,CAAC;AAE3C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAwDxC,MAAM,CAAC,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,CAAc,iBAAiB,CAAC,CAAC"}
@@ -0,0 +1,26 @@
1
+ import * as Effect from "effect/Effect";
2
+ import * as Layer from "effect/Layer";
3
+ import { type SecretAuth } from "./SecretHttp.ts";
4
+ import { WriteSecret, type WriteSecretClient } from "./WriteSecret.ts";
5
+ /**
6
+ * HTTP implementation of {@link WriteSecret}. Provide it on the
7
+ * {@link Service} or Action Effect.
8
+ *
9
+ *
10
+ * ### Provide the layer
11
+ * **Example:** On an Action
12
+ * ```typescript
13
+ * Effect.gen(function* () {
14
+ * const secrets = yield* Fly.WriteSecret(ApiToken);
15
+ * // ...
16
+ * }).pipe(Effect.provide(Fly.WriteSecretHttp))
17
+ * ```
18
+ *
19
+ * @layer
20
+ * @product Secret
21
+ * @provides Fly.WriteSecret
22
+ */
23
+ export declare const WriteSecretHttp: Layer.Layer<WriteSecret, never, never>;
24
+ /** Build the write client over an injectable auth and App name. */
25
+ export declare const secretWriteClient: (auth: SecretAuth, appName: Effect.Effect<string>, _secretName: Effect.Effect<string>) => WriteSecretClient;
26
+ //# sourceMappingURL=WriteSecretHttp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WriteSecretHttp.d.ts","sourceRoot":"","sources":["../src/WriteSecretHttp.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAGtC,OAAO,EAAE,KAAK,UAAU,EAA4C,MAAM,iBAAiB,CAAC;AAC5F,OAAO,EAAE,WAAW,EAAE,KAAK,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAEvE;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,eAAe,wCAO4D,CAAC;AAEzF,mEAAmE;AACnE,eAAO,MAAM,iBAAiB,SACtB,UAAU,WACP,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,eACjB,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,KACjC,iBA6BF,CAAC"}
@@ -0,0 +1,54 @@
1
+ import * as machines from "@distilled.cloud/fly-io/machines";
2
+ import * as Effect from "effect/Effect";
3
+ import * as FetchHttpClient from "effect/http/FetchHttpClient";
4
+ import * as Layer from "effect/Layer";
5
+ import { CredentialsFromAmbientOrEnv } from "./Credentials.js";
6
+ import { makeHttpSecretBinding, unwrapSecretValue } from "./SecretHttp.js";
7
+ import { WriteSecret } from "./WriteSecret.js";
8
+ /**
9
+ * HTTP implementation of {@link WriteSecret}. Provide it on the
10
+ * {@link Service} or Action Effect.
11
+ *
12
+ *
13
+ * ### Provide the layer
14
+ * **Example:** On an Action
15
+ * ```typescript
16
+ * Effect.gen(function* () {
17
+ * const secrets = yield* Fly.WriteSecret(ApiToken);
18
+ * // ...
19
+ * }).pipe(Effect.provide(Fly.WriteSecretHttp))
20
+ * ```
21
+ *
22
+ * @layer
23
+ * @product Secret
24
+ * @provides Fly.WriteSecret
25
+ */
26
+ export const WriteSecretHttp = Layer.effect(WriteSecret, Effect.suspend(() => makeHttpSecretBinding({
27
+ makeClient: secretWriteClient,
28
+ }))).pipe(Layer.provide(FetchHttpClient.layer), Layer.provide(CredentialsFromAmbientOrEnv));
29
+ /** Build the write client over an injectable auth and App name. */
30
+ export const secretWriteClient = (auth, appName, _secretName) => {
31
+ const authorize = auth.authorize;
32
+ return {
33
+ create: Effect.fn("Fly.Secret.create")(function* (name, value) {
34
+ return yield* authorize(machines.createSecret({
35
+ app_name: yield* appName,
36
+ secret_name: name,
37
+ value: unwrapSecretValue(value),
38
+ }));
39
+ }),
40
+ update: Effect.fn("Fly.Secret.update")(function* (name, value) {
41
+ return yield* authorize(machines.updateSecrets({
42
+ app_name: yield* appName,
43
+ values: { [name]: unwrapSecretValue(value) },
44
+ }));
45
+ }),
46
+ delete: Effect.fn("Fly.Secret.delete")(function* (name) {
47
+ return yield* authorize(machines.deleteSecret({
48
+ app_name: yield* appName,
49
+ secret_name: name,
50
+ }));
51
+ }),
52
+ };
53
+ };
54
+ //# sourceMappingURL=WriteSecretHttp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WriteSecretHttp.js","sourceRoot":"","sources":["../src/WriteSecretHttp.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,kCAAkC,CAAC;AAC7D,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,eAAe,MAAM,6BAA6B,CAAC;AAC/D,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,2BAA2B,EAAE,MAAM,kBAAkB,CAAC;AAE/D,OAAO,EAAmB,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAC5F,OAAO,EAAE,WAAW,EAA0B,MAAM,kBAAkB,CAAC;AAEvE;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,CAAC,MAAM,CACzC,WAAW,EACX,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAClB,qBAAqB,CAA4B;IAC/C,UAAU,EAAE,iBAAiB;CAC9B,CAAC,CACH,CACF,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,2BAA2B,CAAC,CAAC,CAAC;AAEzF,mEAAmE;AACnE,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAC/B,IAAgB,EAChB,OAA8B,EAC9B,WAAkC,EACf,EAAE;IACrB,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;IACjC,OAAO;QACL,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,mBAAmB,CAAC,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,KAAK;YAC3D,OAAO,KAAK,CAAC,CAAC,SAAS,CACrB,QAAQ,CAAC,YAAY,CAAC;gBACpB,QAAQ,EAAE,KAAK,CAAC,CAAC,OAAO;gBACxB,WAAW,EAAE,IAAI;gBACjB,KAAK,EAAE,iBAAiB,CAAC,KAAK,CAAC;aAChC,CAAC,CACH,CAAC;QACJ,CAAC,CAAC;QACF,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,mBAAmB,CAAC,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,KAAK;YAC3D,OAAO,KAAK,CAAC,CAAC,SAAS,CACrB,QAAQ,CAAC,aAAa,CAAC;gBACrB,QAAQ,EAAE,KAAK,CAAC,CAAC,OAAO;gBACxB,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,iBAAiB,CAAC,KAAK,CAAC,EAAE;aAC7C,CAAC,CACH,CAAC;QACJ,CAAC,CAAC;QACF,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,mBAAmB,CAAC,CAAC,QAAQ,CAAC,EAAE,IAAI;YACpD,OAAO,KAAK,CAAC,CAAC,SAAS,CACrB,QAAQ,CAAC,YAAY,CAAC;gBACpB,QAAQ,EAAE,KAAK,CAAC,CAAC,OAAO;gBACxB,WAAW,EAAE,IAAI;aAClB,CAAC,CACH,CAAC;QACJ,CAAC,CAAC;KACH,CAAC;AACJ,CAAC,CAAC"}