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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (499) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +57 -4
  3. package/lib/App.d.ts +230 -0
  4. package/lib/App.d.ts.map +1 -0
  5. package/lib/App.js +338 -0
  6. package/lib/App.js.map +1 -0
  7. package/lib/AuthProvider.d.ts +22 -0
  8. package/lib/AuthProvider.d.ts.map +1 -0
  9. package/lib/AuthProvider.js +48 -0
  10. package/lib/AuthProvider.js.map +1 -0
  11. package/lib/BindService.d.ts +159 -0
  12. package/lib/BindService.d.ts.map +1 -0
  13. package/lib/BindService.js +222 -0
  14. package/lib/BindService.js.map +1 -0
  15. package/lib/Bootstrap.d.ts +8 -0
  16. package/lib/Bootstrap.d.ts.map +1 -0
  17. package/lib/Bootstrap.js +41 -0
  18. package/lib/Bootstrap.js.map +1 -0
  19. package/lib/Bucket.d.ts +278 -0
  20. package/lib/Bucket.d.ts.map +1 -0
  21. package/lib/Bucket.js +658 -0
  22. package/lib/Bucket.js.map +1 -0
  23. package/lib/BucketBinding.d.ts +33 -0
  24. package/lib/BucketBinding.d.ts.map +1 -0
  25. package/lib/BucketBinding.js +70 -0
  26. package/lib/BucketBinding.js.map +1 -0
  27. package/lib/Catalog.d.ts +28 -0
  28. package/lib/Catalog.d.ts.map +1 -0
  29. package/lib/Catalog.js +31 -0
  30. package/lib/Catalog.js.map +1 -0
  31. package/lib/Certificate.d.ts +189 -0
  32. package/lib/Certificate.d.ts.map +1 -0
  33. package/lib/Certificate.js +380 -0
  34. package/lib/Certificate.js.map +1 -0
  35. package/lib/Checkpoint.d.ts +55 -0
  36. package/lib/Checkpoint.d.ts.map +1 -0
  37. package/lib/Checkpoint.js +3 -0
  38. package/lib/Checkpoint.js.map +1 -0
  39. package/lib/CheckpointHttp.d.ts +22 -0
  40. package/lib/CheckpointHttp.d.ts.map +1 -0
  41. package/lib/CheckpointHttp.js +53 -0
  42. package/lib/CheckpointHttp.js.map +1 -0
  43. package/lib/ConnectPostgres.d.ts +58 -0
  44. package/lib/ConnectPostgres.d.ts.map +1 -0
  45. package/lib/ConnectPostgres.js +13 -0
  46. package/lib/ConnectPostgres.js.map +1 -0
  47. package/lib/ConnectPostgresHttp.d.ts +26 -0
  48. package/lib/ConnectPostgresHttp.d.ts.map +1 -0
  49. package/lib/ConnectPostgresHttp.js +57 -0
  50. package/lib/ConnectPostgresHttp.js.map +1 -0
  51. package/lib/Contributions.d.ts +7 -0
  52. package/lib/Contributions.d.ts.map +1 -0
  53. package/lib/Contributions.js +6 -0
  54. package/lib/Contributions.js.map +1 -0
  55. package/lib/Credentials.d.ts +33 -0
  56. package/lib/Credentials.d.ts.map +1 -0
  57. package/lib/Credentials.js +55 -0
  58. package/lib/Credentials.js.map +1 -0
  59. package/lib/Decrypt.d.ts +52 -0
  60. package/lib/Decrypt.d.ts.map +1 -0
  61. package/lib/Decrypt.js +3 -0
  62. package/lib/Decrypt.js.map +1 -0
  63. package/lib/DecryptHttp.d.ts +22 -0
  64. package/lib/DecryptHttp.d.ts.map +1 -0
  65. package/lib/DecryptHttp.js +43 -0
  66. package/lib/DecryptHttp.js.map +1 -0
  67. package/lib/DeleteObject.d.ts +29 -0
  68. package/lib/DeleteObject.d.ts.map +1 -0
  69. package/lib/DeleteObject.js +3 -0
  70. package/lib/DeleteObject.js.map +1 -0
  71. package/lib/DeleteObjectHttp.d.ts +12 -0
  72. package/lib/DeleteObjectHttp.d.ts.map +1 -0
  73. package/lib/DeleteObjectHttp.js +17 -0
  74. package/lib/DeleteObjectHttp.js.map +1 -0
  75. package/lib/Deployment.d.ts +51 -0
  76. package/lib/Deployment.d.ts.map +1 -0
  77. package/lib/Deployment.js +62 -0
  78. package/lib/Deployment.js.map +1 -0
  79. package/lib/DeploymentImages.d.ts +18 -0
  80. package/lib/DeploymentImages.d.ts.map +1 -0
  81. package/lib/DeploymentImages.js +61 -0
  82. package/lib/DeploymentImages.js.map +1 -0
  83. package/lib/DeploymentState.d.ts +17 -0
  84. package/lib/DeploymentState.d.ts.map +1 -0
  85. package/lib/DeploymentState.js +87 -0
  86. package/lib/DeploymentState.js.map +1 -0
  87. package/lib/Encrypt.d.ts +50 -0
  88. package/lib/Encrypt.d.ts.map +1 -0
  89. package/lib/Encrypt.js +3 -0
  90. package/lib/Encrypt.js.map +1 -0
  91. package/lib/EncryptHttp.d.ts +22 -0
  92. package/lib/EncryptHttp.d.ts.map +1 -0
  93. package/lib/EncryptHttp.js +39 -0
  94. package/lib/EncryptHttp.js.map +1 -0
  95. package/lib/Environment.d.ts +45 -0
  96. package/lib/Environment.d.ts.map +1 -0
  97. package/lib/Environment.js +43 -0
  98. package/lib/Environment.js.map +1 -0
  99. package/lib/Errors.d.ts +18 -0
  100. package/lib/Errors.d.ts.map +1 -0
  101. package/lib/Errors.js +13 -0
  102. package/lib/Errors.js.map +1 -0
  103. package/lib/Exec.d.ts +41 -0
  104. package/lib/Exec.d.ts.map +1 -0
  105. package/lib/Exec.js +3 -0
  106. package/lib/Exec.js.map +1 -0
  107. package/lib/ExecHttp.d.ts +22 -0
  108. package/lib/ExecHttp.d.ts.map +1 -0
  109. package/lib/ExecHttp.js +39 -0
  110. package/lib/ExecHttp.js.map +1 -0
  111. package/lib/GetObject.d.ts +34 -0
  112. package/lib/GetObject.d.ts.map +1 -0
  113. package/lib/GetObject.js +3 -0
  114. package/lib/GetObject.js.map +1 -0
  115. package/lib/GetObjectHttp.d.ts +12 -0
  116. package/lib/GetObjectHttp.d.ts.map +1 -0
  117. package/lib/GetObjectHttp.js +17 -0
  118. package/lib/GetObjectHttp.js.map +1 -0
  119. package/lib/GetSecret.d.ts +44 -0
  120. package/lib/GetSecret.d.ts.map +1 -0
  121. package/lib/GetSecret.js +3 -0
  122. package/lib/GetSecret.js.map +1 -0
  123. package/lib/GetSecretHttp.d.ts +22 -0
  124. package/lib/GetSecretHttp.d.ts.map +1 -0
  125. package/lib/GetSecretHttp.js +50 -0
  126. package/lib/GetSecretHttp.js.map +1 -0
  127. package/lib/HeadObject.d.ts +29 -0
  128. package/lib/HeadObject.d.ts.map +1 -0
  129. package/lib/HeadObject.js +3 -0
  130. package/lib/HeadObject.js.map +1 -0
  131. package/lib/HeadObjectHttp.d.ts +12 -0
  132. package/lib/HeadObjectHttp.d.ts.map +1 -0
  133. package/lib/HeadObjectHttp.js +17 -0
  134. package/lib/HeadObjectHttp.js.map +1 -0
  135. package/lib/IpAssignment.d.ts +258 -0
  136. package/lib/IpAssignment.d.ts.map +1 -0
  137. package/lib/IpAssignment.js +376 -0
  138. package/lib/IpAssignment.js.map +1 -0
  139. package/lib/ListObjectsV2.d.ts +29 -0
  140. package/lib/ListObjectsV2.d.ts.map +1 -0
  141. package/lib/ListObjectsV2.js +3 -0
  142. package/lib/ListObjectsV2.js.map +1 -0
  143. package/lib/ListObjectsV2Http.d.ts +12 -0
  144. package/lib/ListObjectsV2Http.d.ts.map +1 -0
  145. package/lib/ListObjectsV2Http.js +17 -0
  146. package/lib/ListObjectsV2Http.js.map +1 -0
  147. package/lib/ListSecrets.d.ts +53 -0
  148. package/lib/ListSecrets.d.ts.map +1 -0
  149. package/lib/ListSecrets.js +3 -0
  150. package/lib/ListSecrets.js.map +1 -0
  151. package/lib/ListSecretsHttp.d.ts +22 -0
  152. package/lib/ListSecretsHttp.d.ts.map +1 -0
  153. package/lib/ListSecretsHttp.js +35 -0
  154. package/lib/ListSecretsHttp.js.map +1 -0
  155. package/lib/Machine.d.ts +802 -0
  156. package/lib/Machine.d.ts.map +1 -0
  157. package/lib/Machine.js +773 -0
  158. package/lib/Machine.js.map +1 -0
  159. package/lib/MachineContainers.d.ts +44 -0
  160. package/lib/MachineContainers.d.ts.map +1 -0
  161. package/lib/MachineContainers.js +115 -0
  162. package/lib/MachineContainers.js.map +1 -0
  163. package/lib/Metadata.d.ts +109 -0
  164. package/lib/Metadata.d.ts.map +1 -0
  165. package/lib/Metadata.js +159 -0
  166. package/lib/Metadata.js.map +1 -0
  167. package/lib/MountVolume.d.ts +295 -0
  168. package/lib/MountVolume.d.ts.map +1 -0
  169. package/lib/MountVolume.js +20 -0
  170. package/lib/MountVolume.js.map +1 -0
  171. package/lib/Postgres.d.ts +298 -0
  172. package/lib/Postgres.d.ts.map +1 -0
  173. package/lib/Postgres.js +508 -0
  174. package/lib/Postgres.js.map +1 -0
  175. package/lib/PostgresMigrations.d.ts +20 -0
  176. package/lib/PostgresMigrations.d.ts.map +1 -0
  177. package/lib/PostgresMigrations.js +58 -0
  178. package/lib/PostgresMigrations.js.map +1 -0
  179. package/lib/Providers.d.ts +38 -0
  180. package/lib/Providers.d.ts.map +1 -0
  181. package/lib/Providers.js +95 -0
  182. package/lib/Providers.js.map +1 -0
  183. package/lib/PutObject.d.ts +35 -0
  184. package/lib/PutObject.d.ts.map +1 -0
  185. package/lib/PutObject.js +3 -0
  186. package/lib/PutObject.js.map +1 -0
  187. package/lib/PutObjectHttp.d.ts +12 -0
  188. package/lib/PutObjectHttp.d.ts.map +1 -0
  189. package/lib/PutObjectHttp.js +17 -0
  190. package/lib/PutObjectHttp.js.map +1 -0
  191. package/lib/ReadRedis.d.ts +26 -0
  192. package/lib/ReadRedis.d.ts.map +1 -0
  193. package/lib/ReadRedis.js +3 -0
  194. package/lib/ReadRedis.js.map +1 -0
  195. package/lib/ReadRedisHttp.d.ts +11 -0
  196. package/lib/ReadRedisHttp.d.ts.map +1 -0
  197. package/lib/ReadRedisHttp.js +15 -0
  198. package/lib/ReadRedisHttp.js.map +1 -0
  199. package/lib/ReadWriteRedis.d.ts +29 -0
  200. package/lib/ReadWriteRedis.d.ts.map +1 -0
  201. package/lib/ReadWriteRedis.js +3 -0
  202. package/lib/ReadWriteRedis.js.map +1 -0
  203. package/lib/ReadWriteRedisHttp.d.ts +11 -0
  204. package/lib/ReadWriteRedisHttp.d.ts.map +1 -0
  205. package/lib/ReadWriteRedisHttp.js +15 -0
  206. package/lib/ReadWriteRedisHttp.js.map +1 -0
  207. package/lib/Redis.d.ts +252 -0
  208. package/lib/Redis.d.ts.map +1 -0
  209. package/lib/Redis.js +611 -0
  210. package/lib/Redis.js.map +1 -0
  211. package/lib/RedisBinding.d.ts +7 -0
  212. package/lib/RedisBinding.d.ts.map +1 -0
  213. package/lib/RedisBinding.js +53 -0
  214. package/lib/RedisBinding.js.map +1 -0
  215. package/lib/RedisHttp.d.ts +8 -0
  216. package/lib/RedisHttp.d.ts.map +1 -0
  217. package/lib/RedisHttp.js +11 -0
  218. package/lib/RedisHttp.js.map +1 -0
  219. package/lib/Region.d.ts +16 -0
  220. package/lib/Region.d.ts.map +1 -0
  221. package/lib/Region.js +13 -0
  222. package/lib/Region.js.map +1 -0
  223. package/lib/Secret.d.ts +190 -0
  224. package/lib/Secret.d.ts.map +1 -0
  225. package/lib/Secret.js +310 -0
  226. package/lib/Secret.js.map +1 -0
  227. package/lib/SecretHttp.d.ts +54 -0
  228. package/lib/SecretHttp.d.ts.map +1 -0
  229. package/lib/SecretHttp.js +66 -0
  230. package/lib/SecretHttp.js.map +1 -0
  231. package/lib/SecretKey.d.ts +164 -0
  232. package/lib/SecretKey.d.ts.map +1 -0
  233. package/lib/SecretKey.js +277 -0
  234. package/lib/SecretKey.js.map +1 -0
  235. package/lib/SecretKeyHttp.d.ts +14 -0
  236. package/lib/SecretKeyHttp.d.ts.map +1 -0
  237. package/lib/SecretKeyHttp.js +5 -0
  238. package/lib/SecretKeyHttp.js.map +1 -0
  239. package/lib/Service.d.ts +1017 -0
  240. package/lib/Service.d.ts.map +1 -0
  241. package/lib/Service.js +1430 -0
  242. package/lib/Service.js.map +1 -0
  243. package/lib/Sign.d.ts +36 -0
  244. package/lib/Sign.d.ts.map +1 -0
  245. package/lib/Sign.js +3 -0
  246. package/lib/Sign.js.map +1 -0
  247. package/lib/SignHttp.d.ts +22 -0
  248. package/lib/SignHttp.d.ts.map +1 -0
  249. package/lib/SignHttp.js +36 -0
  250. package/lib/SignHttp.js.map +1 -0
  251. package/lib/Sprite.d.ts +283 -0
  252. package/lib/Sprite.d.ts.map +1 -0
  253. package/lib/Sprite.js +471 -0
  254. package/lib/Sprite.js.map +1 -0
  255. package/lib/SpriteHttp.d.ts +25 -0
  256. package/lib/SpriteHttp.d.ts.map +1 -0
  257. package/lib/SpriteHttp.js +33 -0
  258. package/lib/SpriteHttp.js.map +1 -0
  259. package/lib/Verify.d.ts +37 -0
  260. package/lib/Verify.d.ts.map +1 -0
  261. package/lib/Verify.js +3 -0
  262. package/lib/Verify.js.map +1 -0
  263. package/lib/VerifyHttp.d.ts +22 -0
  264. package/lib/VerifyHttp.d.ts.map +1 -0
  265. package/lib/VerifyHttp.js +38 -0
  266. package/lib/VerifyHttp.js.map +1 -0
  267. package/lib/Volume.d.ts +53 -0
  268. package/lib/Volume.d.ts.map +1 -0
  269. package/lib/Volume.js +188 -0
  270. package/lib/Volume.js.map +1 -0
  271. package/lib/VolumeSnapshot.d.ts +135 -0
  272. package/lib/VolumeSnapshot.d.ts.map +1 -0
  273. package/lib/VolumeSnapshot.js +213 -0
  274. package/lib/VolumeSnapshot.js.map +1 -0
  275. package/lib/Website/AssetDeployment.d.ts +43 -0
  276. package/lib/Website/AssetDeployment.d.ts.map +1 -0
  277. package/lib/Website/AssetDeployment.js +162 -0
  278. package/lib/Website/AssetDeployment.js.map +1 -0
  279. package/lib/Website/Astro.d.ts +89 -0
  280. package/lib/Website/Astro.d.ts.map +1 -0
  281. package/lib/Website/Astro.js +54 -0
  282. package/lib/Website/Astro.js.map +1 -0
  283. package/lib/Website/Foldkit.d.ts +52 -0
  284. package/lib/Website/Foldkit.d.ts.map +1 -0
  285. package/lib/Website/Foldkit.js +45 -0
  286. package/lib/Website/Foldkit.js.map +1 -0
  287. package/lib/Website/FrameworkSite.d.ts +212 -0
  288. package/lib/Website/FrameworkSite.d.ts.map +1 -0
  289. package/lib/Website/FrameworkSite.js +205 -0
  290. package/lib/Website/FrameworkSite.js.map +1 -0
  291. package/lib/Website/Nextjs.d.ts +54 -0
  292. package/lib/Website/Nextjs.d.ts.map +1 -0
  293. package/lib/Website/Nextjs.js +46 -0
  294. package/lib/Website/Nextjs.js.map +1 -0
  295. package/lib/Website/Nuxt.d.ts +51 -0
  296. package/lib/Website/Nuxt.d.ts.map +1 -0
  297. package/lib/Website/Nuxt.js +36 -0
  298. package/lib/Website/Nuxt.js.map +1 -0
  299. package/lib/Website/Octane.d.ts +49 -0
  300. package/lib/Website/Octane.d.ts.map +1 -0
  301. package/lib/Website/Octane.js +39 -0
  302. package/lib/Website/Octane.js.map +1 -0
  303. package/lib/Website/ReactRouter.d.ts +80 -0
  304. package/lib/Website/ReactRouter.d.ts.map +1 -0
  305. package/lib/Website/ReactRouter.js +70 -0
  306. package/lib/Website/ReactRouter.js.map +1 -0
  307. package/lib/Website/SolidStart.d.ts +93 -0
  308. package/lib/Website/SolidStart.d.ts.map +1 -0
  309. package/lib/Website/SolidStart.js +71 -0
  310. package/lib/Website/SolidStart.js.map +1 -0
  311. package/lib/Website/StaticSite.d.ts +162 -0
  312. package/lib/Website/StaticSite.d.ts.map +1 -0
  313. package/lib/Website/StaticSite.js +180 -0
  314. package/lib/Website/StaticSite.js.map +1 -0
  315. package/lib/Website/SvelteKit.d.ts +52 -0
  316. package/lib/Website/SvelteKit.d.ts.map +1 -0
  317. package/lib/Website/SvelteKit.js +37 -0
  318. package/lib/Website/SvelteKit.js.map +1 -0
  319. package/lib/Website/TanStackStart.d.ts +76 -0
  320. package/lib/Website/TanStackStart.d.ts.map +1 -0
  321. package/lib/Website/TanStackStart.js +66 -0
  322. package/lib/Website/TanStackStart.js.map +1 -0
  323. package/lib/Website/Vinext.d.ts +73 -0
  324. package/lib/Website/Vinext.d.ts.map +1 -0
  325. package/lib/Website/Vinext.js +67 -0
  326. package/lib/Website/Vinext.js.map +1 -0
  327. package/lib/Website/Vite.d.ts +112 -0
  328. package/lib/Website/Vite.d.ts.map +1 -0
  329. package/lib/Website/Vite.js +100 -0
  330. package/lib/Website/Vite.js.map +1 -0
  331. package/lib/Website/Vocs.d.ts +52 -0
  332. package/lib/Website/Vocs.d.ts.map +1 -0
  333. package/lib/Website/Vocs.js +38 -0
  334. package/lib/Website/Vocs.js.map +1 -0
  335. package/lib/Website/Waku.d.ts +64 -0
  336. package/lib/Website/Waku.d.ts.map +1 -0
  337. package/lib/Website/Waku.js +39 -0
  338. package/lib/Website/Waku.js.map +1 -0
  339. package/lib/Website/index.d.ts +17 -0
  340. package/lib/Website/index.d.ts.map +1 -0
  341. package/lib/Website/index.js +17 -0
  342. package/lib/Website/index.js.map +1 -0
  343. package/lib/WriteCertificates.d.ts +63 -0
  344. package/lib/WriteCertificates.d.ts.map +1 -0
  345. package/lib/WriteCertificates.js +3 -0
  346. package/lib/WriteCertificates.js.map +1 -0
  347. package/lib/WriteCertificatesHttp.d.ts +25 -0
  348. package/lib/WriteCertificatesHttp.d.ts.map +1 -0
  349. package/lib/WriteCertificatesHttp.js +67 -0
  350. package/lib/WriteCertificatesHttp.js.map +1 -0
  351. package/lib/WriteRedis.d.ts +26 -0
  352. package/lib/WriteRedis.d.ts.map +1 -0
  353. package/lib/WriteRedis.js +3 -0
  354. package/lib/WriteRedis.js.map +1 -0
  355. package/lib/WriteRedisHttp.d.ts +11 -0
  356. package/lib/WriteRedisHttp.d.ts.map +1 -0
  357. package/lib/WriteRedisHttp.js +15 -0
  358. package/lib/WriteRedisHttp.js.map +1 -0
  359. package/lib/WriteSecret.d.ts +68 -0
  360. package/lib/WriteSecret.d.ts.map +1 -0
  361. package/lib/WriteSecret.js +4 -0
  362. package/lib/WriteSecret.js.map +1 -0
  363. package/lib/WriteSecretHttp.d.ts +26 -0
  364. package/lib/WriteSecretHttp.d.ts.map +1 -0
  365. package/lib/WriteSecretHttp.js +54 -0
  366. package/lib/WriteSecretHttp.js.map +1 -0
  367. package/lib/bluegreen.d.ts +36 -0
  368. package/lib/bluegreen.d.ts.map +1 -0
  369. package/lib/bluegreen.js +460 -0
  370. package/lib/bluegreen.js.map +1 -0
  371. package/lib/hosted.d.ts +171 -0
  372. package/lib/hosted.d.ts.map +1 -0
  373. package/lib/hosted.js +458 -0
  374. package/lib/hosted.js.map +1 -0
  375. package/lib/index.d.ts +65 -0
  376. package/lib/index.d.ts.map +1 -0
  377. package/lib/index.js +63 -0
  378. package/lib/index.js.map +1 -0
  379. package/lib/internal/RemoteBuilder.d.ts +28 -0
  380. package/lib/internal/RemoteBuilder.d.ts.map +1 -0
  381. package/lib/internal/RemoteBuilder.js +158 -0
  382. package/lib/internal/RemoteBuilder.js.map +1 -0
  383. package/lib/leases.d.ts +53 -0
  384. package/lib/leases.d.ts.map +1 -0
  385. package/lib/leases.js +279 -0
  386. package/lib/leases.js.map +1 -0
  387. package/lib/ports.d.ts +51 -0
  388. package/lib/ports.d.ts.map +1 -0
  389. package/lib/ports.js +123 -0
  390. package/lib/ports.js.map +1 -0
  391. package/lib/replicas.d.ts +270 -0
  392. package/lib/replicas.d.ts.map +1 -0
  393. package/lib/replicas.js +969 -0
  394. package/lib/replicas.js.map +1 -0
  395. package/lib/rpc.d.ts +35 -0
  396. package/lib/rpc.d.ts.map +1 -0
  397. package/lib/rpc.js +113 -0
  398. package/lib/rpc.js.map +1 -0
  399. package/package.json +83 -3
  400. package/src/App.ts +514 -0
  401. package/src/AuthProvider.ts +68 -0
  402. package/src/BindService.ts +303 -0
  403. package/src/Bootstrap.ts +66 -0
  404. package/src/Bucket.ts +918 -0
  405. package/src/BucketBinding.ts +128 -0
  406. package/src/Catalog.ts +43 -0
  407. package/src/Certificate.ts +548 -0
  408. package/src/Checkpoint.ts +69 -0
  409. package/src/CheckpointHttp.ts +66 -0
  410. package/src/ConnectPostgres.ts +68 -0
  411. package/src/ConnectPostgresHttp.ts +77 -0
  412. package/src/Contributions.ts +9 -0
  413. package/src/Credentials.ts +75 -0
  414. package/src/Decrypt.ts +62 -0
  415. package/src/DecryptHttp.ts +52 -0
  416. package/src/DeleteObject.ts +43 -0
  417. package/src/DeleteObjectHttp.ts +20 -0
  418. package/src/Deployment.ts +121 -0
  419. package/src/DeploymentImages.ts +84 -0
  420. package/src/DeploymentState.ts +104 -0
  421. package/src/Encrypt.ts +60 -0
  422. package/src/EncryptHttp.ts +48 -0
  423. package/src/Environment.ts +81 -0
  424. package/src/Errors.ts +14 -0
  425. package/src/Exec.ts +50 -0
  426. package/src/ExecHttp.ts +47 -0
  427. package/src/GetObject.ts +48 -0
  428. package/src/GetObjectHttp.ts +20 -0
  429. package/src/GetSecret.ts +48 -0
  430. package/src/GetSecretHttp.ts +60 -0
  431. package/src/HeadObject.ts +43 -0
  432. package/src/HeadObjectHttp.ts +20 -0
  433. package/src/IpAssignment.ts +522 -0
  434. package/src/ListObjectsV2.ts +43 -0
  435. package/src/ListObjectsV2Http.ts +20 -0
  436. package/src/ListSecrets.ts +57 -0
  437. package/src/ListSecretsHttp.ts +43 -0
  438. package/src/Machine.ts +1270 -0
  439. package/src/MachineContainers.ts +152 -0
  440. package/src/Metadata.ts +195 -0
  441. package/src/MountVolume.ts +315 -0
  442. package/src/Postgres.ts +777 -0
  443. package/src/PostgresMigrations.ts +93 -0
  444. package/src/Providers.ts +155 -0
  445. package/src/PutObject.ts +49 -0
  446. package/src/PutObjectHttp.ts +20 -0
  447. package/src/ReadRedis.ts +31 -0
  448. package/src/ReadRedisHttp.ts +18 -0
  449. package/src/ReadWriteRedis.ts +33 -0
  450. package/src/ReadWriteRedisHttp.ts +18 -0
  451. package/src/Redis.ts +823 -0
  452. package/src/RedisBinding.ts +64 -0
  453. package/src/RedisHttp.ts +14 -0
  454. package/src/Region.ts +44 -0
  455. package/src/Secret.ts +405 -0
  456. package/src/SecretHttp.ts +149 -0
  457. package/src/SecretKey.ts +389 -0
  458. package/src/SecretKeyHttp.ts +23 -0
  459. package/src/Service.ts +1968 -0
  460. package/src/Sign.ts +46 -0
  461. package/src/SignHttp.ts +44 -0
  462. package/src/Sprite.ts +673 -0
  463. package/src/SpriteHttp.ts +50 -0
  464. package/src/Verify.ts +47 -0
  465. package/src/VerifyHttp.ts +46 -0
  466. package/src/Volume.ts +264 -0
  467. package/src/VolumeSnapshot.ts +321 -0
  468. package/src/Website/AssetDeployment.ts +292 -0
  469. package/src/Website/Astro.ts +92 -0
  470. package/src/Website/Foldkit.ts +54 -0
  471. package/src/Website/FrameworkSite.ts +449 -0
  472. package/src/Website/Nextjs.ts +50 -0
  473. package/src/Website/Nuxt.ts +48 -0
  474. package/src/Website/Octane.ts +44 -0
  475. package/src/Website/ReactRouter.ts +76 -0
  476. package/src/Website/SolidStart.ts +90 -0
  477. package/src/Website/StaticSite.ts +295 -0
  478. package/src/Website/SvelteKit.ts +49 -0
  479. package/src/Website/TanStackStart.ts +72 -0
  480. package/src/Website/Vinext.ts +79 -0
  481. package/src/Website/Vite.ts +121 -0
  482. package/src/Website/Vocs.ts +50 -0
  483. package/src/Website/Waku.ts +65 -0
  484. package/src/Website/index.ts +16 -0
  485. package/src/WriteCertificates.ts +90 -0
  486. package/src/WriteCertificatesHttp.ts +93 -0
  487. package/src/WriteRedis.ts +31 -0
  488. package/src/WriteRedisHttp.ts +18 -0
  489. package/src/WriteSecret.ts +86 -0
  490. package/src/WriteSecretHttp.ts +71 -0
  491. package/src/bluegreen.ts +711 -0
  492. package/src/globals.d.ts +2 -0
  493. package/src/hosted.ts +667 -0
  494. package/src/index.ts +64 -0
  495. package/src/internal/RemoteBuilder.ts +242 -0
  496. package/src/leases.ts +437 -0
  497. package/src/ports.ts +177 -0
  498. package/src/replicas.ts +1480 -0
  499. package/src/rpc.ts +136 -0
