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
|
@@ -46,7 +46,8 @@ export const OAUTH_CLIENT_ID = "pscale_app_aa12e3938baebb788aac443f66e422da";
|
|
|
46
46
|
export const OAUTH_CLIENT_SECRET =
|
|
47
47
|
"pscale_app_secret_yyZ3Q8oe99GP9_yA5wrA5er6RuN6Lz9dC66Bj1OJzpg";
|
|
48
48
|
|
|
49
|
-
export const OAUTH_REDIRECT_URI = "
|
|
49
|
+
export const OAUTH_REDIRECT_URI = "https://alchemy.run/auth/callback";
|
|
50
|
+
export const OAUTH_LOCAL_CALLBACK_URI = "http://localhost:9976/auth/callback";
|
|
50
51
|
export const OAUTH_ENDPOINTS = {
|
|
51
52
|
// PlanetScale's own .well-known OAuth discovery doc declares this as
|
|
52
53
|
// the authorization_endpoint — NOT auth.planetscale.com/oauth/authorize
|
|
@@ -182,6 +183,46 @@ export const refresh = (
|
|
|
182
183
|
client_secret: OAUTH_CLIENT_SECRET,
|
|
183
184
|
});
|
|
184
185
|
|
|
186
|
+
/**
|
|
187
|
+
* Exchange a code copied from the hosted relay page, or extract the code from
|
|
188
|
+
* either the hosted or loopback callback URL.
|
|
189
|
+
*/
|
|
190
|
+
export const exchangeCallbackInput = (
|
|
191
|
+
input: string,
|
|
192
|
+
authorization: Authorization,
|
|
193
|
+
): Effect.Effect<OAuthCredentials, OAuthError> =>
|
|
194
|
+
Effect.gen(function* () {
|
|
195
|
+
const value = input.trim();
|
|
196
|
+
let code = value;
|
|
197
|
+
let state: string | null = null;
|
|
198
|
+
|
|
199
|
+
try {
|
|
200
|
+
const url = new URL(value);
|
|
201
|
+
code = url.searchParams.get("code") ?? "";
|
|
202
|
+
state = url.searchParams.get("state");
|
|
203
|
+
} catch {
|
|
204
|
+
const separator = value.lastIndexOf("#");
|
|
205
|
+
if (separator >= 0) {
|
|
206
|
+
code = value.slice(0, separator);
|
|
207
|
+
state = value.slice(separator + 1);
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
if (!code) {
|
|
212
|
+
return yield* new OAuthError({
|
|
213
|
+
error: "invalid_request",
|
|
214
|
+
errorDescription: "The authorization code is missing.",
|
|
215
|
+
});
|
|
216
|
+
}
|
|
217
|
+
if (state !== null && state !== authorization.state) {
|
|
218
|
+
return yield* new OAuthError({
|
|
219
|
+
error: "invalid_request",
|
|
220
|
+
errorDescription: "The authorization state does not match.",
|
|
221
|
+
});
|
|
222
|
+
}
|
|
223
|
+
return yield* exchange(code);
|
|
224
|
+
});
|
|
225
|
+
|
|
185
226
|
/**
|
|
186
227
|
* Start a local HTTP server to listen for the OAuth callback, exchange
|
|
187
228
|
* the authorization code, and return the credentials.
|
|
@@ -192,7 +233,7 @@ export const callback = (
|
|
|
192
233
|
authorization: Authorization,
|
|
193
234
|
): Effect.Effect<OAuthCredentials, OAuthError> =>
|
|
194
235
|
Effect.tryPromise({
|
|
195
|
-
try: () => callbackPromise(authorization),
|
|
236
|
+
try: (signal) => callbackPromise(authorization, signal),
|
|
196
237
|
catch: (err) => {
|
|
197
238
|
if (err instanceof OAuthError) return err;
|
|
198
239
|
return new OAuthError({
|
|
@@ -204,13 +245,25 @@ export const callback = (
|
|
|
204
245
|
|
|
205
246
|
function callbackPromise(
|
|
206
247
|
authorization: Authorization,
|
|
248
|
+
signal: AbortSignal,
|
|
207
249
|
): Promise<OAuthCredentials> {
|
|
208
|
-
const { pathname, port } = new URL(
|
|
250
|
+
const { pathname, port } = new URL(OAUTH_LOCAL_CALLBACK_URI);
|
|
209
251
|
|
|
210
252
|
return new Promise<OAuthCredentials>((resolve, reject) => {
|
|
211
253
|
const server = http.createServer(async (req, res) => {
|
|
212
254
|
const url = new URL(req.url ?? "/", `http://${req.headers.host}`);
|
|
213
255
|
|
|
256
|
+
if (url.pathname === "/auth/ping") {
|
|
257
|
+
res.writeHead(req.method === "OPTIONS" ? 204 : 200, {
|
|
258
|
+
"Access-Control-Allow-Origin": new URL(OAUTH_REDIRECT_URI).origin,
|
|
259
|
+
"Access-Control-Allow-Methods": "GET, OPTIONS",
|
|
260
|
+
"Access-Control-Allow-Private-Network": "true",
|
|
261
|
+
"Cache-Control": "no-store",
|
|
262
|
+
});
|
|
263
|
+
res.end();
|
|
264
|
+
return;
|
|
265
|
+
}
|
|
266
|
+
|
|
214
267
|
if (url.pathname !== pathname) {
|
|
215
268
|
res.statusCode = 404;
|
|
216
269
|
res.end("Not Found");
|
|
@@ -289,9 +342,12 @@ function callbackPromise(
|
|
|
289
342
|
|
|
290
343
|
function cleanup() {
|
|
291
344
|
clearTimeout(timeout);
|
|
345
|
+
signal.removeEventListener("abort", cleanup);
|
|
292
346
|
server.close();
|
|
293
347
|
}
|
|
294
348
|
|
|
349
|
+
signal.addEventListener("abort", cleanup, { once: true });
|
|
350
|
+
|
|
295
351
|
server.on("error", (err) => {
|
|
296
352
|
cleanup();
|
|
297
353
|
reject(
|
|
@@ -2,7 +2,7 @@ import { Credentials } from "@distilled.cloud/planetscale/Credentials";
|
|
|
2
2
|
import * as planetscale from "@distilled.cloud/planetscale/Operations";
|
|
3
3
|
import * as Effect from "effect/Effect";
|
|
4
4
|
import * as Stream from "effect/Stream";
|
|
5
|
-
import { isResolved } from "../../Diff.ts";
|
|
5
|
+
import { havePropsChanged, isResolved } from "../../Diff.ts";
|
|
6
6
|
import { createPhysicalName } from "../../PhysicalName.ts";
|
|
7
7
|
import * as Provider from "../../Provider.ts";
|
|
8
8
|
import { Resource } from "../../Resource.ts";
|
|
@@ -110,6 +110,25 @@ export const PostgresDatabaseProvider = () =>
|
|
|
110
110
|
diff: Effect.fn(function* ({ news, olds, output }) {
|
|
111
111
|
if (!isResolved(news)) return undefined;
|
|
112
112
|
|
|
113
|
+
// Database names are rename-mutable (reconcile folds `new_name`
|
|
114
|
+
// into the settings sync), so `name` cannot live in the
|
|
115
|
+
// provider-level stables. Almost no update is a rename though —
|
|
116
|
+
// for those, advertise `name` as stable on the update so
|
|
117
|
+
// downstream consumers (branches, roles) still resolve
|
|
118
|
+
// `database.name` at plan time instead of seeing `undefined` and
|
|
119
|
+
// falsely planning a replacement. The name only changes when the
|
|
120
|
+
// `name` prop itself changes: an explicit name renames iff it
|
|
121
|
+
// differs from the observed name, and an omitted name is
|
|
122
|
+
// engine-generated deterministically (stable across updates).
|
|
123
|
+
const nameIsStable =
|
|
124
|
+
output?.name !== undefined &&
|
|
125
|
+
(news.name !== undefined
|
|
126
|
+
? news.name === output.name
|
|
127
|
+
: olds?.name === undefined);
|
|
128
|
+
const stables = nameIsStable
|
|
129
|
+
? ["id", "organization", "region", "name"]
|
|
130
|
+
: undefined;
|
|
131
|
+
|
|
113
132
|
if (
|
|
114
133
|
news.region?.slug &&
|
|
115
134
|
output?.region?.slug &&
|
|
@@ -130,23 +149,32 @@ export const PostgresDatabaseProvider = () =>
|
|
|
130
149
|
if (news.migrationsDir) {
|
|
131
150
|
const newHashes = yield* hashMigrations(news.migrationsDir);
|
|
132
151
|
if (!recordsEqual(newHashes, output?.migrationsHashes ?? {})) {
|
|
133
|
-
return { action: "update" } as const;
|
|
152
|
+
return { action: "update", stables } as const;
|
|
134
153
|
}
|
|
135
154
|
if (
|
|
136
155
|
(news.migrationsTable ?? DEFAULT_MIGRATIONS_TABLE) !==
|
|
137
156
|
(output?.migrationsTable ?? DEFAULT_MIGRATIONS_TABLE)
|
|
138
157
|
) {
|
|
139
|
-
return { action: "update" } as const;
|
|
158
|
+
return { action: "update", stables } as const;
|
|
140
159
|
}
|
|
141
160
|
}
|
|
142
161
|
if (news.importFiles?.length) {
|
|
143
162
|
const newHashes = yield* hashImports(news.importFiles, yield* rootDir);
|
|
144
163
|
if (!recordsEqual(newHashes, output?.importHashes ?? {})) {
|
|
145
|
-
return { action: "update" } as const;
|
|
164
|
+
return { action: "update", stables } as const;
|
|
146
165
|
}
|
|
147
166
|
}
|
|
148
167
|
|
|
149
|
-
//
|
|
168
|
+
// Remaining prop changes (rename, settings, clusterSize, …) are
|
|
169
|
+
// in-place updates. Decide them here instead of falling back to
|
|
170
|
+
// the engine's default deep-compare so the conditional `name`
|
|
171
|
+
// stable above is attached — the default path uses the
|
|
172
|
+
// provider-level stables, which strip `name` from downstream plan
|
|
173
|
+
// resolution.
|
|
174
|
+
if (havePropsChanged(olds, news)) {
|
|
175
|
+
return { action: "update", stables } as const;
|
|
176
|
+
}
|
|
177
|
+
|
|
150
178
|
return undefined;
|
|
151
179
|
}),
|
|
152
180
|
|
package/src/Platform.ts
CHANGED
|
@@ -344,6 +344,21 @@ export const Platform = <
|
|
|
344
344
|
constructor(id, props, impl, true);
|
|
345
345
|
} else if (!impl) {
|
|
346
346
|
const cls = makeClass(id);
|
|
347
|
+
// A resource declared without an inline impl is "external": there is
|
|
348
|
+
// no Effect-native entry to inject (an ordinary bundled worker, or an
|
|
349
|
+
// assets-only worker with no script at all).
|
|
350
|
+
const externalProps = () => {
|
|
351
|
+
const transformed = applyTransformProps(id, props);
|
|
352
|
+
return Effect.isEffect(transformed)
|
|
353
|
+
? Effect.map(transformed, (p: any) => ({
|
|
354
|
+
...p,
|
|
355
|
+
isExternal: true,
|
|
356
|
+
}))
|
|
357
|
+
: {
|
|
358
|
+
...transformed,
|
|
359
|
+
isExternal: true,
|
|
360
|
+
};
|
|
361
|
+
};
|
|
347
362
|
const evaluate = () =>
|
|
348
363
|
(!isTag
|
|
349
364
|
? // this is a non-tagged resource yielded without providing an implementation
|
|
@@ -356,27 +371,24 @@ export const Platform = <
|
|
|
356
371
|
// return new Response("Hello, world!");
|
|
357
372
|
// }
|
|
358
373
|
// }
|
|
359
|
-
resource(
|
|
360
|
-
id,
|
|
361
|
-
(() => {
|
|
362
|
-
const transformed = applyTransformProps(id, props);
|
|
363
|
-
return Effect.isEffect(transformed)
|
|
364
|
-
? Effect.map(transformed, (p: any) => ({
|
|
365
|
-
...p,
|
|
366
|
-
isExternal: true,
|
|
367
|
-
}))
|
|
368
|
-
: {
|
|
369
|
-
...transformed,
|
|
370
|
-
isExternal: true,
|
|
371
|
-
};
|
|
372
|
-
})(),
|
|
373
|
-
)
|
|
374
|
+
resource(id, externalProps())
|
|
374
375
|
: Effect.flatMap(
|
|
375
376
|
// this is a tagged resource
|
|
376
377
|
Effect.serviceOption(cls.Self),
|
|
377
378
|
Option.match({
|
|
378
|
-
// we are likely running at runtime, so we create
|
|
379
|
-
|
|
379
|
+
// we are likely running at runtime, so we create.
|
|
380
|
+
// A tagged class WITH props and no impl is the class form of
|
|
381
|
+
// the external resource above (e.g.
|
|
382
|
+
// `class Site extends Worker<Site>()("Site", { assets }) {}`)
|
|
383
|
+
// — same isExternal marking; without props, this is a bare
|
|
384
|
+
// tag whose props/impl arrive later via `.make`.
|
|
385
|
+
onNone: () =>
|
|
386
|
+
resource(
|
|
387
|
+
id,
|
|
388
|
+
props === undefined
|
|
389
|
+
? applyTransformProps(id, props)
|
|
390
|
+
: externalProps(),
|
|
391
|
+
),
|
|
380
392
|
onSome: Effect.succeed,
|
|
381
393
|
}),
|
|
382
394
|
)
|
|
@@ -0,0 +1,433 @@
|
|
|
1
|
+
import * as Effect from "effect/Effect";
|
|
2
|
+
import { Unowned } from "../AdoptPolicy.ts";
|
|
3
|
+
import { deepEqual, isResolved } from "../Diff.ts";
|
|
4
|
+
import { createPhysicalName } from "../PhysicalName.ts";
|
|
5
|
+
import * as Provider from "../Provider.ts";
|
|
6
|
+
import { Resource } from "../Resource.ts";
|
|
7
|
+
import {
|
|
8
|
+
PrismaClient,
|
|
9
|
+
isConflict,
|
|
10
|
+
isNotFound,
|
|
11
|
+
type PrismaManagementClient,
|
|
12
|
+
} from "./Client.ts";
|
|
13
|
+
import { destroyApp } from "./ComputeLifecycle.ts";
|
|
14
|
+
import { ensureAppImmutableIdentity } from "./Internal/AppIdentity.ts";
|
|
15
|
+
import type { Project } from "./Project.ts";
|
|
16
|
+
import type { Providers } from "./Providers.ts";
|
|
17
|
+
import {
|
|
18
|
+
concreteIdsChanged,
|
|
19
|
+
isInputObject,
|
|
20
|
+
isPrismaDevId,
|
|
21
|
+
resolveProjectId,
|
|
22
|
+
unresolvedProjectIdOf,
|
|
23
|
+
} from "./Refs.ts";
|
|
24
|
+
import type { App as ApiApp, PrismaRegionId } from "./Types.ts";
|
|
25
|
+
|
|
26
|
+
export interface AppProps {
|
|
27
|
+
/**
|
|
28
|
+
* Project ID or `project.projectId` output that owns this App.
|
|
29
|
+
*/
|
|
30
|
+
project: string | Project;
|
|
31
|
+
/**
|
|
32
|
+
* App display name. If omitted, Alchemy generates a stable physical name.
|
|
33
|
+
*/
|
|
34
|
+
displayName?: string;
|
|
35
|
+
/**
|
|
36
|
+
* Region where the App is placed.
|
|
37
|
+
*
|
|
38
|
+
* @default The project's default region, falling back to "us-east-1"
|
|
39
|
+
*/
|
|
40
|
+
regionId?: PrismaRegionId;
|
|
41
|
+
/**
|
|
42
|
+
* Branch ID to attach the App to. Mutually exclusive with branchGitName.
|
|
43
|
+
*/
|
|
44
|
+
branchId?: string;
|
|
45
|
+
/**
|
|
46
|
+
* Branch git name to attach the App to. Mutually exclusive with branchId.
|
|
47
|
+
*/
|
|
48
|
+
branchGitName?: string;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
export interface App extends Resource<
|
|
52
|
+
"Prisma.App",
|
|
53
|
+
AppProps,
|
|
54
|
+
{
|
|
55
|
+
/**
|
|
56
|
+
* Prisma App ID.
|
|
57
|
+
*/
|
|
58
|
+
appId: string;
|
|
59
|
+
/**
|
|
60
|
+
* App display name.
|
|
61
|
+
*/
|
|
62
|
+
name: string;
|
|
63
|
+
/**
|
|
64
|
+
* Project ID that owns the App.
|
|
65
|
+
*/
|
|
66
|
+
projectId: string;
|
|
67
|
+
/**
|
|
68
|
+
* Region ID where the App is placed.
|
|
69
|
+
*/
|
|
70
|
+
regionId: string;
|
|
71
|
+
/**
|
|
72
|
+
* Branch ID attached to the App, or null when unassigned.
|
|
73
|
+
*/
|
|
74
|
+
branchId: string | null;
|
|
75
|
+
/**
|
|
76
|
+
* Latest promoted deployment ID, when available.
|
|
77
|
+
*/
|
|
78
|
+
latestDeploymentId: string | null;
|
|
79
|
+
/**
|
|
80
|
+
* Stable App endpoint domain.
|
|
81
|
+
*/
|
|
82
|
+
appEndpointDomain: string;
|
|
83
|
+
/**
|
|
84
|
+
* ISO timestamp when the App was created.
|
|
85
|
+
*/
|
|
86
|
+
createdAt: string;
|
|
87
|
+
},
|
|
88
|
+
never,
|
|
89
|
+
Providers
|
|
90
|
+
> {}
|
|
91
|
+
|
|
92
|
+
/**
|
|
93
|
+
* A Prisma App, the long-lived application configuration that owns deployments.
|
|
94
|
+
*
|
|
95
|
+
* Omit `branchId` and `branchGitName` to attach the App to the project's
|
|
96
|
+
* current default branch. App regions are immutable; create a second App and
|
|
97
|
+
* cut traffic over when moving regions. Use `Prisma.Compute` for the usual
|
|
98
|
+
* build, deployment, health-check, and promotion workflow; use `App` directly
|
|
99
|
+
* when managing standalone `Prisma.Deployment` resources.
|
|
100
|
+
*
|
|
101
|
+
* @resource
|
|
102
|
+
* @section Creating an App
|
|
103
|
+
* @example App on the default branch
|
|
104
|
+
* ```typescript
|
|
105
|
+
* const app = yield* Prisma.App("web", {
|
|
106
|
+
* project,
|
|
107
|
+
* });
|
|
108
|
+
* ```
|
|
109
|
+
*
|
|
110
|
+
* @example App on a preview branch
|
|
111
|
+
* ```typescript
|
|
112
|
+
* const app = yield* Prisma.App("preview-web", {
|
|
113
|
+
* project,
|
|
114
|
+
* branchId: preview.branchId,
|
|
115
|
+
* });
|
|
116
|
+
* ```
|
|
117
|
+
*/
|
|
118
|
+
export const App = Resource<App>("Prisma.App");
|
|
119
|
+
|
|
120
|
+
const desiredBranchId = Effect.fn(function* (
|
|
121
|
+
client: PrismaManagementClient,
|
|
122
|
+
projectId: string,
|
|
123
|
+
props: Pick<AppProps, "branchId" | "branchGitName">,
|
|
124
|
+
) {
|
|
125
|
+
if (props.branchId !== undefined && !isPrismaDevId(props.branchId)) {
|
|
126
|
+
return { resolved: true as const, id: props.branchId };
|
|
127
|
+
}
|
|
128
|
+
if (props.branchGitName !== undefined) {
|
|
129
|
+
const branches = yield* client.listBranches(projectId, {
|
|
130
|
+
gitName: props.branchGitName,
|
|
131
|
+
limit: 100,
|
|
132
|
+
});
|
|
133
|
+
if (branches.length > 1) {
|
|
134
|
+
return yield* Effect.fail(
|
|
135
|
+
new Error(
|
|
136
|
+
`Prisma returned multiple branches named '${props.branchGitName}' in project '${projectId}'; refusing an ambiguous App match.`,
|
|
137
|
+
),
|
|
138
|
+
);
|
|
139
|
+
}
|
|
140
|
+
return branches[0]
|
|
141
|
+
? { resolved: true as const, id: branches[0].id }
|
|
142
|
+
: { resolved: false as const };
|
|
143
|
+
}
|
|
144
|
+
const branches = yield* client.listBranches(projectId, { limit: 100 });
|
|
145
|
+
const defaults = branches.filter((branch) => branch.isDefault);
|
|
146
|
+
if (defaults.length > 1) {
|
|
147
|
+
return yield* Effect.fail(
|
|
148
|
+
new Error(
|
|
149
|
+
`Prisma returned multiple default branches for project '${projectId}'; refusing an ambiguous App match.`,
|
|
150
|
+
),
|
|
151
|
+
);
|
|
152
|
+
}
|
|
153
|
+
const defaultBranch = defaults[0];
|
|
154
|
+
return defaultBranch
|
|
155
|
+
? { resolved: true as const, id: defaultBranch.id }
|
|
156
|
+
: { resolved: false as const };
|
|
157
|
+
});
|
|
158
|
+
|
|
159
|
+
const createDisplayName = (id: string, displayName: string | undefined) =>
|
|
160
|
+
displayName === undefined
|
|
161
|
+
? createPhysicalName({ id })
|
|
162
|
+
: Effect.succeed(displayName);
|
|
163
|
+
|
|
164
|
+
const findApp = Effect.fn(function* (
|
|
165
|
+
client: PrismaManagementClient,
|
|
166
|
+
projectId: string,
|
|
167
|
+
displayName: string,
|
|
168
|
+
props: Pick<AppProps, "branchId" | "branchGitName">,
|
|
169
|
+
) {
|
|
170
|
+
const candidates = (yield* client.listApps({
|
|
171
|
+
projectId,
|
|
172
|
+
limit: 100,
|
|
173
|
+
})).filter((app) => app.name === displayName);
|
|
174
|
+
if (candidates.length === 0) return undefined;
|
|
175
|
+
const branch = yield* desiredBranchId(client, projectId, props);
|
|
176
|
+
if (!branch.resolved) return undefined;
|
|
177
|
+
const matches = candidates.filter((app) => app.branchId === branch.id);
|
|
178
|
+
if (matches.length > 1) {
|
|
179
|
+
return yield* Effect.fail(
|
|
180
|
+
new Error(
|
|
181
|
+
`Prisma returned multiple Apps named '${displayName}' on branch '${branch.id}' in project '${projectId}'; refusing an ambiguous ownership match.`,
|
|
182
|
+
),
|
|
183
|
+
);
|
|
184
|
+
}
|
|
185
|
+
return matches[0];
|
|
186
|
+
});
|
|
187
|
+
|
|
188
|
+
const attrsFrom = (app: ApiApp): App["Attributes"] => ({
|
|
189
|
+
appId: app.id,
|
|
190
|
+
name: app.name,
|
|
191
|
+
projectId: app.projectId,
|
|
192
|
+
regionId: app.region.id,
|
|
193
|
+
branchId: app.branchId,
|
|
194
|
+
latestDeploymentId: app.latestDeploymentId,
|
|
195
|
+
appEndpointDomain: app.appEndpointDomain,
|
|
196
|
+
createdAt: app.createdAt,
|
|
197
|
+
});
|
|
198
|
+
|
|
199
|
+
const branchNeedsSync = Effect.fn(function* (
|
|
200
|
+
client: PrismaManagementClient,
|
|
201
|
+
projectId: string,
|
|
202
|
+
app: ApiApp,
|
|
203
|
+
props: AppProps,
|
|
204
|
+
) {
|
|
205
|
+
if (props.branchId !== undefined && !isPrismaDevId(props.branchId)) {
|
|
206
|
+
return app.branchId !== props.branchId;
|
|
207
|
+
}
|
|
208
|
+
if (props.branchGitName === undefined) {
|
|
209
|
+
const branch = yield* desiredBranchId(client, projectId, props);
|
|
210
|
+
return !branch.resolved || app.branchId !== branch.id;
|
|
211
|
+
}
|
|
212
|
+
const branch = yield* desiredBranchId(client, projectId, props);
|
|
213
|
+
return !branch.resolved || branch.id !== app.branchId;
|
|
214
|
+
});
|
|
215
|
+
|
|
216
|
+
const validateAppProps = (props: AppProps) =>
|
|
217
|
+
Effect.gen(function* () {
|
|
218
|
+
if (props.branchId !== undefined && props.branchGitName !== undefined) {
|
|
219
|
+
return yield* Effect.fail(
|
|
220
|
+
new Error("branchId and branchGitName are mutually exclusive."),
|
|
221
|
+
);
|
|
222
|
+
}
|
|
223
|
+
if (props.branchId === null || props.branchGitName === null) {
|
|
224
|
+
return yield* Effect.fail(
|
|
225
|
+
new Error(
|
|
226
|
+
"Prisma.App requires an attached branch because the Management API cannot create an unassigned App atomically. Omit both fields to use the project default branch, or provide branchId/branchGitName.",
|
|
227
|
+
),
|
|
228
|
+
);
|
|
229
|
+
}
|
|
230
|
+
});
|
|
231
|
+
|
|
232
|
+
export const AppProvider = () =>
|
|
233
|
+
Provider.effect(
|
|
234
|
+
App,
|
|
235
|
+
Effect.gen(function* () {
|
|
236
|
+
const client = yield* PrismaClient;
|
|
237
|
+
return {
|
|
238
|
+
stables: ["appId"],
|
|
239
|
+
list: () =>
|
|
240
|
+
client.listApps().pipe(Effect.map((apps) => apps.map(attrsFrom))),
|
|
241
|
+
diff: Effect.fn(function* ({ id, olds, news, output }) {
|
|
242
|
+
if (!isInputObject(news)) return undefined;
|
|
243
|
+
if (isPrismaDevId(output?.appId)) {
|
|
244
|
+
return { action: "update" } as const;
|
|
245
|
+
}
|
|
246
|
+
const oldProjectId =
|
|
247
|
+
output?.projectId ?? unresolvedProjectIdOf(olds.project);
|
|
248
|
+
const newProjectId = isResolved(news.project)
|
|
249
|
+
? unresolvedProjectIdOf(news.project)
|
|
250
|
+
: undefined;
|
|
251
|
+
if (concreteIdsChanged(oldProjectId, newProjectId)) {
|
|
252
|
+
return { action: "replace" } as const;
|
|
253
|
+
}
|
|
254
|
+
if (isResolved(news.regionId) && news.regionId !== undefined) {
|
|
255
|
+
const currentRegionId = output?.regionId ?? olds.regionId;
|
|
256
|
+
if (
|
|
257
|
+
currentRegionId !== undefined &&
|
|
258
|
+
news.regionId !== currentRegionId
|
|
259
|
+
) {
|
|
260
|
+
return yield* Effect.fail(
|
|
261
|
+
new Error(
|
|
262
|
+
`Prisma App region is immutable and the Management API cannot atomically move an App without deleting its serving endpoint first. Create a second App with a different display name in the target region, cut traffic over, then remove this App.`,
|
|
263
|
+
),
|
|
264
|
+
);
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
const updateProps = {
|
|
268
|
+
displayName: news.displayName,
|
|
269
|
+
branchId: news.branchId,
|
|
270
|
+
branchGitName: news.branchGitName,
|
|
271
|
+
};
|
|
272
|
+
if (!isResolved(updateProps)) return undefined;
|
|
273
|
+
const resolvedUpdateProps = {
|
|
274
|
+
...(updateProps as Pick<
|
|
275
|
+
AppProps,
|
|
276
|
+
"displayName" | "branchId" | "branchGitName"
|
|
277
|
+
>),
|
|
278
|
+
displayName: yield* createDisplayName(
|
|
279
|
+
id,
|
|
280
|
+
(updateProps as Pick<AppProps, "displayName">).displayName,
|
|
281
|
+
),
|
|
282
|
+
};
|
|
283
|
+
if (!output) {
|
|
284
|
+
return deepEqual(resolvedUpdateProps, {
|
|
285
|
+
displayName: yield* createDisplayName(id, olds.displayName),
|
|
286
|
+
branchId: olds.branchId,
|
|
287
|
+
branchGitName: olds.branchGitName,
|
|
288
|
+
})
|
|
289
|
+
? undefined
|
|
290
|
+
: ({ action: "update" } as const);
|
|
291
|
+
}
|
|
292
|
+
if (output.name !== resolvedUpdateProps.displayName) {
|
|
293
|
+
return { action: "update" } as const;
|
|
294
|
+
}
|
|
295
|
+
const branch = yield* desiredBranchId(
|
|
296
|
+
client,
|
|
297
|
+
newProjectId ?? output.projectId,
|
|
298
|
+
resolvedUpdateProps,
|
|
299
|
+
);
|
|
300
|
+
return !branch.resolved || output.branchId !== branch.id
|
|
301
|
+
? ({ action: "update" } as const)
|
|
302
|
+
: undefined;
|
|
303
|
+
}),
|
|
304
|
+
read: Effect.fn(function* ({ id, output, olds }) {
|
|
305
|
+
const appId = isPrismaDevId(output?.appId)
|
|
306
|
+
? undefined
|
|
307
|
+
: output?.appId;
|
|
308
|
+
const app = appId
|
|
309
|
+
? yield* client
|
|
310
|
+
.getApp(appId)
|
|
311
|
+
.pipe(
|
|
312
|
+
Effect.catchIf(isNotFound, () => Effect.succeed(undefined)),
|
|
313
|
+
)
|
|
314
|
+
: yield* Effect.gen(function* () {
|
|
315
|
+
const projectId = unresolvedProjectIdOf(olds.project);
|
|
316
|
+
return projectId
|
|
317
|
+
? yield* findApp(
|
|
318
|
+
client,
|
|
319
|
+
projectId,
|
|
320
|
+
yield* createDisplayName(id, olds.displayName),
|
|
321
|
+
olds,
|
|
322
|
+
)
|
|
323
|
+
: undefined;
|
|
324
|
+
});
|
|
325
|
+
if (!app) return undefined;
|
|
326
|
+
const attrs = attrsFrom(app);
|
|
327
|
+
return appId ? attrs : Unowned(attrs);
|
|
328
|
+
}),
|
|
329
|
+
reconcile: Effect.fn(function* ({ id, news, output }) {
|
|
330
|
+
yield* validateAppProps(news);
|
|
331
|
+
const projectId = yield* resolveProjectId(news.project);
|
|
332
|
+
const displayName = yield* createDisplayName(id, news.displayName);
|
|
333
|
+
const branch = yield* desiredBranchId(client, projectId, news);
|
|
334
|
+
if (!branch.resolved) {
|
|
335
|
+
return yield* Effect.fail(
|
|
336
|
+
new Error(
|
|
337
|
+
news.branchGitName === undefined
|
|
338
|
+
? `Prisma project '${projectId}' has no default branch to attach App '${displayName}'. Create or promote a default branch, or specify branchId/branchGitName.`
|
|
339
|
+
: `Prisma project '${projectId}' has no branch named '${news.branchGitName}' to attach App '${displayName}'.`,
|
|
340
|
+
),
|
|
341
|
+
);
|
|
342
|
+
}
|
|
343
|
+
const appId = isPrismaDevId(output?.appId)
|
|
344
|
+
? undefined
|
|
345
|
+
: output?.appId;
|
|
346
|
+
let app = appId
|
|
347
|
+
? yield* client
|
|
348
|
+
.getApp(appId)
|
|
349
|
+
.pipe(
|
|
350
|
+
Effect.catchIf(isNotFound, () => Effect.succeed(undefined)),
|
|
351
|
+
)
|
|
352
|
+
: undefined;
|
|
353
|
+
if (!app) {
|
|
354
|
+
const result = yield* client
|
|
355
|
+
.createApp({
|
|
356
|
+
projectId,
|
|
357
|
+
displayName,
|
|
358
|
+
regionId: news.regionId,
|
|
359
|
+
branchId: branch.id,
|
|
360
|
+
branchGitName: undefined,
|
|
361
|
+
})
|
|
362
|
+
.pipe(
|
|
363
|
+
Effect.map((app: ApiApp) => ({
|
|
364
|
+
app,
|
|
365
|
+
created: true,
|
|
366
|
+
})),
|
|
367
|
+
Effect.catchIf(isConflict, (conflict) =>
|
|
368
|
+
findApp(client, projectId, displayName, news).pipe(
|
|
369
|
+
Effect.flatMap((app) =>
|
|
370
|
+
app &&
|
|
371
|
+
output?.appId !== undefined &&
|
|
372
|
+
app.id === output.appId
|
|
373
|
+
? Effect.succeed({ app, created: false })
|
|
374
|
+
: Effect.fail(
|
|
375
|
+
new Error(
|
|
376
|
+
`Prisma app '${displayName}' already exists on the requested branch but is not owned by this App resource. Import it with explicit adoption or choose a different display name.`,
|
|
377
|
+
{ cause: conflict },
|
|
378
|
+
),
|
|
379
|
+
),
|
|
380
|
+
),
|
|
381
|
+
),
|
|
382
|
+
),
|
|
383
|
+
);
|
|
384
|
+
app = result.app;
|
|
385
|
+
}
|
|
386
|
+
yield* ensureAppImmutableIdentity(
|
|
387
|
+
app,
|
|
388
|
+
projectId,
|
|
389
|
+
news.regionId ?? output?.regionId ?? app.region.id,
|
|
390
|
+
);
|
|
391
|
+
const needsBranchSync = yield* branchNeedsSync(
|
|
392
|
+
client,
|
|
393
|
+
projectId,
|
|
394
|
+
app,
|
|
395
|
+
news,
|
|
396
|
+
);
|
|
397
|
+
if (app.name !== displayName || needsBranchSync) {
|
|
398
|
+
app = yield* client.updateApp(app.id, {
|
|
399
|
+
displayName,
|
|
400
|
+
branchId: branch.id,
|
|
401
|
+
branchGitName: undefined,
|
|
402
|
+
});
|
|
403
|
+
}
|
|
404
|
+
if (app.name !== displayName || app.branchId !== branch.id) {
|
|
405
|
+
return yield* Effect.fail(
|
|
406
|
+
new Error(
|
|
407
|
+
`Prisma App '${app.id}' did not converge to display name '${displayName}' and branch '${branch.id ?? "null"}'. Refusing to persist mismatched App state.`,
|
|
408
|
+
),
|
|
409
|
+
);
|
|
410
|
+
}
|
|
411
|
+
return attrsFrom(app);
|
|
412
|
+
}),
|
|
413
|
+
delete: Effect.fn(function* ({ output }) {
|
|
414
|
+
if (isPrismaDevId(output.appId)) return;
|
|
415
|
+
const app = yield* client
|
|
416
|
+
.getApp(output.appId)
|
|
417
|
+
.pipe(Effect.catchIf(isNotFound, () => Effect.succeed(undefined)));
|
|
418
|
+
if (!app) return;
|
|
419
|
+
if (
|
|
420
|
+
app.projectId !== output.projectId ||
|
|
421
|
+
app.region.id !== output.regionId
|
|
422
|
+
) {
|
|
423
|
+
return yield* Effect.fail(
|
|
424
|
+
new Error(
|
|
425
|
+
`Prisma App '${app.id}' no longer matches its persisted immutable project and region identity. Refusing to delete a mismatched App.`,
|
|
426
|
+
),
|
|
427
|
+
);
|
|
428
|
+
}
|
|
429
|
+
yield* destroyApp(client, output.appId);
|
|
430
|
+
}),
|
|
431
|
+
};
|
|
432
|
+
}),
|
|
433
|
+
);
|