@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,295 @@
1
+ import * as Binding from "alchemy/Binding";
2
+ import * as Effect from "effect/Effect";
3
+ import * as Layer from "effect/Layer";
4
+ /**
5
+ * Spec for a per-replica Fly disk. Fly Volumes cannot be shared —
6
+ * `count` Machines get `count` Volumes in one name-group.
7
+ */
8
+ export interface DiskSpec {
9
+ /**
10
+ * Absolute path inside the Machine the disk is mounted at
11
+ * (e.g. `/data`).
12
+ */
13
+ path: string;
14
+ /**
15
+ * Size in GB. Fly minimum is 1. Increasing size updates in place
16
+ * via `extendVolume`. Fly cannot shrink a Volume.
17
+ */
18
+ sizeGb: number;
19
+ /**
20
+ * Encrypt the Volume at rest. Create-only.
21
+ */
22
+ encrypted?: boolean;
23
+ /**
24
+ * Filesystem type (`ext4`, …). Create-only.
25
+ */
26
+ fstype?: string;
27
+ /**
28
+ * Enable scheduled automatic snapshots.
29
+ *
30
+ * @default true
31
+ */
32
+ autoBackupEnabled?: boolean;
33
+ /**
34
+ * Snapshot retention in days. Updated in place via `updateVolume`.
35
+ */
36
+ snapshotRetention?: number;
37
+ /**
38
+ * Restore from an existing snapshot. Create-only.
39
+ */
40
+ snapshotId?: string;
41
+ /**
42
+ * Fork from an existing volume. Create-only.
43
+ */
44
+ sourceVolumeId?: string;
45
+ /**
46
+ * Require the Volume to land in a unique zone. Create-only.
47
+ */
48
+ requireUniqueZone?: boolean;
49
+ /**
50
+ * Fly volume-group name. If omitted, a unique name is generated
51
+ * from the host's logical ID and {@link path}.
52
+ */
53
+ name?: string;
54
+ }
55
+ export interface MountVolumeOptions extends DiskSpec {
56
+ }
57
+ /**
58
+ * Runtime view of a disk mounted into a {@link Service}: the path
59
+ * inside the Machine.
60
+ */
61
+ export interface MountedVolume {
62
+ /** Mount path inside the Machine (same value as {@link DiskSpec.path}). */
63
+ path: string;
64
+ }
65
+ /**
66
+ * Observed disk attached to a Machine / Service replica.
67
+ */
68
+ export interface MountedDisk {
69
+ /** Mount path inside the Machine. */
70
+ path: string;
71
+ /** Fly Volume id. */
72
+ volumeId: string;
73
+ /** Size in GB. */
74
+ sizeGb: number;
75
+ /** Fly volume-group name. */
76
+ name: string;
77
+ }
78
+ /**
79
+ * Binding contract accepted by {@link Service} (and Machine) for mounted
80
+ * disks and injected env.
81
+ */
82
+ export interface ServiceBinding {
83
+ env?: Record<string, any>;
84
+ mounts?: DiskSpec[];
85
+ /**
86
+ * Upstash Redis add-on to attach. Redis HTTP bindings write
87
+ * `REDIS_URL` as an App secret during Service reconcile.
88
+ */
89
+ redis?: {
90
+ name: string;
91
+ id?: string;
92
+ };
93
+ /**
94
+ * Tigris bucket to attach. Object HTTP bindings write `AWS_*` /
95
+ * `BUCKET_NAME` as App secrets during Service reconcile.
96
+ */
97
+ bucket?: {
98
+ name: string;
99
+ id?: string;
100
+ };
101
+ /**
102
+ * Managed Postgres cluster to attach. `Fly.ConnectPostgres` records
103
+ * the MPG attachment during Service reconcile. Connection URIs travel
104
+ * as Outputs (`yield* postgres.connectionUri`), not bind env.
105
+ */
106
+ postgres?: {
107
+ clusterId: string;
108
+ variableName?: string;
109
+ };
110
+ /**
111
+ * Another Service this one calls, recorded by `Fly.bindService` and
112
+ * `Fly.bindEndpoint`. Service reconcile checks the target is reachable
113
+ * from this Service's network and, for an endpoint, that the port is
114
+ * published.
115
+ */
116
+ target?: BoundTarget;
117
+ }
118
+ /** A Service bound by `Fly.bindService` or `Fly.bindEndpoint`. */
119
+ export interface BoundTarget {
120
+ /** Logical id of the bound Service. */
121
+ service: string;
122
+ /** Fly App the bound Service runs in. */
123
+ appName: string;
124
+ /** Private network of that App. `undefined` for the default network. */
125
+ network: string | undefined;
126
+ /** The bound Service's private address; `undefined` when it publishes nothing. */
127
+ privateUrl: string | undefined;
128
+ /** The bound Service's caller token. */
129
+ rpcToken?: import("effect/Redacted").Redacted<string>;
130
+ /** Port `Fly.bindEndpoint` targets; the binding port for `bindService`. */
131
+ port?: number;
132
+ /** Ports the bound Service publishes, for `Fly.bindEndpoint`. */
133
+ endpoints?: Array<{
134
+ port: number;
135
+ handlers: string[];
136
+ }>;
137
+ }
138
+ /**
139
+ * Create a per-replica Fly Volume and mount it into a {@link Service}.
140
+ *
141
+ * There is no standalone Volume resource. From a {@link Machine}, pass
142
+ * `mounts: [{ path, sizeGb }]` instead.
143
+ *
144
+ *
145
+ * ### Mount into a Service
146
+ * Yield `MountVolume` inside init. App and region come from the
147
+ * parent Service. Provide {@link MountVolumeLive}. At runtime you get
148
+ * `disk.path`.
149
+ *
150
+ * A Volume attaches to one Machine. `count: 3` creates three Volumes
151
+ * in one name-group, one per replica.
152
+ *
153
+ * **Example:** Bind a path
154
+ * ```typescript
155
+ * export default class Api extends Fly.Service<Api>()(
156
+ * "Api",
157
+ * { app: Site, main: import.meta.url, region: "iad", count: 3, port: 3000 },
158
+ * Effect.gen(function* () {
159
+ * const disk = yield* Fly.MountVolume({ path: "/data", sizeGb: 1 });
160
+ * const fs = yield* FileSystem.FileSystem;
161
+ * return {
162
+ * fetch: Effect.gen(function* () {
163
+ * const text = yield* fs.readFileString(`${disk.path}/hello.txt`);
164
+ * return HttpServerResponse.text(text);
165
+ * }),
166
+ * };
167
+ * }).pipe(Effect.provide(Fly.MountVolumeLive)),
168
+ * ) {}
169
+ * ```
170
+ *
171
+ * ### Grow a disk
172
+ * `sizeGb` can grow in place via `extendVolume`. Fly cannot shrink a
173
+ * Volume. Minimum size is 1 GB.
174
+ *
175
+ * **Example:** 10 GB
176
+ * ```typescript
177
+ * const disk = yield* Fly.MountVolume({ path: "/data", sizeGb: 10 });
178
+ * ```
179
+ *
180
+ * ### Encryption
181
+ * `encrypted` encrypts the Volume at rest.
182
+ *
183
+ * **Example:** Encrypted
184
+ * ```typescript
185
+ * const disk = yield* Fly.MountVolume({
186
+ * path: "/data",
187
+ * sizeGb: 1,
188
+ * encrypted: true,
189
+ * });
190
+ * ```
191
+ *
192
+ * :::note[Create-only]
193
+ * Flipping `encrypted` later is ignored.
194
+ * :::
195
+ *
196
+ * ### Filesystem
197
+ * `fstype` is the filesystem (`ext4`, …).
198
+ *
199
+ * **Example:** ext4
200
+ * ```typescript
201
+ * const disk = yield* Fly.MountVolume({
202
+ * path: "/data",
203
+ * sizeGb: 1,
204
+ * fstype: "ext4",
205
+ * });
206
+ * ```
207
+ *
208
+ * :::note[Create-only]
209
+ * Flipping `fstype` later is ignored.
210
+ * :::
211
+ *
212
+ * ### Scheduled snapshots
213
+ * Scheduled snapshots default on (`autoBackupEnabled`).
214
+ * `snapshotRetention` is days and updates in place. An on-demand
215
+ * snapshot is {@link VolumeSnapshot}.
216
+ *
217
+ * **Example:** Retention
218
+ * ```typescript
219
+ * const disk = yield* Fly.MountVolume({
220
+ * path: "/data",
221
+ * sizeGb: 1,
222
+ * autoBackupEnabled: true,
223
+ * snapshotRetention: 5,
224
+ * });
225
+ * ```
226
+ *
227
+ * ### Restore from a snapshot
228
+ * `snapshotId` restores into a new disk.
229
+ *
230
+ * **Example:** snapshotId
231
+ * ```typescript
232
+ * const disk = yield* Fly.MountVolume({
233
+ * path: "/data",
234
+ * sizeGb: 1,
235
+ * snapshotId: Nightly.snapshotId,
236
+ * });
237
+ * ```
238
+ *
239
+ * :::note[Create-only]
240
+ * Changing `snapshotId` later is ignored.
241
+ * :::
242
+ *
243
+ * ### Fork a volume
244
+ * `sourceVolumeId` forks from an existing Volume.
245
+ *
246
+ * **Example:** sourceVolumeId
247
+ * ```typescript
248
+ * const disk = yield* Fly.MountVolume({
249
+ * path: "/data",
250
+ * sizeGb: 1,
251
+ * sourceVolumeId: box.mounts[0].volumeId,
252
+ * });
253
+ * ```
254
+ *
255
+ * :::note[Create-only]
256
+ * Changing `sourceVolumeId` later is ignored.
257
+ * :::
258
+ *
259
+ * ### Unique zone
260
+ * `requireUniqueZone` asks Fly to land the Volume in a unique zone.
261
+ *
262
+ * **Example:** Unique zone
263
+ * ```typescript
264
+ * const disk = yield* Fly.MountVolume({
265
+ * path: "/data",
266
+ * sizeGb: 1,
267
+ * requireUniqueZone: true,
268
+ * });
269
+ * ```
270
+ *
271
+ * :::note[Create-only]
272
+ * Flipping `requireUniqueZone` later is ignored.
273
+ * :::
274
+ *
275
+ * ### Volume name
276
+ * `name` is the Fly volume-group name. If omitted, a unique name is
277
+ * generated from the host's logical ID and `path`.
278
+ *
279
+ * **Example:** Named group
280
+ * ```typescript
281
+ * const disk = yield* Fly.MountVolume({
282
+ * path: "/data",
283
+ * sizeGb: 1,
284
+ * name: "api_data",
285
+ * });
286
+ * ```
287
+ *
288
+ * @binding
289
+ * @product Volume
290
+ */
291
+ export interface MountVolume extends Binding.Service<MountVolume, "Fly.MountVolume", (options: MountVolumeOptions) => Effect.Effect<MountedVolume>> {
292
+ }
293
+ export declare const MountVolume: MountVolume;
294
+ export declare const MountVolumeLive: Layer.Layer<MountVolume, never, never>;
295
+ //# sourceMappingURL=MountVolume.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MountVolume.d.ts","sourceRoot":"","sources":["../src/MountVolume.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import * as Binding from "alchemy/Binding";
2
+ import * as Effect from "effect/Effect";
3
+ import * as Layer from "effect/Layer";
4
+ const isBindHost = (value) => typeof value === "object" &&
5
+ value !== null &&
6
+ (value.Type === "Fly.Service" ||
7
+ value.Type === "Fly.Machine");
8
+ export const MountVolume = Binding.Service("Fly.MountVolume");
9
+ export const MountVolumeLive = Layer.effect(MountVolume, Effect.succeed(Effect.fn(function* (options) {
10
+ if (!globalThis.__ALCHEMY_RUNTIME__) {
11
+ const host = yield* Binding.Host;
12
+ if (isBindHost(host)) {
13
+ yield* host.bind `Fly.MountVolume(${options.path})`({
14
+ mounts: [options],
15
+ });
16
+ }
17
+ }
18
+ return { path: options.path };
19
+ })));
20
+ //# sourceMappingURL=MountVolume.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MountVolume.js","sourceRoot":"","sources":["../src/MountVolume.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,iBAAiB,CAAC;AAE3C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AA+EtC,MAAM,UAAU,GAAG,CAAC,KAAc,EAAuD,EAAE,CACzF,OAAO,KAAK,KAAK,QAAQ;IACzB,KAAK,KAAK,IAAI;IACd,CAAE,KAA2B,CAAC,IAAI,KAAK,aAAa;QACjD,KAA2B,CAAC,IAAI,KAAK,aAAa,CAAC,CAAC;AAmNzD,MAAM,CAAC,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,CAAc,iBAAiB,CAAC,CAAC;AAE3E,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,CAAC,MAAM,CACzC,WAAW,EACX,MAAM,CAAC,OAAO,CACZ,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,OAA2B;IAC9C,IAAI,CAAC,UAAU,CAAC,mBAAmB,EAAE,CAAC;QACpC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;QACjC,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YACrB,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAA,mBAAmB,OAAO,CAAC,IAAI,GAAG,CAAC;gBACjD,MAAM,EAAE,CAAC,OAAO,CAAC;aAClB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC;AAChC,CAAC,CAAC,CACH,CACF,CAAC"}
@@ -0,0 +1,298 @@
1
+ import { type MigrationsInput } from "@alchemy.run/sql/Migrations";
2
+ import * as machines from "@distilled.cloud/fly-io/machines";
3
+ import type { ClusterCredentials, GetClusterResponse, ManagedCluster } from "@distilled.cloud/fly-io/mpg";
4
+ import * as Provider from "alchemy/Provider";
5
+ import { Resource } from "alchemy/Resource";
6
+ import * as Effect from "effect/Effect";
7
+ import * as Redacted from "effect/Redacted";
8
+ import type { Providers } from "./Providers.ts";
9
+ export { stripSslQueryParams } from "./PostgresMigrations.ts";
10
+ export declare const DEFAULT_POSTGRES_PLAN = "basic";
11
+ export declare const DEFAULT_VOLUME_GB = 10;
12
+ export declare const DATABASE_URL_SECRET = "DATABASE_URL";
13
+ export declare const DIRECT_DATABASE_URL_SECRET = "DIRECT_DATABASE_URL";
14
+ export type PostgresPlan = "basic" | "starter" | "launch" | "scale" | "performance" | (string & {});
15
+ export interface PostgresProps {
16
+ /**
17
+ * Region the cluster lives in (`iad`, `ord`, `sjc`, …). Required.
18
+ * The cluster is regional; a {@link App} is global. Changing it
19
+ * replaces the cluster.
20
+ */
21
+ region: string;
22
+ /**
23
+ * Hardware plan. `basic` is 2 shared vCPUs / 1 GB RAM.
24
+ *
25
+ * @default "basic"
26
+ */
27
+ plan?: PostgresPlan;
28
+ /**
29
+ * Cluster name. Unique in the organization. If omitted, a unique
30
+ * name is generated from the stack, stage and logical ID. Changing
31
+ * it replaces the cluster.
32
+ */
33
+ name?: string;
34
+ /**
35
+ * Organization slug. Defaults to the current token's org. Changing
36
+ * it replaces the cluster.
37
+ */
38
+ orgSlug?: string;
39
+ /**
40
+ * Initial volume size in GB. Fly defaults to 10. Create-only.
41
+ *
42
+ * @default 10
43
+ */
44
+ volumeSizeGb?: number;
45
+ /**
46
+ * Enable PostGIS. Create-only.
47
+ *
48
+ * @default false
49
+ */
50
+ postgis?: boolean;
51
+ /**
52
+ * Postgres major version (`16` or `17`). Create-only.
53
+ *
54
+ * @default 16
55
+ */
56
+ pgMajorVersion?: number | string;
57
+ /**
58
+ * SQL migrations to apply against the cluster. Accepts a directory
59
+ * path, a `Drizzle.Schema` resource, or `{ dir, table? }`.
60
+ *
61
+ * Bookkeeping always lives in Alchemy's `__alchemy_migrations` table. A
62
+ * database previously migrated by drizzle-kit or Prisma is adopted by a
63
+ * one-way conversion on first deploy: the old tool's applied history is
64
+ * copied into Alchemy's table and the old table is left frozen. No
65
+ * baselining required.
66
+ *
67
+ * Applied over the **direct** (non-PgBouncer) URI. Fly Managed Postgres
68
+ * is reachable on the org private network; deploy-time apply needs a
69
+ * route to that network (a WireGuard peer, `fly mpg proxy`, or a
70
+ * machine already on 6PN).
71
+ */
72
+ migrations?: MigrationsInput;
73
+ /**
74
+ * Paths to additional `.sql` files to apply after migrations. Each file
75
+ * is hashed; only files whose contents change are re-applied on
76
+ * subsequent deploys.
77
+ */
78
+ importFiles?: string[];
79
+ }
80
+ export type Postgres = Resource<"Fly.Postgres", PostgresProps, {
81
+ /** Fly Managed Postgres cluster id. */
82
+ clusterId: string;
83
+ /** Cluster name (unique in the org). */
84
+ name: string;
85
+ /** Observed status (`creating`, `ready`, `error`, `deleted`, …). */
86
+ status: string | undefined;
87
+ /** Region the cluster lives in. */
88
+ region: string;
89
+ /** Observed hardware plan. */
90
+ plan: string | undefined;
91
+ /** Organization slug. */
92
+ orgSlug: string | undefined;
93
+ /** Observed disk size in GB. */
94
+ disk: number | undefined;
95
+ /** Whether PostGIS is enabled. */
96
+ postgisEnabled: boolean | undefined;
97
+ /** Observed engine string, if the API returned one. */
98
+ engine: string | undefined;
99
+ /** Observed replica count. */
100
+ replicas: number | undefined;
101
+ /** Internal MPG cluster hash id, if the API returned one. */
102
+ mpgdClusterId: string | undefined;
103
+ /**
104
+ * Direct (non-PgBouncer) Postgres URI. Use this for migrations and
105
+ * session-scoped features. Pass to `Drizzle.Postgres` from a laptop
106
+ * Action; from a {@link Service} prefer {@link ConnectPostgres}.
107
+ */
108
+ connectionUri: string;
109
+ /** Pooled PgBouncer URI. Prefer {@link ConnectPostgres} from a Service. */
110
+ pooledConnectionUri: string;
111
+ migrationsDir: string | undefined;
112
+ migrationsTable: string | undefined;
113
+ migrationsHashes: Record<string, string>;
114
+ importHashes: Record<string, string>;
115
+ }, never, Providers>;
116
+ /**
117
+ * A Fly.Postgres is a Managed Postgres (MPG) cluster. It is billed.
118
+ * Do not wrap unmanaged `fly postgres`.
119
+ *
120
+ * @see https://fly.io/docs/mpg/create-and-connect/
121
+ *
122
+ * ### Create a cluster
123
+ * `region` is required. Alchemy generates a unique name unless you
124
+ * pass one. Omit `name` in tests and CI.
125
+ *
126
+ * **Example:** Generated name
127
+ * ```typescript
128
+ * const db = yield* Fly.Postgres("Db", {
129
+ * region: "iad",
130
+ * });
131
+ * ```
132
+ *
133
+ * :::caution[Billed]
134
+ * Managed Postgres is billed. Basic is about $38 per month.
135
+ * :::
136
+ *
137
+ * ### Plan
138
+ * `plan` is the hardware size: `basic`, `starter`, `launch`,
139
+ * `scale`, `performance`. Default is `basic`.
140
+ *
141
+ * **Example:** Starter
142
+ * ```typescript
143
+ * const db = yield* Fly.Postgres("Db", {
144
+ * region: "iad",
145
+ * plan: "starter",
146
+ * });
147
+ * ```
148
+ *
149
+ * :::note[Create-only]
150
+ * Changing `plan` later is ignored. Fly has no cluster update API.
151
+ * :::
152
+ *
153
+ * ### Region
154
+ * The cluster is regional. An {@link App} is global. Pass `region`
155
+ * on the cluster, not on the App.
156
+ *
157
+ * **Example:** Pin a region
158
+ * ```typescript
159
+ * const db = yield* Fly.Postgres("Db", {
160
+ * region: "lhr",
161
+ * });
162
+ * ```
163
+ *
164
+ * :::caution[Changing `region` replaces the cluster]
165
+ * A new cluster is created in the new region. The old cluster is
166
+ * deleted. Data is not copied.
167
+ * :::
168
+ *
169
+ * ### Volume size
170
+ * `volumeSizeGb` is the initial disk. Fly defaults to 10 GB.
171
+ *
172
+ * **Example:** 20 GB
173
+ * ```typescript
174
+ * const db = yield* Fly.Postgres("Db", {
175
+ * region: "iad",
176
+ * volumeSizeGb: 20,
177
+ * });
178
+ * ```
179
+ *
180
+ * :::note[Create-only]
181
+ * Changing `volumeSizeGb` later is ignored.
182
+ * :::
183
+ *
184
+ * ### PostGIS
185
+ * `postgis: true` enables PostGIS at create.
186
+ *
187
+ * **Example:** Enable PostGIS
188
+ * ```typescript
189
+ * const db = yield* Fly.Postgres("Db", {
190
+ * region: "iad",
191
+ * postgis: true,
192
+ * });
193
+ * ```
194
+ *
195
+ * :::note[Create-only]
196
+ * Flipping `postgis` later is ignored.
197
+ * :::
198
+ *
199
+ * ### Connect from a Service
200
+ * Yield `ConnectPostgres` inside init. Provide
201
+ * {@link ConnectPostgresHttp}. Pass `conn.connectionString` to
202
+ * `Drizzle.Postgres` or `SQL.Postgres`.
203
+ *
204
+ * **Example:** Bind and query
205
+ * ```typescript
206
+ * import * as Drizzle from "@alchemy.run/drizzle/Postgres";
207
+ * import * as HttpServerResponse from "effect/http/HttpServerResponse";
208
+ *
209
+ * export default class Api extends Fly.Service<Api>()(
210
+ * "Api",
211
+ * { app: Site, main: import.meta.url, port: 3000 },
212
+ * Effect.gen(function* () {
213
+ * const conn = yield* Fly.ConnectPostgres(Db);
214
+ * const db = yield* Drizzle.Postgres(conn.connectionString);
215
+ * return {
216
+ * fetch: Effect.gen(function* () {
217
+ * const rows = yield* db.execute("select 1 as ok");
218
+ * return HttpServerResponse.json({ rows });
219
+ * }),
220
+ * };
221
+ * }).pipe(Effect.provide(Fly.ConnectPostgresHttp)),
222
+ * ) {}
223
+ * ```
224
+ *
225
+ * ### Migrations
226
+ * Pass a directory, `{ dir, table? }`, or a `Drizzle.Schema` resource.
227
+ * Alchemy applies pending files on deploy over the direct URI.
228
+ *
229
+ * **Example:** Directory
230
+ * ```typescript
231
+ * const db = yield* Fly.Postgres("Db", {
232
+ * region: "iad",
233
+ * migrations: "./migrations",
234
+ * });
235
+ * ```
236
+ *
237
+ * **Example:** Drizzle.Schema
238
+ * ```typescript
239
+ * const schema = yield* Drizzle.Schema("app-schema", {
240
+ * schema: "./src/schema.ts",
241
+ * out: "./migrations",
242
+ * });
243
+ *
244
+ * const db = yield* Fly.Postgres("Db", {
245
+ * region: "iad",
246
+ * migrations: schema,
247
+ * });
248
+ * ```
249
+ *
250
+ * @resource
251
+ * @product Postgres
252
+ */
253
+ export declare const Postgres: import("alchemy/Resource").ResourceClass<Postgres>;
254
+ declare const PostgresNotCreated_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
255
+ readonly _tag: "Fly.PostgresNotCreated";
256
+ } & Readonly<A>;
257
+ export declare class PostgresNotCreated extends PostgresNotCreated_base<{
258
+ name: string;
259
+ orgSlug: string;
260
+ }> {
261
+ }
262
+ declare const PostgresCreateFailed_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
263
+ readonly _tag: "Fly.PostgresCreateFailed";
264
+ } & Readonly<A>;
265
+ export declare class PostgresCreateFailed extends PostgresCreateFailed_base<{
266
+ clusterId: string;
267
+ status: string;
268
+ }> {
269
+ }
270
+ declare const PostgresCredentialsMissing_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
271
+ readonly _tag: "Fly.PostgresCredentialsMissing";
272
+ } & Readonly<A>;
273
+ export declare class PostgresCredentialsMissing extends PostgresCredentialsMissing_base<{
274
+ clusterId: string;
275
+ }> {
276
+ }
277
+ declare const PostgresAttachmentFailed_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
278
+ readonly _tag: "Fly.PostgresAttachmentFailed";
279
+ } & Readonly<A>;
280
+ export declare class PostgresAttachmentFailed extends PostgresAttachmentFailed_base<{
281
+ clusterId: string;
282
+ appName: string;
283
+ }> {
284
+ }
285
+ export declare const isLiveCluster: (cluster: ManagedCluster | undefined) => cluster is ManagedCluster;
286
+ export declare const unwrapSensitive: (value: string | Redacted.Redacted<string> | undefined) => string | undefined;
287
+ export declare const getLiveCluster: (clusterId: string) => Effect.Effect<ManagedCluster | undefined, machines.FlyIoOpError, machines.FlyIoOpContext>;
288
+ export declare const getClusterResponse: (clusterId: string) => Effect.Effect<GetClusterResponse | undefined, machines.FlyIoOpError, machines.FlyIoOpContext>;
289
+ export declare const credentialsUri: (credentials: ClusterCredentials | undefined) => string | undefined;
290
+ export declare const directUri: (_cluster: ManagedCluster | undefined, credentials: ClusterCredentials | undefined) => string | undefined;
291
+ /**
292
+ * Write `DATABASE_URL` (and `DIRECT_DATABASE_URL` if present) onto an
293
+ * App and record the MPG attachment. Called from {@link Service}
294
+ * reconcile when {@link ConnectPostgres} binds a cluster.
295
+ */
296
+ export declare const attachPostgresSecrets: (appName: string, clusterId: string, variableName?: string | undefined) => Effect.Effect<number | undefined, import("@distilled.cloud/fly-io").BadRequest | import("@distilled.cloud/fly-io").Conflict | import("@distilled.cloud/fly-io").Forbidden | import("@distilled.cloud/fly-io").NotFound | PostgresAttachmentFailed | PostgresCredentialsMissing | import("effect/Cause").TimeoutError | machines.FlyIoOpError, machines.FlyIoOpContext>;
297
+ export declare const PostgresProvider: () => import("effect/Layer").Layer<Provider.Provider<Postgres>, never, import("effect/FileSystem").FileSystem | import("effect/Path").Path | import("alchemy/Stack").Stack | import("alchemy/Stage").Stage | machines.FlyIoOpContext>;
298
+ //# sourceMappingURL=Postgres.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Postgres.d.ts","sourceRoot":"","sources":["../src/Postgres.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,eAAe,EACrB,MAAM,6BAA6B,CAAC;AAErC,OAAO,KAAK,QAAQ,MAAM,kCAAkC,CAAC;AAC7D,OAAO,KAAK,EACV,kBAAkB,EAClB,kBAAkB,EAClB,cAAc,EACf,MAAM,6BAA6B,CAAC;AAIrC,OAAO,KAAK,QAAQ,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAI5C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAC;AAK5C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEhD,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAE9D,eAAO,MAAM,qBAAqB,UAAU,CAAC;AAC7C,eAAO,MAAM,iBAAiB,KAAK,CAAC;AACpC,eAAO,MAAM,mBAAmB,iBAAiB,CAAC;AAClD,eAAO,MAAM,0BAA0B,wBAAwB,CAAC;AAEhE,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,SAAS,GAAG,QAAQ,GAAG,OAAO,GAAG,aAAa,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;AAEpG,MAAM,WAAW,aAAa;IAC5B;;;;OAIG;IACH,MAAM,EAAE,MAAM,CAAC;IACf;;;;OAIG;IACH,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACjC;;;;;;;;;;;;;;OAcG;IACH,UAAU,CAAC,EAAE,eAAe,CAAC;IAC7B;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,MAAM,MAAM,QAAQ,GAAG,QAAQ,CAC7B,cAAc,EACd,aAAa,EACb;IACE,uCAAuC;IACvC,SAAS,EAAE,MAAM,CAAC;IAClB,wCAAwC;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,oEAAoE;IACpE,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,mCAAmC;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,8BAA8B;IAC9B,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,yBAAyB;IACzB,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,gCAAgC;IAChC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,kCAAkC;IAClC,cAAc,EAAE,OAAO,GAAG,SAAS,CAAC;IACpC,uDAAuD;IACvD,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,8BAA8B;IAC9B,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,6DAA6D;IAC7D,aAAa,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC;;;;OAIG;IACH,aAAa,EAAE,MAAM,CAAC;IACtB,2EAA2E;IAC3E,mBAAmB,EAAE,MAAM,CAAC;IAC5B,aAAa,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,eAAe,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACtC,EACD,KAAK,EACL,SAAS,CACV,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwIG;AACH,eAAO,MAAM,QAAQ,oDAAqC,CAAC;;;;AAE3D,qBAAa,kBAAmB,SAAQ,wBAA2C;IACjF,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;CAAG;;;;AAEL,qBAAa,oBAAqB,SAAQ,0BAA6C;IACrF,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;CAAG;;;;AAEL,qBAAa,0BAA2B,SAAQ,gCAAmD;IACjG,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;CAAG;;;;AAEL,qBAAa,wBAAyB,SAAQ,8BAAiD;IAC7F,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;CAAG;AAYL,eAAO,MAAM,aAAa,YAAa,cAAc,GAAG,SAAS,KAAG,OAAO,IAAI,cACS,CAAC;AAEzF,eAAO,MAAM,eAAe,UACnB,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,SAAS,KACpD,MAAM,GAAG,SAGX,CAAC;AA4CF,eAAO,MAAM,cAAc,cAAe,MAAM,8FAI7C,CAAC;AAEJ,eAAO,MAAM,kBAAkB,cAAe,MAAM,kGAMjD,CAAC;AA+EJ,eAAO,MAAM,cAAc,gBAAiB,kBAAkB,GAAG,SAAS,KAAG,MAAM,GAAG,SACzC,CAAC;AAE9C,eAAO,MAAM,SAAS,aACV,cAAc,GAAG,SAAS,eACvB,kBAAkB,GAAG,SAAS,KAC1C,MAAM,GAAG,SAiBX,CAAC;AA4BF;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,mbA0DhC,CAAC;AAIH,eAAO,MAAM,gBAAgB,uOAuMzB,CAAC"}