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
|
@@ -4,10 +4,12 @@ import * as Schedule from "effect/Schedule";
|
|
|
4
4
|
import * as Stream from "effect/Stream";
|
|
5
5
|
|
|
6
6
|
import { deepEqual, isResolved } from "../../Diff.ts";
|
|
7
|
+
import * as ProviderLayer from "../../Local/ProviderLayer.ts";
|
|
7
8
|
import { createPhysicalName } from "../../PhysicalName.ts";
|
|
8
9
|
import * as Provider from "../../Provider.ts";
|
|
9
10
|
import { isResourceOfType, Resource } from "../../Resource.ts";
|
|
10
11
|
import { CloudflareEnvironment } from "../CloudflareEnvironment.ts";
|
|
12
|
+
import { generateLocalId } from "../LocalRuntime.ts";
|
|
11
13
|
import type * as Cloudflare from "../Providers.ts";
|
|
12
14
|
import * as Zone from "../Zone/index.ts";
|
|
13
15
|
|
|
@@ -450,7 +452,7 @@ export declare namespace Bucket {
|
|
|
450
452
|
};
|
|
451
453
|
}
|
|
452
454
|
|
|
453
|
-
export const
|
|
455
|
+
export const ProviderLive = () =>
|
|
454
456
|
Provider.effect(
|
|
455
457
|
Bucket,
|
|
456
458
|
Effect.gen(function* () {
|
|
@@ -1159,6 +1161,58 @@ export const BucketProvider = () =>
|
|
|
1159
1161
|
}),
|
|
1160
1162
|
);
|
|
1161
1163
|
|
|
1164
|
+
/**
|
|
1165
|
+
* Local (dev) provider — the bucket is purely virtual: a `dev:`-prefixed
|
|
1166
|
+
* bucket name keyed into the local workerd R2 simulator (data under
|
|
1167
|
+
* `.alchemy/local/r2`). `toRuntimeBinding` lowers an `r2_bucket` binding
|
|
1168
|
+
* whose bucket name is `dev:`-prefixed onto the local R2 service. R2 has no
|
|
1169
|
+
* opaque id — the name IS the identity — so the `dev:` marker rides on the
|
|
1170
|
+
* name (a `:` can never appear in a real R2 bucket name).
|
|
1171
|
+
*
|
|
1172
|
+
* Custom domains, lifecycle rules, and CORS are deploy-side concerns with
|
|
1173
|
+
* no local behavior; the local attributes report them empty.
|
|
1174
|
+
*/
|
|
1175
|
+
export const ProviderLocal = () =>
|
|
1176
|
+
Provider.succeed(Bucket, {
|
|
1177
|
+
stables: ["accountId"],
|
|
1178
|
+
diff: Effect.fn(function* ({ news = {}, output }) {
|
|
1179
|
+
const { accountId } = yield* yield* CloudflareEnvironment;
|
|
1180
|
+
if (!output?.bucketName) return { action: "update" } as const;
|
|
1181
|
+
if (!isResolved(news)) return undefined;
|
|
1182
|
+
if (output.accountId !== accountId) {
|
|
1183
|
+
return { action: "replace" } as const;
|
|
1184
|
+
}
|
|
1185
|
+
// Fall through to the engine's default prop diff.
|
|
1186
|
+
}),
|
|
1187
|
+
read: Effect.fn(function* ({ output }) {
|
|
1188
|
+
// Purely virtual — the persisted state row is the source of truth.
|
|
1189
|
+
return output ?? undefined;
|
|
1190
|
+
}),
|
|
1191
|
+
reconcile: Effect.fn(function* ({ news = {}, output }) {
|
|
1192
|
+
const { accountId } = yield* yield* CloudflareEnvironment;
|
|
1193
|
+
return {
|
|
1194
|
+
bucketName: output?.bucketName ?? generateLocalId(),
|
|
1195
|
+
storageClass: (news.storageClass ?? "Standard") as Bucket.StorageClass,
|
|
1196
|
+
jurisdiction: (news.jurisdiction ?? "default") as Bucket.Jurisdiction,
|
|
1197
|
+
location: undefined,
|
|
1198
|
+
accountId: output?.accountId ?? accountId,
|
|
1199
|
+
domains: [],
|
|
1200
|
+
lifecycleRules: [],
|
|
1201
|
+
cors: [],
|
|
1202
|
+
};
|
|
1203
|
+
}),
|
|
1204
|
+
delete: Effect.fn(function* () {
|
|
1205
|
+
// The simulator's on-disk data is keyed by the dev name; dropping the
|
|
1206
|
+
// state row is enough — orphaned blobs are reclaimed with `.alchemy`.
|
|
1207
|
+
}),
|
|
1208
|
+
});
|
|
1209
|
+
|
|
1210
|
+
export const BucketProvider = () =>
|
|
1211
|
+
ProviderLayer.dual(Bucket, {
|
|
1212
|
+
local: () => ProviderLocal(),
|
|
1213
|
+
live: () => ProviderLive(),
|
|
1214
|
+
});
|
|
1215
|
+
|
|
1162
1216
|
// R2 can make a newly-created bucket visible to `getBucket` before its
|
|
1163
1217
|
// sub-resource endpoints (custom domains, lifecycle) accept it. Retry only
|
|
1164
1218
|
// that narrow `NoSuchBucket` lag here; not-found sub-resources are still
|
|
@@ -69,6 +69,23 @@ export const makeHelpers = (env: Record<string, any>, bucket: Bucket) => {
|
|
|
69
69
|
): Effect.Effect<T, R2Error> =>
|
|
70
70
|
raw.pipe(Effect.flatMap((raw) => tryPromise(() => fn(raw))));
|
|
71
71
|
|
|
72
|
+
return {
|
|
73
|
+
raw,
|
|
74
|
+
use,
|
|
75
|
+
tryPromise,
|
|
76
|
+
...makeR2ObjectWrappers(tryPromise),
|
|
77
|
+
};
|
|
78
|
+
};
|
|
79
|
+
|
|
80
|
+
/**
|
|
81
|
+
* The `R2Object`/`R2ObjectBody` → Effect-client wrappers, shared by the
|
|
82
|
+
* Worker-binding helpers above and the local platform-proxy helpers
|
|
83
|
+
* (`LocalR2Gateway.ts`), which differ only in how `raw`/`use` obtain the
|
|
84
|
+
* native bucket.
|
|
85
|
+
*/
|
|
86
|
+
export const makeR2ObjectWrappers = (
|
|
87
|
+
tryPromise: <T>(fn: () => Promise<T>) => Effect.Effect<T, R2Error>,
|
|
88
|
+
) => {
|
|
72
89
|
const wrapR2Object = (object: runtime.R2Object): R2Object => ({
|
|
73
90
|
...object,
|
|
74
91
|
writeHttpMetadata: (headers: Headers) =>
|
|
@@ -106,9 +123,6 @@ export const makeHelpers = (env: Record<string, any>, bucket: Bucket) => {
|
|
|
106
123
|
: wrapR2Object(object);
|
|
107
124
|
|
|
108
125
|
return {
|
|
109
|
-
raw,
|
|
110
|
-
use,
|
|
111
|
-
tryPromise,
|
|
112
126
|
wrapR2Object,
|
|
113
127
|
wrapR2ObjectOrBody,
|
|
114
128
|
};
|
|
@@ -2,26 +2,35 @@ import * as Effect from "effect/Effect";
|
|
|
2
2
|
import type * as HttpClient from "effect/unstable/http/HttpClient";
|
|
3
3
|
import { CloudflareEnvironment } from "../CloudflareEnvironment.ts";
|
|
4
4
|
import type { Credentials } from "../Credentials.ts";
|
|
5
|
+
import { dispatchByMode } from "../LocalGateway.ts";
|
|
5
6
|
import type { Bucket } from "./Bucket.ts";
|
|
7
|
+
import type { makeHelpers } from "./BucketBinding.ts";
|
|
6
8
|
import type { R2Auth } from "./BucketHttp.ts";
|
|
9
|
+
import { makeProxyBucketHelpers } from "./LocalR2Gateway.ts";
|
|
7
10
|
|
|
8
11
|
/**
|
|
9
12
|
* Shared scaffolding for the R2 `*Local` binding layers.
|
|
10
13
|
*
|
|
11
14
|
* Resolves the account + captures the ambient current-credentials context at
|
|
12
|
-
* layer construction, then returns the deferred binding callable. The
|
|
13
|
-
* reads the bucket name/jurisdiction as deferred accessors
|
|
14
|
-
* time) and builds the
|
|
15
|
-
*
|
|
15
|
+
* layer construction, then returns the deferred binding callable. The
|
|
16
|
+
* callable reads the bucket name/jurisdiction as deferred accessors
|
|
17
|
+
* (resolved at apply time) and builds the client per resolved name:
|
|
18
|
+
*
|
|
19
|
+
* - a REAL name gets the HTTP client (same builders as the `*Http` variant,
|
|
20
|
+
* authorized with the current CLI credentials — no minted token);
|
|
21
|
+
* - a `dev:` name (local emulation under `alchemy dev`) gets the native
|
|
22
|
+
* binding client (same builders as the `*Binding` variant) over a scoped
|
|
23
|
+
* platform-proxy gateway (see `LocalR2Gateway.ts`).
|
|
16
24
|
*
|
|
17
25
|
* NOT exported from `index.ts`.
|
|
18
26
|
*/
|
|
19
|
-
export const makeLocalBucketBinding = <Client>(
|
|
20
|
-
(
|
|
27
|
+
export const makeLocalBucketBinding = <Client extends object>(options: {
|
|
28
|
+
makeHttpClient: (
|
|
21
29
|
auth: R2Auth,
|
|
22
30
|
bucketName: Effect.Effect<string>,
|
|
23
31
|
jurisdiction: Effect.Effect<string>,
|
|
24
|
-
)
|
|
32
|
+
) => Client;
|
|
33
|
+
makeNativeClient: (helpers: ReturnType<typeof makeHelpers>) => Client;
|
|
25
34
|
}) =>
|
|
26
35
|
Effect.gen(function* () {
|
|
27
36
|
// Account + credentials are ambient during stack-eval (the stack's
|
|
@@ -31,6 +40,11 @@ export const makeLocalBucketBinding = <Client>(makeClient: {
|
|
|
31
40
|
const context = yield* Effect.context<
|
|
32
41
|
Credentials | HttpClient.HttpClient
|
|
33
42
|
>();
|
|
43
|
+
// The FULL ambient context, for the dev-mode gateway: booting an
|
|
44
|
+
// ephemeral workerd needs the platform services and the Cloudflare
|
|
45
|
+
// environment, all present during stack-eval but not statically
|
|
46
|
+
// enumerable here.
|
|
47
|
+
const ambient = yield* Effect.context<never>();
|
|
34
48
|
|
|
35
49
|
const auth: R2Auth = {
|
|
36
50
|
authorize: (eff) => eff.pipe(Effect.provideContext(context)),
|
|
@@ -42,6 +56,9 @@ export const makeLocalBucketBinding = <Client>(makeClient: {
|
|
|
42
56
|
// `host.bind`: the local variant registers no binding.
|
|
43
57
|
const bucketName = yield* bucket.bucketName;
|
|
44
58
|
const jurisdiction = yield* bucket.jurisdiction;
|
|
45
|
-
|
|
59
|
+
const httpClient = options.makeHttpClient(auth, bucketName, jurisdiction);
|
|
60
|
+
return dispatchByMode(bucketName, httpClient, (name) =>
|
|
61
|
+
options.makeNativeClient(makeProxyBucketHelpers(name, ambient)),
|
|
62
|
+
);
|
|
46
63
|
});
|
|
47
64
|
});
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Node-side path into the local workerd R2 simulator, built on the
|
|
3
|
+
* runtime's platform proxy (`PlatformProxy.open` — our `getPlatformProxy`).
|
|
4
|
+
*
|
|
5
|
+
* For a `dev:` bucket there is no cloud bucket to speak REST to. Instead,
|
|
6
|
+
* each operation opens a scoped platform proxy hosting the native R2
|
|
7
|
+
* binding and runs against `proxy.env.R2` — the proxy protocol rehydrates
|
|
8
|
+
* `R2Object`/`R2ObjectBody` on the Node side, matching the surface the
|
|
9
|
+
* Worker-binding client builders (`makeRead` / `makeWrite`) consume, so the
|
|
10
|
+
* `*Local` layers reuse those builders verbatim:
|
|
11
|
+
*
|
|
12
|
+
* Node ── proxy.env.R2.get(...) ──▶ r2 service ──▶ R2BucketObject
|
|
13
|
+
*
|
|
14
|
+
* One proxy boot per operation — slow but correct; the `*Local` layers run
|
|
15
|
+
* in deploy-time Actions, not on a request path. Data lands in the same
|
|
16
|
+
* `{storage}/r2` directory every local worker binding reads.
|
|
17
|
+
*
|
|
18
|
+
* NOT exported from `index.ts` — capability-internal scaffolding.
|
|
19
|
+
*/
|
|
20
|
+
import { R2Bucket } from "@distilled.cloud/cloudflare-runtime/bindings";
|
|
21
|
+
import { open } from "@distilled.cloud/cloudflare-runtime/platform-proxy";
|
|
22
|
+
import type * as runtime from "@cloudflare/workers-types";
|
|
23
|
+
import type * as Context from "effect/Context";
|
|
24
|
+
import * as Effect from "effect/Effect";
|
|
25
|
+
import { gatewayName, localGatewayRuntime } from "../LocalGateway.ts";
|
|
26
|
+
import { makeR2ObjectWrappers, type makeHelpers } from "./BucketBinding.ts";
|
|
27
|
+
import { R2Error } from "./BucketTypes.ts";
|
|
28
|
+
|
|
29
|
+
const tryPromise = <T>(fn: () => Promise<T>): Effect.Effect<T, R2Error> =>
|
|
30
|
+
Effect.tryPromise({
|
|
31
|
+
try: fn,
|
|
32
|
+
catch: (error: any) =>
|
|
33
|
+
new R2Error({
|
|
34
|
+
message: error?.message ?? "Unknown error",
|
|
35
|
+
cause: error,
|
|
36
|
+
}),
|
|
37
|
+
});
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* Binding-client helpers backed by a per-operation platform proxy instead
|
|
41
|
+
* of a Worker's `env`. `raw` cannot be satisfied — a native bucket only
|
|
42
|
+
* lives as long as its proxy's scope — so it dies with guidance.
|
|
43
|
+
*/
|
|
44
|
+
export const makeProxyBucketHelpers = (
|
|
45
|
+
bucketName: string,
|
|
46
|
+
/**
|
|
47
|
+
* The FULL ambient stack-eval context: platform services for booting
|
|
48
|
+
* workerd plus `CloudflareEnvironment`/`AlchemyContext` for the runtime
|
|
49
|
+
* layer.
|
|
50
|
+
*/
|
|
51
|
+
ambient: Context.Context<never>,
|
|
52
|
+
): ReturnType<typeof makeHelpers> => {
|
|
53
|
+
const use = <T>(
|
|
54
|
+
fn: (raw: runtime.R2Bucket) => Promise<T>,
|
|
55
|
+
): Effect.Effect<T, R2Error> =>
|
|
56
|
+
Effect.scoped(
|
|
57
|
+
Effect.gen(function* () {
|
|
58
|
+
const proxy = yield* open({
|
|
59
|
+
name: gatewayName("alchemy-r2-gateway", bucketName),
|
|
60
|
+
bindings: [R2Bucket.local({ binding: "R2", id: bucketName })],
|
|
61
|
+
});
|
|
62
|
+
const bucket = (proxy.env as Record<string, unknown>)
|
|
63
|
+
.R2 as runtime.R2Bucket;
|
|
64
|
+
return yield* tryPromise(() => fn(bucket));
|
|
65
|
+
}),
|
|
66
|
+
).pipe(
|
|
67
|
+
Effect.provide(localGatewayRuntime),
|
|
68
|
+
// The gateway layer's platform requirements are satisfied by the
|
|
69
|
+
// ambient stack-eval context; `Context<never>` can't prove that
|
|
70
|
+
// statically, so erase the leftover R (and the proxy's own infra
|
|
71
|
+
// error channel) with a cast — mirroring D1's gateway.
|
|
72
|
+
Effect.provideContext(ambient),
|
|
73
|
+
) as Effect.Effect<T, R2Error>;
|
|
74
|
+
|
|
75
|
+
const raw = Effect.die(
|
|
76
|
+
new R2Error({
|
|
77
|
+
message:
|
|
78
|
+
"A locally-emulated R2 bucket has no long-lived native binding outside a Worker; use put/get/head/list/delete (each runs through a scoped local gateway).",
|
|
79
|
+
cause: new Error("unsupported"),
|
|
80
|
+
}),
|
|
81
|
+
) as Effect.Effect<runtime.R2Bucket>;
|
|
82
|
+
|
|
83
|
+
return { raw, use, tryPromise, ...makeR2ObjectWrappers(tryPromise) };
|
|
84
|
+
};
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import * as Effect from "effect/Effect";
|
|
2
2
|
import * as Layer from "effect/Layer";
|
|
3
3
|
import { makeLocalBucketBinding } from "./BucketLocal.ts";
|
|
4
|
+
import { makeRead } from "./ReadBucketBinding.ts";
|
|
4
5
|
import { ReadBucket } from "./ReadBucket.ts";
|
|
5
6
|
import { makeReadR2HttpClient } from "./ReadBucketHttp.ts";
|
|
6
7
|
|
|
@@ -29,5 +30,10 @@ import { makeReadR2HttpClient } from "./ReadBucketHttp.ts";
|
|
|
29
30
|
*/
|
|
30
31
|
export const ReadBucketLocal = Layer.effect(
|
|
31
32
|
ReadBucket,
|
|
32
|
-
Effect.suspend(() =>
|
|
33
|
+
Effect.suspend(() =>
|
|
34
|
+
makeLocalBucketBinding({
|
|
35
|
+
makeHttpClient: makeReadR2HttpClient,
|
|
36
|
+
makeNativeClient: makeRead,
|
|
37
|
+
}),
|
|
38
|
+
),
|
|
33
39
|
);
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import * as Effect from "effect/Effect";
|
|
2
2
|
import * as Layer from "effect/Layer";
|
|
3
3
|
import { makeLocalBucketBinding } from "./BucketLocal.ts";
|
|
4
|
+
import { makeReadWrite } from "./ReadWriteBucketBinding.ts";
|
|
4
5
|
import { ReadWriteBucket } from "./ReadWriteBucket.ts";
|
|
5
6
|
import { makeReadWriteR2HttpClient } from "./ReadWriteBucketHttp.ts";
|
|
6
7
|
|
|
@@ -32,5 +33,10 @@ import { makeReadWriteR2HttpClient } from "./ReadWriteBucketHttp.ts";
|
|
|
32
33
|
*/
|
|
33
34
|
export const ReadWriteBucketLocal = Layer.effect(
|
|
34
35
|
ReadWriteBucket,
|
|
35
|
-
Effect.suspend(() =>
|
|
36
|
+
Effect.suspend(() =>
|
|
37
|
+
makeLocalBucketBinding({
|
|
38
|
+
makeHttpClient: makeReadWriteR2HttpClient,
|
|
39
|
+
makeNativeClient: makeReadWrite,
|
|
40
|
+
}),
|
|
41
|
+
),
|
|
36
42
|
);
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import * as Effect from "effect/Effect";
|
|
2
2
|
import * as Layer from "effect/Layer";
|
|
3
3
|
import { makeLocalBucketBinding } from "./BucketLocal.ts";
|
|
4
|
+
import { makeWrite } from "./WriteBucketBinding.ts";
|
|
4
5
|
import { WriteBucket } from "./WriteBucket.ts";
|
|
5
6
|
import { makeWriteR2HttpClient } from "./WriteBucketHttp.ts";
|
|
6
7
|
|
|
@@ -29,5 +30,10 @@ import { makeWriteR2HttpClient } from "./WriteBucketHttp.ts";
|
|
|
29
30
|
*/
|
|
30
31
|
export const WriteBucketLocal = Layer.effect(
|
|
31
32
|
WriteBucket,
|
|
32
|
-
Effect.suspend(() =>
|
|
33
|
+
Effect.suspend(() =>
|
|
34
|
+
makeLocalBucketBinding({
|
|
35
|
+
makeHttpClient: makeWriteR2HttpClient,
|
|
36
|
+
makeNativeClient: makeWrite,
|
|
37
|
+
}),
|
|
38
|
+
),
|
|
33
39
|
);
|
|
@@ -194,7 +194,11 @@ export const AccountEntrypointProvider = () =>
|
|
|
194
194
|
{ concurrency: 10 },
|
|
195
195
|
);
|
|
196
196
|
return rows.filter(
|
|
197
|
-
(row): row is AccountEntrypointAttributes =>
|
|
197
|
+
(row): row is AccountEntrypointAttributes =>
|
|
198
|
+
// An entrypoint with zero rules is inert — it's what destroy
|
|
199
|
+
// leaves behind after emptying the rules we own. Don't surface
|
|
200
|
+
// it as a resource.
|
|
201
|
+
row !== undefined && row.rules.length > 0,
|
|
198
202
|
);
|
|
199
203
|
}),
|
|
200
204
|
|
|
@@ -156,13 +156,23 @@ export const RulesetProvider = () =>
|
|
|
156
156
|
return toRulesetAttributes(zoneId, ruleset);
|
|
157
157
|
}),
|
|
158
158
|
delete: Effect.fn(function* ({ olds, output }) {
|
|
159
|
+
// This resource owns the entire phase entrypoint, so destroy removes
|
|
160
|
+
// the entrypoint ruleset itself (emptying the rules would leave an
|
|
161
|
+
// inert-but-listed entrypoint behind on the zone forever). Observe
|
|
162
|
+
// first so the delete is idempotent and never acts on a stale id.
|
|
163
|
+
const entrypoint = yield* rulesets
|
|
164
|
+
.getPhasForZone({
|
|
165
|
+
zoneId: output.zoneId,
|
|
166
|
+
rulesetPhase: output.phase ?? olds.phase,
|
|
167
|
+
})
|
|
168
|
+
.pipe(
|
|
169
|
+
Effect.catchTag("RulesetNotFound", () => Effect.succeed(undefined)),
|
|
170
|
+
);
|
|
171
|
+
if (entrypoint === undefined) return;
|
|
159
172
|
yield* rulesets
|
|
160
|
-
.
|
|
173
|
+
.deleteRulesetForZone({
|
|
161
174
|
zoneId: output.zoneId,
|
|
162
|
-
|
|
163
|
-
name: output.name,
|
|
164
|
-
description: output.description,
|
|
165
|
-
rules: [],
|
|
175
|
+
rulesetId: entrypoint.id,
|
|
166
176
|
})
|
|
167
177
|
.pipe(Effect.catchTag("RulesetNotFound", () => Effect.void));
|
|
168
178
|
}),
|
|
@@ -221,7 +231,11 @@ export const RulesetProvider = () =>
|
|
|
221
231
|
),
|
|
222
232
|
Effect.map((items) =>
|
|
223
233
|
items.filter(
|
|
224
|
-
(item): item is Ruleset["Attributes"] =>
|
|
234
|
+
(item): item is Ruleset["Attributes"] =>
|
|
235
|
+
// An entrypoint with zero rules is inert — it's what other
|
|
236
|
+
// owners (e.g. Worker redirect cleanup) leave behind after
|
|
237
|
+
// removing their rules. Don't surface it as a resource.
|
|
238
|
+
item !== undefined && item.rules.length > 0,
|
|
225
239
|
),
|
|
226
240
|
),
|
|
227
241
|
// Plan-gated / partially-provisioned zones reject the route.
|
|
@@ -327,10 +327,17 @@ const findSite = (
|
|
|
327
327
|
Stream.runCollect,
|
|
328
328
|
Effect.map((chunk) =>
|
|
329
329
|
Array.from(chunk)
|
|
330
|
-
.filter(
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
330
|
+
.filter((site) =>
|
|
331
|
+
host !== undefined
|
|
332
|
+
? site.host === host
|
|
333
|
+
: // A zone-identity site has no `host`. Host-scoped sites on the
|
|
334
|
+
// zone's subdomains ALSO carry `ruleset.zoneTag`, so a zone
|
|
335
|
+
// probe must only match true zone sites — otherwise an
|
|
336
|
+
// unrelated host site satisfies the probe and the engine
|
|
337
|
+
// refuses adoption with OwnedBySomeoneElse.
|
|
338
|
+
zoneTag !== undefined &&
|
|
339
|
+
!site.host &&
|
|
340
|
+
site.ruleset?.zoneTag === zoneTag,
|
|
334
341
|
)
|
|
335
342
|
.sort((a, b) => (a.created ?? "").localeCompare(b.created ?? ""))
|
|
336
343
|
.at(0),
|
|
@@ -2,6 +2,7 @@ import * as zeroTrust from "@distilled.cloud/cloudflare/zero-trust";
|
|
|
2
2
|
import * as Effect from "effect/Effect";
|
|
3
3
|
import * as Option from "effect/Option";
|
|
4
4
|
import * as Redacted from "effect/Redacted";
|
|
5
|
+
import * as Schedule from "effect/Schedule";
|
|
5
6
|
import * as Stream from "effect/Stream";
|
|
6
7
|
|
|
7
8
|
import { isResolved } from "../../Diff.ts";
|
|
@@ -322,12 +323,33 @@ export const TunnelProvider = () =>
|
|
|
322
323
|
};
|
|
323
324
|
}),
|
|
324
325
|
delete: Effect.fn(function* ({ output }) {
|
|
326
|
+
// Observe — an already-(soft-)deleted tunnel means nothing to do.
|
|
327
|
+
const observed = yield* zeroTrust
|
|
328
|
+
.getTunnelCloudflared({
|
|
329
|
+
accountId: output.accountId,
|
|
330
|
+
tunnelId: output.tunnelId,
|
|
331
|
+
})
|
|
332
|
+
.pipe(
|
|
333
|
+
Effect.catchTag("TunnelNotFound", () => Effect.succeed(undefined)),
|
|
334
|
+
);
|
|
335
|
+
if (observed === undefined || observed.deletedAt != null) return;
|
|
336
|
+
// Delete — sibling route/config deletions propagate asynchronously and
|
|
337
|
+
// Cloudflare transiently rejects the tunnel delete while they drain.
|
|
338
|
+
// Retry bounded and let a persistent failure surface: a swallowed
|
|
339
|
+
// failure silently leaks the tunnel.
|
|
325
340
|
yield* zeroTrust
|
|
326
341
|
.deleteTunnelCloudflared({
|
|
327
342
|
accountId: output.accountId,
|
|
328
343
|
tunnelId: output.tunnelId,
|
|
329
344
|
})
|
|
330
|
-
.pipe(
|
|
345
|
+
.pipe(
|
|
346
|
+
Effect.retry({
|
|
347
|
+
schedule: Schedule.max([
|
|
348
|
+
Schedule.spaced("3 seconds"),
|
|
349
|
+
Schedule.recurs(10),
|
|
350
|
+
]),
|
|
351
|
+
}),
|
|
352
|
+
);
|
|
331
353
|
}),
|
|
332
354
|
read: Effect.fn(function* ({ id, output, olds }) {
|
|
333
355
|
const { accountId } = yield* yield* CloudflareEnvironment;
|
|
@@ -6,10 +6,15 @@ import * as Command from "../../Command/index.ts";
|
|
|
6
6
|
import type { Input, InputProps } from "../../Input.ts";
|
|
7
7
|
import * as Namespace from "../../Namespace.ts";
|
|
8
8
|
import * as Output from "../../Output.ts";
|
|
9
|
-
import {
|
|
9
|
+
import {
|
|
10
|
+
effectClass,
|
|
11
|
+
isYieldableEffectLike,
|
|
12
|
+
type YieldableEffectLike,
|
|
13
|
+
} from "../../Util/effect.ts";
|
|
10
14
|
import { asEffect } from "../../Util/types.ts";
|
|
11
15
|
import type { Providers } from "../Providers.ts";
|
|
12
16
|
import type { AssetsConfig } from "../Workers/Assets.ts";
|
|
17
|
+
import { isContainerDecl } from "../Workers/WorkerAsyncBindings.ts";
|
|
13
18
|
import {
|
|
14
19
|
Worker,
|
|
15
20
|
type NormalizedBindings,
|
|
@@ -95,13 +100,21 @@ type StaticSiteWorker<Bindings extends WorkerBindingProps> = Worker<{
|
|
|
95
100
|
* @category Workers & Compute
|
|
96
101
|
*
|
|
97
102
|
* @section Basic Usage
|
|
98
|
-
* Point `command` at your build script
|
|
99
|
-
* output
|
|
100
|
-
*
|
|
101
|
-
*
|
|
103
|
+
* Point `command` at your build script and `outdir` at where it writes
|
|
104
|
+
* output. Alchemy runs the command, hashes the output, and deploys it as
|
|
105
|
+
* an assets-only Worker — no Worker code is uploaded, and Cloudflare's
|
|
106
|
+
* asset layer serves every request itself.
|
|
102
107
|
*
|
|
103
|
-
*
|
|
104
|
-
*
|
|
108
|
+
* @example Deploying a Hugo site
|
|
109
|
+
* ```typescript
|
|
110
|
+
* const site = yield* Cloudflare.Website.StaticSite("Blog", {
|
|
111
|
+
* command: "hugo --minify",
|
|
112
|
+
* outdir: "public",
|
|
113
|
+
* });
|
|
114
|
+
* ```
|
|
115
|
+
*
|
|
116
|
+
* Provide `main` to put your own Worker in front of the assets instead.
|
|
117
|
+
* The Worker receives an `ASSETS` binding it can delegate to:
|
|
105
118
|
*
|
|
106
119
|
* ```typescript
|
|
107
120
|
* // src/worker.ts
|
|
@@ -111,7 +124,7 @@ type StaticSiteWorker<Bindings extends WorkerBindingProps> = Worker<{
|
|
|
111
124
|
* };
|
|
112
125
|
* ```
|
|
113
126
|
*
|
|
114
|
-
* @example
|
|
127
|
+
* @example Custom Worker in front of the assets
|
|
115
128
|
* ```typescript
|
|
116
129
|
* const site = yield* Cloudflare.Website.StaticSite("Blog", {
|
|
117
130
|
* command: "hugo --minify",
|
|
@@ -167,6 +180,25 @@ type StaticSiteWorker<Bindings extends WorkerBindingProps> = Worker<{
|
|
|
167
180
|
* });
|
|
168
181
|
* ```
|
|
169
182
|
*
|
|
183
|
+
* @example Rebuilding when a sibling workspace package changes
|
|
184
|
+
* The default scope only hashes files under `cwd` (plus the nearest
|
|
185
|
+
* lockfile), so edits to a sibling workspace package the app imports do
|
|
186
|
+
* not retrigger the build on their own. Add the sibling's sources with a
|
|
187
|
+
* `../` include glob — and keep `lockfile: true`, since providing
|
|
188
|
+
* `include` otherwise drops the lockfile from the hash:
|
|
189
|
+
* ```typescript
|
|
190
|
+
* const site = yield* Cloudflare.Website.StaticSite("Web", {
|
|
191
|
+
* cwd: "apps/web",
|
|
192
|
+
* command: "npm run build",
|
|
193
|
+
* outdir: "dist",
|
|
194
|
+
* main: "./src/worker.ts",
|
|
195
|
+
* memo: {
|
|
196
|
+
* include: ["**\/*", "../../packages/env/src/**"],
|
|
197
|
+
* lockfile: true,
|
|
198
|
+
* },
|
|
199
|
+
* });
|
|
200
|
+
* ```
|
|
201
|
+
*
|
|
170
202
|
* @section Class Form
|
|
171
203
|
* Calling `StaticSite` with no arguments returns a constructor you can
|
|
172
204
|
* `extend` to declare the Worker as a named class. The class is both
|
|
@@ -233,7 +265,7 @@ const makeStaticSite = <
|
|
|
233
265
|
cwd:
|
|
234
266
|
props.dev.cwd ??
|
|
235
267
|
(typeof props.cwd === "string" ? props.cwd : undefined),
|
|
236
|
-
env: serializeEnv(props.dev.env ?? props.env),
|
|
268
|
+
env: yield* serializeEnv(props.dev.env ?? props.env),
|
|
237
269
|
}).pipe(
|
|
238
270
|
Effect.map((d) =>
|
|
239
271
|
Output.map(d.url, (url) => ({
|
|
@@ -250,17 +282,12 @@ const makeStaticSite = <
|
|
|
250
282
|
cwd: props.cwd,
|
|
251
283
|
memo: props.memo,
|
|
252
284
|
outdir: props.outdir,
|
|
253
|
-
env: serializeEnv(props.env),
|
|
285
|
+
env: yield* serializeEnv(props.env),
|
|
254
286
|
});
|
|
255
287
|
|
|
256
|
-
// Pure-static sites
|
|
257
|
-
//
|
|
258
|
-
//
|
|
259
|
-
const fallbackScript =
|
|
260
|
-
props.main == null && props.script == null
|
|
261
|
-
? `export default { fetch: (request, env) => env.ASSETS.fetch(request) };`
|
|
262
|
-
: undefined;
|
|
263
|
-
|
|
288
|
+
// Pure-static sites (neither `main` nor `script`) deploy as
|
|
289
|
+
// assets-only Workers: no script is uploaded and Cloudflare's asset
|
|
290
|
+
// layer serves every request itself.
|
|
264
291
|
return yield* Worker<Bindings, WorkerAssetsConfig, Req>("Worker", {
|
|
265
292
|
...props,
|
|
266
293
|
assets: build
|
|
@@ -274,21 +301,83 @@ const makeStaticSite = <
|
|
|
274
301
|
// is serving the content. The Worker resource still exists in
|
|
275
302
|
// state with a stub Attributes shape.
|
|
276
303
|
dev: dev ? { mode: "external", url: dev.url } : undefined,
|
|
277
|
-
script:
|
|
304
|
+
script: props.script,
|
|
278
305
|
});
|
|
279
306
|
}).pipe(Namespace.push(id));
|
|
280
307
|
|
|
281
|
-
|
|
308
|
+
/**
|
|
309
|
+
* Serialize the site's `env` for the build/dev subprocess. The same record
|
|
310
|
+
* doubles as the Worker's binding props, so entries may be plain strings,
|
|
311
|
+
* `Redacted` secrets, `effect/Config` values, `Output` references, or
|
|
312
|
+
* binding Effects:
|
|
313
|
+
*
|
|
314
|
+
* - strings and `Redacted` values pass through unchanged
|
|
315
|
+
* - `Config` (and any other runnable Effect) is resolved here, at stack
|
|
316
|
+
* construction — passing it through unresolved would hand the subprocess
|
|
317
|
+
* the JSON-serialized `Config` object (`{"_id":"Config"}`) instead of its
|
|
318
|
+
* value (#796)
|
|
319
|
+
* - `Output` references resolve at reconcile; the resolved value is
|
|
320
|
+
* serialized the same way inline values are (an `Output<object>` must
|
|
321
|
+
* reach the subprocess as JSON, not `[object Object]`)
|
|
322
|
+
* - binding Effects (`~alchemy/Kind`-marked, e.g. a `WorkerLoader`) and
|
|
323
|
+
* `Cloudflare.Container` declarations have no env-var representation and
|
|
324
|
+
* are dropped
|
|
325
|
+
* - remaining plain values (`null`, numbers, JSON objects) are stringified
|
|
326
|
+
*/
|
|
327
|
+
const serializeEnv = Effect.fn(function* (
|
|
282
328
|
env: Input<
|
|
283
329
|
| WorkerBindingProps
|
|
284
330
|
| Record<string, string | Redacted.Redacted<string>>
|
|
285
331
|
| undefined
|
|
286
332
|
>,
|
|
287
|
-
)
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
})
|
|
294
|
-
|
|
333
|
+
) {
|
|
334
|
+
const entries: [string, unknown][] = [];
|
|
335
|
+
for (const [k, v] of Object.entries(env ?? {})) {
|
|
336
|
+
if (v === undefined) continue;
|
|
337
|
+
if (typeof v === "string" || Redacted.isRedacted(v)) {
|
|
338
|
+
entries.push([k, v]);
|
|
339
|
+
} else if (Output.isOutput(v)) {
|
|
340
|
+
entries.push([k, Output.map(v, serializeEnvValue)]);
|
|
341
|
+
} else if (isContainerDecl(v)) {
|
|
342
|
+
// A `Cloudflare.Container` declaration is Effect-shaped but is a
|
|
343
|
+
// binding (DO namespace + ContainerApplication) — yielding it would
|
|
344
|
+
// resolve the started-instance tag, which only exists inside a
|
|
345
|
+
// Durable Object (#997). Deploy-time only, nothing to expose to the
|
|
346
|
+
// build subprocess.
|
|
347
|
+
continue;
|
|
348
|
+
} else if (isYieldableEffectLike(v)) {
|
|
349
|
+
const resolved = serializeEnvValue(
|
|
350
|
+
yield* asEffect(v as YieldableEffectLike<unknown, unknown, never>).pipe(
|
|
351
|
+
Effect.orDie,
|
|
352
|
+
),
|
|
353
|
+
);
|
|
354
|
+
if (resolved === undefined) continue;
|
|
355
|
+
entries.push([k, resolved]);
|
|
356
|
+
} else if (v !== null && typeof v === "object" && "~alchemy/Kind" in v) {
|
|
357
|
+
// A binding Effect (e.g. WorkerLoader) — deploy-time only, nothing to
|
|
358
|
+
// expose to the build subprocess.
|
|
359
|
+
continue;
|
|
360
|
+
} else {
|
|
361
|
+
entries.push([k, JSON.stringify(v)]);
|
|
362
|
+
}
|
|
363
|
+
}
|
|
364
|
+
return Object.fromEntries(entries) as Record<
|
|
365
|
+
string,
|
|
366
|
+
string | Redacted.Redacted<string>
|
|
367
|
+
>;
|
|
368
|
+
});
|
|
369
|
+
|
|
370
|
+
/**
|
|
371
|
+
* Serialize one resolved env value for the build/dev subprocess: strings and
|
|
372
|
+
* `Redacted` pass through, everything else becomes JSON.
|
|
373
|
+
*/
|
|
374
|
+
const serializeEnvValue = (
|
|
375
|
+
value: unknown,
|
|
376
|
+
): string | Redacted.Redacted<string> | undefined =>
|
|
377
|
+
value === undefined
|
|
378
|
+
? undefined
|
|
379
|
+
: typeof value === "string"
|
|
380
|
+
? value
|
|
381
|
+
: Redacted.isRedacted(value)
|
|
382
|
+
? (value as Redacted.Redacted<string>)
|
|
383
|
+
: JSON.stringify(value);
|