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
package/src/Apply.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import * as Cause from "effect/Cause";
|
|
2
|
+
import * as Data from "effect/Data";
|
|
2
3
|
import * as Deferred from "effect/Deferred";
|
|
3
4
|
import * as Effect from "effect/Effect";
|
|
4
5
|
import * as Option from "effect/Option";
|
|
@@ -24,14 +25,17 @@ import { havePropsChanged, stripUnresolved } from "./Diff.ts";
|
|
|
24
25
|
import type { Input } from "./Input.ts";
|
|
25
26
|
import { generateInstanceId, InstanceId } from "./InstanceId.ts";
|
|
26
27
|
import * as Output from "./Output.ts";
|
|
27
|
-
import * as Data from "effect/Data";
|
|
28
28
|
import {
|
|
29
29
|
type ActionApply,
|
|
30
30
|
type Apply,
|
|
31
31
|
type Delete,
|
|
32
32
|
type Plan,
|
|
33
33
|
} from "./Plan.ts";
|
|
34
|
-
import {
|
|
34
|
+
import {
|
|
35
|
+
findProviderByType,
|
|
36
|
+
missingProviderError,
|
|
37
|
+
tryFindProviderByType,
|
|
38
|
+
} from "./Provider.ts";
|
|
35
39
|
import type { ResourceBinding } from "./Resource.ts";
|
|
36
40
|
import { Stack } from "./Stack.ts";
|
|
37
41
|
import { Stage } from "./Stage.ts";
|
|
@@ -137,7 +141,10 @@ export const apply = <P extends Plan>(
|
|
|
137
141
|
plan: P,
|
|
138
142
|
): Effect.Effect<
|
|
139
143
|
Input.Resolve<P["output"]>,
|
|
140
|
-
|
|
144
|
+
| Output.InvalidReferenceError
|
|
145
|
+
| Output.MissingSourceError
|
|
146
|
+
| StateStoreError
|
|
147
|
+
| DestroyError,
|
|
141
148
|
Cli | State | Stack | Stage
|
|
142
149
|
> =>
|
|
143
150
|
Effect.gen(function* () {
|
|
@@ -193,6 +200,16 @@ export const apply = <P extends Plan>(
|
|
|
193
200
|
|
|
194
201
|
yield* session.done();
|
|
195
202
|
|
|
203
|
+
if (plan.destroy) {
|
|
204
|
+
// The destroy converged: every resource row was deleted above. Drop
|
|
205
|
+
// the rest of the stage's persisted state — notably the stack output
|
|
206
|
+
// record written by the last deploy — so `getOutput` returns
|
|
207
|
+
// undefined and `listStages` no longer reports the stage.
|
|
208
|
+
// https://github.com/alchemy-run/alchemy/issues/961
|
|
209
|
+
yield* state.deleteStack({ stack: stackName, stage });
|
|
210
|
+
return undefined;
|
|
211
|
+
}
|
|
212
|
+
|
|
196
213
|
if (!plan.output) {
|
|
197
214
|
return undefined;
|
|
198
215
|
}
|
|
@@ -527,6 +544,7 @@ const executeNode = (
|
|
|
527
544
|
resourceType: node.resource.Type,
|
|
528
545
|
bindings: excludeDeletedBindings(node.bindings),
|
|
529
546
|
removalPolicy: node.resource.RemovalPolicy,
|
|
547
|
+
providerMode: node.mode,
|
|
530
548
|
});
|
|
531
549
|
return id;
|
|
532
550
|
} else if (node.action === "replace") {
|
|
@@ -553,6 +571,7 @@ const executeNode = (
|
|
|
553
571
|
old: node.state,
|
|
554
572
|
deleteFirst: node.deleteFirst,
|
|
555
573
|
removalPolicy: node.resource.RemovalPolicy,
|
|
574
|
+
providerMode: node.mode,
|
|
556
575
|
});
|
|
557
576
|
return id;
|
|
558
577
|
} else if (node.state?.instanceId) {
|
|
@@ -584,6 +603,7 @@ const executeNode = (
|
|
|
584
603
|
bindings: excludeDeletedBindings(node.bindings),
|
|
585
604
|
downstream: node.downstream,
|
|
586
605
|
removalPolicy: node.resource.RemovalPolicy,
|
|
606
|
+
providerMode: node.mode,
|
|
587
607
|
});
|
|
588
608
|
}
|
|
589
609
|
|
|
@@ -634,6 +654,7 @@ const executeNode = (
|
|
|
634
654
|
bindings: excludeDeletedBindings(node.bindings),
|
|
635
655
|
downstream: node.downstream,
|
|
636
656
|
removalPolicy: node.resource.RemovalPolicy,
|
|
657
|
+
providerMode: node.mode,
|
|
637
658
|
});
|
|
638
659
|
yield* storeAndSignal({
|
|
639
660
|
output: attr,
|
|
@@ -704,6 +725,7 @@ const executeNode = (
|
|
|
704
725
|
providerVersion: node.provider.version ?? 0,
|
|
705
726
|
downstream: node.downstream,
|
|
706
727
|
removalPolicy: node.resource.RemovalPolicy,
|
|
728
|
+
providerMode: node.mode,
|
|
707
729
|
});
|
|
708
730
|
|
|
709
731
|
tracker[fqn] = {
|
|
@@ -752,6 +774,9 @@ const executeNode = (
|
|
|
752
774
|
string,
|
|
753
775
|
any
|
|
754
776
|
>;
|
|
777
|
+
const adopting =
|
|
778
|
+
node.adopting === true ||
|
|
779
|
+
(node.state.status === "updating" && node.state.adopting === true);
|
|
755
780
|
|
|
756
781
|
yield* node.state.status === "replaced"
|
|
757
782
|
? commit<ReplacedResourceState>({
|
|
@@ -760,6 +785,7 @@ const executeNode = (
|
|
|
760
785
|
...node.state,
|
|
761
786
|
attr: node.state.attr,
|
|
762
787
|
props: news,
|
|
788
|
+
providerMode: node.mode,
|
|
763
789
|
})
|
|
764
790
|
: commit<UpdatingReourceState>({
|
|
765
791
|
// For ordinary updates we snapshot the previously stable props/attrs
|
|
@@ -776,15 +802,18 @@ const executeNode = (
|
|
|
776
802
|
downstream: node.downstream,
|
|
777
803
|
old:
|
|
778
804
|
node.state.status === "updating" ? node.state.old : node.state,
|
|
805
|
+
adopting: adopting ? true : undefined,
|
|
779
806
|
removalPolicy: node.resource.RemovalPolicy,
|
|
807
|
+
providerMode: node.mode,
|
|
780
808
|
});
|
|
781
809
|
|
|
782
810
|
yield* report("updating");
|
|
783
811
|
|
|
784
|
-
const previousProps =
|
|
785
|
-
|
|
786
|
-
node.state.status === "
|
|
787
|
-
|
|
812
|
+
const previousProps = adopting
|
|
813
|
+
? undefined
|
|
814
|
+
: node.state.status === "created" ||
|
|
815
|
+
node.state.status === "updated" ||
|
|
816
|
+
node.state.status === "replaced"
|
|
788
817
|
? node.state.props
|
|
789
818
|
: node.state.old.props;
|
|
790
819
|
|
|
@@ -822,6 +851,7 @@ const executeNode = (
|
|
|
822
851
|
...node.state,
|
|
823
852
|
attr,
|
|
824
853
|
props: news,
|
|
854
|
+
providerMode: node.mode,
|
|
825
855
|
});
|
|
826
856
|
} else {
|
|
827
857
|
yield* commit<UpdatedResourceState>({
|
|
@@ -837,6 +867,7 @@ const executeNode = (
|
|
|
837
867
|
providerVersion: node.provider.version ?? 0,
|
|
838
868
|
downstream: node.downstream,
|
|
839
869
|
removalPolicy: node.resource.RemovalPolicy,
|
|
870
|
+
providerMode: node.mode,
|
|
840
871
|
});
|
|
841
872
|
}
|
|
842
873
|
|
|
@@ -891,6 +922,7 @@ const executeNode = (
|
|
|
891
922
|
old: node.state,
|
|
892
923
|
downstream: node.downstream,
|
|
893
924
|
removalPolicy: node.resource.RemovalPolicy,
|
|
925
|
+
providerMode: node.mode,
|
|
894
926
|
});
|
|
895
927
|
} else {
|
|
896
928
|
// Resume the same replacement generation after an interrupted apply.
|
|
@@ -918,7 +950,17 @@ const executeNode = (
|
|
|
918
950
|
Effect.gen(function* () {
|
|
919
951
|
const retain = node.resource.RemovalPolicy === "retain";
|
|
920
952
|
if (old.attr !== undefined && !retain) {
|
|
921
|
-
|
|
953
|
+
// Delete each old generation with the provider variant of the
|
|
954
|
+
// mode that created it — after a local ⇄ live switch,
|
|
955
|
+
// `node.provider` (the new mode) cannot tear down the other
|
|
956
|
+
// runtime's instance. `providerMode: undefined` (legacy row or
|
|
957
|
+
// mode-agnostic provider) resolves to the provider as
|
|
958
|
+
// registered.
|
|
959
|
+
const oldProvider = yield* findProviderByType(
|
|
960
|
+
node.resource.Type,
|
|
961
|
+
old.providerMode,
|
|
962
|
+
);
|
|
963
|
+
yield* oldProvider
|
|
922
964
|
.delete({
|
|
923
965
|
id: logicalId,
|
|
924
966
|
fqn,
|
|
@@ -997,6 +1039,7 @@ const executeNode = (
|
|
|
997
1039
|
old: replState.old,
|
|
998
1040
|
deleteFirst: node.deleteFirst,
|
|
999
1041
|
removalPolicy: node.resource.RemovalPolicy,
|
|
1042
|
+
providerMode: node.mode,
|
|
1000
1043
|
});
|
|
1001
1044
|
yield* storeAndSignal({
|
|
1002
1045
|
output: attr,
|
|
@@ -1064,6 +1107,7 @@ const executeNode = (
|
|
|
1064
1107
|
bindings: bindingOutputs,
|
|
1065
1108
|
downstream: node.downstream,
|
|
1066
1109
|
removalPolicy: node.resource.RemovalPolicy,
|
|
1110
|
+
providerMode: node.mode,
|
|
1067
1111
|
});
|
|
1068
1112
|
} else {
|
|
1069
1113
|
yield* commit<ReplacedResourceState>({
|
|
@@ -1085,6 +1129,7 @@ const executeNode = (
|
|
|
1085
1129
|
old: replState.old,
|
|
1086
1130
|
deleteFirst: node.deleteFirst,
|
|
1087
1131
|
removalPolicy: node.resource.RemovalPolicy,
|
|
1132
|
+
providerMode: node.mode,
|
|
1088
1133
|
});
|
|
1089
1134
|
}
|
|
1090
1135
|
|
|
@@ -1456,6 +1501,7 @@ const converge = Effect.fn(function* (
|
|
|
1456
1501
|
downstream: node.downstream,
|
|
1457
1502
|
namespace,
|
|
1458
1503
|
removalPolicy: node.resource.RemovalPolicy,
|
|
1504
|
+
providerMode: node.mode,
|
|
1459
1505
|
} as UpdatedResourceState,
|
|
1460
1506
|
});
|
|
1461
1507
|
|
|
@@ -1541,18 +1587,54 @@ const converge = Effect.fn(function* (
|
|
|
1541
1587
|
|
|
1542
1588
|
// ── Phase 2: delete orphans and old replaced resources ─────────────────────
|
|
1543
1589
|
|
|
1590
|
+
/** A provider delete (or its attr-recovery read / state commit) that failed. */
|
|
1591
|
+
export interface DeleteFailure {
|
|
1592
|
+
fqn: string;
|
|
1593
|
+
logicalId: string;
|
|
1594
|
+
resourceType: string;
|
|
1595
|
+
cause: Cause.Cause<unknown>;
|
|
1596
|
+
}
|
|
1597
|
+
|
|
1544
1598
|
/**
|
|
1545
|
-
*
|
|
1546
|
-
*
|
|
1547
|
-
*
|
|
1548
|
-
* with ONLY this marker are not re-recorded — they just keep their state so
|
|
1549
|
-
* the next destroy retries the whole chain.
|
|
1599
|
+
* A delete that was never attempted because a dependent's delete failed (or
|
|
1600
|
+
* was itself blocked). The resource may legitimately be undeletable while its
|
|
1601
|
+
* dependents still exist, so skipping is not an error in its own right.
|
|
1550
1602
|
*/
|
|
1551
|
-
|
|
1552
|
-
"DependentDeletionFailed",
|
|
1553
|
-
)<{
|
|
1603
|
+
export interface BlockedDelete {
|
|
1554
1604
|
fqn: string;
|
|
1555
|
-
|
|
1605
|
+
logicalId: string;
|
|
1606
|
+
resourceType: string;
|
|
1607
|
+
/** FQNs of the dependents whose failed/blocked deletes block this one. */
|
|
1608
|
+
blockedBy: string[];
|
|
1609
|
+
}
|
|
1610
|
+
|
|
1611
|
+
/**
|
|
1612
|
+
* Aggregate raised at the end of the deletion phase when one or more
|
|
1613
|
+
* resource deletes failed. Every resource whose delete did not depend on a
|
|
1614
|
+
* failed one was still attempted — a single failure no longer strands
|
|
1615
|
+
* unrelated siblings.
|
|
1616
|
+
*/
|
|
1617
|
+
export class DestroyError extends Data.TaggedError("DestroyError")<{
|
|
1618
|
+
failures: ReadonlyArray<DeleteFailure>;
|
|
1619
|
+
blocked: ReadonlyArray<BlockedDelete>;
|
|
1620
|
+
}> {
|
|
1621
|
+
override get message(): string {
|
|
1622
|
+
return [
|
|
1623
|
+
`Failed to delete ${this.failures.length} resource(s)` +
|
|
1624
|
+
(this.blocked.length > 0
|
|
1625
|
+
? ` (${this.blocked.length} more skipped because a dependent's delete failed)`
|
|
1626
|
+
: "") +
|
|
1627
|
+
":",
|
|
1628
|
+
...this.failures.map(
|
|
1629
|
+
(f) => ` ✗ ${f.fqn} (${f.resourceType}): ${Cause.pretty(f.cause)}`,
|
|
1630
|
+
),
|
|
1631
|
+
...this.blocked.map(
|
|
1632
|
+
(b) =>
|
|
1633
|
+
` ⊘ ${b.fqn} (${b.resourceType}): skipped — blocked by failed delete of ${b.blockedBy.join(", ")}`,
|
|
1634
|
+
),
|
|
1635
|
+
].join("\n");
|
|
1636
|
+
}
|
|
1637
|
+
}
|
|
1556
1638
|
|
|
1557
1639
|
const collectGarbage = Effect.fn(function* (
|
|
1558
1640
|
plan: Plan,
|
|
@@ -1563,12 +1645,6 @@ const collectGarbage = Effect.fn(function* (
|
|
|
1563
1645
|
const stackName = stack.name;
|
|
1564
1646
|
const stage = yield* Stage;
|
|
1565
1647
|
|
|
1566
|
-
// GC failures are aggregated, never fail-fast: one resource that refuses
|
|
1567
|
-
// to delete must not interrupt sibling deletions mid-flight (which would
|
|
1568
|
-
// leave THEIR physical resources behind too). Every deletable resource is
|
|
1569
|
-
// deleted, then the combined cause is raised at the end.
|
|
1570
|
-
const failures: LifecycleFailure[] = [];
|
|
1571
|
-
|
|
1572
1648
|
// Task deletions are pure state drops — no body is invoked. Run them in
|
|
1573
1649
|
// parallel before resource GC; tasks never have provider-side dependencies
|
|
1574
1650
|
// to wait on.
|
|
@@ -1595,17 +1671,28 @@ const collectGarbage = Effect.fn(function* (
|
|
|
1595
1671
|
{ concurrency: "unbounded" },
|
|
1596
1672
|
);
|
|
1597
1673
|
|
|
1674
|
+
// Failures are collected — not propagated — so one bad delete never
|
|
1675
|
+
// strands unrelated siblings. `unresolved` tracks every FQN whose delete
|
|
1676
|
+
// failed or was blocked this run: later passes must not retry them (a
|
|
1677
|
+
// still-`replaced` row would otherwise spin the drain loop forever) and
|
|
1678
|
+
// dependencies scheduled in later passes must observe them as blocking.
|
|
1679
|
+
const failures: DeleteFailure[] = [];
|
|
1680
|
+
const blockedDeletes: BlockedDelete[] = [];
|
|
1681
|
+
const unresolved = new Set<string>();
|
|
1682
|
+
|
|
1683
|
+
type DeleteOutcome = "deleted" | "failed" | "blocked";
|
|
1684
|
+
|
|
1598
1685
|
const deleteGraph = Effect.fn(function* (
|
|
1599
1686
|
deletionGraph: Record<string, Delete | ReplacedResourceState | undefined>,
|
|
1600
1687
|
) {
|
|
1601
1688
|
const deletions: {
|
|
1602
|
-
[fqn in string]: Effect.Effect<
|
|
1689
|
+
[fqn in string]: Effect.Effect<DeleteOutcome, never, ArtifactStore>;
|
|
1603
1690
|
} = {};
|
|
1604
1691
|
|
|
1605
1692
|
const deleteResource = (
|
|
1606
1693
|
node: Delete | ReplacedResourceState,
|
|
1607
1694
|
ancestors: ReadonlySet<string> = new Set(),
|
|
1608
|
-
): Effect.Effect<
|
|
1695
|
+
): Effect.Effect<DeleteOutcome, never, ArtifactStore> =>
|
|
1609
1696
|
Effect.gen(function* () {
|
|
1610
1697
|
const isDeleteNode = (
|
|
1611
1698
|
node: Delete | ReplacedResourceState,
|
|
@@ -1621,6 +1708,7 @@ const collectGarbage = Effect.fn(function* (
|
|
|
1621
1708
|
props,
|
|
1622
1709
|
attr: persistedAttr,
|
|
1623
1710
|
provider,
|
|
1711
|
+
providerMode,
|
|
1624
1712
|
} = isDeleteNode(node)
|
|
1625
1713
|
? {
|
|
1626
1714
|
// Use the persisted FQN verbatim — never recompute it from
|
|
@@ -1637,7 +1725,10 @@ const collectGarbage = Effect.fn(function* (
|
|
|
1637
1725
|
downstream: node.downstream,
|
|
1638
1726
|
props: node.state.props,
|
|
1639
1727
|
attr: node.state.attr,
|
|
1728
|
+
// Plan resolved this provider for the row's persisted
|
|
1729
|
+
// `providerMode` (see the deletions builder in Plan.ts).
|
|
1640
1730
|
provider: node.provider,
|
|
1731
|
+
providerMode: node.state.providerMode,
|
|
1641
1732
|
}
|
|
1642
1733
|
: {
|
|
1643
1734
|
fqn: node.fqn,
|
|
@@ -1650,9 +1741,12 @@ const collectGarbage = Effect.fn(function* (
|
|
|
1650
1741
|
attr: node.old.attr,
|
|
1651
1742
|
// A missing provider is fatal — plan already dies on zombie
|
|
1652
1743
|
// rows (see the deletions builder in Plan.ts); this guards
|
|
1653
|
-
// the replaced-chain generations that bypass plan.
|
|
1744
|
+
// the replaced-chain generations that bypass plan. The old
|
|
1745
|
+
// generation is torn down with the provider variant of the
|
|
1746
|
+
// mode that created it (local ⇄ live replacements).
|
|
1654
1747
|
provider: yield* tryFindProviderByType(
|
|
1655
1748
|
node.old.resourceType,
|
|
1749
|
+
node.old.providerMode,
|
|
1656
1750
|
).pipe(
|
|
1657
1751
|
Effect.flatMap(
|
|
1658
1752
|
Option.match({
|
|
@@ -1664,6 +1758,7 @@ const collectGarbage = Effect.fn(function* (
|
|
|
1664
1758
|
}),
|
|
1665
1759
|
),
|
|
1666
1760
|
),
|
|
1761
|
+
providerMode: node.old.providerMode,
|
|
1667
1762
|
};
|
|
1668
1763
|
|
|
1669
1764
|
// Mutable: an attr-less row (interrupted create) may recover its
|
|
@@ -1707,28 +1802,66 @@ const collectGarbage = Effect.fn(function* (
|
|
|
1707
1802
|
|
|
1708
1803
|
return yield* (deletions[fqn] ??= yield* Effect.cached(
|
|
1709
1804
|
Effect.gen(function* () {
|
|
1710
|
-
// Dependents (downstream)
|
|
1711
|
-
//
|
|
1712
|
-
//
|
|
1713
|
-
//
|
|
1714
|
-
//
|
|
1715
|
-
|
|
1716
|
-
yield* Effect.all(
|
|
1805
|
+
// Dependents (`downstream`) are deleted before this resource. A
|
|
1806
|
+
// dependent whose delete failed (or was itself blocked) may make
|
|
1807
|
+
// this resource legitimately undeletable (dependency violation),
|
|
1808
|
+
// so it is skipped with a "blocked by" note instead of surfacing
|
|
1809
|
+
// a spurious second error.
|
|
1810
|
+
const dependents = yield* Effect.all(
|
|
1717
1811
|
downstream.map((dep) =>
|
|
1718
|
-
dep !== fqn &&
|
|
1719
|
-
?
|
|
1720
|
-
|
|
1721
|
-
|
|
1722
|
-
|
|
1723
|
-
|
|
1812
|
+
dep !== fqn && !ancestors.has(dep)
|
|
1813
|
+
? dep in deletionGraph
|
|
1814
|
+
? deleteResource(
|
|
1815
|
+
deletionGraph[dep] as Delete | ReplacedResourceState,
|
|
1816
|
+
nextAncestors,
|
|
1817
|
+
).pipe(Effect.map((outcome) => ({ dep, outcome })))
|
|
1818
|
+
: // Not in this pass's graph — but it may have failed in
|
|
1819
|
+
// an earlier drain pass of the same destroy.
|
|
1820
|
+
Effect.sync(() => ({
|
|
1821
|
+
dep,
|
|
1822
|
+
outcome: unresolved.has(dep)
|
|
1823
|
+
? ("failed" as const)
|
|
1824
|
+
: ("deleted" as const),
|
|
1825
|
+
}))
|
|
1826
|
+
: Effect.succeed({ dep, outcome: "deleted" as const }),
|
|
1724
1827
|
),
|
|
1725
1828
|
{ concurrency: "unbounded" },
|
|
1726
|
-
)
|
|
1727
|
-
|
|
1728
|
-
|
|
1829
|
+
);
|
|
1830
|
+
|
|
1831
|
+
const blockedBy = dependents
|
|
1832
|
+
.filter(({ outcome }) => outcome !== "deleted")
|
|
1833
|
+
.map(({ dep }) => dep);
|
|
1834
|
+
|
|
1835
|
+
if (blockedBy.length > 0) {
|
|
1836
|
+
unresolved.add(fqn);
|
|
1837
|
+
blockedDeletes.push({
|
|
1838
|
+
fqn,
|
|
1839
|
+
logicalId,
|
|
1840
|
+
resourceType,
|
|
1841
|
+
blockedBy,
|
|
1842
|
+
});
|
|
1843
|
+
yield* scopedSession.note(
|
|
1844
|
+
`Skipping delete — blocked by failed delete of ${blockedBy.join(", ")}.`,
|
|
1845
|
+
);
|
|
1846
|
+
yield* report("skipped");
|
|
1847
|
+
return "blocked" as const;
|
|
1848
|
+
}
|
|
1849
|
+
|
|
1850
|
+
return yield* deleteResourceBody().pipe(
|
|
1851
|
+
Effect.catchCause((cause) =>
|
|
1852
|
+
Effect.gen(function* () {
|
|
1853
|
+
unresolved.add(fqn);
|
|
1854
|
+
failures.push({ fqn, logicalId, resourceType, cause });
|
|
1855
|
+
yield* report("fail");
|
|
1856
|
+
return "failed" as const;
|
|
1857
|
+
}),
|
|
1729
1858
|
),
|
|
1730
1859
|
);
|
|
1860
|
+
}),
|
|
1861
|
+
));
|
|
1731
1862
|
|
|
1863
|
+
function deleteResourceBody() {
|
|
1864
|
+
return Effect.gen(function* () {
|
|
1732
1865
|
if (isDeleteNode(node)) {
|
|
1733
1866
|
yield* report("deleting");
|
|
1734
1867
|
if (node.resource.RemovalPolicy === "retain") {
|
|
@@ -1738,7 +1871,8 @@ const collectGarbage = Effect.fn(function* (
|
|
|
1738
1871
|
fqn,
|
|
1739
1872
|
});
|
|
1740
1873
|
yield* report("retained");
|
|
1741
|
-
|
|
1874
|
+
// Retention is intentional — it never blocks dependencies.
|
|
1875
|
+
return "deleted" as const;
|
|
1742
1876
|
}
|
|
1743
1877
|
}
|
|
1744
1878
|
|
|
@@ -1822,6 +1956,7 @@ const collectGarbage = Effect.fn(function* (
|
|
|
1822
1956
|
providerVersion: provider.version ?? 0,
|
|
1823
1957
|
bindings: excludeDeletedBindings(node.bindings),
|
|
1824
1958
|
removalPolicy: node.resource.RemovalPolicy,
|
|
1959
|
+
providerMode,
|
|
1825
1960
|
});
|
|
1826
1961
|
}
|
|
1827
1962
|
|
|
@@ -1879,6 +2014,7 @@ const collectGarbage = Effect.fn(function* (
|
|
|
1879
2014
|
old: node.old.old,
|
|
1880
2015
|
deleteFirst: node.deleteFirst,
|
|
1881
2016
|
removalPolicy: node.removalPolicy,
|
|
2017
|
+
providerMode: node.providerMode,
|
|
1882
2018
|
});
|
|
1883
2019
|
} else {
|
|
1884
2020
|
// The old chain is fully drained, so the current replacement is now
|
|
@@ -1895,6 +2031,7 @@ const collectGarbage = Effect.fn(function* (
|
|
|
1895
2031
|
downstream: node.downstream,
|
|
1896
2032
|
bindings: excludeDeletedBindings(node.bindings),
|
|
1897
2033
|
removalPolicy: node.removalPolicy,
|
|
2034
|
+
providerMode: node.providerMode,
|
|
1898
2035
|
});
|
|
1899
2036
|
}
|
|
1900
2037
|
yield* scopedSession.note(
|
|
@@ -1903,42 +2040,19 @@ const collectGarbage = Effect.fn(function* (
|
|
|
1903
2040
|
: "Replaced resource cleanup complete.",
|
|
1904
2041
|
);
|
|
1905
2042
|
}
|
|
1906
|
-
|
|
1907
|
-
|
|
1908
|
-
|
|
1909
|
-
// Record only DIRECT failures. A cause consisting solely of
|
|
1910
|
-
// the DependentDeletionFailed marker means the real failure
|
|
1911
|
-
// was already recorded by the dependent that produced it.
|
|
1912
|
-
const dependentOnly = cause.reasons.every(
|
|
1913
|
-
(reason) =>
|
|
1914
|
-
Cause.isFailReason(reason) &&
|
|
1915
|
-
reason.error instanceof DependentDeletionFailed,
|
|
1916
|
-
);
|
|
1917
|
-
if (!dependentOnly) {
|
|
1918
|
-
failures.push({
|
|
1919
|
-
fqn,
|
|
1920
|
-
logicalId,
|
|
1921
|
-
type: resourceType,
|
|
1922
|
-
cause,
|
|
1923
|
-
});
|
|
1924
|
-
}
|
|
1925
|
-
yield* report("fail");
|
|
1926
|
-
// Keep the cached effect failed so resources that depend on
|
|
1927
|
-
// this one skip their own physical delete too.
|
|
1928
|
-
return yield* Effect.failCause(cause);
|
|
1929
|
-
}),
|
|
1930
|
-
),
|
|
1931
|
-
),
|
|
1932
|
-
));
|
|
2043
|
+
return "deleted" as const;
|
|
2044
|
+
});
|
|
2045
|
+
}
|
|
1933
2046
|
});
|
|
1934
2047
|
|
|
1935
2048
|
// Attempt every root. Per-node failures were recorded (and their state
|
|
1936
|
-
// retained)
|
|
1937
|
-
// never interrupts sibling
|
|
2049
|
+
// retained) inside each node's delete effect — the effects resolve to
|
|
2050
|
+
// outcomes and never fail, so one bad resource never interrupts sibling
|
|
2051
|
+
// deletions mid-flight.
|
|
1938
2052
|
yield* Effect.all(
|
|
1939
2053
|
Object.values(deletionGraph)
|
|
1940
2054
|
.filter((node) => node !== undefined)
|
|
1941
|
-
.map((node) => deleteResource(node)
|
|
2055
|
+
.map((node) => deleteResource(node)),
|
|
1942
2056
|
{ concurrency: "unbounded" },
|
|
1943
2057
|
);
|
|
1944
2058
|
});
|
|
@@ -1948,10 +2062,15 @@ const collectGarbage = Effect.fn(function* (
|
|
|
1948
2062
|
// chains that were re-committed as `replaced` while deleting older generations.
|
|
1949
2063
|
let first = true;
|
|
1950
2064
|
while (true) {
|
|
1951
|
-
const remainingReplacedResources = yield* state.getReplacedResources({
|
|
2065
|
+
const remainingReplacedResources = (yield* state.getReplacedResources({
|
|
1952
2066
|
stack: stackName,
|
|
1953
2067
|
stage,
|
|
1954
|
-
})
|
|
2068
|
+
}))
|
|
2069
|
+
// A row whose drain already failed (or was blocked) this run stays
|
|
2070
|
+
// `replaced` in state — retrying it in a later pass would loop forever.
|
|
2071
|
+
// It stays behind for the next destroy; the aggregate error below
|
|
2072
|
+
// reports it.
|
|
2073
|
+
.filter((replaced) => !unresolved.has(replaced.fqn));
|
|
1955
2074
|
if (!first && remainingReplacedResources.length === 0) {
|
|
1956
2075
|
break;
|
|
1957
2076
|
}
|
|
@@ -1968,17 +2087,14 @@ const collectGarbage = Effect.fn(function* (
|
|
|
1968
2087
|
),
|
|
1969
2088
|
});
|
|
1970
2089
|
first = false;
|
|
1971
|
-
// A failed pass cannot make further progress — the failing rows stay
|
|
1972
|
-
// `replaced`/`deleting` in state, so looping again would spin on the
|
|
1973
|
-
// same failures forever. Stop and surface the aggregate below.
|
|
1974
|
-
if (failures.length > 0) {
|
|
1975
|
-
break;
|
|
1976
|
-
}
|
|
1977
2090
|
}
|
|
1978
2091
|
|
|
1979
2092
|
if (failures.length > 0) {
|
|
1980
|
-
|
|
1981
|
-
|
|
2093
|
+
// Every independent delete was still attempted; now surface everything
|
|
2094
|
+
// that went wrong (and everything skipped as a consequence) as one
|
|
2095
|
+
// typed aggregate. The destroy as a whole still fails.
|
|
2096
|
+
return yield* Effect.fail(
|
|
2097
|
+
new DestroyError({ failures, blocked: blockedDeletes }),
|
|
1982
2098
|
);
|
|
1983
2099
|
}
|
|
1984
2100
|
});
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import * as Effect from "effect/Effect";
|
|
2
|
+
import * as Layer from "effect/Layer";
|
|
3
|
+
import * as Redacted from "effect/Redacted";
|
|
4
|
+
import type { Input } from "../Input.ts";
|
|
5
|
+
import * as Output from "../Output.ts";
|
|
6
|
+
import { layerOtlp, type OtlpSignalOptions } from "../Telemetry.ts";
|
|
7
|
+
import type { ApiToken } from "./ApiToken.ts";
|
|
8
|
+
import type { Dataset } from "./Dataset.ts";
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* A resource passed to the layer: either the module-scope declaration (an
|
|
12
|
+
* Effect that resolves to the instance, same as what capability bindings
|
|
13
|
+
* accept) or an already-yielded instance.
|
|
14
|
+
*/
|
|
15
|
+
export type ResourceInput<T> = T | Effect.Effect<T, never, any>;
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Options for {@link Telemetry}: an ingest {@link ApiToken} plus one
|
|
19
|
+
* {@link Dataset} per OTel signal to export.
|
|
20
|
+
*/
|
|
21
|
+
export interface AxiomTelemetryProps {
|
|
22
|
+
/**
|
|
23
|
+
* The ingest credential. Must have `ingest: ["create"]` capability on
|
|
24
|
+
* every dataset passed below.
|
|
25
|
+
*/
|
|
26
|
+
token: ResourceInput<ApiToken>;
|
|
27
|
+
/** Dataset (kind `otel:traces:v1`) to export traces into. */
|
|
28
|
+
traces?: ResourceInput<Dataset> | undefined;
|
|
29
|
+
/** Dataset (kind `otel:logs:v1`) to export logs into. */
|
|
30
|
+
logs?: ResourceInput<Dataset> | undefined;
|
|
31
|
+
/** Dataset (kind `otel:metrics:v1`) to export metrics into. */
|
|
32
|
+
metrics?: ResourceInput<Dataset> | undefined;
|
|
33
|
+
/**
|
|
34
|
+
* The exported `service.name`.
|
|
35
|
+
* @default the deployed Function/Worker's physical name
|
|
36
|
+
*/
|
|
37
|
+
serviceName?: Input<string> | undefined;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* Resource declarations are Effects — yield them to get the instance with
|
|
42
|
+
* attribute Output accessors, same as `Binding.Service`'s callable does for
|
|
43
|
+
* capability bindings.
|
|
44
|
+
*/
|
|
45
|
+
const instance = <T>(resource: ResourceInput<T>): Effect.Effect<T> =>
|
|
46
|
+
Effect.isEffect(resource)
|
|
47
|
+
? (resource as Effect.Effect<T>)
|
|
48
|
+
: Effect.succeed(resource);
|
|
49
|
+
|
|
50
|
+
const signal = (
|
|
51
|
+
token: ApiToken,
|
|
52
|
+
dataset: Dataset | undefined,
|
|
53
|
+
urlAttr: "otelTracesEndpoint" | "otelLogsEndpoint" | "otelMetricsEndpoint",
|
|
54
|
+
): OtlpSignalOptions | undefined =>
|
|
55
|
+
dataset === undefined
|
|
56
|
+
? undefined
|
|
57
|
+
: {
|
|
58
|
+
url: dataset[urlAttr],
|
|
59
|
+
headers: {
|
|
60
|
+
Authorization: Output.map(
|
|
61
|
+
token.token,
|
|
62
|
+
(bearer) =>
|
|
63
|
+
Redacted.make(
|
|
64
|
+
`Bearer ${Redacted.value(bearer)}`,
|
|
65
|
+
) as Redacted.Redacted<string>,
|
|
66
|
+
),
|
|
67
|
+
"X-Axiom-Dataset": dataset.name,
|
|
68
|
+
},
|
|
69
|
+
};
|
|
70
|
+
|
|
71
|
+
/**
|
|
72
|
+
* Export a Function/Worker's telemetry to Axiom.
|
|
73
|
+
*
|
|
74
|
+
* A binding layer over {@link layerOtlp | Alchemy.Telemetry.layerOtlp}:
|
|
75
|
+
* building it binds each dataset's OTLP endpoint and the ingest token's
|
|
76
|
+
* `Authorization` header (as a secret) onto the host, and at runtime the
|
|
77
|
+
* built-in exporter ships each signal to its dataset, flushed per event.
|
|
78
|
+
*
|
|
79
|
+
* Compose it into the Function/Worker's single `Effect.provide`:
|
|
80
|
+
*
|
|
81
|
+
* ```ts
|
|
82
|
+
* import * as Axiom from "alchemy/Axiom";
|
|
83
|
+
* import { Bucket } from "./bucket.ts";
|
|
84
|
+
* import { Ingest, Logs, Traces } from "./observability.ts";
|
|
85
|
+
*
|
|
86
|
+
* export default Cloudflare.Worker(
|
|
87
|
+
* "Worker",
|
|
88
|
+
* { main: import.meta.url },
|
|
89
|
+
* Effect.gen(function* () {
|
|
90
|
+
* // ...
|
|
91
|
+
* }).pipe(
|
|
92
|
+
* Effect.provide(
|
|
93
|
+
* Layer.mergeAll(
|
|
94
|
+
* Cloudflare.R2.ReadWriteBucketBinding,
|
|
95
|
+
* Axiom.Telemetry({ token: Ingest, traces: Traces, logs: Logs }),
|
|
96
|
+
* ),
|
|
97
|
+
* ),
|
|
98
|
+
* ),
|
|
99
|
+
* );
|
|
100
|
+
* ```
|
|
101
|
+
*/
|
|
102
|
+
export const Telemetry = (props: AxiomTelemetryProps): Layer.Layer<never> =>
|
|
103
|
+
Layer.unwrap(
|
|
104
|
+
Effect.gen(function* () {
|
|
105
|
+
// Declarations are yielded to instances (registering them on the
|
|
106
|
+
// Stack if the enclosing host is the first to reference them), so
|
|
107
|
+
// attribute accessors below produce real Outputs.
|
|
108
|
+
const token = yield* instance(props.token);
|
|
109
|
+
const traces = props.traces && (yield* instance(props.traces));
|
|
110
|
+
const logs = props.logs && (yield* instance(props.logs));
|
|
111
|
+
const metrics = props.metrics && (yield* instance(props.metrics));
|
|
112
|
+
return layerOtlp({
|
|
113
|
+
serviceName: props.serviceName,
|
|
114
|
+
traces: signal(token, traces, "otelTracesEndpoint"),
|
|
115
|
+
logs: signal(token, logs, "otelLogsEndpoint"),
|
|
116
|
+
metrics: signal(token, metrics, "otelMetricsEndpoint"),
|
|
117
|
+
});
|
|
118
|
+
}),
|
|
119
|
+
) as Layer.Layer<never>;
|
package/src/Axiom/index.ts
CHANGED