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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (499) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +57 -4
  3. package/lib/App.d.ts +230 -0
  4. package/lib/App.d.ts.map +1 -0
  5. package/lib/App.js +340 -0
  6. package/lib/App.js.map +1 -0
  7. package/lib/AuthProvider.d.ts +22 -0
  8. package/lib/AuthProvider.d.ts.map +1 -0
  9. package/lib/AuthProvider.js +48 -0
  10. package/lib/AuthProvider.js.map +1 -0
  11. package/lib/BindService.d.ts +159 -0
  12. package/lib/BindService.d.ts.map +1 -0
  13. package/lib/BindService.js +222 -0
  14. package/lib/BindService.js.map +1 -0
  15. package/lib/Bootstrap.d.ts +8 -0
  16. package/lib/Bootstrap.d.ts.map +1 -0
  17. package/lib/Bootstrap.js +41 -0
  18. package/lib/Bootstrap.js.map +1 -0
  19. package/lib/Bucket.d.ts +278 -0
  20. package/lib/Bucket.d.ts.map +1 -0
  21. package/lib/Bucket.js +658 -0
  22. package/lib/Bucket.js.map +1 -0
  23. package/lib/BucketBinding.d.ts +33 -0
  24. package/lib/BucketBinding.d.ts.map +1 -0
  25. package/lib/BucketBinding.js +70 -0
  26. package/lib/BucketBinding.js.map +1 -0
  27. package/lib/Catalog.d.ts +28 -0
  28. package/lib/Catalog.d.ts.map +1 -0
  29. package/lib/Catalog.js +31 -0
  30. package/lib/Catalog.js.map +1 -0
  31. package/lib/Certificate.d.ts +189 -0
  32. package/lib/Certificate.d.ts.map +1 -0
  33. package/lib/Certificate.js +380 -0
  34. package/lib/Certificate.js.map +1 -0
  35. package/lib/Checkpoint.d.ts +55 -0
  36. package/lib/Checkpoint.d.ts.map +1 -0
  37. package/lib/Checkpoint.js +3 -0
  38. package/lib/Checkpoint.js.map +1 -0
  39. package/lib/CheckpointHttp.d.ts +22 -0
  40. package/lib/CheckpointHttp.d.ts.map +1 -0
  41. package/lib/CheckpointHttp.js +53 -0
  42. package/lib/CheckpointHttp.js.map +1 -0
  43. package/lib/ConnectPostgres.d.ts +58 -0
  44. package/lib/ConnectPostgres.d.ts.map +1 -0
  45. package/lib/ConnectPostgres.js +13 -0
  46. package/lib/ConnectPostgres.js.map +1 -0
  47. package/lib/ConnectPostgresHttp.d.ts +26 -0
  48. package/lib/ConnectPostgresHttp.d.ts.map +1 -0
  49. package/lib/ConnectPostgresHttp.js +57 -0
  50. package/lib/ConnectPostgresHttp.js.map +1 -0
  51. package/lib/Contributions.d.ts +7 -0
  52. package/lib/Contributions.d.ts.map +1 -0
  53. package/lib/Contributions.js +6 -0
  54. package/lib/Contributions.js.map +1 -0
  55. package/lib/Credentials.d.ts +33 -0
  56. package/lib/Credentials.d.ts.map +1 -0
  57. package/lib/Credentials.js +59 -0
  58. package/lib/Credentials.js.map +1 -0
  59. package/lib/Decrypt.d.ts +52 -0
  60. package/lib/Decrypt.d.ts.map +1 -0
  61. package/lib/Decrypt.js +3 -0
  62. package/lib/Decrypt.js.map +1 -0
  63. package/lib/DecryptHttp.d.ts +22 -0
  64. package/lib/DecryptHttp.d.ts.map +1 -0
  65. package/lib/DecryptHttp.js +43 -0
  66. package/lib/DecryptHttp.js.map +1 -0
  67. package/lib/DeleteObject.d.ts +29 -0
  68. package/lib/DeleteObject.d.ts.map +1 -0
  69. package/lib/DeleteObject.js +3 -0
  70. package/lib/DeleteObject.js.map +1 -0
  71. package/lib/DeleteObjectHttp.d.ts +12 -0
  72. package/lib/DeleteObjectHttp.d.ts.map +1 -0
  73. package/lib/DeleteObjectHttp.js +17 -0
  74. package/lib/DeleteObjectHttp.js.map +1 -0
  75. package/lib/Deployment.d.ts +51 -0
  76. package/lib/Deployment.d.ts.map +1 -0
  77. package/lib/Deployment.js +62 -0
  78. package/lib/Deployment.js.map +1 -0
  79. package/lib/DeploymentImages.d.ts +18 -0
  80. package/lib/DeploymentImages.d.ts.map +1 -0
  81. package/lib/DeploymentImages.js +61 -0
  82. package/lib/DeploymentImages.js.map +1 -0
  83. package/lib/DeploymentState.d.ts +17 -0
  84. package/lib/DeploymentState.d.ts.map +1 -0
  85. package/lib/DeploymentState.js +87 -0
  86. package/lib/DeploymentState.js.map +1 -0
  87. package/lib/Encrypt.d.ts +50 -0
  88. package/lib/Encrypt.d.ts.map +1 -0
  89. package/lib/Encrypt.js +3 -0
  90. package/lib/Encrypt.js.map +1 -0
  91. package/lib/EncryptHttp.d.ts +22 -0
  92. package/lib/EncryptHttp.d.ts.map +1 -0
  93. package/lib/EncryptHttp.js +39 -0
  94. package/lib/EncryptHttp.js.map +1 -0
  95. package/lib/Environment.d.ts +45 -0
  96. package/lib/Environment.d.ts.map +1 -0
  97. package/lib/Environment.js +43 -0
  98. package/lib/Environment.js.map +1 -0
  99. package/lib/Errors.d.ts +18 -0
  100. package/lib/Errors.d.ts.map +1 -0
  101. package/lib/Errors.js +13 -0
  102. package/lib/Errors.js.map +1 -0
  103. package/lib/Exec.d.ts +41 -0
  104. package/lib/Exec.d.ts.map +1 -0
  105. package/lib/Exec.js +3 -0
  106. package/lib/Exec.js.map +1 -0
  107. package/lib/ExecHttp.d.ts +22 -0
  108. package/lib/ExecHttp.d.ts.map +1 -0
  109. package/lib/ExecHttp.js +39 -0
  110. package/lib/ExecHttp.js.map +1 -0
  111. package/lib/GetObject.d.ts +34 -0
  112. package/lib/GetObject.d.ts.map +1 -0
  113. package/lib/GetObject.js +3 -0
  114. package/lib/GetObject.js.map +1 -0
  115. package/lib/GetObjectHttp.d.ts +12 -0
  116. package/lib/GetObjectHttp.d.ts.map +1 -0
  117. package/lib/GetObjectHttp.js +17 -0
  118. package/lib/GetObjectHttp.js.map +1 -0
  119. package/lib/GetSecret.d.ts +44 -0
  120. package/lib/GetSecret.d.ts.map +1 -0
  121. package/lib/GetSecret.js +3 -0
  122. package/lib/GetSecret.js.map +1 -0
  123. package/lib/GetSecretHttp.d.ts +22 -0
  124. package/lib/GetSecretHttp.d.ts.map +1 -0
  125. package/lib/GetSecretHttp.js +50 -0
  126. package/lib/GetSecretHttp.js.map +1 -0
  127. package/lib/HeadObject.d.ts +29 -0
  128. package/lib/HeadObject.d.ts.map +1 -0
  129. package/lib/HeadObject.js +3 -0
  130. package/lib/HeadObject.js.map +1 -0
  131. package/lib/HeadObjectHttp.d.ts +12 -0
  132. package/lib/HeadObjectHttp.d.ts.map +1 -0
  133. package/lib/HeadObjectHttp.js +17 -0
  134. package/lib/HeadObjectHttp.js.map +1 -0
  135. package/lib/IpAssignment.d.ts +258 -0
  136. package/lib/IpAssignment.d.ts.map +1 -0
  137. package/lib/IpAssignment.js +376 -0
  138. package/lib/IpAssignment.js.map +1 -0
  139. package/lib/ListObjectsV2.d.ts +29 -0
  140. package/lib/ListObjectsV2.d.ts.map +1 -0
  141. package/lib/ListObjectsV2.js +3 -0
  142. package/lib/ListObjectsV2.js.map +1 -0
  143. package/lib/ListObjectsV2Http.d.ts +12 -0
  144. package/lib/ListObjectsV2Http.d.ts.map +1 -0
  145. package/lib/ListObjectsV2Http.js +17 -0
  146. package/lib/ListObjectsV2Http.js.map +1 -0
  147. package/lib/ListSecrets.d.ts +53 -0
  148. package/lib/ListSecrets.d.ts.map +1 -0
  149. package/lib/ListSecrets.js +3 -0
  150. package/lib/ListSecrets.js.map +1 -0
  151. package/lib/ListSecretsHttp.d.ts +22 -0
  152. package/lib/ListSecretsHttp.d.ts.map +1 -0
  153. package/lib/ListSecretsHttp.js +35 -0
  154. package/lib/ListSecretsHttp.js.map +1 -0
  155. package/lib/Machine.d.ts +802 -0
  156. package/lib/Machine.d.ts.map +1 -0
  157. package/lib/Machine.js +773 -0
  158. package/lib/Machine.js.map +1 -0
  159. package/lib/MachineContainers.d.ts +44 -0
  160. package/lib/MachineContainers.d.ts.map +1 -0
  161. package/lib/MachineContainers.js +115 -0
  162. package/lib/MachineContainers.js.map +1 -0
  163. package/lib/Metadata.d.ts +109 -0
  164. package/lib/Metadata.d.ts.map +1 -0
  165. package/lib/Metadata.js +159 -0
  166. package/lib/Metadata.js.map +1 -0
  167. package/lib/MountVolume.d.ts +295 -0
  168. package/lib/MountVolume.d.ts.map +1 -0
  169. package/lib/MountVolume.js +20 -0
  170. package/lib/MountVolume.js.map +1 -0
  171. package/lib/Postgres.d.ts +298 -0
  172. package/lib/Postgres.d.ts.map +1 -0
  173. package/lib/Postgres.js +508 -0
  174. package/lib/Postgres.js.map +1 -0
  175. package/lib/PostgresMigrations.d.ts +35 -0
  176. package/lib/PostgresMigrations.d.ts.map +1 -0
  177. package/lib/PostgresMigrations.js +110 -0
  178. package/lib/PostgresMigrations.js.map +1 -0
  179. package/lib/Providers.d.ts +38 -0
  180. package/lib/Providers.d.ts.map +1 -0
  181. package/lib/Providers.js +95 -0
  182. package/lib/Providers.js.map +1 -0
  183. package/lib/PutObject.d.ts +35 -0
  184. package/lib/PutObject.d.ts.map +1 -0
  185. package/lib/PutObject.js +3 -0
  186. package/lib/PutObject.js.map +1 -0
  187. package/lib/PutObjectHttp.d.ts +12 -0
  188. package/lib/PutObjectHttp.d.ts.map +1 -0
  189. package/lib/PutObjectHttp.js +17 -0
  190. package/lib/PutObjectHttp.js.map +1 -0
  191. package/lib/ReadRedis.d.ts +26 -0
  192. package/lib/ReadRedis.d.ts.map +1 -0
  193. package/lib/ReadRedis.js +3 -0
  194. package/lib/ReadRedis.js.map +1 -0
  195. package/lib/ReadRedisHttp.d.ts +11 -0
  196. package/lib/ReadRedisHttp.d.ts.map +1 -0
  197. package/lib/ReadRedisHttp.js +15 -0
  198. package/lib/ReadRedisHttp.js.map +1 -0
  199. package/lib/ReadWriteRedis.d.ts +29 -0
  200. package/lib/ReadWriteRedis.d.ts.map +1 -0
  201. package/lib/ReadWriteRedis.js +3 -0
  202. package/lib/ReadWriteRedis.js.map +1 -0
  203. package/lib/ReadWriteRedisHttp.d.ts +11 -0
  204. package/lib/ReadWriteRedisHttp.d.ts.map +1 -0
  205. package/lib/ReadWriteRedisHttp.js +15 -0
  206. package/lib/ReadWriteRedisHttp.js.map +1 -0
  207. package/lib/Redis.d.ts +252 -0
  208. package/lib/Redis.d.ts.map +1 -0
  209. package/lib/Redis.js +608 -0
  210. package/lib/Redis.js.map +1 -0
  211. package/lib/RedisBinding.d.ts +7 -0
  212. package/lib/RedisBinding.d.ts.map +1 -0
  213. package/lib/RedisBinding.js +53 -0
  214. package/lib/RedisBinding.js.map +1 -0
  215. package/lib/RedisHttp.d.ts +8 -0
  216. package/lib/RedisHttp.d.ts.map +1 -0
  217. package/lib/RedisHttp.js +8 -0
  218. package/lib/RedisHttp.js.map +1 -0
  219. package/lib/Region.d.ts +16 -0
  220. package/lib/Region.d.ts.map +1 -0
  221. package/lib/Region.js +13 -0
  222. package/lib/Region.js.map +1 -0
  223. package/lib/Secret.d.ts +190 -0
  224. package/lib/Secret.d.ts.map +1 -0
  225. package/lib/Secret.js +310 -0
  226. package/lib/Secret.js.map +1 -0
  227. package/lib/SecretHttp.d.ts +54 -0
  228. package/lib/SecretHttp.d.ts.map +1 -0
  229. package/lib/SecretHttp.js +66 -0
  230. package/lib/SecretHttp.js.map +1 -0
  231. package/lib/SecretKey.d.ts +164 -0
  232. package/lib/SecretKey.d.ts.map +1 -0
  233. package/lib/SecretKey.js +277 -0
  234. package/lib/SecretKey.js.map +1 -0
  235. package/lib/SecretKeyHttp.d.ts +14 -0
  236. package/lib/SecretKeyHttp.d.ts.map +1 -0
  237. package/lib/SecretKeyHttp.js +5 -0
  238. package/lib/SecretKeyHttp.js.map +1 -0
  239. package/lib/Service.d.ts +1022 -0
  240. package/lib/Service.d.ts.map +1 -0
  241. package/lib/Service.js +1397 -0
  242. package/lib/Service.js.map +1 -0
  243. package/lib/Sign.d.ts +36 -0
  244. package/lib/Sign.d.ts.map +1 -0
  245. package/lib/Sign.js +3 -0
  246. package/lib/Sign.js.map +1 -0
  247. package/lib/SignHttp.d.ts +22 -0
  248. package/lib/SignHttp.d.ts.map +1 -0
  249. package/lib/SignHttp.js +36 -0
  250. package/lib/SignHttp.js.map +1 -0
  251. package/lib/Sprite.d.ts +283 -0
  252. package/lib/Sprite.d.ts.map +1 -0
  253. package/lib/Sprite.js +469 -0
  254. package/lib/Sprite.js.map +1 -0
  255. package/lib/SpriteHttp.d.ts +25 -0
  256. package/lib/SpriteHttp.d.ts.map +1 -0
  257. package/lib/SpriteHttp.js +33 -0
  258. package/lib/SpriteHttp.js.map +1 -0
  259. package/lib/Verify.d.ts +37 -0
  260. package/lib/Verify.d.ts.map +1 -0
  261. package/lib/Verify.js +3 -0
  262. package/lib/Verify.js.map +1 -0
  263. package/lib/VerifyHttp.d.ts +22 -0
  264. package/lib/VerifyHttp.d.ts.map +1 -0
  265. package/lib/VerifyHttp.js +38 -0
  266. package/lib/VerifyHttp.js.map +1 -0
  267. package/lib/Volume.d.ts +53 -0
  268. package/lib/Volume.d.ts.map +1 -0
  269. package/lib/Volume.js +188 -0
  270. package/lib/Volume.js.map +1 -0
  271. package/lib/VolumeSnapshot.d.ts +135 -0
  272. package/lib/VolumeSnapshot.d.ts.map +1 -0
  273. package/lib/VolumeSnapshot.js +213 -0
  274. package/lib/VolumeSnapshot.js.map +1 -0
  275. package/lib/Website/AssetDeployment.d.ts +43 -0
  276. package/lib/Website/AssetDeployment.d.ts.map +1 -0
  277. package/lib/Website/AssetDeployment.js +162 -0
  278. package/lib/Website/AssetDeployment.js.map +1 -0
  279. package/lib/Website/Astro.d.ts +87 -0
  280. package/lib/Website/Astro.d.ts.map +1 -0
  281. package/lib/Website/Astro.js +55 -0
  282. package/lib/Website/Astro.js.map +1 -0
  283. package/lib/Website/Foldkit.d.ts +52 -0
  284. package/lib/Website/Foldkit.d.ts.map +1 -0
  285. package/lib/Website/Foldkit.js +45 -0
  286. package/lib/Website/Foldkit.js.map +1 -0
  287. package/lib/Website/FrameworkSite.d.ts +175 -0
  288. package/lib/Website/FrameworkSite.d.ts.map +1 -0
  289. package/lib/Website/FrameworkSite.js +162 -0
  290. package/lib/Website/FrameworkSite.js.map +1 -0
  291. package/lib/Website/Nextjs.d.ts +54 -0
  292. package/lib/Website/Nextjs.d.ts.map +1 -0
  293. package/lib/Website/Nextjs.js +46 -0
  294. package/lib/Website/Nextjs.js.map +1 -0
  295. package/lib/Website/Nuxt.d.ts +51 -0
  296. package/lib/Website/Nuxt.d.ts.map +1 -0
  297. package/lib/Website/Nuxt.js +36 -0
  298. package/lib/Website/Nuxt.js.map +1 -0
  299. package/lib/Website/Octane.d.ts +49 -0
  300. package/lib/Website/Octane.d.ts.map +1 -0
  301. package/lib/Website/Octane.js +39 -0
  302. package/lib/Website/Octane.js.map +1 -0
  303. package/lib/Website/ReactRouter.d.ts +80 -0
  304. package/lib/Website/ReactRouter.d.ts.map +1 -0
  305. package/lib/Website/ReactRouter.js +70 -0
  306. package/lib/Website/ReactRouter.js.map +1 -0
  307. package/lib/Website/SolidStart.d.ts +93 -0
  308. package/lib/Website/SolidStart.d.ts.map +1 -0
  309. package/lib/Website/SolidStart.js +71 -0
  310. package/lib/Website/SolidStart.js.map +1 -0
  311. package/lib/Website/StaticSite.d.ts +155 -0
  312. package/lib/Website/StaticSite.d.ts.map +1 -0
  313. package/lib/Website/StaticSite.js +168 -0
  314. package/lib/Website/StaticSite.js.map +1 -0
  315. package/lib/Website/SvelteKit.d.ts +52 -0
  316. package/lib/Website/SvelteKit.d.ts.map +1 -0
  317. package/lib/Website/SvelteKit.js +37 -0
  318. package/lib/Website/SvelteKit.js.map +1 -0
  319. package/lib/Website/TanStackStart.d.ts +76 -0
  320. package/lib/Website/TanStackStart.d.ts.map +1 -0
  321. package/lib/Website/TanStackStart.js +66 -0
  322. package/lib/Website/TanStackStart.js.map +1 -0
  323. package/lib/Website/Vinext.d.ts +73 -0
  324. package/lib/Website/Vinext.d.ts.map +1 -0
  325. package/lib/Website/Vinext.js +67 -0
  326. package/lib/Website/Vinext.js.map +1 -0
  327. package/lib/Website/Vite.d.ts +103 -0
  328. package/lib/Website/Vite.d.ts.map +1 -0
  329. package/lib/Website/Vite.js +91 -0
  330. package/lib/Website/Vite.js.map +1 -0
  331. package/lib/Website/Vocs.d.ts +52 -0
  332. package/lib/Website/Vocs.d.ts.map +1 -0
  333. package/lib/Website/Vocs.js +38 -0
  334. package/lib/Website/Vocs.js.map +1 -0
  335. package/lib/Website/Waku.d.ts +64 -0
  336. package/lib/Website/Waku.d.ts.map +1 -0
  337. package/lib/Website/Waku.js +39 -0
  338. package/lib/Website/Waku.js.map +1 -0
  339. package/lib/Website/index.d.ts +17 -0
  340. package/lib/Website/index.d.ts.map +1 -0
  341. package/lib/Website/index.js +17 -0
  342. package/lib/Website/index.js.map +1 -0
  343. package/lib/WriteCertificates.d.ts +63 -0
  344. package/lib/WriteCertificates.d.ts.map +1 -0
  345. package/lib/WriteCertificates.js +3 -0
  346. package/lib/WriteCertificates.js.map +1 -0
  347. package/lib/WriteCertificatesHttp.d.ts +25 -0
  348. package/lib/WriteCertificatesHttp.d.ts.map +1 -0
  349. package/lib/WriteCertificatesHttp.js +67 -0
  350. package/lib/WriteCertificatesHttp.js.map +1 -0
  351. package/lib/WriteRedis.d.ts +26 -0
  352. package/lib/WriteRedis.d.ts.map +1 -0
  353. package/lib/WriteRedis.js +3 -0
  354. package/lib/WriteRedis.js.map +1 -0
  355. package/lib/WriteRedisHttp.d.ts +11 -0
  356. package/lib/WriteRedisHttp.d.ts.map +1 -0
  357. package/lib/WriteRedisHttp.js +15 -0
  358. package/lib/WriteRedisHttp.js.map +1 -0
  359. package/lib/WriteSecret.d.ts +68 -0
  360. package/lib/WriteSecret.d.ts.map +1 -0
  361. package/lib/WriteSecret.js +4 -0
  362. package/lib/WriteSecret.js.map +1 -0
  363. package/lib/WriteSecretHttp.d.ts +26 -0
  364. package/lib/WriteSecretHttp.d.ts.map +1 -0
  365. package/lib/WriteSecretHttp.js +54 -0
  366. package/lib/WriteSecretHttp.js.map +1 -0
  367. package/lib/bluegreen.d.ts +36 -0
  368. package/lib/bluegreen.d.ts.map +1 -0
  369. package/lib/bluegreen.js +458 -0
  370. package/lib/bluegreen.js.map +1 -0
  371. package/lib/hosted.d.ts +172 -0
  372. package/lib/hosted.d.ts.map +1 -0
  373. package/lib/hosted.js +458 -0
  374. package/lib/hosted.js.map +1 -0
  375. package/lib/index.d.ts +65 -0
  376. package/lib/index.d.ts.map +1 -0
  377. package/lib/index.js +63 -0
  378. package/lib/index.js.map +1 -0
  379. package/lib/internal/RemoteBuilder.d.ts +28 -0
  380. package/lib/internal/RemoteBuilder.d.ts.map +1 -0
  381. package/lib/internal/RemoteBuilder.js +145 -0
  382. package/lib/internal/RemoteBuilder.js.map +1 -0
  383. package/lib/leases.d.ts +53 -0
  384. package/lib/leases.d.ts.map +1 -0
  385. package/lib/leases.js +279 -0
  386. package/lib/leases.js.map +1 -0
  387. package/lib/ports.d.ts +51 -0
  388. package/lib/ports.d.ts.map +1 -0
  389. package/lib/ports.js +123 -0
  390. package/lib/ports.js.map +1 -0
  391. package/lib/replicas.d.ts +270 -0
  392. package/lib/replicas.d.ts.map +1 -0
  393. package/lib/replicas.js +969 -0
  394. package/lib/replicas.js.map +1 -0
  395. package/lib/rpc.d.ts +35 -0
  396. package/lib/rpc.d.ts.map +1 -0
  397. package/lib/rpc.js +113 -0
  398. package/lib/rpc.js.map +1 -0
  399. package/package.json +83 -3
  400. package/src/App.ts +516 -0
  401. package/src/AuthProvider.ts +68 -0
  402. package/src/BindService.ts +304 -0
  403. package/src/Bootstrap.ts +66 -0
  404. package/src/Bucket.ts +916 -0
  405. package/src/BucketBinding.ts +128 -0
  406. package/src/Catalog.ts +43 -0
  407. package/src/Certificate.ts +548 -0
  408. package/src/Checkpoint.ts +69 -0
  409. package/src/CheckpointHttp.ts +66 -0
  410. package/src/ConnectPostgres.ts +68 -0
  411. package/src/ConnectPostgresHttp.ts +77 -0
  412. package/src/Contributions.ts +9 -0
  413. package/src/Credentials.ts +102 -0
  414. package/src/Decrypt.ts +62 -0
  415. package/src/DecryptHttp.ts +52 -0
  416. package/src/DeleteObject.ts +43 -0
  417. package/src/DeleteObjectHttp.ts +20 -0
  418. package/src/Deployment.ts +121 -0
  419. package/src/DeploymentImages.ts +84 -0
  420. package/src/DeploymentState.ts +104 -0
  421. package/src/Encrypt.ts +60 -0
  422. package/src/EncryptHttp.ts +48 -0
  423. package/src/Environment.ts +81 -0
  424. package/src/Errors.ts +14 -0
  425. package/src/Exec.ts +50 -0
  426. package/src/ExecHttp.ts +47 -0
  427. package/src/GetObject.ts +48 -0
  428. package/src/GetObjectHttp.ts +20 -0
  429. package/src/GetSecret.ts +48 -0
  430. package/src/GetSecretHttp.ts +60 -0
  431. package/src/HeadObject.ts +43 -0
  432. package/src/HeadObjectHttp.ts +20 -0
  433. package/src/IpAssignment.ts +522 -0
  434. package/src/ListObjectsV2.ts +43 -0
  435. package/src/ListObjectsV2Http.ts +20 -0
  436. package/src/ListSecrets.ts +57 -0
  437. package/src/ListSecretsHttp.ts +43 -0
  438. package/src/Machine.ts +1268 -0
  439. package/src/MachineContainers.ts +152 -0
  440. package/src/Metadata.ts +195 -0
  441. package/src/MountVolume.ts +315 -0
  442. package/src/Postgres.ts +777 -0
  443. package/src/PostgresMigrations.ts +153 -0
  444. package/src/Providers.ts +155 -0
  445. package/src/PutObject.ts +49 -0
  446. package/src/PutObjectHttp.ts +20 -0
  447. package/src/ReadRedis.ts +31 -0
  448. package/src/ReadRedisHttp.ts +18 -0
  449. package/src/ReadWriteRedis.ts +33 -0
  450. package/src/ReadWriteRedisHttp.ts +18 -0
  451. package/src/Redis.ts +820 -0
  452. package/src/RedisBinding.ts +64 -0
  453. package/src/RedisHttp.ts +11 -0
  454. package/src/Region.ts +44 -0
  455. package/src/Secret.ts +405 -0
  456. package/src/SecretHttp.ts +149 -0
  457. package/src/SecretKey.ts +389 -0
  458. package/src/SecretKeyHttp.ts +23 -0
  459. package/src/Service.ts +1934 -0
  460. package/src/Sign.ts +46 -0
  461. package/src/SignHttp.ts +44 -0
  462. package/src/Sprite.ts +671 -0
  463. package/src/SpriteHttp.ts +50 -0
  464. package/src/Verify.ts +47 -0
  465. package/src/VerifyHttp.ts +46 -0
  466. package/src/Volume.ts +264 -0
  467. package/src/VolumeSnapshot.ts +321 -0
  468. package/src/Website/AssetDeployment.ts +294 -0
  469. package/src/Website/Astro.ts +87 -0
  470. package/src/Website/Foldkit.ts +54 -0
  471. package/src/Website/FrameworkSite.ts +363 -0
  472. package/src/Website/Nextjs.ts +50 -0
  473. package/src/Website/Nuxt.ts +48 -0
  474. package/src/Website/Octane.ts +44 -0
  475. package/src/Website/ReactRouter.ts +76 -0
  476. package/src/Website/SolidStart.ts +90 -0
  477. package/src/Website/StaticSite.ts +275 -0
  478. package/src/Website/SvelteKit.ts +49 -0
  479. package/src/Website/TanStackStart.ts +72 -0
  480. package/src/Website/Vinext.ts +79 -0
  481. package/src/Website/Vite.ts +112 -0
  482. package/src/Website/Vocs.ts +50 -0
  483. package/src/Website/Waku.ts +65 -0
  484. package/src/Website/index.ts +16 -0
  485. package/src/WriteCertificates.ts +90 -0
  486. package/src/WriteCertificatesHttp.ts +93 -0
  487. package/src/WriteRedis.ts +31 -0
  488. package/src/WriteRedisHttp.ts +18 -0
  489. package/src/WriteSecret.ts +86 -0
  490. package/src/WriteSecretHttp.ts +71 -0
  491. package/src/bluegreen.ts +708 -0
  492. package/src/globals.d.ts +2 -0
  493. package/src/hosted.ts +668 -0
  494. package/src/index.ts +64 -0
  495. package/src/internal/RemoteBuilder.ts +224 -0
  496. package/src/leases.ts +437 -0
  497. package/src/ports.ts +177 -0
  498. package/src/replicas.ts +1480 -0
  499. package/src/rpc.ts +136 -0