@@ -0,0 +1,180 @@
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 { publishWebsiteDomainDns, staticConfigFromAssets, websiteDomainName, } 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 domainName = websiteDomainName(props.domain);
163
+ const certificate = domainName !== undefined
164
+ ? yield* Certificate("Certificate", {
165
+ app,
166
+ hostname: domainName,
167
+ kind: "acme",
168
+ }).pipe(Namespace.push(id))
169
+ : undefined;
170
+ if (props.domain !== undefined && certificate !== undefined) {
171
+ yield* publishWebsiteDomainDns({
172
+ domain: props.domain,
173
+ certificate,
174
+ ip,
175
+ }).pipe(Namespace.push(id));
176
+ }
177
+ const url = domainName !== undefined ? `https://${domainName}` : app.url;
178
+ return { url, app, service, ip, certificate };
179
+ }).pipe(Effect.orDie);
180
+ //# 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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"}
@@ -0,0 +1,52 @@
1
+ import { type FrameworkSiteProps } from "./FrameworkSite.ts";
2
+ /** The framework-integration package that drives the SvelteKit build. */
3
+ export declare const SVELTEKIT_FRAMEWORK_SPECIFIER = "@alchemy.run/frontend-frameworks/sveltekit";
4
+ /** The Node container deploy target for the SvelteKit build. */
5
+ export declare const SVELTEKIT_NODE_TARGET_SPECIFIER = "@alchemy.run/frontend-frameworks/sveltekit/node";
6
+ export interface SvelteKitProps extends FrameworkSiteProps {
7
+ /**
8
+ * SvelteKit configuration passed to the `sveltekit(config)` Vite plugin.
9
+ * The `adapter` field is injected by the Node deploy target and may not
10
+ * be set here. Must be JSON-serializable.
11
+ */
12
+ kit?: Record<string, unknown>;
13
+ }
14
+ /**
15
+ * Deploy a SvelteKit application to Fly: kit's SSR server on a Machine,
16
+ * static assets baked into the image, served assets-first then the
17
+ * framework handler.
18
+ *
19
+ *
20
+ * ### Creating SvelteKit Sites
21
+ * **Example:** Basic SvelteKit App
22
+ * ```typescript
23
+ * const site = yield* Fly.Website.SvelteKit("Web", {
24
+ * rootDir: "./app",
25
+ * });
26
+ * ```
27
+ *
28
+ * **Example:** Custom Domain
29
+ * ```typescript
30
+ * const site = yield* Fly.Website.SvelteKit("Web", {
31
+ * rootDir: "./app",
32
+ * domain: "app.example.com",
33
+ * });
34
+ * ```
35
+ *
36
+ * @resource
37
+ * @product Website
38
+ */
39
+ export declare const SvelteKit: (id: string, props?: SvelteKitProps) => import("effect/Effect").Effect<{
40
+ url: import("alchemy/Output").Output<string | undefined, never>;
41
+ app: undefined;
42
+ service: undefined;
43
+ ip: undefined;
44
+ certificate: undefined;
45
+ } | {
46
+ url: string | import("alchemy/Output").Output<string, never>;
47
+ app: import("../App.ts").App;
48
+ service: import("../Service.ts").Service;
49
+ ip: import("../IpAssignment.ts").IpAssignment;
50
+ certificate: import("../Certificate.ts").Certificate | undefined;
51
+ }, 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>;
52
+ //# sourceMappingURL=SvelteKit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SvelteKit.d.ts","sourceRoot":"","sources":["../../src/Website/SvelteKit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAE5E,yEAAyE;AACzE,eAAO,MAAM,6BAA6B,+CAA+C,CAAC;AAE1F,gEAAgE;AAChE,eAAO,MAAM,+BAA+B,oDAAoD,CAAC;AAEjG,MAAM,WAAW,cAAe,SAAQ,kBAAkB;IACxD;;;;OAIG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC/B;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,eAAO,MAAM,SAAS,OAAQ,MAAM,UAAS,cAAc;;;;;;;;;;;;qPAMvD,CAAC"}
@@ -0,0 +1,37 @@
1
+ import { frameworkSite } from "./FrameworkSite.js";
2
+ /** The framework-integration package that drives the SvelteKit build. */
3
+ export const SVELTEKIT_FRAMEWORK_SPECIFIER = "@alchemy.run/frontend-frameworks/sveltekit";
4
+ /** The Node container deploy target for the SvelteKit build. */
5
+ export const SVELTEKIT_NODE_TARGET_SPECIFIER = "@alchemy.run/frontend-frameworks/sveltekit/node";
6
+ /**
7
+ * Deploy a SvelteKit application to Fly: kit's SSR server on a Machine,
8
+ * static assets baked into the image, served assets-first then the
9
+ * framework handler.
10
+ *
11
+ *
12
+ * ### Creating SvelteKit Sites
13
+ * **Example:** Basic SvelteKit App
14
+ * ```typescript
15
+ * const site = yield* Fly.Website.SvelteKit("Web", {
16
+ * rootDir: "./app",
17
+ * });
18
+ * ```
19
+ *
20
+ * **Example:** Custom Domain
21
+ * ```typescript
22
+ * const site = yield* Fly.Website.SvelteKit("Web", {
23
+ * rootDir: "./app",
24
+ * domain: "app.example.com",
25
+ * });
26
+ * ```
27
+ *
28
+ * @resource
29
+ * @product Website
30
+ */
31
+ export const SvelteKit = (id, props = {}) => frameworkSite(id, props, {
32
+ name: "SvelteKit",
33
+ framework: SVELTEKIT_FRAMEWORK_SPECIFIER,
34
+ target: SVELTEKIT_NODE_TARGET_SPECIFIER,
35
+ options: props.kit ? { kit: props.kit } : undefined,
36
+ });
37
+ //# sourceMappingURL=SvelteKit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SvelteKit.js","sourceRoot":"","sources":["../../src/Website/SvelteKit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAA2B,MAAM,oBAAoB,CAAC;AAE5E,yEAAyE;AACzE,MAAM,CAAC,MAAM,6BAA6B,GAAG,4CAA4C,CAAC;AAE1F,gEAAgE;AAChE,MAAM,CAAC,MAAM,+BAA+B,GAAG,iDAAiD,CAAC;AAWjG;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,EAAU,EAAE,KAAK,GAAmB,EAAE,EAAE,EAAE,CAClE,aAAa,CAAC,EAAE,EAAE,KAAK,EAAE;IACvB,IAAI,EAAE,WAAW;IACjB,SAAS,EAAE,6BAA6B;IACxC,MAAM,EAAE,+BAA+B;IACvC,OAAO,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,SAAS;CACpD,CAAC,CAAC"}
@@ -0,0 +1,76 @@
1
+ import { type FrameworkSiteProps } from "./FrameworkSite.ts";
2
+ /** The framework-integration package that drives the TanStack Start build. */
3
+ export declare const TANSTACK_START_FRAMEWORK_SPECIFIER = "@alchemy.run/frontend-frameworks/tanstack-start";
4
+ /** The Node container deploy target for the TanStack Start build. */
5
+ export declare const TANSTACK_START_NODE_TARGET_SPECIFIER = "@alchemy.run/frontend-frameworks/tanstack-start/node";
6
+ export interface TanStackStartProps extends FrameworkSiteProps {
7
+ }
8
+ /**
9
+ * Deploy a [TanStack Start](https://tanstack.com/start) application to Fly:
10
+ * the SSR server on a Machine, client assets baked into the image, served
11
+ * assets-first then the framework handler.
12
+ *
13
+ * The build runs through
14
+ * `@alchemy.run/frontend-frameworks/tanstack-start` with the
15
+ * `@alchemy.run/frontend-frameworks/tanstack-start/node` deploy target —
16
+ * both must be installed in your project, alongside
17
+ * `@tanstack/react-start` (or `@tanstack/solid-start`) and `vite`.
18
+ *
19
+ * Your `vite.config.ts` needs no adapter wiring: TanStack Start is pure
20
+ * Vite, so the integration drives the project's own `vite build`, forces
21
+ * the SSR bundle to be self-contained, and wraps its fetch handler as a
22
+ * Node HTTP server on port 3000.
23
+ *
24
+ *
25
+ * ### Creating TanStack Start Sites
26
+ * **Example:** Basic TanStack Start App
27
+ * ```typescript
28
+ * const site = yield* Fly.Website.TanStackStart("Web", {
29
+ * rootDir: "./app",
30
+ * });
31
+ * ```
32
+ *
33
+ * **Example:** Custom Domain
34
+ * ```typescript
35
+ * const site = yield* Fly.Website.TanStackStart("Web", {
36
+ * rootDir: "./app",
37
+ * domain: "app.example.com",
38
+ * });
39
+ * ```
40
+ *
41
+ * ### Server Configuration
42
+ * **Example:** Process Environment
43
+ * ```typescript
44
+ * const site = yield* Fly.Website.TanStackStart("Web", {
45
+ * rootDir: "./app",
46
+ * env: {
47
+ * GREETING: "Hello from TanStack Start on Fly!",
48
+ * },
49
+ * });
50
+ * ```
51
+ *
52
+ * **Example:** Read An Environment Variable From A Server Function
53
+ * ```typescript
54
+ * // src/routes/index.tsx
55
+ * const getGreeting = createServerFn({ method: "GET" }).handler(
56
+ * () => process.env.GREETING ?? "Hello!",
57
+ * );
58
+ * ```
59
+ *
60
+ * @resource
61
+ * @product Website
62
+ */
63
+ export declare const TanStackStart: (id: string, props?: TanStackStartProps) => import("effect/Effect").Effect<{
64
+ url: import("alchemy/Output").Output<string | undefined, never>;
65
+ app: undefined;
66
+ service: undefined;
67
+ ip: undefined;
68
+ certificate: undefined;
69
+ } | {
70
+ url: string | import("alchemy/Output").Output<string, never>;
71
+ app: import("../App.ts").App;
72
+ service: import("../Service.ts").Service;
73
+ ip: import("../IpAssignment.ts").IpAssignment;
74
+ certificate: import("../Certificate.ts").Certificate | undefined;
75
+ }, 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>;
76
+ //# sourceMappingURL=TanStackStart.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TanStackStart.d.ts","sourceRoot":"","sources":["../../src/Website/TanStackStart.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAE5E,8EAA8E;AAC9E,eAAO,MAAM,kCAAkC,oDAAoD,CAAC;AAEpG,qEAAqE;AACrE,eAAO,MAAM,oCAAoC,yDACO,CAAC;AAEzD,MAAM,WAAW,kBAAmB,SAAQ,kBAAkB;CAAG;AAEjE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsDG;AACH,eAAO,MAAM,aAAa,OAAQ,MAAM,UAAS,kBAAkB;;;;;;;;;;;;qPAK/D,CAAC"}
@@ -0,0 +1,66 @@
1
+ import { frameworkSite } from "./FrameworkSite.js";
2
+ /** The framework-integration package that drives the TanStack Start build. */
3
+ export const TANSTACK_START_FRAMEWORK_SPECIFIER = "@alchemy.run/frontend-frameworks/tanstack-start";
4
+ /** The Node container deploy target for the TanStack Start build. */
5
+ export const TANSTACK_START_NODE_TARGET_SPECIFIER = "@alchemy.run/frontend-frameworks/tanstack-start/node";
6
+ /**
7
+ * Deploy a [TanStack Start](https://tanstack.com/start) application to Fly:
8
+ * the SSR server on a Machine, client assets baked into the image, served
9
+ * assets-first then the framework handler.
10
+ *
11
+ * The build runs through
12
+ * `@alchemy.run/frontend-frameworks/tanstack-start` with the
13
+ * `@alchemy.run/frontend-frameworks/tanstack-start/node` deploy target —
14
+ * both must be installed in your project, alongside
15
+ * `@tanstack/react-start` (or `@tanstack/solid-start`) and `vite`.
16
+ *
17
+ * Your `vite.config.ts` needs no adapter wiring: TanStack Start is pure
18
+ * Vite, so the integration drives the project's own `vite build`, forces
19
+ * the SSR bundle to be self-contained, and wraps its fetch handler as a
20
+ * Node HTTP server on port 3000.
21
+ *
22
+ *
23
+ * ### Creating TanStack Start Sites
24
+ * **Example:** Basic TanStack Start App
25
+ * ```typescript
26
+ * const site = yield* Fly.Website.TanStackStart("Web", {
27
+ * rootDir: "./app",
28
+ * });
29
+ * ```
30
+ *
31
+ * **Example:** Custom Domain
32
+ * ```typescript
33
+ * const site = yield* Fly.Website.TanStackStart("Web", {
34
+ * rootDir: "./app",
35
+ * domain: "app.example.com",
36
+ * });
37
+ * ```
38
+ *
39
+ * ### Server Configuration
40
+ * **Example:** Process Environment
41
+ * ```typescript
42
+ * const site = yield* Fly.Website.TanStackStart("Web", {
43
+ * rootDir: "./app",
44
+ * env: {
45
+ * GREETING: "Hello from TanStack Start on Fly!",
46
+ * },
47
+ * });
48
+ * ```
49
+ *
50
+ * **Example:** Read An Environment Variable From A Server Function
51
+ * ```typescript
52
+ * // src/routes/index.tsx
53
+ * const getGreeting = createServerFn({ method: "GET" }).handler(
54
+ * () => process.env.GREETING ?? "Hello!",
55
+ * );
56
+ * ```
57
+ *
58
+ * @resource
59
+ * @product Website
60
+ */
61
+ export const TanStackStart = (id, props = {}) => frameworkSite(id, props, {
62
+ name: "TanStackStart",
63
+ framework: TANSTACK_START_FRAMEWORK_SPECIFIER,
64
+ target: TANSTACK_START_NODE_TARGET_SPECIFIER,
65
+ });
66
+ //# sourceMappingURL=TanStackStart.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TanStackStart.js","sourceRoot":"","sources":["../../src/Website/TanStackStart.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAA2B,MAAM,oBAAoB,CAAC;AAE5E,8EAA8E;AAC9E,MAAM,CAAC,MAAM,kCAAkC,GAAG,iDAAiD,CAAC;AAEpG,qEAAqE;AACrE,MAAM,CAAC,MAAM,oCAAoC,GAC/C,sDAAsD,CAAC;AAIzD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsDG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,EAAU,EAAE,KAAK,GAAuB,EAAE,EAAE,EAAE,CAC1E,aAAa,CAAC,EAAE,EAAE,KAAK,EAAE;IACvB,IAAI,EAAE,eAAe;IACrB,SAAS,EAAE,kCAAkC;IAC7C,MAAM,EAAE,oCAAoC;CAC7C,CAAC,CAAC"}
@@ -0,0 +1,73 @@
1
+ import * as Effect from "effect/Effect";
2
+ import type { Redis } from "../Redis.ts";
3
+ import { type FrameworkSiteProps } from "./FrameworkSite.ts";
4
+ /**
5
+ * The vinext-on-Node framework module (vinext's Vite build +
6
+ * `startProdServer`). Not the Cloudflare Worker source.
7
+ */
8
+ export declare const VINEXT_NODE_FRAMEWORK_SPECIFIER = "@alchemy.run/frontend-frameworks/vinext/node";
9
+ export interface VinextProps extends FrameworkSiteProps {
10
+ /**
11
+ * Optional Upstash Redis for ISR / `"use cache"`. Bound onto the
12
+ * hosted Service so Alchemy writes `REDIS_URL` as an App secret.
13
+ * The resource injects the Redis data-cache adapter automatically.
14
+ */
15
+ redis?: Redis;
16
+ }
17
+ /**
18
+ * Deploy a [vinext](https://vinext.dev) application to Fly as a
19
+ * long-running Node process: vinext's Vite build, then vinext's production
20
+ * server (`startProdServer`). The `dist/` output is baked into the
21
+ * image; `vinext` is installed unbundled.
22
+ *
23
+ * Do not use the Cloudflare Worker entry (`vinext/server/fetch-handler`)
24
+ * — that is workerd.
25
+ *
26
+ * ISR / `"use cache"` persist in Redis when you pass {@link VinextProps.redis}.
27
+ * The resource injects the adapter automatically. Missing `REDIS_URL`
28
+ * (local `vinext start` / `alchemy dev`) falls back to memory.
29
+ *
30
+ * During `alchemy dev` the site is `vinext dev` and no cloud resources
31
+ * are declared; `Alchemy.remote()` opts back into the live Service path.
32
+ *
33
+ * ### Creating vinext Sites
34
+ * **Example:** Basic vinext App
35
+ * ```typescript
36
+ * const site = yield* Fly.Website.Vinext("Web", {
37
+ * rootDir: "./app",
38
+ * });
39
+ * ```
40
+ *
41
+ * **Example:** Redis data cache
42
+ * ```typescript
43
+ * const redis = yield* Fly.Redis("Cache", { eviction: true });
44
+ * const site = yield* Fly.Website.Vinext("Web", {
45
+ * redis,
46
+ * });
47
+ * ```
48
+ *
49
+ * **Example:** Custom Domain
50
+ * ```typescript
51
+ * const site = yield* Fly.Website.Vinext("Web", {
52
+ * rootDir: "./app",
53
+ * domain: "app.example.com",
54
+ * });
55
+ * ```
56
+ *
57
+ * @resource
58
+ * @product Website
59
+ */
60
+ export declare const Vinext: (id: string, propsIn?: VinextProps) => Effect.Effect<{
61
+ url: import("alchemy/Output").Output<string | undefined, never>;
62
+ app: undefined;
63
+ service: undefined;
64
+ ip: undefined;
65
+ certificate: undefined;
66
+ } | {
67
+ url: string | import("alchemy/Output").Output<string, never>;
68
+ app: import("../App.ts").App;
69
+ service: import("../Service.ts").Service;
70
+ ip: import("../IpAssignment.ts").IpAssignment;
71
+ certificate: import("../Certificate.ts").Certificate | undefined;
72
+ }, 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>;
73
+ //# sourceMappingURL=Vinext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Vinext.d.ts","sourceRoot":"","sources":["../../src/Website/Vinext.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAqB,KAAK,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAEhF;;;GAGG;AACH,eAAO,MAAM,+BAA+B,iDAAiD,CAAC;AAE9F,MAAM,WAAW,WAAY,SAAQ,kBAAkB;IACrD;;;;OAIG;IACH,KAAK,CAAC,EAAE,KAAK,CAAC;CACf;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AACH,eAAO,MAAM,MAAM,OAAQ,MAAM,YAAW,WAAW;;;;;;;;;;;;qPAe1B,CAAC"}
@@ -0,0 +1,67 @@
1
+ import * as Namespace from "alchemy/Namespace";
2
+ import * as Effect from "effect/Effect";
3
+ import { makeFrameworkSite } from "./FrameworkSite.js";
4
+ /**
5
+ * The vinext-on-Node framework module (vinext's Vite build +
6
+ * `startProdServer`). Not the Cloudflare Worker source.
7
+ */
8
+ export const VINEXT_NODE_FRAMEWORK_SPECIFIER = "@alchemy.run/frontend-frameworks/vinext/node";
9
+ /**
10
+ * Deploy a [vinext](https://vinext.dev) application to Fly as a
11
+ * long-running Node process: vinext's Vite build, then vinext's production
12
+ * server (`startProdServer`). The `dist/` output is baked into the
13
+ * image; `vinext` is installed unbundled.
14
+ *
15
+ * Do not use the Cloudflare Worker entry (`vinext/server/fetch-handler`)
16
+ * — that is workerd.
17
+ *
18
+ * ISR / `"use cache"` persist in Redis when you pass {@link VinextProps.redis}.
19
+ * The resource injects the adapter automatically. Missing `REDIS_URL`
20
+ * (local `vinext start` / `alchemy dev`) falls back to memory.
21
+ *
22
+ * During `alchemy dev` the site is `vinext dev` and no cloud resources
23
+ * are declared; `Alchemy.remote()` opts back into the live Service path.
24
+ *
25
+ * ### Creating vinext Sites
26
+ * **Example:** Basic vinext App
27
+ * ```typescript
28
+ * const site = yield* Fly.Website.Vinext("Web", {
29
+ * rootDir: "./app",
30
+ * });
31
+ * ```
32
+ *
33
+ * **Example:** Redis data cache
34
+ * ```typescript
35
+ * const redis = yield* Fly.Redis("Cache", { eviction: true });
36
+ * const site = yield* Fly.Website.Vinext("Web", {
37
+ * redis,
38
+ * });
39
+ * ```
40
+ *
41
+ * **Example:** Custom Domain
42
+ * ```typescript
43
+ * const site = yield* Fly.Website.Vinext("Web", {
44
+ * rootDir: "./app",
45
+ * domain: "app.example.com",
46
+ * });
47
+ * ```
48
+ *
49
+ * @resource
50
+ * @product Website
51
+ */
52
+ export const Vinext = (id, propsIn = {}) => Effect.gen(function* () {
53
+ const { redis, ...props } = propsIn;
54
+ const site = yield* makeFrameworkSite(id, props, {
55
+ name: "Vinext",
56
+ framework: VINEXT_NODE_FRAMEWORK_SPECIFIER,
57
+ target: VINEXT_NODE_FRAMEWORK_SPECIFIER,
58
+ install: ["vinext", "react", "react-dom", "react-server-dom-webpack"],
59
+ });
60
+ if (redis !== undefined && site.service !== undefined) {
61
+ yield* site.service.bind `${redis}`({
62
+ redis: { name: redis.name, id: redis.redisId },
63
+ });
64
+ }
65
+ return site;
66
+ }).pipe(Namespace.push(id));
67
+ //# sourceMappingURL=Vinext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Vinext.js","sourceRoot":"","sources":["../../src/Website/Vinext.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,SAAS,MAAM,mBAAmB,CAAC;AAC/C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,EAAE,iBAAiB,EAA2B,MAAM,oBAAoB,CAAC;AAEhF;;;GAGG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAAG,8CAA8C,CAAC;AAW9F;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,EAAU,EAAE,OAAO,GAAgB,EAAE,EAAE,EAAE,CAC9D,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,EAAE,GAAG,OAAO,CAAC;IACpC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,iBAAiB,CAAC,EAAE,EAAE,KAAK,EAAE;QAC/C,IAAI,EAAE,QAAQ;QACd,SAAS,EAAE,+BAA+B;QAC1C,MAAM,EAAE,+BAA+B;QACvC,OAAO,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,0BAA0B,CAAC;KACtE,CAAC,CAAC;IACH,IAAI,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QACtD,KAAK,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAA,GAAG,KAAK,EAAE,CAAC;YACjC,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,EAAE,EAAE,KAAK,CAAC,OAAO,EAAE;SAC/C,CAAC,CAAC;IACL,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC"}