@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.
- package/LICENSE +201 -0
- package/README.md +57 -4
- package/lib/App.d.ts +230 -0
- package/lib/App.d.ts.map +1 -0
- package/lib/App.js +338 -0
- package/lib/App.js.map +1 -0
- package/lib/AuthProvider.d.ts +22 -0
- package/lib/AuthProvider.d.ts.map +1 -0
- package/lib/AuthProvider.js +48 -0
- package/lib/AuthProvider.js.map +1 -0
- package/lib/BindService.d.ts +159 -0
- package/lib/BindService.d.ts.map +1 -0
- package/lib/BindService.js +222 -0
- package/lib/BindService.js.map +1 -0
- package/lib/Bootstrap.d.ts +8 -0
- package/lib/Bootstrap.d.ts.map +1 -0
- package/lib/Bootstrap.js +41 -0
- package/lib/Bootstrap.js.map +1 -0
- package/lib/Bucket.d.ts +278 -0
- package/lib/Bucket.d.ts.map +1 -0
- package/lib/Bucket.js +658 -0
- package/lib/Bucket.js.map +1 -0
- package/lib/BucketBinding.d.ts +33 -0
- package/lib/BucketBinding.d.ts.map +1 -0
- package/lib/BucketBinding.js +70 -0
- package/lib/BucketBinding.js.map +1 -0
- package/lib/Catalog.d.ts +28 -0
- package/lib/Catalog.d.ts.map +1 -0
- package/lib/Catalog.js +31 -0
- package/lib/Catalog.js.map +1 -0
- package/lib/Certificate.d.ts +189 -0
- package/lib/Certificate.d.ts.map +1 -0
- package/lib/Certificate.js +380 -0
- package/lib/Certificate.js.map +1 -0
- package/lib/Checkpoint.d.ts +55 -0
- package/lib/Checkpoint.d.ts.map +1 -0
- package/lib/Checkpoint.js +3 -0
- package/lib/Checkpoint.js.map +1 -0
- package/lib/CheckpointHttp.d.ts +22 -0
- package/lib/CheckpointHttp.d.ts.map +1 -0
- package/lib/CheckpointHttp.js +53 -0
- package/lib/CheckpointHttp.js.map +1 -0
- package/lib/ConnectPostgres.d.ts +58 -0
- package/lib/ConnectPostgres.d.ts.map +1 -0
- package/lib/ConnectPostgres.js +13 -0
- package/lib/ConnectPostgres.js.map +1 -0
- package/lib/ConnectPostgresHttp.d.ts +26 -0
- package/lib/ConnectPostgresHttp.d.ts.map +1 -0
- package/lib/ConnectPostgresHttp.js +57 -0
- package/lib/ConnectPostgresHttp.js.map +1 -0
- package/lib/Contributions.d.ts +7 -0
- package/lib/Contributions.d.ts.map +1 -0
- package/lib/Contributions.js +6 -0
- package/lib/Contributions.js.map +1 -0
- package/lib/Credentials.d.ts +33 -0
- package/lib/Credentials.d.ts.map +1 -0
- package/lib/Credentials.js +55 -0
- package/lib/Credentials.js.map +1 -0
- package/lib/Decrypt.d.ts +52 -0
- package/lib/Decrypt.d.ts.map +1 -0
- package/lib/Decrypt.js +3 -0
- package/lib/Decrypt.js.map +1 -0
- package/lib/DecryptHttp.d.ts +22 -0
- package/lib/DecryptHttp.d.ts.map +1 -0
- package/lib/DecryptHttp.js +43 -0
- package/lib/DecryptHttp.js.map +1 -0
- package/lib/DeleteObject.d.ts +29 -0
- package/lib/DeleteObject.d.ts.map +1 -0
- package/lib/DeleteObject.js +3 -0
- package/lib/DeleteObject.js.map +1 -0
- package/lib/DeleteObjectHttp.d.ts +12 -0
- package/lib/DeleteObjectHttp.d.ts.map +1 -0
- package/lib/DeleteObjectHttp.js +17 -0
- package/lib/DeleteObjectHttp.js.map +1 -0
- package/lib/Deployment.d.ts +51 -0
- package/lib/Deployment.d.ts.map +1 -0
- package/lib/Deployment.js +62 -0
- package/lib/Deployment.js.map +1 -0
- package/lib/DeploymentImages.d.ts +18 -0
- package/lib/DeploymentImages.d.ts.map +1 -0
- package/lib/DeploymentImages.js +61 -0
- package/lib/DeploymentImages.js.map +1 -0
- package/lib/DeploymentState.d.ts +17 -0
- package/lib/DeploymentState.d.ts.map +1 -0
- package/lib/DeploymentState.js +87 -0
- package/lib/DeploymentState.js.map +1 -0
- package/lib/Encrypt.d.ts +50 -0
- package/lib/Encrypt.d.ts.map +1 -0
- package/lib/Encrypt.js +3 -0
- package/lib/Encrypt.js.map +1 -0
- package/lib/EncryptHttp.d.ts +22 -0
- package/lib/EncryptHttp.d.ts.map +1 -0
- package/lib/EncryptHttp.js +39 -0
- package/lib/EncryptHttp.js.map +1 -0
- package/lib/Environment.d.ts +45 -0
- package/lib/Environment.d.ts.map +1 -0
- package/lib/Environment.js +43 -0
- package/lib/Environment.js.map +1 -0
- package/lib/Errors.d.ts +18 -0
- package/lib/Errors.d.ts.map +1 -0
- package/lib/Errors.js +13 -0
- package/lib/Errors.js.map +1 -0
- package/lib/Exec.d.ts +41 -0
- package/lib/Exec.d.ts.map +1 -0
- package/lib/Exec.js +3 -0
- package/lib/Exec.js.map +1 -0
- package/lib/ExecHttp.d.ts +22 -0
- package/lib/ExecHttp.d.ts.map +1 -0
- package/lib/ExecHttp.js +39 -0
- package/lib/ExecHttp.js.map +1 -0
- package/lib/GetObject.d.ts +34 -0
- package/lib/GetObject.d.ts.map +1 -0
- package/lib/GetObject.js +3 -0
- package/lib/GetObject.js.map +1 -0
- package/lib/GetObjectHttp.d.ts +12 -0
- package/lib/GetObjectHttp.d.ts.map +1 -0
- package/lib/GetObjectHttp.js +17 -0
- package/lib/GetObjectHttp.js.map +1 -0
- package/lib/GetSecret.d.ts +44 -0
- package/lib/GetSecret.d.ts.map +1 -0
- package/lib/GetSecret.js +3 -0
- package/lib/GetSecret.js.map +1 -0
- package/lib/GetSecretHttp.d.ts +22 -0
- package/lib/GetSecretHttp.d.ts.map +1 -0
- package/lib/GetSecretHttp.js +50 -0
- package/lib/GetSecretHttp.js.map +1 -0
- package/lib/HeadObject.d.ts +29 -0
- package/lib/HeadObject.d.ts.map +1 -0
- package/lib/HeadObject.js +3 -0
- package/lib/HeadObject.js.map +1 -0
- package/lib/HeadObjectHttp.d.ts +12 -0
- package/lib/HeadObjectHttp.d.ts.map +1 -0
- package/lib/HeadObjectHttp.js +17 -0
- package/lib/HeadObjectHttp.js.map +1 -0
- package/lib/IpAssignment.d.ts +258 -0
- package/lib/IpAssignment.d.ts.map +1 -0
- package/lib/IpAssignment.js +376 -0
- package/lib/IpAssignment.js.map +1 -0
- package/lib/ListObjectsV2.d.ts +29 -0
- package/lib/ListObjectsV2.d.ts.map +1 -0
- package/lib/ListObjectsV2.js +3 -0
- package/lib/ListObjectsV2.js.map +1 -0
- package/lib/ListObjectsV2Http.d.ts +12 -0
- package/lib/ListObjectsV2Http.d.ts.map +1 -0
- package/lib/ListObjectsV2Http.js +17 -0
- package/lib/ListObjectsV2Http.js.map +1 -0
- package/lib/ListSecrets.d.ts +53 -0
- package/lib/ListSecrets.d.ts.map +1 -0
- package/lib/ListSecrets.js +3 -0
- package/lib/ListSecrets.js.map +1 -0
- package/lib/ListSecretsHttp.d.ts +22 -0
- package/lib/ListSecretsHttp.d.ts.map +1 -0
- package/lib/ListSecretsHttp.js +35 -0
- package/lib/ListSecretsHttp.js.map +1 -0
- package/lib/Machine.d.ts +802 -0
- package/lib/Machine.d.ts.map +1 -0
- package/lib/Machine.js +773 -0
- package/lib/Machine.js.map +1 -0
- package/lib/MachineContainers.d.ts +44 -0
- package/lib/MachineContainers.d.ts.map +1 -0
- package/lib/MachineContainers.js +115 -0
- package/lib/MachineContainers.js.map +1 -0
- package/lib/Metadata.d.ts +109 -0
- package/lib/Metadata.d.ts.map +1 -0
- package/lib/Metadata.js +159 -0
- package/lib/Metadata.js.map +1 -0
- package/lib/MountVolume.d.ts +295 -0
- package/lib/MountVolume.d.ts.map +1 -0
- package/lib/MountVolume.js +20 -0
- package/lib/MountVolume.js.map +1 -0
- package/lib/Postgres.d.ts +298 -0
- package/lib/Postgres.d.ts.map +1 -0
- package/lib/Postgres.js +508 -0
- package/lib/Postgres.js.map +1 -0
- package/lib/PostgresMigrations.d.ts +20 -0
- package/lib/PostgresMigrations.d.ts.map +1 -0
- package/lib/PostgresMigrations.js +58 -0
- package/lib/PostgresMigrations.js.map +1 -0
- package/lib/Providers.d.ts +38 -0
- package/lib/Providers.d.ts.map +1 -0
- package/lib/Providers.js +95 -0
- package/lib/Providers.js.map +1 -0
- package/lib/PutObject.d.ts +35 -0
- package/lib/PutObject.d.ts.map +1 -0
- package/lib/PutObject.js +3 -0
- package/lib/PutObject.js.map +1 -0
- package/lib/PutObjectHttp.d.ts +12 -0
- package/lib/PutObjectHttp.d.ts.map +1 -0
- package/lib/PutObjectHttp.js +17 -0
- package/lib/PutObjectHttp.js.map +1 -0
- package/lib/ReadRedis.d.ts +26 -0
- package/lib/ReadRedis.d.ts.map +1 -0
- package/lib/ReadRedis.js +3 -0
- package/lib/ReadRedis.js.map +1 -0
- package/lib/ReadRedisHttp.d.ts +11 -0
- package/lib/ReadRedisHttp.d.ts.map +1 -0
- package/lib/ReadRedisHttp.js +15 -0
- package/lib/ReadRedisHttp.js.map +1 -0
- package/lib/ReadWriteRedis.d.ts +29 -0
- package/lib/ReadWriteRedis.d.ts.map +1 -0
- package/lib/ReadWriteRedis.js +3 -0
- package/lib/ReadWriteRedis.js.map +1 -0
- package/lib/ReadWriteRedisHttp.d.ts +11 -0
- package/lib/ReadWriteRedisHttp.d.ts.map +1 -0
- package/lib/ReadWriteRedisHttp.js +15 -0
- package/lib/ReadWriteRedisHttp.js.map +1 -0
- package/lib/Redis.d.ts +252 -0
- package/lib/Redis.d.ts.map +1 -0
- package/lib/Redis.js +611 -0
- package/lib/Redis.js.map +1 -0
- package/lib/RedisBinding.d.ts +7 -0
- package/lib/RedisBinding.d.ts.map +1 -0
- package/lib/RedisBinding.js +53 -0
- package/lib/RedisBinding.js.map +1 -0
- package/lib/RedisHttp.d.ts +8 -0
- package/lib/RedisHttp.d.ts.map +1 -0
- package/lib/RedisHttp.js +11 -0
- package/lib/RedisHttp.js.map +1 -0
- package/lib/Region.d.ts +16 -0
- package/lib/Region.d.ts.map +1 -0
- package/lib/Region.js +13 -0
- package/lib/Region.js.map +1 -0
- package/lib/Secret.d.ts +190 -0
- package/lib/Secret.d.ts.map +1 -0
- package/lib/Secret.js +310 -0
- package/lib/Secret.js.map +1 -0
- package/lib/SecretHttp.d.ts +54 -0
- package/lib/SecretHttp.d.ts.map +1 -0
- package/lib/SecretHttp.js +66 -0
- package/lib/SecretHttp.js.map +1 -0
- package/lib/SecretKey.d.ts +164 -0
- package/lib/SecretKey.d.ts.map +1 -0
- package/lib/SecretKey.js +277 -0
- package/lib/SecretKey.js.map +1 -0
- package/lib/SecretKeyHttp.d.ts +14 -0
- package/lib/SecretKeyHttp.d.ts.map +1 -0
- package/lib/SecretKeyHttp.js +5 -0
- package/lib/SecretKeyHttp.js.map +1 -0
- package/lib/Service.d.ts +1017 -0
- package/lib/Service.d.ts.map +1 -0
- package/lib/Service.js +1430 -0
- package/lib/Service.js.map +1 -0
- package/lib/Sign.d.ts +36 -0
- package/lib/Sign.d.ts.map +1 -0
- package/lib/Sign.js +3 -0
- package/lib/Sign.js.map +1 -0
- package/lib/SignHttp.d.ts +22 -0
- package/lib/SignHttp.d.ts.map +1 -0
- package/lib/SignHttp.js +36 -0
- package/lib/SignHttp.js.map +1 -0
- package/lib/Sprite.d.ts +283 -0
- package/lib/Sprite.d.ts.map +1 -0
- package/lib/Sprite.js +471 -0
- package/lib/Sprite.js.map +1 -0
- package/lib/SpriteHttp.d.ts +25 -0
- package/lib/SpriteHttp.d.ts.map +1 -0
- package/lib/SpriteHttp.js +33 -0
- package/lib/SpriteHttp.js.map +1 -0
- package/lib/Verify.d.ts +37 -0
- package/lib/Verify.d.ts.map +1 -0
- package/lib/Verify.js +3 -0
- package/lib/Verify.js.map +1 -0
- package/lib/VerifyHttp.d.ts +22 -0
- package/lib/VerifyHttp.d.ts.map +1 -0
- package/lib/VerifyHttp.js +38 -0
- package/lib/VerifyHttp.js.map +1 -0
- package/lib/Volume.d.ts +53 -0
- package/lib/Volume.d.ts.map +1 -0
- package/lib/Volume.js +188 -0
- package/lib/Volume.js.map +1 -0
- package/lib/VolumeSnapshot.d.ts +135 -0
- package/lib/VolumeSnapshot.d.ts.map +1 -0
- package/lib/VolumeSnapshot.js +213 -0
- package/lib/VolumeSnapshot.js.map +1 -0
- package/lib/Website/AssetDeployment.d.ts +43 -0
- package/lib/Website/AssetDeployment.d.ts.map +1 -0
- package/lib/Website/AssetDeployment.js +162 -0
- package/lib/Website/AssetDeployment.js.map +1 -0
- package/lib/Website/Astro.d.ts +89 -0
- package/lib/Website/Astro.d.ts.map +1 -0
- package/lib/Website/Astro.js +54 -0
- package/lib/Website/Astro.js.map +1 -0
- package/lib/Website/Foldkit.d.ts +52 -0
- package/lib/Website/Foldkit.d.ts.map +1 -0
- package/lib/Website/Foldkit.js +45 -0
- package/lib/Website/Foldkit.js.map +1 -0
- package/lib/Website/FrameworkSite.d.ts +212 -0
- package/lib/Website/FrameworkSite.d.ts.map +1 -0
- package/lib/Website/FrameworkSite.js +205 -0
- package/lib/Website/FrameworkSite.js.map +1 -0
- package/lib/Website/Nextjs.d.ts +54 -0
- package/lib/Website/Nextjs.d.ts.map +1 -0
- package/lib/Website/Nextjs.js +46 -0
- package/lib/Website/Nextjs.js.map +1 -0
- package/lib/Website/Nuxt.d.ts +51 -0
- package/lib/Website/Nuxt.d.ts.map +1 -0
- package/lib/Website/Nuxt.js +36 -0
- package/lib/Website/Nuxt.js.map +1 -0
- package/lib/Website/Octane.d.ts +49 -0
- package/lib/Website/Octane.d.ts.map +1 -0
- package/lib/Website/Octane.js +39 -0
- package/lib/Website/Octane.js.map +1 -0
- package/lib/Website/ReactRouter.d.ts +80 -0
- package/lib/Website/ReactRouter.d.ts.map +1 -0
- package/lib/Website/ReactRouter.js +70 -0
- package/lib/Website/ReactRouter.js.map +1 -0
- package/lib/Website/SolidStart.d.ts +93 -0
- package/lib/Website/SolidStart.d.ts.map +1 -0
- package/lib/Website/SolidStart.js +71 -0
- package/lib/Website/SolidStart.js.map +1 -0
- package/lib/Website/StaticSite.d.ts +162 -0
- package/lib/Website/StaticSite.d.ts.map +1 -0
- package/lib/Website/StaticSite.js +180 -0
- package/lib/Website/StaticSite.js.map +1 -0
- package/lib/Website/SvelteKit.d.ts +52 -0
- package/lib/Website/SvelteKit.d.ts.map +1 -0
- package/lib/Website/SvelteKit.js +37 -0
- package/lib/Website/SvelteKit.js.map +1 -0
- package/lib/Website/TanStackStart.d.ts +76 -0
- package/lib/Website/TanStackStart.d.ts.map +1 -0
- package/lib/Website/TanStackStart.js +66 -0
- package/lib/Website/TanStackStart.js.map +1 -0
- package/lib/Website/Vinext.d.ts +73 -0
- package/lib/Website/Vinext.d.ts.map +1 -0
- package/lib/Website/Vinext.js +67 -0
- package/lib/Website/Vinext.js.map +1 -0
- package/lib/Website/Vite.d.ts +112 -0
- package/lib/Website/Vite.d.ts.map +1 -0
- package/lib/Website/Vite.js +100 -0
- package/lib/Website/Vite.js.map +1 -0
- package/lib/Website/Vocs.d.ts +52 -0
- package/lib/Website/Vocs.d.ts.map +1 -0
- package/lib/Website/Vocs.js +38 -0
- package/lib/Website/Vocs.js.map +1 -0
- package/lib/Website/Waku.d.ts +64 -0
- package/lib/Website/Waku.d.ts.map +1 -0
- package/lib/Website/Waku.js +39 -0
- package/lib/Website/Waku.js.map +1 -0
- package/lib/Website/index.d.ts +17 -0
- package/lib/Website/index.d.ts.map +1 -0
- package/lib/Website/index.js +17 -0
- package/lib/Website/index.js.map +1 -0
- package/lib/WriteCertificates.d.ts +63 -0
- package/lib/WriteCertificates.d.ts.map +1 -0
- package/lib/WriteCertificates.js +3 -0
- package/lib/WriteCertificates.js.map +1 -0
- package/lib/WriteCertificatesHttp.d.ts +25 -0
- package/lib/WriteCertificatesHttp.d.ts.map +1 -0
- package/lib/WriteCertificatesHttp.js +67 -0
- package/lib/WriteCertificatesHttp.js.map +1 -0
- package/lib/WriteRedis.d.ts +26 -0
- package/lib/WriteRedis.d.ts.map +1 -0
- package/lib/WriteRedis.js +3 -0
- package/lib/WriteRedis.js.map +1 -0
- package/lib/WriteRedisHttp.d.ts +11 -0
- package/lib/WriteRedisHttp.d.ts.map +1 -0
- package/lib/WriteRedisHttp.js +15 -0
- package/lib/WriteRedisHttp.js.map +1 -0
- package/lib/WriteSecret.d.ts +68 -0
- package/lib/WriteSecret.d.ts.map +1 -0
- package/lib/WriteSecret.js +4 -0
- package/lib/WriteSecret.js.map +1 -0
- package/lib/WriteSecretHttp.d.ts +26 -0
- package/lib/WriteSecretHttp.d.ts.map +1 -0
- package/lib/WriteSecretHttp.js +54 -0
- package/lib/WriteSecretHttp.js.map +1 -0
- package/lib/bluegreen.d.ts +36 -0
- package/lib/bluegreen.d.ts.map +1 -0
- package/lib/bluegreen.js +460 -0
- package/lib/bluegreen.js.map +1 -0
- package/lib/hosted.d.ts +171 -0
- package/lib/hosted.d.ts.map +1 -0
- package/lib/hosted.js +458 -0
- package/lib/hosted.js.map +1 -0
- package/lib/index.d.ts +65 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +63 -0
- package/lib/index.js.map +1 -0
- package/lib/internal/RemoteBuilder.d.ts +28 -0
- package/lib/internal/RemoteBuilder.d.ts.map +1 -0
- package/lib/internal/RemoteBuilder.js +158 -0
- package/lib/internal/RemoteBuilder.js.map +1 -0
- package/lib/leases.d.ts +53 -0
- package/lib/leases.d.ts.map +1 -0
- package/lib/leases.js +279 -0
- package/lib/leases.js.map +1 -0
- package/lib/ports.d.ts +51 -0
- package/lib/ports.d.ts.map +1 -0
- package/lib/ports.js +123 -0
- package/lib/ports.js.map +1 -0
- package/lib/replicas.d.ts +270 -0
- package/lib/replicas.d.ts.map +1 -0
- package/lib/replicas.js +969 -0
- package/lib/replicas.js.map +1 -0
- package/lib/rpc.d.ts +35 -0
- package/lib/rpc.d.ts.map +1 -0
- package/lib/rpc.js +113 -0
- package/lib/rpc.js.map +1 -0
- package/package.json +83 -3
- package/src/App.ts +514 -0
- package/src/AuthProvider.ts +68 -0
- package/src/BindService.ts +303 -0
- package/src/Bootstrap.ts +66 -0
- package/src/Bucket.ts +918 -0
- package/src/BucketBinding.ts +128 -0
- package/src/Catalog.ts +43 -0
- package/src/Certificate.ts +548 -0
- package/src/Checkpoint.ts +69 -0
- package/src/CheckpointHttp.ts +66 -0
- package/src/ConnectPostgres.ts +68 -0
- package/src/ConnectPostgresHttp.ts +77 -0
- package/src/Contributions.ts +9 -0
- package/src/Credentials.ts +75 -0
- package/src/Decrypt.ts +62 -0
- package/src/DecryptHttp.ts +52 -0
- package/src/DeleteObject.ts +43 -0
- package/src/DeleteObjectHttp.ts +20 -0
- package/src/Deployment.ts +121 -0
- package/src/DeploymentImages.ts +84 -0
- package/src/DeploymentState.ts +104 -0
- package/src/Encrypt.ts +60 -0
- package/src/EncryptHttp.ts +48 -0
- package/src/Environment.ts +81 -0
- package/src/Errors.ts +14 -0
- package/src/Exec.ts +50 -0
- package/src/ExecHttp.ts +47 -0
- package/src/GetObject.ts +48 -0
- package/src/GetObjectHttp.ts +20 -0
- package/src/GetSecret.ts +48 -0
- package/src/GetSecretHttp.ts +60 -0
- package/src/HeadObject.ts +43 -0
- package/src/HeadObjectHttp.ts +20 -0
- package/src/IpAssignment.ts +522 -0
- package/src/ListObjectsV2.ts +43 -0
- package/src/ListObjectsV2Http.ts +20 -0
- package/src/ListSecrets.ts +57 -0
- package/src/ListSecretsHttp.ts +43 -0
- package/src/Machine.ts +1270 -0
- package/src/MachineContainers.ts +152 -0
- package/src/Metadata.ts +195 -0
- package/src/MountVolume.ts +315 -0
- package/src/Postgres.ts +777 -0
- package/src/PostgresMigrations.ts +93 -0
- package/src/Providers.ts +155 -0
- package/src/PutObject.ts +49 -0
- package/src/PutObjectHttp.ts +20 -0
- package/src/ReadRedis.ts +31 -0
- package/src/ReadRedisHttp.ts +18 -0
- package/src/ReadWriteRedis.ts +33 -0
- package/src/ReadWriteRedisHttp.ts +18 -0
- package/src/Redis.ts +823 -0
- package/src/RedisBinding.ts +64 -0
- package/src/RedisHttp.ts +14 -0
- package/src/Region.ts +44 -0
- package/src/Secret.ts +405 -0
- package/src/SecretHttp.ts +149 -0
- package/src/SecretKey.ts +389 -0
- package/src/SecretKeyHttp.ts +23 -0
- package/src/Service.ts +1968 -0
- package/src/Sign.ts +46 -0
- package/src/SignHttp.ts +44 -0
- package/src/Sprite.ts +673 -0
- package/src/SpriteHttp.ts +50 -0
- package/src/Verify.ts +47 -0
- package/src/VerifyHttp.ts +46 -0
- package/src/Volume.ts +264 -0
- package/src/VolumeSnapshot.ts +321 -0
- package/src/Website/AssetDeployment.ts +292 -0
- package/src/Website/Astro.ts +92 -0
- package/src/Website/Foldkit.ts +54 -0
- package/src/Website/FrameworkSite.ts +449 -0
- package/src/Website/Nextjs.ts +50 -0
- package/src/Website/Nuxt.ts +48 -0
- package/src/Website/Octane.ts +44 -0
- package/src/Website/ReactRouter.ts +76 -0
- package/src/Website/SolidStart.ts +90 -0
- package/src/Website/StaticSite.ts +295 -0
- package/src/Website/SvelteKit.ts +49 -0
- package/src/Website/TanStackStart.ts +72 -0
- package/src/Website/Vinext.ts +79 -0
- package/src/Website/Vite.ts +121 -0
- package/src/Website/Vocs.ts +50 -0
- package/src/Website/Waku.ts +65 -0
- package/src/Website/index.ts +16 -0
- package/src/WriteCertificates.ts +90 -0
- package/src/WriteCertificatesHttp.ts +93 -0
- package/src/WriteRedis.ts +31 -0
- package/src/WriteRedisHttp.ts +18 -0
- package/src/WriteSecret.ts +86 -0
- package/src/WriteSecretHttp.ts +71 -0
- package/src/bluegreen.ts +711 -0
- package/src/globals.d.ts +2 -0
- package/src/hosted.ts +667 -0
- package/src/index.ts +64 -0
- package/src/internal/RemoteBuilder.ts +242 -0
- package/src/leases.ts +437 -0
- package/src/ports.ts +177 -0
- package/src/replicas.ts +1480 -0
- package/src/rpc.ts +136 -0
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import { type FrameworkSiteProps } from "./FrameworkSite.ts";
|
|
2
|
+
/** The framework-integration package that drives the Vite build. */
|
|
3
|
+
export declare const VITE_FRAMEWORK_SPECIFIER = "@alchemy.run/frontend-frameworks/vite";
|
|
4
|
+
/** The Node container deploy target for the Vite build. */
|
|
5
|
+
export declare const VITE_NODE_TARGET_SPECIFIER = "@alchemy.run/frontend-frameworks/vite/node";
|
|
6
|
+
export interface ViteProps extends FrameworkSiteProps {
|
|
7
|
+
/**
|
|
8
|
+
* Serializable Vite config merged OVER the project's own `vite.config.*`
|
|
9
|
+
* (which loads natively, plugins included).
|
|
10
|
+
*/
|
|
11
|
+
vite?: {
|
|
12
|
+
/**
|
|
13
|
+
* Build output directory, relative to `rootDir`.
|
|
14
|
+
* @default the project config's `build.outDir` (vite's default: "dist")
|
|
15
|
+
*/
|
|
16
|
+
outDir?: string;
|
|
17
|
+
/** Public base path the site deploys under (vite's `base`). */
|
|
18
|
+
base?: string;
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Deploy a plain [Vite](https://vite.dev) application to Fly: a Service
|
|
23
|
+
* serving the `vite build` output from a tiny static-file server. For
|
|
24
|
+
* client-only projects — React/Vue/Solid SPAs, `index.html` multi-page
|
|
25
|
+
* apps — whose entire deployable output is static assets.
|
|
26
|
+
*
|
|
27
|
+
* The build runs through `@alchemy.run/frontend-frameworks/vite` with the
|
|
28
|
+
* `@alchemy.run/frontend-frameworks/vite/node` deploy target — the package
|
|
29
|
+
* must be installed in your project. Your project's own `vite.config.*`
|
|
30
|
+
* (plugins included) drives the build.
|
|
31
|
+
*
|
|
32
|
+
* During `alchemy dev` the site is Vite's own dev server (native HMR) and
|
|
33
|
+
* no cloud resources are created — the site's `url` is the dev server's
|
|
34
|
+
* local address. `Alchemy.remote()` opts back into the full deployment.
|
|
35
|
+
*
|
|
36
|
+
*
|
|
37
|
+
* ### Creating Vite Sites
|
|
38
|
+
* **Example:** Basic Vite SPA
|
|
39
|
+
* ```typescript
|
|
40
|
+
* const site = yield* Fly.Website.Vite("Web");
|
|
41
|
+
* ```
|
|
42
|
+
*
|
|
43
|
+
* **Example:** Project in a Subdirectory
|
|
44
|
+
* ```typescript
|
|
45
|
+
* const site = yield* Fly.Website.Vite("Web", {
|
|
46
|
+
* rootDir: "./app",
|
|
47
|
+
* });
|
|
48
|
+
* ```
|
|
49
|
+
*
|
|
50
|
+
* **Example:** Existing App
|
|
51
|
+
* ```typescript
|
|
52
|
+
* const site = yield* Fly.Website.Vite("Web", { app: Site });
|
|
53
|
+
* ```
|
|
54
|
+
*
|
|
55
|
+
* ### Multi-Page Sites
|
|
56
|
+
* **Example:** Per-Route HTML Pages with a 404 Page
|
|
57
|
+
* ```typescript
|
|
58
|
+
* const site = yield* Fly.Website.Vite("Docs", {
|
|
59
|
+
* assets: { notFoundHandling: "404-page" },
|
|
60
|
+
* });
|
|
61
|
+
* ```
|
|
62
|
+
*
|
|
63
|
+
* ### Custom Domain
|
|
64
|
+
* **Example:** ACME on an existing hostname
|
|
65
|
+
* ```typescript
|
|
66
|
+
* const site = yield* Fly.Website.Vite("Web", {
|
|
67
|
+
* domain: "app.example.com",
|
|
68
|
+
* });
|
|
69
|
+
* ```
|
|
70
|
+
*
|
|
71
|
+
* **Example:** Publish DNS in Cloudflare
|
|
72
|
+
* ```typescript
|
|
73
|
+
* // The ACME challenge CNAME and A/AAAA records are published in the
|
|
74
|
+
* // Cloudflare zone. Requires Cloudflare.providers() in the stack.
|
|
75
|
+
* const site = yield* Fly.Website.Vite("Web", {
|
|
76
|
+
* domain: { name: "app.example.com", dns: Cloudflare.DNS.Adapter() },
|
|
77
|
+
* });
|
|
78
|
+
* ```
|
|
79
|
+
*
|
|
80
|
+
* ### Build Configuration
|
|
81
|
+
* **Example:** Custom Output Directory and Base Path
|
|
82
|
+
* ```typescript
|
|
83
|
+
* const site = yield* Fly.Website.Vite("Docs", {
|
|
84
|
+
* vite: { outDir: "build", base: "/docs/" },
|
|
85
|
+
* });
|
|
86
|
+
* ```
|
|
87
|
+
*
|
|
88
|
+
* ### Local Development
|
|
89
|
+
* **Example:** Vite Dev Server Under `alchemy dev`
|
|
90
|
+
* ```typescript
|
|
91
|
+
* // `alchemy dev` starts `vite` programmatically: site.url is the local
|
|
92
|
+
* // dev server (HMR included); no Fly App or Service is created.
|
|
93
|
+
* const site = yield* Fly.Website.Vite("Web");
|
|
94
|
+
* ```
|
|
95
|
+
*
|
|
96
|
+
* @resource
|
|
97
|
+
* @product Website
|
|
98
|
+
*/
|
|
99
|
+
export declare const Vite: (id: string, props?: ViteProps) => import("effect/Effect").Effect<{
|
|
100
|
+
url: import("alchemy/Output").Output<string | undefined, never>;
|
|
101
|
+
app: undefined;
|
|
102
|
+
service: undefined;
|
|
103
|
+
ip: undefined;
|
|
104
|
+
certificate: undefined;
|
|
105
|
+
} | {
|
|
106
|
+
url: string | import("alchemy/Output").Output<string, never>;
|
|
107
|
+
app: import("../App.ts").App;
|
|
108
|
+
service: import("../Service.ts").Service;
|
|
109
|
+
ip: import("../IpAssignment.ts").IpAssignment;
|
|
110
|
+
certificate: import("../Certificate.ts").Certificate | undefined;
|
|
111
|
+
}, 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>;
|
|
112
|
+
//# sourceMappingURL=Vite.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Vite.d.ts","sourceRoot":"","sources":["../../src/Website/Vite.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyC,KAAK,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAEpG,oEAAoE;AACpE,eAAO,MAAM,wBAAwB,0CAA0C,CAAC;AAEhF,2DAA2D;AAC3D,eAAO,MAAM,0BAA0B,+CAA+C,CAAC;AAOvF,MAAM,WAAW,SAAU,SAAQ,kBAAkB;IACnD;;;OAGG;IACH,IAAI,CAAC,EAAE;QACL;;;WAGG;QACH,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,+DAA+D;QAC/D,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;CACH;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6EG;AACH,eAAO,MAAM,IAAI,OAAQ,MAAM,UAAS,SAAS;;;;;;;;;;;;qPAa7C,CAAC"}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import { frameworkSite, staticConfigFromAssets } from "./FrameworkSite.js";
|
|
2
|
+
/** The framework-integration package that drives the Vite build. */
|
|
3
|
+
export const VITE_FRAMEWORK_SPECIFIER = "@alchemy.run/frontend-frameworks/vite";
|
|
4
|
+
/** The Node container deploy target for the Vite build. */
|
|
5
|
+
export const VITE_NODE_TARGET_SPECIFIER = "@alchemy.run/frontend-frameworks/vite/node";
|
|
6
|
+
const viteOptions = (props) => props.vite !== undefined && (props.vite.outDir !== undefined || props.vite.base !== undefined)
|
|
7
|
+
? { vite: props.vite }
|
|
8
|
+
: undefined;
|
|
9
|
+
/**
|
|
10
|
+
* Deploy a plain [Vite](https://vite.dev) application to Fly: a Service
|
|
11
|
+
* serving the `vite build` output from a tiny static-file server. For
|
|
12
|
+
* client-only projects — React/Vue/Solid SPAs, `index.html` multi-page
|
|
13
|
+
* apps — whose entire deployable output is static assets.
|
|
14
|
+
*
|
|
15
|
+
* The build runs through `@alchemy.run/frontend-frameworks/vite` with the
|
|
16
|
+
* `@alchemy.run/frontend-frameworks/vite/node` deploy target — the package
|
|
17
|
+
* must be installed in your project. Your project's own `vite.config.*`
|
|
18
|
+
* (plugins included) drives the build.
|
|
19
|
+
*
|
|
20
|
+
* During `alchemy dev` the site is Vite's own dev server (native HMR) and
|
|
21
|
+
* no cloud resources are created — the site's `url` is the dev server's
|
|
22
|
+
* local address. `Alchemy.remote()` opts back into the full deployment.
|
|
23
|
+
*
|
|
24
|
+
*
|
|
25
|
+
* ### Creating Vite Sites
|
|
26
|
+
* **Example:** Basic Vite SPA
|
|
27
|
+
* ```typescript
|
|
28
|
+
* const site = yield* Fly.Website.Vite("Web");
|
|
29
|
+
* ```
|
|
30
|
+
*
|
|
31
|
+
* **Example:** Project in a Subdirectory
|
|
32
|
+
* ```typescript
|
|
33
|
+
* const site = yield* Fly.Website.Vite("Web", {
|
|
34
|
+
* rootDir: "./app",
|
|
35
|
+
* });
|
|
36
|
+
* ```
|
|
37
|
+
*
|
|
38
|
+
* **Example:** Existing App
|
|
39
|
+
* ```typescript
|
|
40
|
+
* const site = yield* Fly.Website.Vite("Web", { app: Site });
|
|
41
|
+
* ```
|
|
42
|
+
*
|
|
43
|
+
* ### Multi-Page Sites
|
|
44
|
+
* **Example:** Per-Route HTML Pages with a 404 Page
|
|
45
|
+
* ```typescript
|
|
46
|
+
* const site = yield* Fly.Website.Vite("Docs", {
|
|
47
|
+
* assets: { notFoundHandling: "404-page" },
|
|
48
|
+
* });
|
|
49
|
+
* ```
|
|
50
|
+
*
|
|
51
|
+
* ### Custom Domain
|
|
52
|
+
* **Example:** ACME on an existing hostname
|
|
53
|
+
* ```typescript
|
|
54
|
+
* const site = yield* Fly.Website.Vite("Web", {
|
|
55
|
+
* domain: "app.example.com",
|
|
56
|
+
* });
|
|
57
|
+
* ```
|
|
58
|
+
*
|
|
59
|
+
* **Example:** Publish DNS in Cloudflare
|
|
60
|
+
* ```typescript
|
|
61
|
+
* // The ACME challenge CNAME and A/AAAA records are published in the
|
|
62
|
+
* // Cloudflare zone. Requires Cloudflare.providers() in the stack.
|
|
63
|
+
* const site = yield* Fly.Website.Vite("Web", {
|
|
64
|
+
* domain: { name: "app.example.com", dns: Cloudflare.DNS.Adapter() },
|
|
65
|
+
* });
|
|
66
|
+
* ```
|
|
67
|
+
*
|
|
68
|
+
* ### Build Configuration
|
|
69
|
+
* **Example:** Custom Output Directory and Base Path
|
|
70
|
+
* ```typescript
|
|
71
|
+
* const site = yield* Fly.Website.Vite("Docs", {
|
|
72
|
+
* vite: { outDir: "build", base: "/docs/" },
|
|
73
|
+
* });
|
|
74
|
+
* ```
|
|
75
|
+
*
|
|
76
|
+
* ### Local Development
|
|
77
|
+
* **Example:** Vite Dev Server Under `alchemy dev`
|
|
78
|
+
* ```typescript
|
|
79
|
+
* // `alchemy dev` starts `vite` programmatically: site.url is the local
|
|
80
|
+
* // dev server (HMR included); no Fly App or Service is created.
|
|
81
|
+
* const site = yield* Fly.Website.Vite("Web");
|
|
82
|
+
* ```
|
|
83
|
+
*
|
|
84
|
+
* @resource
|
|
85
|
+
* @product Website
|
|
86
|
+
*/
|
|
87
|
+
export const Vite = (id, props = {}) => frameworkSite(id, props, {
|
|
88
|
+
name: "Vite",
|
|
89
|
+
framework: VITE_FRAMEWORK_SPECIFIER,
|
|
90
|
+
target: VITE_NODE_TARGET_SPECIFIER,
|
|
91
|
+
options: {
|
|
92
|
+
...viteOptions(props),
|
|
93
|
+
notFoundHandling: "spa",
|
|
94
|
+
htmlHandling: props.assets?.htmlHandling,
|
|
95
|
+
},
|
|
96
|
+
static: staticConfigFromAssets(props.assets, {
|
|
97
|
+
notFoundHandling: "single-page-application",
|
|
98
|
+
}),
|
|
99
|
+
});
|
|
100
|
+
//# sourceMappingURL=Vite.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Vite.js","sourceRoot":"","sources":["../../src/Website/Vite.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,sBAAsB,EAA2B,MAAM,oBAAoB,CAAC;AAEpG,oEAAoE;AACpE,MAAM,CAAC,MAAM,wBAAwB,GAAG,uCAAuC,CAAC;AAEhF,2DAA2D;AAC3D,MAAM,CAAC,MAAM,0BAA0B,GAAG,4CAA4C,CAAC;AAEvF,MAAM,WAAW,GAAG,CAAC,KAAgB,EAAE,EAAE,CACvC,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC;IAC5F,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE;IACtB,CAAC,CAAC,SAAS,CAAC;AAkBhB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6EG;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;QACP,GAAG,WAAW,CAAC,KAAK,CAAC;QACrB,gBAAgB,EAAE,KAAK;QACvB,YAAY,EAAE,KAAK,CAAC,MAAM,EAAE,YAAY;KACzC;IACD,MAAM,EAAE,sBAAsB,CAAC,KAAK,CAAC,MAAM,EAAE;QAC3C,gBAAgB,EAAE,yBAAyB;KAC5C,CAAC;CACH,CAAC,CAAC"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { type FrameworkSiteProps } from "./FrameworkSite.ts";
|
|
2
|
+
/** The framework-integration package that drives the Vocs build. */
|
|
3
|
+
export declare const VOCS_FRAMEWORK_SPECIFIER = "@alchemy.run/frontend-frameworks/vocs/node";
|
|
4
|
+
/** The Node container deploy target for the Vocs build. */
|
|
5
|
+
export declare const VOCS_NODE_TARGET_SPECIFIER = "@alchemy.run/frontend-frameworks/vocs/node";
|
|
6
|
+
export interface VocsProps extends FrameworkSiteProps {
|
|
7
|
+
/**
|
|
8
|
+
* Vocs build output directory, relative to {@link FrameworkSiteProps.rootDir}.
|
|
9
|
+
* Set this when `vocs.config.*` customizes `outDir`.
|
|
10
|
+
* @default "dist"
|
|
11
|
+
*/
|
|
12
|
+
outDir?: string;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Deploy a [Vocs](https://vocs.dev) documentation site to Fly. The node
|
|
16
|
+
* target serves static assets first, then Vocs' Waku RSC handler
|
|
17
|
+
* (`/about` → `about/index.html`, otherwise SSR).
|
|
18
|
+
*
|
|
19
|
+
*
|
|
20
|
+
* ### Creating Vocs Sites
|
|
21
|
+
* **Example:** Vocs documentation site
|
|
22
|
+
* ```typescript
|
|
23
|
+
* const docs = yield* Fly.Website.Vocs("Docs", {
|
|
24
|
+
* rootDir: "./docs",
|
|
25
|
+
* });
|
|
26
|
+
* ```
|
|
27
|
+
*
|
|
28
|
+
* **Example:** Custom output directory
|
|
29
|
+
* ```typescript
|
|
30
|
+
* const docs = yield* Fly.Website.Vocs("Docs", {
|
|
31
|
+
* rootDir: "./docs",
|
|
32
|
+
* outDir: "build",
|
|
33
|
+
* });
|
|
34
|
+
* ```
|
|
35
|
+
*
|
|
36
|
+
* @resource
|
|
37
|
+
* @product Website
|
|
38
|
+
*/
|
|
39
|
+
export declare const Vocs: (id: string, props?: VocsProps) => 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=Vocs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Vocs.d.ts","sourceRoot":"","sources":["../../src/Website/Vocs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAE5E,oEAAoE;AACpE,eAAO,MAAM,wBAAwB,+CAA+C,CAAC;AAErF,2DAA2D;AAC3D,eAAO,MAAM,0BAA0B,+CAA+C,CAAC;AAEvF,MAAM,WAAW,SAAU,SAAQ,kBAAkB;IACnD;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,eAAO,MAAM,IAAI,OAAQ,MAAM,UAAS,SAAS;;;;;;;;;;;;qPAO7C,CAAC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { frameworkSite } from "./FrameworkSite.js";
|
|
2
|
+
/** The framework-integration package that drives the Vocs build. */
|
|
3
|
+
export const VOCS_FRAMEWORK_SPECIFIER = "@alchemy.run/frontend-frameworks/vocs/node";
|
|
4
|
+
/** The Node container deploy target for the Vocs build. */
|
|
5
|
+
export const VOCS_NODE_TARGET_SPECIFIER = "@alchemy.run/frontend-frameworks/vocs/node";
|
|
6
|
+
/**
|
|
7
|
+
* Deploy a [Vocs](https://vocs.dev) documentation site to Fly. The node
|
|
8
|
+
* target serves static assets first, then Vocs' Waku RSC handler
|
|
9
|
+
* (`/about` → `about/index.html`, otherwise SSR).
|
|
10
|
+
*
|
|
11
|
+
*
|
|
12
|
+
* ### Creating Vocs Sites
|
|
13
|
+
* **Example:** Vocs documentation site
|
|
14
|
+
* ```typescript
|
|
15
|
+
* const docs = yield* Fly.Website.Vocs("Docs", {
|
|
16
|
+
* rootDir: "./docs",
|
|
17
|
+
* });
|
|
18
|
+
* ```
|
|
19
|
+
*
|
|
20
|
+
* **Example:** Custom output directory
|
|
21
|
+
* ```typescript
|
|
22
|
+
* const docs = yield* Fly.Website.Vocs("Docs", {
|
|
23
|
+
* rootDir: "./docs",
|
|
24
|
+
* outDir: "build",
|
|
25
|
+
* });
|
|
26
|
+
* ```
|
|
27
|
+
*
|
|
28
|
+
* @resource
|
|
29
|
+
* @product Website
|
|
30
|
+
*/
|
|
31
|
+
export const Vocs = (id, props = {}) => frameworkSite(id, props, {
|
|
32
|
+
name: "Vocs",
|
|
33
|
+
framework: VOCS_FRAMEWORK_SPECIFIER,
|
|
34
|
+
target: VOCS_NODE_TARGET_SPECIFIER,
|
|
35
|
+
options: props.outDir !== undefined ? { outDir: props.outDir } : undefined,
|
|
36
|
+
htmlHandling: "drop-trailing-slash",
|
|
37
|
+
});
|
|
38
|
+
//# sourceMappingURL=Vocs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Vocs.js","sourceRoot":"","sources":["../../src/Website/Vocs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAA2B,MAAM,oBAAoB,CAAC;AAE5E,oEAAoE;AACpE,MAAM,CAAC,MAAM,wBAAwB,GAAG,4CAA4C,CAAC;AAErF,2DAA2D;AAC3D,MAAM,CAAC,MAAM,0BAA0B,GAAG,4CAA4C,CAAC;AAWvF;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;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,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,SAAS;IAC1E,YAAY,EAAE,qBAAqB;CACpC,CAAC,CAAC"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { type FrameworkSiteProps } from "./FrameworkSite.ts";
|
|
2
|
+
/** The framework-integration package that drives the Waku build. */
|
|
3
|
+
export declare const WAKU_FRAMEWORK_SPECIFIER = "@alchemy.run/frontend-frameworks/waku";
|
|
4
|
+
/** The Node container deploy target for the Waku build. */
|
|
5
|
+
export declare const WAKU_NODE_TARGET_SPECIFIER = "@alchemy.run/frontend-frameworks/waku/node";
|
|
6
|
+
export interface WakuProps extends FrameworkSiteProps {
|
|
7
|
+
/**
|
|
8
|
+
* Serializable Waku config merged OVER the project's own
|
|
9
|
+
* `waku.config.*`.
|
|
10
|
+
*/
|
|
11
|
+
waku?: {
|
|
12
|
+
/**
|
|
13
|
+
* Source directory, relative to `rootDir` (waku's `srcDir`).
|
|
14
|
+
* @default the project's `waku.config.*` value, or `"src"`
|
|
15
|
+
*/
|
|
16
|
+
srcDir?: string;
|
|
17
|
+
/**
|
|
18
|
+
* Build output directory (waku's `distDir`).
|
|
19
|
+
* @default the project's `waku.config.*` value, or `"dist"`
|
|
20
|
+
*/
|
|
21
|
+
distDir?: string;
|
|
22
|
+
/** Public base path the site deploys under (waku's `basePath`). */
|
|
23
|
+
basePath?: string;
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Deploy a [Waku](https://waku.gg) application to Fly: the RSC server on a
|
|
28
|
+
* Machine, static assets (SSG pages included) baked into the image.
|
|
29
|
+
* Prerendered pages are served extensionless (`/about`).
|
|
30
|
+
*
|
|
31
|
+
*
|
|
32
|
+
* ### Creating Waku Sites
|
|
33
|
+
* **Example:** Basic Waku App
|
|
34
|
+
* ```typescript
|
|
35
|
+
* const site = yield* Fly.Website.Waku("Web", {
|
|
36
|
+
* rootDir: "./app",
|
|
37
|
+
* });
|
|
38
|
+
* ```
|
|
39
|
+
*
|
|
40
|
+
* **Example:** Custom Domain
|
|
41
|
+
* ```typescript
|
|
42
|
+
* const site = yield* Fly.Website.Waku("Web", {
|
|
43
|
+
* rootDir: "./app",
|
|
44
|
+
* domain: "app.example.com",
|
|
45
|
+
* });
|
|
46
|
+
* ```
|
|
47
|
+
*
|
|
48
|
+
* @resource
|
|
49
|
+
* @product Website
|
|
50
|
+
*/
|
|
51
|
+
export declare const Waku: (id: string, props?: WakuProps) => import("effect/Effect").Effect<{
|
|
52
|
+
url: import("alchemy/Output").Output<string | undefined, never>;
|
|
53
|
+
app: undefined;
|
|
54
|
+
service: undefined;
|
|
55
|
+
ip: undefined;
|
|
56
|
+
certificate: undefined;
|
|
57
|
+
} | {
|
|
58
|
+
url: string | import("alchemy/Output").Output<string, never>;
|
|
59
|
+
app: import("../App.ts").App;
|
|
60
|
+
service: import("../Service.ts").Service;
|
|
61
|
+
ip: import("../IpAssignment.ts").IpAssignment;
|
|
62
|
+
certificate: import("../Certificate.ts").Certificate | undefined;
|
|
63
|
+
}, 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>;
|
|
64
|
+
//# sourceMappingURL=Waku.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Waku.d.ts","sourceRoot":"","sources":["../../src/Website/Waku.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;AAKvF,MAAM,WAAW,SAAU,SAAQ,kBAAkB;IACnD;;;OAGG;IACH,IAAI,CAAC,EAAE;QACL;;;WAGG;QACH,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB;;;WAGG;QACH,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,mEAAmE;QACnE,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,eAAO,MAAM,IAAI,OAAQ,MAAM,UAAS,SAAS;;;;;;;;;;;;qPAO7C,CAAC"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { frameworkSite } from "./FrameworkSite.js";
|
|
2
|
+
/** The framework-integration package that drives the Waku build. */
|
|
3
|
+
export const WAKU_FRAMEWORK_SPECIFIER = "@alchemy.run/frontend-frameworks/waku";
|
|
4
|
+
/** The Node container deploy target for the Waku build. */
|
|
5
|
+
export const WAKU_NODE_TARGET_SPECIFIER = "@alchemy.run/frontend-frameworks/waku/node";
|
|
6
|
+
const wakuOptions = (props) => props.waku !== undefined ? { waku: props.waku } : undefined;
|
|
7
|
+
/**
|
|
8
|
+
* Deploy a [Waku](https://waku.gg) application to Fly: the RSC server on a
|
|
9
|
+
* Machine, static assets (SSG pages included) baked into the image.
|
|
10
|
+
* Prerendered pages are served extensionless (`/about`).
|
|
11
|
+
*
|
|
12
|
+
*
|
|
13
|
+
* ### Creating Waku Sites
|
|
14
|
+
* **Example:** Basic Waku App
|
|
15
|
+
* ```typescript
|
|
16
|
+
* const site = yield* Fly.Website.Waku("Web", {
|
|
17
|
+
* rootDir: "./app",
|
|
18
|
+
* });
|
|
19
|
+
* ```
|
|
20
|
+
*
|
|
21
|
+
* **Example:** Custom Domain
|
|
22
|
+
* ```typescript
|
|
23
|
+
* const site = yield* Fly.Website.Waku("Web", {
|
|
24
|
+
* rootDir: "./app",
|
|
25
|
+
* domain: "app.example.com",
|
|
26
|
+
* });
|
|
27
|
+
* ```
|
|
28
|
+
*
|
|
29
|
+
* @resource
|
|
30
|
+
* @product Website
|
|
31
|
+
*/
|
|
32
|
+
export const Waku = (id, props = {}) => frameworkSite(id, props, {
|
|
33
|
+
name: "Waku",
|
|
34
|
+
framework: WAKU_FRAMEWORK_SPECIFIER,
|
|
35
|
+
target: WAKU_NODE_TARGET_SPECIFIER,
|
|
36
|
+
options: wakuOptions(props),
|
|
37
|
+
htmlHandling: "drop-trailing-slash",
|
|
38
|
+
});
|
|
39
|
+
//# sourceMappingURL=Waku.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Waku.js","sourceRoot":"","sources":["../../src/Website/Waku.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;AAEvF,MAAM,WAAW,GAAG,CAAC,KAAgB,EAAE,EAAE,CACvC,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;AAuB9D;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;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,WAAW,CAAC,KAAK,CAAC;IAC3B,YAAY,EAAE,qBAAqB;CACpC,CAAC,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export * from "./AssetDeployment.ts";
|
|
2
|
+
export * from "./Astro.ts";
|
|
3
|
+
export * from "./Foldkit.ts";
|
|
4
|
+
export * from "./FrameworkSite.ts";
|
|
5
|
+
export * from "./Nextjs.ts";
|
|
6
|
+
export * from "./Nuxt.ts";
|
|
7
|
+
export * from "./Octane.ts";
|
|
8
|
+
export * from "./ReactRouter.ts";
|
|
9
|
+
export * from "./SolidStart.ts";
|
|
10
|
+
export * from "./StaticSite.ts";
|
|
11
|
+
export * from "./SvelteKit.ts";
|
|
12
|
+
export * from "./TanStackStart.ts";
|
|
13
|
+
export * from "./Vinext.ts";
|
|
14
|
+
export * from "./Vite.ts";
|
|
15
|
+
export * from "./Vocs.ts";
|
|
16
|
+
export * from "./Waku.ts";
|
|
17
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/Website/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,oBAAoB,CAAC;AACnC,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export * from "./AssetDeployment.js";
|
|
2
|
+
export * from "./Astro.js";
|
|
3
|
+
export * from "./Foldkit.js";
|
|
4
|
+
export * from "./FrameworkSite.js";
|
|
5
|
+
export * from "./Nextjs.js";
|
|
6
|
+
export * from "./Nuxt.js";
|
|
7
|
+
export * from "./Octane.js";
|
|
8
|
+
export * from "./ReactRouter.js";
|
|
9
|
+
export * from "./SolidStart.js";
|
|
10
|
+
export * from "./StaticSite.js";
|
|
11
|
+
export * from "./SvelteKit.js";
|
|
12
|
+
export * from "./TanStackStart.js";
|
|
13
|
+
export * from "./Vinext.js";
|
|
14
|
+
export * from "./Vite.js";
|
|
15
|
+
export * from "./Vocs.js";
|
|
16
|
+
export * from "./Waku.js";
|
|
17
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/Website/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,oBAAoB,CAAC;AACnC,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import type { CertificateCheckResponse, CertificateDetail, CheckAppCertificateError, CreateAppAcmeCertificateError, CreateAppCustomCertificateError, DeleteAppCertificateError, DeleteAppCustomCertificateError, GetAppCertificateError } from "@distilled.cloud/fly-io/machines";
|
|
2
|
+
import * as Binding from "alchemy/Binding";
|
|
3
|
+
import type { RuntimeContext } from "alchemy/RuntimeContext";
|
|
4
|
+
import type * as Effect from "effect/Effect";
|
|
5
|
+
import type * as Redacted from "effect/Redacted";
|
|
6
|
+
import type { App } from "./App.ts";
|
|
7
|
+
/**
|
|
8
|
+
* Manage an App's TLS certificates at runtime — the companion to the
|
|
9
|
+
* deploy-time {@link Certificate} resource, for services that mint or
|
|
10
|
+
* rotate certificates on their own (a relay adding a tenant's wildcard,
|
|
11
|
+
* a renewal loop).
|
|
12
|
+
*
|
|
13
|
+
* The App is fixed by `WriteCertificates(app)`; calls take a hostname.
|
|
14
|
+
*
|
|
15
|
+
* ### Fly-managed (Let's Encrypt)
|
|
16
|
+
* **Example:** Request and check
|
|
17
|
+
* ```typescript
|
|
18
|
+
* const certs = yield* Fly.WriteCertificates(Site);
|
|
19
|
+
* const requested = yield* certs.request("www.example.com");
|
|
20
|
+
* // publish requested.dns_requirements, then:
|
|
21
|
+
* const status = yield* certs.check("www.example.com");
|
|
22
|
+
* ```
|
|
23
|
+
*
|
|
24
|
+
* ### Bring your own PEM
|
|
25
|
+
* A certificate issued elsewhere (an `ACME.IssueCertificate` wildcard
|
|
26
|
+
* from ZeroSSL, say) goes up as a custom certificate.
|
|
27
|
+
*
|
|
28
|
+
* **Example:** Upload
|
|
29
|
+
* ```typescript
|
|
30
|
+
* yield* certs.upload({
|
|
31
|
+
* hostname: "*.tenant.example.com",
|
|
32
|
+
* fullchain: issued.chain,
|
|
33
|
+
* privateKey: issued.privateKey,
|
|
34
|
+
* });
|
|
35
|
+
* ```
|
|
36
|
+
*
|
|
37
|
+
* @binding
|
|
38
|
+
* @product Certificate
|
|
39
|
+
*/
|
|
40
|
+
export interface WriteCertificates extends Binding.Service<WriteCertificates, "Fly.WriteCertificates", (app: App) => Effect.Effect<WriteCertificatesClient>> {
|
|
41
|
+
}
|
|
42
|
+
export declare const WriteCertificates: WriteCertificates;
|
|
43
|
+
export interface UploadCertificateRequest {
|
|
44
|
+
readonly hostname: string;
|
|
45
|
+
/** PEM chain, leaf first. */
|
|
46
|
+
readonly fullchain: string;
|
|
47
|
+
/** PEM private key. */
|
|
48
|
+
readonly privateKey: Redacted.Redacted<string> | string;
|
|
49
|
+
}
|
|
50
|
+
/** Certificate operations on one App. */
|
|
51
|
+
export interface WriteCertificatesClient {
|
|
52
|
+
/** Request a Fly-managed (Let's Encrypt) certificate. Idempotent. */
|
|
53
|
+
request(hostname: string): Effect.Effect<CertificateDetail | undefined, CreateAppAcmeCertificateError, RuntimeContext>;
|
|
54
|
+
/** Upload a custom PEM. Replaces an existing custom certificate. */
|
|
55
|
+
upload(request: UploadCertificateRequest): Effect.Effect<CertificateDetail | undefined, CreateAppCustomCertificateError | DeleteAppCustomCertificateError, RuntimeContext>;
|
|
56
|
+
/** Re-run Fly's validation checks for the hostname. */
|
|
57
|
+
check(hostname: string): Effect.Effect<CertificateCheckResponse, CheckAppCertificateError, RuntimeContext>;
|
|
58
|
+
/** The certificate for a hostname, or `undefined`. */
|
|
59
|
+
get(hostname: string): Effect.Effect<CertificateDetail | undefined, GetAppCertificateError, RuntimeContext>;
|
|
60
|
+
/** Remove the hostname's certificate. Missing counts as removed. */
|
|
61
|
+
remove(hostname: string): Effect.Effect<void, DeleteAppCertificateError, RuntimeContext>;
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=WriteCertificates.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WriteCertificates.d.ts","sourceRoot":"","sources":["../src/WriteCertificates.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,wBAAwB,EACxB,iBAAiB,EACjB,wBAAwB,EACxB,6BAA6B,EAC7B,+BAA+B,EAC/B,yBAAyB,EACzB,+BAA+B,EAC/B,sBAAsB,EACvB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,KAAK,OAAO,MAAM,iBAAiB,CAAC;AAC3C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,KAAK,KAAK,MAAM,MAAM,eAAe,CAAC;AAC7C,OAAO,KAAK,KAAK,QAAQ,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAEpC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,MAAM,WAAW,iBAAkB,SAAQ,OAAO,CAAC,OAAO,CACxD,iBAAiB,EACjB,uBAAuB,EACvB,CAAC,GAAG,EAAE,GAAG,KAAK,MAAM,CAAC,MAAM,CAAC,uBAAuB,CAAC,CACrD;CAAG;AAEJ,eAAO,MAAM,iBAAiB,mBAA8D,CAAC;AAE7F,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,6BAA6B;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,uBAAuB;IACvB,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;CACzD;AAED,yCAAyC;AACzC,MAAM,WAAW,uBAAuB;IACtC,qEAAqE;IACrE,OAAO,CACL,QAAQ,EAAE,MAAM,GACf,MAAM,CAAC,MAAM,CAAC,iBAAiB,GAAG,SAAS,EAAE,6BAA6B,EAAE,cAAc,CAAC,CAAC;IAC/F,oEAAoE;IACpE,MAAM,CACJ,OAAO,EAAE,wBAAwB,GAChC,MAAM,CAAC,MAAM,CACd,iBAAiB,GAAG,SAAS,EAC7B,+BAA+B,GAAG,+BAA+B,EACjE,cAAc,CACf,CAAC;IACF,uDAAuD;IACvD,KAAK,CACH,QAAQ,EAAE,MAAM,GACf,MAAM,CAAC,MAAM,CAAC,wBAAwB,EAAE,wBAAwB,EAAE,cAAc,CAAC,CAAC;IACrF,sDAAsD;IACtD,GAAG,CACD,QAAQ,EAAE,MAAM,GACf,MAAM,CAAC,MAAM,CAAC,iBAAiB,GAAG,SAAS,EAAE,sBAAsB,EAAE,cAAc,CAAC,CAAC;IACxF,oEAAoE;IACpE,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,yBAAyB,EAAE,cAAc,CAAC,CAAC;CAC1F"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WriteCertificates.js","sourceRoot":"","sources":["../src/WriteCertificates.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,OAAO,MAAM,iBAAiB,CAAC;AA6C3C,MAAM,CAAC,MAAM,iBAAiB,GAAG,OAAO,CAAC,OAAO,CAAoB,uBAAuB,CAAC,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import * as Effect from "effect/Effect";
|
|
2
|
+
import * as Layer from "effect/Layer";
|
|
3
|
+
import { type SecretAuth } from "./SecretHttp.ts";
|
|
4
|
+
import { WriteCertificates, type WriteCertificatesClient } from "./WriteCertificates.ts";
|
|
5
|
+
/**
|
|
6
|
+
* HTTP implementation of {@link WriteCertificates}. Provide it on the
|
|
7
|
+
* {@link Service} or Action Effect.
|
|
8
|
+
*
|
|
9
|
+
* ### Provide the layer
|
|
10
|
+
* **Example:** On a Service
|
|
11
|
+
* ```typescript
|
|
12
|
+
* Effect.gen(function* () {
|
|
13
|
+
* const certs = yield* Fly.WriteCertificates(Site);
|
|
14
|
+
* // ...
|
|
15
|
+
* }).pipe(Effect.provide(Fly.WriteCertificatesHttp))
|
|
16
|
+
* ```
|
|
17
|
+
*
|
|
18
|
+
* @layer
|
|
19
|
+
* @product Certificate
|
|
20
|
+
* @provides Fly.WriteCertificates
|
|
21
|
+
*/
|
|
22
|
+
export declare const WriteCertificatesHttp: Layer.Layer<WriteCertificates, never, never>;
|
|
23
|
+
/** Build the client over an injectable auth and App name. */
|
|
24
|
+
export declare const certificatesWriteClient: (auth: SecretAuth, appName: Effect.Effect<string>) => WriteCertificatesClient;
|
|
25
|
+
//# sourceMappingURL=WriteCertificatesHttp.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WriteCertificatesHttp.d.ts","sourceRoot":"","sources":["../src/WriteCertificatesHttp.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAEtC,OAAO,EAAE,KAAK,UAAU,EAAyC,MAAM,iBAAiB,CAAC;AACzF,OAAO,EAAE,iBAAiB,EAAE,KAAK,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAEzF;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,qBAAqB,8CAOsD,CAAC;AAEzF,6DAA6D;AAC7D,eAAO,MAAM,uBAAuB,SAC5B,UAAU,WACP,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,KAC7B,uBAsDF,CAAC"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import * as machines from "@distilled.cloud/fly-io/machines";
|
|
2
|
+
import * as Effect from "effect/Effect";
|
|
3
|
+
import * as FetchHttpClient from "effect/http/FetchHttpClient";
|
|
4
|
+
import * as Layer from "effect/Layer";
|
|
5
|
+
import { CredentialsFromAmbientOrEnv } from "./Credentials.js";
|
|
6
|
+
import { makeHttpAppBinding, unwrapSecretValue } from "./SecretHttp.js";
|
|
7
|
+
import { WriteCertificates } from "./WriteCertificates.js";
|
|
8
|
+
/**
|
|
9
|
+
* HTTP implementation of {@link WriteCertificates}. Provide it on the
|
|
10
|
+
* {@link Service} or Action Effect.
|
|
11
|
+
*
|
|
12
|
+
* ### Provide the layer
|
|
13
|
+
* **Example:** On a Service
|
|
14
|
+
* ```typescript
|
|
15
|
+
* Effect.gen(function* () {
|
|
16
|
+
* const certs = yield* Fly.WriteCertificates(Site);
|
|
17
|
+
* // ...
|
|
18
|
+
* }).pipe(Effect.provide(Fly.WriteCertificatesHttp))
|
|
19
|
+
* ```
|
|
20
|
+
*
|
|
21
|
+
* @layer
|
|
22
|
+
* @product Certificate
|
|
23
|
+
* @provides Fly.WriteCertificates
|
|
24
|
+
*/
|
|
25
|
+
export const WriteCertificatesHttp = Layer.effect(WriteCertificates, Effect.suspend(() => makeHttpAppBinding({
|
|
26
|
+
makeClient: certificatesWriteClient,
|
|
27
|
+
}))).pipe(Layer.provide(FetchHttpClient.layer), Layer.provide(CredentialsFromAmbientOrEnv));
|
|
28
|
+
/** Build the client over an injectable auth and App name. */
|
|
29
|
+
export const certificatesWriteClient = (auth, appName) => {
|
|
30
|
+
const authorize = auth.authorize;
|
|
31
|
+
return {
|
|
32
|
+
request: Effect.fn("Fly.Certificates.request")(function* (hostname) {
|
|
33
|
+
return yield* authorize(machines
|
|
34
|
+
.createAppAcmeCertificate({ app_name: yield* appName, hostname })
|
|
35
|
+
.pipe(Effect.catchTag("Conflict", () => Effect.undefined)));
|
|
36
|
+
}),
|
|
37
|
+
upload: Effect.fn("Fly.Certificates.upload")(function* (request) {
|
|
38
|
+
const app_name = yield* appName;
|
|
39
|
+
const body = {
|
|
40
|
+
app_name,
|
|
41
|
+
hostname: request.hostname,
|
|
42
|
+
fullchain: request.fullchain,
|
|
43
|
+
private_key: unwrapSecretValue(request.privateKey),
|
|
44
|
+
};
|
|
45
|
+
return yield* authorize(machines.createAppCustomCertificate(body).pipe(
|
|
46
|
+
// An existing custom certificate conflicts: replace it.
|
|
47
|
+
Effect.catchTag("Conflict", () => machines
|
|
48
|
+
.deleteAppCustomCertificate({
|
|
49
|
+
app_name,
|
|
50
|
+
hostname: request.hostname,
|
|
51
|
+
})
|
|
52
|
+
.pipe(Effect.catchTag("NotFound", () => Effect.void), Effect.andThen(machines.createAppCustomCertificate(body))))));
|
|
53
|
+
}),
|
|
54
|
+
check: Effect.fn("Fly.Certificates.check")(function* (hostname) {
|
|
55
|
+
return yield* authorize(machines.checkAppCertificate({ app_name: yield* appName, hostname }));
|
|
56
|
+
}),
|
|
57
|
+
get: Effect.fn("Fly.Certificates.get")(function* (hostname) {
|
|
58
|
+
return yield* authorize(machines
|
|
59
|
+
.getAppCertificate({ app_name: yield* appName, hostname })
|
|
60
|
+
.pipe(Effect.catchTag("NotFound", () => Effect.undefined)));
|
|
61
|
+
}),
|
|
62
|
+
remove: Effect.fn("Fly.Certificates.remove")(function* (hostname) {
|
|
63
|
+
return yield* authorize(machines.deleteAppCertificate({ app_name: yield* appName, hostname }).pipe(Effect.catchTag("NotFound", () => Effect.void), Effect.asVoid));
|
|
64
|
+
}),
|
|
65
|
+
};
|
|
66
|
+
};
|
|
67
|
+
//# sourceMappingURL=WriteCertificatesHttp.js.map
|