@alchemy.run/fly 0.0.0 → 2.0.0-beta.85

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 +338 -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 +55 -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 +20 -0
  176. package/lib/PostgresMigrations.d.ts.map +1 -0
  177. package/lib/PostgresMigrations.js +58 -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 +611 -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 +11 -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 +1017 -0
  240. package/lib/Service.d.ts.map +1 -0
  241. package/lib/Service.js +1430 -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 +471 -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 +89 -0
  280. package/lib/Website/Astro.d.ts.map +1 -0
  281. package/lib/Website/Astro.js +54 -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 +212 -0
  288. package/lib/Website/FrameworkSite.d.ts.map +1 -0
  289. package/lib/Website/FrameworkSite.js +205 -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 +162 -0
  312. package/lib/Website/StaticSite.d.ts.map +1 -0
  313. package/lib/Website/StaticSite.js +180 -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 +112 -0
  328. package/lib/Website/Vite.d.ts.map +1 -0
  329. package/lib/Website/Vite.js +100 -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 +460 -0
  370. package/lib/bluegreen.js.map +1 -0
  371. package/lib/hosted.d.ts +171 -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 +158 -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 +514 -0
  401. package/src/AuthProvider.ts +68 -0
  402. package/src/BindService.ts +303 -0
  403. package/src/Bootstrap.ts +66 -0
  404. package/src/Bucket.ts +918 -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 +75 -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 +1270 -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 +93 -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 +823 -0
  452. package/src/RedisBinding.ts +64 -0
  453. package/src/RedisHttp.ts +14 -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 +1968 -0
  460. package/src/Sign.ts +46 -0
  461. package/src/SignHttp.ts +44 -0
  462. package/src/Sprite.ts +673 -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 +292 -0
  469. package/src/Website/Astro.ts +92 -0
  470. package/src/Website/Foldkit.ts +54 -0
  471. package/src/Website/FrameworkSite.ts +449 -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 +295 -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 +121 -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 +711 -0
  492. package/src/globals.d.ts +2 -0
  493. package/src/hosted.ts +667 -0
  494. package/src/index.ts +64 -0
  495. package/src/internal/RemoteBuilder.ts +242 -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 @@
