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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (499) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +61 -2
  3. package/lib/App.d.ts +230 -0
  4. package/lib/App.d.ts.map +1 -0
  5. package/lib/App.js +340 -0
  6. package/lib/App.js.map +1 -0
  7. package/lib/AuthProvider.d.ts +22 -0
  8. package/lib/AuthProvider.d.ts.map +1 -0
  9. package/lib/AuthProvider.js +48 -0
  10. package/lib/AuthProvider.js.map +1 -0
  11. package/lib/BindService.d.ts +159 -0
  12. package/lib/BindService.d.ts.map +1 -0
  13. package/lib/BindService.js +222 -0
  14. package/lib/BindService.js.map +1 -0
  15. package/lib/Bootstrap.d.ts +8 -0
  16. package/lib/Bootstrap.d.ts.map +1 -0
  17. package/lib/Bootstrap.js +41 -0
  18. package/lib/Bootstrap.js.map +1 -0
  19. package/lib/Bucket.d.ts +278 -0
  20. package/lib/Bucket.d.ts.map +1 -0
  21. package/lib/Bucket.js +658 -0
  22. package/lib/Bucket.js.map +1 -0
  23. package/lib/BucketBinding.d.ts +33 -0
  24. package/lib/BucketBinding.d.ts.map +1 -0
  25. package/lib/BucketBinding.js +70 -0
  26. package/lib/BucketBinding.js.map +1 -0
  27. package/lib/Catalog.d.ts +28 -0
  28. package/lib/Catalog.d.ts.map +1 -0
  29. package/lib/Catalog.js +31 -0
  30. package/lib/Catalog.js.map +1 -0
  31. package/lib/Certificate.d.ts +189 -0
  32. package/lib/Certificate.d.ts.map +1 -0
  33. package/lib/Certificate.js +380 -0
  34. package/lib/Certificate.js.map +1 -0
  35. package/lib/Checkpoint.d.ts +55 -0
  36. package/lib/Checkpoint.d.ts.map +1 -0
  37. package/lib/Checkpoint.js +3 -0
  38. package/lib/Checkpoint.js.map +1 -0
  39. package/lib/CheckpointHttp.d.ts +22 -0
  40. package/lib/CheckpointHttp.d.ts.map +1 -0
  41. package/lib/CheckpointHttp.js +53 -0
  42. package/lib/CheckpointHttp.js.map +1 -0
  43. package/lib/ConnectPostgres.d.ts +58 -0
  44. package/lib/ConnectPostgres.d.ts.map +1 -0
  45. package/lib/ConnectPostgres.js +13 -0
  46. package/lib/ConnectPostgres.js.map +1 -0
  47. package/lib/ConnectPostgresHttp.d.ts +26 -0
  48. package/lib/ConnectPostgresHttp.d.ts.map +1 -0
  49. package/lib/ConnectPostgresHttp.js +57 -0
  50. package/lib/ConnectPostgresHttp.js.map +1 -0
  51. package/lib/Contributions.d.ts +7 -0
  52. package/lib/Contributions.d.ts.map +1 -0
  53. package/lib/Contributions.js +6 -0
  54. package/lib/Contributions.js.map +1 -0
  55. package/lib/Credentials.d.ts +33 -0
  56. package/lib/Credentials.d.ts.map +1 -0
  57. package/lib/Credentials.js +59 -0
  58. package/lib/Credentials.js.map +1 -0
  59. package/lib/Decrypt.d.ts +52 -0
  60. package/lib/Decrypt.d.ts.map +1 -0
  61. package/lib/Decrypt.js +3 -0
  62. package/lib/Decrypt.js.map +1 -0
  63. package/lib/DecryptHttp.d.ts +22 -0
  64. package/lib/DecryptHttp.d.ts.map +1 -0
  65. package/lib/DecryptHttp.js +43 -0
  66. package/lib/DecryptHttp.js.map +1 -0
  67. package/lib/DeleteObject.d.ts +29 -0
  68. package/lib/DeleteObject.d.ts.map +1 -0
  69. package/lib/DeleteObject.js +3 -0
  70. package/lib/DeleteObject.js.map +1 -0
  71. package/lib/DeleteObjectHttp.d.ts +12 -0
  72. package/lib/DeleteObjectHttp.d.ts.map +1 -0
  73. package/lib/DeleteObjectHttp.js +17 -0
  74. package/lib/DeleteObjectHttp.js.map +1 -0
  75. package/lib/Deployment.d.ts +51 -0
  76. package/lib/Deployment.d.ts.map +1 -0
  77. package/lib/Deployment.js +62 -0
  78. package/lib/Deployment.js.map +1 -0
  79. package/lib/DeploymentImages.d.ts +18 -0
  80. package/lib/DeploymentImages.d.ts.map +1 -0
  81. package/lib/DeploymentImages.js +61 -0
  82. package/lib/DeploymentImages.js.map +1 -0
  83. package/lib/DeploymentState.d.ts +17 -0
  84. package/lib/DeploymentState.d.ts.map +1 -0
  85. package/lib/DeploymentState.js +87 -0
  86. package/lib/DeploymentState.js.map +1 -0
  87. package/lib/Encrypt.d.ts +50 -0
  88. package/lib/Encrypt.d.ts.map +1 -0
  89. package/lib/Encrypt.js +3 -0
  90. package/lib/Encrypt.js.map +1 -0
  91. package/lib/EncryptHttp.d.ts +22 -0
  92. package/lib/EncryptHttp.d.ts.map +1 -0
  93. package/lib/EncryptHttp.js +39 -0
  94. package/lib/EncryptHttp.js.map +1 -0
  95. package/lib/Environment.d.ts +45 -0
  96. package/lib/Environment.d.ts.map +1 -0
  97. package/lib/Environment.js +43 -0
  98. package/lib/Environment.js.map +1 -0
  99. package/lib/Errors.d.ts +18 -0
  100. package/lib/Errors.d.ts.map +1 -0
  101. package/lib/Errors.js +13 -0
  102. package/lib/Errors.js.map +1 -0
  103. package/lib/Exec.d.ts +41 -0
  104. package/lib/Exec.d.ts.map +1 -0
  105. package/lib/Exec.js +3 -0
  106. package/lib/Exec.js.map +1 -0
  107. package/lib/ExecHttp.d.ts +22 -0
  108. package/lib/ExecHttp.d.ts.map +1 -0
  109. package/lib/ExecHttp.js +39 -0
  110. package/lib/ExecHttp.js.map +1 -0
  111. package/lib/GetObject.d.ts +34 -0
  112. package/lib/GetObject.d.ts.map +1 -0
  113. package/lib/GetObject.js +3 -0
  114. package/lib/GetObject.js.map +1 -0
  115. package/lib/GetObjectHttp.d.ts +12 -0
  116. package/lib/GetObjectHttp.d.ts.map +1 -0
  117. package/lib/GetObjectHttp.js +17 -0
  118. package/lib/GetObjectHttp.js.map +1 -0
  119. package/lib/GetSecret.d.ts +44 -0
  120. package/lib/GetSecret.d.ts.map +1 -0
  121. package/lib/GetSecret.js +3 -0
  122. package/lib/GetSecret.js.map +1 -0
  123. package/lib/GetSecretHttp.d.ts +22 -0
  124. package/lib/GetSecretHttp.d.ts.map +1 -0
  125. package/lib/GetSecretHttp.js +50 -0
  126. package/lib/GetSecretHttp.js.map +1 -0
  127. package/lib/HeadObject.d.ts +29 -0
  128. package/lib/HeadObject.d.ts.map +1 -0
  129. package/lib/HeadObject.js +3 -0
  130. package/lib/HeadObject.js.map +1 -0
  131. package/lib/HeadObjectHttp.d.ts +12 -0
  132. package/lib/HeadObjectHttp.d.ts.map +1 -0
  133. package/lib/HeadObjectHttp.js +17 -0
  134. package/lib/HeadObjectHttp.js.map +1 -0
  135. package/lib/IpAssignment.d.ts +258 -0
  136. package/lib/IpAssignment.d.ts.map +1 -0
  137. package/lib/IpAssignment.js +376 -0
  138. package/lib/IpAssignment.js.map +1 -0
  139. package/lib/ListObjectsV2.d.ts +29 -0
  140. package/lib/ListObjectsV2.d.ts.map +1 -0
  141. package/lib/ListObjectsV2.js +3 -0
  142. package/lib/ListObjectsV2.js.map +1 -0
  143. package/lib/ListObjectsV2Http.d.ts +12 -0
  144. package/lib/ListObjectsV2Http.d.ts.map +1 -0
  145. package/lib/ListObjectsV2Http.js +17 -0
  146. package/lib/ListObjectsV2Http.js.map +1 -0
  147. package/lib/ListSecrets.d.ts +53 -0
  148. package/lib/ListSecrets.d.ts.map +1 -0
  149. package/lib/ListSecrets.js +3 -0
  150. package/lib/ListSecrets.js.map +1 -0
  151. package/lib/ListSecretsHttp.d.ts +22 -0
  152. package/lib/ListSecretsHttp.d.ts.map +1 -0
  153. package/lib/ListSecretsHttp.js +35 -0
  154. package/lib/ListSecretsHttp.js.map +1 -0
  155. package/lib/Machine.d.ts +802 -0
  156. package/lib/Machine.d.ts.map +1 -0
  157. package/lib/Machine.js +773 -0
  158. package/lib/Machine.js.map +1 -0
  159. package/lib/MachineContainers.d.ts +44 -0
  160. package/lib/MachineContainers.d.ts.map +1 -0
  161. package/lib/MachineContainers.js +115 -0
  162. package/lib/MachineContainers.js.map +1 -0
  163. package/lib/Metadata.d.ts +109 -0
  164. package/lib/Metadata.d.ts.map +1 -0
  165. package/lib/Metadata.js +159 -0
  166. package/lib/Metadata.js.map +1 -0
  167. package/lib/MountVolume.d.ts +295 -0
  168. package/lib/MountVolume.d.ts.map +1 -0
  169. package/lib/MountVolume.js +20 -0
  170. package/lib/MountVolume.js.map +1 -0
  171. package/lib/Postgres.d.ts +298 -0
  172. package/lib/Postgres.d.ts.map +1 -0
  173. package/lib/Postgres.js +508 -0
  174. package/lib/Postgres.js.map +1 -0
  175. package/lib/PostgresMigrations.d.ts +35 -0
  176. package/lib/PostgresMigrations.d.ts.map +1 -0
  177. package/lib/PostgresMigrations.js +110 -0
  178. package/lib/PostgresMigrations.js.map +1 -0
  179. package/lib/Providers.d.ts +38 -0
  180. package/lib/Providers.d.ts.map +1 -0
  181. package/lib/Providers.js +95 -0
  182. package/lib/Providers.js.map +1 -0
  183. package/lib/PutObject.d.ts +35 -0
  184. package/lib/PutObject.d.ts.map +1 -0
  185. package/lib/PutObject.js +3 -0
  186. package/lib/PutObject.js.map +1 -0
  187. package/lib/PutObjectHttp.d.ts +12 -0
  188. package/lib/PutObjectHttp.d.ts.map +1 -0
  189. package/lib/PutObjectHttp.js +17 -0
  190. package/lib/PutObjectHttp.js.map +1 -0
  191. package/lib/ReadRedis.d.ts +26 -0
  192. package/lib/ReadRedis.d.ts.map +1 -0
  193. package/lib/ReadRedis.js +3 -0
  194. package/lib/ReadRedis.js.map +1 -0
  195. package/lib/ReadRedisHttp.d.ts +11 -0
  196. package/lib/ReadRedisHttp.d.ts.map +1 -0
  197. package/lib/ReadRedisHttp.js +15 -0
  198. package/lib/ReadRedisHttp.js.map +1 -0
  199. package/lib/ReadWriteRedis.d.ts +29 -0
  200. package/lib/ReadWriteRedis.d.ts.map +1 -0
  201. package/lib/ReadWriteRedis.js +3 -0
  202. package/lib/ReadWriteRedis.js.map +1 -0
  203. package/lib/ReadWriteRedisHttp.d.ts +11 -0
  204. package/lib/ReadWriteRedisHttp.d.ts.map +1 -0
  205. package/lib/ReadWriteRedisHttp.js +15 -0
  206. package/lib/ReadWriteRedisHttp.js.map +1 -0
  207. package/lib/Redis.d.ts +252 -0
  208. package/lib/Redis.d.ts.map +1 -0
  209. package/lib/Redis.js +608 -0
  210. package/lib/Redis.js.map +1 -0
  211. package/lib/RedisBinding.d.ts +7 -0
  212. package/lib/RedisBinding.d.ts.map +1 -0
  213. package/lib/RedisBinding.js +53 -0
  214. package/lib/RedisBinding.js.map +1 -0
  215. package/lib/RedisHttp.d.ts +8 -0
  216. package/lib/RedisHttp.d.ts.map +1 -0
  217. package/lib/RedisHttp.js +8 -0
  218. package/lib/RedisHttp.js.map +1 -0
  219. package/lib/Region.d.ts +16 -0
  220. package/lib/Region.d.ts.map +1 -0
  221. package/lib/Region.js +13 -0
  222. package/lib/Region.js.map +1 -0
  223. package/lib/Secret.d.ts +190 -0
  224. package/lib/Secret.d.ts.map +1 -0
  225. package/lib/Secret.js +310 -0
  226. package/lib/Secret.js.map +1 -0
  227. package/lib/SecretHttp.d.ts +54 -0
  228. package/lib/SecretHttp.d.ts.map +1 -0
  229. package/lib/SecretHttp.js +66 -0
  230. package/lib/SecretHttp.js.map +1 -0
  231. package/lib/SecretKey.d.ts +164 -0
  232. package/lib/SecretKey.d.ts.map +1 -0
  233. package/lib/SecretKey.js +277 -0
  234. package/lib/SecretKey.js.map +1 -0
  235. package/lib/SecretKeyHttp.d.ts +14 -0
  236. package/lib/SecretKeyHttp.d.ts.map +1 -0
  237. package/lib/SecretKeyHttp.js +5 -0
  238. package/lib/SecretKeyHttp.js.map +1 -0
  239. package/lib/Service.d.ts +1022 -0
  240. package/lib/Service.d.ts.map +1 -0
  241. package/lib/Service.js +1397 -0
  242. package/lib/Service.js.map +1 -0
  243. package/lib/Sign.d.ts +36 -0
  244. package/lib/Sign.d.ts.map +1 -0
  245. package/lib/Sign.js +3 -0
  246. package/lib/Sign.js.map +1 -0
  247. package/lib/SignHttp.d.ts +22 -0
  248. package/lib/SignHttp.d.ts.map +1 -0
  249. package/lib/SignHttp.js +36 -0
  250. package/lib/SignHttp.js.map +1 -0
  251. package/lib/Sprite.d.ts +283 -0
  252. package/lib/Sprite.d.ts.map +1 -0
  253. package/lib/Sprite.js +469 -0
  254. package/lib/Sprite.js.map +1 -0
  255. package/lib/SpriteHttp.d.ts +25 -0
  256. package/lib/SpriteHttp.d.ts.map +1 -0
  257. package/lib/SpriteHttp.js +33 -0
  258. package/lib/SpriteHttp.js.map +1 -0
  259. package/lib/Verify.d.ts +37 -0
  260. package/lib/Verify.d.ts.map +1 -0
  261. package/lib/Verify.js +3 -0
  262. package/lib/Verify.js.map +1 -0
  263. package/lib/VerifyHttp.d.ts +22 -0
  264. package/lib/VerifyHttp.d.ts.map +1 -0
  265. package/lib/VerifyHttp.js +38 -0
  266. package/lib/VerifyHttp.js.map +1 -0
  267. package/lib/Volume.d.ts +53 -0
  268. package/lib/Volume.d.ts.map +1 -0
  269. package/lib/Volume.js +188 -0
  270. package/lib/Volume.js.map +1 -0
  271. package/lib/VolumeSnapshot.d.ts +135 -0
  272. package/lib/VolumeSnapshot.d.ts.map +1 -0
  273. package/lib/VolumeSnapshot.js +213 -0
  274. package/lib/VolumeSnapshot.js.map +1 -0
  275. package/lib/Website/AssetDeployment.d.ts +43 -0
  276. package/lib/Website/AssetDeployment.d.ts.map +1 -0
  277. package/lib/Website/AssetDeployment.js +162 -0
  278. package/lib/Website/AssetDeployment.js.map +1 -0
  279. package/lib/Website/Astro.d.ts +87 -0
  280. package/lib/Website/Astro.d.ts.map +1 -0
  281. package/lib/Website/Astro.js +55 -0
  282. package/lib/Website/Astro.js.map +1 -0
  283. package/lib/Website/Foldkit.d.ts +52 -0
  284. package/lib/Website/Foldkit.d.ts.map +1 -0
  285. package/lib/Website/Foldkit.js +45 -0
  286. package/lib/Website/Foldkit.js.map +1 -0
  287. package/lib/Website/FrameworkSite.d.ts +175 -0
  288. package/lib/Website/FrameworkSite.d.ts.map +1 -0
  289. package/lib/Website/FrameworkSite.js +162 -0
  290. package/lib/Website/FrameworkSite.js.map +1 -0
  291. package/lib/Website/Nextjs.d.ts +54 -0
  292. package/lib/Website/Nextjs.d.ts.map +1 -0
  293. package/lib/Website/Nextjs.js +46 -0
  294. package/lib/Website/Nextjs.js.map +1 -0
  295. package/lib/Website/Nuxt.d.ts +51 -0
  296. package/lib/Website/Nuxt.d.ts.map +1 -0
  297. package/lib/Website/Nuxt.js +36 -0
  298. package/lib/Website/Nuxt.js.map +1 -0
  299. package/lib/Website/Octane.d.ts +49 -0
  300. package/lib/Website/Octane.d.ts.map +1 -0
  301. package/lib/Website/Octane.js +39 -0
  302. package/lib/Website/Octane.js.map +1 -0
  303. package/lib/Website/ReactRouter.d.ts +80 -0
  304. package/lib/Website/ReactRouter.d.ts.map +1 -0
  305. package/lib/Website/ReactRouter.js +70 -0
  306. package/lib/Website/ReactRouter.js.map +1 -0
  307. package/lib/Website/SolidStart.d.ts +93 -0
  308. package/lib/Website/SolidStart.d.ts.map +1 -0
  309. package/lib/Website/SolidStart.js +71 -0
  310. package/lib/Website/SolidStart.js.map +1 -0
  311. package/lib/Website/StaticSite.d.ts +155 -0
  312. package/lib/Website/StaticSite.d.ts.map +1 -0
  313. package/lib/Website/StaticSite.js +168 -0
  314. package/lib/Website/StaticSite.js.map +1 -0
  315. package/lib/Website/SvelteKit.d.ts +52 -0
  316. package/lib/Website/SvelteKit.d.ts.map +1 -0
  317. package/lib/Website/SvelteKit.js +37 -0
  318. package/lib/Website/SvelteKit.js.map +1 -0
  319. package/lib/Website/TanStackStart.d.ts +76 -0
  320. package/lib/Website/TanStackStart.d.ts.map +1 -0
  321. package/lib/Website/TanStackStart.js +66 -0
  322. package/lib/Website/TanStackStart.js.map +1 -0
  323. package/lib/Website/Vinext.d.ts +73 -0
  324. package/lib/Website/Vinext.d.ts.map +1 -0
  325. package/lib/Website/Vinext.js +67 -0
  326. package/lib/Website/Vinext.js.map +1 -0
  327. package/lib/Website/Vite.d.ts +103 -0
  328. package/lib/Website/Vite.d.ts.map +1 -0
  329. package/lib/Website/Vite.js +91 -0
  330. package/lib/Website/Vite.js.map +1 -0
  331. package/lib/Website/Vocs.d.ts +52 -0
  332. package/lib/Website/Vocs.d.ts.map +1 -0
  333. package/lib/Website/Vocs.js +38 -0
  334. package/lib/Website/Vocs.js.map +1 -0
  335. package/lib/Website/Waku.d.ts +64 -0
  336. package/lib/Website/Waku.d.ts.map +1 -0
  337. package/lib/Website/Waku.js +39 -0
  338. package/lib/Website/Waku.js.map +1 -0
  339. package/lib/Website/index.d.ts +17 -0
  340. package/lib/Website/index.d.ts.map +1 -0
  341. package/lib/Website/index.js +17 -0
  342. package/lib/Website/index.js.map +1 -0
  343. package/lib/WriteCertificates.d.ts +63 -0
  344. package/lib/WriteCertificates.d.ts.map +1 -0
  345. package/lib/WriteCertificates.js +3 -0
  346. package/lib/WriteCertificates.js.map +1 -0
  347. package/lib/WriteCertificatesHttp.d.ts +25 -0
  348. package/lib/WriteCertificatesHttp.d.ts.map +1 -0
  349. package/lib/WriteCertificatesHttp.js +67 -0
  350. package/lib/WriteCertificatesHttp.js.map +1 -0
  351. package/lib/WriteRedis.d.ts +26 -0
  352. package/lib/WriteRedis.d.ts.map +1 -0
  353. package/lib/WriteRedis.js +3 -0
  354. package/lib/WriteRedis.js.map +1 -0
  355. package/lib/WriteRedisHttp.d.ts +11 -0
  356. package/lib/WriteRedisHttp.d.ts.map +1 -0
  357. package/lib/WriteRedisHttp.js +15 -0
  358. package/lib/WriteRedisHttp.js.map +1 -0
  359. package/lib/WriteSecret.d.ts +68 -0
  360. package/lib/WriteSecret.d.ts.map +1 -0
  361. package/lib/WriteSecret.js +4 -0
  362. package/lib/WriteSecret.js.map +1 -0
  363. package/lib/WriteSecretHttp.d.ts +26 -0
  364. package/lib/WriteSecretHttp.d.ts.map +1 -0
  365. package/lib/WriteSecretHttp.js +54 -0
  366. package/lib/WriteSecretHttp.js.map +1 -0
  367. package/lib/bluegreen.d.ts +36 -0
  368. package/lib/bluegreen.d.ts.map +1 -0
  369. package/lib/bluegreen.js +458 -0
  370. package/lib/bluegreen.js.map +1 -0
  371. package/lib/hosted.d.ts +172 -0
  372. package/lib/hosted.d.ts.map +1 -0
  373. package/lib/hosted.js +458 -0
  374. package/lib/hosted.js.map +1 -0
  375. package/lib/index.d.ts +65 -0
  376. package/lib/index.d.ts.map +1 -0
  377. package/lib/index.js +63 -0
  378. package/lib/index.js.map +1 -0
  379. package/lib/internal/RemoteBuilder.d.ts +28 -0
  380. package/lib/internal/RemoteBuilder.d.ts.map +1 -0
  381. package/lib/internal/RemoteBuilder.js +145 -0
  382. package/lib/internal/RemoteBuilder.js.map +1 -0
  383. package/lib/leases.d.ts +53 -0
  384. package/lib/leases.d.ts.map +1 -0
  385. package/lib/leases.js +279 -0
  386. package/lib/leases.js.map +1 -0
  387. package/lib/ports.d.ts +51 -0
  388. package/lib/ports.d.ts.map +1 -0
  389. package/lib/ports.js +123 -0
  390. package/lib/ports.js.map +1 -0
  391. package/lib/replicas.d.ts +270 -0
  392. package/lib/replicas.d.ts.map +1 -0
  393. package/lib/replicas.js +969 -0
  394. package/lib/replicas.js.map +1 -0
  395. package/lib/rpc.d.ts +35 -0
  396. package/lib/rpc.d.ts.map +1 -0
  397. package/lib/rpc.js +113 -0
  398. package/lib/rpc.js.map +1 -0
  399. package/package.json +97 -3
  400. package/src/App.ts +516 -0
  401. package/src/AuthProvider.ts +68 -0
  402. package/src/BindService.ts +304 -0
  403. package/src/Bootstrap.ts +66 -0
  404. package/src/Bucket.ts +916 -0
  405. package/src/BucketBinding.ts +128 -0
  406. package/src/Catalog.ts +43 -0
  407. package/src/Certificate.ts +548 -0
  408. package/src/Checkpoint.ts +69 -0
  409. package/src/CheckpointHttp.ts +66 -0
  410. package/src/ConnectPostgres.ts +68 -0
  411. package/src/ConnectPostgresHttp.ts +77 -0
  412. package/src/Contributions.ts +9 -0
  413. package/src/Credentials.ts +102 -0
  414. package/src/Decrypt.ts +62 -0
  415. package/src/DecryptHttp.ts +52 -0
  416. package/src/DeleteObject.ts +43 -0
  417. package/src/DeleteObjectHttp.ts +20 -0
  418. package/src/Deployment.ts +121 -0
  419. package/src/DeploymentImages.ts +84 -0
  420. package/src/DeploymentState.ts +104 -0
  421. package/src/Encrypt.ts +60 -0
  422. package/src/EncryptHttp.ts +48 -0
  423. package/src/Environment.ts +81 -0
  424. package/src/Errors.ts +14 -0
  425. package/src/Exec.ts +50 -0
  426. package/src/ExecHttp.ts +47 -0
  427. package/src/GetObject.ts +48 -0
  428. package/src/GetObjectHttp.ts +20 -0
  429. package/src/GetSecret.ts +48 -0
  430. package/src/GetSecretHttp.ts +60 -0
  431. package/src/HeadObject.ts +43 -0
  432. package/src/HeadObjectHttp.ts +20 -0
  433. package/src/IpAssignment.ts +522 -0
  434. package/src/ListObjectsV2.ts +43 -0
  435. package/src/ListObjectsV2Http.ts +20 -0
  436. package/src/ListSecrets.ts +57 -0
  437. package/src/ListSecretsHttp.ts +43 -0
  438. package/src/Machine.ts +1268 -0
  439. package/src/MachineContainers.ts +152 -0
  440. package/src/Metadata.ts +195 -0
  441. package/src/MountVolume.ts +315 -0
  442. package/src/Postgres.ts +777 -0
  443. package/src/PostgresMigrations.ts +153 -0
  444. package/src/Providers.ts +155 -0
  445. package/src/PutObject.ts +49 -0
  446. package/src/PutObjectHttp.ts +20 -0
  447. package/src/ReadRedis.ts +31 -0
  448. package/src/ReadRedisHttp.ts +18 -0
  449. package/src/ReadWriteRedis.ts +33 -0
  450. package/src/ReadWriteRedisHttp.ts +18 -0
  451. package/src/Redis.ts +820 -0
  452. package/src/RedisBinding.ts +64 -0
  453. package/src/RedisHttp.ts +11 -0
  454. package/src/Region.ts +44 -0
  455. package/src/Secret.ts +405 -0
  456. package/src/SecretHttp.ts +149 -0
  457. package/src/SecretKey.ts +389 -0
  458. package/src/SecretKeyHttp.ts +23 -0
  459. package/src/Service.ts +1934 -0
  460. package/src/Sign.ts +46 -0
  461. package/src/SignHttp.ts +44 -0
  462. package/src/Sprite.ts +671 -0
  463. package/src/SpriteHttp.ts +50 -0
  464. package/src/Verify.ts +47 -0
  465. package/src/VerifyHttp.ts +46 -0
  466. package/src/Volume.ts +264 -0
  467. package/src/VolumeSnapshot.ts +321 -0
  468. package/src/Website/AssetDeployment.ts +294 -0
  469. package/src/Website/Astro.ts +87 -0
  470. package/src/Website/Foldkit.ts +54 -0
  471. package/src/Website/FrameworkSite.ts +363 -0
  472. package/src/Website/Nextjs.ts +50 -0
  473. package/src/Website/Nuxt.ts +48 -0
  474. package/src/Website/Octane.ts +44 -0
  475. package/src/Website/ReactRouter.ts +76 -0
  476. package/src/Website/SolidStart.ts +90 -0
  477. package/src/Website/StaticSite.ts +275 -0
  478. package/src/Website/SvelteKit.ts +49 -0
  479. package/src/Website/TanStackStart.ts +72 -0
  480. package/src/Website/Vinext.ts +79 -0
  481. package/src/Website/Vite.ts +112 -0
  482. package/src/Website/Vocs.ts +50 -0
  483. package/src/Website/Waku.ts +65 -0
  484. package/src/Website/index.ts +16 -0
  485. package/src/WriteCertificates.ts +90 -0
  486. package/src/WriteCertificatesHttp.ts +93 -0
  487. package/src/WriteRedis.ts +31 -0
  488. package/src/WriteRedisHttp.ts +18 -0
  489. package/src/WriteSecret.ts +86 -0
  490. package/src/WriteSecretHttp.ts +71 -0
  491. package/src/bluegreen.ts +708 -0
  492. package/src/globals.d.ts +2 -0
  493. package/src/hosted.ts +668 -0
  494. package/src/index.ts +64 -0
  495. package/src/internal/RemoteBuilder.ts +224 -0
  496. package/src/leases.ts +437 -0
  497. package/src/ports.ts +177 -0
  498. package/src/replicas.ts +1480 -0
  499. package/src/rpc.ts +136 -0
