alchemy 2.0.0-beta.65 → 2.0.0-beta.67
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/bin/exec.js +578 -224
- package/bin/exec.js.map +1 -1
- package/lib/AWS/ApiGateway/common.d.ts.map +1 -1
- package/lib/AWS/ApiGateway/common.js +8 -1
- package/lib/AWS/ApiGateway/common.js.map +1 -1
- package/lib/AWS/Bedrock/LanguageModel.d.ts +208 -0
- package/lib/AWS/Bedrock/LanguageModel.d.ts.map +1 -0
- package/lib/AWS/Bedrock/LanguageModel.js +508 -0
- package/lib/AWS/Bedrock/LanguageModel.js.map +1 -0
- package/lib/AWS/Bedrock/LanguageModelHttp.d.ts +10 -0
- package/lib/AWS/Bedrock/LanguageModelHttp.d.ts.map +1 -0
- package/lib/AWS/Bedrock/LanguageModelHttp.js +26 -0
- package/lib/AWS/Bedrock/LanguageModelHttp.js.map +1 -0
- package/lib/AWS/Bedrock/index.d.ts +2 -0
- package/lib/AWS/Bedrock/index.d.ts.map +1 -1
- package/lib/AWS/Bedrock/index.js +2 -0
- package/lib/AWS/Bedrock/index.js.map +1 -1
- package/lib/AWS/CloudFront/Distribution.d.ts +24 -0
- package/lib/AWS/CloudFront/Distribution.d.ts.map +1 -1
- package/lib/AWS/CloudFront/Distribution.js +89 -4
- package/lib/AWS/CloudFront/Distribution.js.map +1 -1
- package/lib/AWS/CostExplorer/AnomalyMonitor.d.ts +1 -1
- package/lib/AWS/CostExplorer/AnomalyMonitor.d.ts.map +1 -1
- package/lib/AWS/CostExplorer/AnomalySubscription.d.ts +1 -1
- package/lib/AWS/CostExplorer/AnomalySubscription.d.ts.map +1 -1
- package/lib/AWS/CostExplorer/BindingHttp.d.ts +3 -3
- package/lib/AWS/CostExplorer/BindingHttp.d.ts.map +1 -1
- package/lib/AWS/CostExplorer/CostCategory.d.ts +1 -1
- package/lib/AWS/CostExplorer/CostCategory.d.ts.map +1 -1
- package/lib/AWS/CostExplorer/GetAnomaliesHttp.d.ts +1 -1
- package/lib/AWS/CostExplorer/GetAnomaliesHttp.d.ts.map +1 -1
- package/lib/AWS/CostExplorer/GetApproximateUsageRecordsHttp.d.ts +1 -1
- package/lib/AWS/CostExplorer/GetApproximateUsageRecordsHttp.d.ts.map +1 -1
- package/lib/AWS/CostExplorer/GetCommitmentPurchaseAnalysisHttp.d.ts +1 -1
- package/lib/AWS/CostExplorer/GetCommitmentPurchaseAnalysisHttp.d.ts.map +1 -1
- package/lib/AWS/CostExplorer/GetCostAndUsageComparisonsHttp.d.ts +1 -1
- package/lib/AWS/CostExplorer/GetCostAndUsageComparisonsHttp.d.ts.map +1 -1
- package/lib/AWS/CostExplorer/GetCostAndUsageHttp.d.ts +1 -1
- package/lib/AWS/CostExplorer/GetCostAndUsageHttp.d.ts.map +1 -1
- package/lib/AWS/CostExplorer/GetCostAndUsageWithResourcesHttp.d.ts +1 -1
- package/lib/AWS/CostExplorer/GetCostAndUsageWithResourcesHttp.d.ts.map +1 -1
- package/lib/AWS/CostExplorer/GetCostCategoriesHttp.d.ts +1 -1
- package/lib/AWS/CostExplorer/GetCostCategoriesHttp.d.ts.map +1 -1
- package/lib/AWS/CostExplorer/GetCostComparisonDriversHttp.d.ts +1 -1
- package/lib/AWS/CostExplorer/GetCostComparisonDriversHttp.d.ts.map +1 -1
- package/lib/AWS/CostExplorer/GetCostForecastHttp.d.ts +1 -1
- package/lib/AWS/CostExplorer/GetCostForecastHttp.d.ts.map +1 -1
- package/lib/AWS/CostExplorer/GetDimensionValuesHttp.d.ts +1 -1
- package/lib/AWS/CostExplorer/GetDimensionValuesHttp.d.ts.map +1 -1
- package/lib/AWS/CostExplorer/GetReservationCoverageHttp.d.ts +1 -1
- package/lib/AWS/CostExplorer/GetReservationCoverageHttp.d.ts.map +1 -1
- package/lib/AWS/CostExplorer/GetReservationPurchaseRecommendationHttp.d.ts +1 -1
- package/lib/AWS/CostExplorer/GetReservationPurchaseRecommendationHttp.d.ts.map +1 -1
- package/lib/AWS/CostExplorer/GetReservationUtilizationHttp.d.ts +1 -1
- package/lib/AWS/CostExplorer/GetReservationUtilizationHttp.d.ts.map +1 -1
- package/lib/AWS/CostExplorer/GetRightsizingRecommendationHttp.d.ts +1 -1
- package/lib/AWS/CostExplorer/GetRightsizingRecommendationHttp.d.ts.map +1 -1
- package/lib/AWS/CostExplorer/GetSavingsPlanPurchaseRecommendationDetailsHttp.d.ts +1 -1
- package/lib/AWS/CostExplorer/GetSavingsPlanPurchaseRecommendationDetailsHttp.d.ts.map +1 -1
- package/lib/AWS/CostExplorer/GetSavingsPlansCoverageHttp.d.ts +1 -1
- package/lib/AWS/CostExplorer/GetSavingsPlansCoverageHttp.d.ts.map +1 -1
- package/lib/AWS/CostExplorer/GetSavingsPlansPurchaseRecommendationHttp.d.ts +1 -1
- package/lib/AWS/CostExplorer/GetSavingsPlansPurchaseRecommendationHttp.d.ts.map +1 -1
- package/lib/AWS/CostExplorer/GetSavingsPlansUtilizationDetailsHttp.d.ts +1 -1
- package/lib/AWS/CostExplorer/GetSavingsPlansUtilizationDetailsHttp.d.ts.map +1 -1
- package/lib/AWS/CostExplorer/GetSavingsPlansUtilizationHttp.d.ts +1 -1
- package/lib/AWS/CostExplorer/GetSavingsPlansUtilizationHttp.d.ts.map +1 -1
- package/lib/AWS/CostExplorer/GetTagsHttp.d.ts +1 -1
- package/lib/AWS/CostExplorer/GetTagsHttp.d.ts.map +1 -1
- package/lib/AWS/CostExplorer/GetUsageForecastHttp.d.ts +1 -1
- package/lib/AWS/CostExplorer/GetUsageForecastHttp.d.ts.map +1 -1
- package/lib/AWS/CostExplorer/ListCommitmentPurchaseAnalysesHttp.d.ts +1 -1
- package/lib/AWS/CostExplorer/ListCommitmentPurchaseAnalysesHttp.d.ts.map +1 -1
- package/lib/AWS/CostExplorer/ListCostAllocationTagBackfillHistoryHttp.d.ts +1 -1
- package/lib/AWS/CostExplorer/ListCostAllocationTagBackfillHistoryHttp.d.ts.map +1 -1
- package/lib/AWS/CostExplorer/ListCostAllocationTagsHttp.d.ts +1 -1
- package/lib/AWS/CostExplorer/ListCostAllocationTagsHttp.d.ts.map +1 -1
- package/lib/AWS/CostExplorer/ListCostCategoryResourceAssociationsHttp.d.ts +1 -1
- package/lib/AWS/CostExplorer/ListCostCategoryResourceAssociationsHttp.d.ts.map +1 -1
- package/lib/AWS/CostExplorer/ListSavingsPlansPurchaseRecommendationGenerationHttp.d.ts +1 -1
- package/lib/AWS/CostExplorer/ListSavingsPlansPurchaseRecommendationGenerationHttp.d.ts.map +1 -1
- package/lib/AWS/CostExplorer/ProvideAnomalyFeedbackHttp.d.ts +1 -1
- package/lib/AWS/CostExplorer/ProvideAnomalyFeedbackHttp.d.ts.map +1 -1
- package/lib/AWS/CostExplorer/StartCommitmentPurchaseAnalysisHttp.d.ts +1 -1
- package/lib/AWS/CostExplorer/StartCommitmentPurchaseAnalysisHttp.d.ts.map +1 -1
- package/lib/AWS/CostExplorer/StartCostAllocationTagBackfillHttp.d.ts +1 -1
- package/lib/AWS/CostExplorer/StartCostAllocationTagBackfillHttp.d.ts.map +1 -1
- package/lib/AWS/CostExplorer/StartSavingsPlansPurchaseRecommendationGenerationHttp.d.ts +1 -1
- package/lib/AWS/CostExplorer/StartSavingsPlansPurchaseRecommendationGenerationHttp.d.ts.map +1 -1
- package/lib/AWS/CostExplorer/UpdateCostAllocationTagsStatusHttp.d.ts +1 -1
- package/lib/AWS/CostExplorer/UpdateCostAllocationTagsStatusHttp.d.ts.map +1 -1
- package/lib/AWS/CostExplorer/common.d.ts +5 -3
- package/lib/AWS/CostExplorer/common.d.ts.map +1 -1
- package/lib/AWS/CostExplorer/common.js +16 -1
- package/lib/AWS/CostExplorer/common.js.map +1 -1
- package/lib/AWS/DataSync/Task.d.ts.map +1 -1
- package/lib/AWS/DataSync/Task.js +16 -2
- package/lib/AWS/DataSync/Task.js.map +1 -1
- package/lib/AWS/EC2/Vpc.d.ts.map +1 -1
- package/lib/AWS/EC2/Vpc.js +15 -2
- package/lib/AWS/EC2/Vpc.js.map +1 -1
- package/lib/AWS/EC2/hosted.d.ts.map +1 -1
- package/lib/AWS/EC2/hosted.js +10 -2
- package/lib/AWS/EC2/hosted.js.map +1 -1
- package/lib/AWS/ECR/Image.d.ts +132 -13
- package/lib/AWS/ECR/Image.d.ts.map +1 -1
- package/lib/AWS/ECR/ImageSource.d.ts.map +1 -1
- package/lib/AWS/ECR/ImageSource.js +10 -2
- package/lib/AWS/ECR/ImageSource.js.map +1 -1
- package/lib/AWS/ECR/Repository.d.ts +2 -0
- package/lib/AWS/ECR/Repository.d.ts.map +1 -1
- package/lib/AWS/ECR/Repository.js +28 -3
- package/lib/AWS/ECR/Repository.js.map +1 -1
- package/lib/AWS/ECS/Service.d.ts +27 -1
- package/lib/AWS/ECS/Service.d.ts.map +1 -1
- package/lib/AWS/ECS/Service.js +184 -22
- package/lib/AWS/ECS/Service.js.map +1 -1
- package/lib/AWS/ECS/Task.d.ts +32 -8
- package/lib/AWS/ECS/Task.d.ts.map +1 -1
- package/lib/AWS/ECS/Task.js +62 -29
- package/lib/AWS/ECS/Task.js.map +1 -1
- package/lib/AWS/EKS/Deployment.d.ts.map +1 -1
- package/lib/AWS/EKS/Deployment.js +10 -2
- package/lib/AWS/EKS/Deployment.js.map +1 -1
- package/lib/AWS/EKS/Job.d.ts.map +1 -1
- package/lib/AWS/EKS/Job.js +10 -2
- package/lib/AWS/EKS/Job.js.map +1 -1
- package/lib/AWS/Lambda/Function.d.ts +15 -0
- package/lib/AWS/Lambda/Function.d.ts.map +1 -1
- package/lib/AWS/Lambda/Function.js +67 -29
- package/lib/AWS/Lambda/Function.js.map +1 -1
- package/lib/AWS/Lambda/HttpServer.d.ts.map +1 -1
- package/lib/AWS/Lambda/HttpServer.js +7 -1
- package/lib/AWS/Lambda/HttpServer.js.map +1 -1
- package/lib/AWS/Lambda/LayerVersion.d.ts +176 -0
- package/lib/AWS/Lambda/LayerVersion.d.ts.map +1 -0
- package/lib/AWS/Lambda/LayerVersion.js +288 -0
- package/lib/AWS/Lambda/LayerVersion.js.map +1 -0
- package/lib/AWS/Lambda/MicrovmBundle.d.ts.map +1 -1
- package/lib/AWS/Lambda/MicrovmBundle.js +10 -2
- package/lib/AWS/Lambda/MicrovmBundle.js.map +1 -1
- package/lib/AWS/Lambda/index.d.ts +1 -0
- package/lib/AWS/Lambda/index.d.ts.map +1 -1
- package/lib/AWS/Lambda/index.js +1 -0
- package/lib/AWS/Lambda/index.js.map +1 -1
- package/lib/AWS/Providers.d.ts.map +1 -1
- package/lib/AWS/Providers.js +6 -1
- package/lib/AWS/Providers.js.map +1 -1
- package/lib/AWS/SES/ActiveReceiptRuleSet.d.ts +40 -0
- package/lib/AWS/SES/ActiveReceiptRuleSet.d.ts.map +1 -0
- package/lib/AWS/SES/ActiveReceiptRuleSet.js +58 -0
- package/lib/AWS/SES/ActiveReceiptRuleSet.js.map +1 -0
- package/lib/AWS/SES/ReceiptFilter.d.ts +67 -0
- package/lib/AWS/SES/ReceiptFilter.d.ts.map +1 -0
- package/lib/AWS/SES/ReceiptFilter.js +92 -0
- package/lib/AWS/SES/ReceiptFilter.js.map +1 -0
- package/lib/AWS/SES/ReceiptRule.d.ts +133 -0
- package/lib/AWS/SES/ReceiptRule.d.ts.map +1 -0
- package/lib/AWS/SES/ReceiptRule.js +178 -0
- package/lib/AWS/SES/ReceiptRule.js.map +1 -0
- package/lib/AWS/SES/ReceiptRuleSet.d.ts +55 -0
- package/lib/AWS/SES/ReceiptRuleSet.d.ts.map +1 -0
- package/lib/AWS/SES/ReceiptRuleSet.js +112 -0
- package/lib/AWS/SES/ReceiptRuleSet.js.map +1 -0
- package/lib/AWS/SES/SendBounce.d.ts +37 -0
- package/lib/AWS/SES/SendBounce.d.ts.map +1 -0
- package/lib/AWS/SES/SendBounce.js +3 -0
- package/lib/AWS/SES/SendBounce.js.map +1 -0
- package/lib/AWS/SES/SendBounceHttp.d.ts +4 -0
- package/lib/AWS/SES/SendBounceHttp.d.ts.map +1 -0
- package/lib/AWS/SES/SendBounceHttp.js +10 -0
- package/lib/AWS/SES/SendBounceHttp.js.map +1 -0
- package/lib/AWS/SES/index.d.ts +6 -0
- package/lib/AWS/SES/index.d.ts.map +1 -1
- package/lib/AWS/SES/index.js +6 -0
- package/lib/AWS/SES/index.js.map +1 -1
- package/lib/AWS/StateStore/State.d.ts +11 -0
- package/lib/AWS/StateStore/State.d.ts.map +1 -1
- package/lib/AWS/StateStore/State.js +117 -38
- package/lib/AWS/StateStore/State.js.map +1 -1
- package/lib/Apply.d.ts +37 -1
- package/lib/Apply.d.ts.map +1 -1
- package/lib/Apply.js +270 -194
- package/lib/Apply.js.map +1 -1
- package/lib/Axiom/Telemetry.d.ts +66 -0
- package/lib/Axiom/Telemetry.d.ts.map +1 -0
- package/lib/Axiom/Telemetry.js +69 -0
- package/lib/Axiom/Telemetry.js.map +1 -0
- package/lib/Axiom/index.d.ts +1 -0
- package/lib/Axiom/index.d.ts.map +1 -1
- package/lib/Axiom/index.js +1 -0
- package/lib/Axiom/index.js.map +1 -1
- package/lib/Bundle/Bundle.d.ts +1 -1
- package/lib/Bundle/Bundle.d.ts.map +1 -1
- package/lib/Bundle/Bundle.js +14 -6
- package/lib/Bundle/Bundle.js.map +1 -1
- package/lib/Bundle/BundleAnalyzerPlugin.d.ts +1 -1
- package/lib/Bundle/BundleAnalyzerPlugin.d.ts.map +1 -1
- package/lib/Bundle/BundleAnalyzerPlugin.js +10 -5
- package/lib/Bundle/BundleAnalyzerPlugin.js.map +1 -1
- package/lib/Bundle/PurePlugin.d.ts +1 -1
- package/lib/Bundle/PurePlugin.d.ts.map +1 -1
- package/lib/Bundle/PurePlugin.js +15 -7
- package/lib/Bundle/PurePlugin.js.map +1 -1
- package/lib/Cli/checkVersion.d.ts +11 -5
- package/lib/Cli/checkVersion.d.ts.map +1 -1
- package/lib/Cli/checkVersion.js +73 -12
- package/lib/Cli/checkVersion.js.map +1 -1
- package/lib/Cli/commands/_shared.d.ts.map +1 -1
- package/lib/Cli/commands/_shared.js +2 -1
- package/lib/Cli/commands/_shared.js.map +1 -1
- package/lib/Cli/commands/cloudflare.d.ts +1 -1
- package/lib/Cli/commands/deploy.d.ts.map +1 -1
- package/lib/Cli/commands/deploy.js +3 -11
- package/lib/Cli/commands/deploy.js.map +1 -1
- package/lib/Cli/commands/logs.d.ts.map +1 -1
- package/lib/Cli/commands/logs.js +3 -1
- package/lib/Cli/commands/logs.js.map +1 -1
- package/lib/Cli/commands/tail.d.ts.map +1 -1
- package/lib/Cli/commands/tail.js +3 -1
- package/lib/Cli/commands/tail.js.map +1 -1
- package/lib/Cli/main.d.ts.map +1 -1
- package/lib/Cli/main.js +5 -4
- package/lib/Cli/main.js.map +1 -1
- package/lib/Cloudflare/AI/Search.d.ts +4 -15
- package/lib/Cloudflare/AI/Search.d.ts.map +1 -1
- package/lib/Cloudflare/AI/Search.js +4 -6
- package/lib/Cloudflare/AI/Search.js.map +1 -1
- package/lib/Cloudflare/AI/SearchInstance.d.ts +7 -26
- package/lib/Cloudflare/AI/SearchInstance.d.ts.map +1 -1
- package/lib/Cloudflare/AI/SearchInstance.js +7 -26
- package/lib/Cloudflare/AI/SearchInstance.js.map +1 -1
- package/lib/Cloudflare/ApiToken/AccountApiToken.d.ts +3 -0
- package/lib/Cloudflare/ApiToken/AccountApiToken.d.ts.map +1 -1
- package/lib/Cloudflare/ApiToken/AccountApiToken.js +3 -0
- package/lib/Cloudflare/ApiToken/AccountApiToken.js.map +1 -1
- package/lib/Cloudflare/Auth/AuthProvider.d.ts +2 -1
- package/lib/Cloudflare/Auth/AuthProvider.d.ts.map +1 -1
- package/lib/Cloudflare/Auth/AuthProvider.js +8 -3
- package/lib/Cloudflare/Auth/AuthProvider.js.map +1 -1
- package/lib/Cloudflare/Auth/OAuthClient.d.ts +5 -0
- package/lib/Cloudflare/Auth/OAuthClient.d.ts.map +1 -1
- package/lib/Cloudflare/Auth/OAuthClient.js +50 -4
- package/lib/Cloudflare/Auth/OAuthClient.js.map +1 -1
- package/lib/Cloudflare/Containers/Container.d.ts +81 -3
- package/lib/Cloudflare/Containers/Container.d.ts.map +1 -1
- package/lib/Cloudflare/Containers/Container.js +70 -0
- package/lib/Cloudflare/Containers/Container.js.map +1 -1
- package/lib/Cloudflare/Containers/ContainerApplication.d.ts +22 -1
- package/lib/Cloudflare/Containers/ContainerApplication.d.ts.map +1 -1
- package/lib/Cloudflare/Containers/ContainerApplication.js +4 -1
- package/lib/Cloudflare/Containers/ContainerApplication.js.map +1 -1
- package/lib/Cloudflare/Containers/ContainerBundle.d.ts.map +1 -1
- package/lib/Cloudflare/Containers/ContainerBundle.js +10 -2
- package/lib/Cloudflare/Containers/ContainerBundle.js.map +1 -1
- package/lib/Cloudflare/Containers/ContainerProvider.d.ts.map +1 -1
- package/lib/Cloudflare/Containers/ContainerProvider.js +43 -0
- package/lib/Cloudflare/Containers/ContainerProvider.js.map +1 -1
- package/lib/Cloudflare/Credentials.d.ts +21 -1
- package/lib/Cloudflare/Credentials.d.ts.map +1 -1
- package/lib/Cloudflare/Credentials.js +52 -9
- package/lib/Cloudflare/Credentials.js.map +1 -1
- package/lib/Cloudflare/D1/ApplyMigrations.d.ts +30 -5
- package/lib/Cloudflare/D1/ApplyMigrations.d.ts.map +1 -1
- package/lib/Cloudflare/D1/ApplyMigrations.js +36 -26
- package/lib/Cloudflare/D1/ApplyMigrations.js.map +1 -1
- package/lib/Cloudflare/D1/Database.d.ts +18 -1
- package/lib/Cloudflare/D1/Database.d.ts.map +1 -1
- package/lib/Cloudflare/D1/Database.js +134 -2
- package/lib/Cloudflare/D1/Database.js.map +1 -1
- package/lib/Cloudflare/D1/LocalD1Gateway.d.ts +39 -0
- package/lib/Cloudflare/D1/LocalD1Gateway.d.ts.map +1 -0
- package/lib/Cloudflare/D1/LocalD1Gateway.js +100 -0
- package/lib/Cloudflare/D1/LocalD1Gateway.js.map +1 -0
- package/lib/Cloudflare/D1/QueryDatabaseHttpClient.d.ts +31 -0
- package/lib/Cloudflare/D1/QueryDatabaseHttpClient.d.ts.map +1 -1
- package/lib/Cloudflare/D1/QueryDatabaseHttpClient.js +13 -6
- package/lib/Cloudflare/D1/QueryDatabaseHttpClient.js.map +1 -1
- package/lib/Cloudflare/D1/QueryDatabaseLocal.d.ts.map +1 -1
- package/lib/Cloudflare/D1/QueryDatabaseLocal.js +21 -2
- package/lib/Cloudflare/D1/QueryDatabaseLocal.js.map +1 -1
- package/lib/Cloudflare/DNS/Record.d.ts +3 -1
- package/lib/Cloudflare/DNS/Record.d.ts.map +1 -1
- package/lib/Cloudflare/DNS/Record.js +23 -4
- package/lib/Cloudflare/DNS/Record.js.map +1 -1
- package/lib/Cloudflare/Email/Address.d.ts.map +1 -1
- package/lib/Cloudflare/Email/Address.js +15 -1
- package/lib/Cloudflare/Email/Address.js.map +1 -1
- package/lib/Cloudflare/Email/SendBinding.d.ts.map +1 -1
- package/lib/Cloudflare/Email/SendBinding.js +1 -0
- package/lib/Cloudflare/Email/SendBinding.js.map +1 -1
- package/lib/Cloudflare/Email/SendEmail.d.ts +12 -0
- package/lib/Cloudflare/Email/SendEmail.d.ts.map +1 -1
- package/lib/Cloudflare/Email/SendEmail.js +1 -0
- package/lib/Cloudflare/Email/SendEmail.js.map +1 -1
- package/lib/Cloudflare/Flagship/App.d.ts.map +1 -1
- package/lib/Cloudflare/Flagship/App.js +8 -3
- package/lib/Cloudflare/Flagship/App.js.map +1 -1
- package/lib/Cloudflare/KV/LocalKVGateway.d.ts +15 -0
- package/lib/Cloudflare/KV/LocalKVGateway.d.ts.map +1 -0
- package/lib/Cloudflare/KV/LocalKVGateway.js +64 -0
- package/lib/Cloudflare/KV/LocalKVGateway.js.map +1 -0
- package/lib/Cloudflare/KV/Namespace.d.ts +9 -1
- package/lib/Cloudflare/KV/Namespace.d.ts.map +1 -1
- package/lib/Cloudflare/KV/Namespace.js +45 -1
- package/lib/Cloudflare/KV/Namespace.js.map +1 -1
- package/lib/Cloudflare/KV/NamespaceLocal.d.ts +16 -5
- package/lib/Cloudflare/KV/NamespaceLocal.d.ts.map +1 -1
- package/lib/Cloudflare/KV/NamespaceLocal.js +21 -4
- package/lib/Cloudflare/KV/NamespaceLocal.js.map +1 -1
- package/lib/Cloudflare/KV/ReadNamespaceLocal.d.ts.map +1 -1
- package/lib/Cloudflare/KV/ReadNamespaceLocal.js +5 -1
- package/lib/Cloudflare/KV/ReadNamespaceLocal.js.map +1 -1
- package/lib/Cloudflare/KV/ReadWriteNamespaceLocal.d.ts.map +1 -1
- package/lib/Cloudflare/KV/ReadWriteNamespaceLocal.js +5 -1
- package/lib/Cloudflare/KV/ReadWriteNamespaceLocal.js.map +1 -1
- package/lib/Cloudflare/KV/WriteNamespaceLocal.d.ts.map +1 -1
- package/lib/Cloudflare/KV/WriteNamespaceLocal.js +5 -1
- package/lib/Cloudflare/KV/WriteNamespaceLocal.js.map +1 -1
- package/lib/Cloudflare/LocalGateway.d.ts +25 -0
- package/lib/Cloudflare/LocalGateway.d.ts.map +1 -0
- package/lib/Cloudflare/LocalGateway.js +70 -0
- package/lib/Cloudflare/LocalGateway.js.map +1 -0
- package/lib/Cloudflare/LocalRuntime.d.ts +14 -1
- package/lib/Cloudflare/LocalRuntime.d.ts.map +1 -1
- package/lib/Cloudflare/LocalRuntime.js +16 -1
- package/lib/Cloudflare/LocalRuntime.js.map +1 -1
- package/lib/Cloudflare/Logs.d.ts.map +1 -1
- package/lib/Cloudflare/Logs.js +18 -6
- package/lib/Cloudflare/Logs.js.map +1 -1
- package/lib/Cloudflare/Providers.d.ts +1 -1
- package/lib/Cloudflare/Providers.d.ts.map +1 -1
- package/lib/Cloudflare/Providers.js +6 -2
- package/lib/Cloudflare/Providers.js.map +1 -1
- package/lib/Cloudflare/Queues/Consumer.d.ts +16 -3
- package/lib/Cloudflare/Queues/Consumer.d.ts.map +1 -1
- package/lib/Cloudflare/Queues/Consumer.js +51 -3
- package/lib/Cloudflare/Queues/Consumer.js.map +1 -1
- package/lib/Cloudflare/Queues/Queue.d.ts +4 -3
- package/lib/Cloudflare/Queues/Queue.d.ts.map +1 -1
- package/lib/Cloudflare/Queues/Queue.js +7 -17
- package/lib/Cloudflare/Queues/Queue.js.map +1 -1
- package/lib/Cloudflare/Queues/QueueBinding.d.ts.map +1 -1
- package/lib/Cloudflare/Queues/QueueBinding.js +19 -0
- package/lib/Cloudflare/Queues/QueueBinding.js.map +1 -1
- package/lib/Cloudflare/Queues/QueueShim.d.ts +55 -0
- package/lib/Cloudflare/Queues/QueueShim.d.ts.map +1 -0
- package/lib/Cloudflare/Queues/QueueShim.js +177 -0
- package/lib/Cloudflare/Queues/QueueShim.js.map +1 -0
- package/lib/Cloudflare/R2/Bucket.d.ts +14 -1
- package/lib/Cloudflare/R2/Bucket.d.ts.map +1 -1
- package/lib/Cloudflare/R2/Bucket.js +53 -1
- package/lib/Cloudflare/R2/Bucket.js.map +1 -1
- package/lib/Cloudflare/R2/BucketBinding.d.ts +10 -0
- package/lib/Cloudflare/R2/BucketBinding.d.ts.map +1 -1
- package/lib/Cloudflare/R2/BucketBinding.js +14 -3
- package/lib/Cloudflare/R2/BucketBinding.js.map +1 -1
- package/lib/Cloudflare/R2/BucketLocal.d.ts +13 -6
- package/lib/Cloudflare/R2/BucketLocal.d.ts.map +1 -1
- package/lib/Cloudflare/R2/BucketLocal.js +19 -6
- package/lib/Cloudflare/R2/BucketLocal.js.map +1 -1
- package/lib/Cloudflare/R2/LocalR2Gateway.d.ts +15 -0
- package/lib/Cloudflare/R2/LocalR2Gateway.d.ts.map +1 -0
- package/lib/Cloudflare/R2/LocalR2Gateway.js +65 -0
- package/lib/Cloudflare/R2/LocalR2Gateway.js.map +1 -0
- package/lib/Cloudflare/R2/ReadBucketLocal.d.ts.map +1 -1
- package/lib/Cloudflare/R2/ReadBucketLocal.js +5 -1
- package/lib/Cloudflare/R2/ReadBucketLocal.js.map +1 -1
- package/lib/Cloudflare/R2/ReadWriteBucketLocal.d.ts.map +1 -1
- package/lib/Cloudflare/R2/ReadWriteBucketLocal.js +5 -1
- package/lib/Cloudflare/R2/ReadWriteBucketLocal.js.map +1 -1
- package/lib/Cloudflare/R2/WriteBucketLocal.d.ts.map +1 -1
- package/lib/Cloudflare/R2/WriteBucketLocal.js +5 -1
- package/lib/Cloudflare/R2/WriteBucketLocal.js.map +1 -1
- package/lib/Cloudflare/Ruleset/AccountEntrypoint.d.ts.map +1 -1
- package/lib/Cloudflare/Ruleset/AccountEntrypoint.js +5 -1
- package/lib/Cloudflare/Ruleset/AccountEntrypoint.js.map +1 -1
- package/lib/Cloudflare/Ruleset/Ruleset.d.ts.map +1 -1
- package/lib/Cloudflare/Ruleset/Ruleset.js +19 -6
- package/lib/Cloudflare/Ruleset/Ruleset.js.map +1 -1
- package/lib/Cloudflare/Rum/Site.js +10 -2
- package/lib/Cloudflare/Rum/Site.js.map +1 -1
- package/lib/Cloudflare/StateStore/Api.d.ts +31 -2
- package/lib/Cloudflare/StateStore/Api.js +1 -1
- package/lib/Cloudflare/StateStore/Api.js.map +1 -1
- package/lib/Cloudflare/StateStore/State.d.ts +1 -1
- package/lib/Cloudflare/StateStore/State.d.ts.map +1 -1
- package/lib/Cloudflare/Tunnel/Tunnel.d.ts.map +1 -1
- package/lib/Cloudflare/Tunnel/Tunnel.js +20 -1
- package/lib/Cloudflare/Tunnel/Tunnel.js.map +1 -1
- package/lib/Cloudflare/Website/StaticSite.d.ts +34 -7
- package/lib/Cloudflare/Website/StaticSite.d.ts.map +1 -1
- package/lib/Cloudflare/Website/StaticSite.js +108 -24
- package/lib/Cloudflare/Website/StaticSite.js.map +1 -1
- package/lib/Cloudflare/Website/Vite.d.ts +33 -19
- package/lib/Cloudflare/Website/Vite.d.ts.map +1 -1
- package/lib/Cloudflare/Website/Vite.js +33 -19
- package/lib/Cloudflare/Website/Vite.js.map +1 -1
- package/lib/Cloudflare/Workers/Compatibility.d.ts.map +1 -1
- package/lib/Cloudflare/Workers/Compatibility.js +26 -7
- package/lib/Cloudflare/Workers/Compatibility.js.map +1 -1
- package/lib/Cloudflare/Workers/DurableObject.d.ts +22 -0
- package/lib/Cloudflare/Workers/DurableObject.d.ts.map +1 -1
- package/lib/Cloudflare/Workers/DurableObject.js +22 -0
- package/lib/Cloudflare/Workers/DurableObject.js.map +1 -1
- package/lib/Cloudflare/Workers/DurableObjectBridge.d.ts.map +1 -1
- package/lib/Cloudflare/Workers/DurableObjectBridge.js +20 -5
- package/lib/Cloudflare/Workers/DurableObjectBridge.js.map +1 -1
- package/lib/Cloudflare/Workers/InferEnv.d.ts +4 -2
- package/lib/Cloudflare/Workers/InferEnv.d.ts.map +1 -1
- package/lib/Cloudflare/Workers/LocalWorkerProvider.d.ts +7 -3
- package/lib/Cloudflare/Workers/LocalWorkerProvider.d.ts.map +1 -1
- package/lib/Cloudflare/Workers/LocalWorkerProvider.js +483 -298
- package/lib/Cloudflare/Workers/LocalWorkerProvider.js.map +1 -1
- package/lib/Cloudflare/Workers/Worker.d.ts +612 -13
- package/lib/Cloudflare/Workers/Worker.d.ts.map +1 -1
- package/lib/Cloudflare/Workers/Worker.js +222 -1
- package/lib/Cloudflare/Workers/Worker.js.map +1 -1
- package/lib/Cloudflare/Workers/WorkerAsyncBindings.d.ts +13 -1
- package/lib/Cloudflare/Workers/WorkerAsyncBindings.d.ts.map +1 -1
- package/lib/Cloudflare/Workers/WorkerAsyncBindings.js +171 -21
- package/lib/Cloudflare/Workers/WorkerAsyncBindings.js.map +1 -1
- package/lib/Cloudflare/Workers/WorkerBinding.d.ts +130 -28
- package/lib/Cloudflare/Workers/WorkerBinding.d.ts.map +1 -1
- package/lib/Cloudflare/Workers/WorkerBinding.js.map +1 -1
- package/lib/Cloudflare/Workers/WorkerBridge.d.ts +6 -2
- package/lib/Cloudflare/Workers/WorkerBridge.d.ts.map +1 -1
- package/lib/Cloudflare/Workers/WorkerBridge.js +18 -2
- package/lib/Cloudflare/Workers/WorkerBridge.js.map +1 -1
- package/lib/Cloudflare/Workers/WorkerBundle.d.ts.map +1 -1
- package/lib/Cloudflare/Workers/WorkerBundle.js +4 -1
- package/lib/Cloudflare/Workers/WorkerBundle.js.map +1 -1
- package/lib/Cloudflare/Workers/WorkerProvider.d.ts +186 -11
- package/lib/Cloudflare/Workers/WorkerProvider.d.ts.map +1 -1
- package/lib/Cloudflare/Workers/WorkerProvider.js +1765 -236
- package/lib/Cloudflare/Workers/WorkerProvider.js.map +1 -1
- package/lib/Cloudflare/Workflows/WorkflowBridge.d.ts +7 -1
- package/lib/Cloudflare/Workflows/WorkflowBridge.d.ts.map +1 -1
- package/lib/Cloudflare/Workflows/WorkflowBridge.js +14 -4
- package/lib/Cloudflare/Workflows/WorkflowBridge.js.map +1 -1
- package/lib/Command/Build.d.ts +2 -2
- package/lib/Command/Build.d.ts.map +1 -1
- package/lib/Command/Build.js +4 -7
- package/lib/Command/Build.js.map +1 -1
- package/lib/Command/Command.d.ts +34 -4
- package/lib/Command/Command.d.ts.map +1 -1
- package/lib/Command/Command.js +125 -30
- package/lib/Command/Command.js.map +1 -1
- package/lib/Command/Dev.d.ts +2 -2
- package/lib/Command/Dev.d.ts.map +1 -1
- package/lib/Command/Dev.js +51 -73
- package/lib/Command/Dev.js.map +1 -1
- package/lib/Command/Exec.d.ts +11 -2
- package/lib/Command/Exec.d.ts.map +1 -1
- package/lib/Command/Exec.js +9 -0
- package/lib/Command/Exec.js.map +1 -1
- package/lib/Command/Memo.d.ts +9 -1
- package/lib/Command/Memo.d.ts.map +1 -1
- package/lib/Command/Memo.js +14 -2
- package/lib/Command/Memo.js.map +1 -1
- package/lib/Command/Providers.d.ts +1 -1
- package/lib/Command/Providers.d.ts.map +1 -1
- package/lib/Command/Redaction.d.ts +10 -0
- package/lib/Command/Redaction.d.ts.map +1 -0
- package/lib/Command/Redaction.js +119 -0
- package/lib/Command/Redaction.js.map +1 -0
- package/lib/Deploy.d.ts +2 -1
- package/lib/Deploy.d.ts.map +1 -1
- package/lib/Destroy.d.ts +2 -1
- package/lib/Destroy.d.ts.map +1 -1
- package/lib/Destroy.js +1 -9
- package/lib/Destroy.js.map +1 -1
- package/lib/Docker/Container.d.ts +15 -1
- package/lib/Docker/Container.d.ts.map +1 -1
- package/lib/Docker/Container.js +34 -11
- package/lib/Docker/Container.js.map +1 -1
- package/lib/Docker/Context.d.ts +84 -0
- package/lib/Docker/Context.d.ts.map +1 -0
- package/lib/Docker/Context.js +145 -0
- package/lib/Docker/Context.js.map +1 -0
- package/lib/Docker/Docker.d.ts +190 -14
- package/lib/Docker/Docker.d.ts.map +1 -1
- package/lib/Docker/Docker.js +149 -28
- package/lib/Docker/Docker.js.map +1 -1
- package/lib/Docker/Image.d.ts +12 -0
- package/lib/Docker/Image.d.ts.map +1 -1
- package/lib/Docker/Image.js +24 -7
- package/lib/Docker/Image.js.map +1 -1
- package/lib/Docker/Network.d.ts +7 -0
- package/lib/Docker/Network.d.ts.map +1 -1
- package/lib/Docker/Network.js +16 -7
- package/lib/Docker/Network.js.map +1 -1
- package/lib/Docker/Providers.d.ts +1 -1
- package/lib/Docker/Providers.d.ts.map +1 -1
- package/lib/Docker/Providers.js +13 -1
- package/lib/Docker/Providers.js.map +1 -1
- package/lib/Docker/RemoteImage.d.ts +12 -0
- package/lib/Docker/RemoteImage.d.ts.map +1 -1
- package/lib/Docker/RemoteImage.js +22 -8
- package/lib/Docker/RemoteImage.js.map +1 -1
- package/lib/Docker/Service.d.ts +445 -0
- package/lib/Docker/Service.d.ts.map +1 -0
- package/lib/Docker/Service.js +578 -0
- package/lib/Docker/Service.js.map +1 -0
- package/lib/Docker/ServiceImage.d.ts +78 -0
- package/lib/Docker/ServiceImage.d.ts.map +1 -0
- package/lib/Docker/ServiceImage.js +232 -0
- package/lib/Docker/ServiceImage.js.map +1 -0
- package/lib/Docker/Swarm.d.ts +117 -0
- package/lib/Docker/Swarm.d.ts.map +1 -0
- package/lib/Docker/Swarm.js +149 -0
- package/lib/Docker/Swarm.js.map +1 -0
- package/lib/Docker/Volume.d.ts +11 -0
- package/lib/Docker/Volume.d.ts.map +1 -1
- package/lib/Docker/Volume.js +21 -6
- package/lib/Docker/Volume.js.map +1 -1
- package/lib/Docker/index.d.ts +3 -0
- package/lib/Docker/index.d.ts.map +1 -1
- package/lib/Docker/index.js +3 -0
- package/lib/Docker/index.js.map +1 -1
- package/lib/Http.d.ts +8 -1
- package/lib/Http.d.ts.map +1 -1
- package/lib/Http.js +7 -2
- package/lib/Http.js.map +1 -1
- package/lib/Local/LocalProvider.d.ts +182 -0
- package/lib/Local/LocalProvider.d.ts.map +1 -0
- package/lib/Local/LocalProvider.js +226 -0
- package/lib/Local/LocalProvider.js.map +1 -0
- package/lib/Local/ProviderLayer.d.ts +43 -2
- package/lib/Local/ProviderLayer.d.ts.map +1 -1
- package/lib/Local/ProviderLayer.js +80 -2
- package/lib/Local/ProviderLayer.js.map +1 -1
- package/lib/Local/RpcProvider.d.ts +7 -0
- package/lib/Local/RpcProvider.d.ts.map +1 -1
- package/lib/Local/RpcProvider.js +8 -3
- package/lib/Local/RpcProvider.js.map +1 -1
- package/lib/Local/RpcProviderProxy.d.ts.map +1 -1
- package/lib/Local/RpcProviderProxy.js +3 -0
- package/lib/Local/RpcProviderProxy.js.map +1 -1
- package/lib/Local/RpcServer.d.ts +8 -1
- package/lib/Local/RpcServer.d.ts.map +1 -1
- package/lib/Local/RpcServer.js +4 -1
- package/lib/Local/RpcServer.js.map +1 -1
- package/lib/Plan.d.ts +34 -0
- package/lib/Plan.d.ts.map +1 -1
- package/lib/Plan.js +127 -40
- package/lib/Plan.js.map +1 -1
- package/lib/Planetscale/AuthProvider.d.ts.map +1 -1
- package/lib/Planetscale/AuthProvider.js +6 -2
- package/lib/Planetscale/AuthProvider.js.map +1 -1
- package/lib/Planetscale/Branch.d.ts.map +1 -1
- package/lib/Planetscale/Branch.js +36 -6
- package/lib/Planetscale/Branch.js.map +1 -1
- package/lib/Planetscale/MySQL/MySQLDatabase.d.ts.map +1 -1
- package/lib/Planetscale/MySQL/MySQLDatabase.js +31 -6
- package/lib/Planetscale/MySQL/MySQLDatabase.js.map +1 -1
- package/lib/Planetscale/OAuthClient.d.ts +7 -1
- package/lib/Planetscale/OAuthClient.d.ts.map +1 -1
- package/lib/Planetscale/OAuthClient.js +51 -4
- package/lib/Planetscale/OAuthClient.js.map +1 -1
- package/lib/Planetscale/Postgres/PostgresDatabase.d.ts.map +1 -1
- package/lib/Planetscale/Postgres/PostgresDatabase.js +30 -5
- package/lib/Planetscale/Postgres/PostgresDatabase.js.map +1 -1
- package/lib/Platform.d.ts.map +1 -1
- package/lib/Platform.js +25 -14
- package/lib/Platform.js.map +1 -1
- package/lib/Prisma/App.d.ts +93 -0
- package/lib/Prisma/App.d.ts.map +1 -0
- package/lib/Prisma/App.js +251 -0
- package/lib/Prisma/App.js.map +1 -0
- package/lib/Prisma/AuthProvider.d.ts +28 -0
- package/lib/Prisma/AuthProvider.d.ts.map +1 -0
- package/lib/Prisma/AuthProvider.js +131 -0
- package/lib/Prisma/AuthProvider.js.map +1 -0
- package/lib/Prisma/Branch.d.ts +96 -0
- package/lib/Prisma/Branch.d.ts.map +1 -0
- package/lib/Prisma/Branch.js +236 -0
- package/lib/Prisma/Branch.js.map +1 -0
- package/lib/Prisma/Client.d.ts +178 -0
- package/lib/Prisma/Client.d.ts.map +1 -0
- package/lib/Prisma/Client.js +562 -0
- package/lib/Prisma/Client.js.map +1 -0
- package/lib/Prisma/Compute.d.ts +585 -0
- package/lib/Prisma/Compute.d.ts.map +1 -0
- package/lib/Prisma/Compute.js +1545 -0
- package/lib/Prisma/Compute.js.map +1 -0
- package/lib/Prisma/ComputeArchive.d.ts +63 -0
- package/lib/Prisma/ComputeArchive.d.ts.map +1 -0
- package/lib/Prisma/ComputeArchive.js +227 -0
- package/lib/Prisma/ComputeArchive.js.map +1 -0
- package/lib/Prisma/ComputeBuild.d.ts +106 -0
- package/lib/Prisma/ComputeBuild.d.ts.map +1 -0
- package/lib/Prisma/ComputeBuild.js +987 -0
- package/lib/Prisma/ComputeBuild.js.map +1 -0
- package/lib/Prisma/ComputeLifecycle.d.ts +84 -0
- package/lib/Prisma/ComputeLifecycle.d.ts.map +1 -0
- package/lib/Prisma/ComputeLifecycle.js +186 -0
- package/lib/Prisma/ComputeLifecycle.js.map +1 -0
- package/lib/Prisma/Connect.d.ts +122 -0
- package/lib/Prisma/Connect.d.ts.map +1 -0
- package/lib/Prisma/Connect.js +187 -0
- package/lib/Prisma/Connect.js.map +1 -0
- package/lib/Prisma/Connection.d.ts +219 -0
- package/lib/Prisma/Connection.d.ts.map +1 -0
- package/lib/Prisma/Connection.js +360 -0
- package/lib/Prisma/Connection.js.map +1 -0
- package/lib/Prisma/CustomDomain.d.ts +91 -0
- package/lib/Prisma/CustomDomain.d.ts.map +1 -0
- package/lib/Prisma/CustomDomain.js +184 -0
- package/lib/Prisma/CustomDomain.js.map +1 -0
- package/lib/Prisma/Database.d.ts +222 -0
- package/lib/Prisma/Database.d.ts.map +1 -0
- package/lib/Prisma/Database.js +418 -0
- package/lib/Prisma/Database.js.map +1 -0
- package/lib/Prisma/Deployment.d.ts +141 -0
- package/lib/Prisma/Deployment.d.ts.map +1 -0
- package/lib/Prisma/Deployment.js +353 -0
- package/lib/Prisma/Deployment.js.map +1 -0
- package/lib/Prisma/EnvironmentVariable.d.ts +105 -0
- package/lib/Prisma/EnvironmentVariable.d.ts.map +1 -0
- package/lib/Prisma/EnvironmentVariable.js +229 -0
- package/lib/Prisma/EnvironmentVariable.js.map +1 -0
- package/lib/Prisma/Internal/AppIdentity.d.ts +10 -0
- package/lib/Prisma/Internal/AppIdentity.d.ts.map +1 -0
- package/lib/Prisma/Internal/AppIdentity.js +6 -0
- package/lib/Prisma/Internal/AppIdentity.js.map +1 -0
- package/lib/Prisma/Internal/AppPromotion.d.ts +19 -0
- package/lib/Prisma/Internal/AppPromotion.d.ts.map +1 -0
- package/lib/Prisma/Internal/AppPromotion.js +107 -0
- package/lib/Prisma/Internal/AppPromotion.js.map +1 -0
- package/lib/Prisma/Internal/ArchivePlatform.d.ts +42 -0
- package/lib/Prisma/Internal/ArchivePlatform.d.ts.map +1 -0
- package/lib/Prisma/Internal/ArchivePlatform.js +214 -0
- package/lib/Prisma/Internal/ArchivePlatform.js.map +1 -0
- package/lib/Prisma/Internal/ArtifactFile.d.ts +58 -0
- package/lib/Prisma/Internal/ArtifactFile.d.ts.map +1 -0
- package/lib/Prisma/Internal/ArtifactFile.js +134 -0
- package/lib/Prisma/Internal/ArtifactFile.js.map +1 -0
- package/lib/Prisma/Internal/ArtifactUpload.d.ts +5 -0
- package/lib/Prisma/Internal/ArtifactUpload.d.ts.map +1 -0
- package/lib/Prisma/Internal/ArtifactUpload.js +51 -0
- package/lib/Prisma/Internal/ArtifactUpload.js.map +1 -0
- package/lib/Prisma/Internal/BundlePaths.d.ts +4 -0
- package/lib/Prisma/Internal/BundlePaths.d.ts.map +1 -0
- package/lib/Prisma/Internal/BundlePaths.js +16 -0
- package/lib/Prisma/Internal/BundlePaths.js.map +1 -0
- package/lib/Prisma/Internal/CleanupFailure.d.ts +8 -0
- package/lib/Prisma/Internal/CleanupFailure.d.ts.map +1 -0
- package/lib/Prisma/Internal/CleanupFailure.js +8 -0
- package/lib/Prisma/Internal/CleanupFailure.js.map +1 -0
- package/lib/Prisma/Internal/DatabaseSecrets.d.ts +35 -0
- package/lib/Prisma/Internal/DatabaseSecrets.d.ts.map +1 -0
- package/lib/Prisma/Internal/DatabaseSecrets.js +85 -0
- package/lib/Prisma/Internal/DatabaseSecrets.js.map +1 -0
- package/lib/Prisma/Internal/DeploymentActions.d.ts +5 -0
- package/lib/Prisma/Internal/DeploymentActions.d.ts.map +1 -0
- package/lib/Prisma/Internal/DeploymentActions.js +16 -0
- package/lib/Prisma/Internal/DeploymentActions.js.map +1 -0
- package/lib/Prisma/Internal/DeploymentIdentity.d.ts +8 -0
- package/lib/Prisma/Internal/DeploymentIdentity.d.ts.map +1 -0
- package/lib/Prisma/Internal/DeploymentIdentity.js +12 -0
- package/lib/Prisma/Internal/DeploymentIdentity.js.map +1 -0
- package/lib/Prisma/Internal/DeploymentObserve.d.ts +3 -0
- package/lib/Prisma/Internal/DeploymentObserve.d.ts.map +1 -0
- package/lib/Prisma/Internal/DeploymentObserve.js +2 -0
- package/lib/Prisma/Internal/DeploymentObserve.js.map +1 -0
- package/lib/Prisma/Internal/EnvName.d.ts +7 -0
- package/lib/Prisma/Internal/EnvName.d.ts.map +1 -0
- package/lib/Prisma/Internal/EnvName.js +23 -0
- package/lib/Prisma/Internal/EnvName.js.map +1 -0
- package/lib/Prisma/Internal/HttpClient.d.ts +21 -0
- package/lib/Prisma/Internal/HttpClient.d.ts.map +1 -0
- package/lib/Prisma/Internal/HttpClient.js +23 -0
- package/lib/Prisma/Internal/HttpClient.js.map +1 -0
- package/lib/Prisma/Operations.d.ts +143 -0
- package/lib/Prisma/Operations.d.ts.map +1 -0
- package/lib/Prisma/Operations.js +75 -0
- package/lib/Prisma/Operations.js.map +1 -0
- package/lib/Prisma/Postgres.d.ts +25 -0
- package/lib/Prisma/Postgres.d.ts.map +1 -0
- package/lib/Prisma/Postgres.js +24 -0
- package/lib/Prisma/Postgres.js.map +1 -0
- package/lib/Prisma/PostgresOrigin.d.ts +31 -0
- package/lib/Prisma/PostgresOrigin.d.ts.map +1 -0
- package/lib/Prisma/PostgresOrigin.js +30 -0
- package/lib/Prisma/PostgresOrigin.js.map +1 -0
- package/lib/Prisma/PrismaDevDatabase.d.ts +25 -0
- package/lib/Prisma/PrismaDevDatabase.d.ts.map +1 -0
- package/lib/Prisma/PrismaDevDatabase.js +280 -0
- package/lib/Prisma/PrismaDevDatabase.js.map +1 -0
- package/lib/Prisma/PrismaEnvironment.d.ts +14 -0
- package/lib/Prisma/PrismaEnvironment.d.ts.map +1 -0
- package/lib/Prisma/PrismaEnvironment.js +50 -0
- package/lib/Prisma/PrismaEnvironment.js.map +1 -0
- package/lib/Prisma/PrismaLogs.d.ts +42 -0
- package/lib/Prisma/PrismaLogs.d.ts.map +1 -0
- package/lib/Prisma/PrismaLogs.js +318 -0
- package/lib/Prisma/PrismaLogs.js.map +1 -0
- package/lib/Prisma/Project.d.ts +123 -0
- package/lib/Prisma/Project.d.ts.map +1 -0
- package/lib/Prisma/Project.js +366 -0
- package/lib/Prisma/Project.js.map +1 -0
- package/lib/Prisma/Providers.d.ts +63 -0
- package/lib/Prisma/Providers.d.ts.map +1 -0
- package/lib/Prisma/Providers.js +306 -0
- package/lib/Prisma/Providers.js.map +1 -0
- package/lib/Prisma/Refs.d.ts +19 -0
- package/lib/Prisma/Refs.d.ts.map +1 -0
- package/lib/Prisma/Refs.js +25 -0
- package/lib/Prisma/Refs.js.map +1 -0
- package/lib/Prisma/SourceRepository.d.ts +127 -0
- package/lib/Prisma/SourceRepository.d.ts.map +1 -0
- package/lib/Prisma/SourceRepository.js +239 -0
- package/lib/Prisma/SourceRepository.js.map +1 -0
- package/lib/Prisma/Types.d.ts +539 -0
- package/lib/Prisma/Types.d.ts.map +1 -0
- package/lib/Prisma/Types.js +13 -0
- package/lib/Prisma/Types.js.map +1 -0
- package/lib/Prisma/index.d.ts +25 -0
- package/lib/Prisma/index.d.ts.map +1 -0
- package/lib/Prisma/index.js +24 -0
- package/lib/Prisma/index.js.map +1 -0
- package/lib/Provider.d.ts +57 -5
- package/lib/Provider.d.ts.map +1 -1
- package/lib/Provider.js +54 -30
- package/lib/Provider.js.map +1 -1
- package/lib/ProviderMode.d.ts +93 -0
- package/lib/ProviderMode.d.ts.map +1 -0
- package/lib/ProviderMode.js +77 -0
- package/lib/ProviderMode.js.map +1 -0
- package/lib/Resource.d.ts +8 -0
- package/lib/Resource.d.ts.map +1 -1
- package/lib/Resource.js +31 -0
- package/lib/Resource.js.map +1 -1
- package/lib/RuntimeContext.d.ts +7 -0
- package/lib/RuntimeContext.d.ts.map +1 -1
- package/lib/RuntimeContext.js.map +1 -1
- package/lib/Server/Process.d.ts +8 -0
- package/lib/Server/Process.d.ts.map +1 -1
- package/lib/Server/Process.js +29 -0
- package/lib/Server/Process.js.map +1 -1
- package/lib/State/InMemoryState.d.ts.map +1 -1
- package/lib/State/InMemoryState.js +2 -0
- package/lib/State/InMemoryState.js.map +1 -1
- package/lib/State/ResourceState.d.ts +18 -0
- package/lib/State/ResourceState.d.ts.map +1 -1
- package/lib/Sync.d.ts.map +1 -1
- package/lib/Sync.js +8 -2
- package/lib/Sync.js.map +1 -1
- package/lib/Telemetry.d.ts +150 -0
- package/lib/Telemetry.d.ts.map +1 -0
- package/lib/Telemetry.js +512 -0
- package/lib/Telemetry.js.map +1 -0
- package/lib/Test/Alchemy.d.ts.map +1 -1
- package/lib/Test/Alchemy.js +3 -1
- package/lib/Test/Alchemy.js.map +1 -1
- package/lib/Test/Core.d.ts +2 -2
- package/lib/Test/Core.d.ts.map +1 -1
- package/lib/Test/Core.js +1 -8
- package/lib/Test/Core.js.map +1 -1
- package/lib/Util/Clank.d.ts +11 -6
- package/lib/Util/Clank.d.ts.map +1 -1
- package/lib/Util/Clank.js +22 -9
- package/lib/Util/Clank.js.map +1 -1
- package/lib/Util/zip.d.ts +11 -0
- package/lib/Util/zip.d.ts.map +1 -1
- package/lib/Util/zip.js +30 -0
- package/lib/Util/zip.js.map +1 -1
- package/lib/index.d.ts +3 -0
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +3 -0
- package/lib/index.js.map +1 -1
- package/package.json +46 -13
- package/src/AWS/ApiGateway/common.ts +9 -0
- package/src/AWS/Bedrock/LanguageModel.ts +883 -0
- package/src/AWS/Bedrock/LanguageModelHttp.ts +36 -0
- package/src/AWS/Bedrock/index.ts +2 -0
- package/src/AWS/CloudFront/Distribution.ts +116 -6
- package/src/AWS/CostExplorer/common.ts +23 -2
- package/src/AWS/DataSync/Task.ts +30 -15
- package/src/AWS/EC2/Vpc.ts +35 -21
- package/src/AWS/EC2/hosted.ts +10 -2
- package/src/AWS/ECR/ImageSource.ts +10 -2
- package/src/AWS/ECR/Repository.ts +39 -4
- package/src/AWS/ECS/Service.ts +322 -22
- package/src/AWS/ECS/Task.ts +82 -32
- package/src/AWS/EKS/Deployment.ts +10 -2
- package/src/AWS/EKS/Job.ts +10 -2
- package/src/AWS/Lambda/Function.ts +101 -43
- package/src/AWS/Lambda/HttpServer.ts +7 -1
- package/src/AWS/Lambda/LayerVersion.ts +490 -0
- package/src/AWS/Lambda/MicrovmBundle.ts +10 -2
- package/src/AWS/Lambda/index.ts +1 -0
- package/src/AWS/Providers.ts +10 -0
- package/src/AWS/SES/ActiveReceiptRuleSet.ts +88 -0
- package/src/AWS/SES/ReceiptFilter.ts +169 -0
- package/src/AWS/SES/ReceiptRule.ts +300 -0
- package/src/AWS/SES/ReceiptRuleSet.ts +164 -0
- package/src/AWS/SES/SendBounce.ts +44 -0
- package/src/AWS/SES/SendBounceHttp.ts +13 -0
- package/src/AWS/SES/index.ts +6 -0
- package/src/AWS/StateStore/State.ts +159 -42
- package/src/Apply.ts +199 -83
- package/src/Axiom/Telemetry.ts +119 -0
- package/src/Axiom/index.ts +1 -0
- package/src/Bundle/Bundle.ts +17 -7
- package/src/Bundle/BundleAnalyzerPlugin.ts +9 -4
- package/src/Bundle/PurePlugin.ts +19 -9
- package/src/Cli/checkVersion.ts +102 -16
- package/src/Cli/commands/_shared.ts +2 -0
- package/src/Cli/commands/deploy.ts +3 -14
- package/src/Cli/commands/logs.ts +6 -1
- package/src/Cli/commands/tail.ts +6 -1
- package/src/Cli/main.ts +5 -4
- package/src/Cloudflare/AI/Search.ts +4 -18
- package/src/Cloudflare/AI/SearchInstance.ts +7 -26
- package/src/Cloudflare/ApiToken/AccountApiToken.ts +3 -0
- package/src/Cloudflare/Auth/AuthProvider.ts +17 -3
- package/src/Cloudflare/Auth/OAuthClient.ts +58 -2
- package/src/Cloudflare/Containers/Container.ts +92 -3
- package/src/Cloudflare/Containers/ContainerApplication.ts +31 -5
- package/src/Cloudflare/Containers/ContainerBundle.ts +10 -2
- package/src/Cloudflare/Containers/ContainerProvider.ts +62 -0
- package/src/Cloudflare/Credentials.ts +69 -9
- package/src/Cloudflare/D1/ApplyMigrations.ts +72 -77
- package/src/Cloudflare/D1/Database.ts +169 -2
- package/src/Cloudflare/D1/LocalD1Gateway.ts +150 -0
- package/src/Cloudflare/D1/QueryDatabaseHttpClient.ts +49 -11
- package/src/Cloudflare/D1/QueryDatabaseLocal.ts +44 -2
- package/src/Cloudflare/DNS/Record.ts +30 -4
- package/src/Cloudflare/Email/Address.ts +18 -1
- package/src/Cloudflare/Email/SendBinding.ts +1 -0
- package/src/Cloudflare/Email/SendEmail.ts +13 -0
- package/src/Cloudflare/Flagship/App.ts +18 -6
- package/src/Cloudflare/KV/LocalKVGateway.ts +86 -0
- package/src/Cloudflare/KV/Namespace.ts +47 -1
- package/src/Cloudflare/KV/NamespaceLocal.ts +29 -6
- package/src/Cloudflare/KV/ReadNamespaceLocal.ts +5 -1
- package/src/Cloudflare/KV/ReadWriteNamespaceLocal.ts +5 -1
- package/src/Cloudflare/KV/WriteNamespaceLocal.ts +5 -1
- package/src/Cloudflare/LocalGateway.ts +86 -0
- package/src/Cloudflare/LocalRuntime.ts +21 -1
- package/src/Cloudflare/Logs.ts +58 -28
- package/src/Cloudflare/Providers.ts +4 -2
- package/src/Cloudflare/Queues/Consumer.ts +70 -2
- package/src/Cloudflare/Queues/Queue.ts +7 -16
- package/src/Cloudflare/Queues/QueueBinding.ts +21 -0
- package/src/Cloudflare/Queues/QueueShim.ts +193 -0
- package/src/Cloudflare/R2/Bucket.ts +55 -1
- package/src/Cloudflare/R2/BucketBinding.ts +17 -3
- package/src/Cloudflare/R2/BucketLocal.ts +25 -8
- package/src/Cloudflare/R2/LocalR2Gateway.ts +84 -0
- package/src/Cloudflare/R2/ReadBucketLocal.ts +7 -1
- package/src/Cloudflare/R2/ReadWriteBucketLocal.ts +7 -1
- package/src/Cloudflare/R2/WriteBucketLocal.ts +7 -1
- package/src/Cloudflare/Ruleset/AccountEntrypoint.ts +5 -1
- package/src/Cloudflare/Ruleset/Ruleset.ts +20 -6
- package/src/Cloudflare/Rum/Site.ts +11 -4
- package/src/Cloudflare/StateStore/Api.ts +1 -1
- package/src/Cloudflare/Tunnel/Tunnel.ts +23 -1
- package/src/Cloudflare/Website/StaticSite.ts +117 -28
- package/src/Cloudflare/Website/Vite.ts +33 -19
- package/src/Cloudflare/Workers/Compatibility.ts +27 -7
- package/src/Cloudflare/Workers/DurableObject.ts +22 -0
- package/src/Cloudflare/Workers/DurableObjectBridge.ts +29 -10
- package/src/Cloudflare/Workers/InferEnv.ts +74 -59
- package/src/Cloudflare/Workers/LocalWorkerProvider.ts +619 -401
- package/src/Cloudflare/Workers/Worker.ts +676 -28
- package/src/Cloudflare/Workers/WorkerAsyncBindings.ts +209 -25
- package/src/Cloudflare/Workers/WorkerBinding.ts +67 -3
- package/src/Cloudflare/Workers/WorkerBridge.ts +26 -4
- package/src/Cloudflare/Workers/WorkerBundle.ts +6 -1
- package/src/Cloudflare/Workers/WorkerProvider.ts +2269 -277
- package/src/Cloudflare/Workflows/WorkflowBridge.ts +31 -13
- package/src/Command/Build.ts +8 -8
- package/src/Command/Command.ts +217 -42
- package/src/Command/Dev.ts +79 -107
- package/src/Command/Exec.ts +11 -2
- package/src/Command/Memo.ts +27 -3
- package/src/Command/Redaction.ts +181 -0
- package/src/Destroy.ts +1 -10
- package/src/Docker/Container.ts +55 -15
- package/src/Docker/Context.ts +236 -0
- package/src/Docker/Docker.ts +393 -43
- package/src/Docker/Image.ts +28 -7
- package/src/Docker/Network.ts +38 -14
- package/src/Docker/Providers.ts +16 -1
- package/src/Docker/RemoteImage.ts +23 -7
- package/src/Docker/Service.ts +1119 -0
- package/src/Docker/ServiceImage.ts +331 -0
- package/src/Docker/Swarm.ts +226 -0
- package/src/Docker/Volume.ts +25 -6
- package/src/Docker/index.ts +3 -0
- package/src/Http.ts +15 -2
- package/src/Local/LocalProvider.ts +518 -0
- package/src/Local/ProviderLayer.ts +113 -11
- package/src/Local/RpcProvider.ts +10 -5
- package/src/Local/RpcProviderProxy.ts +4 -1
- package/src/Local/RpcServer.ts +20 -2
- package/src/Plan.ts +182 -54
- package/src/Planetscale/AuthProvider.ts +15 -2
- package/src/Planetscale/Branch.ts +39 -6
- package/src/Planetscale/MySQL/MySQLDatabase.ts +34 -6
- package/src/Planetscale/OAuthClient.ts +59 -3
- package/src/Planetscale/Postgres/PostgresDatabase.ts +33 -5
- package/src/Platform.ts +29 -17
- package/src/Prisma/App.ts +433 -0
- package/src/Prisma/AuthProvider.ts +260 -0
- package/src/Prisma/Branch.ts +417 -0
- package/src/Prisma/Client.ts +1337 -0
- package/src/Prisma/Compute.ts +2878 -0
- package/src/Prisma/ComputeArchive.ts +432 -0
- package/src/Prisma/ComputeBuild.ts +1652 -0
- package/src/Prisma/ComputeLifecycle.ts +391 -0
- package/src/Prisma/Connect.ts +433 -0
- package/src/Prisma/Connection.ts +643 -0
- package/src/Prisma/CustomDomain.ts +373 -0
- package/src/Prisma/Database.ts +850 -0
- package/src/Prisma/Deployment.ts +661 -0
- package/src/Prisma/EnvironmentVariable.ts +417 -0
- package/src/Prisma/Internal/AppIdentity.ts +19 -0
- package/src/Prisma/Internal/AppPromotion.ts +172 -0
- package/src/Prisma/Internal/ArchivePlatform.ts +320 -0
- package/src/Prisma/Internal/ArtifactFile.ts +242 -0
- package/src/Prisma/Internal/ArtifactUpload.ts +86 -0
- package/src/Prisma/Internal/BundlePaths.ts +28 -0
- package/src/Prisma/Internal/CleanupFailure.ts +17 -0
- package/src/Prisma/Internal/DatabaseSecrets.ts +175 -0
- package/src/Prisma/Internal/DeploymentActions.ts +59 -0
- package/src/Prisma/Internal/DeploymentIdentity.ts +25 -0
- package/src/Prisma/Internal/DeploymentObserve.ts +6 -0
- package/src/Prisma/Internal/EnvName.ts +24 -0
- package/src/Prisma/Internal/HttpClient.ts +30 -0
- package/src/Prisma/Operations.ts +259 -0
- package/src/Prisma/Postgres.ts +25 -0
- package/src/Prisma/PostgresOrigin.ts +52 -0
- package/src/Prisma/PrismaDevDatabase.ts +395 -0
- package/src/Prisma/PrismaEnvironment.ts +89 -0
- package/src/Prisma/PrismaLogs.ts +434 -0
- package/src/Prisma/Project.ts +687 -0
- package/src/Prisma/Providers.ts +471 -0
- package/src/Prisma/Refs.ts +69 -0
- package/src/Prisma/SourceRepository.ts +455 -0
- package/src/Prisma/Types.ts +611 -0
- package/src/Prisma/index.ts +24 -0
- package/src/Provider.ts +155 -39
- package/src/ProviderMode.ts +123 -0
- package/src/Resource.ts +46 -0
- package/src/RuntimeContext.ts +7 -0
- package/src/Server/Process.ts +33 -0
- package/src/State/InMemoryState.ts +2 -0
- package/src/State/ResourceState.ts +18 -0
- package/src/Sync.ts +14 -2
- package/src/Telemetry.ts +736 -0
- package/src/Test/Alchemy.ts +3 -1
- package/src/Test/Core.ts +1 -8
- package/src/Util/Clank.ts +37 -11
- package/src/Util/zip.ts +39 -0
- package/src/index.ts +3 -0
|
@@ -6,6 +6,7 @@ import { AUTH_ERROR_URL, AUTH_SUCCESS_URL } from "../../Auth/AuthProvider.ts";
|
|
|
6
6
|
import {
|
|
7
7
|
OAUTH_CLIENT_ID,
|
|
8
8
|
OAUTH_ENDPOINTS,
|
|
9
|
+
OAUTH_LOCAL_CALLBACK_URI,
|
|
9
10
|
OAUTH_REDIRECT_URI,
|
|
10
11
|
} from "./AuthProvider.ts";
|
|
11
12
|
|
|
@@ -187,6 +188,46 @@ export const revoke = (
|
|
|
187
188
|
});
|
|
188
189
|
});
|
|
189
190
|
|
|
191
|
+
/**
|
|
192
|
+
* Exchange a code copied from the hosted relay page, or extract the code from
|
|
193
|
+
* either the hosted or loopback callback URL.
|
|
194
|
+
*/
|
|
195
|
+
export const exchangeCallbackInput = (
|
|
196
|
+
input: string,
|
|
197
|
+
authorization: Authorization,
|
|
198
|
+
): Effect.Effect<OAuthCredentials, OAuthError> =>
|
|
199
|
+
Effect.gen(function* () {
|
|
200
|
+
const value = input.trim();
|
|
201
|
+
let code = value;
|
|
202
|
+
let state: string | null = null;
|
|
203
|
+
|
|
204
|
+
try {
|
|
205
|
+
const url = new URL(value);
|
|
206
|
+
code = url.searchParams.get("code") ?? "";
|
|
207
|
+
state = url.searchParams.get("state");
|
|
208
|
+
} catch {
|
|
209
|
+
const separator = value.lastIndexOf("#");
|
|
210
|
+
if (separator >= 0) {
|
|
211
|
+
code = value.slice(0, separator);
|
|
212
|
+
state = value.slice(separator + 1);
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
if (!code) {
|
|
217
|
+
return yield* new OAuthError({
|
|
218
|
+
error: "invalid_request",
|
|
219
|
+
errorDescription: "The authorization code is missing.",
|
|
220
|
+
});
|
|
221
|
+
}
|
|
222
|
+
if (state !== null && state !== authorization.state) {
|
|
223
|
+
return yield* new OAuthError({
|
|
224
|
+
error: "invalid_request",
|
|
225
|
+
errorDescription: "The authorization state does not match.",
|
|
226
|
+
});
|
|
227
|
+
}
|
|
228
|
+
return yield* exchange(code, authorization.verifier);
|
|
229
|
+
});
|
|
230
|
+
|
|
190
231
|
/**
|
|
191
232
|
* Start a local HTTP server to listen for the OAuth callback, exchange
|
|
192
233
|
* the authorization code, and return the credentials.
|
|
@@ -197,7 +238,7 @@ export const callback = (
|
|
|
197
238
|
authorization: Authorization,
|
|
198
239
|
): Effect.Effect<OAuthCredentials, OAuthError> =>
|
|
199
240
|
Effect.tryPromise({
|
|
200
|
-
try: () => callbackPromise(authorization),
|
|
241
|
+
try: (signal) => callbackPromise(authorization, signal),
|
|
201
242
|
catch: (err) => {
|
|
202
243
|
if (err instanceof OAuthError) return err;
|
|
203
244
|
return new OAuthError({
|
|
@@ -209,13 +250,25 @@ export const callback = (
|
|
|
209
250
|
|
|
210
251
|
function callbackPromise(
|
|
211
252
|
authorization: Authorization,
|
|
253
|
+
signal: AbortSignal,
|
|
212
254
|
): Promise<OAuthCredentials> {
|
|
213
|
-
const { pathname, port } = new URL(
|
|
255
|
+
const { pathname, port } = new URL(OAUTH_LOCAL_CALLBACK_URI);
|
|
214
256
|
|
|
215
257
|
return new Promise<OAuthCredentials>((resolve, reject) => {
|
|
216
258
|
const server = http.createServer(async (req, res) => {
|
|
217
259
|
const url = new URL(req.url ?? "/", `http://${req.headers.host}`);
|
|
218
260
|
|
|
261
|
+
if (url.pathname === "/auth/ping") {
|
|
262
|
+
res.writeHead(req.method === "OPTIONS" ? 204 : 200, {
|
|
263
|
+
"Access-Control-Allow-Origin": new URL(OAUTH_REDIRECT_URI).origin,
|
|
264
|
+
"Access-Control-Allow-Methods": "GET, OPTIONS",
|
|
265
|
+
"Access-Control-Allow-Private-Network": "true",
|
|
266
|
+
"Cache-Control": "no-store",
|
|
267
|
+
});
|
|
268
|
+
res.end();
|
|
269
|
+
return;
|
|
270
|
+
}
|
|
271
|
+
|
|
219
272
|
if (url.pathname !== pathname) {
|
|
220
273
|
res.statusCode = 404;
|
|
221
274
|
res.end("Not Found");
|
|
@@ -296,9 +349,12 @@ function callbackPromise(
|
|
|
296
349
|
|
|
297
350
|
function cleanup() {
|
|
298
351
|
clearTimeout(timeout);
|
|
352
|
+
signal.removeEventListener("abort", cleanup);
|
|
299
353
|
server.close();
|
|
300
354
|
}
|
|
301
355
|
|
|
356
|
+
signal.addEventListener("abort", cleanup, { once: true });
|
|
357
|
+
|
|
302
358
|
server.on("error", (err) => {
|
|
303
359
|
cleanup();
|
|
304
360
|
reject(
|
|
@@ -189,6 +189,66 @@ export type Container<Id extends string = string> = Named<Id> & {
|
|
|
189
189
|
* );
|
|
190
190
|
* ```
|
|
191
191
|
*
|
|
192
|
+
* @section Async Workers
|
|
193
|
+
* An async Worker can host a container-backed Durable Object class that
|
|
194
|
+
* ships as plain JavaScript — `@cloudflare/sandbox`'s `Sandbox`, or your
|
|
195
|
+
* own class extending `@cloudflare/containers`' `Container`. The class
|
|
196
|
+
* lives in the worker script; `Container` (the npm one) handles the
|
|
197
|
+
* lifecycle and forwards `fetch` to the port inside the container.
|
|
198
|
+
*
|
|
199
|
+
* @example The worker script exports the container-backed class
|
|
200
|
+
* ```typescript
|
|
201
|
+
* // src/worker.ts
|
|
202
|
+
* import { Container } from "@cloudflare/containers";
|
|
203
|
+
*
|
|
204
|
+
* export class Sandbox extends Container {
|
|
205
|
+
* defaultPort = 8080;
|
|
206
|
+
* }
|
|
207
|
+
* ```
|
|
208
|
+
*
|
|
209
|
+
* Declare it in the stack by binding a `Cloudflare.Container` in the
|
|
210
|
+
* Worker's `env` — the Container **is** the Durable Object binding and its
|
|
211
|
+
* ContainerApplication together. Alchemy emits the
|
|
212
|
+
* `durable_object_namespace` binding, marks the class as container-backed
|
|
213
|
+
* in the script metadata, provisions the ContainerApplication, and attaches
|
|
214
|
+
* it to the class's namespace. The Durable Object class name defaults to
|
|
215
|
+
* the binding name (the `env` key); set `className` when the exported class
|
|
216
|
+
* is named differently.
|
|
217
|
+
*
|
|
218
|
+
* @example Binding the container-backed class in the stack
|
|
219
|
+
* ```typescript
|
|
220
|
+
* // alchemy.run.ts
|
|
221
|
+
* import type { Sandbox } from "./src/worker.ts";
|
|
222
|
+
*
|
|
223
|
+
* export const Worker = Cloudflare.Worker("Worker", {
|
|
224
|
+
* main: "./src/worker.ts",
|
|
225
|
+
* env: {
|
|
226
|
+
* Sandbox: Cloudflare.Container<Sandbox>("Sandbox", {
|
|
227
|
+
* image: "docker.io/cloudflare/sandbox:0.1.3",
|
|
228
|
+
* }),
|
|
229
|
+
* },
|
|
230
|
+
* });
|
|
231
|
+
* ```
|
|
232
|
+
*
|
|
233
|
+
* The type parameter (`Container<Sandbox>`) is the class from `worker.ts` —
|
|
234
|
+
* it types `env.Sandbox` as `DurableObjectNamespace<Sandbox>` via
|
|
235
|
+
* `Cloudflare.InferEnv`, so the handler reaches the container with full
|
|
236
|
+
* types.
|
|
237
|
+
*
|
|
238
|
+
* @example Reaching the container from the async handler
|
|
239
|
+
* ```typescript
|
|
240
|
+
* // src/worker.ts
|
|
241
|
+
* import { getContainer } from "@cloudflare/containers";
|
|
242
|
+
* import type * as Cloudflare from "alchemy/Cloudflare";
|
|
243
|
+
* import type { Worker } from "../alchemy.run.ts";
|
|
244
|
+
*
|
|
245
|
+
* export default {
|
|
246
|
+
* async fetch(request: Request, env: Cloudflare.InferEnv<typeof Worker>) {
|
|
247
|
+
* return getContainer(env.Sandbox, "default").fetch(request);
|
|
248
|
+
* },
|
|
249
|
+
* };
|
|
250
|
+
* ```
|
|
251
|
+
*
|
|
192
252
|
* @section Image Sources
|
|
193
253
|
* A container's image comes from one of three sources, picked by which
|
|
194
254
|
* prop you set:
|
|
@@ -370,12 +430,12 @@ export type Container<Id extends string = string> = Named<Id> & {
|
|
|
370
430
|
* ```
|
|
371
431
|
*/
|
|
372
432
|
export const Container: ResourceClassLike<ContainerApplication> & {
|
|
373
|
-
<const Id extends string>(
|
|
433
|
+
<DOShape = unknown, const Id extends string = string>(
|
|
374
434
|
id: Id,
|
|
375
435
|
props:
|
|
376
436
|
| InputProps<ExternalContainerProps>
|
|
377
437
|
| InputProps<RemoteContainerProps>,
|
|
378
|
-
): Container.Decl<Container<Id>, {}, Id>;
|
|
438
|
+
): Container.Decl<Container<Id>, {}, Id, never, DOShape>;
|
|
379
439
|
<Self>(): {
|
|
380
440
|
<
|
|
381
441
|
const Id extends string,
|
|
@@ -404,6 +464,11 @@ export const Container: ResourceClassLike<ContainerApplication> & {
|
|
|
404
464
|
// registers the DO + Worker bindings and produces the runtime
|
|
405
465
|
// handle) is stashed so `startContainer` can run it from inside that
|
|
406
466
|
// layer — see ContainerPlatform.bind / StartContainer.ts.
|
|
467
|
+
// NOTE: no `~alchemy/Container/ClassName` marker here — an
|
|
468
|
+
// effectful (`main`) container is not bindable on an async
|
|
469
|
+
// Worker's `env` (its application is created by the `.make()`
|
|
470
|
+
// Layer inside an Effect-native Durable Object host), so it must
|
|
471
|
+
// not be picked up by bindWorkerAsyncBindings' container branch.
|
|
407
472
|
return Object.assign(effectClass(ContainerTag(id)), {
|
|
408
473
|
"~alchemy/Id": id,
|
|
409
474
|
"~alchemy/Container/Binding": ContainerPlatform.bind(tag),
|
|
@@ -422,6 +487,11 @@ export const Container: ResourceClassLike<ContainerApplication> & {
|
|
|
422
487
|
return Object.assign(effectClass(ContainerTag(id)), {
|
|
423
488
|
"~alchemy/Id": id,
|
|
424
489
|
"~alchemy/Container/Binding": ContainerPlatform.bind(resource),
|
|
490
|
+
// The Durable Object class name this container backs when bound on
|
|
491
|
+
// an async Worker's `env` (see bindWorkerAsyncBindings). Defaults to
|
|
492
|
+
// the binding name at bind time when no explicit `className` is set.
|
|
493
|
+
"~alchemy/Container/ClassName": (props as { className?: string })
|
|
494
|
+
?.className,
|
|
425
495
|
// yield* MyContainer.Application to get the ContainerApplication Resource Outputs
|
|
426
496
|
Application: resource,
|
|
427
497
|
of: (shape: any) => shape,
|
|
@@ -439,9 +509,28 @@ export declare namespace Container {
|
|
|
439
509
|
Shape = any,
|
|
440
510
|
Id extends string = string,
|
|
441
511
|
Req = never,
|
|
512
|
+
DOShape = unknown,
|
|
442
513
|
>
|
|
443
514
|
extends Effect.Effect<Self, never, Providers | Req>, Rpc<Shape>, Named<Id> {
|
|
444
515
|
new (): Container<Id> & Shape;
|
|
516
|
+
/**
|
|
517
|
+
* @internal phantom — the Durable Object class type backing this
|
|
518
|
+
* container when it is bound on an async Worker's `env`. Drives
|
|
519
|
+
* `InferEnv` (`env.NAME` becomes `DurableObjectNamespace<DOShape>`).
|
|
520
|
+
*/
|
|
521
|
+
readonly "~alchemy/Container/Shape": DOShape;
|
|
522
|
+
/**
|
|
523
|
+
* @internal — the explicit `className` from props (`undefined` defaults
|
|
524
|
+
* to the binding name at bind time). Doubles as the runtime marker that
|
|
525
|
+
* identifies an async-bindable Container declaration in a Worker's `env`
|
|
526
|
+
* (see `bindWorkerAsyncBindings`).
|
|
527
|
+
*/
|
|
528
|
+
readonly "~alchemy/Container/ClassName": string | undefined;
|
|
529
|
+
/**
|
|
530
|
+
* The underlying {@link ContainerApplication} resource declaration —
|
|
531
|
+
* `yield*` it to get the application's Output attributes.
|
|
532
|
+
*/
|
|
533
|
+
Application: Effect.Effect<ContainerApplication<Self>, never, Providers>;
|
|
445
534
|
make: <InitReq = never, WorkerReq = never, PropsReq = never>(
|
|
446
535
|
props:
|
|
447
536
|
| InputProps<EffectfulContainerProps>
|
|
@@ -459,7 +548,7 @@ export declare namespace Container {
|
|
|
459
548
|
of(shape: Shape & WorkerShape): Shape;
|
|
460
549
|
}
|
|
461
550
|
export namespace Decl {
|
|
462
|
-
export type Any = Decl<any, any, string, any>;
|
|
551
|
+
export type Any = Decl<any, any, string, any, any>;
|
|
463
552
|
}
|
|
464
553
|
|
|
465
554
|
export interface Application<Self> {
|
|
@@ -78,6 +78,13 @@ export interface ContainerApplicationPropsBase extends PlatformProps {
|
|
|
78
78
|
* physical name from the stack, stage, and logical ID.
|
|
79
79
|
*/
|
|
80
80
|
name?: string;
|
|
81
|
+
/**
|
|
82
|
+
* Name of the exported Durable Object class this container backs when the
|
|
83
|
+
* Container is bound on an **async** Worker's `env`. Defaults to the
|
|
84
|
+
* binding name (the `env` key). Ignored by the Effect-native path, where
|
|
85
|
+
* the class name comes from the hosting Durable Object.
|
|
86
|
+
*/
|
|
87
|
+
className?: string;
|
|
81
88
|
/**
|
|
82
89
|
* Initial number of instances to maintain. Matches wrangler, which forces
|
|
83
90
|
* this to 0 whenever {@link maxInstances} is set (pure scale-from-zero).
|
|
@@ -286,6 +293,12 @@ export interface RemoteContainerProps extends ContainerApplicationPropsBase {
|
|
|
286
293
|
* The pre-built image to pull and re-push.
|
|
287
294
|
*
|
|
288
295
|
* E.g. `ghcr.io/alpine/alpine:latest`
|
|
296
|
+
*
|
|
297
|
+
* When the reference already points at the target registry (the
|
|
298
|
+
* {@link ContainerApplicationPropsBase.registryId | registryId} host,
|
|
299
|
+
* `registry.cloudflare.com` by default) — e.g. a digest reference pushed
|
|
300
|
+
* by CI like `registry.cloudflare.com/<accountId>/app@sha256:...` — it is
|
|
301
|
+
* deployed as-is and the docker pull/push round-trip is skipped entirely.
|
|
289
302
|
*/
|
|
290
303
|
image: string;
|
|
291
304
|
}
|
|
@@ -600,7 +613,15 @@ export type ContainerShape = Main<ContainerServices>;
|
|
|
600
613
|
*
|
|
601
614
|
* A `rolling` strategy with `stepPercentage: 25` replaces instances in 25%
|
|
602
615
|
* increments so the application stays available during the update; the default
|
|
603
|
-
* `immediate` strategy swaps everything at once.
|
|
616
|
+
* `immediate` strategy swaps everything at once. Steps advance automatically
|
|
617
|
+
* as new instances become healthy; each replaced instance receives `SIGTERM`
|
|
618
|
+
* and has 15 minutes to shut down cleanly before `SIGKILL`.
|
|
619
|
+
*
|
|
620
|
+
* Rollouts replace instances — they do not split requests between two image
|
|
621
|
+
* versions (request-level traffic splitting exists one layer up, on the
|
|
622
|
+
* Worker, via `version.traffic`). The fronting Worker and Durable Object cut
|
|
623
|
+
* over immediately while instances roll, so keep the Worker-to-container
|
|
624
|
+
* protocol compatible across both image versions until a rollout completes.
|
|
604
625
|
*/
|
|
605
626
|
export interface ContainerApplication<Shape = unknown> extends Resource<
|
|
606
627
|
ContainerTypeId,
|
|
@@ -715,7 +736,12 @@ export declare namespace DevContainerImage {
|
|
|
715
736
|
}
|
|
716
737
|
|
|
717
738
|
export const ContainerProvider = () =>
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
|
|
739
|
+
// `{ Type }` instead of `ContainerPlatform` — importing the platform here
|
|
740
|
+
// would create a module cycle (ContainerPlatform.ts imports this file).
|
|
741
|
+
ProviderLayer.dual(
|
|
742
|
+
{ Type: ContainerTypeId },
|
|
743
|
+
{
|
|
744
|
+
live: () => LiveContainerProvider(),
|
|
745
|
+
local: () => LocalContainerProvider(),
|
|
746
|
+
},
|
|
747
|
+
);
|
|
@@ -338,6 +338,7 @@ const HttpServer = NodeHttpServer;
|
|
|
338
338
|
}
|
|
339
339
|
import { Stack } from "alchemy/Stack";
|
|
340
340
|
import { makeEntrypointLayer, reifyBoundConfigProvider } from "alchemy/Runtime";
|
|
341
|
+
import { provideProcessTelemetry } from "alchemy/Telemetry";
|
|
341
342
|
import { CloudflareEnvironment } from "alchemy/Cloudflare";
|
|
342
343
|
import * as ConfigProvider from "effect/ConfigProvider";
|
|
343
344
|
import * as Effect from "effect/Effect";
|
|
@@ -367,8 +368,15 @@ const stack = Layer.succeed(Stack, {
|
|
|
367
368
|
});
|
|
368
369
|
|
|
369
370
|
const serverEffect = tag.pipe(
|
|
370
|
-
|
|
371
|
-
|
|
371
|
+
// Process-lifetime telemetry: built once into the root scope; exporters
|
|
372
|
+
// batch on their intervals and flush when the scope closes on graceful
|
|
373
|
+
// shutdown.
|
|
374
|
+
Effect.flatMap((func) =>
|
|
375
|
+
func.RuntimeContext.exports.pipe(
|
|
376
|
+
Effect.flatMap((exports) => exports.default),
|
|
377
|
+
provideProcessTelemetry(func.RuntimeContext),
|
|
378
|
+
),
|
|
379
|
+
),
|
|
372
380
|
Effect.provide(
|
|
373
381
|
layer.pipe(
|
|
374
382
|
Layer.provideMerge(stack),
|
|
@@ -40,6 +40,8 @@ import { ContainerPlatform } from "./ContainerPlatform.ts";
|
|
|
40
40
|
* - `effectful` — bundle an Effect-native `main` and build a generated image.
|
|
41
41
|
* - `external` — build a user-supplied Dockerfile against a context directory.
|
|
42
42
|
* - `remote` — pull a pre-built remote image and re-push it to Cloudflare.
|
|
43
|
+
* - `prepushed` — the image already lives in the target registry; use the
|
|
44
|
+
* reference as-is with no docker pull/build/push at all.
|
|
43
45
|
*/
|
|
44
46
|
type ImageBuild =
|
|
45
47
|
| {
|
|
@@ -54,8 +56,40 @@ type ImageBuild =
|
|
|
54
56
|
| {
|
|
55
57
|
readonly kind: "remote";
|
|
56
58
|
readonly image: string;
|
|
59
|
+
}
|
|
60
|
+
| {
|
|
61
|
+
readonly kind: "prepushed";
|
|
62
|
+
readonly image: string;
|
|
57
63
|
};
|
|
58
64
|
|
|
65
|
+
/**
|
|
66
|
+
* Whether an image reference already points at the target registry host —
|
|
67
|
+
* e.g. `registry.cloudflare.com/<accountId>/repo@sha256:...` pushed by CI.
|
|
68
|
+
* Such references are deployed as-is; there is nothing to pull or push.
|
|
69
|
+
*/
|
|
70
|
+
const isTargetRegistryRef = (image: string, registryId: string) =>
|
|
71
|
+
image.startsWith(`${registryId}/`);
|
|
72
|
+
|
|
73
|
+
/**
|
|
74
|
+
* Insert the account namespace into a Cloudflare-registry reference that
|
|
75
|
+
* omits it (`registry.cloudflare.com/app:tag` →
|
|
76
|
+
* `registry.cloudflare.com/<accountId>/app:tag`), mirroring wrangler's
|
|
77
|
+
* `resolveImageName`. Custom registries are left untouched — the account
|
|
78
|
+
* namespace rule is specific to Cloudflare's managed registry.
|
|
79
|
+
*/
|
|
80
|
+
const normalizePrepushedRef = (
|
|
81
|
+
image: string,
|
|
82
|
+
registryId: string,
|
|
83
|
+
accountId: string,
|
|
84
|
+
) => {
|
|
85
|
+
if (registryId !== "registry.cloudflare.com") return image;
|
|
86
|
+
const rest = image.slice(registryId.length + 1);
|
|
87
|
+
const first = rest.split("/")[0];
|
|
88
|
+
return first !== undefined && /^[a-f0-9]{32}$/.test(first)
|
|
89
|
+
? image
|
|
90
|
+
: `${registryId}/${accountId}/${rest}`;
|
|
91
|
+
};
|
|
92
|
+
|
|
59
93
|
export const LiveContainerProvider = () =>
|
|
60
94
|
Provider.effect(
|
|
61
95
|
ContainerPlatform,
|
|
@@ -233,6 +267,25 @@ export const LiveContainerProvider = () =>
|
|
|
233
267
|
const imageHash = (yield* sha256Object({
|
|
234
268
|
image: props.image,
|
|
235
269
|
})).slice(0, 16);
|
|
270
|
+
// Already in the target registry (e.g. pushed by CI as a digest
|
|
271
|
+
// reference) — deploy the reference as-is and skip the docker
|
|
272
|
+
// pull/tag/push round-trip entirely.
|
|
273
|
+
if (isTargetRegistryRef(props.image, registryId)) {
|
|
274
|
+
const prepushedRef = normalizePrepushedRef(
|
|
275
|
+
props.image,
|
|
276
|
+
registryId,
|
|
277
|
+
accountId,
|
|
278
|
+
);
|
|
279
|
+
return {
|
|
280
|
+
build: { kind: "prepushed" as const, image: prepushedRef },
|
|
281
|
+
imageRef: prepushedRef,
|
|
282
|
+
imageHash,
|
|
283
|
+
// The local runtime pulls this image directly (no build
|
|
284
|
+
// context); pulling from the Cloudflare registry requires a
|
|
285
|
+
// local `docker login`.
|
|
286
|
+
dev: { imageUri: prepushedRef, env },
|
|
287
|
+
};
|
|
288
|
+
}
|
|
236
289
|
return {
|
|
237
290
|
build: { kind: "remote" as const, image: props.image },
|
|
238
291
|
imageRef: makeRef(imageHash),
|
|
@@ -311,6 +364,15 @@ export const LiveContainerProvider = () =>
|
|
|
311
364
|
const { accountId } = yield* yield* CloudflareEnvironment;
|
|
312
365
|
const platform = "linux/amd64";
|
|
313
366
|
|
|
367
|
+
if (build.kind === "prepushed") {
|
|
368
|
+
// The reference already lives in the target registry — nothing to
|
|
369
|
+
// pull, build, or push.
|
|
370
|
+
yield* Effect.logInfo(
|
|
371
|
+
`Cloudflare Container image: using pre-pushed ${imageRef}`,
|
|
372
|
+
);
|
|
373
|
+
return;
|
|
374
|
+
}
|
|
375
|
+
|
|
314
376
|
if (build.kind === "remote") {
|
|
315
377
|
// Pull the pre-built image and re-tag it to the Cloudflare registry
|
|
316
378
|
// reference; nothing is built locally.
|
|
@@ -3,6 +3,7 @@ import {
|
|
|
3
3
|
apiTokenCredentials,
|
|
4
4
|
Credentials,
|
|
5
5
|
oauthCredentials,
|
|
6
|
+
type ResolvedCredentials,
|
|
6
7
|
} from "@distilled.cloud/cloudflare/Credentials";
|
|
7
8
|
import { ConfigError } from "@distilled.cloud/core/errors";
|
|
8
9
|
import * as Config from "effect/Config";
|
|
@@ -10,6 +11,7 @@ import * as Effect from "effect/Effect";
|
|
|
10
11
|
import * as Layer from "effect/Layer";
|
|
11
12
|
import * as Match from "effect/Match";
|
|
12
13
|
import * as Redacted from "effect/Redacted";
|
|
14
|
+
import * as Semaphore from "effect/Semaphore";
|
|
13
15
|
import { getAuthProvider } from "../Auth/AuthProvider.ts";
|
|
14
16
|
import { ALCHEMY_PROFILE, AlchemyProfile } from "../Auth/Profile.ts";
|
|
15
17
|
import {
|
|
@@ -26,6 +28,66 @@ declare module "@distilled.cloud/cloudflare/Credentials" {
|
|
|
26
28
|
}
|
|
27
29
|
}
|
|
28
30
|
|
|
31
|
+
/**
|
|
32
|
+
* Refresh OAuth credentials this long before they actually expire so that
|
|
33
|
+
* in-flight requests never race the expiry deadline.
|
|
34
|
+
*/
|
|
35
|
+
const CREDENTIAL_REFRESH_WINDOW_MS = 5 * 60 * 1000;
|
|
36
|
+
|
|
37
|
+
const getRefreshAt = (
|
|
38
|
+
credentials: ResolvedCredentials,
|
|
39
|
+
now: number,
|
|
40
|
+
): number => {
|
|
41
|
+
if (credentials.type !== "oauth" || credentials.expiresAt === undefined) {
|
|
42
|
+
return Number.POSITIVE_INFINITY;
|
|
43
|
+
}
|
|
44
|
+
return credentials.expiresAt <= now + CREDENTIAL_REFRESH_WINDOW_MS
|
|
45
|
+
? credentials.expiresAt
|
|
46
|
+
: credentials.expiresAt - CREDENTIAL_REFRESH_WINDOW_MS;
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* Memoize a credentials-resolution effect until shortly before the resolved
|
|
51
|
+
* credentials expire.
|
|
52
|
+
*
|
|
53
|
+
* The distilled HTTP client resolves the `Credentials` service's effect on
|
|
54
|
+
* *every* request (`yield* config.credentials`), which is what allows OAuth
|
|
55
|
+
* tokens to rotate mid-process — a dev session can outlive the ~1h access
|
|
56
|
+
* token, so caching the first resolution forever leaves the process making
|
|
57
|
+
* API calls with a dead token until restart. At the same time, resolution
|
|
58
|
+
* acquires a cross-process file lock (`auth.read`), so resolving fresh on
|
|
59
|
+
* every request would stampede that lock under high concurrency (e.g.
|
|
60
|
+
* `unsafe nuke`).
|
|
61
|
+
*
|
|
62
|
+
* This cache serves both needs: callers get the cached credentials while
|
|
63
|
+
* they are still valid, the resolver re-runs (refreshing + persisting the
|
|
64
|
+
* token) once the refresh window is reached, and a mutex makes resolution
|
|
65
|
+
* single-flight so concurrent callers share one lock acquisition.
|
|
66
|
+
*/
|
|
67
|
+
export const cacheUntilExpiry = <E>(
|
|
68
|
+
resolve: Effect.Effect<ResolvedCredentials, E>,
|
|
69
|
+
now: () => number = () => Date.now(),
|
|
70
|
+
): Effect.Effect<ResolvedCredentials, E> => {
|
|
71
|
+
const mutex = Semaphore.makeUnsafe(1);
|
|
72
|
+
let cached:
|
|
73
|
+
| { credentials: ResolvedCredentials; refreshAt: number }
|
|
74
|
+
| undefined;
|
|
75
|
+
return Semaphore.withPermits(
|
|
76
|
+
mutex,
|
|
77
|
+
1,
|
|
78
|
+
)(
|
|
79
|
+
Effect.suspend(() => {
|
|
80
|
+
if (cached && now() < cached.refreshAt) {
|
|
81
|
+
return Effect.succeed(cached.credentials);
|
|
82
|
+
}
|
|
83
|
+
return Effect.map(resolve, (credentials) => {
|
|
84
|
+
cached = { credentials, refreshAt: getRefreshAt(credentials, now()) };
|
|
85
|
+
return credentials;
|
|
86
|
+
});
|
|
87
|
+
}),
|
|
88
|
+
);
|
|
89
|
+
};
|
|
90
|
+
|
|
29
91
|
/**
|
|
30
92
|
* Build a `Credentials` layer that resolves Cloudflare credentials via the
|
|
31
93
|
* Alchemy AuthProvider using the configured profile (defaults to "default",
|
|
@@ -43,14 +105,7 @@ export const fromAuthProvider = () =>
|
|
|
43
105
|
const profileName = yield* ALCHEMY_PROFILE;
|
|
44
106
|
const ci = yield* Config.boolean("CI").pipe(Config.withDefault(false));
|
|
45
107
|
|
|
46
|
-
|
|
47
|
-
// request (`yield* config.credentials`). `auth.read` is wrapped in a
|
|
48
|
-
// cross-process file lock, so without memoization a high-concurrency
|
|
49
|
-
// run (e.g. `unsafe nuke`) stampedes a single lock and the tail waiters
|
|
50
|
-
// blow the retry budget with "Lock file is already being held". Cache
|
|
51
|
-
// the resolution so the lock is acquired once per process, mirroring
|
|
52
|
-
// `CloudflareEnvironment.fromProfile`.
|
|
53
|
-
return yield* profile.loadOrConfigure(auth, profileName, { ci }).pipe(
|
|
108
|
+
const resolve = profile.loadOrConfigure(auth, profileName, { ci }).pipe(
|
|
54
109
|
Effect.flatMap((config) =>
|
|
55
110
|
auth.read(profileName, config as CloudflareAuthConfig),
|
|
56
111
|
),
|
|
@@ -82,7 +137,12 @@ export const fromAuthProvider = () =>
|
|
|
82
137
|
message: `Failed to resolve Cloudflare credentials for profile '${profileName}': ${(e as { message?: string }).message ?? String(e)}`,
|
|
83
138
|
}),
|
|
84
139
|
),
|
|
85
|
-
Effect.cached,
|
|
86
140
|
);
|
|
141
|
+
|
|
142
|
+
// `auth.read` refreshes and persists expired OAuth tokens when it is
|
|
143
|
+
// re-run, so expiry-aware caching (instead of caching the first
|
|
144
|
+
// resolution forever) is what keeps long-lived dev sessions
|
|
145
|
+
// authenticated across the ~1h access-token lifetime.
|
|
146
|
+
return cacheUntilExpiry(resolve);
|
|
87
147
|
}),
|
|
88
148
|
);
|