@alchemy.run/fly 0.0.0 → 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 +57 -4
  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 +83 -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,153 @@
1
+ import {
2
+ makePgMigrationExecutor,
3
+ runMigrations,
4
+ type NormalizedMigrationsInput,
5
+ type StampedMigrationsState,
6
+ } from "@alchemy.run/sql/Migrations";
7
+ import { importPg } from "@alchemy.run/sql/PostgresDriver";
8
+ import { readSqlFile } from "@alchemy.run/sql/SqlFile";
9
+ import * as Data from "effect/Data";
10
+ import * as Effect from "effect/Effect";
11
+ import * as Redacted from "effect/Redacted";
12
+ import * as Schedule from "effect/Schedule";
13
+ import type { Client } from "pg";
14
+
15
+ export class PostgresMigrationError extends Data.TaggedError("Fly.PostgresMigrationError")<{
16
+ message: string;
17
+ cause?: unknown;
18
+ }> {}
19
+
20
+ /**
21
+ * Strip query-string SSL flags so `pg-connection-string` does not treat
22
+ * `sslmode=require` as `verify-full`. TLS and certificate verification
23
+ * are set on the client (`ssl.rejectUnauthorized: true`).
24
+ */
25
+ export const stripSslQueryParams = (uri: string): string => {
26
+ try {
27
+ const url = new URL(uri);
28
+ url.searchParams.delete("sslmode");
29
+ url.searchParams.delete("channel_binding");
30
+ return url.toString();
31
+ } catch {
32
+ return uri;
33
+ }
34
+ };
35
+
36
+ const toMigrationError = (cause: unknown) =>
37
+ new PostgresMigrationError({
38
+ message: cause instanceof Error ? cause.message : String(cause),
39
+ cause,
40
+ });
41
+
42
+ /**
43
+ * A freshly-provisioned Fly Managed Postgres cluster reports `ready` on the
44
+ * API before its hostname is resolvable and its endpoint accepts
45
+ * connections — reconcile's first migration connect can fail with
46
+ * `ENOTFOUND` (DNS still propagating) or a refused/reset socket. These are
47
+ * eventual consistency, not failures: retry the connect on a bounded
48
+ * schedule (~45s) before surfacing the error.
49
+ */
50
+ const TRANSIENT_CONNECT_CODES = new Set([
51
+ "ENOTFOUND",
52
+ "EAI_AGAIN",
53
+ "ECONNREFUSED",
54
+ "ECONNRESET",
55
+ "ETIMEDOUT",
56
+ ]);
57
+
58
+ const isTransientConnectError = (error: PostgresMigrationError): boolean => {
59
+ const code = (error.cause as { code?: unknown } | null | undefined)?.code;
60
+ return typeof code === "string" && TRANSIENT_CONNECT_CODES.has(code);
61
+ };
62
+
63
+ /** Open a pg client for the scope of `use`, closing it afterwards. */
64
+ export const withPgClient = <A, E, R>(
65
+ connectionUri: Redacted.Redacted<string>,
66
+ use: (client: Client) => Effect.Effect<A, E, R>,
67
+ ): Effect.Effect<A, PostgresMigrationError | E, R> =>
68
+ Effect.acquireUseRelease(
69
+ Effect.tryPromise({
70
+ try: async () => {
71
+ const { Client } = await importPg();
72
+ const client = new Client({
73
+ connectionString: connectionUri.pipe(Redacted.value, stripSslQueryParams),
74
+ ssl: { rejectUnauthorized: true },
75
+ });
76
+ await client.connect();
77
+ return client;
78
+ },
79
+ catch: toMigrationError,
80
+ }).pipe(
81
+ Effect.retry({
82
+ while: isTransientConnectError,
83
+ schedule: Schedule.spaced("3 seconds"),
84
+ times: 15,
85
+ }),
86
+ // Still unreachable after the bounded retry: almost always a missing
87
+ // route rather than propagation — MPG hostnames only exist on the org
88
+ // private network. Say so instead of a bare `getaddrinfo ENOTFOUND`.
89
+ Effect.mapError((error) =>
90
+ isTransientConnectError(error)
91
+ ? new PostgresMigrationError({
92
+ message:
93
+ `${error.message} — Fly Managed Postgres is only reachable ` +
94
+ "on the org's private network. Run the deploy behind a " +
95
+ "WireGuard peer or `fly mpg proxy`, or from a machine on " +
96
+ "6PN. See https://fly.io/docs/mpg/create-and-connect/",
97
+ cause: error.cause,
98
+ })
99
+ : error,
100
+ ),
101
+ ),
102
+ use,
103
+ (client) => Effect.promise(() => client.end().catch(() => {})),
104
+ );
105
+
106
+ /**
107
+ * Fly Managed Postgres's migration adaptation is the shared pipeline
108
+ * with a connection-URI-scoped pg client as its executor. Use the
109
+ * direct (non-PgBouncer) URI so DDL and advisory locks work.
110
+ */
111
+ export const runPgMigrations = (options: {
112
+ connectionUri: Redacted.Redacted<string>;
113
+ input: NormalizedMigrationsInput;
114
+ stamped: StampedMigrationsState;
115
+ }) =>
116
+ runMigrations({
117
+ ...options,
118
+ withExecutor: (apply) =>
119
+ withPgClient(options.connectionUri, (client) => apply(makePgMigrationExecutor(client))),
120
+ });
121
+
122
+ /** Run a single SQL script against the database (used for `importFiles`). */
123
+ export const runSql = (connectionUri: Redacted.Redacted<string>, sql: string) =>
124
+ withPgClient(connectionUri, (client) =>
125
+ Effect.tryPromise({
126
+ try: () => client.query(sql),
127
+ catch: toMigrationError,
128
+ }),
129
+ ).pipe(Effect.asVoid);
130
+
131
+ export const runImports = (
132
+ connectionUri: Redacted.Redacted<string>,
133
+ importFiles: ReadonlyArray<string>,
134
+ rootDir: string,
135
+ previous: Record<string, string>,
136
+ ) =>
137
+ Effect.gen(function* () {
138
+ const hashes: Record<string, string> = { ...previous };
139
+ for (const filePath of importFiles) {
140
+ const file = yield* readSqlFile(rootDir, filePath);
141
+ if (previous[filePath] === file.hash) {
142
+ hashes[filePath] = file.hash;
143
+ continue;
144
+ }
145
+ yield* runSql(connectionUri, file.sql);
146
+ hashes[filePath] = file.hash;
147
+ }
148
+ const tracked = new Set(importFiles);
149
+ for (const key of Object.keys(hashes)) {
150
+ if (!tracked.has(key)) delete hashes[key];
151
+ }
152
+ return hashes;
153
+ });
@@ -0,0 +1,155 @@
1
+ import { CredentialsStoreLive } from "alchemy/Auth/Credentials";
2
+ import { ProfileStoreLive } from "alchemy/Auth/Profile";
3
+ import * as Command from "alchemy/Command";
4
+ import * as Provider from "alchemy/Provider";
5
+ import { Random, RandomProvider } from "alchemy/Random";
6
+ import {
7
+ Server as WebsiteServer,
8
+ ServerProvider as WebsiteServerProvider,
9
+ } from "alchemy/Website/Server";
10
+ import * as FetchHttpClient from "effect/http/FetchHttpClient";
11
+ import * as Layer from "effect/Layer";
12
+ import { App, AppProvider } from "./App.ts";
13
+ import { FlyAuth } from "./AuthProvider.ts";
14
+ import { Bucket, BucketProvider } from "./Bucket.ts";
15
+ import { Certificate, CertificateProvider } from "./Certificate.ts";
16
+ import { CheckpointHttp } from "./CheckpointHttp.ts";
17
+ import { ConnectPostgresHttp } from "./ConnectPostgresHttp.ts";
18
+ import * as Credentials from "./Credentials.ts";
19
+ import { DecryptHttp } from "./DecryptHttp.ts";
20
+ import { DeleteObjectHttp } from "./DeleteObjectHttp.ts";
21
+ import { EncryptHttp } from "./EncryptHttp.ts";
22
+ import { fromCredentials } from "./Environment.ts";
23
+ import { ExecHttp } from "./ExecHttp.ts";
24
+ import { GetObjectHttp } from "./GetObjectHttp.ts";
25
+ import { GetSecretHttp } from "./GetSecretHttp.ts";
26
+ import { HeadObjectHttp } from "./HeadObjectHttp.ts";
27
+ import { IpAssignment, IpAssignmentProvider } from "./IpAssignment.ts";
28
+ import { ListObjectsV2Http } from "./ListObjectsV2Http.ts";
29
+ import { ListSecretsHttp } from "./ListSecretsHttp.ts";
30
+ import { Machine, MachineProvider } from "./Machine.ts";
31
+ import { MountVolumeLive } from "./MountVolume.ts";
32
+ import { Postgres, PostgresProvider } from "./Postgres.ts";
33
+ import { PutObjectHttp } from "./PutObjectHttp.ts";
34
+ import { ReadRedisHttp } from "./ReadRedisHttp.ts";
35
+ import { ReadWriteRedisHttp } from "./ReadWriteRedisHttp.ts";
36
+ import { Redis, RedisProvider } from "./Redis.ts";
37
+ import { Secret, SecretProvider } from "./Secret.ts";
38
+ import { SecretKey, SecretKeyProvider } from "./SecretKey.ts";
39
+ import { Service, ServiceProvider } from "./Service.ts";
40
+ import { SignHttp } from "./SignHttp.ts";
41
+ import { Sprite, SpriteProvider } from "./Sprite.ts";
42
+ import { VerifyHttp } from "./VerifyHttp.ts";
43
+ import { VolumeSnapshot, VolumeSnapshotProvider } from "./VolumeSnapshot.ts";
44
+ import { AssetDeployment, AssetDeploymentProvider } from "./Website/AssetDeployment.ts";
45
+ import { WriteCertificatesHttp } from "./WriteCertificatesHttp.ts";
46
+ import { WriteRedisHttp } from "./WriteRedisHttp.ts";
47
+ import { WriteSecretHttp } from "./WriteSecretHttp.ts";
48
+
49
+ export class Providers extends Provider.ProviderCollection<Providers>()("Fly") {}
50
+
51
+ export type ProviderRequirements = Layer.Services<ReturnType<typeof providers>>;
52
+
53
+ /**
54
+ * Build a layer that registers Fly resource providers, the Fly
55
+ * `AuthProvider`, the resolved `Credentials`, and an `HttpClient`. Include
56
+ * this from your stack alongside other cloud `providers()` layers.
57
+ *
58
+ * Resource providers are inserted into {@link Provider.collection} as they
59
+ * land. The collection starts empty so App / Machine / Service agents can
60
+ * make a single minimal insertion.
61
+ *
62
+ * @example
63
+ * ```typescript
64
+ * import * as Alchemy from "alchemy";
65
+ * import * as Fly from "@alchemy.run/fly";
66
+ * import * as Effect from "effect/Effect";
67
+ *
68
+ * export default Alchemy.Stack(
69
+ * "MyStack",
70
+ * {
71
+ * providers: Fly.providers(),
72
+ * state: Alchemy.localState(),
73
+ * },
74
+ * Effect.gen(function* () {
75
+ * return {};
76
+ * }),
77
+ * );
78
+ * ```
79
+ */
80
+ export const providers = () =>
81
+ Layer.effect(
82
+ Providers,
83
+ Provider.collection([
84
+ App,
85
+ AssetDeployment,
86
+ Bucket,
87
+ Certificate,
88
+ IpAssignment,
89
+ Machine,
90
+ Postgres,
91
+ Random,
92
+ Redis,
93
+ Secret,
94
+ SecretKey,
95
+ Service,
96
+ Sprite,
97
+ VolumeSnapshot,
98
+ WebsiteServer,
99
+ ]),
100
+ ).pipe(
101
+ Layer.provide(
102
+ Layer.mergeAll(
103
+ AppProvider(),
104
+ AssetDeploymentProvider(),
105
+ BucketProvider(),
106
+ CertificateProvider(),
107
+ IpAssignmentProvider(),
108
+ MachineProvider(),
109
+ PostgresProvider(),
110
+ RandomProvider(),
111
+ RedisProvider(),
112
+ SecretProvider(),
113
+ SecretKeyProvider(),
114
+ ServiceProvider(),
115
+ SpriteProvider(),
116
+ VolumeSnapshotProvider(),
117
+ WebsiteServerProvider(),
118
+ ),
119
+ ),
120
+ // The binding layers are mutually independent — they all draw on the
121
+ // Credentials/HttpClient layers below. Merge them into one group so
122
+ // `.pipe` stays under its 20-argument overload ceiling.
123
+ Layer.provideMerge(
124
+ Layer.mergeAll(
125
+ MountVolumeLive,
126
+ ConnectPostgresHttp,
127
+ PutObjectHttp,
128
+ GetObjectHttp,
129
+ DeleteObjectHttp,
130
+ HeadObjectHttp,
131
+ ListObjectsV2Http,
132
+ ReadRedisHttp,
133
+ WriteRedisHttp,
134
+ ReadWriteRedisHttp,
135
+ CheckpointHttp,
136
+ ExecHttp,
137
+ GetSecretHttp,
138
+ ListSecretsHttp,
139
+ WriteSecretHttp,
140
+ WriteCertificatesHttp,
141
+ EncryptHttp,
142
+ DecryptHttp,
143
+ SignHttp,
144
+ VerifyHttp,
145
+ ),
146
+ ),
147
+ Layer.provideMerge(fromCredentials()),
148
+ Layer.provideMerge(Credentials.fromAuthProvider()),
149
+ Layer.provideMerge(FlyAuth),
150
+ Layer.provideMerge(ProfileStoreLive),
151
+ Layer.provideMerge(CredentialsStoreLive),
152
+ Layer.provideMerge(FetchHttpClient.layer),
153
+ Layer.provideMerge(Command.providers()),
154
+ Layer.orDie,
155
+ );
@@ -0,0 +1,49 @@
1
+ import type * as S3 from "@distilled.cloud/aws/s3";
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 { Bucket } from "./Bucket.ts";
6
+ import type { TigrisCredentialsMissing } from "./Errors.ts";
7
+
8
+ export interface PutObjectRequest extends Omit<S3.PutObjectRequest, "Bucket"> {}
9
+
10
+ /**
11
+ * Runtime binding for Tigris `PutObject` over the S3 API.
12
+ *
13
+ * Bind this operation to a {@link Bucket} in Service init. The Tigris
14
+ * bucket name, endpoint, and credentials are injected automatically.
15
+ * Provide {@link PutObjectHttp}.
16
+ *
17
+ *
18
+ * ### Writing Objects
19
+ * **Example:** Put an Object
20
+ * ```typescript
21
+ * const putObject = yield* Fly.PutObject(Data);
22
+ *
23
+ * yield* putObject({
24
+ * Key: "hello.txt",
25
+ * Body: "Hello, world!",
26
+ * ContentType: "text/plain",
27
+ * });
28
+ * ```
29
+ *
30
+ * @binding
31
+ * @product Bucket
32
+ */
33
+ export interface PutObject extends Binding.Service<
34
+ PutObject,
35
+ "Fly.PutObject",
36
+ (
37
+ bucket: Bucket,
38
+ ) => Effect.Effect<
39
+ (
40
+ request: PutObjectRequest,
41
+ ) => Effect.Effect<
42
+ S3.PutObjectOutput,
43
+ S3.PutObjectError | TigrisCredentialsMissing,
44
+ RuntimeContext
45
+ >
46
+ >
47
+ > {}
48
+
49
+ export const PutObject = Binding.Service<PutObject>("Fly.PutObject");
@@ -0,0 +1,20 @@
1
+ import * as S3 from "@distilled.cloud/aws/s3";
2
+ import * as Layer from "effect/Layer";
3
+ import { makeTigrisS3Binding } from "./BucketBinding.ts";
4
+ import { PutObject } from "./PutObject.ts";
5
+
6
+ /**
7
+ * HTTP implementation of {@link PutObject}. Calls distilled S3
8
+ * `putObject` against the Tigris endpoint with the bucket's credentials.
9
+ *
10
+ * @layer
11
+ * @product Bucket
12
+ * @provides Fly.PutObject
13
+ */
14
+ export const PutObjectHttp = Layer.effect(
15
+ PutObject,
16
+ makeTigrisS3Binding({
17
+ tag: "Fly.PutObject",
18
+ operation: S3.putObject,
19
+ }),
20
+ );
@@ -0,0 +1,31 @@
1
+ import type { ReadClient } 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
+ /**
7
+ * Bind a {@link Redis} database with read access (`get`, `ping`).
8
+ *
9
+ * `ReadRedis` is the Context tag, the type, and the callable —
10
+ * `yield* Fly.ReadRedis(Cache)`. Provide {@link ReadRedisHttp}.
11
+ *
12
+ *
13
+ * ### Read
14
+ * **Example:** Get a key
15
+ * ```typescript
16
+ * const cache = yield* Fly.ReadRedis(Cache);
17
+ * const value = yield* cache.get("marker");
18
+ * ```
19
+ *
20
+ * @binding
21
+ * @product Redis
22
+ */
23
+ export interface ReadRedis extends Binding.Service<
24
+ ReadRedis,
25
+ "Fly.ReadRedis",
26
+ (redis: Redis) => Effect.Effect<ReadRedisClient>
27
+ > {}
28
+
29
+ export const ReadRedis = Binding.Service<ReadRedis>("Fly.ReadRedis");
30
+
31
+ export type ReadRedisClient = ReadClient;
@@ -0,0 +1,18 @@
1
+ import * as Layer from "effect/Layer";
2
+ import { ReadRedis } from "./ReadRedis.ts";
3
+ import { makeRedisBinding } from "./RedisBinding.ts";
4
+ import { makeReadRedisClient } from "./RedisHttp.ts";
5
+
6
+ /**
7
+ * HTTP implementation of {@link ReadRedis}.
8
+ *
9
+ * @layer
10
+ * @product Redis
11
+ * @provides Fly.ReadRedis
12
+ */
13
+ export const ReadRedisHttp = Layer.effect(
14
+ ReadRedis,
15
+ makeRedisBinding({
16
+ makeClient: makeReadRedisClient,
17
+ }),
18
+ );
@@ -0,0 +1,33 @@
1
+ import * as Binding from "alchemy/Binding";
2
+ import type * as Effect from "effect/Effect";
3
+ import type { ReadRedisClient } from "./ReadRedis.ts";
4
+ import type { Redis } from "./Redis.ts";
5
+ import type { WriteRedisClient } from "./WriteRedis.ts";
6
+
7
+ /**
8
+ * Bind a {@link Redis} database with read + write access.
9
+ *
10
+ * `ReadWriteRedis` is the Context tag, the type, and the callable —
11
+ * `yield* Fly.ReadWriteRedis(Cache)`. Provide {@link ReadWriteRedisHttp}.
12
+ *
13
+ *
14
+ * ### Read and write
15
+ * **Example:** Round-trip a key
16
+ * ```typescript
17
+ * const cache = yield* Fly.ReadWriteRedis(Cache);
18
+ * yield* cache.set("marker", "hello");
19
+ * const value = yield* cache.get("marker");
20
+ * ```
21
+ *
22
+ * @binding
23
+ * @product Redis
24
+ */
25
+ export interface ReadWriteRedis extends Binding.Service<
26
+ ReadWriteRedis,
27
+ "Fly.ReadWriteRedis",
28
+ (redis: Redis) => Effect.Effect<ReadWriteRedisClient>
29
+ > {}
30
+
31
+ export const ReadWriteRedis = Binding.Service<ReadWriteRedis>("Fly.ReadWriteRedis");
32
+
33
+ export interface ReadWriteRedisClient extends ReadRedisClient, WriteRedisClient {}
@@ -0,0 +1,18 @@
1
+ import * as Layer from "effect/Layer";
2
+ import { ReadWriteRedis } from "./ReadWriteRedis.ts";
3
+ import { makeRedisBinding } from "./RedisBinding.ts";
4
+ import { makeReadWriteRedisClient } from "./RedisHttp.ts";
5
+
6
+ /**
7
+ * HTTP implementation of {@link ReadWriteRedis}.
8
+ *
9
+ * @layer
10
+ * @product Redis
11
+ * @provides Fly.ReadWriteRedis
12
+ */
13
+ export const ReadWriteRedisHttp = Layer.effect(
14
+ ReadWriteRedis,
15
+ makeRedisBinding({
16
+ makeClient: makeReadWriteRedisClient,
17
+ }),
18
+ );