@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,44 @@
1
+ import type { AppSecret, GetSecretError } from "@distilled.cloud/fly-io/machines";
2
+ import * as Binding from "alchemy/Binding";
3
+ import type { RuntimeContext } from "alchemy/RuntimeContext";
4
+ import type * as Effect from "effect/Effect";
5
+ import type { Secret } from "./Secret.ts";
6
+ /**
7
+ * Fetch one Fly.io App secret. The App and name are fixed by
8
+ * `GetSecret(secret)`. Calls take no `app_name`.
9
+ *
10
+ *
11
+ * ### Read a secret
12
+ * Bind the client in init. Call it from `fetch` or an Action body.
13
+ * Provide {@link GetSecretHttp}. Alchemy transports the bound App name,
14
+ * secret name, and deployment's org token automatically. There is no
15
+ * need to configure `FLY_SECRET_*` environment variables.
16
+ *
17
+ * Fly only returns plaintext from a Machine in the same App. From a
18
+ * deploy-time Action you get metadata (name, digest, timestamps).
19
+ *
20
+ * **Example:** GetSecret
21
+ * ```typescript
22
+ * export default class Api extends Fly.Service<Api>()(
23
+ * "Api",
24
+ * { app: Site, main: import.meta.url, port: 3000 },
25
+ * Effect.gen(function* () {
26
+ * const get = yield* Fly.GetSecret(ApiToken);
27
+ *
28
+ * return {
29
+ * fetch: Effect.gen(function* () {
30
+ * const got = yield* get().pipe(Effect.orDie);
31
+ * return HttpServerResponse.json({ name: got.name });
32
+ * }),
33
+ * };
34
+ * }).pipe(Effect.provide(Fly.GetSecretHttp)),
35
+ * ) {}
36
+ * ```
37
+ *
38
+ * @binding
39
+ * @product Secret
40
+ */
41
+ export interface GetSecret extends Binding.Service<GetSecret, "Fly.GetSecret", (secret: Secret) => Effect.Effect<() => Effect.Effect<AppSecret, GetSecretError, RuntimeContext>>> {
42
+ }
43
+ export declare const GetSecret: GetSecret;
44
+ //# sourceMappingURL=GetSecret.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GetSecret.d.ts","sourceRoot":"","sources":["../src/GetSecret.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAClF,OAAO,KAAK,OAAO,MAAM,iBAAiB,CAAC;AAC3C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,KAAK,KAAK,MAAM,MAAM,eAAe,CAAC;AAC7C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE1C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,MAAM,WAAW,SAAU,SAAQ,OAAO,CAAC,OAAO,CAChD,SAAS,EACT,eAAe,EACf,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,MAAM,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,cAAc,EAAE,cAAc,CAAC,CAAC,CAClG;CAAG;AAEJ,eAAO,MAAM,SAAS,WAA8C,CAAC"}
@@ -0,0 +1,3 @@
1
+ import * as Binding from "alchemy/Binding";
2
+ export const GetSecret = Binding.Service("Fly.GetSecret");
3
+ //# sourceMappingURL=GetSecret.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GetSecret.js","sourceRoot":"","sources":["../src/GetSecret.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,OAAO,MAAM,iBAAiB,CAAC;AA8C3C,MAAM,CAAC,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAY,eAAe,CAAC,CAAC"}
@@ -0,0 +1,22 @@
1
+ import * as Layer from "effect/Layer";
2
+ import { GetSecret } from "./GetSecret.ts";
3
+ /**
4
+ * HTTP implementation of {@link GetSecret}. Provide it on the
5
+ * {@link Service} or Action Effect.
6
+ *
7
+ *
8
+ * ### Provide the layer
9
+ * **Example:** On a Service
10
+ * ```typescript
11
+ * Effect.gen(function* () {
12
+ * const get = yield* Fly.GetSecret(ApiToken);
13
+ * // ...
14
+ * }).pipe(Effect.provide(Fly.GetSecretHttp))
15
+ * ```
16
+ *
17
+ * @layer
18
+ * @product Secret
19
+ * @provides Fly.GetSecret
20
+ */
21
+ export declare const GetSecretHttp: Layer.Layer<GetSecret, never, never>;
22
+ //# sourceMappingURL=GetSecretHttp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GetSecretHttp.d.ts","sourceRoot":"","sources":["../src/GetSecretHttp.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAGtC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAG3C;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,aAAa,sCA+B8D,CAAC"}
@@ -0,0 +1,50 @@
1
+ import * as machines from "@distilled.cloud/fly-io/machines";
2
+ import * as Config from "effect/Config";
3
+ import * as Effect from "effect/Effect";
4
+ import * as FetchHttpClient from "effect/http/FetchHttpClient";
5
+ import * as Layer from "effect/Layer";
6
+ import * as Redacted from "effect/Redacted";
7
+ import { CredentialsFromAmbientOrEnv } from "./Credentials.js";
8
+ import { GetSecret } from "./GetSecret.js";
9
+ import { makeHttpSecretBinding } from "./SecretHttp.js";
10
+ /**
11
+ * HTTP implementation of {@link GetSecret}. Provide it on the
12
+ * {@link Service} or Action Effect.
13
+ *
14
+ *
15
+ * ### Provide the layer
16
+ * **Example:** On a Service
17
+ * ```typescript
18
+ * Effect.gen(function* () {
19
+ * const get = yield* Fly.GetSecret(ApiToken);
20
+ * // ...
21
+ * }).pipe(Effect.provide(Fly.GetSecretHttp))
22
+ * ```
23
+ *
24
+ * @layer
25
+ * @product Secret
26
+ * @provides Fly.GetSecret
27
+ */
28
+ export const GetSecretHttp = Layer.effect(GetSecret, Effect.suspend(() => makeHttpSecretBinding({
29
+ makeClient: (auth, appName, secretName) => Effect.fn("Fly.GetSecret")(function* () {
30
+ const name = yield* secretName;
31
+ if (globalThis.__ALCHEMY_RUNTIME__) {
32
+ // Fly injects App secrets as env vars on the Machine. Prefer
33
+ // that over getSecret — org tokens still cannot read plaintext
34
+ // from outside the App, and the env is already the source of
35
+ // truth once the secret exists.
36
+ const fromEnv = yield* Config.Redacted(name).pipe(Effect.map((value) => ({
37
+ name,
38
+ value: Redacted.value(value),
39
+ })), Effect.orElseSucceed(() => undefined));
40
+ if (fromEnv !== undefined)
41
+ return fromEnv;
42
+ }
43
+ return yield* auth.authorize(machines.getSecret({
44
+ app_name: yield* appName,
45
+ secret_name: name,
46
+ show_secrets: globalThis.__ALCHEMY_RUNTIME__ === true,
47
+ }));
48
+ }),
49
+ }))).pipe(Layer.provide(FetchHttpClient.layer), Layer.provide(CredentialsFromAmbientOrEnv));
50
+ //# sourceMappingURL=GetSecretHttp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GetSecretHttp.js","sourceRoot":"","sources":["../src/GetSecretHttp.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,kCAAkC,CAAC;AAC7D,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,eAAe,MAAM,6BAA6B,CAAC;AAC/D,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,2BAA2B,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAExD;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,CAAC,MAAM,CACvC,SAAS,EACT,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAClB,qBAAqB,CAAC;IACpB,UAAU,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE,CACxC,MAAM,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC,QAAQ,CAAC;QAClC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,UAAU,CAAC;QAC/B,IAAI,UAAU,CAAC,mBAAmB,EAAE,CAAC;YACnC,6DAA6D;YAC7D,+DAA+D;YAC/D,6DAA6D;YAC7D,gCAAgC;YAChC,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAC/C,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;gBACrB,IAAI;gBACJ,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC;aAC7B,CAAC,CAAC,EACH,MAAM,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CACtC,CAAC;YACF,IAAI,OAAO,KAAK,SAAS;gBAAE,OAAO,OAAO,CAAC;QAC5C,CAAC;QACD,OAAO,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,CAC1B,QAAQ,CAAC,SAAS,CAAC;YACjB,QAAQ,EAAE,KAAK,CAAC,CAAC,OAAO;YACxB,WAAW,EAAE,IAAI;YACjB,YAAY,EAAE,UAAU,CAAC,mBAAmB,KAAK,IAAI;SACtD,CAAC,CACH,CAAC;IACJ,CAAC,CAAC;CACL,CAAC,CACH,CACF,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,2BAA2B,CAAC,CAAC,CAAC"}
@@ -0,0 +1,29 @@
1
+ import type * as S3 from "@distilled.cloud/aws/s3";
2
+ import * as Binding from "alchemy/Binding";
3
+ import type { RuntimeContext } from "alchemy/RuntimeContext";
4
+ import type * as Effect from "effect/Effect";
5
+ import type { Bucket } from "./Bucket.ts";
6
+ import type { TigrisCredentialsMissing } from "./Errors.ts";
7
+ export interface HeadObjectRequest extends Omit<S3.HeadObjectRequest, "Bucket"> {
8
+ }
9
+ /**
10
+ * Runtime binding for Tigris `HeadObject` over the S3 API.
11
+ *
12
+ * Bind this operation to a {@link Bucket} in Service init. Provide
13
+ * {@link HeadObjectHttp}.
14
+ *
15
+ *
16
+ * ### Inspecting Objects
17
+ * **Example:** Check an Object's Metadata
18
+ * ```typescript
19
+ * const headObject = yield* Fly.HeadObject(Data);
20
+ * const head = yield* headObject({ Key: "hello.txt" });
21
+ * ```
22
+ *
23
+ * @binding
24
+ * @product Bucket
25
+ */
26
+ export interface HeadObject extends Binding.Service<HeadObject, "Fly.HeadObject", (bucket: Bucket) => Effect.Effect<(request: HeadObjectRequest) => Effect.Effect<S3.HeadObjectOutput, S3.HeadObjectError | TigrisCredentialsMissing, RuntimeContext>>> {
27
+ }
28
+ export declare const HeadObject: HeadObject;
29
+ //# sourceMappingURL=HeadObject.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HeadObject.d.ts","sourceRoot":"","sources":["../src/HeadObject.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,EAAE,MAAM,yBAAyB,CAAC;AACnD,OAAO,KAAK,OAAO,MAAM,iBAAiB,CAAC;AAC3C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,KAAK,KAAK,MAAM,MAAM,eAAe,CAAC;AAC7C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAE5D,MAAM,WAAW,iBAAkB,SAAQ,IAAI,CAAC,EAAE,CAAC,iBAAiB,EAAE,QAAQ,CAAC;CAAG;AAElF;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,WAAW,UAAW,SAAQ,OAAO,CAAC,OAAO,CACjD,UAAU,EACV,gBAAgB,EAChB,CACE,MAAM,EAAE,MAAM,KACX,MAAM,CAAC,MAAM,CAChB,CACE,OAAO,EAAE,iBAAiB,KACvB,MAAM,CAAC,MAAM,CAChB,EAAE,CAAC,gBAAgB,EACnB,EAAE,CAAC,eAAe,GAAG,wBAAwB,EAC7C,cAAc,CACf,CACF,CACF;CAAG;AAEJ,eAAO,MAAM,UAAU,YAAgD,CAAC"}
@@ -0,0 +1,3 @@
1
+ import * as Binding from "alchemy/Binding";
2
+ export const HeadObject = Binding.Service("Fly.HeadObject");
3
+ //# sourceMappingURL=HeadObject.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HeadObject.js","sourceRoot":"","sources":["../src/HeadObject.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,OAAO,MAAM,iBAAiB,CAAC;AAyC3C,MAAM,CAAC,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAa,gBAAgB,CAAC,CAAC"}
@@ -0,0 +1,12 @@
1
+ import * as Layer from "effect/Layer";
2
+ import { HeadObject } from "./HeadObject.ts";
3
+ /**
4
+ * HTTP implementation of {@link HeadObject}. Calls distilled S3
5
+ * `headObject` against the Tigris endpoint with the bucket's credentials.
6
+ *
7
+ * @layer
8
+ * @product Bucket
9
+ * @provides Fly.HeadObject
10
+ */
11
+ export declare const HeadObjectHttp: Layer.Layer<HeadObject, never, never>;
12
+ //# sourceMappingURL=HeadObjectHttp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HeadObjectHttp.d.ts","sourceRoot":"","sources":["../src/HeadObjectHttp.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAEtC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C;;;;;;;GAOG;AACH,eAAO,MAAM,cAAc,uCAM1B,CAAC"}
@@ -0,0 +1,17 @@
1
+ import * as S3 from "@distilled.cloud/aws/s3";
2
+ import * as Layer from "effect/Layer";
3
+ import { makeTigrisS3Binding } from "./BucketBinding.js";
4
+ import { HeadObject } from "./HeadObject.js";
5
+ /**
6
+ * HTTP implementation of {@link HeadObject}. Calls distilled S3
7
+ * `headObject` against the Tigris endpoint with the bucket's credentials.
8
+ *
9
+ * @layer
10
+ * @product Bucket
11
+ * @provides Fly.HeadObject
12
+ */
13
+ export const HeadObjectHttp = Layer.effect(HeadObject, makeTigrisS3Binding({
14
+ tag: "Fly.HeadObject",
15
+ operation: S3.headObject,
16
+ }));
17
+ //# sourceMappingURL=HeadObjectHttp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HeadObjectHttp.js","sourceRoot":"","sources":["../src/HeadObjectHttp.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAC9C,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,CAAC,MAAM,CACxC,UAAU,EACV,mBAAmB,CAAC;IAClB,GAAG,EAAE,gBAAgB;IACrB,SAAS,EAAE,EAAE,CAAC,UAAU;CACzB,CAAC,CACH,CAAC"}
@@ -0,0 +1,258 @@
1
+ import * as machines from "@distilled.cloud/fly-io/machines";
2
+ import * as Provider from "alchemy/Provider";
3
+ import { Resource } from "alchemy/Resource";
4
+ import * as Effect from "effect/Effect";
5
+ import type { App } from "./App.ts";
6
+ import type { Providers } from "./Providers.ts";
7
+ /**
8
+ * A resource-valued prop: the resource itself, or an Effect that produces
9
+ * it (so `yield* App(...)` and `App(...)` both type-check).
10
+ */
11
+ type Ref<T> = T | Effect.Effect<T, never, Providers>;
12
+ /**
13
+ * Fly IP family allocated onto an App. Dedicated `v4` is billed and may
14
+ * be rejected when the org has no IPv4 quota. Prefer `v6` (free) or
15
+ * `shared_v4` (free) in tests. `private_v6` is a Flycast address: it is
16
+ * reachable only from the organization's private network.
17
+ */
18
+ export type IpAssignmentType = "v4" | "v6" | "shared_v4" | "private_v6";
19
+ export interface IpAssignmentProps {
20
+ /**
21
+ * Parent Fly App. Accepts a `Fly.App` resource or an Effect that
22
+ * produces one. Changing the App replaces the assignment.
23
+ */
24
+ app: Ref<App>;
25
+ /**
26
+ * Address family to allocate. `v6` is a dedicated IPv6 (free).
27
+ * `shared_v4` is a shared Anycast IPv4 (free). `v4` is a dedicated
28
+ * IPv4 (billed; may 400 when the org is over quota). `private_v6` is
29
+ * a Flycast IPv6 (free) that Fly's proxy serves only inside the
30
+ * private network. Changing type replaces the assignment.
31
+ */
32
+ type: IpAssignmentType;
33
+ /**
34
+ * Region for a dedicated address. Changing it replaces the assignment.
35
+ */
36
+ region?: string;
37
+ /**
38
+ * Private network a `private_v6` address is reachable from. Defaults
39
+ * to the organization's network. Create-only; changing it replaces.
40
+ */
41
+ network?: string;
42
+ /**
43
+ * Organization slug. Defaults to the current token's org. Not a
44
+ * replacement key.
45
+ */
46
+ orgSlug?: string;
47
+ /**
48
+ * Fly proxy service this address is bound to. Changing it replaces
49
+ * the assignment.
50
+ */
51
+ serviceName?: string;
52
+ }
53
+ export type IpAssignment = Resource<"Fly.IpAssignment", IpAssignmentProps, {
54
+ /** Physical Fly App name the address is assigned to. */
55
+ appName: string;
56
+ /** Allocated address. Identity of the assignment. */
57
+ ip: string;
58
+ /** Observed address family. */
59
+ type: IpAssignmentType;
60
+ /** Region for a dedicated address, if set. */
61
+ region: string | undefined;
62
+ /** Fly proxy service this address is bound to, if set. */
63
+ serviceName: string | undefined;
64
+ /** Whether the address is a shared Anycast IPv4. */
65
+ shared: boolean;
66
+ /**
67
+ * Named private network a `private_v6` address is reachable from.
68
+ * `undefined` for the organization's default network and for public
69
+ * addresses.
70
+ */
71
+ network: string | undefined;
72
+ /** RFC3339 creation timestamp, if the API returned one. */
73
+ createdAt: string | undefined;
74
+ }, never, Providers>;
75
+ declare const IpAssignmentResource: import("alchemy/Resource").ResourceClass<IpAssignment>;
76
+ /**
77
+ * A Fly.IpAssignment is an address on an {@link App}. A {@link Service}
78
+ * publishes ports. Fly's proxy load-balances `{app}.fly.dev` across
79
+ * Machines that publish a proxy service.
80
+ *
81
+ * Identity is the allocated `ip`. There is no in-place update.
82
+ *
83
+ * @see https://fly.io/docs/networking/services/
84
+ *
85
+ * ### Shared IPv4
86
+ * `shared_v4` is a shared Anycast IPv4. It is free. This is what you
87
+ * want for fly.dev over IPv4. Yield it next to the Service.
88
+ *
89
+ * **Example:** Allocate shared_v4
90
+ * ```typescript
91
+ * export const PublicIp = Fly.IpAssignment("Shared", {
92
+ * app: Site,
93
+ * type: "shared_v4",
94
+ * });
95
+ * ```
96
+ *
97
+ * :::caution[Changing `type` or `app` replaces the assignment]
98
+ * A new address is allocated. The old one is released.
99
+ * :::
100
+ *
101
+ * ### Dedicated IPv6
102
+ * `v6` is a dedicated IPv6. It is free.
103
+ *
104
+ * **Example:** Allocate v6
105
+ * ```typescript
106
+ * export const V6 = Fly.IpAssignment("V6", {
107
+ * app: Site,
108
+ * type: "v6",
109
+ * });
110
+ * ```
111
+ *
112
+ * ### Dedicated IPv4
113
+ * `v4` is a billed dedicated IPv4. It may 400 if the org has no
114
+ * quota. Prefer `shared_v4` or `v6` in tests.
115
+ *
116
+ * **Example:** Allocate v4
117
+ * ```typescript
118
+ * export const Dedicated = Fly.IpAssignment("Dedicated", {
119
+ * app: Site,
120
+ * type: "v4",
121
+ * });
122
+ * ```
123
+ *
124
+ * ### Flycast (private IPv6)
125
+ * `private_v6` is a Flycast address. Fly's proxy serves it only inside
126
+ * the organization's private network, at `{app}.flycast`. It is free.
127
+ * Use it for a backend that another App calls and the internet must
128
+ * not reach. Requests still go through the proxy, so blue/green
129
+ * cordoning, `autostart`, and `autostop` keep working. Allocate no
130
+ * public address on the same App.
131
+ *
132
+ * **Example:** Allocate private_v6
133
+ * ```typescript
134
+ * export const Private = Fly.IpAssignment("Private", {
135
+ * app: Backend,
136
+ * type: "private_v6",
137
+ * });
138
+ * ```
139
+ *
140
+ * ### Region
141
+ * `region` pins a dedicated address. Shared Anycast ignores it. See
142
+ * [Regions](/fly/compute/regions) for the list of codes.
143
+ *
144
+ * **Example:** Dedicated IPv4 in iad
145
+ * ```typescript
146
+ * export const Dedicated = Fly.IpAssignment("Dedicated", {
147
+ * app: Site,
148
+ * type: "v4",
149
+ * region: "iad",
150
+ * });
151
+ * ```
152
+ *
153
+ * :::caution[Changing `region` replaces the assignment]
154
+ * A new address is allocated in the new region.
155
+ * :::
156
+ *
157
+ * ### Service name
158
+ * `serviceName` binds the address to a Fly proxy service. Changing it
159
+ * replaces the assignment.
160
+ *
161
+ * **Example:** Bind to a named service
162
+ * ```typescript
163
+ * export const PublicIp = Fly.IpAssignment("Shared", {
164
+ * app: Site,
165
+ * type: "shared_v4",
166
+ * serviceName: "http",
167
+ * });
168
+ * ```
169
+ *
170
+ * :::caution[Changing `serviceName` replaces the assignment]
171
+ * A new address is allocated bound to the new service.
172
+ * :::
173
+ *
174
+ * ### Isolated network
175
+ * `network` names the private network a `private_v6` address is
176
+ * reachable from. Create-only.
177
+ *
178
+ * **Example:** Custom network
179
+ * ```typescript
180
+ * export const Private = Fly.IpAssignment("Private", {
181
+ * app: Backend,
182
+ * type: "private_v6",
183
+ * network: "tenant-a",
184
+ * });
185
+ * ```
186
+ *
187
+ * :::caution[Changing `network` replaces the assignment]
188
+ * A new address is allocated on the new network.
189
+ * :::
190
+ *
191
+ * ### Organization
192
+ * `orgSlug` defaults to the current token's org. It is not a
193
+ * replacement key.
194
+ *
195
+ * **Example:** Pin an org
196
+ * ```typescript
197
+ * export const PublicIp = Fly.IpAssignment("Shared", {
198
+ * app: Site,
199
+ * type: "shared_v4",
200
+ * orgSlug: "my-org",
201
+ * });
202
+ * ```
203
+ *
204
+ * ### Yield with a Service
205
+ * Allocate the address on the same App as the Service. `api.url` is
206
+ * `https://{appName}.fly.dev`.
207
+ *
208
+ * **Example:** Stack outputs
209
+ * ```typescript
210
+ * export default Alchemy.Stack(
211
+ * "MyApp",
212
+ * { providers: Fly.providers(), state: Alchemy.localState() },
213
+ * Effect.gen(function* () {
214
+ * const api = yield* Api;
215
+ * const ip = yield* PublicIp;
216
+ * return { url: api.url, ip: ip.ip };
217
+ * }),
218
+ * );
219
+ * ```
220
+ *
221
+ * @resource
222
+ * @product App
223
+ */
224
+ export declare const IpAssignment: typeof IpAssignmentResource;
225
+ declare const IpAssignmentNotCreated_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 & {
226
+ readonly _tag: "Fly.IpAssignmentNotCreated";
227
+ } & Readonly<A>;
228
+ export declare class IpAssignmentNotCreated extends IpAssignmentNotCreated_base<{
229
+ appName: string;
230
+ type: IpAssignmentType;
231
+ }> {
232
+ }
233
+ declare const IpAssignmentAppMissing_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 & {
234
+ readonly _tag: "Fly.IpAssignmentAppMissing";
235
+ } & Readonly<A>;
236
+ export declare class IpAssignmentAppMissing extends IpAssignmentAppMissing_base<{
237
+ type: IpAssignmentType;
238
+ }> {
239
+ }
240
+ /** Whether the App has any address reachable from the internet. */
241
+ export declare const hasPublicAddress: (appName: string) => Effect.Effect<boolean, machines.FlyIoOpError, machines.FlyIoOpContext>;
242
+ /**
243
+ * Converge the addresses of an App a {@link Service} owns. Every owned App
244
+ * gets a Flycast address on its private network (the organization's
245
+ * default network when `network` is omitted). A public App also gets a
246
+ * shared IPv4 and an IPv6; a private one has every public address
247
+ * released. All three types are free.
248
+ */
249
+ export declare const syncOwnedAppAddresses: (appName: string, isPublic: boolean, network?: string | undefined) => Effect.Effect<void, import("@distilled.cloud/fly-io").BadRequest | import("@distilled.cloud/fly-io").Forbidden | machines.NetworkNotFound | import("@distilled.cloud/fly-io").NotFound | machines.FlyIoOpError, machines.FlyIoOpContext>;
250
+ /**
251
+ * Add a Flycast address on `network` to an App a {@link Service} shares,
252
+ * so bound callers can reach it. Only ever adds; the address is removed
253
+ * with the App.
254
+ */
255
+ export declare const ensureFlycastAddress: (appName: string, network?: string | undefined) => Effect.Effect<void, import("@distilled.cloud/fly-io").BadRequest | import("@distilled.cloud/fly-io").Forbidden | machines.NetworkNotFound | import("@distilled.cloud/fly-io").NotFound | machines.FlyIoOpError, machines.FlyIoOpContext>;
256
+ export declare const IpAssignmentProvider: () => import("effect/Layer").Layer<Provider.Provider<IpAssignment>, never, machines.FlyIoOpContext>;
257
+ export {};
258
+ //# sourceMappingURL=IpAssignment.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IpAssignment.d.ts","sourceRoot":"","sources":["../src/IpAssignment.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,QAAQ,MAAM,kCAAkC,CAAC;AAE7D,OAAO,KAAK,QAAQ,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE5C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAGxC,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AACpC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEhD;;;GAGG;AACH,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;AAErD;;;;;GAKG;AACH,MAAM,MAAM,gBAAgB,GAAG,IAAI,GAAG,IAAI,GAAG,WAAW,GAAG,YAAY,CAAC;AAExE,MAAM,WAAW,iBAAiB;IAChC;;;OAGG;IACH,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;IACd;;;;;;OAMG;IACH,IAAI,EAAE,gBAAgB,CAAC;IACvB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,MAAM,YAAY,GAAG,QAAQ,CACjC,kBAAkB,EAClB,iBAAiB,EACjB;IACE,wDAAwD;IACxD,OAAO,EAAE,MAAM,CAAC;IAChB,qDAAqD;IACrD,EAAE,EAAE,MAAM,CAAC;IACX,+BAA+B;IAC/B,IAAI,EAAE,gBAAgB,CAAC;IACvB,8CAA8C;IAC9C,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,0DAA0D;IAC1D,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,oDAAoD;IACpD,MAAM,EAAE,OAAO,CAAC;IAChB;;;;OAIG;IACH,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,2DAA2D;IAC3D,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;CAC/B,EACD,KAAK,EACL,SAAS,CACV,CAAC;AAcF,QAAA,MAAM,oBAAoB,wDAA6C,CAAC;AAExE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmJG;AACH,eAAO,MAAM,YAAY,EAAE,OAAO,oBAIjC,CAAC;;;;AAEF,qBAAa,sBAAuB,SAAQ,4BAA+C;IACzF,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,gBAAgB,CAAC;CACxB,CAAC;CAAG;;;;AAEL,qBAAa,sBAAuB,SAAQ,4BAA+C;IACzF,IAAI,EAAE,gBAAgB,CAAC;CACxB,CAAC;CAAG;AA+FL,mEAAmE;AACnE,eAAO,MAAM,gBAAgB,YAAa,MAAM,2EAG7C,CAAC;AAEJ;;;;;;GAMG;AACH,eAAO,MAAM,qBAAqB,gTA+BhC,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,6RAO/B,CAAC;AAEH,eAAO,MAAM,oBAAoB,qGAqG7B,CAAC"}