@@ -0,0 +1,175 @@
1
+ import { AlchemyContext } from "alchemy/AlchemyContext";
2
+ import type { MemoOptions } from "alchemy/Command/Memo";
3
+ import * as Output from "alchemy/Output";
4
+ import { staticConfigFromAssets, type WebsiteAssetsProps, type WebsiteNotFoundHandling } from "alchemy/Website/assets";
5
+ import { Server as FrameworkServer, type ServerDevProps } from "alchemy/Website/Server";
6
+ import * as Effect from "effect/Effect";
7
+ import * as FileSystem from "effect/FileSystem";
8
+ import * as Path from "effect/Path";
9
+ import * as Redacted from "effect/Redacted";
10
+ import { App } from "../App.ts";
11
+ import { Certificate } from "../Certificate.ts";
12
+ import { IpAssignment } from "../IpAssignment.ts";
13
+ import type { Providers } from "../Providers.ts";
14
+ import { Service, type ServiceProps } from "../Service.ts";
15
+ /**
16
+ * A resource-valued prop: the resource itself, or an Effect that produces
17
+ * it (so `yield* App(...)` and `App(...)` both type-check).
18
+ */
19
+ export type Ref<T> = T | Effect.Effect<T, never, Providers>;
20
+ export type { ServerDevProps, WebsiteAssetsProps, WebsiteNotFoundHandling };
21
+ export { staticConfigFromAssets };
22
+ /**
23
+ * Props shared by every Fly framework website composite.
24
+ */
25
+ export interface FrameworkSiteProps {
26
+ /** Deployment strategy forwarded to the hosted Fly Service. */
27
+ deploy?: ServiceProps["deploy"];
28
+ /** Process shutdown policy. The framework server must handle the signal. */
29
+ shutdown?: ServiceProps["shutdown"];
30
+ /** Named Machine readiness checks. */
31
+ checks?: ServiceProps["checks"];
32
+ /** Override proxy services and their routing health checks. */
33
+ services?: ServiceProps["services"];
34
+ /**
35
+ * Project root directory (the directory containing `package.json`).
36
+ * @default "."
37
+ */
38
+ rootDir?: string;
39
+ /**
40
+ * Controls which files are hashed to decide whether the build re-runs.
41
+ * @default true
42
+ */
43
+ memo?: MemoOptions | boolean;
44
+ /**
45
+ * Parent Fly App. Accepts a `Fly.App` or an Effect that produces one.
46
+ * When omitted, a `Fly.App` is created under this site's namespace.
47
+ */
48
+ app?: Ref<App>;
49
+ /**
50
+ * Process environment for the hosted server. Not Cloudflare Worker
51
+ * bindings — values become Machine env vars. Accepts `Output`s
52
+ * (e.g. `VITE_API_URL: api.url`).
53
+ */
54
+ env?: Record<string, string | Redacted.Redacted<string> | Output.Output<string | undefined>>;
55
+ /**
56
+ * Static-asset routing (`notFoundHandling`, `htmlHandling`). Hashed
57
+ * client files are uploaded to Tigris regardless of this bag.
58
+ */
59
+ assets?: WebsiteAssetsProps;
60
+ /**
61
+ * Options for the local dev server that runs this site under
62
+ * `alchemy dev`.
63
+ */
64
+ dev?: ServerDevProps;
65
+ /**
66
+ * Optional custom hostname. Requests ACME (`Fly.Certificate`) on the
67
+ * App. `url` becomes `https://<domain>` (existing DNS only for v1).
68
+ */
69
+ domain?: string;
70
+ /**
71
+ * User-defined tags. Accepted for API parity; Fly Services do not
72
+ * surface resource tags.
73
+ */
74
+ tags?: Record<string, string>;
75
+ }
76
+ /** Per-framework wiring for {@link makeFrameworkSite}. */
77
+ export interface FrameworkSiteConfig {
78
+ /** Display name used in error messages (e.g. `"SvelteKit"`). */
79
+ name: string;
80
+ /** Framework-integration module specifier. */
81
+ framework: string;
82
+ /** Node deploy-target module specifier. */
83
+ target: string;
84
+ /**
85
+ * Framework-specific build options forwarded to the integration (e.g.
86
+ * `{ kit }`, `{ nuxt }`, `{ astro }`). Must be JSON-serializable.
87
+ */
88
+ options?: Record<string, unknown> | undefined;
89
+ /**
90
+ * Assets-only routing forwarded to the Node target (Vite SPA fallback).
91
+ * `spa` also publishes client files to Tigris at `/`.
92
+ */
93
+ static?: {
94
+ spa?: boolean;
95
+ errorPage?: string;
96
+ } | undefined;
97
+ /**
98
+ * Vocs/Waku: serve `about/index.html` at `/about`.
99
+ * @default "none"
100
+ */
101
+ htmlHandling?: "none" | "drop-trailing-slash";
102
+ /**
103
+ * Packages installed into the Machine image with `npm install` instead
104
+ * of bundling (Next.js needs `next`).
105
+ */
106
+ install?: string[] | undefined;
107
+ /**
108
+ * Skip baking `clientDirectory` at `/app/dist`. Next.js serves `.next`
109
+ * from the image root instead.
110
+ */
111
+ skipClientAssets?: boolean | undefined;
112
+ }
113
+ export interface FrameworkSite {
114
+ /**
115
+ * Public site URL. Local framework URL under `alchemy dev`;
116
+ * `https://{app}.fly.dev` (or `https://{domain}`) on deploy.
117
+ */
118
+ url: string | Output.Output<string | undefined> | undefined;
119
+ /** Parent Fly App. `undefined` during `alchemy dev`. */
120
+ app: App | undefined;
121
+ /** Hosted Fly Service. `undefined` during `alchemy dev`. */
122
+ service: Service | undefined;
123
+ /** Shared Anycast IPv4 so `{app}.fly.dev` answers. */
124
+ ip: IpAssignment | undefined;
125
+ /** ACME certificate when {@link FrameworkSiteProps.domain} is set. */
126
+ certificate: Certificate | undefined;
127
+ }
128
+ declare const FrameworkSiteError_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 & {
129
+ readonly _tag: "FrameworkSiteError";
130
+ } & Readonly<A>;
131
+ export declare class FrameworkSiteError extends FrameworkSiteError_base<{
132
+ readonly framework: string;
133
+ readonly message: string;
134
+ readonly cause?: unknown;
135
+ }> {
136
+ }
137
+ /**
138
+ * Shared implementation behind the Fly framework website composites:
139
+ * `Website.Server` runs the framework toolchain (dev sidecar / production
140
+ * build), then a live deploy hosts `serve-node.mjs` on a Fly.Service.
141
+ *
142
+ * Callers pipe `Namespace.push(id)` themselves (the composites do).
143
+ *
144
+ * Composite-level tagged errors (`FrameworkSiteError`, filesystem) are
145
+ * defects — `Alchemy.Stack` only admits `ConfigError` on the user
146
+ * effect, same as Cloudflare/AWS Website composites.
147
+ */
148
+ export declare const makeFrameworkSite: (id: string, props: FrameworkSiteProps, config: FrameworkSiteConfig) => Effect.Effect<{
149
+ url: Output.Output<string | undefined, never>;
150
+ app: undefined;
151
+ service: undefined;
152
+ ip: undefined;
153
+ certificate: undefined;
154
+ } | {
155
+ url: string | Output.Output<string, never>;
156
+ app: App;
157
+ service: Service;
158
+ ip: IpAssignment;
159
+ certificate: Certificate | undefined;
160
+ }, never, AlchemyContext | FileSystem.FileSystem | Path.Path | import("alchemy/Provider").Provider<FrameworkServer> | Providers>;
161
+ /** Push {@link id} then run {@link makeFrameworkSite}. */
162
+ export declare const frameworkSite: (id: string, props: FrameworkSiteProps, config: FrameworkSiteConfig) => Effect.Effect<{
163
+ url: Output.Output<string | undefined, never>;
164
+ app: undefined;
165
+ service: undefined;
166
+ ip: undefined;
167
+ certificate: undefined;
168
+ } | {
169
+ url: string | Output.Output<string, never>;
170
+ app: App;
171
+ service: Service;
172
+ ip: IpAssignment;
173
+ certificate: Certificate | undefined;
174
+ }, never, AlchemyContext | FileSystem.FileSystem | Path.Path | import("alchemy/Provider").Provider<FrameworkServer> | Providers>;
175
+ //# sourceMappingURL=FrameworkSite.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FrameworkSite.d.ts","sourceRoot":"","sources":["../../src/Website/FrameworkSite.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAExD,OAAO,KAAK,MAAM,MAAM,gBAAgB,CAAC;AAGzC,OAAO,EACL,sBAAsB,EACtB,KAAK,kBAAkB,EACvB,KAAK,uBAAuB,EAC7B,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAE,MAAM,IAAI,eAAe,EAAE,KAAK,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAExF,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,UAAU,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,IAAI,MAAM,aAAa,CAAC;AACpC,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAEhC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,eAAe,CAAC;AAG3D;;;GAGG;AACH,MAAM,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;AAE5D,YAAY,EAAE,cAAc,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,CAAC;AAC5E,OAAO,EAAE,sBAAsB,EAAE,CAAC;AAElC;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,+DAA+D;IAC/D,MAAM,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAC;IAChC,4EAA4E;IAC5E,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;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;OAGG;IACH,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC;IAC7B;;;OAGG;IACH,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;IACf;;;;OAIG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC;IAC7F;;;OAGG;IACH,MAAM,CAAC,EAAE,kBAAkB,CAAC;IAC5B;;;OAGG;IACH,GAAG,CAAC,EAAE,cAAc,CAAC;IACrB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC/B;AAED,0DAA0D;AAC1D,MAAM,WAAW,mBAAmB;IAClC,gEAAgE;IAChE,IAAI,EAAE,MAAM,CAAC;IACb,8CAA8C;IAC9C,SAAS,EAAE,MAAM,CAAC;IAClB,2CAA2C;IAC3C,MAAM,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC;IAC9C;;;OAGG;IACH,MAAM,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,OAAO,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAC;IAC3D;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,GAAG,qBAAqB,CAAC;IAC9C;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IAC/B;;;OAGG;IACH,gBAAgB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CACxC;AAED,MAAM,WAAW,aAAa;IAC5B;;;OAGG;IACH,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,SAAS,CAAC,GAAG,SAAS,CAAC;IAC5D,wDAAwD;IACxD,GAAG,EAAE,GAAG,GAAG,SAAS,CAAC;IACrB,4DAA4D;IAC5D,OAAO,EAAE,OAAO,GAAG,SAAS,CAAC;IAC7B,sDAAsD;IACtD,EAAE,EAAE,YAAY,GAAG,SAAS,CAAC;IAC7B,sEAAsE;IACtE,WAAW,EAAE,WAAW,GAAG,SAAS,CAAC;CACtC;;;;AAED,qBAAa,kBAAmB,SAAQ,wBAAuC;IAC7E,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;CAC1B,CAAC;CAAG;AAsML;;;;;;;;;;GAUG;AACH,eAAO,MAAM,iBAAiB,OACxB,MAAM,SACH,kBAAkB,UACjB,mBAAmB;;;;;;;;;;;;gIAC8B,CAAC;AAE5D,0DAA0D;AAC1D,eAAO,MAAM,aAAa,OAAQ,MAAM,SAAS,kBAAkB,UAAU,mBAAmB;;;;;;;;;;;;gIACjC,CAAC"}
@@ -0,0 +1,162 @@
1
+ import { AlchemyContext } from "alchemy/AlchemyContext";
2
+ import * as Namespace from "alchemy/Namespace";
3
+ import * as Output from "alchemy/Output";
4
+ import { ProviderModePolicy } from "alchemy/ProviderMode";
5
+ import { initialCwd } from "alchemy/Util/Node";
6
+ import { staticConfigFromAssets, } from "alchemy/Website/assets";
7
+ import { packSiteExtraFiles } from "alchemy/Website/packExtraFiles";
8
+ import { Server as FrameworkServer } from "alchemy/Website/Server";
9
+ import * as Data from "effect/Data";
10
+ import * as Effect from "effect/Effect";
11
+ import * as FileSystem from "effect/FileSystem";
12
+ import * as Path from "effect/Path";
13
+ import * as Redacted from "effect/Redacted";
14
+ import { App } from "../App.js";
15
+ import { Bucket } from "../Bucket.js";
16
+ import { Certificate } from "../Certificate.js";
17
+ import { IpAssignment } from "../IpAssignment.js";
18
+ import { Service } from "../Service.js";
19
+ import { AssetDeployment } from "./AssetDeployment.js";
20
+ export { staticConfigFromAssets };
21
+ export class FrameworkSiteError extends Data.TaggedError("FrameworkSiteError") {
22
+ }
23
+ const DEFAULT_PORT = 3000;
24
+ const resolveRef = (ref) => Effect.isEffect(ref) ? ref : Effect.succeed(ref);
25
+ const envRecord = (env) => {
26
+ if (env === undefined)
27
+ return undefined;
28
+ return Object.fromEntries(Object.entries(env).map(([key, value]) => [
29
+ key,
30
+ Redacted.isRedacted(value) ? Redacted.value(value) : value,
31
+ ]));
32
+ };
33
+ const runFrameworkSite = Effect.fn("Fly.Website.FrameworkSite")(function* (_id, props, config) {
34
+ const ctx = yield* AlchemyContext;
35
+ const remoted = yield* ProviderModePolicy;
36
+ const isLocal = ctx.dev && remoted !== true;
37
+ const path = yield* Path.Path;
38
+ const fs = yield* FileSystem.FileSystem;
39
+ const build = yield* FrameworkServer("Build", {
40
+ framework: config.framework,
41
+ target: config.target,
42
+ root: props.rootDir,
43
+ env: envRecord(props.env),
44
+ options: config.options,
45
+ memo: props.memo,
46
+ dev: props.dev,
47
+ });
48
+ if (isLocal) {
49
+ return {
50
+ url: build.url,
51
+ app: undefined,
52
+ service: undefined,
53
+ ip: undefined,
54
+ certificate: undefined,
55
+ };
56
+ }
57
+ // The build runs at APPLY time (`Website.Server` is a resource), so its
58
+ // attributes are Outputs here — derive every deploy input lazily and let
59
+ // the engine resolve them once the build has produced real paths. Reading
60
+ // `build.distDir` eagerly in the composite body would observe an Output
61
+ // proxy, not a string.
62
+ const buildOut = Output.mapEffect(([serverEntry, distDir]) => Effect.gen(function* () {
63
+ if (serverEntry === undefined || distDir === undefined) {
64
+ return yield* Effect.die(new FrameworkSiteError({
65
+ framework: config.framework,
66
+ message: `The ${config.name} build produced no Node serve entry (serverModules[0]). The Node deploy target should write serve-node.mjs.`,
67
+ }));
68
+ }
69
+ const main = path.resolve(initialCwd, serverEntry);
70
+ if (!(yield* fs.exists(main).pipe(Effect.orElseSucceed(() => false)))) {
71
+ return yield* Effect.die(new FrameworkSiteError({
72
+ framework: config.framework,
73
+ message: `The ${config.name} build produced no server entry at ${main}`,
74
+ }));
75
+ }
76
+ return { distDir: path.resolve(initialCwd, distDir), main };
77
+ }))(Output.all(build.serverEntry, build.distDir));
78
+ const main = Output.map(buildOut, (out) => out.main);
79
+ const extraFiles = Output.mapEffect((out) => packSiteExtraFiles(out.distDir, config.skipClientAssets === true ? "next" : "client"))(buildOut);
80
+ const app = props.app !== undefined ? yield* resolveRef(props.app) : yield* App("App");
81
+ const ip = yield* IpAssignment("Shared", {
82
+ app,
83
+ type: "shared_v4",
84
+ });
85
+ // SPA: hashed `/assets` at Tigris. HTML and unknown paths stay on
86
+ // origin (NodeServe `notFoundHandling: "spa"`). Intercepting `/` with
87
+ // Tigris hangs SPA fallbacks — Fly does not rewrite `/counter/42` to
88
+ // `index.html`.
89
+ let statics;
90
+ if (config.static?.spa === true) {
91
+ const clientDir = Output.map(build.clientDir, (dir) => {
92
+ if (dir === undefined) {
93
+ throw new FrameworkSiteError({
94
+ framework: config.framework,
95
+ message: `The ${config.name} build produced no client assets directory`,
96
+ });
97
+ }
98
+ return path.resolve(initialCwd, dir);
99
+ });
100
+ const bucket = yield* Bucket("Assets", { public: true });
101
+ yield* AssetDeployment("Files", {
102
+ bucket,
103
+ sourcePath: clientDir,
104
+ purge: true,
105
+ });
106
+ statics = Output.mapEffect(([clientDir, bucketName]) => Effect.gen(function* () {
107
+ const assetsDir = path.join(clientDir, "assets");
108
+ const exists = yield* fs.exists(assetsDir).pipe(Effect.orElseSucceed(() => false));
109
+ return exists
110
+ ? [
111
+ {
112
+ guestPath: "/assets",
113
+ urlPrefix: "/assets",
114
+ tigrisBucket: bucketName,
115
+ },
116
+ ]
117
+ : undefined;
118
+ }))(Output.all(clientDir, bucket.name));
119
+ }
120
+ const service = yield* Service("Service", {
121
+ app,
122
+ deploy: props.deploy,
123
+ shutdown: props.shutdown,
124
+ checks: props.checks,
125
+ services: props.services,
126
+ main: main,
127
+ port: DEFAULT_PORT,
128
+ // Node + nitro SSR needs more than the Machine default 256MB.
129
+ guest: { memoryMb: 512 },
130
+ isExternal: true,
131
+ env: props.env,
132
+ extraFiles: extraFiles,
133
+ statics: statics,
134
+ build: config.install !== undefined && config.install.length > 0
135
+ ? { install: config.install }
136
+ : undefined,
137
+ });
138
+ const certificate = props.domain !== undefined
139
+ ? yield* Certificate("Certificate", {
140
+ app,
141
+ hostname: props.domain,
142
+ kind: "acme",
143
+ })
144
+ : undefined;
145
+ const url = props.domain !== undefined ? `https://${props.domain}` : app.url;
146
+ return { url, app, service, ip, certificate };
147
+ });
148
+ /**
149
+ * Shared implementation behind the Fly framework website composites:
150
+ * `Website.Server` runs the framework toolchain (dev sidecar / production
151
+ * build), then a live deploy hosts `serve-node.mjs` on a Fly.Service.
152
+ *
153
+ * Callers pipe `Namespace.push(id)` themselves (the composites do).
154
+ *
155
+ * Composite-level tagged errors (`FrameworkSiteError`, filesystem) are
156
+ * defects — `Alchemy.Stack` only admits `ConfigError` on the user
157
+ * effect, same as Cloudflare/AWS Website composites.
158
+ */
159
+ export const makeFrameworkSite = (id, props, config) => runFrameworkSite(id, props, config).pipe(Effect.orDie);
160
+ /** Push {@link id} then run {@link makeFrameworkSite}. */
161
+ export const frameworkSite = (id, props, config) => makeFrameworkSite(id, props, config).pipe(Namespace.push(id));
162
+ //# sourceMappingURL=FrameworkSite.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FrameworkSite.js","sourceRoot":"","sources":["../../src/Website/FrameworkSite.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,54 @@
1
+ import { type FrameworkSiteProps } from "./FrameworkSite.ts";
2
+ /**
3
+ * The Next.js-on-Node framework module (`next build` + a custom
4
+ * `next({ dev: false })` server). Not OpenNext.
5
+ */
6
+ export declare const NEXTJS_NODE_FRAMEWORK_SPECIFIER = "@alchemy.run/frontend-frameworks/nextjs/node";
7
+ export interface NextjsProps extends FrameworkSiteProps {
8
+ }
9
+ /**
10
+ * Deploy a Next.js application to Fly as a long-running Node process:
11
+ * `next build`, then a serve entry that `import("next")` +
12
+ * `next({ dev: false }).prepare()` + `getRequestHandler()`. The `.next`
13
+ * output (and `public/` when present) is baked into the image; `next` is
14
+ * installed unbundled.
15
+ *
16
+ * Do not use OpenNext AWS/CF wrappers — those are Lambda/workerd.
17
+ *
18
+ * During `alchemy dev` the site is `next dev` and no cloud resources are
19
+ * declared; `Alchemy.remote()` opts back into the live Service path.
20
+ *
21
+ *
22
+ * ### Creating Next.js Sites
23
+ * **Example:** Basic Next.js App
24
+ * ```typescript
25
+ * const site = yield* Fly.Website.Nextjs("Web", {
26
+ * rootDir: "./app",
27
+ * });
28
+ * ```
29
+ *
30
+ * **Example:** Custom Domain
31
+ * ```typescript
32
+ * const site = yield* Fly.Website.Nextjs("Web", {
33
+ * rootDir: "./app",
34
+ * domain: "app.example.com",
35
+ * });
36
+ * ```
37
+ *
38
+ * @resource
39
+ * @product Website
40
+ */
41
+ export declare const Nextjs: (id: string, props?: NextjsProps) => import("effect/Effect").Effect<{
42
+ url: import("alchemy/Output").Output<string | undefined, never>;
43
+ app: undefined;
44
+ service: undefined;
45
+ ip: undefined;
46
+ certificate: undefined;
47
+ } | {
48
+ url: string | import("alchemy/Output").Output<string, never>;
49
+ app: import("../App.ts").App;
50
+ service: import("../Service.ts").Service;
51
+ ip: import("../IpAssignment.ts").IpAssignment;
52
+ certificate: import("../Certificate.ts").Certificate | undefined;
53
+ }, 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>;
54
+ //# sourceMappingURL=Nextjs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Nextjs.d.ts","sourceRoot":"","sources":["../../src/Website/Nextjs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAE5E;;;GAGG;AACH,eAAO,MAAM,+BAA+B,iDAAiD,CAAC;AAE9F,MAAM,WAAW,WAAY,SAAQ,kBAAkB;CAAG;AAE1D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,eAAO,MAAM,MAAM,OAAQ,MAAM,UAAS,WAAW;;;;;;;;;;;;qPAOjD,CAAC"}
@@ -0,0 +1,46 @@
1
+ import { frameworkSite } from "./FrameworkSite.js";
2
+ /**
3
+ * The Next.js-on-Node framework module (`next build` + a custom
4
+ * `next({ dev: false })` server). Not OpenNext.
5
+ */
6
+ export const NEXTJS_NODE_FRAMEWORK_SPECIFIER = "@alchemy.run/frontend-frameworks/nextjs/node";
7
+ /**
8
+ * Deploy a Next.js application to Fly as a long-running Node process:
9
+ * `next build`, then a serve entry that `import("next")` +
10
+ * `next({ dev: false }).prepare()` + `getRequestHandler()`. The `.next`
11
+ * output (and `public/` when present) is baked into the image; `next` is
12
+ * installed unbundled.
13
+ *
14
+ * Do not use OpenNext AWS/CF wrappers — those are Lambda/workerd.
15
+ *
16
+ * During `alchemy dev` the site is `next dev` and no cloud resources are
17
+ * declared; `Alchemy.remote()` opts back into the live Service path.
18
+ *
19
+ *
20
+ * ### Creating Next.js Sites
21
+ * **Example:** Basic Next.js App
22
+ * ```typescript
23
+ * const site = yield* Fly.Website.Nextjs("Web", {
24
+ * rootDir: "./app",
25
+ * });
26
+ * ```
27
+ *
28
+ * **Example:** Custom Domain
29
+ * ```typescript
30
+ * const site = yield* Fly.Website.Nextjs("Web", {
31
+ * rootDir: "./app",
32
+ * domain: "app.example.com",
33
+ * });
34
+ * ```
35
+ *
36
+ * @resource
37
+ * @product Website
38
+ */
39
+ export const Nextjs = (id, props = {}) => frameworkSite(id, props, {
40
+ name: "Next.js",
41
+ framework: NEXTJS_NODE_FRAMEWORK_SPECIFIER,
42
+ target: NEXTJS_NODE_FRAMEWORK_SPECIFIER,
43
+ install: ["next", "react", "react-dom"],
44
+ skipClientAssets: true,
45
+ });
46
+ //# sourceMappingURL=Nextjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Nextjs.js","sourceRoot":"","sources":["../../src/Website/Nextjs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAA2B,MAAM,oBAAoB,CAAC;AAE5E;;;GAGG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAAG,8CAA8C,CAAC;AAI9F;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,EAAU,EAAE,KAAK,GAAgB,EAAE,EAAE,EAAE,CAC5D,aAAa,CAAC,EAAE,EAAE,KAAK,EAAE;IACvB,IAAI,EAAE,SAAS;IACf,SAAS,EAAE,+BAA+B;IAC1C,MAAM,EAAE,+BAA+B;IACvC,OAAO,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,WAAW,CAAC;IACvC,gBAAgB,EAAE,IAAI;CACvB,CAAC,CAAC"}
@@ -0,0 +1,51 @@
1
+ import { type FrameworkSiteProps } from "./FrameworkSite.ts";
2
+ /** The framework-integration package that drives the Nuxt build. */
3
+ export declare const NUXT_FRAMEWORK_SPECIFIER = "@alchemy.run/frontend-frameworks/nuxt";
4
+ /** The Node container deploy target for the Nuxt build. */
5
+ export declare const NUXT_NODE_TARGET_SPECIFIER = "@alchemy.run/frontend-frameworks/nuxt/node";
6
+ export interface NuxtProps extends FrameworkSiteProps {
7
+ /**
8
+ * Nuxt config overrides merged over the project's own `nuxt.config.ts`
9
+ * (highest-priority layer). `nitro.preset` is owned by the Node deploy
10
+ * target and may not be set here.
11
+ */
12
+ nuxt?: Record<string, unknown>;
13
+ }
14
+ /**
15
+ * Deploy a Nuxt application to Fly: the nitro Node server on a Machine,
16
+ * static assets (prerendered pages included) baked into the image.
17
+ *
18
+ *
19
+ * ### Creating Nuxt Sites
20
+ * **Example:** Basic Nuxt App
21
+ * ```typescript
22
+ * const site = yield* Fly.Website.Nuxt("Web", {
23
+ * rootDir: "./app",
24
+ * });
25
+ * ```
26
+ *
27
+ * **Example:** Custom Domain
28
+ * ```typescript
29
+ * const site = yield* Fly.Website.Nuxt("Web", {
30
+ * rootDir: "./app",
31
+ * domain: "app.example.com",
32
+ * });
33
+ * ```
34
+ *
35
+ * @resource
36
+ * @product Website
37
+ */
38
+ export declare const Nuxt: (id: string, props?: NuxtProps) => import("effect/Effect").Effect<{
39
+ url: import("alchemy/Output").Output<string | undefined, never>;
40
+ app: undefined;
41
+ service: undefined;
42
+ ip: undefined;
43
+ certificate: undefined;
44
+ } | {
45
+ url: string | import("alchemy/Output").Output<string, never>;
46
+ app: import("../App.ts").App;
47
+ service: import("../Service.ts").Service;
48
+ ip: import("../IpAssignment.ts").IpAssignment;
49
+ certificate: import("../Certificate.ts").Certificate | undefined;
50
+ }, 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>;
51
+ //# sourceMappingURL=Nuxt.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Nuxt.d.ts","sourceRoot":"","sources":["../../src/Website/Nuxt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAE5E,oEAAoE;AACpE,eAAO,MAAM,wBAAwB,0CAA0C,CAAC;AAEhF,2DAA2D;AAC3D,eAAO,MAAM,0BAA0B,+CAA+C,CAAC;AAEvF,MAAM,WAAW,SAAU,SAAQ,kBAAkB;IACnD;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,eAAO,MAAM,IAAI,OAAQ,MAAM,UAAS,SAAS;;;;;;;;;;;;qPAM7C,CAAC"}
@@ -0,0 +1,36 @@
1
+ import { frameworkSite } from "./FrameworkSite.js";
2
+ /** The framework-integration package that drives the Nuxt build. */
3
+ export const NUXT_FRAMEWORK_SPECIFIER = "@alchemy.run/frontend-frameworks/nuxt";
4
+ /** The Node container deploy target for the Nuxt build. */
5
+ export const NUXT_NODE_TARGET_SPECIFIER = "@alchemy.run/frontend-frameworks/nuxt/node";
6
+ /**
7
+ * Deploy a Nuxt application to Fly: the nitro Node server on a Machine,
8
+ * static assets (prerendered pages included) baked into the image.
9
+ *
10
+ *
11
+ * ### Creating Nuxt Sites
12
+ * **Example:** Basic Nuxt App
13
+ * ```typescript
14
+ * const site = yield* Fly.Website.Nuxt("Web", {
15
+ * rootDir: "./app",
16
+ * });
17
+ * ```
18
+ *
19
+ * **Example:** Custom Domain
20
+ * ```typescript
21
+ * const site = yield* Fly.Website.Nuxt("Web", {
22
+ * rootDir: "./app",
23
+ * domain: "app.example.com",
24
+ * });
25
+ * ```
26
+ *
27
+ * @resource
28
+ * @product Website
29
+ */
30
+ export const Nuxt = (id, props = {}) => frameworkSite(id, props, {
31
+ name: "Nuxt",
32
+ framework: NUXT_FRAMEWORK_SPECIFIER,
33
+ target: NUXT_NODE_TARGET_SPECIFIER,
34
+ options: props.nuxt ? { nuxt: props.nuxt } : undefined,
35
+ });
36
+ //# sourceMappingURL=Nuxt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Nuxt.js","sourceRoot":"","sources":["../../src/Website/Nuxt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAA2B,MAAM,oBAAoB,CAAC;AAE5E,oEAAoE;AACpE,MAAM,CAAC,MAAM,wBAAwB,GAAG,uCAAuC,CAAC;AAEhF,2DAA2D;AAC3D,MAAM,CAAC,MAAM,0BAA0B,GAAG,4CAA4C,CAAC;AAWvF;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,EAAU,EAAE,KAAK,GAAc,EAAE,EAAE,EAAE,CACxD,aAAa,CAAC,EAAE,EAAE,KAAK,EAAE;IACvB,IAAI,EAAE,MAAM;IACZ,SAAS,EAAE,wBAAwB;IACnC,MAAM,EAAE,0BAA0B;IAClC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS;CACvD,CAAC,CAAC"}
@@ -0,0 +1,49 @@
1
+ import { type FrameworkSiteProps } from "./FrameworkSite.ts";
2
+ /** The framework-integration package that drives the Octane build. */
3
+ export declare const OCTANE_FRAMEWORK_SPECIFIER = "@alchemy.run/frontend-frameworks/octane";
4
+ /** The Node container deploy target for the Octane build. */
5
+ export declare const OCTANE_NODE_TARGET_SPECIFIER = "@alchemy.run/frontend-frameworks/octane/node";
6
+ export interface OctaneProps extends FrameworkSiteProps {
7
+ }
8
+ /**
9
+ * Deploy an [OctaneJS](https://octanejs.dev) application to Fly: Octane's
10
+ * SSR server on a Machine, static assets baked into the image.
11
+ *
12
+ * `Fly.Website.Octane` selects hosting and automatically wraps Octane's
13
+ * default native Node output. Keep compiler and route settings in
14
+ * `octane.config.ts` without an adapter. The legacy Node marker adapter
15
+ * remains optional for existing projects.
16
+ *
17
+ * ### Creating Octane Sites
18
+ * **Example:** Basic Octane App
19
+ * ```typescript
20
+ * const site = yield* Fly.Website.Octane("Web", {
21
+ * rootDir: "./app",
22
+ * });
23
+ * ```
24
+ *
25
+ * **Example:** Custom Domain
26
+ * ```typescript
27
+ * const site = yield* Fly.Website.Octane("Web", {
28
+ * rootDir: "./app",
29
+ * domain: "app.example.com",
30
+ * });
31
+ * ```
32
+ *
33
+ * @resource
34
+ * @product Website
35
+ */
36
+ export declare const Octane: (id: string, props?: OctaneProps) => import("effect/Effect").Effect<{
37
+ url: import("alchemy/Output").Output<string | undefined, never>;
38
+ app: undefined;
39
+ service: undefined;
40
+ ip: undefined;
41
+ certificate: undefined;
42
+ } | {
43
+ url: string | import("alchemy/Output").Output<string, never>;
44
+ app: import("../App.ts").App;
45
+ service: import("../Service.ts").Service;
46
+ ip: import("../IpAssignment.ts").IpAssignment;
47
+ certificate: import("../Certificate.ts").Certificate | undefined;
48
+ }, 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>;
49
+ //# sourceMappingURL=Octane.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Octane.d.ts","sourceRoot":"","sources":["../../src/Website/Octane.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAE5E,sEAAsE;AACtE,eAAO,MAAM,0BAA0B,4CAA4C,CAAC;AAEpF,6DAA6D;AAC7D,eAAO,MAAM,4BAA4B,iDAAiD,CAAC;AAE3F,MAAM,WAAW,WAAY,SAAQ,kBAAkB;CAAG;AAE1D;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,eAAO,MAAM,MAAM,OAAQ,MAAM,UAAS,WAAW;;;;;;;;;;;;qPAKjD,CAAC"}
@@ -0,0 +1,39 @@
1
+ import { frameworkSite } from "./FrameworkSite.js";
2
+ /** The framework-integration package that drives the Octane build. */
3
+ export const OCTANE_FRAMEWORK_SPECIFIER = "@alchemy.run/frontend-frameworks/octane";
4
+ /** The Node container deploy target for the Octane build. */
5
+ export const OCTANE_NODE_TARGET_SPECIFIER = "@alchemy.run/frontend-frameworks/octane/node";
6
+ /**
7
+ * Deploy an [OctaneJS](https://octanejs.dev) application to Fly: Octane's
8
+ * SSR server on a Machine, static assets baked into the image.
9
+ *
10
+ * `Fly.Website.Octane` selects hosting and automatically wraps Octane's
11
+ * default native Node output. Keep compiler and route settings in
12
+ * `octane.config.ts` without an adapter. The legacy Node marker adapter
13
+ * remains optional for existing projects.
14
+ *
15
+ * ### Creating Octane Sites
16
+ * **Example:** Basic Octane App
17
+ * ```typescript
18
+ * const site = yield* Fly.Website.Octane("Web", {
19
+ * rootDir: "./app",
20
+ * });
21
+ * ```
22
+ *
23
+ * **Example:** Custom Domain
24
+ * ```typescript
25
+ * const site = yield* Fly.Website.Octane("Web", {
26
+ * rootDir: "./app",
27
+ * domain: "app.example.com",
28
+ * });
29
+ * ```
30
+ *
31
+ * @resource
32
+ * @product Website
33
+ */
34
+ export const Octane = (id, props = {}) => frameworkSite(id, props, {
35
+ name: "Octane",
36
+ framework: OCTANE_FRAMEWORK_SPECIFIER,
37
+ target: OCTANE_NODE_TARGET_SPECIFIER,
38
+ });
39
+ //# sourceMappingURL=Octane.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Octane.js","sourceRoot":"","sources":["../../src/Website/Octane.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAA2B,MAAM,oBAAoB,CAAC;AAE5E,sEAAsE;AACtE,MAAM,CAAC,MAAM,0BAA0B,GAAG,yCAAyC,CAAC;AAEpF,6DAA6D;AAC7D,MAAM,CAAC,MAAM,4BAA4B,GAAG,8CAA8C,CAAC;AAI3F;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,EAAU,EAAE,KAAK,GAAgB,EAAE,EAAE,EAAE,CAC5D,aAAa,CAAC,EAAE,EAAE,KAAK,EAAE;IACvB,IAAI,EAAE,QAAQ;IACd,SAAS,EAAE,0BAA0B;IACrC,MAAM,EAAE,4BAA4B;CACrC,CAAC,CAAC"}