@@ -0,0 +1,80 @@
1
+ import { type FrameworkSiteProps } from "./FrameworkSite.ts";
2
+ /** The framework-integration package that drives the React Router build. */
3
+ export declare const REACT_ROUTER_FRAMEWORK_SPECIFIER = "@alchemy.run/frontend-frameworks/react-router";
4
+ /** The Node container deploy target for the React Router build. */
5
+ export declare const REACT_ROUTER_NODE_TARGET_SPECIFIER = "@alchemy.run/frontend-frameworks/react-router/node";
6
+ export interface ReactRouterProps extends FrameworkSiteProps {
7
+ }
8
+ /**
9
+ * Deploy a [React Router](https://reactrouter.com) v7 app (framework mode)
10
+ * to Fly: the SSR server on a Machine, static assets baked into the image,
11
+ * served assets-first then the framework handler.
12
+ *
13
+ * The build runs through
14
+ * `@alchemy.run/frontend-frameworks/react-router` with the
15
+ * `@alchemy.run/frontend-frameworks/react-router/node` deploy target — both
16
+ * must be installed in your project, alongside `@react-router/dev`,
17
+ * `react-router`, and `vite`.
18
+ *
19
+ * Your `vite.config.ts` needs no adapter wiring. React Router's server
20
+ * build is a `ServerBuild` manifest rather than a request handler, so the
21
+ * integration wraps the manifest with `createRequestHandler` and packages
22
+ * the resulting fetch handler as a Node HTTP server on port 3000.
23
+ *
24
+ * React Server Components (React Router's `unstable` RSC plugin) and
25
+ * multi-environment builds are not supported yet — the build fails with an
26
+ * actionable error when more than one server entry is emitted.
27
+ *
28
+ *
29
+ * ### Creating React Router Sites
30
+ * **Example:** Basic React Router App
31
+ * ```typescript
32
+ * const site = yield* Fly.Website.ReactRouter("Web", {
33
+ * rootDir: "./app",
34
+ * });
35
+ * ```
36
+ *
37
+ * **Example:** Custom Domain
38
+ * ```typescript
39
+ * const site = yield* Fly.Website.ReactRouter("Web", {
40
+ * rootDir: "./app",
41
+ * domain: "app.example.com",
42
+ * });
43
+ * ```
44
+ *
45
+ * ### Server Configuration
46
+ * **Example:** Process Environment
47
+ * ```typescript
48
+ * const site = yield* Fly.Website.ReactRouter("Web", {
49
+ * rootDir: "./app",
50
+ * env: {
51
+ * GREETING: "Hello from React Router on Fly!",
52
+ * },
53
+ * });
54
+ * ```
55
+ *
56
+ * **Example:** Read An Environment Variable From A Loader
57
+ * ```typescript
58
+ * // app/routes/home.tsx
59
+ * export function loader() {
60
+ * return { greeting: process.env.GREETING ?? "Hello!" };
61
+ * }
62
+ * ```
63
+ *
64
+ * @resource
65
+ * @product Website
66
+ */
67
+ export declare const ReactRouter: (id: string, props?: ReactRouterProps) => import("effect/Effect").Effect<{
68
+ url: import("alchemy/Output").Output<string | undefined, never>;
69
+ app: undefined;
70
+ service: undefined;
71
+ ip: undefined;
72
+ certificate: undefined;
73
+ } | {
74
+ url: string | import("alchemy/Output").Output<string, never>;
75
+ app: import("../App.ts").App;
76
+ service: import("../Service.ts").Service;
77
+ ip: import("../IpAssignment.ts").IpAssignment;
78
+ certificate: import("../Certificate.ts").Certificate | undefined;
79
+ }, never, import("alchemy/AlchemyContext").AlchemyContext | import("effect/FileSystem").FileSystem | import("effect/Path").Path | import("alchemy/Provider").Provider<import("alchemy/Website/Server").Server> | import("../Providers.ts").Providers>;
80
+ //# sourceMappingURL=ReactRouter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReactRouter.d.ts","sourceRoot":"","sources":["../../src/Website/ReactRouter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAE5E,4EAA4E;AAC5E,eAAO,MAAM,gCAAgC,kDAAkD,CAAC;AAEhG,mEAAmE;AACnE,eAAO,MAAM,kCAAkC,uDACO,CAAC;AAEvD,MAAM,WAAW,gBAAiB,SAAQ,kBAAkB;CAAG;AAE/D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0DG;AACH,eAAO,MAAM,WAAW,OAAQ,MAAM,UAAS,gBAAgB;;;;;;;;;;;;qPAK3D,CAAC"}
@@ -0,0 +1,70 @@
1
+ import { frameworkSite } from "./FrameworkSite.js";
2
+ /** The framework-integration package that drives the React Router build. */
3
+ export const REACT_ROUTER_FRAMEWORK_SPECIFIER = "@alchemy.run/frontend-frameworks/react-router";
4
+ /** The Node container deploy target for the React Router build. */
5
+ export const REACT_ROUTER_NODE_TARGET_SPECIFIER = "@alchemy.run/frontend-frameworks/react-router/node";
6
+ /**
7
+ * Deploy a [React Router](https://reactrouter.com) v7 app (framework mode)
8
+ * to Fly: the SSR server on a Machine, static assets baked into the image,
9
+ * served assets-first then the framework handler.
10
+ *
11
+ * The build runs through
12
+ * `@alchemy.run/frontend-frameworks/react-router` with the
13
+ * `@alchemy.run/frontend-frameworks/react-router/node` deploy target — both
14
+ * must be installed in your project, alongside `@react-router/dev`,
15
+ * `react-router`, and `vite`.
16
+ *
17
+ * Your `vite.config.ts` needs no adapter wiring. React Router's server
18
+ * build is a `ServerBuild` manifest rather than a request handler, so the
19
+ * integration wraps the manifest with `createRequestHandler` and packages
20
+ * the resulting fetch handler as a Node HTTP server on port 3000.
21
+ *
22
+ * React Server Components (React Router's `unstable` RSC plugin) and
23
+ * multi-environment builds are not supported yet — the build fails with an
24
+ * actionable error when more than one server entry is emitted.
25
+ *
26
+ *
27
+ * ### Creating React Router Sites
28
+ * **Example:** Basic React Router App
29
+ * ```typescript
30
+ * const site = yield* Fly.Website.ReactRouter("Web", {
31
+ * rootDir: "./app",
32
+ * });
33
+ * ```
34
+ *
35
+ * **Example:** Custom Domain
36
+ * ```typescript
37
+ * const site = yield* Fly.Website.ReactRouter("Web", {
38
+ * rootDir: "./app",
39
+ * domain: "app.example.com",
40
+ * });
41
+ * ```
42
+ *
43
+ * ### Server Configuration
44
+ * **Example:** Process Environment
45
+ * ```typescript
46
+ * const site = yield* Fly.Website.ReactRouter("Web", {
47
+ * rootDir: "./app",
48
+ * env: {
49
+ * GREETING: "Hello from React Router on Fly!",
50
+ * },
51
+ * });
52
+ * ```
53
+ *
54
+ * **Example:** Read An Environment Variable From A Loader
55
+ * ```typescript
56
+ * // app/routes/home.tsx
57
+ * export function loader() {
58
+ * return { greeting: process.env.GREETING ?? "Hello!" };
59
+ * }
60
+ * ```
61
+ *
62
+ * @resource
63
+ * @product Website
64
+ */
65
+ export const ReactRouter = (id, props = {}) => frameworkSite(id, props, {
66
+ name: "ReactRouter",
67
+ framework: REACT_ROUTER_FRAMEWORK_SPECIFIER,
68
+ target: REACT_ROUTER_NODE_TARGET_SPECIFIER,
69
+ });
70
+ //# sourceMappingURL=ReactRouter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReactRouter.js","sourceRoot":"","sources":["../../src/Website/ReactRouter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAA2B,MAAM,oBAAoB,CAAC;AAE5E,4EAA4E;AAC5E,MAAM,CAAC,MAAM,gCAAgC,GAAG,+CAA+C,CAAC;AAEhG,mEAAmE;AACnE,MAAM,CAAC,MAAM,kCAAkC,GAC7C,oDAAoD,CAAC;AAIvD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0DG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,EAAU,EAAE,KAAK,GAAqB,EAAE,EAAE,EAAE,CACtE,aAAa,CAAC,EAAE,EAAE,KAAK,EAAE;IACvB,IAAI,EAAE,aAAa;IACnB,SAAS,EAAE,gCAAgC;IAC3C,MAAM,EAAE,kCAAkC;CAC3C,CAAC,CAAC"}
@@ -0,0 +1,93 @@
1
+ import { type FrameworkSiteProps } from "./FrameworkSite.ts";
2
+ /** The framework-integration package that drives the SolidStart build. */
3
+ export declare const SOLIDSTART_FRAMEWORK_SPECIFIER = "@alchemy.run/frontend-frameworks/solidstart";
4
+ /** The Node container deploy target for the SolidStart build. */
5
+ export declare const SOLIDSTART_NODE_TARGET_SPECIFIER = "@alchemy.run/frontend-frameworks/solidstart/node";
6
+ export interface SolidStartProps extends FrameworkSiteProps {
7
+ /**
8
+ * Nitro options forwarded into the nitro plugin the integration appends
9
+ * (prerendering, route rules, storage, ...). `preset` is owned by the
10
+ * Node deploy target and may not be set here. JSON-serializable values
11
+ * only — no functions or plugin instances.
12
+ *
13
+ * This is a prop (rather than project config) because the integration
14
+ * owns the nitro plugin instance: a `nitroV2Plugin()` in your project's
15
+ * `vite.config.*` is rejected, so this prop is the one home for nitro
16
+ * options — and it accepts values derived from other resources' Outputs,
17
+ * which a config file cannot.
18
+ */
19
+ nitro?: Record<string, unknown>;
20
+ }
21
+ /**
22
+ * Deploy a [SolidStart](https://start.solidjs.com) application to Fly: the
23
+ * SSR server on a Machine, static assets (prerendered pages included)
24
+ * baked into the image, served assets-first then the framework handler.
25
+ *
26
+ * The build runs through `@alchemy.run/frontend-frameworks/solidstart` with
27
+ * the `@alchemy.run/frontend-frameworks/solidstart/node` deploy target —
28
+ * both must be installed in your project, alongside `@solidjs/start` and
29
+ * `@solidjs/vite-plugin-nitro-2`.
30
+ *
31
+ * Your `vite.config.ts` needs no adapter wiring: the integration drives the
32
+ * project's own `vite build` and appends its own nitro plugin instance
33
+ * carrying nitro's `node` preset.
34
+ *
35
+ *
36
+ * ### Creating SolidStart Sites
37
+ * **Example:** Basic SolidStart App
38
+ * ```typescript
39
+ * const site = yield* Fly.Website.SolidStart("Web", {
40
+ * rootDir: "./app",
41
+ * });
42
+ * ```
43
+ *
44
+ * **Example:** Custom Domain
45
+ * ```typescript
46
+ * const site = yield* Fly.Website.SolidStart("Web", {
47
+ * rootDir: "./app",
48
+ * domain: "app.example.com",
49
+ * });
50
+ * ```
51
+ *
52
+ * ### Server Configuration
53
+ * **Example:** Process Environment
54
+ * ```typescript
55
+ * const site = yield* Fly.Website.SolidStart("Web", {
56
+ * rootDir: "./app",
57
+ * env: {
58
+ * GREETING: "Hello from SolidStart on Fly!",
59
+ * },
60
+ * });
61
+ * ```
62
+ *
63
+ * ### Prerendering
64
+ * The integration owns the nitro plugin instance (a `nitroV2Plugin()` in
65
+ * your `vite.config.*` is rejected), so nitro options — prerendering
66
+ * included — go on the `nitro` prop. Prerendered pages are baked into the
67
+ * image and served as static files.
68
+ *
69
+ * **Example:** Prerender Routes
70
+ * ```typescript
71
+ * const site = yield* Fly.Website.SolidStart("Web", {
72
+ * rootDir: "./app",
73
+ * nitro: { prerender: { routes: ["/", "/about"] } },
74
+ * });
75
+ * ```
76
+ *
77
+ * @resource
78
+ * @product Website
79
+ */
80
+ export declare const SolidStart: (id: string, props?: SolidStartProps) => import("effect/Effect").Effect<{
81
+ url: import("alchemy/Output").Output<string | undefined, never>;
82
+ app: undefined;
83
+ service: undefined;
84
+ ip: undefined;
85
+ certificate: undefined;
86
+ } | {
87
+ url: string | import("alchemy/Output").Output<string, never>;
88
+ app: import("../App.ts").App;
89
+ service: import("../Service.ts").Service;
90
+ ip: import("../IpAssignment.ts").IpAssignment;
91
+ certificate: import("../Certificate.ts").Certificate | undefined;
92
+ }, never, import("alchemy/AlchemyContext").AlchemyContext | import("effect/FileSystem").FileSystem | import("effect/Path").Path | import("alchemy/Provider").Provider<import("alchemy/Website/Server").Server> | import("../Providers.ts").Providers>;
93
+ //# sourceMappingURL=SolidStart.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SolidStart.d.ts","sourceRoot":"","sources":["../../src/Website/SolidStart.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAE5E,0EAA0E;AAC1E,eAAO,MAAM,8BAA8B,gDAAgD,CAAC;AAE5F,iEAAiE;AACjE,eAAO,MAAM,gCAAgC,qDAAqD,CAAC;AAEnG,MAAM,WAAW,eAAgB,SAAQ,kBAAkB;IACzD;;;;;;;;;;;OAWG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0DG;AACH,eAAO,MAAM,UAAU,OAAQ,MAAM,UAAS,eAAe;;;;;;;;;;;;qPAMzD,CAAC"}
@@ -0,0 +1,71 @@
1
+ import { frameworkSite } from "./FrameworkSite.js";
2
+ /** The framework-integration package that drives the SolidStart build. */
3
+ export const SOLIDSTART_FRAMEWORK_SPECIFIER = "@alchemy.run/frontend-frameworks/solidstart";
4
+ /** The Node container deploy target for the SolidStart build. */
5
+ export const SOLIDSTART_NODE_TARGET_SPECIFIER = "@alchemy.run/frontend-frameworks/solidstart/node";
6
+ /**
7
+ * Deploy a [SolidStart](https://start.solidjs.com) application to Fly: the
8
+ * SSR server on a Machine, static assets (prerendered pages included)
9
+ * baked into the image, served assets-first then the framework handler.
10
+ *
11
+ * The build runs through `@alchemy.run/frontend-frameworks/solidstart` with
12
+ * the `@alchemy.run/frontend-frameworks/solidstart/node` deploy target —
13
+ * both must be installed in your project, alongside `@solidjs/start` and
14
+ * `@solidjs/vite-plugin-nitro-2`.
15
+ *
16
+ * Your `vite.config.ts` needs no adapter wiring: the integration drives the
17
+ * project's own `vite build` and appends its own nitro plugin instance
18
+ * carrying nitro's `node` preset.
19
+ *
20
+ *
21
+ * ### Creating SolidStart Sites
22
+ * **Example:** Basic SolidStart App
23
+ * ```typescript
24
+ * const site = yield* Fly.Website.SolidStart("Web", {
25
+ * rootDir: "./app",
26
+ * });
27
+ * ```
28
+ *
29
+ * **Example:** Custom Domain
30
+ * ```typescript
31
+ * const site = yield* Fly.Website.SolidStart("Web", {
32
+ * rootDir: "./app",
33
+ * domain: "app.example.com",
34
+ * });
35
+ * ```
36
+ *
37
+ * ### Server Configuration
38
+ * **Example:** Process Environment
39
+ * ```typescript
40
+ * const site = yield* Fly.Website.SolidStart("Web", {
41
+ * rootDir: "./app",
42
+ * env: {
43
+ * GREETING: "Hello from SolidStart on Fly!",
44
+ * },
45
+ * });
46
+ * ```
47
+ *
48
+ * ### Prerendering
49
+ * The integration owns the nitro plugin instance (a `nitroV2Plugin()` in
50
+ * your `vite.config.*` is rejected), so nitro options — prerendering
51
+ * included — go on the `nitro` prop. Prerendered pages are baked into the
52
+ * image and served as static files.
53
+ *
54
+ * **Example:** Prerender Routes
55
+ * ```typescript
56
+ * const site = yield* Fly.Website.SolidStart("Web", {
57
+ * rootDir: "./app",
58
+ * nitro: { prerender: { routes: ["/", "/about"] } },
59
+ * });
60
+ * ```
61
+ *
62
+ * @resource
63
+ * @product Website
64
+ */
65
+ export const SolidStart = (id, props = {}) => frameworkSite(id, props, {
66
+ name: "SolidStart",
67
+ framework: SOLIDSTART_FRAMEWORK_SPECIFIER,
68
+ target: SOLIDSTART_NODE_TARGET_SPECIFIER,
69
+ options: { nitro: props.nitro },
70
+ });
71
+ //# sourceMappingURL=SolidStart.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SolidStart.js","sourceRoot":"","sources":["../../src/Website/SolidStart.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAA2B,MAAM,oBAAoB,CAAC;AAE5E,0EAA0E;AAC1E,MAAM,CAAC,MAAM,8BAA8B,GAAG,6CAA6C,CAAC;AAE5F,iEAAiE;AACjE,MAAM,CAAC,MAAM,gCAAgC,GAAG,kDAAkD,CAAC;AAkBnG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0DG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,EAAU,EAAE,KAAK,GAAoB,EAAE,EAAE,EAAE,CACpE,aAAa,CAAC,EAAE,EAAE,KAAK,EAAE;IACvB,IAAI,EAAE,YAAY;IAClB,SAAS,EAAE,8BAA8B;IACzC,MAAM,EAAE,gCAAgC;IACxC,OAAO,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE;CAChC,CAAC,CAAC"}
@@ -0,0 +1,155 @@
1
+ import { AlchemyContext } from "alchemy/AlchemyContext";
2
+ import * as Command from "alchemy/Command";
3
+ import type { MemoOptions } from "alchemy/Command/Memo";
4
+ import * as Output from "alchemy/Output";
5
+ import * as Effect from "effect/Effect";
6
+ import * as Path from "effect/Path";
7
+ import type * as Redacted from "effect/Redacted";
8
+ import { App } from "../App.ts";
9
+ import { Certificate } from "../Certificate.ts";
10
+ import { IpAssignment } from "../IpAssignment.ts";
11
+ import { Service, type ServiceProps } from "../Service.ts";
12
+ import { type Ref, type WebsiteAssetsProps } from "./FrameworkSite.ts";
13
+ export interface StaticSiteProps {
14
+ /** Deployment strategy forwarded to the hosted Fly Service. */
15
+ deploy?: ServiceProps["deploy"];
16
+ /** Process shutdown policy for the generated server. */
17
+ shutdown?: ServiceProps["shutdown"];
18
+ /** Named Machine readiness checks. */
19
+ checks?: ServiceProps["checks"];
20
+ /** Override proxy services and their routing health checks. */
21
+ services?: ServiceProps["services"];
22
+ /**
23
+ * Path to the local site directory (working directory for
24
+ * {@link build.command}).
25
+ * @default "."
26
+ */
27
+ path?: string;
28
+ /**
29
+ * Build executed before deploy.
30
+ */
31
+ build: {
32
+ /** Shell command that produces the site (e.g. `"hugo --minify"`). */
33
+ command: string;
34
+ /** Directory the command writes, relative to {@link path}. */
35
+ output: string;
36
+ /** Environment variables for the build command. */
37
+ env?: Record<string, string | Redacted.Redacted<string>>;
38
+ };
39
+ /**
40
+ * Controls which files are hashed to decide whether the build re-runs.
41
+ * @default true
42
+ */
43
+ memo?: MemoOptions | boolean;
44
+ /**
45
+ * Process environment for the hosted static server.
46
+ */
47
+ env?: Record<string, string | Redacted.Redacted<string>>;
48
+ /**
49
+ * Miss handling for the generated file server.
50
+ */
51
+ assets?: WebsiteAssetsProps;
52
+ /**
53
+ * Parent Fly App. When omitted, a `Fly.App` is created. The Service
54
+ * stays in the caller namespace; only `Build` / `Dev` are pushed.
55
+ */
56
+ app?: Ref<App>;
57
+ /**
58
+ * Optional custom hostname. Requests ACME (`Fly.Certificate`) on the App.
59
+ */
60
+ domain?: string;
61
+ /**
62
+ * User-defined tags. Accepted for API parity; Fly Services do not
63
+ * surface resource tags.
64
+ */
65
+ tags?: Record<string, string>;
66
+ /**
67
+ * Local dev configuration. When `alchemy dev` runs with `dev.command`,
68
+ * the build is skipped and `command` is spawned as a long-lived child.
69
+ */
70
+ dev?: {
71
+ /**
72
+ * Shell command to run as the local dev server (e.g. `npm run dev`).
73
+ */
74
+ command: string;
75
+ /**
76
+ * Working directory for {@link command}. Defaults to {@link cwd}.
77
+ */
78
+ cwd?: string;
79
+ /**
80
+ * Environment variables for {@link command}.
81
+ */
82
+ env?: Record<string, string | Redacted.Redacted<string>>;
83
+ /**
84
+ * Override for the `url` output if alchemy fails to detect it from
85
+ * stdout of the dev command.
86
+ */
87
+ url?: string;
88
+ };
89
+ }
90
+ /**
91
+ * Deploy a static site built by a shell command to Fly.
92
+ *
93
+ * `StaticSite` runs a build command (e.g. `npm run build` / `hugo`),
94
+ * content-hashes the output directory, and deploys a Service that serves
95
+ * those files (plus `/health`). Use this when the site has its own build
96
+ * step — Hugo, Zola, Eleventy, or any custom pipeline.
97
+ *
98
+ * For Vite-based projects, prefer `Fly.Website.Vite`.
99
+ *
100
+ * `Build` / `Dev` use constant logical ids under `Namespace.push(id)`.
101
+ * The Service stays in the caller namespace (same as
102
+ * `Cloudflare.Website.StaticSite`).
103
+ *
104
+ *
105
+ * ### Basic Usage
106
+ * **Example:** Deploying a Hugo site
107
+ * ```typescript
108
+ * const site = yield* Fly.Website.StaticSite("Blog", {
109
+ * build: { command: "hugo --minify", output: "public" },
110
+ * });
111
+ * ```
112
+ *
113
+ * **Example:** SPA-style routing
114
+ * ```typescript
115
+ * const site = yield* Fly.Website.StaticSite("App", {
116
+ * build: { command: "npm run build", output: "dist" },
117
+ * assets: { notFoundHandling: "single-page-application" },
118
+ * });
119
+ * ```
120
+ *
121
+ * ### Building from a Subdirectory
122
+ * **Example:** Building a frontend in a monorepo
123
+ * ```typescript
124
+ * const site = yield* Fly.Website.StaticSite("Web", {
125
+ * path: "apps/web",
126
+ * build: { command: "npm run build", output: "dist" },
127
+ * });
128
+ * ```
129
+ *
130
+ * ### Local Development
131
+ * **Example:** External dev command
132
+ * ```typescript
133
+ * const site = yield* Fly.Website.StaticSite("App", {
134
+ * build: { command: "npm run build", output: "dist" },
135
+ * dev: { command: "npm run dev" },
136
+ * });
137
+ * ```
138
+ *
139
+ * @resource
140
+ * @product Website
141
+ */
142
+ export declare const StaticSite: (id: string, props: StaticSiteProps) => Effect.Effect<{
143
+ app: App | undefined;
144
+ service: Service | undefined;
145
+ ip: IpAssignment | undefined;
146
+ certificate: Certificate | undefined;
147
+ url: Output.Output<string | undefined, never>;
148
+ } | {
149
+ url: string | Output.Output<string, never>;
150
+ app: App;
151
+ service: Service;
152
+ ip: IpAssignment;
153
+ certificate: Certificate | undefined;
154
+ }, never, AlchemyContext | import("effect/FileSystem").FileSystem | Path.Path | import("alchemy/Provider").Provider<Command.Build> | import("alchemy/Provider").Provider<Command.Dev> | import("../Providers.ts").Providers>;
155
+ //# sourceMappingURL=StaticSite.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StaticSite.d.ts","sourceRoot":"","sources":["../../src/Website/StaticSite.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,KAAK,OAAO,MAAM,iBAAiB,CAAC;AAC3C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAExD,OAAO,KAAK,MAAM,MAAM,gBAAgB,CAAC;AAIzC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,IAAI,MAAM,aAAa,CAAC;AACpC,OAAO,KAAK,KAAK,QAAQ,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAChC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,eAAe,CAAC;AAC3D,OAAO,EAEL,KAAK,GAAG,EACR,KAAK,kBAAkB,EAExB,MAAM,oBAAoB,CAAC;AAM5B,MAAM,WAAW,eAAe;IAC9B,+DAA+D;IAC/D,MAAM,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAC;IAChC,wDAAwD;IACxD,QAAQ,CAAC,EAAE,YAAY,CAAC,UAAU,CAAC,CAAC;IACpC,sCAAsC;IACtC,MAAM,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAC;IAChC,+DAA+D;IAC/D,QAAQ,CAAC,EAAE,YAAY,CAAC,UAAU,CAAC,CAAC;IACpC;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,KAAK,EAAE;QACL,qEAAqE;QACrE,OAAO,EAAE,MAAM,CAAC;QAChB,8DAA8D;QAC9D,MAAM,EAAE,MAAM,CAAC;QACf,mDAAmD;QACnD,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;KAC1D,CAAC;IACF;;;OAGG;IACH,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC;IAC7B;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;IACzD;;OAEG;IACH,MAAM,CAAC,EAAE,kBAAkB,CAAC;IAC5B;;;OAGG;IACH,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;IACf;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B;;;OAGG;IACH,GAAG,CAAC,EAAE;QACJ;;WAEG;QACH,OAAO,EAAE,MAAM,CAAC;QAChB;;WAEG;QACH,GAAG,CAAC,EAAE,MAAM,CAAC;QACb;;WAEG;QACH,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;QACzD;;;WAGG;QACH,GAAG,CAAC,EAAE,MAAM,CAAC;KACd,CAAC;CACH;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmDG;AACH,eAAO,MAAM,UAAU,OAAQ,MAAM,SAAS,eAAe;;;;;;;;;;;;4NAsHtC,CAAC"}
@@ -0,0 +1,168 @@
1
+ import { AlchemyContext } from "alchemy/AlchemyContext";
2
+ import * as Command from "alchemy/Command";
3
+ import * as Namespace from "alchemy/Namespace";
4
+ import * as Output from "alchemy/Output";
5
+ import { ProviderModePolicy } from "alchemy/ProviderMode";
6
+ import { initialCwd } from "alchemy/Util/Node";
7
+ import { loadFrontendCore } from "alchemy/Website/FrontendCore";
8
+ import * as Effect from "effect/Effect";
9
+ import * as Path from "effect/Path";
10
+ import { App } from "../App.js";
11
+ import { Certificate } from "../Certificate.js";
12
+ import { IpAssignment } from "../IpAssignment.js";
13
+ import { Service } from "../Service.js";
14
+ import { staticConfigFromAssets, } from "./FrameworkSite.js";
15
+ const DEFAULT_PORT = 3000;
16
+ const resolveRef = (ref) => (Effect.isEffect(ref) ? ref : Effect.succeed(ref));
17
+ /**
18
+ * Deploy a static site built by a shell command to Fly.
19
+ *
20
+ * `StaticSite` runs a build command (e.g. `npm run build` / `hugo`),
21
+ * content-hashes the output directory, and deploys a Service that serves
22
+ * those files (plus `/health`). Use this when the site has its own build
23
+ * step — Hugo, Zola, Eleventy, or any custom pipeline.
24
+ *
25
+ * For Vite-based projects, prefer `Fly.Website.Vite`.
26
+ *
27
+ * `Build` / `Dev` use constant logical ids under `Namespace.push(id)`.
28
+ * The Service stays in the caller namespace (same as
29
+ * `Cloudflare.Website.StaticSite`).
30
+ *
31
+ *
32
+ * ### Basic Usage
33
+ * **Example:** Deploying a Hugo site
34
+ * ```typescript
35
+ * const site = yield* Fly.Website.StaticSite("Blog", {
36
+ * build: { command: "hugo --minify", output: "public" },
37
+ * });
38
+ * ```
39
+ *
40
+ * **Example:** SPA-style routing
41
+ * ```typescript
42
+ * const site = yield* Fly.Website.StaticSite("App", {
43
+ * build: { command: "npm run build", output: "dist" },
44
+ * assets: { notFoundHandling: "single-page-application" },
45
+ * });
46
+ * ```
47
+ *
48
+ * ### Building from a Subdirectory
49
+ * **Example:** Building a frontend in a monorepo
50
+ * ```typescript
51
+ * const site = yield* Fly.Website.StaticSite("Web", {
52
+ * path: "apps/web",
53
+ * build: { command: "npm run build", output: "dist" },
54
+ * });
55
+ * ```
56
+ *
57
+ * ### Local Development
58
+ * **Example:** External dev command
59
+ * ```typescript
60
+ * const site = yield* Fly.Website.StaticSite("App", {
61
+ * build: { command: "npm run build", output: "dist" },
62
+ * dev: { command: "npm run dev" },
63
+ * });
64
+ * ```
65
+ *
66
+ * @resource
67
+ * @product Website
68
+ */
69
+ export const StaticSite = (id, props) => Effect.gen(function* () {
70
+ const ctx = yield* AlchemyContext;
71
+ const remoted = yield* ProviderModePolicy;
72
+ const isLocal = ctx.dev && remoted !== true;
73
+ const path = yield* Path.Path;
74
+ const empty = () => ({
75
+ url: undefined,
76
+ app: undefined,
77
+ service: undefined,
78
+ ip: undefined,
79
+ certificate: undefined,
80
+ });
81
+ if (isLocal && props.dev) {
82
+ const dev = yield* Command.Dev("Dev", {
83
+ command: props.dev.command,
84
+ cwd: props.dev.cwd ?? props.path,
85
+ env: props.dev.env ?? props.env,
86
+ }).pipe(Namespace.push(id));
87
+ const url = Output.map(dev.url, (value) => value ?? props.dev?.url);
88
+ return { ...empty(), url };
89
+ }
90
+ const build = yield* Command.Build("Build", {
91
+ command: props.build.command,
92
+ cwd: props.path,
93
+ memo: props.memo,
94
+ outdir: props.build.output,
95
+ env: props.build.env ?? props.env,
96
+ }).pipe(Namespace.push(id));
97
+ const cwd = path.resolve(initialCwd, props.path ?? ".");
98
+ const outdir = path.resolve(cwd, props.build.output);
99
+ const internal = staticConfigFromAssets(props.assets);
100
+ const notFoundHandling = internal.errorPage !== undefined
101
+ ? "404-page"
102
+ : internal.spa === true
103
+ ? "spa"
104
+ : "none";
105
+ const { NODE_SERVE_ENTRY_FILE_NAME, relativeClientDirExpression, writeNodeServeEntry } = yield* loadFrontendCore;
106
+ const servePath = path.join(path.dirname(outdir), NODE_SERVE_ENTRY_FILE_NAME);
107
+ const serveOutput = {
108
+ clientDirectory: outdir,
109
+ serverModules: [],
110
+ externalWorkspaces: new Set(),
111
+ };
112
+ yield* writeNodeServeEntry({
113
+ output: serveOutput,
114
+ servePath,
115
+ serveModuleName: NODE_SERVE_ENTRY_FILE_NAME,
116
+ clientDirExpression: relativeClientDirExpression(servePath, outdir),
117
+ notFoundHandling,
118
+ printUrl: isLocal,
119
+ platform: "node",
120
+ });
121
+ if (isLocal) {
122
+ const runtime = yield* Effect.sync(() => process.execPath);
123
+ const dev = yield* Command.Dev("Dev", {
124
+ command: `${runtime} ${servePath}`,
125
+ cwd: path.dirname(servePath),
126
+ env: {
127
+ ...props.env,
128
+ PORT: "0",
129
+ HOST: "127.0.0.1",
130
+ ALCHEMY_BUILD_HASH: build.hash.output,
131
+ },
132
+ }).pipe(Namespace.push(id));
133
+ return { ...empty(), url: Output.map(dev.url, (value) => value) };
134
+ }
135
+ const main = servePath;
136
+ const app = props.app !== undefined
137
+ ? yield* resolveRef(props.app)
138
+ : yield* App("App").pipe(Namespace.push(id));
139
+ const ip = yield* IpAssignment("Shared", { app, type: "shared_v4" }).pipe(Namespace.push(id));
140
+ // Serve the built tree from the Machine. Fly Tigris `statics` on
141
+ // `urlPrefix: "/"` do not rewrite HTML routes and hang GET `/`.
142
+ // Hashed `/assets` still go to Tigris on FrameworkSite.
143
+ const service = yield* Service(id, {
144
+ app,
145
+ deploy: props.deploy,
146
+ shutdown: props.shutdown,
147
+ checks: props.checks,
148
+ services: props.services,
149
+ main,
150
+ port: DEFAULT_PORT,
151
+ // Generated static-file server is a complete bun/node program.
152
+ isExternal: true,
153
+ env: props.env,
154
+ extraFiles: [
155
+ {
156
+ // Keep the build dependency so planning cannot hash the previous artifact.
157
+ source: Output.map(build.outdir, (dir) => path.resolve(initialCwd, dir)),
158
+ dest: path.basename(outdir),
159
+ },
160
+ ],
161
+ });
162
+ const certificate = props.domain !== undefined
163
+ ? yield* Certificate("Certificate", { app, hostname: props.domain, kind: "acme" }).pipe(Namespace.push(id))
164
+ : undefined;
165
+ const url = props.domain !== undefined ? `https://${props.domain}` : app.url;
166
+ return { url, app, service, ip, certificate };
167
+ }).pipe(Effect.orDie);
168
+ //# sourceMappingURL=StaticSite.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StaticSite.js","sourceRoot":"","sources":["../../src/Website/StaticSite.ts"],"names":[],"mappings":"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"}