1
+ {"version":3,"file":"Redis.d.ts","sourceRoot":"","sources":["../src/Redis.ts"],"names":[],"mappings":"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"}
package/lib/Redis.js ADDED
@@ -0,0 +1,611 @@
1
+ import * as addons from "@distilled.cloud/fly-io/addons";
2
+ import * as machines from "@distilled.cloud/fly-io/machines";
3
+ import { Unowned } from "alchemy/AdoptPolicy";
4
+ import { deepEqual, isResolved } from "alchemy/Diff";
5
+ import * as Provider from "alchemy/Provider";
6
+ import { Resource } from "alchemy/Resource";
7
+ import * as Data from "effect/Data";
8
+ import * as Duration from "effect/Duration";
9
+ import * as Effect from "effect/Effect";
10
+ import * as Redacted from "effect/Redacted";
11
+ import * as Result from "effect/Result";
12
+ import * as Schedule from "effect/Schedule";
13
+ import { resolveOrgSlug } from "./Environment.js";
14
+ import { createFlyAppName, matchesAlchemyPhysicalName, sanitizeFlyAppName } from "./Metadata.js";
15
+ export const DEFAULT_REDIS_REGION = "iad";
16
+ export const REDIS_ADDON_TYPE = "upstash_redis";
17
+ export const REDIS_PROVIDER = "upstash_redis";
18
+ export const REDIS_URL_ENV = "REDIS_URL";
19
+ // Re-export from the defining module, not the `@alchemy.run/redis` barrel:
20
+ // rolldown's lazyBarrel rejects an unused re-export from an `export *` barrel
21
+ // (https://github.com/rolldown/rolldown/issues/11344).
22
+ export { CommandError as RedisCommandError, UrlMissing as RedisUrlMissing, } from "@alchemy.run/redis/Errors";
23
+ /**
24
+ * Managed Upstash Redis in a Fly org. Bind {@link ReadRedis},
25
+ * {@link WriteRedis}, or {@link ReadWriteRedis} on a {@link Service}.
26
+ * Alchemy transports the redacted `url` Output to the runtime client
27
+ * and also writes `REDIS_URL` as an App secret for compatibility.
28
+ * Redis is not reachable from CI — drive it over HTTP.
29
+ *
30
+ * @see https://fly.io/docs/upstash/redis/
31
+ *
32
+ * ### Create Redis
33
+ * Alchemy generates a unique name unless you pass one. Default region is
34
+ * `iad`. Default plan is the cheapest `addOnPlans` row (free or
35
+ * pay-as-you-go).
36
+ *
37
+ * **Example:** Generated name
38
+ * ```typescript
39
+ * const cache = yield* Fly.Redis("Cache");
40
+ * ```
41
+ *
42
+ * :::note
43
+ * Prefer omitting `name` in tests and CI so names stay unique and
44
+ * reclaimable.
45
+ * :::
46
+ *
47
+ * ### A stable name
48
+ * Pass `name` when you want a stable Upstash database name.
49
+ *
50
+ * **Example:** Explicit name
51
+ * ```typescript
52
+ * const cache = yield* Fly.Redis("Cache", {
53
+ * name: "my-cache",
54
+ * primaryRegion: "iad",
55
+ * });
56
+ * ```
57
+ *
58
+ * :::caution[Changing `name` replaces Redis]
59
+ * Fly cannot rename an add-on. Alchemy deletes the old database first,
60
+ * then creates the new one.
61
+ * :::
62
+ *
63
+ * :::caution[Changing `primaryRegion` replaces Redis]
64
+ * The primary region is immutable. The old database is deleted first
65
+ * because the name cannot exist twice.
66
+ * :::
67
+ *
68
+ * ### Bind from a Service
69
+ * Yield {@link ReadWriteRedis} (or {@link ReadRedis} / {@link WriteRedis})
70
+ * in Service init. Provide the matching `*Http` layer.
71
+ *
72
+ * **Example:** Read and write
73
+ * ```typescript
74
+ * import * as HttpServerResponse from "effect/http/HttpServerResponse";
75
+ *
76
+ * const Cache = Fly.Redis("Cache");
77
+ *
78
+ * export default class Api extends Fly.Service<Api>()(
79
+ * "Api",
80
+ * { app: Site, main: import.meta.url, port: 3000 },
81
+ * Effect.gen(function* () {
82
+ * const cache = yield* Fly.ReadWriteRedis(Cache);
83
+ * return {
84
+ * fetch: Effect.gen(function* () {
85
+ * yield* cache.set("marker", "hello");
86
+ * const value = yield* cache.get("marker");
87
+ * return HttpServerResponse.json({ value });
88
+ * }),
89
+ * };
90
+ * }).pipe(Effect.provide(Fly.ReadWriteRedisHttp)),
91
+ * ) {}
92
+ * ```
93
+ *
94
+ * ### Eviction
95
+ * Enable eviction for cache workloads. Updated in place.
96
+ *
97
+ * **Example:** Eviction
98
+ * ```typescript
99
+ * const cache = yield* Fly.Redis("Cache", {
100
+ * eviction: true,
101
+ * });
102
+ * ```
103
+ *
104
+ * ### Read replicas
105
+ * `readRegions` are extra replica regions. Updated in place.
106
+ *
107
+ * **Example:** Replica region
108
+ * ```typescript
109
+ * const cache = yield* Fly.Redis("Cache", {
110
+ * primaryRegion: "iad",
111
+ * readRegions: ["sjc"],
112
+ * });
113
+ * ```
114
+ *
115
+ * ### Plan
116
+ * Omit `plan` for the cheapest listed plan. Pass a plan id or display
117
+ * name to pin one. Fixed plans are billed.
118
+ *
119
+ * **Example:** Pin pay-as-you-go
120
+ * ```typescript
121
+ * const cache = yield* Fly.Redis("Cache", {
122
+ * plan: "Pay-as-you-go",
123
+ * });
124
+ * ```
125
+ *
126
+ * :::caution[Fixed plans are billed]
127
+ * Fixed plans are billed monthly. Prefer omitting `plan` unless you
128
+ * need a specific size.
129
+ * :::
130
+ *
131
+ * @resource
132
+ * @product Redis
133
+ */
134
+ export const Redis = Resource("Fly.Redis");
135
+ export class RedisNotCreated extends Data.TaggedError("Fly.RedisNotCreated") {
136
+ }
137
+ export class RedisPlanNotFound extends Data.TaggedError("Fly.RedisPlanNotFound") {
138
+ }
139
+ export class RedisOrgMissing extends Data.TaggedError("Fly.RedisOrgMissing") {
140
+ }
141
+ class RedisPending extends Data.TaggedError("Fly.RedisPending") {
142
+ }
143
+ const backoff = Schedule.min([
144
+ Schedule.exponential(Duration.millis(500), 1.5),
145
+ Schedule.spaced(Duration.seconds(5)),
146
+ ]);
147
+ const unwrapSensitive = (value) => {
148
+ if (value == null)
149
+ return undefined;
150
+ return Redacted.isRedacted(value) ? Redacted.value(value) : value;
151
+ };
152
+ const recordOf = (value) => {
153
+ if (value != null && typeof value === "object" && !Array.isArray(value)) {
154
+ return { ...value };
155
+ }
156
+ return {};
157
+ };
158
+ const stringRecordOf = (value) => Object.fromEntries(Object.entries(recordOf(value)).flatMap(([key, item]) => typeof item === "string" && item.length > 0 ? [[key, item]] : []));
159
+ const evictionOf = (options) => {
160
+ const value = recordOf(options).eviction;
161
+ return typeof value === "boolean" ? value : undefined;
162
+ };
163
+ const sorted = (regions) => [...(regions ?? [])].sort();
164
+ const pendingStatus = (status) => {
165
+ if (status == null || status.length === 0)
166
+ return false;
167
+ const value = status.toLowerCase();
168
+ return (value === "pending" || value === "provisioning" || value === "creating" || value === "launching");
169
+ };
170
+ const failedStatus = (status) => {
171
+ if (status == null)
172
+ return false;
173
+ const value = status.toLowerCase();
174
+ return value === "error" || value === "failed" || value === "destroyed";
175
+ };
176
+ const isLegacyPlanName = (plan) => {
177
+ const normalized = (plan.displayName ?? plan.name ?? "").toLowerCase().replaceAll(" ", "_");
178
+ return (normalized === "pro_2k" ||
179
+ normalized === "pro_10k" ||
180
+ normalized === "starter" ||
181
+ normalized === "standard");
182
+ };
183
+ export const isFixedRedisPlan = (plan) => {
184
+ const display = (plan.displayName ?? "").toLowerCase();
185
+ const name = (plan.name ?? "").toLowerCase();
186
+ return display.startsWith("fixed ") || name.startsWith("flyio_fixed_");
187
+ };
188
+ const hasAlchemyMetadata = (metadata) => {
189
+ const tags = stringRecordOf(metadata);
190
+ const stack = tags["alchemy::stack"] ?? tags["alchemy.stack"];
191
+ return stack !== undefined && stack.length > 0;
192
+ };
193
+ const isOwnedRedis = (row) => matchesAlchemyPhysicalName(row.name ?? undefined) || hasAlchemyMetadata(row.metadata);
194
+ const resolveName = (id, name, existing) => Effect.gen(function* () {
195
+ if (name !== undefined)
196
+ return sanitizeFlyAppName(name);
197
+ if (existing !== undefined)
198
+ return existing;
199
+ return yield* createFlyAppName(id);
200
+ });
201
+ const urlOf = (row, previous) => {
202
+ const raw = unwrapSensitive(row.publicUrl);
203
+ if (raw !== undefined && raw.length > 0)
204
+ return Redacted.make(raw);
205
+ return previous;
206
+ };
207
+ const toAttrs = (row, fallback) => ({
208
+ redisId: row.id,
209
+ name: row.name ?? fallback.name,
210
+ primaryRegion: row.primaryRegion ?? fallback.primaryRegion,
211
+ readRegions: sorted(row.readRegions),
212
+ status: row.status ?? undefined,
213
+ planId: "addOnPlan" in row
214
+ ? (row.addOnPlan?.id ?? fallback.planId)
215
+ : fallback.planId,
216
+ planName: row.addOnPlanName ?? undefined,
217
+ privateIp: row.privateIp ?? undefined,
218
+ orgSlug: "organization" in row
219
+ ? (row.organization?.slug ?? fallback.orgSlug)
220
+ : fallback.orgSlug,
221
+ eviction: evictionOf(row.options),
222
+ url: urlOf(row, fallback.url),
223
+ });
224
+ export const listRedisAddOns = Effect.fn(function* () {
225
+ const rows = [];
226
+ let after;
227
+ for (let i = 0; i < 8; i++) {
228
+ const page = yield* addons.addOns({
229
+ type: REDIS_ADDON_TYPE,
230
+ first: 50,
231
+ after,
232
+ });
233
+ for (const edge of page.edges ?? []) {
234
+ if (edge?.node != null)
235
+ rows.push(edge.node);
236
+ }
237
+ if (!page.pageInfo.hasNextPage)
238
+ break;
239
+ after = page.pageInfo.endCursor ?? undefined;
240
+ if (after === undefined || after.length === 0)
241
+ break;
242
+ }
243
+ return rows;
244
+ });
245
+ export const listRedisPlans = Effect.fn(function* () {
246
+ const rows = [];
247
+ let after;
248
+ for (let i = 0; i < 4; i++) {
249
+ const page = yield* addons.addOnPlans({
250
+ type: REDIS_ADDON_TYPE,
251
+ first: 50,
252
+ after,
253
+ });
254
+ for (const edge of page.edges ?? []) {
255
+ if (edge?.node != null)
256
+ rows.push(edge.node);
257
+ }
258
+ if (!page.pageInfo.hasNextPage)
259
+ break;
260
+ after = page.pageInfo.endCursor ?? undefined;
261
+ if (after === undefined || after.length === 0)
262
+ break;
263
+ }
264
+ return rows;
265
+ });
266
+ export const findRedisAddOn = (input) => listRedisAddOns().pipe(Effect.map((rows) => rows.find((row) => {
267
+ if (input.id !== undefined && row.id === input.id)
268
+ return true;
269
+ if (input.name !== undefined && row.name === input.name)
270
+ return true;
271
+ return false;
272
+ })));
273
+ const cheapestPlan = (plans) => {
274
+ const usable = plans.filter((plan) => !isLegacyPlanName(plan));
275
+ const pool = usable.length > 0 ? usable : plans;
276
+ if (pool.length === 0)
277
+ return undefined;
278
+ const free = pool.filter((plan) => (plan.pricePerMonth ?? 0) === 0);
279
+ const ranked = (free.length > 0 ? free : pool).slice().sort((left, right) => {
280
+ const byPrice = (left.pricePerMonth ?? 0) - (right.pricePerMonth ?? 0);
281
+ if (byPrice !== 0)
282
+ return byPrice;
283
+ return (left.displayName ?? left.name ?? "").localeCompare(right.displayName ?? right.name ?? "");
284
+ });
285
+ const payg = ranked.find((plan) => /pay.?as.?you.?go|free/i.test(`${plan.displayName ?? ""} ${plan.name ?? ""}`));
286
+ return payg ?? ranked[0];
287
+ };
288
+ const resolvePlan = (plan, existingId) => Effect.gen(function* () {
289
+ const plans = yield* listRedisPlans();
290
+ if (plan !== undefined) {
291
+ const found = plans.find((item) => item.id === plan || item.name === plan || item.displayName === plan);
292
+ if (found === undefined) {
293
+ return yield* new RedisPlanNotFound({ plan });
294
+ }
295
+ return found;
296
+ }
297
+ if (existingId !== undefined) {
298
+ const existing = plans.find((item) => item.id === existingId);
299
+ if (existing !== undefined)
300
+ return existing;
301
+ }
302
+ const cheapest = cheapestPlan(plans);
303
+ if (cheapest === undefined) {
304
+ return yield* new RedisPlanNotFound({ plan: "default" });
305
+ }
306
+ return cheapest;
307
+ });
308
+ const resolveOrganization = (orgSlug) => addons
309
+ .organization({ slug: orgSlug })
310
+ .pipe(Effect.catchTag("FlyIoParseError", () => Effect.undefined));
311
+ const ensureTos = (orgSlug, organizationId) => Effect.gen(function* () {
312
+ const agreed = yield* addons.agreedToProviderTos({
313
+ slug: orgSlug,
314
+ providerName: REDIS_PROVIDER,
315
+ });
316
+ if (agreed === true)
317
+ return;
318
+ // Tokens without org-admin cannot write the ToS row. Create still
319
+ // succeeds when the org already agreed via flyctl.
320
+ yield* Effect.result(addons.createExtensionTosAgreement({
321
+ input: {
322
+ addOnProviderName: REDIS_PROVIDER,
323
+ organizationId,
324
+ },
325
+ }));
326
+ });
327
+ const waitUntilReady = (id, name) => findRedisAddOn({ id, name }).pipe(Effect.flatMap((row) => {
328
+ if (row === undefined) {
329
+ return Effect.fail(new RedisPending({ redisId: id, status: "missing" }));
330
+ }
331
+ if (failedStatus(row.status)) {
332
+ return Effect.fail(new RedisNotCreated({
333
+ resourceName: row.name ?? name,
334
+ errorMessage: row.errorMessage ?? row.status ?? undefined,
335
+ }));
336
+ }
337
+ if (pendingStatus(row.status)) {
338
+ return Effect.fail(new RedisPending({
339
+ redisId: id,
340
+ status: row.status ?? "provisioning",
341
+ }));
342
+ }
343
+ return Effect.succeed(row);
344
+ }), Effect.retry({
345
+ while: (error) => error._tag === "Fly.RedisPending",
346
+ times: 10,
347
+ schedule: backoff,
348
+ }), Effect.catchTag("Fly.RedisPending", () => findRedisAddOn({ id, name })));
349
+ const waitUntilGone = (id, name) => findRedisAddOn({ id, name }).pipe(Effect.map((row) => row === undefined), Effect.repeat({
350
+ schedule: Schedule.spaced("2 seconds"),
351
+ until: (gone) => gone,
352
+ times: 10,
353
+ }));
354
+ const desiredOptions = (props, plan, observed) => {
355
+ const options = recordOf(observed);
356
+ if (props.eviction !== undefined)
357
+ options.eviction = props.eviction;
358
+ if (isFixedRedisPlan(plan)) {
359
+ if (props.autoUpgrade !== undefined) {
360
+ options.auto_upgrade = props.autoUpgrade;
361
+ }
362
+ }
363
+ else {
364
+ delete options.auto_upgrade;
365
+ }
366
+ delete options.prod_pack;
367
+ return options;
368
+ };
369
+ class RedisSecretVersionMissing extends Data.TaggedError("Fly.RedisSecretVersionMissing") {
370
+ }
371
+ const redisSecretVersion = (appName, response) => {
372
+ const version = response.version ?? response.Version;
373
+ return version !== undefined && Number.isSafeInteger(version) && version >= 0
374
+ ? Effect.succeed(version)
375
+ : Effect.fail(new RedisSecretVersionMissing({ appName }));
376
+ };
377
+ /**
378
+ * Write `REDIS_URL` onto an App from attached Redis add-on names.
379
+ * Called from {@link Service} reconcile so the secret exists before
380
+ * Machines boot. Returns the highest accepted secret-version floor, or
381
+ * `undefined` when no secret was written; this is not a vault snapshot.
382
+ */
383
+ export const attachRedisSecrets = Effect.fn(function* (appName, attached) {
384
+ if (appName.length === 0 || attached.length === 0)
385
+ return undefined;
386
+ const versions = [];
387
+ for (const item of attached) {
388
+ const name = item.name;
389
+ const id = item.id;
390
+ if (name.length === 0 && (id === undefined || id.length === 0))
391
+ continue;
392
+ const row = yield* findRedisAddOn({ id, name }).pipe(Effect.flatMap((found) => found === undefined
393
+ ? Effect.fail(new RedisPending({
394
+ redisId: id ?? "",
395
+ status: "missing",
396
+ }))
397
+ : Effect.succeed(found)), Effect.retry({
398
+ while: (error) => error._tag === "Fly.RedisPending",
399
+ times: 8,
400
+ schedule: backoff,
401
+ }), Effect.catchTag("Fly.RedisPending", () => findRedisAddOn({ id, name })));
402
+ if (row === undefined) {
403
+ return yield* new RedisPending({
404
+ redisId: id ?? name,
405
+ status: "missing",
406
+ });
407
+ }
408
+ let url = unwrapSensitive(row.publicUrl);
409
+ if ((url === undefined || url.length === 0) && row.id !== undefined) {
410
+ const detail = yield* addons
411
+ .addOn({ id: row.id })
412
+ .pipe(Effect.catchTag("FlyIoParseError", () => Effect.undefined));
413
+ url = unwrapSensitive(detail?.publicUrl);
414
+ }
415
+ if (url === undefined || url.length === 0) {
416
+ return yield* new RedisPending({
417
+ redisId: row.id ?? id ?? name,
418
+ status: "credentials missing",
419
+ });
420
+ }
421
+ const value = url;
422
+ const update = machines
423
+ .updateSecrets({
424
+ app_name: appName,
425
+ values: { [REDIS_URL_ENV]: value },
426
+ })
427
+ .pipe(Effect.flatMap((response) => redisSecretVersion(appName, response)));
428
+ const version = yield* update.pipe(Effect.catchTag("NotFound", () => machines
429
+ .createSecret({
430
+ app_name: appName,
431
+ secret_name: REDIS_URL_ENV,
432
+ value,
433
+ })
434
+ .pipe(Effect.flatMap((response) => redisSecretVersion(appName, response)), Effect.catchTag("Conflict", () => update))));
435
+ versions.push(version);
436
+ }
437
+ return versions.length > 0 ? Math.max(...versions) : undefined;
438
+ });
439
+ export const RedisProvider = () => Provider.succeed(Redis, {
440
+ stables: ["redisId", "name", "primaryRegion", "orgSlug"],
441
+ diff: Effect.fn(function* ({ news, output }) {
442
+ if (news === undefined || !isResolved(news))
443
+ return undefined;
444
+ if (output === undefined)
445
+ return undefined;
446
+ const desiredName = news.name !== undefined ? sanitizeFlyAppName(news.name) : output.name;
447
+ const nameChanged = desiredName !== output.name;
448
+ const desiredRegion = news.primaryRegion ?? DEFAULT_REDIS_REGION;
449
+ const regionChanged = desiredRegion !== output.primaryRegion;
450
+ const orgChanged = news.orgSlug !== undefined && news.orgSlug !== output.orgSlug;
451
+ if (nameChanged || regionChanged || orgChanged) {
452
+ return {
453
+ action: "replace",
454
+ deleteFirst: !nameChanged,
455
+ };
456
+ }
457
+ return undefined;
458
+ }),
459
+ read: Effect.fn(function* ({ id, olds, output }) {
460
+ const name = yield* resolveName(id, olds?.name, output?.name);
461
+ const found = (output?.redisId !== undefined
462
+ ? yield* findRedisAddOn({ id: output.redisId, name: output.name })
463
+ : undefined) ?? (yield* findRedisAddOn({ name }));
464
+ if (found === undefined)
465
+ return undefined;
466
+ const attrs = toAttrs(found, {
467
+ name,
468
+ primaryRegion: olds?.primaryRegion ?? DEFAULT_REDIS_REGION,
469
+ orgSlug: olds?.orgSlug ?? output?.orgSlug,
470
+ url: output?.url,
471
+ });
472
+ if (output !== undefined)
473
+ return attrs;
474
+ return isOwnedRedis(found) ? attrs : Unowned(attrs);
475
+ }),
476
+ list: Effect.fn(function* () {
477
+ const rows = yield* listRedisAddOns();
478
+ return rows.flatMap((row) => {
479
+ if (!isOwnedRedis(row))
480
+ return [];
481
+ const name = row.name;
482
+ if (name == null || name.length === 0)
483
+ return [];
484
+ return [
485
+ toAttrs(row, {
486
+ name,
487
+ primaryRegion: row.primaryRegion ?? DEFAULT_REDIS_REGION,
488
+ }),
489
+ ];
490
+ });
491
+ }),
492
+ reconcile: Effect.fn(function* ({ id, news, output }) {
493
+ const props = news ?? {};
494
+ const name = yield* resolveName(id, props.name, output?.name);
495
+ const primaryRegion = props.primaryRegion ?? output?.primaryRegion ?? DEFAULT_REDIS_REGION;
496
+ const orgSlug = props.orgSlug ?? (yield* resolveOrgSlug());
497
+ const org = yield* resolveOrganization(orgSlug);
498
+ if (org === undefined) {
499
+ return yield* new RedisOrgMissing({ orgSlug });
500
+ }
501
+ let current = output?.redisId !== undefined
502
+ ? yield* findRedisAddOn({
503
+ id: output.redisId,
504
+ name: output.name,
505
+ })
506
+ : undefined;
507
+ if (current === undefined && (output === undefined || output.name !== name)) {
508
+ current = yield* findRedisAddOn({ name });
509
+ }
510
+ const plan = yield* resolvePlan(props.plan, current !== undefined && "addOnPlan" in current ? current.addOnPlan?.id : output?.planId);
511
+ if (current === undefined) {
512
+ yield* ensureTos(orgSlug, org.id);
513
+ const created = yield* Effect.result(addons.createAddOn({
514
+ input: {
515
+ type: REDIS_ADDON_TYPE,
516
+ name,
517
+ organizationId: org.id,
518
+ planId: plan.id,
519
+ primaryRegion,
520
+ readRegions: props.readRegions ?? [],
521
+ options: desiredOptions(props, plan, undefined),
522
+ },
523
+ }));
524
+ if (Result.isSuccess(created)) {
525
+ current = created.success.addOn;
526
+ }
527
+ else {
528
+ current = yield* findRedisAddOn({ name });
529
+ if (current === undefined) {
530
+ return yield* created.failure;
531
+ }
532
+ }
533
+ }
534
+ if (current === undefined) {
535
+ return yield* new RedisNotCreated({ resourceName: name });
536
+ }
537
+ if (pendingStatus(current.status)) {
538
+ const ready = yield* waitUntilReady(current.id, name);
539
+ if (ready !== undefined)
540
+ current = ready;
541
+ }
542
+ if (current === undefined) {
543
+ return yield* new RedisNotCreated({ resourceName: name });
544
+ }
545
+ const observedOptions = recordOf(current.options);
546
+ const nextOptions = desiredOptions(props, plan, current.options);
547
+ const nextReadRegions = sorted(props.readRegions ?? current.readRegions ?? []);
548
+ const observedReadRegions = sorted(current.readRegions);
549
+ const observedPlanId = "addOnPlan" in current ? current.addOnPlan?.id : output?.planId;
550
+ const planChanged = observedPlanId !== undefined && observedPlanId !== plan.id;
551
+ const regionsChanged = !deepEqual(observedReadRegions, nextReadRegions);
552
+ const optionsChanged = !deepEqual(observedOptions, nextOptions);
553
+ const prodPackChanged = props.prodPack !== undefined && planChanged;
554
+ if (planChanged || regionsChanged || optionsChanged || prodPackChanged) {
555
+ const updated = yield* Effect.result(addons.updateAddOn({
556
+ input: {
557
+ addOnId: current.id,
558
+ planId: plan.id,
559
+ readRegions: nextReadRegions,
560
+ options: nextOptions,
561
+ prodPack: prodPackChanged ? props.prodPack : undefined,
562
+ },
563
+ }));
564
+ if (Result.isSuccess(updated)) {
565
+ current = {
566
+ ...current,
567
+ ...updated.success.addOn,
568
+ };
569
+ }
570
+ else {
571
+ const refreshed = yield* findRedisAddOn({
572
+ id: current.id,
573
+ name,
574
+ });
575
+ if (refreshed !== undefined)
576
+ current = refreshed;
577
+ }
578
+ }
579
+ let latest = (yield* findRedisAddOn({ id: current.id, name })) ?? current;
580
+ if (unwrapSensitive(latest.publicUrl) === undefined && latest.id !== undefined) {
581
+ const detail = yield* addons.addOn({ id: latest.id });
582
+ latest = { ...latest, ...detail };
583
+ }
584
+ return toAttrs(latest, {
585
+ name,
586
+ primaryRegion,
587
+ orgSlug,
588
+ planId: plan.id,
589
+ url: output?.url,
590
+ });
591
+ }),
592
+ delete: Effect.fn(function* ({ output }) {
593
+ const redisId = output.redisId;
594
+ const name = output.name;
595
+ if (redisId.length === 0 && (name === undefined || name.length === 0)) {
596
+ return;
597
+ }
598
+ const deleted = yield* Effect.result(addons.deleteAddOn({
599
+ input: redisId.length > 0 ? { addOnId: redisId } : { name, provider: REDIS_PROVIDER },
600
+ }));
601
+ if (Result.isFailure(deleted)) {
602
+ const still = yield* findRedisAddOn({ id: redisId, name });
603
+ if (still !== undefined) {
604
+ return yield* deleted.failure;
605
+ }
606
+ return;
607
+ }
608
+ yield* waitUntilGone(redisId, name);
609
+ }),
610
+ });
611
+ //# sourceMappingURL=Redis.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Redis.js","sourceRoot":"","sources":["../src/Redis.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import type { Url } from "@alchemy.run/redis";
2
+ import * as Effect from "effect/Effect";
3
+ import { type Redis } from "./Redis.ts";
4
+ export declare const makeRedisBinding: <Client>(options: {
5
+ makeClient: (url: Url) => Client;
6
+ }) => Effect.Effect<(redis: Redis) => Effect.Effect<Client, never, never>, never, never>;
7
+ //# sourceMappingURL=RedisBinding.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RedisBinding.d.ts","sourceRoot":"","sources":["../src/RedisBinding.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AAI9C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAGxC,OAAO,EAAkC,KAAK,KAAK,EAAE,MAAM,YAAY,CAAC;AAiCxE,eAAO,MAAM,gBAAgB,GAAI,MAAM,WAAW;IAAE,UAAU,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,MAAM,CAAA;CAAE,uFAuBnF,CAAC"}