@alchemy.run/fly 0.0.0 → 2.0.0-beta.84
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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 +340 -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 +59 -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 +35 -0
- package/lib/PostgresMigrations.d.ts.map +1 -0
- package/lib/PostgresMigrations.js +110 -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 +608 -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 +8 -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 +1022 -0
- package/lib/Service.d.ts.map +1 -0
- package/lib/Service.js +1397 -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 +469 -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 +87 -0
- package/lib/Website/Astro.d.ts.map +1 -0
- package/lib/Website/Astro.js +55 -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 +175 -0
- package/lib/Website/FrameworkSite.d.ts.map +1 -0
- package/lib/Website/FrameworkSite.js +162 -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 +155 -0
- package/lib/Website/StaticSite.d.ts.map +1 -0
- package/lib/Website/StaticSite.js +168 -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 +103 -0
- package/lib/Website/Vite.d.ts.map +1 -0
- package/lib/Website/Vite.js +91 -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 +458 -0
- package/lib/bluegreen.js.map +1 -0
- package/lib/hosted.d.ts +172 -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 +145 -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 +516 -0
- package/src/AuthProvider.ts +68 -0
- package/src/BindService.ts +304 -0
- package/src/Bootstrap.ts +66 -0
- package/src/Bucket.ts +916 -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 +102 -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 +1268 -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 +153 -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 +820 -0
- package/src/RedisBinding.ts +64 -0
- package/src/RedisHttp.ts +11 -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 +1934 -0
- package/src/Sign.ts +46 -0
- package/src/SignHttp.ts +44 -0
- package/src/Sprite.ts +671 -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 +294 -0
- package/src/Website/Astro.ts +87 -0
- package/src/Website/Foldkit.ts +54 -0
- package/src/Website/FrameworkSite.ts +363 -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 +275 -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 +112 -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 +708 -0
- package/src/globals.d.ts +2 -0
- package/src/hosted.ts +668 -0
- package/src/index.ts +64 -0
- package/src/internal/RemoteBuilder.ts +224 -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,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.succeed(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.succeed(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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WriteCertificatesHttp.js","sourceRoot":"","sources":["../src/WriteCertificatesHttp.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { WriteClient } from "@alchemy.run/redis";
|
|
2
|
+
import * as Binding from "alchemy/Binding";
|
|
3
|
+
import type * as Effect from "effect/Effect";
|
|
4
|
+
import type { Redis } from "./Redis.ts";
|
|
5
|
+
/**
|
|
6
|
+
* Bind a {@link Redis} database with write access (`set`, `del`).
|
|
7
|
+
*
|
|
8
|
+
* `WriteRedis` is the Context tag, the type, and the callable —
|
|
9
|
+
* `yield* Fly.WriteRedis(Cache)`. Provide {@link WriteRedisHttp}.
|
|
10
|
+
*
|
|
11
|
+
*
|
|
12
|
+
* ### Write
|
|
13
|
+
* **Example:** Set a key
|
|
14
|
+
* ```typescript
|
|
15
|
+
* const cache = yield* Fly.WriteRedis(Cache);
|
|
16
|
+
* yield* cache.set("marker", "hello");
|
|
17
|
+
* ```
|
|
18
|
+
*
|
|
19
|
+
* @binding
|
|
20
|
+
* @product Redis
|
|
21
|
+
*/
|
|
22
|
+
export interface WriteRedis extends Binding.Service<WriteRedis, "Fly.WriteRedis", (redis: Redis) => Effect.Effect<WriteRedisClient>> {
|
|
23
|
+
}
|
|
24
|
+
export declare const WriteRedis: WriteRedis;
|
|
25
|
+
export type WriteRedisClient = WriteClient;
|
|
26
|
+
//# sourceMappingURL=WriteRedis.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WriteRedis.d.ts","sourceRoot":"","sources":["../src/WriteRedis.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,OAAO,MAAM,iBAAiB,CAAC;AAC3C,OAAO,KAAK,KAAK,MAAM,MAAM,eAAe,CAAC;AAC7C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAExC;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,WAAW,UAAW,SAAQ,OAAO,CAAC,OAAO,CACjD,UAAU,EACV,gBAAgB,EAChB,CAAC,KAAK,EAAE,KAAK,KAAK,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAClD;CAAG;AAEJ,eAAO,MAAM,UAAU,YAAgD,CAAC;AAExE,MAAM,MAAM,gBAAgB,GAAG,WAAW,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WriteRedis.js","sourceRoot":"","sources":["../src/WriteRedis.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,OAAO,MAAM,iBAAiB,CAAC;AA2B3C,MAAM,CAAC,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAa,gBAAgB,CAAC,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import * as Layer from "effect/Layer";
|
|
2
|
+
import { WriteRedis } from "./WriteRedis.ts";
|
|
3
|
+
/**
|
|
4
|
+
* HTTP implementation of {@link WriteRedis}.
|
|
5
|
+
*
|
|
6
|
+
* @layer
|
|
7
|
+
* @product Redis
|
|
8
|
+
* @provides Fly.WriteRedis
|
|
9
|
+
*/
|
|
10
|
+
export declare const WriteRedisHttp: Layer.Layer<WriteRedis, never, never>;
|
|
11
|
+
//# sourceMappingURL=WriteRedisHttp.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WriteRedisHttp.d.ts","sourceRoot":"","sources":["../src/WriteRedisHttp.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAGtC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,uCAK1B,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import * as Layer from "effect/Layer";
|
|
2
|
+
import { makeRedisBinding } from "./RedisBinding.js";
|
|
3
|
+
import { makeWriteRedisClient } from "./RedisHttp.js";
|
|
4
|
+
import { WriteRedis } from "./WriteRedis.js";
|
|
5
|
+
/**
|
|
6
|
+
* HTTP implementation of {@link WriteRedis}.
|
|
7
|
+
*
|
|
8
|
+
* @layer
|
|
9
|
+
* @product Redis
|
|
10
|
+
* @provides Fly.WriteRedis
|
|
11
|
+
*/
|
|
12
|
+
export const WriteRedisHttp = Layer.effect(WriteRedis, makeRedisBinding({
|
|
13
|
+
makeClient: makeWriteRedisClient,
|
|
14
|
+
}));
|
|
15
|
+
//# sourceMappingURL=WriteRedisHttp.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WriteRedisHttp.js","sourceRoot":"","sources":["../src/WriteRedisHttp.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,CAAC,MAAM,CACxC,UAAU,EACV,gBAAgB,CAAC;IACf,UAAU,EAAE,oBAAoB;CACjC,CAAC,CACH,CAAC"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import type { AppSecretsUpdateResp, DeleteAppSecretResponse, CreateSecretError, DeleteSecretError, UpdateSecretsError, SetAppSecretResponse } from "@distilled.cloud/fly-io/machines";
|
|
2
|
+
import * as Binding from "alchemy/Binding";
|
|
3
|
+
import type { RuntimeContext } from "alchemy/RuntimeContext";
|
|
4
|
+
import * as Effect from "effect/Effect";
|
|
5
|
+
import type * as Redacted from "effect/Redacted";
|
|
6
|
+
import type { Secret } from "./Secret.ts";
|
|
7
|
+
/**
|
|
8
|
+
* Create, update, and delete Fly.io App secrets at runtime.
|
|
9
|
+
*
|
|
10
|
+
* The App is fixed by `WriteSecret(secret)`. Calls take no
|
|
11
|
+
* `app_name`. Inside a {@link Machine} or {@link Service}, Alchemy
|
|
12
|
+
* mints an App deploy token. Inside an Action, the ambient
|
|
13
|
+
* `FLY_API_TOKEN` is used.
|
|
14
|
+
*
|
|
15
|
+
*
|
|
16
|
+
* ### Create
|
|
17
|
+
* Bind the client in init. Provide {@link WriteSecretHttp}. Wrap
|
|
18
|
+
* values with `Redacted.make`.
|
|
19
|
+
*
|
|
20
|
+
* **Example:** Create a secret
|
|
21
|
+
* ```typescript
|
|
22
|
+
* const Seed = Alchemy.Action(
|
|
23
|
+
* "Seed",
|
|
24
|
+
* Effect.gen(function* () {
|
|
25
|
+
* const secrets = yield* Fly.WriteSecret(ApiToken);
|
|
26
|
+
*
|
|
27
|
+
* return Effect.fn(function* () {
|
|
28
|
+
* yield* secrets.create("API_KEY", Redacted.make("sk_live"));
|
|
29
|
+
* });
|
|
30
|
+
* }).pipe(Effect.provide(Fly.WriteSecretHttp)),
|
|
31
|
+
* );
|
|
32
|
+
* ```
|
|
33
|
+
*
|
|
34
|
+
* ### Update
|
|
35
|
+
* `update` rotates by name (batch of one).
|
|
36
|
+
*
|
|
37
|
+
* **Example:** Rotate
|
|
38
|
+
* ```typescript
|
|
39
|
+
* yield* secrets.update("API_KEY", Redacted.make("sk_live_rotated"));
|
|
40
|
+
* ```
|
|
41
|
+
*
|
|
42
|
+
* ### Delete
|
|
43
|
+
* `delete` removes a secret by name.
|
|
44
|
+
*
|
|
45
|
+
* **Example:** Delete
|
|
46
|
+
* ```typescript
|
|
47
|
+
* yield* secrets.delete("API_KEY");
|
|
48
|
+
* ```
|
|
49
|
+
*
|
|
50
|
+
* @binding
|
|
51
|
+
* @product Secret
|
|
52
|
+
*/
|
|
53
|
+
export interface WriteSecret extends Binding.Service<WriteSecret, "Fly.WriteSecret", (secret: Secret) => Effect.Effect<WriteSecretClient>> {
|
|
54
|
+
}
|
|
55
|
+
export declare const WriteSecret: WriteSecret;
|
|
56
|
+
/**
|
|
57
|
+
* Mutating App secret operations. The App is fixed when the client is
|
|
58
|
+
* bound, so no `app_name` is passed per call.
|
|
59
|
+
*/
|
|
60
|
+
export interface WriteSecretClient {
|
|
61
|
+
/** Create or upsert a secret by name. */
|
|
62
|
+
create(name: string, value: Redacted.Redacted<string> | string): Effect.Effect<SetAppSecretResponse, CreateSecretError, RuntimeContext>;
|
|
63
|
+
/** Update secrets by name (batch of one). */
|
|
64
|
+
update(name: string, value: Redacted.Redacted<string> | string): Effect.Effect<AppSecretsUpdateResp, UpdateSecretsError, RuntimeContext>;
|
|
65
|
+
/** Delete a secret by name. */
|
|
66
|
+
delete(name: string): Effect.Effect<DeleteAppSecretResponse, DeleteSecretError, RuntimeContext>;
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=WriteSecret.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WriteSecret.d.ts","sourceRoot":"","sources":["../src/WriteSecret.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EACpB,uBAAuB,EACvB,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,oBAAoB,EACrB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,KAAK,OAAO,MAAM,iBAAiB,CAAC;AAC3C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,KAAK,QAAQ,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE1C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AACH,MAAM,WAAW,WAAY,SAAQ,OAAO,CAAC,OAAO,CAClD,WAAW,EACX,iBAAiB,EACjB,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAAC,CACrD;CAAG;AAEJ,eAAO,MAAM,WAAW,aAAkD,CAAC;AAE3E;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,yCAAyC;IACzC,MAAM,CACJ,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,MAAM,GACxC,MAAM,CAAC,MAAM,CAAC,oBAAoB,EAAE,iBAAiB,EAAE,cAAc,CAAC,CAAC;IAC1E,6CAA6C;IAC7C,MAAM,CACJ,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,MAAM,GACxC,MAAM,CAAC,MAAM,CAAC,oBAAoB,EAAE,kBAAkB,EAAE,cAAc,CAAC,CAAC;IAC3E,+BAA+B;IAC/B,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,uBAAuB,EAAE,iBAAiB,EAAE,cAAc,CAAC,CAAC;CACjG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WriteSecret.js","sourceRoot":"","sources":["../src/WriteSecret.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,OAAO,MAAM,iBAAiB,CAAC;AAE3C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAwDxC,MAAM,CAAC,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,CAAc,iBAAiB,CAAC,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import * as Effect from "effect/Effect";
|
|
2
|
+
import * as Layer from "effect/Layer";
|
|
3
|
+
import { type SecretAuth } from "./SecretHttp.ts";
|
|
4
|
+
import { WriteSecret, type WriteSecretClient } from "./WriteSecret.ts";
|
|
5
|
+
/**
|
|
6
|
+
* HTTP implementation of {@link WriteSecret}. Provide it on the
|
|
7
|
+
* {@link Service} or Action Effect.
|
|
8
|
+
*
|
|
9
|
+
*
|
|
10
|
+
* ### Provide the layer
|
|
11
|
+
* **Example:** On an Action
|
|
12
|
+
* ```typescript
|
|
13
|
+
* Effect.gen(function* () {
|
|
14
|
+
* const secrets = yield* Fly.WriteSecret(ApiToken);
|
|
15
|
+
* // ...
|
|
16
|
+
* }).pipe(Effect.provide(Fly.WriteSecretHttp))
|
|
17
|
+
* ```
|
|
18
|
+
*
|
|
19
|
+
* @layer
|
|
20
|
+
* @product Secret
|
|
21
|
+
* @provides Fly.WriteSecret
|
|
22
|
+
*/
|
|
23
|
+
export declare const WriteSecretHttp: Layer.Layer<WriteSecret, never, never>;
|
|
24
|
+
/** Build the write client over an injectable auth and App name. */
|
|
25
|
+
export declare const secretWriteClient: (auth: SecretAuth, appName: Effect.Effect<string>, _secretName: Effect.Effect<string>) => WriteSecretClient;
|
|
26
|
+
//# sourceMappingURL=WriteSecretHttp.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WriteSecretHttp.d.ts","sourceRoot":"","sources":["../src/WriteSecretHttp.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAGtC,OAAO,EAAE,KAAK,UAAU,EAA4C,MAAM,iBAAiB,CAAC;AAC5F,OAAO,EAAE,WAAW,EAAE,KAAK,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAEvE;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,eAAe,wCAO4D,CAAC;AAEzF,mEAAmE;AACnE,eAAO,MAAM,iBAAiB,SACtB,UAAU,WACP,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,eACjB,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,KACjC,iBA6BF,CAAC"}
|
|
@@ -0,0 +1,54 @@
|
|
|
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 { makeHttpSecretBinding, unwrapSecretValue } from "./SecretHttp.js";
|
|
7
|
+
import { WriteSecret } from "./WriteSecret.js";
|
|
8
|
+
/**
|
|
9
|
+
* HTTP implementation of {@link WriteSecret}. Provide it on the
|
|
10
|
+
* {@link Service} or Action Effect.
|
|
11
|
+
*
|
|
12
|
+
*
|
|
13
|
+
* ### Provide the layer
|
|
14
|
+
* **Example:** On an Action
|
|
15
|
+
* ```typescript
|
|
16
|
+
* Effect.gen(function* () {
|
|
17
|
+
* const secrets = yield* Fly.WriteSecret(ApiToken);
|
|
18
|
+
* // ...
|
|
19
|
+
* }).pipe(Effect.provide(Fly.WriteSecretHttp))
|
|
20
|
+
* ```
|
|
21
|
+
*
|
|
22
|
+
* @layer
|
|
23
|
+
* @product Secret
|
|
24
|
+
* @provides Fly.WriteSecret
|
|
25
|
+
*/
|
|
26
|
+
export const WriteSecretHttp = Layer.effect(WriteSecret, Effect.suspend(() => makeHttpSecretBinding({
|
|
27
|
+
makeClient: secretWriteClient,
|
|
28
|
+
}))).pipe(Layer.provide(FetchHttpClient.layer), Layer.provide(CredentialsFromAmbientOrEnv));
|
|
29
|
+
/** Build the write client over an injectable auth and App name. */
|
|
30
|
+
export const secretWriteClient = (auth, appName, _secretName) => {
|
|
31
|
+
const authorize = auth.authorize;
|
|
32
|
+
return {
|
|
33
|
+
create: Effect.fn("Fly.Secret.create")(function* (name, value) {
|
|
34
|
+
return yield* authorize(machines.createSecret({
|
|
35
|
+
app_name: yield* appName,
|
|
36
|
+
secret_name: name,
|
|
37
|
+
value: unwrapSecretValue(value),
|
|
38
|
+
}));
|
|
39
|
+
}),
|
|
40
|
+
update: Effect.fn("Fly.Secret.update")(function* (name, value) {
|
|
41
|
+
return yield* authorize(machines.updateSecrets({
|
|
42
|
+
app_name: yield* appName,
|
|
43
|
+
values: { [name]: unwrapSecretValue(value) },
|
|
44
|
+
}));
|
|
45
|
+
}),
|
|
46
|
+
delete: Effect.fn("Fly.Secret.delete")(function* (name) {
|
|
47
|
+
return yield* authorize(machines.deleteSecret({
|
|
48
|
+
app_name: yield* appName,
|
|
49
|
+
secret_name: name,
|
|
50
|
+
}));
|
|
51
|
+
}),
|
|
52
|
+
};
|
|
53
|
+
};
|
|
54
|
+
//# sourceMappingURL=WriteSecretHttp.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WriteSecretHttp.js","sourceRoot":"","sources":["../src/WriteSecretHttp.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,kCAAkC,CAAC;AAC7D,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,eAAe,MAAM,6BAA6B,CAAC;AAC/D,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,2BAA2B,EAAE,MAAM,kBAAkB,CAAC;AAE/D,OAAO,EAAmB,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAC5F,OAAO,EAAE,WAAW,EAA0B,MAAM,kBAAkB,CAAC;AAEvE;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,CAAC,MAAM,CACzC,WAAW,EACX,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAClB,qBAAqB,CAA4B;IAC/C,UAAU,EAAE,iBAAiB;CAC9B,CAAC,CACH,CACF,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,2BAA2B,CAAC,CAAC,CAAC;AAEzF,mEAAmE;AACnE,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAC/B,IAAgB,EAChB,OAA8B,EAC9B,WAAkC,EACf,EAAE;IACrB,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;IACjC,OAAO;QACL,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,mBAAmB,CAAC,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,KAAK;YAC3D,OAAO,KAAK,CAAC,CAAC,SAAS,CACrB,QAAQ,CAAC,YAAY,CAAC;gBACpB,QAAQ,EAAE,KAAK,CAAC,CAAC,OAAO;gBACxB,WAAW,EAAE,IAAI;gBACjB,KAAK,EAAE,iBAAiB,CAAC,KAAK,CAAC;aAChC,CAAC,CACH,CAAC;QACJ,CAAC,CAAC;QACF,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,mBAAmB,CAAC,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,KAAK;YAC3D,OAAO,KAAK,CAAC,CAAC,SAAS,CACrB,QAAQ,CAAC,aAAa,CAAC;gBACrB,QAAQ,EAAE,KAAK,CAAC,CAAC,OAAO;gBACxB,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,iBAAiB,CAAC,KAAK,CAAC,EAAE;aAC7C,CAAC,CACH,CAAC;QACJ,CAAC,CAAC;QACF,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,mBAAmB,CAAC,CAAC,QAAQ,CAAC,EAAE,IAAI;YACpD,OAAO,KAAK,CAAC,CAAC,SAAS,CACrB,QAAQ,CAAC,YAAY,CAAC;gBACpB,QAAQ,EAAE,KAAK,CAAC,CAAC,OAAO;gBACxB,WAAW,EAAE,IAAI;aAClB,CAAC,CACH,CAAC;QACJ,CAAC,CAAC;KACH,CAAC;AACJ,CAAC,CAAC"}
|