alchemy 2.0.0-beta.57 → 2.0.0-beta.58
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/README.md +1 -1
- package/bin/exec.js +68 -49
- package/bin/exec.js.map +1 -1
- package/lib/AI/Agent.d.ts +30 -0
- package/lib/AI/Agent.d.ts.map +1 -0
- package/lib/AI/Agent.js +14 -0
- package/lib/AI/Agent.js.map +1 -0
- package/lib/AI/Parameter.d.ts +19 -0
- package/lib/AI/Parameter.d.ts.map +1 -0
- package/lib/AI/Parameter.js +12 -0
- package/lib/AI/Parameter.js.map +1 -0
- package/lib/AI/Tool.d.ts +37 -0
- package/lib/AI/Tool.d.ts.map +1 -0
- package/lib/AI/Tool.js +11 -0
- package/lib/AI/Tool.js.map +1 -0
- package/lib/AI/index.d.ts +4 -0
- package/lib/AI/index.d.ts.map +1 -0
- package/lib/AI/index.js +4 -0
- package/lib/AI/index.js.map +1 -0
- package/lib/AWS/ACM/Certificate.d.ts +4 -0
- package/lib/AWS/ACM/Certificate.d.ts.map +1 -1
- package/lib/AWS/ACM/Certificate.js +18 -11
- package/lib/AWS/ACM/Certificate.js.map +1 -1
- package/lib/AWS/Assets.js +1 -1
- package/lib/AWS/Assets.js.map +1 -1
- package/lib/AWS/AuthProvider.js +3 -3
- package/lib/AWS/AuthProvider.js.map +1 -1
- package/lib/AWS/AutoScaling/LaunchTemplate.js +1 -1
- package/lib/AWS/AutoScaling/LaunchTemplate.js.map +1 -1
- package/lib/AWS/CloudFront/Distribution.js +1 -1
- package/lib/AWS/CloudFront/Distribution.js.map +1 -1
- package/lib/AWS/CloudWatch/DescribeAlarmContributors.d.ts +4 -3
- package/lib/AWS/CloudWatch/DescribeAlarmContributors.d.ts.map +1 -1
- package/lib/AWS/CloudWatch/DescribeAlarmContributors.js.map +1 -1
- package/lib/AWS/CloudWatch/DescribeAlarmHistory.d.ts +4 -3
- package/lib/AWS/CloudWatch/DescribeAlarmHistory.d.ts.map +1 -1
- package/lib/AWS/CloudWatch/DescribeAlarmHistory.js.map +1 -1
- package/lib/AWS/CloudWatch/DescribeAlarms.d.ts +4 -3
- package/lib/AWS/CloudWatch/DescribeAlarms.d.ts.map +1 -1
- package/lib/AWS/CloudWatch/DescribeAlarms.js.map +1 -1
- package/lib/AWS/CloudWatch/DescribeAlarmsForMetric.d.ts +4 -3
- package/lib/AWS/CloudWatch/DescribeAlarmsForMetric.d.ts.map +1 -1
- package/lib/AWS/CloudWatch/DescribeAlarmsForMetric.js.map +1 -1
- package/lib/AWS/CloudWatch/DescribeAnomalyDetectors.d.ts +4 -3
- package/lib/AWS/CloudWatch/DescribeAnomalyDetectors.d.ts.map +1 -1
- package/lib/AWS/CloudWatch/DescribeAnomalyDetectors.js.map +1 -1
- package/lib/AWS/CloudWatch/DescribeInsightRules.d.ts +4 -3
- package/lib/AWS/CloudWatch/DescribeInsightRules.d.ts.map +1 -1
- package/lib/AWS/CloudWatch/DescribeInsightRules.js.map +1 -1
- package/lib/AWS/CloudWatch/DisableAlarmActions.d.ts +4 -3
- package/lib/AWS/CloudWatch/DisableAlarmActions.d.ts.map +1 -1
- package/lib/AWS/CloudWatch/DisableAlarmActions.js.map +1 -1
- package/lib/AWS/CloudWatch/DisableInsightRules.d.ts +4 -3
- package/lib/AWS/CloudWatch/DisableInsightRules.d.ts.map +1 -1
- package/lib/AWS/CloudWatch/DisableInsightRules.js.map +1 -1
- package/lib/AWS/CloudWatch/EnableAlarmActions.d.ts +4 -3
- package/lib/AWS/CloudWatch/EnableAlarmActions.d.ts.map +1 -1
- package/lib/AWS/CloudWatch/EnableAlarmActions.js.map +1 -1
- package/lib/AWS/CloudWatch/GetAlarmMuteRule.d.ts +4 -3
- package/lib/AWS/CloudWatch/GetAlarmMuteRule.d.ts.map +1 -1
- package/lib/AWS/CloudWatch/GetAlarmMuteRule.js.map +1 -1
- package/lib/AWS/CloudWatch/GetDashboard.d.ts +4 -3
- package/lib/AWS/CloudWatch/GetDashboard.d.ts.map +1 -1
- package/lib/AWS/CloudWatch/GetDashboard.js.map +1 -1
- package/lib/AWS/CloudWatch/GetInsightRuleReport.d.ts +4 -3
- package/lib/AWS/CloudWatch/GetInsightRuleReport.d.ts.map +1 -1
- package/lib/AWS/CloudWatch/GetInsightRuleReport.js.map +1 -1
- package/lib/AWS/CloudWatch/GetMetricData.d.ts +4 -3
- package/lib/AWS/CloudWatch/GetMetricData.d.ts.map +1 -1
- package/lib/AWS/CloudWatch/GetMetricData.js.map +1 -1
- package/lib/AWS/CloudWatch/GetMetricStatistics.d.ts +4 -3
- package/lib/AWS/CloudWatch/GetMetricStatistics.d.ts.map +1 -1
- package/lib/AWS/CloudWatch/GetMetricStatistics.js.map +1 -1
- package/lib/AWS/CloudWatch/GetMetricStream.d.ts +4 -3
- package/lib/AWS/CloudWatch/GetMetricStream.d.ts.map +1 -1
- package/lib/AWS/CloudWatch/GetMetricStream.js.map +1 -1
- package/lib/AWS/CloudWatch/GetMetricWidgetImage.d.ts +4 -3
- package/lib/AWS/CloudWatch/GetMetricWidgetImage.d.ts.map +1 -1
- package/lib/AWS/CloudWatch/GetMetricWidgetImage.js.map +1 -1
- package/lib/AWS/CloudWatch/ListAlarmMuteRules.d.ts +4 -3
- package/lib/AWS/CloudWatch/ListAlarmMuteRules.d.ts.map +1 -1
- package/lib/AWS/CloudWatch/ListAlarmMuteRules.js.map +1 -1
- package/lib/AWS/CloudWatch/ListDashboards.d.ts +4 -3
- package/lib/AWS/CloudWatch/ListDashboards.d.ts.map +1 -1
- package/lib/AWS/CloudWatch/ListDashboards.js.map +1 -1
- package/lib/AWS/CloudWatch/ListManagedInsightRules.d.ts +4 -3
- package/lib/AWS/CloudWatch/ListManagedInsightRules.d.ts.map +1 -1
- package/lib/AWS/CloudWatch/ListManagedInsightRules.js.map +1 -1
- package/lib/AWS/CloudWatch/ListMetricStreams.d.ts +4 -3
- package/lib/AWS/CloudWatch/ListMetricStreams.d.ts.map +1 -1
- package/lib/AWS/CloudWatch/ListMetricStreams.js.map +1 -1
- package/lib/AWS/CloudWatch/ListMetrics.d.ts +4 -3
- package/lib/AWS/CloudWatch/ListMetrics.d.ts.map +1 -1
- package/lib/AWS/CloudWatch/ListMetrics.js.map +1 -1
- package/lib/AWS/CloudWatch/ListTagsForResource.d.ts +4 -3
- package/lib/AWS/CloudWatch/ListTagsForResource.d.ts.map +1 -1
- package/lib/AWS/CloudWatch/ListTagsForResource.js.map +1 -1
- package/lib/AWS/CloudWatch/PutMetricData.d.ts +4 -3
- package/lib/AWS/CloudWatch/PutMetricData.d.ts.map +1 -1
- package/lib/AWS/CloudWatch/PutMetricData.js.map +1 -1
- package/lib/AWS/CloudWatch/SetAlarmState.d.ts +4 -3
- package/lib/AWS/CloudWatch/SetAlarmState.d.ts.map +1 -1
- package/lib/AWS/CloudWatch/SetAlarmState.js.map +1 -1
- package/lib/AWS/Credentials.d.ts +5 -0
- package/lib/AWS/Credentials.d.ts.map +1 -1
- package/lib/AWS/Credentials.js.map +1 -1
- package/lib/AWS/DynamoDB/BatchExecuteStatement.d.ts +4 -3
- package/lib/AWS/DynamoDB/BatchExecuteStatement.d.ts.map +1 -1
- package/lib/AWS/DynamoDB/BatchExecuteStatement.js.map +1 -1
- package/lib/AWS/DynamoDB/BatchGetItem.d.ts +4 -3
- package/lib/AWS/DynamoDB/BatchGetItem.d.ts.map +1 -1
- package/lib/AWS/DynamoDB/BatchGetItem.js +4 -4
- package/lib/AWS/DynamoDB/BatchGetItem.js.map +1 -1
- package/lib/AWS/DynamoDB/BatchWriteItem.d.ts +4 -3
- package/lib/AWS/DynamoDB/BatchWriteItem.d.ts.map +1 -1
- package/lib/AWS/DynamoDB/BatchWriteItem.js +4 -4
- package/lib/AWS/DynamoDB/BatchWriteItem.js.map +1 -1
- package/lib/AWS/DynamoDB/DeleteItem.d.ts +4 -3
- package/lib/AWS/DynamoDB/DeleteItem.d.ts.map +1 -1
- package/lib/AWS/DynamoDB/DeleteItem.js.map +1 -1
- package/lib/AWS/DynamoDB/DescribeTable.d.ts +4 -3
- package/lib/AWS/DynamoDB/DescribeTable.d.ts.map +1 -1
- package/lib/AWS/DynamoDB/DescribeTable.js.map +1 -1
- package/lib/AWS/DynamoDB/DescribeTimeToLive.d.ts +4 -3
- package/lib/AWS/DynamoDB/DescribeTimeToLive.d.ts.map +1 -1
- package/lib/AWS/DynamoDB/DescribeTimeToLive.js.map +1 -1
- package/lib/AWS/DynamoDB/ExecuteStatement.d.ts +4 -3
- package/lib/AWS/DynamoDB/ExecuteStatement.d.ts.map +1 -1
- package/lib/AWS/DynamoDB/ExecuteStatement.js.map +1 -1
- package/lib/AWS/DynamoDB/ExecuteTransaction.d.ts +4 -3
- package/lib/AWS/DynamoDB/ExecuteTransaction.d.ts.map +1 -1
- package/lib/AWS/DynamoDB/ExecuteTransaction.js.map +1 -1
- package/lib/AWS/DynamoDB/GetItem.d.ts +4 -3
- package/lib/AWS/DynamoDB/GetItem.d.ts.map +1 -1
- package/lib/AWS/DynamoDB/GetItem.js.map +1 -1
- package/lib/AWS/DynamoDB/ListTables.d.ts +4 -3
- package/lib/AWS/DynamoDB/ListTables.d.ts.map +1 -1
- package/lib/AWS/DynamoDB/ListTables.js.map +1 -1
- package/lib/AWS/DynamoDB/ListTagsOfResource.d.ts +4 -3
- package/lib/AWS/DynamoDB/ListTagsOfResource.d.ts.map +1 -1
- package/lib/AWS/DynamoDB/ListTagsOfResource.js.map +1 -1
- package/lib/AWS/DynamoDB/PutItem.d.ts +4 -3
- package/lib/AWS/DynamoDB/PutItem.d.ts.map +1 -1
- package/lib/AWS/DynamoDB/PutItem.js.map +1 -1
- package/lib/AWS/DynamoDB/Query.d.ts +4 -3
- package/lib/AWS/DynamoDB/Query.d.ts.map +1 -1
- package/lib/AWS/DynamoDB/Query.js.map +1 -1
- package/lib/AWS/DynamoDB/RestoreTableToPointInTime.d.ts +4 -3
- package/lib/AWS/DynamoDB/RestoreTableToPointInTime.d.ts.map +1 -1
- package/lib/AWS/DynamoDB/RestoreTableToPointInTime.js.map +1 -1
- package/lib/AWS/DynamoDB/Scan.d.ts +4 -3
- package/lib/AWS/DynamoDB/Scan.d.ts.map +1 -1
- package/lib/AWS/DynamoDB/Scan.js.map +1 -1
- package/lib/AWS/DynamoDB/TransactGetItems.d.ts +4 -3
- package/lib/AWS/DynamoDB/TransactGetItems.d.ts.map +1 -1
- package/lib/AWS/DynamoDB/TransactGetItems.js +4 -4
- package/lib/AWS/DynamoDB/TransactGetItems.js.map +1 -1
- package/lib/AWS/DynamoDB/TransactWriteItems.d.ts +4 -3
- package/lib/AWS/DynamoDB/TransactWriteItems.d.ts.map +1 -1
- package/lib/AWS/DynamoDB/TransactWriteItems.js +5 -5
- package/lib/AWS/DynamoDB/TransactWriteItems.js.map +1 -1
- package/lib/AWS/DynamoDB/UpdateItem.d.ts +4 -3
- package/lib/AWS/DynamoDB/UpdateItem.d.ts.map +1 -1
- package/lib/AWS/DynamoDB/UpdateItem.js.map +1 -1
- package/lib/AWS/DynamoDB/UpdateTimeToLive.d.ts +4 -3
- package/lib/AWS/DynamoDB/UpdateTimeToLive.d.ts.map +1 -1
- package/lib/AWS/DynamoDB/UpdateTimeToLive.js.map +1 -1
- package/lib/AWS/EC2/Image.js +2 -2
- package/lib/AWS/EC2/Image.js.map +1 -1
- package/lib/AWS/EC2/Instance.d.ts.map +1 -1
- package/lib/AWS/EC2/Instance.js +1 -1
- package/lib/AWS/EC2/Instance.js.map +1 -1
- package/lib/AWS/EC2/NatGateway.js +1 -1
- package/lib/AWS/EC2/NatGateway.js.map +1 -1
- package/lib/AWS/EC2/NetworkAcl.js +1 -1
- package/lib/AWS/EC2/NetworkAcl.js.map +1 -1
- package/lib/AWS/EC2/SecurityGroup.js +1 -1
- package/lib/AWS/EC2/SecurityGroup.js.map +1 -1
- package/lib/AWS/EC2/VpcEndpoint.js +1 -1
- package/lib/AWS/EC2/VpcEndpoint.js.map +1 -1
- package/lib/AWS/EC2/hosted.js +2 -2
- package/lib/AWS/EC2/hosted.js.map +1 -1
- package/lib/AWS/ECS/DescribeTasks.d.ts +4 -3
- package/lib/AWS/ECS/DescribeTasks.d.ts.map +1 -1
- package/lib/AWS/ECS/DescribeTasks.js.map +1 -1
- package/lib/AWS/ECS/ListTasks.d.ts +4 -3
- package/lib/AWS/ECS/ListTasks.d.ts.map +1 -1
- package/lib/AWS/ECS/ListTasks.js.map +1 -1
- package/lib/AWS/ECS/RunTask.d.ts +4 -3
- package/lib/AWS/ECS/RunTask.d.ts.map +1 -1
- package/lib/AWS/ECS/RunTask.js.map +1 -1
- package/lib/AWS/ECS/StopTask.d.ts +4 -3
- package/lib/AWS/ECS/StopTask.d.ts.map +1 -1
- package/lib/AWS/ECS/StopTask.js.map +1 -1
- package/lib/AWS/ECS/Task.js +1 -1
- package/lib/AWS/ECS/Task.js.map +1 -1
- package/lib/AWS/Environment.d.ts +2 -1
- package/lib/AWS/Environment.d.ts.map +1 -1
- package/lib/AWS/Environment.js +1 -1
- package/lib/AWS/Environment.js.map +1 -1
- package/lib/AWS/EventBridge/DescribeEventBus.d.ts +4 -3
- package/lib/AWS/EventBridge/DescribeEventBus.d.ts.map +1 -1
- package/lib/AWS/EventBridge/DescribeEventBus.js.map +1 -1
- package/lib/AWS/EventBridge/DescribeRule.d.ts +4 -3
- package/lib/AWS/EventBridge/DescribeRule.d.ts.map +1 -1
- package/lib/AWS/EventBridge/DescribeRule.js.map +1 -1
- package/lib/AWS/EventBridge/EventSource.d.ts +2 -2
- package/lib/AWS/EventBridge/ListEventBuses.d.ts +4 -3
- package/lib/AWS/EventBridge/ListEventBuses.d.ts.map +1 -1
- package/lib/AWS/EventBridge/ListEventBuses.js.map +1 -1
- package/lib/AWS/EventBridge/ListRules.d.ts +4 -3
- package/lib/AWS/EventBridge/ListRules.d.ts.map +1 -1
- package/lib/AWS/EventBridge/ListRules.js.map +1 -1
- package/lib/AWS/EventBridge/ListTargetsByRule.d.ts +4 -3
- package/lib/AWS/EventBridge/ListTargetsByRule.d.ts.map +1 -1
- package/lib/AWS/EventBridge/ListTargetsByRule.js.map +1 -1
- package/lib/AWS/EventBridge/PutEvents.d.ts +4 -3
- package/lib/AWS/EventBridge/PutEvents.d.ts.map +1 -1
- package/lib/AWS/EventBridge/PutEvents.js.map +1 -1
- package/lib/AWS/EventBridge/TestEventPattern.d.ts +4 -3
- package/lib/AWS/EventBridge/TestEventPattern.d.ts.map +1 -1
- package/lib/AWS/EventBridge/TestEventPattern.js.map +1 -1
- package/lib/AWS/EventBridge/ToLambda.d.ts +4 -3
- package/lib/AWS/EventBridge/ToLambda.d.ts.map +1 -1
- package/lib/AWS/EventBridge/ToLambda.js.map +1 -1
- package/lib/AWS/EventBridge/ToQueue.d.ts +4 -3
- package/lib/AWS/EventBridge/ToQueue.d.ts.map +1 -1
- package/lib/AWS/EventBridge/ToQueue.js.map +1 -1
- package/lib/AWS/Kinesis/DescribeAccountSettings.d.ts +4 -3
- package/lib/AWS/Kinesis/DescribeAccountSettings.d.ts.map +1 -1
- package/lib/AWS/Kinesis/DescribeAccountSettings.js.map +1 -1
- package/lib/AWS/Kinesis/DescribeLimits.d.ts +4 -3
- package/lib/AWS/Kinesis/DescribeLimits.d.ts.map +1 -1
- package/lib/AWS/Kinesis/DescribeLimits.js.map +1 -1
- package/lib/AWS/Kinesis/DescribeStream.d.ts +4 -3
- package/lib/AWS/Kinesis/DescribeStream.d.ts.map +1 -1
- package/lib/AWS/Kinesis/DescribeStream.js.map +1 -1
- package/lib/AWS/Kinesis/DescribeStreamConsumer.d.ts +4 -3
- package/lib/AWS/Kinesis/DescribeStreamConsumer.d.ts.map +1 -1
- package/lib/AWS/Kinesis/DescribeStreamConsumer.js.map +1 -1
- package/lib/AWS/Kinesis/DescribeStreamSummary.d.ts +4 -3
- package/lib/AWS/Kinesis/DescribeStreamSummary.d.ts.map +1 -1
- package/lib/AWS/Kinesis/DescribeStreamSummary.js.map +1 -1
- package/lib/AWS/Kinesis/GetRecords.d.ts +4 -3
- package/lib/AWS/Kinesis/GetRecords.d.ts.map +1 -1
- package/lib/AWS/Kinesis/GetRecords.js.map +1 -1
- package/lib/AWS/Kinesis/GetResourcePolicy.d.ts +4 -3
- package/lib/AWS/Kinesis/GetResourcePolicy.d.ts.map +1 -1
- package/lib/AWS/Kinesis/GetResourcePolicy.js.map +1 -1
- package/lib/AWS/Kinesis/GetShardIterator.d.ts +4 -3
- package/lib/AWS/Kinesis/GetShardIterator.d.ts.map +1 -1
- package/lib/AWS/Kinesis/GetShardIterator.js.map +1 -1
- package/lib/AWS/Kinesis/ListShards.d.ts +4 -3
- package/lib/AWS/Kinesis/ListShards.d.ts.map +1 -1
- package/lib/AWS/Kinesis/ListShards.js.map +1 -1
- package/lib/AWS/Kinesis/ListStreamConsumers.d.ts +4 -3
- package/lib/AWS/Kinesis/ListStreamConsumers.d.ts.map +1 -1
- package/lib/AWS/Kinesis/ListStreamConsumers.js.map +1 -1
- package/lib/AWS/Kinesis/ListStreams.d.ts +4 -3
- package/lib/AWS/Kinesis/ListStreams.d.ts.map +1 -1
- package/lib/AWS/Kinesis/ListStreams.js.map +1 -1
- package/lib/AWS/Kinesis/ListTagsForResource.d.ts +4 -3
- package/lib/AWS/Kinesis/ListTagsForResource.d.ts.map +1 -1
- package/lib/AWS/Kinesis/ListTagsForResource.js.map +1 -1
- package/lib/AWS/Kinesis/PutRecord.d.ts +4 -3
- package/lib/AWS/Kinesis/PutRecord.d.ts.map +1 -1
- package/lib/AWS/Kinesis/PutRecord.js.map +1 -1
- package/lib/AWS/Kinesis/PutRecords.d.ts +4 -3
- package/lib/AWS/Kinesis/PutRecords.d.ts.map +1 -1
- package/lib/AWS/Kinesis/PutRecords.js.map +1 -1
- package/lib/AWS/Kinesis/StreamSink.d.ts +4 -3
- package/lib/AWS/Kinesis/StreamSink.d.ts.map +1 -1
- package/lib/AWS/Kinesis/StreamSink.js.map +1 -1
- package/lib/AWS/Kinesis/SubscribeToShard.d.ts +4 -3
- package/lib/AWS/Kinesis/SubscribeToShard.d.ts.map +1 -1
- package/lib/AWS/Kinesis/SubscribeToShard.js.map +1 -1
- package/lib/AWS/Lambda/BucketEventSource.d.ts +4 -3
- package/lib/AWS/Lambda/BucketEventSource.d.ts.map +1 -1
- package/lib/AWS/Lambda/BucketEventSource.js.map +1 -1
- package/lib/AWS/Lambda/EventBridgeEventSource.d.ts +4 -3
- package/lib/AWS/Lambda/EventBridgeEventSource.d.ts.map +1 -1
- package/lib/AWS/Lambda/EventBridgeEventSource.js.map +1 -1
- package/lib/AWS/Lambda/Function.d.ts +45 -3
- package/lib/AWS/Lambda/Function.d.ts.map +1 -1
- package/lib/AWS/Lambda/Function.js +121 -47
- package/lib/AWS/Lambda/Function.js.map +1 -1
- package/lib/AWS/Lambda/InvokeFunction.d.ts +4 -3
- package/lib/AWS/Lambda/InvokeFunction.d.ts.map +1 -1
- package/lib/AWS/Lambda/InvokeFunction.js.map +1 -1
- package/lib/AWS/Lambda/QueueEventSource.d.ts +4 -3
- package/lib/AWS/Lambda/QueueEventSource.d.ts.map +1 -1
- package/lib/AWS/Lambda/QueueEventSource.js.map +1 -1
- package/lib/AWS/Lambda/StreamEventSource.d.ts +4 -3
- package/lib/AWS/Lambda/StreamEventSource.d.ts.map +1 -1
- package/lib/AWS/Lambda/StreamEventSource.js.map +1 -1
- package/lib/AWS/Lambda/TableEventSource.d.ts +4 -3
- package/lib/AWS/Lambda/TableEventSource.d.ts.map +1 -1
- package/lib/AWS/Lambda/TableEventSource.js.map +1 -1
- package/lib/AWS/Lambda/TopicEventSource.d.ts +4 -3
- package/lib/AWS/Lambda/TopicEventSource.d.ts.map +1 -1
- package/lib/AWS/Lambda/TopicEventSource.js.map +1 -1
- package/lib/AWS/Organizations/Root.js +1 -1
- package/lib/AWS/Organizations/Root.js.map +1 -1
- package/lib/AWS/Providers.d.ts +2 -2
- package/lib/AWS/Providers.d.ts.map +1 -1
- package/lib/AWS/Providers.js +4 -5
- package/lib/AWS/Providers.js.map +1 -1
- package/lib/AWS/RDS/Connect.d.ts +4 -3
- package/lib/AWS/RDS/Connect.d.ts.map +1 -1
- package/lib/AWS/RDS/Connect.js.map +1 -1
- package/lib/AWS/RDSData/BatchExecuteStatement.d.ts +4 -3
- package/lib/AWS/RDSData/BatchExecuteStatement.d.ts.map +1 -1
- package/lib/AWS/RDSData/BatchExecuteStatement.js.map +1 -1
- package/lib/AWS/RDSData/BeginTransaction.d.ts +4 -3
- package/lib/AWS/RDSData/BeginTransaction.d.ts.map +1 -1
- package/lib/AWS/RDSData/BeginTransaction.js.map +1 -1
- package/lib/AWS/RDSData/CommitTransaction.d.ts +4 -3
- package/lib/AWS/RDSData/CommitTransaction.d.ts.map +1 -1
- package/lib/AWS/RDSData/CommitTransaction.js.map +1 -1
- package/lib/AWS/RDSData/ExecuteSql.d.ts +4 -3
- package/lib/AWS/RDSData/ExecuteSql.d.ts.map +1 -1
- package/lib/AWS/RDSData/ExecuteSql.js.map +1 -1
- package/lib/AWS/RDSData/ExecuteStatement.d.ts +4 -3
- package/lib/AWS/RDSData/ExecuteStatement.d.ts.map +1 -1
- package/lib/AWS/RDSData/ExecuteStatement.js.map +1 -1
- package/lib/AWS/RDSData/RollbackTransaction.d.ts +4 -3
- package/lib/AWS/RDSData/RollbackTransaction.d.ts.map +1 -1
- package/lib/AWS/RDSData/RollbackTransaction.js.map +1 -1
- package/lib/AWS/Region.d.ts +5 -0
- package/lib/AWS/Region.d.ts.map +1 -1
- package/lib/AWS/Region.js.map +1 -1
- package/lib/AWS/S3/AbortMultipartUpload.d.ts +4 -3
- package/lib/AWS/S3/AbortMultipartUpload.d.ts.map +1 -1
- package/lib/AWS/S3/AbortMultipartUpload.js.map +1 -1
- package/lib/AWS/S3/Bucket.js +18 -18
- package/lib/AWS/S3/Bucket.js.map +1 -1
- package/lib/AWS/S3/CompleteMultipartUpload.d.ts +4 -3
- package/lib/AWS/S3/CompleteMultipartUpload.d.ts.map +1 -1
- package/lib/AWS/S3/CompleteMultipartUpload.js.map +1 -1
- package/lib/AWS/S3/CopyObject.d.ts +4 -3
- package/lib/AWS/S3/CopyObject.d.ts.map +1 -1
- package/lib/AWS/S3/CopyObject.js.map +1 -1
- package/lib/AWS/S3/CreateMultipartUpload.d.ts +4 -3
- package/lib/AWS/S3/CreateMultipartUpload.d.ts.map +1 -1
- package/lib/AWS/S3/CreateMultipartUpload.js.map +1 -1
- package/lib/AWS/S3/DeleteObject.d.ts +4 -3
- package/lib/AWS/S3/DeleteObject.d.ts.map +1 -1
- package/lib/AWS/S3/DeleteObject.js.map +1 -1
- package/lib/AWS/S3/GetObject.d.ts +4 -3
- package/lib/AWS/S3/GetObject.d.ts.map +1 -1
- package/lib/AWS/S3/GetObject.js.map +1 -1
- package/lib/AWS/S3/HeadObject.d.ts +4 -3
- package/lib/AWS/S3/HeadObject.d.ts.map +1 -1
- package/lib/AWS/S3/HeadObject.js.map +1 -1
- package/lib/AWS/S3/ListObjectsV2.d.ts +4 -3
- package/lib/AWS/S3/ListObjectsV2.d.ts.map +1 -1
- package/lib/AWS/S3/ListObjectsV2.js.map +1 -1
- package/lib/AWS/S3/PutObject.d.ts +4 -3
- package/lib/AWS/S3/PutObject.d.ts.map +1 -1
- package/lib/AWS/S3/PutObject.js.map +1 -1
- package/lib/AWS/S3/UploadPart.d.ts +4 -3
- package/lib/AWS/S3/UploadPart.d.ts.map +1 -1
- package/lib/AWS/S3/UploadPart.js.map +1 -1
- package/lib/AWS/SNS/AddPermission.d.ts +4 -3
- package/lib/AWS/SNS/AddPermission.d.ts.map +1 -1
- package/lib/AWS/SNS/AddPermission.js.map +1 -1
- package/lib/AWS/SNS/ConfirmSubscription.d.ts +4 -3
- package/lib/AWS/SNS/ConfirmSubscription.d.ts.map +1 -1
- package/lib/AWS/SNS/ConfirmSubscription.js.map +1 -1
- package/lib/AWS/SNS/GetDataProtectionPolicy.d.ts +4 -3
- package/lib/AWS/SNS/GetDataProtectionPolicy.d.ts.map +1 -1
- package/lib/AWS/SNS/GetDataProtectionPolicy.js.map +1 -1
- package/lib/AWS/SNS/GetSubscriptionAttributes.d.ts +4 -3
- package/lib/AWS/SNS/GetSubscriptionAttributes.d.ts.map +1 -1
- package/lib/AWS/SNS/GetSubscriptionAttributes.js.map +1 -1
- package/lib/AWS/SNS/GetTopicAttributes.d.ts +4 -3
- package/lib/AWS/SNS/GetTopicAttributes.d.ts.map +1 -1
- package/lib/AWS/SNS/GetTopicAttributes.js.map +1 -1
- package/lib/AWS/SNS/ListSubscriptions.d.ts +4 -3
- package/lib/AWS/SNS/ListSubscriptions.d.ts.map +1 -1
- package/lib/AWS/SNS/ListSubscriptions.js.map +1 -1
- package/lib/AWS/SNS/ListSubscriptionsByTopic.d.ts +4 -3
- package/lib/AWS/SNS/ListSubscriptionsByTopic.d.ts.map +1 -1
- package/lib/AWS/SNS/ListSubscriptionsByTopic.js.map +1 -1
- package/lib/AWS/SNS/ListTagsForResource.d.ts +4 -3
- package/lib/AWS/SNS/ListTagsForResource.d.ts.map +1 -1
- package/lib/AWS/SNS/ListTagsForResource.js.map +1 -1
- package/lib/AWS/SNS/ListTopics.d.ts +4 -3
- package/lib/AWS/SNS/ListTopics.d.ts.map +1 -1
- package/lib/AWS/SNS/ListTopics.js.map +1 -1
- package/lib/AWS/SNS/Publish.d.ts +4 -3
- package/lib/AWS/SNS/Publish.d.ts.map +1 -1
- package/lib/AWS/SNS/Publish.js.map +1 -1
- package/lib/AWS/SNS/PublishBatch.d.ts +4 -3
- package/lib/AWS/SNS/PublishBatch.d.ts.map +1 -1
- package/lib/AWS/SNS/PublishBatch.js.map +1 -1
- package/lib/AWS/SNS/PutDataProtectionPolicy.d.ts +4 -3
- package/lib/AWS/SNS/PutDataProtectionPolicy.d.ts.map +1 -1
- package/lib/AWS/SNS/PutDataProtectionPolicy.js.map +1 -1
- package/lib/AWS/SNS/RemovePermission.d.ts +4 -3
- package/lib/AWS/SNS/RemovePermission.d.ts.map +1 -1
- package/lib/AWS/SNS/RemovePermission.js.map +1 -1
- package/lib/AWS/SNS/SetSubscriptionAttributes.d.ts +4 -3
- package/lib/AWS/SNS/SetSubscriptionAttributes.d.ts.map +1 -1
- package/lib/AWS/SNS/SetSubscriptionAttributes.js.map +1 -1
- package/lib/AWS/SNS/SetTopicAttributes.d.ts +4 -3
- package/lib/AWS/SNS/SetTopicAttributes.d.ts.map +1 -1
- package/lib/AWS/SNS/SetTopicAttributes.js.map +1 -1
- package/lib/AWS/SNS/TagResource.d.ts +4 -3
- package/lib/AWS/SNS/TagResource.d.ts.map +1 -1
- package/lib/AWS/SNS/TagResource.js.map +1 -1
- package/lib/AWS/SNS/TopicSink.d.ts +4 -3
- package/lib/AWS/SNS/TopicSink.d.ts.map +1 -1
- package/lib/AWS/SNS/TopicSink.js.map +1 -1
- package/lib/AWS/SNS/UntagResource.d.ts +4 -3
- package/lib/AWS/SNS/UntagResource.d.ts.map +1 -1
- package/lib/AWS/SNS/UntagResource.js.map +1 -1
- package/lib/AWS/SQS/DeleteMessage.d.ts +4 -3
- package/lib/AWS/SQS/DeleteMessage.d.ts.map +1 -1
- package/lib/AWS/SQS/DeleteMessage.js.map +1 -1
- package/lib/AWS/SQS/DeleteMessageBatch.d.ts +4 -3
- package/lib/AWS/SQS/DeleteMessageBatch.d.ts.map +1 -1
- package/lib/AWS/SQS/DeleteMessageBatch.js.map +1 -1
- package/lib/AWS/SQS/Queue.js +1 -1
- package/lib/AWS/SQS/Queue.js.map +1 -1
- package/lib/AWS/SQS/QueueSink.d.ts +4 -3
- package/lib/AWS/SQS/QueueSink.d.ts.map +1 -1
- package/lib/AWS/SQS/QueueSink.js.map +1 -1
- package/lib/AWS/SQS/ReceiveMessage.d.ts +4 -3
- package/lib/AWS/SQS/ReceiveMessage.d.ts.map +1 -1
- package/lib/AWS/SQS/ReceiveMessage.js.map +1 -1
- package/lib/AWS/SQS/SendMessage.d.ts +4 -3
- package/lib/AWS/SQS/SendMessage.d.ts.map +1 -1
- package/lib/AWS/SQS/SendMessage.js.map +1 -1
- package/lib/AWS/SQS/SendMessageBatch.d.ts +4 -3
- package/lib/AWS/SQS/SendMessageBatch.d.ts.map +1 -1
- package/lib/AWS/SQS/SendMessageBatch.js.map +1 -1
- package/lib/AWS/SecretsManager/DescribeSecret.d.ts +4 -3
- package/lib/AWS/SecretsManager/DescribeSecret.d.ts.map +1 -1
- package/lib/AWS/SecretsManager/DescribeSecret.js.map +1 -1
- package/lib/AWS/SecretsManager/GetRandomPassword.d.ts +4 -3
- package/lib/AWS/SecretsManager/GetRandomPassword.d.ts.map +1 -1
- package/lib/AWS/SecretsManager/GetRandomPassword.js.map +1 -1
- package/lib/AWS/SecretsManager/GetSecretValue.d.ts +4 -3
- package/lib/AWS/SecretsManager/GetSecretValue.d.ts.map +1 -1
- package/lib/AWS/SecretsManager/GetSecretValue.js.map +1 -1
- package/lib/AWS/SecretsManager/ListSecrets.d.ts +4 -3
- package/lib/AWS/SecretsManager/ListSecrets.d.ts.map +1 -1
- package/lib/AWS/SecretsManager/ListSecrets.js.map +1 -1
- package/lib/AWS/SecretsManager/PutSecretValue.d.ts +4 -3
- package/lib/AWS/SecretsManager/PutSecretValue.d.ts.map +1 -1
- package/lib/AWS/SecretsManager/PutSecretValue.js.map +1 -1
- package/lib/AWS/StateStore/State.js +30 -6
- package/lib/AWS/StateStore/State.js.map +1 -1
- package/lib/AWS/Website/Router.d.ts.map +1 -1
- package/lib/AWS/Website/Router.js +7 -4
- package/lib/AWS/Website/Router.js.map +1 -1
- package/lib/AWS/Website/SsrSite.d.ts.map +1 -1
- package/lib/AWS/Website/SsrSite.js +3 -3
- package/lib/AWS/Website/SsrSite.js.map +1 -1
- package/lib/AWS/Website/StaticSite.d.ts +3 -3
- package/lib/AWS/Website/StaticSite.d.ts.map +1 -1
- package/lib/AWS/Website/StaticSite.js +9 -6
- package/lib/AWS/Website/StaticSite.js.map +1 -1
- package/lib/AdoptPolicy.d.ts +1 -1
- package/lib/AdoptPolicy.js +1 -1
- package/lib/Apply.d.ts.map +1 -1
- package/lib/Apply.js +16 -8
- package/lib/Apply.js.map +1 -1
- package/lib/Auth/Lock.d.ts.map +1 -1
- package/lib/Auth/Lock.js +4 -1
- package/lib/Auth/Lock.js.map +1 -1
- package/lib/Auth/Profile.d.ts +2 -1
- package/lib/Auth/Profile.d.ts.map +1 -1
- package/lib/Auth/Profile.js +28 -3
- package/lib/Auth/Profile.js.map +1 -1
- package/lib/Axiom/AuthProvider.js +2 -2
- package/lib/Axiom/AuthProvider.js.map +1 -1
- package/lib/Binding.d.ts +1 -1
- package/lib/Binding.d.ts.map +1 -1
- package/lib/Binding.js.map +1 -1
- package/lib/Bundle/Bundle.d.ts.map +1 -1
- package/lib/Bundle/Bundle.js +46 -4
- package/lib/Bundle/Bundle.js.map +1 -1
- package/lib/Bundle/Docker.d.ts +4 -1
- package/lib/Bundle/Docker.d.ts.map +1 -1
- package/lib/Bundle/Docker.js +21 -4
- package/lib/Bundle/Docker.js.map +1 -1
- package/lib/Bundle/InstalledPackages.d.ts +79 -0
- package/lib/Bundle/InstalledPackages.d.ts.map +1 -0
- package/lib/Bundle/InstalledPackages.js +364 -0
- package/lib/Bundle/InstalledPackages.js.map +1 -0
- package/lib/Bundle/TempRoot.js +1 -1
- package/lib/Bundle/TempRoot.js.map +1 -1
- package/lib/Bundle/index.d.ts +1 -0
- package/lib/Bundle/index.d.ts.map +1 -1
- package/lib/Bundle/index.js +1 -0
- package/lib/Bundle/index.js.map +1 -1
- package/lib/Cli/commands/aws.js +1 -1
- package/lib/Cli/commands/aws.js.map +1 -1
- package/lib/Cli/commands/cloudflare.d.ts.map +1 -1
- package/lib/Cli/commands/cloudflare.js +3 -3
- package/lib/Cli/commands/cloudflare.js.map +1 -1
- package/lib/Cli/commands/login.js +1 -1
- package/lib/Cli/commands/login.js.map +1 -1
- package/lib/Cli/commands/logs.js +1 -1
- package/lib/Cli/commands/logs.js.map +1 -1
- package/lib/Cli/commands/nuke.js +1 -1
- package/lib/Cli/commands/nuke.js.map +1 -1
- package/lib/Cli/commands/profile.js +2 -2
- package/lib/Cli/commands/profile.js.map +1 -1
- package/lib/Cli/commands/state.d.ts.map +1 -1
- package/lib/Cli/commands/state.js +6 -6
- package/lib/Cli/commands/state.js.map +1 -1
- package/lib/Cli/commands/tail.js +1 -1
- package/lib/Cli/commands/tail.js.map +1 -1
- package/lib/Cli/selectCli.d.ts +1 -8
- package/lib/Cli/selectCli.d.ts.map +1 -1
- package/lib/Cli/selectCli.js +2 -27
- package/lib/Cli/selectCli.js.map +1 -1
- package/lib/Cloudflare/Access/Application.d.ts.map +1 -1
- package/lib/Cloudflare/Access/Application.js +36 -3
- package/lib/Cloudflare/Access/Application.js.map +1 -1
- package/lib/Cloudflare/AiGateway/AiGateway.d.ts +96 -0
- package/lib/Cloudflare/AiGateway/AiGateway.d.ts.map +1 -1
- package/lib/Cloudflare/AiGateway/AiGateway.js +87 -0
- package/lib/Cloudflare/AiGateway/AiGateway.js.map +1 -1
- package/lib/Cloudflare/AiGateway/AiGatewayBinding.d.ts +4 -3
- package/lib/Cloudflare/AiGateway/AiGatewayBinding.d.ts.map +1 -1
- package/lib/Cloudflare/AiGateway/AiGatewayBinding.js.map +1 -1
- package/lib/Cloudflare/AiGateway/DurableObjectChatPersistence.d.ts +7 -0
- package/lib/Cloudflare/AiGateway/DurableObjectChatPersistence.d.ts.map +1 -0
- package/lib/Cloudflare/AiGateway/DurableObjectChatPersistence.js +45 -0
- package/lib/Cloudflare/AiGateway/DurableObjectChatPersistence.js.map +1 -0
- package/lib/Cloudflare/AiGateway/LanguageModel.js +1 -1
- package/lib/Cloudflare/AiGateway/LanguageModel.js.map +1 -1
- package/lib/Cloudflare/AiGateway/index.d.ts +1 -1
- package/lib/Cloudflare/AiGateway/index.d.ts.map +1 -1
- package/lib/Cloudflare/AiGateway/index.js +1 -1
- package/lib/Cloudflare/AiGateway/index.js.map +1 -1
- package/lib/Cloudflare/AiSearch/AiSearch.d.ts +3 -2
- package/lib/Cloudflare/AiSearch/AiSearch.d.ts.map +1 -1
- package/lib/Cloudflare/AiSearch/AiSearch.js +4 -3
- package/lib/Cloudflare/AiSearch/AiSearch.js.map +1 -1
- package/lib/Cloudflare/AiSearch/AiSearchBinding.d.ts +7 -6
- package/lib/Cloudflare/AiSearch/AiSearchBinding.d.ts.map +1 -1
- package/lib/Cloudflare/AiSearch/AiSearchBinding.js.map +1 -1
- package/lib/Cloudflare/AiSearch/AiSearchInstance.js +28 -14
- package/lib/Cloudflare/AiSearch/AiSearchInstance.js.map +1 -1
- package/lib/Cloudflare/AnalyticsEngine/AnalyticsEngineDataset.d.ts.map +1 -1
- package/lib/Cloudflare/AnalyticsEngine/AnalyticsEngineDataset.js +1 -1
- package/lib/Cloudflare/AnalyticsEngine/AnalyticsEngineDataset.js.map +1 -1
- package/lib/Cloudflare/AnalyticsEngine/AnalyticsEngineDatasetBinding.d.ts +4 -3
- package/lib/Cloudflare/AnalyticsEngine/AnalyticsEngineDatasetBinding.d.ts.map +1 -1
- package/lib/Cloudflare/AnalyticsEngine/AnalyticsEngineDatasetBinding.js +2 -2
- package/lib/Cloudflare/AnalyticsEngine/AnalyticsEngineDatasetBinding.js.map +1 -1
- package/lib/Cloudflare/ApiShield/UserSchema.d.ts.map +1 -1
- package/lib/Cloudflare/ApiShield/UserSchema.js +4 -1
- package/lib/Cloudflare/ApiShield/UserSchema.js.map +1 -1
- package/lib/Cloudflare/Artifacts/ArtifactsBinding.d.ts +4 -3
- package/lib/Cloudflare/Artifacts/ArtifactsBinding.d.ts.map +1 -1
- package/lib/Cloudflare/Artifacts/ArtifactsBinding.js.map +1 -1
- package/lib/Cloudflare/Auth/AuthProvider.d.ts +1 -0
- package/lib/Cloudflare/Auth/AuthProvider.d.ts.map +1 -1
- package/lib/Cloudflare/Auth/AuthProvider.js +5 -3
- package/lib/Cloudflare/Auth/AuthProvider.js.map +1 -1
- package/lib/Cloudflare/Browser/BrowserBinding.d.ts +4 -3
- package/lib/Cloudflare/Browser/BrowserBinding.d.ts.map +1 -1
- package/lib/Cloudflare/Browser/BrowserBinding.js.map +1 -1
- package/lib/Cloudflare/Cache/RegionalTieredCache.d.ts.map +1 -1
- package/lib/Cloudflare/Cache/RegionalTieredCache.js +15 -1
- package/lib/Cloudflare/Cache/RegionalTieredCache.js.map +1 -1
- package/lib/Cloudflare/ClientCertificate/ClientCertificate.d.ts.map +1 -1
- package/lib/Cloudflare/ClientCertificate/ClientCertificate.js +17 -10
- package/lib/Cloudflare/ClientCertificate/ClientCertificate.js.map +1 -1
- package/lib/Cloudflare/CloudflareEnvironment.d.ts +1 -0
- package/lib/Cloudflare/CloudflareEnvironment.d.ts.map +1 -1
- package/lib/Cloudflare/CloudflareEnvironment.js +1 -0
- package/lib/Cloudflare/CloudflareEnvironment.js.map +1 -1
- package/lib/Cloudflare/Container/Container.d.ts +233 -81
- package/lib/Cloudflare/Container/Container.d.ts.map +1 -1
- package/lib/Cloudflare/Container/Container.js +181 -116
- package/lib/Cloudflare/Container/Container.js.map +1 -1
- package/lib/Cloudflare/Container/ContainerApplication.d.ts +67 -13
- package/lib/Cloudflare/Container/ContainerApplication.d.ts.map +1 -1
- package/lib/Cloudflare/Container/ContainerApplication.js +2 -557
- package/lib/Cloudflare/Container/ContainerApplication.js.map +1 -1
- package/lib/Cloudflare/Container/ContainerBundle.d.ts +26 -0
- package/lib/Cloudflare/Container/ContainerBundle.d.ts.map +1 -1
- package/lib/Cloudflare/Container/ContainerBundle.js +65 -2
- package/lib/Cloudflare/Container/ContainerBundle.js.map +1 -1
- package/lib/Cloudflare/Container/ContainerPlatform.d.ts +5 -0
- package/lib/Cloudflare/Container/ContainerPlatform.d.ts.map +1 -0
- package/lib/Cloudflare/Container/ContainerPlatform.js +129 -0
- package/lib/Cloudflare/Container/ContainerPlatform.js.map +1 -0
- package/lib/Cloudflare/Container/ContainerProvider.d.ts +10 -0
- package/lib/Cloudflare/Container/ContainerProvider.d.ts.map +1 -0
- package/lib/Cloudflare/Container/ContainerProvider.js +684 -0
- package/lib/Cloudflare/Container/ContainerProvider.js.map +1 -0
- package/lib/Cloudflare/Container/LocalContainerProvider.d.ts.map +1 -1
- package/lib/Cloudflare/Container/LocalContainerProvider.js +8 -8
- package/lib/Cloudflare/Container/LocalContainerProvider.js.map +1 -1
- package/lib/Cloudflare/Container/StartContainer.d.ts +3 -19
- package/lib/Cloudflare/Container/StartContainer.d.ts.map +1 -1
- package/lib/Cloudflare/Container/StartContainer.js +41 -7
- package/lib/Cloudflare/Container/StartContainer.js.map +1 -1
- package/lib/Cloudflare/Container/index.d.ts +2 -1
- package/lib/Cloudflare/Container/index.d.ts.map +1 -1
- package/lib/Cloudflare/Container/index.js +2 -1
- package/lib/Cloudflare/Container/index.js.map +1 -1
- package/lib/Cloudflare/Credentials.d.ts +5 -0
- package/lib/Cloudflare/Credentials.d.ts.map +1 -1
- package/lib/Cloudflare/Credentials.js.map +1 -1
- package/lib/Cloudflare/D1/D1Connection.d.ts +4 -3
- package/lib/Cloudflare/D1/D1Connection.d.ts.map +1 -1
- package/lib/Cloudflare/D1/D1Connection.js.map +1 -1
- package/lib/Cloudflare/Dns/DnsBinding.d.ts +2 -11
- package/lib/Cloudflare/Dns/DnsBinding.d.ts.map +1 -1
- package/lib/Cloudflare/Dns/DnsBinding.js +0 -11
- package/lib/Cloudflare/Dns/DnsBinding.js.map +1 -1
- package/lib/Cloudflare/Dns/DnsRead.d.ts +3 -2
- package/lib/Cloudflare/Dns/DnsRead.d.ts.map +1 -1
- package/lib/Cloudflare/Dns/DnsRead.js +3 -2
- package/lib/Cloudflare/Dns/DnsRead.js.map +1 -1
- package/lib/Cloudflare/Dns/DnsReadWrite.d.ts +3 -2
- package/lib/Cloudflare/Dns/DnsReadWrite.d.ts.map +1 -1
- package/lib/Cloudflare/Dns/DnsReadWrite.js.map +1 -1
- package/lib/Cloudflare/Dns/DnsWrite.d.ts +3 -2
- package/lib/Cloudflare/Dns/DnsWrite.d.ts.map +1 -1
- package/lib/Cloudflare/Dns/DnsWrite.js +3 -2
- package/lib/Cloudflare/Dns/DnsWrite.js.map +1 -1
- package/lib/Cloudflare/Email/EmailCatchAll.js +1 -1
- package/lib/Cloudflare/Email/EmailCatchAll.js.map +1 -1
- package/lib/Cloudflare/Email/EmailRouting.js +1 -1
- package/lib/Cloudflare/Email/EmailRouting.js.map +1 -1
- package/lib/Cloudflare/Email/EmailRule.js +1 -1
- package/lib/Cloudflare/Email/EmailRule.js.map +1 -1
- package/lib/Cloudflare/Email/SendEmail.js +1 -1
- package/lib/Cloudflare/Email/SendEmail.js.map +1 -1
- package/lib/Cloudflare/Email/SendEmailBinding.d.ts +4 -3
- package/lib/Cloudflare/Email/SendEmailBinding.d.ts.map +1 -1
- package/lib/Cloudflare/Email/SendEmailBinding.js +2 -2
- package/lib/Cloudflare/Email/SendEmailBinding.js.map +1 -1
- package/lib/Cloudflare/Fetcher.d.ts +1 -5
- package/lib/Cloudflare/Fetcher.d.ts.map +1 -1
- package/lib/Cloudflare/Fetcher.js +77 -12
- package/lib/Cloudflare/Fetcher.js.map +1 -1
- package/lib/Cloudflare/Flagship/FlagshipBinding.d.ts +4 -3
- package/lib/Cloudflare/Flagship/FlagshipBinding.d.ts.map +1 -1
- package/lib/Cloudflare/Flagship/FlagshipBinding.js.map +1 -1
- package/lib/Cloudflare/GoogleTagGateway/GoogleTagGateway.js +1 -1
- package/lib/Cloudflare/GoogleTagGateway/GoogleTagGateway.js.map +1 -1
- package/lib/Cloudflare/HttpClientUtils.d.ts +13 -0
- package/lib/Cloudflare/HttpClientUtils.d.ts.map +1 -0
- package/lib/Cloudflare/HttpClientUtils.js +11 -0
- package/lib/Cloudflare/HttpClientUtils.js.map +1 -0
- package/lib/Cloudflare/Hyperdrive/HyperdriveBinding.d.ts +4 -3
- package/lib/Cloudflare/Hyperdrive/HyperdriveBinding.d.ts.map +1 -1
- package/lib/Cloudflare/Hyperdrive/HyperdriveBinding.js.map +1 -1
- package/lib/Cloudflare/Iam/UserGroupMembership.d.ts.map +1 -1
- package/lib/Cloudflare/Iam/UserGroupMembership.js +6 -1
- package/lib/Cloudflare/Iam/UserGroupMembership.js.map +1 -1
- package/lib/Cloudflare/Images/ImagesBinding.d.ts +4 -3
- package/lib/Cloudflare/Images/ImagesBinding.d.ts.map +1 -1
- package/lib/Cloudflare/Images/ImagesBinding.js.map +1 -1
- package/lib/Cloudflare/Images/Variant.d.ts.map +1 -1
- package/lib/Cloudflare/Images/Variant.js +15 -3
- package/lib/Cloudflare/Images/Variant.js.map +1 -1
- package/lib/Cloudflare/KV/{KVNamespace.d.ts → Namespace.d.ts} +9 -7
- package/lib/Cloudflare/KV/Namespace.d.ts.map +1 -0
- package/lib/Cloudflare/KV/{KVNamespace.js → Namespace.js} +10 -7
- package/lib/Cloudflare/KV/Namespace.js.map +1 -0
- package/lib/Cloudflare/KV/NamespaceBinding.d.ts +24 -0
- package/lib/Cloudflare/KV/NamespaceBinding.d.ts.map +1 -0
- package/lib/Cloudflare/KV/NamespaceBinding.js +46 -0
- package/lib/Cloudflare/KV/NamespaceBinding.js.map +1 -0
- package/lib/Cloudflare/KV/NamespaceHttp.d.ts +36 -0
- package/lib/Cloudflare/KV/NamespaceHttp.d.ts.map +1 -0
- package/lib/Cloudflare/KV/NamespaceHttp.js +57 -0
- package/lib/Cloudflare/KV/NamespaceHttp.js.map +1 -0
- package/lib/Cloudflare/KV/{KVNamespaceBinding.d.ts → NamespaceRead.d.ts} +15 -30
- package/lib/Cloudflare/KV/NamespaceRead.d.ts.map +1 -0
- package/lib/Cloudflare/KV/NamespaceRead.js +11 -0
- package/lib/Cloudflare/KV/NamespaceRead.js.map +1 -0
- package/lib/Cloudflare/KV/NamespaceReadBinding.d.ts +11 -0
- package/lib/Cloudflare/KV/NamespaceReadBinding.d.ts.map +1 -0
- package/lib/Cloudflare/KV/NamespaceReadBinding.js +19 -0
- package/lib/Cloudflare/KV/NamespaceReadBinding.js.map +1 -0
- package/lib/Cloudflare/KV/NamespaceReadHttp.d.ts +16 -0
- package/lib/Cloudflare/KV/NamespaceReadHttp.d.ts.map +1 -0
- package/lib/Cloudflare/KV/NamespaceReadHttp.js +93 -0
- package/lib/Cloudflare/KV/NamespaceReadHttp.js.map +1 -0
- package/lib/Cloudflare/KV/NamespaceReadWrite.d.ts +20 -0
- package/lib/Cloudflare/KV/NamespaceReadWrite.d.ts.map +1 -0
- package/lib/Cloudflare/KV/NamespaceReadWrite.js +11 -0
- package/lib/Cloudflare/KV/NamespaceReadWrite.js.map +1 -0
- package/lib/Cloudflare/KV/NamespaceReadWriteBinding.d.ts +11 -0
- package/lib/Cloudflare/KV/NamespaceReadWriteBinding.d.ts.map +1 -0
- package/lib/Cloudflare/KV/NamespaceReadWriteBinding.js +17 -0
- package/lib/Cloudflare/KV/NamespaceReadWriteBinding.js.map +1 -0
- package/lib/Cloudflare/KV/NamespaceReadWriteHttp.d.ts +17 -0
- package/lib/Cloudflare/KV/NamespaceReadWriteHttp.d.ts.map +1 -0
- package/lib/Cloudflare/KV/NamespaceReadWriteHttp.js +22 -0
- package/lib/Cloudflare/KV/NamespaceReadWriteHttp.js.map +1 -0
- package/lib/Cloudflare/KV/NamespaceTypes.d.ts +10 -0
- package/lib/Cloudflare/KV/NamespaceTypes.d.ts.map +1 -0
- package/lib/Cloudflare/KV/NamespaceTypes.js +4 -0
- package/lib/Cloudflare/KV/NamespaceTypes.js.map +1 -0
- package/lib/Cloudflare/KV/NamespaceWrite.d.ts +22 -0
- package/lib/Cloudflare/KV/NamespaceWrite.d.ts.map +1 -0
- package/lib/Cloudflare/KV/NamespaceWrite.js +11 -0
- package/lib/Cloudflare/KV/NamespaceWrite.js.map +1 -0
- package/lib/Cloudflare/KV/NamespaceWriteBinding.d.ts +11 -0
- package/lib/Cloudflare/KV/NamespaceWriteBinding.d.ts.map +1 -0
- package/lib/Cloudflare/KV/NamespaceWriteBinding.js +17 -0
- package/lib/Cloudflare/KV/NamespaceWriteBinding.js.map +1 -0
- package/lib/Cloudflare/KV/NamespaceWriteHttp.d.ts +16 -0
- package/lib/Cloudflare/KV/NamespaceWriteHttp.d.ts.map +1 -0
- package/lib/Cloudflare/KV/NamespaceWriteHttp.js +54 -0
- package/lib/Cloudflare/KV/NamespaceWriteHttp.js.map +1 -0
- package/lib/Cloudflare/KV/index.d.ts +11 -2
- package/lib/Cloudflare/KV/index.d.ts.map +1 -1
- package/lib/Cloudflare/KV/index.js +11 -2
- package/lib/Cloudflare/KV/index.js.map +1 -1
- package/lib/Cloudflare/Providers.d.ts +2 -2
- package/lib/Cloudflare/Providers.d.ts.map +1 -1
- package/lib/Cloudflare/Providers.js +5 -13
- package/lib/Cloudflare/Providers.js.map +1 -1
- package/lib/Cloudflare/Queue/Queue.d.ts +8 -8
- package/lib/Cloudflare/Queue/Queue.d.ts.map +1 -1
- package/lib/Cloudflare/Queue/Queue.js +9 -9
- package/lib/Cloudflare/Queue/Queue.js.map +1 -1
- package/lib/Cloudflare/Queue/QueueBinding.d.ts +17 -65
- package/lib/Cloudflare/Queue/QueueBinding.d.ts.map +1 -1
- package/lib/Cloudflare/Queue/QueueBinding.js +35 -78
- package/lib/Cloudflare/Queue/QueueBinding.js.map +1 -1
- package/lib/Cloudflare/Queue/QueueEventSource.d.ts +5 -4
- package/lib/Cloudflare/Queue/QueueEventSource.d.ts.map +1 -1
- package/lib/Cloudflare/Queue/QueueEventSource.js +1 -1
- package/lib/Cloudflare/Queue/QueueEventSource.js.map +1 -1
- package/lib/Cloudflare/Queue/QueueHttp.d.ts +36 -0
- package/lib/Cloudflare/Queue/QueueHttp.d.ts.map +1 -0
- package/lib/Cloudflare/Queue/QueueHttp.js +57 -0
- package/lib/Cloudflare/Queue/QueueHttp.js.map +1 -0
- package/lib/Cloudflare/Queue/QueueTypes.d.ts +19 -0
- package/lib/Cloudflare/Queue/QueueTypes.d.ts.map +1 -0
- package/lib/Cloudflare/Queue/QueueTypes.js +4 -0
- package/lib/Cloudflare/Queue/QueueTypes.js.map +1 -0
- package/lib/Cloudflare/Queue/QueueWrite.d.ts +55 -0
- package/lib/Cloudflare/Queue/QueueWrite.d.ts.map +1 -0
- package/lib/Cloudflare/Queue/QueueWrite.js +42 -0
- package/lib/Cloudflare/Queue/QueueWrite.js.map +1 -0
- package/lib/Cloudflare/Queue/QueueWriteBinding.d.ts +11 -0
- package/lib/Cloudflare/Queue/QueueWriteBinding.d.ts.map +1 -0
- package/lib/Cloudflare/Queue/QueueWriteBinding.js +19 -0
- package/lib/Cloudflare/Queue/QueueWriteBinding.js.map +1 -0
- package/lib/Cloudflare/Queue/QueueWriteHttp.d.ts +22 -0
- package/lib/Cloudflare/Queue/QueueWriteHttp.d.ts.map +1 -0
- package/lib/Cloudflare/Queue/QueueWriteHttp.js +50 -0
- package/lib/Cloudflare/Queue/QueueWriteHttp.js.map +1 -0
- package/lib/Cloudflare/Queue/index.d.ts +4 -1
- package/lib/Cloudflare/Queue/index.d.ts.map +1 -1
- package/lib/Cloudflare/Queue/index.js +4 -1
- package/lib/Cloudflare/Queue/index.js.map +1 -1
- package/lib/Cloudflare/R2/{R2Bucket.d.ts → Bucket.d.ts} +5 -9
- package/lib/Cloudflare/R2/Bucket.d.ts.map +1 -0
- package/lib/Cloudflare/R2/{R2Bucket.js → Bucket.js} +6 -9
- package/lib/Cloudflare/R2/Bucket.js.map +1 -0
- package/lib/Cloudflare/R2/BucketBinding.d.ts +31 -0
- package/lib/Cloudflare/R2/BucketBinding.d.ts.map +1 -0
- package/lib/Cloudflare/R2/BucketBinding.js +83 -0
- package/lib/Cloudflare/R2/BucketBinding.js.map +1 -0
- package/lib/Cloudflare/R2/BucketEventNotification.d.ts +1 -1
- package/lib/Cloudflare/R2/BucketEventNotification.d.ts.map +1 -1
- package/lib/Cloudflare/R2/BucketHttp.d.ts +59 -0
- package/lib/Cloudflare/R2/BucketHttp.d.ts.map +1 -0
- package/lib/Cloudflare/R2/BucketHttp.js +129 -0
- package/lib/Cloudflare/R2/BucketHttp.js.map +1 -0
- package/lib/Cloudflare/R2/BucketRead.d.ts +28 -0
- package/lib/Cloudflare/R2/BucketRead.d.ts.map +1 -0
- package/lib/Cloudflare/R2/BucketRead.js +11 -0
- package/lib/Cloudflare/R2/BucketRead.js.map +1 -0
- package/lib/Cloudflare/R2/BucketReadBinding.d.ts +10 -0
- package/lib/Cloudflare/R2/BucketReadBinding.d.ts.map +1 -0
- package/lib/Cloudflare/R2/BucketReadBinding.js +24 -0
- package/lib/Cloudflare/R2/BucketReadBinding.js.map +1 -0
- package/lib/Cloudflare/R2/BucketReadHttp.d.ts +15 -0
- package/lib/Cloudflare/R2/BucketReadHttp.d.ts.map +1 -0
- package/lib/Cloudflare/R2/BucketReadHttp.js +109 -0
- package/lib/Cloudflare/R2/BucketReadHttp.js.map +1 -0
- package/lib/Cloudflare/R2/BucketReadWrite.d.ts +20 -0
- package/lib/Cloudflare/R2/BucketReadWrite.d.ts.map +1 -0
- package/lib/Cloudflare/R2/BucketReadWrite.js +11 -0
- package/lib/Cloudflare/R2/BucketReadWrite.js.map +1 -0
- package/lib/Cloudflare/R2/BucketReadWriteBinding.d.ts +10 -0
- package/lib/Cloudflare/R2/BucketReadWriteBinding.d.ts.map +1 -0
- package/lib/Cloudflare/R2/BucketReadWriteBinding.js +16 -0
- package/lib/Cloudflare/R2/BucketReadWriteBinding.js.map +1 -0
- package/lib/Cloudflare/R2/BucketReadWriteHttp.d.ts +16 -0
- package/lib/Cloudflare/R2/BucketReadWriteHttp.d.ts.map +1 -0
- package/lib/Cloudflare/R2/BucketReadWriteHttp.js +21 -0
- package/lib/Cloudflare/R2/BucketReadWriteHttp.js.map +1 -0
- package/lib/Cloudflare/R2/BucketSippy.d.ts +1 -1
- package/lib/Cloudflare/R2/BucketSippy.d.ts.map +1 -1
- package/lib/Cloudflare/R2/BucketTypes.d.ts +52 -0
- package/lib/Cloudflare/R2/BucketTypes.d.ts.map +1 -0
- package/lib/Cloudflare/R2/BucketTypes.js +6 -0
- package/lib/Cloudflare/R2/BucketTypes.js.map +1 -0
- package/lib/Cloudflare/R2/BucketWrite.d.ts +32 -0
- package/lib/Cloudflare/R2/BucketWrite.d.ts.map +1 -0
- package/lib/Cloudflare/R2/BucketWrite.js +12 -0
- package/lib/Cloudflare/R2/BucketWrite.js.map +1 -0
- package/lib/Cloudflare/R2/BucketWriteBinding.d.ts +10 -0
- package/lib/Cloudflare/R2/BucketWriteBinding.d.ts.map +1 -0
- package/lib/Cloudflare/R2/BucketWriteBinding.js +46 -0
- package/lib/Cloudflare/R2/BucketWriteBinding.js.map +1 -0
- package/lib/Cloudflare/R2/BucketWriteHttp.d.ts +16 -0
- package/lib/Cloudflare/R2/BucketWriteHttp.d.ts.map +1 -0
- package/lib/Cloudflare/R2/BucketWriteHttp.js +72 -0
- package/lib/Cloudflare/R2/BucketWriteHttp.js.map +1 -0
- package/lib/Cloudflare/R2/index.d.ts +10 -2
- package/lib/Cloudflare/R2/index.d.ts.map +1 -1
- package/lib/Cloudflare/R2/index.js +10 -2
- package/lib/Cloudflare/R2/index.js.map +1 -1
- package/lib/Cloudflare/RateLimit/RateLimitBinding.d.ts +4 -3
- package/lib/Cloudflare/RateLimit/RateLimitBinding.d.ts.map +1 -1
- package/lib/Cloudflare/RateLimit/RateLimitBinding.js.map +1 -1
- package/lib/Cloudflare/SecretsStore/SecretBinding.d.ts +4 -3
- package/lib/Cloudflare/SecretsStore/SecretBinding.d.ts.map +1 -1
- package/lib/Cloudflare/SecretsStore/SecretBinding.js.map +1 -1
- package/lib/Cloudflare/StateStore/Api.d.ts +6 -6
- 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/StateStore/State.js +6 -5
- package/lib/Cloudflare/StateStore/State.js.map +1 -1
- package/lib/Cloudflare/StateStore/Store.d.ts +13 -13
- package/lib/Cloudflare/StateStore/Store.d.ts.map +1 -1
- package/lib/Cloudflare/StateStore/Store.js +5 -7
- package/lib/Cloudflare/StateStore/Store.js.map +1 -1
- package/lib/Cloudflare/Tunnel/Tunnel.js +1 -1
- package/lib/Cloudflare/Tunnel/Tunnel.js.map +1 -1
- package/lib/Cloudflare/Tunnel/TunnelBinding.d.ts +2 -11
- package/lib/Cloudflare/Tunnel/TunnelBinding.d.ts.map +1 -1
- package/lib/Cloudflare/Tunnel/TunnelBinding.js +0 -10
- package/lib/Cloudflare/Tunnel/TunnelBinding.js.map +1 -1
- package/lib/Cloudflare/Tunnel/TunnelRead.d.ts +3 -2
- package/lib/Cloudflare/Tunnel/TunnelRead.d.ts.map +1 -1
- package/lib/Cloudflare/Tunnel/TunnelRead.js +2 -1
- package/lib/Cloudflare/Tunnel/TunnelRead.js.map +1 -1
- package/lib/Cloudflare/Tunnel/TunnelReadWrite.d.ts +3 -2
- package/lib/Cloudflare/Tunnel/TunnelReadWrite.d.ts.map +1 -1
- package/lib/Cloudflare/Tunnel/TunnelReadWrite.js.map +1 -1
- package/lib/Cloudflare/Tunnel/TunnelWrite.d.ts +3 -2
- package/lib/Cloudflare/Tunnel/TunnelWrite.d.ts.map +1 -1
- package/lib/Cloudflare/Tunnel/TunnelWrite.js +2 -1
- package/lib/Cloudflare/Tunnel/TunnelWrite.js.map +1 -1
- package/lib/Cloudflare/Tunnel/WarpConnector.js +1 -1
- package/lib/Cloudflare/Tunnel/WarpConnector.js.map +1 -1
- package/lib/Cloudflare/UrlNormalization/UrlNormalization.d.ts.map +1 -1
- package/lib/Cloudflare/UrlNormalization/UrlNormalization.js +10 -1
- package/lib/Cloudflare/UrlNormalization/UrlNormalization.js.map +1 -1
- package/lib/Cloudflare/Vectorize/VectorizeIndexBinding.d.ts +4 -3
- package/lib/Cloudflare/Vectorize/VectorizeIndexBinding.d.ts.map +1 -1
- package/lib/Cloudflare/Vectorize/VectorizeIndexBinding.js.map +1 -1
- package/lib/Cloudflare/VpcService/VpcService.js +1 -1
- package/lib/Cloudflare/VpcService/VpcService.js.map +1 -1
- package/lib/Cloudflare/WaitingRoom/Settings.d.ts.map +1 -1
- package/lib/Cloudflare/WaitingRoom/Settings.js +17 -3
- package/lib/Cloudflare/WaitingRoom/Settings.js.map +1 -1
- package/lib/Cloudflare/Website/StaticSite.d.ts +5 -4
- package/lib/Cloudflare/Website/StaticSite.d.ts.map +1 -1
- package/lib/Cloudflare/Website/StaticSite.js +8 -8
- package/lib/Cloudflare/Website/StaticSite.js.map +1 -1
- package/lib/Cloudflare/Website/Vite.d.ts +1 -1
- package/lib/Cloudflare/Website/Vite.d.ts.map +1 -1
- package/lib/Cloudflare/Workers/AccountSetting.d.ts.map +1 -1
- package/lib/Cloudflare/Workers/AccountSetting.js +12 -4
- package/lib/Cloudflare/Workers/AccountSetting.js.map +1 -1
- package/lib/Cloudflare/Workers/Assets.js +6 -6
- package/lib/Cloudflare/Workers/Assets.js.map +1 -1
- package/lib/Cloudflare/Workers/CronEventSource.d.ts +4 -3
- package/lib/Cloudflare/Workers/CronEventSource.d.ts.map +1 -1
- package/lib/Cloudflare/Workers/CronEventSource.js +1 -1
- package/lib/Cloudflare/Workers/CronEventSource.js.map +1 -1
- package/lib/Cloudflare/Workers/DurableObjectBridge.d.ts.map +1 -1
- package/lib/Cloudflare/Workers/DurableObjectBridge.js +15 -9
- package/lib/Cloudflare/Workers/DurableObjectBridge.js.map +1 -1
- package/lib/Cloudflare/Workers/DurableObjectChatPersistence.d.ts.map +1 -1
- package/lib/Cloudflare/Workers/DurableObjectChatPersistence.js +7 -6
- package/lib/Cloudflare/Workers/DurableObjectChatPersistence.js.map +1 -1
- package/lib/Cloudflare/Workers/DurableObjectNamespace.d.ts +67 -52
- package/lib/Cloudflare/Workers/DurableObjectNamespace.d.ts.map +1 -1
- package/lib/Cloudflare/Workers/DurableObjectNamespace.js +75 -50
- package/lib/Cloudflare/Workers/DurableObjectNamespace.js.map +1 -1
- package/lib/Cloudflare/Workers/DurableObjectState.d.ts +11 -10
- package/lib/Cloudflare/Workers/DurableObjectState.d.ts.map +1 -1
- package/lib/Cloudflare/Workers/DurableObjectState.js.map +1 -1
- package/lib/Cloudflare/Workers/DurableObjectStorage.d.ts +35 -35
- package/lib/Cloudflare/Workers/DurableObjectStorage.d.ts.map +1 -1
- package/lib/Cloudflare/Workers/DurableObjectStorage.js +0 -1
- package/lib/Cloudflare/Workers/DurableObjectStorage.js.map +1 -1
- package/lib/Cloudflare/Workers/Fetch.d.ts +4 -3
- package/lib/Cloudflare/Workers/Fetch.d.ts.map +1 -1
- package/lib/Cloudflare/Workers/Fetch.js.map +1 -1
- package/lib/Cloudflare/Workers/GitHubRepositoryEventSource.d.ts +4 -3
- package/lib/Cloudflare/Workers/GitHubRepositoryEventSource.d.ts.map +1 -1
- package/lib/Cloudflare/Workers/GitHubRepositoryEventSource.js.map +1 -1
- package/lib/Cloudflare/Workers/InferEnv.d.ts +1 -1
- package/lib/Cloudflare/Workers/InferEnv.d.ts.map +1 -1
- package/lib/Cloudflare/Workers/LocalWorkerProvider.d.ts.map +1 -1
- package/lib/Cloudflare/Workers/LocalWorkerProvider.js +14 -15
- package/lib/Cloudflare/Workers/LocalWorkerProvider.js.map +1 -1
- package/lib/Cloudflare/Workers/Rpc.d.ts +1 -75
- package/lib/Cloudflare/Workers/Rpc.d.ts.map +1 -1
- package/lib/Cloudflare/Workers/Rpc.js +7 -162
- package/lib/Cloudflare/Workers/Rpc.js.map +1 -1
- package/lib/Cloudflare/Workers/RpcDurableObjectNamespace.d.ts +8 -6
- package/lib/Cloudflare/Workers/RpcDurableObjectNamespace.d.ts.map +1 -1
- package/lib/Cloudflare/Workers/RpcDurableObjectNamespace.js +5 -4
- package/lib/Cloudflare/Workers/RpcDurableObjectNamespace.js.map +1 -1
- package/lib/Cloudflare/Workers/RpcWorker.d.ts +4 -3
- package/lib/Cloudflare/Workers/RpcWorker.d.ts.map +1 -1
- package/lib/Cloudflare/Workers/RpcWorker.js +3 -3
- package/lib/Cloudflare/Workers/RpcWorker.js.map +1 -1
- package/lib/Cloudflare/Workers/ScheduledEvents.d.ts +5 -4
- package/lib/Cloudflare/Workers/ScheduledEvents.d.ts.map +1 -1
- package/lib/Cloudflare/Workers/ScheduledEvents.js +2 -2
- package/lib/Cloudflare/Workers/ScheduledEvents.js.map +1 -1
- package/lib/Cloudflare/Workers/VersionMetadataBinding.d.ts +4 -3
- package/lib/Cloudflare/Workers/VersionMetadataBinding.d.ts.map +1 -1
- package/lib/Cloudflare/Workers/VersionMetadataBinding.js.map +1 -1
- package/lib/Cloudflare/Workers/WebSocket.d.ts +1 -1
- package/lib/Cloudflare/Workers/WebSocket.d.ts.map +1 -1
- package/lib/Cloudflare/Workers/WebSocket.js +1 -1
- package/lib/Cloudflare/Workers/WebSocket.js.map +1 -1
- package/lib/Cloudflare/Workers/Worker.d.ts +64 -33
- package/lib/Cloudflare/Workers/Worker.d.ts.map +1 -1
- package/lib/Cloudflare/Workers/Worker.js +22 -1297
- package/lib/Cloudflare/Workers/Worker.js.map +1 -1
- package/lib/Cloudflare/Workers/WorkerAsyncBindings.d.ts.map +1 -1
- package/lib/Cloudflare/Workers/WorkerAsyncBindings.js +5 -5
- package/lib/Cloudflare/Workers/WorkerAsyncBindings.js.map +1 -1
- package/lib/Cloudflare/Workers/WorkerBinding.d.ts +15 -14
- package/lib/Cloudflare/Workers/WorkerBinding.d.ts.map +1 -1
- package/lib/Cloudflare/Workers/WorkerBinding.js +1 -1
- package/lib/Cloudflare/Workers/WorkerBinding.js.map +1 -1
- package/lib/Cloudflare/Workers/WorkerBridge.d.ts.map +1 -1
- package/lib/Cloudflare/Workers/WorkerBridge.js +22 -18
- 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 +3 -3
- package/lib/Cloudflare/Workers/WorkerBundle.js.map +1 -1
- package/lib/Cloudflare/Workers/{DynamicWorkerLoader.d.ts → WorkerLoader.d.ts} +47 -98
- package/lib/Cloudflare/Workers/WorkerLoader.d.ts.map +1 -0
- package/lib/Cloudflare/Workers/{DynamicWorkerLoader.js → WorkerLoader.js} +40 -32
- package/lib/Cloudflare/Workers/WorkerLoader.js.map +1 -0
- package/lib/Cloudflare/Workers/WorkerProvider.d.ts +9 -0
- package/lib/Cloudflare/Workers/WorkerProvider.d.ts.map +1 -0
- package/lib/Cloudflare/Workers/WorkerProvider.js +1318 -0
- package/lib/Cloudflare/Workers/WorkerProvider.js.map +1 -0
- package/lib/Cloudflare/Workers/Workflow.d.ts +3 -2
- package/lib/Cloudflare/Workers/Workflow.d.ts.map +1 -1
- package/lib/Cloudflare/Workers/Workflow.js +4 -4
- package/lib/Cloudflare/Workers/Workflow.js.map +1 -1
- package/lib/Cloudflare/Workers/index.d.ts +2 -2
- package/lib/Cloudflare/Workers/index.d.ts.map +1 -1
- package/lib/Cloudflare/Workers/index.js +2 -2
- package/lib/Cloudflare/Workers/index.js.map +1 -1
- package/lib/Cloudflare/Zaraz/ZarazConfig.js +1 -1
- package/lib/Cloudflare/Zaraz/ZarazConfig.js.map +1 -1
- package/lib/Cloudflare/Zone/Hold.d.ts.map +1 -1
- package/lib/Cloudflare/Zone/Hold.js +15 -1
- package/lib/Cloudflare/Zone/Hold.js.map +1 -1
- package/lib/Cloudflare/index.d.ts +3 -0
- package/lib/Cloudflare/index.d.ts.map +1 -1
- package/lib/Cloudflare/index.js +3 -0
- package/lib/Cloudflare/index.js.map +1 -1
- package/lib/Command/Build.d.ts +98 -0
- package/lib/Command/Build.d.ts.map +1 -0
- package/lib/Command/Build.js +118 -0
- package/lib/Command/Build.js.map +1 -0
- package/lib/Command/Command.d.ts +99 -0
- package/lib/Command/Command.d.ts.map +1 -0
- package/lib/Command/Command.js +118 -0
- package/lib/Command/Command.js.map +1 -0
- package/lib/Command/Dev.d.ts +73 -0
- package/lib/Command/Dev.d.ts.map +1 -0
- package/lib/Command/Dev.js +145 -0
- package/lib/Command/Dev.js.map +1 -0
- package/lib/Command/Exec.d.ts +70 -0
- package/lib/Command/Exec.d.ts.map +1 -0
- package/lib/Command/Exec.js +87 -0
- package/lib/Command/Exec.js.map +1 -0
- package/lib/{Build → Command}/Local.d.ts.map +1 -1
- package/lib/Command/Local.js +6 -0
- package/lib/Command/Local.js.map +1 -0
- package/lib/Command/Memo.d.ts.map +1 -0
- package/lib/{Build → Command}/Memo.js +5 -5
- package/lib/Command/Memo.js.map +1 -0
- package/lib/Command/Providers.d.ts +4 -0
- package/lib/Command/Providers.d.ts.map +1 -0
- package/lib/Command/Providers.js +31 -0
- package/lib/Command/Providers.js.map +1 -0
- package/lib/Command/index.d.ts +6 -0
- package/lib/Command/index.d.ts.map +1 -0
- package/lib/Command/index.js +6 -0
- package/lib/Command/index.js.map +1 -0
- package/lib/Drizzle/Providers.d.ts +1 -1
- package/lib/Drizzle/Providers.d.ts.map +1 -1
- package/lib/Drizzle/Schema.d.ts +1 -1
- package/lib/Drizzle/Schema.d.ts.map +1 -1
- package/lib/Drizzle/Schema.js +147 -12
- package/lib/Drizzle/Schema.js.map +1 -1
- package/lib/GitHub/AuthProvider.js +2 -2
- package/lib/GitHub/AuthProvider.js.map +1 -1
- package/lib/GitHub/Secrets.d.ts.map +1 -1
- package/lib/GitHub/Secrets.js +12 -9
- package/lib/GitHub/Secrets.js.map +1 -1
- package/lib/Local/RpcProvider.d.ts +2 -2
- package/lib/Local/RpcProvider.d.ts.map +1 -1
- package/lib/Local/RpcProvider.js.map +1 -1
- package/lib/Local/RpcProviderProxy.js +3 -3
- package/lib/Local/RpcProviderProxy.js.map +1 -1
- package/lib/Local/RpcServerBun.js +1 -1
- package/lib/Local/RpcServerBun.js.map +1 -1
- package/lib/Local/RpcServerNode.js +1 -1
- package/lib/Local/RpcServerNode.js.map +1 -1
- package/lib/Local/RpcSpawner.js +3 -3
- package/lib/Local/RpcSpawner.js.map +1 -1
- package/lib/Named.d.ts +7 -0
- package/lib/Named.d.ts.map +1 -0
- package/lib/Named.js +1 -0
- package/lib/Named.js.map +1 -0
- package/lib/Neon/AuthProvider.js +2 -2
- package/lib/Neon/AuthProvider.js.map +1 -1
- package/lib/Neon/Branch.d.ts +0 -2
- package/lib/Neon/Branch.d.ts.map +1 -1
- package/lib/Neon/Branch.js +22 -8
- package/lib/Neon/Branch.js.map +1 -1
- package/lib/Neon/Project.js +2 -2
- package/lib/Neon/Project.js.map +1 -1
- package/lib/Phase.d.ts +15 -0
- package/lib/Phase.d.ts.map +1 -1
- package/lib/Phase.js.map +1 -1
- package/lib/Plan.d.ts.map +1 -1
- package/lib/Plan.js +12 -0
- package/lib/Plan.js.map +1 -1
- package/lib/Planetscale/AuthProvider.js +2 -2
- package/lib/Planetscale/AuthProvider.js.map +1 -1
- package/lib/Platform.d.ts +23 -14
- package/lib/Platform.d.ts.map +1 -1
- package/lib/Platform.js +9 -9
- package/lib/Platform.js.map +1 -1
- package/lib/Provider.d.ts +4 -4
- package/lib/Provider.d.ts.map +1 -1
- package/lib/Provider.js +1 -1
- package/lib/Provider.js.map +1 -1
- package/lib/Resource.d.ts +12 -6
- package/lib/Resource.d.ts.map +1 -1
- package/lib/Resource.js.map +1 -1
- package/lib/Rpc.d.ts +124 -1
- package/lib/Rpc.d.ts.map +1 -1
- package/lib/Rpc.js +342 -0
- package/lib/Rpc.js.map +1 -1
- package/lib/RuntimeContext.d.ts +1 -0
- package/lib/RuntimeContext.d.ts.map +1 -1
- package/lib/RuntimeContext.js +1 -0
- package/lib/RuntimeContext.js.map +1 -1
- package/lib/Self.d.ts +4 -0
- package/lib/Self.d.ts.map +1 -1
- package/lib/Self.js.map +1 -1
- package/lib/Server/S3BucketEventSource.d.ts +4 -3
- package/lib/Server/S3BucketEventSource.d.ts.map +1 -1
- package/lib/Server/S3BucketEventSource.js.map +1 -1
- package/lib/Stack.d.ts +11 -3
- package/lib/Stack.d.ts.map +1 -1
- package/lib/Stack.js +6 -2
- package/lib/Stack.js.map +1 -1
- package/lib/State/HttpStateApi.d.ts +15 -15
- package/lib/State/LocalState.js +1 -1
- package/lib/State/LocalState.js.map +1 -1
- package/lib/State/Sync.js +4 -4
- package/lib/State/Sync.js.map +1 -1
- package/lib/Tags.d.ts.map +1 -1
- package/lib/Tags.js +3 -3
- package/lib/Tags.js.map +1 -1
- package/lib/Test/Bun.d.ts +1 -1
- package/lib/Test/Bun.d.ts.map +1 -1
- package/lib/Test/Bun.js +1 -0
- package/lib/Test/Bun.js.map +1 -1
- package/lib/Test/Http.d.ts +42 -0
- package/lib/Test/Http.d.ts.map +1 -0
- package/lib/Test/Http.js +48 -0
- package/lib/Test/Http.js.map +1 -0
- package/lib/Util/FileLogger.js +1 -1
- package/lib/Util/FileLogger.js.map +1 -1
- package/lib/Util/effect.d.ts.map +1 -1
- package/lib/Util/effect.js +2 -1
- package/lib/Util/effect.js.map +1 -1
- package/lib/Util/interactive.d.ts +16 -0
- package/lib/Util/interactive.d.ts.map +1 -0
- package/lib/Util/interactive.js +35 -0
- package/lib/Util/interactive.js.map +1 -0
- package/lib/index.d.ts +2 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +1 -1
- package/lib/index.js.map +1 -1
- package/package.json +23 -10
- package/src/AI/Agent.ts +78 -0
- package/src/AI/Parameter.ts +57 -0
- package/src/AI/Tool.ts +98 -0
- package/src/AI/index.ts +3 -0
- package/src/AWS/ACM/Certificate.ts +30 -20
- package/src/AWS/Assets.ts +1 -1
- package/src/AWS/AuthProvider.ts +3 -3
- package/src/AWS/AutoScaling/LaunchTemplate.ts +1 -1
- package/src/AWS/CloudFront/Distribution.ts +1 -1
- package/src/AWS/CloudWatch/DescribeAlarmContributors.ts +3 -1
- package/src/AWS/CloudWatch/DescribeAlarmHistory.ts +3 -1
- package/src/AWS/CloudWatch/DescribeAlarms.ts +3 -1
- package/src/AWS/CloudWatch/DescribeAlarmsForMetric.ts +3 -1
- package/src/AWS/CloudWatch/DescribeAnomalyDetectors.ts +3 -1
- package/src/AWS/CloudWatch/DescribeInsightRules.ts +3 -1
- package/src/AWS/CloudWatch/DisableAlarmActions.ts +3 -1
- package/src/AWS/CloudWatch/DisableInsightRules.ts +3 -1
- package/src/AWS/CloudWatch/EnableAlarmActions.ts +3 -1
- package/src/AWS/CloudWatch/GetAlarmMuteRule.ts +3 -1
- package/src/AWS/CloudWatch/GetDashboard.ts +3 -1
- package/src/AWS/CloudWatch/GetInsightRuleReport.ts +3 -1
- package/src/AWS/CloudWatch/GetMetricData.ts +3 -1
- package/src/AWS/CloudWatch/GetMetricStatistics.ts +3 -1
- package/src/AWS/CloudWatch/GetMetricStream.ts +3 -1
- package/src/AWS/CloudWatch/GetMetricWidgetImage.ts +3 -1
- package/src/AWS/CloudWatch/ListAlarmMuteRules.ts +3 -1
- package/src/AWS/CloudWatch/ListDashboards.ts +3 -1
- package/src/AWS/CloudWatch/ListManagedInsightRules.ts +3 -1
- package/src/AWS/CloudWatch/ListMetricStreams.ts +3 -1
- package/src/AWS/CloudWatch/ListMetrics.ts +3 -1
- package/src/AWS/CloudWatch/ListTagsForResource.ts +3 -1
- package/src/AWS/CloudWatch/PutMetricData.ts +3 -1
- package/src/AWS/CloudWatch/SetAlarmState.ts +3 -1
- package/src/AWS/Credentials.ts +6 -0
- package/src/AWS/DynamoDB/BatchExecuteStatement.ts +3 -1
- package/src/AWS/DynamoDB/BatchGetItem.ts +10 -6
- package/src/AWS/DynamoDB/BatchWriteItem.ts +10 -6
- package/src/AWS/DynamoDB/DeleteItem.ts +3 -1
- package/src/AWS/DynamoDB/DescribeTable.ts +3 -1
- package/src/AWS/DynamoDB/DescribeTimeToLive.ts +3 -1
- package/src/AWS/DynamoDB/ExecuteStatement.ts +3 -1
- package/src/AWS/DynamoDB/ExecuteTransaction.ts +3 -1
- package/src/AWS/DynamoDB/GetItem.ts +3 -1
- package/src/AWS/DynamoDB/ListTables.ts +3 -1
- package/src/AWS/DynamoDB/ListTagsOfResource.ts +3 -1
- package/src/AWS/DynamoDB/PutItem.ts +3 -1
- package/src/AWS/DynamoDB/Query.ts +3 -1
- package/src/AWS/DynamoDB/RestoreTableToPointInTime.ts +3 -1
- package/src/AWS/DynamoDB/Scan.ts +3 -1
- package/src/AWS/DynamoDB/TransactGetItems.ts +10 -6
- package/src/AWS/DynamoDB/TransactWriteItems.ts +14 -8
- package/src/AWS/DynamoDB/UpdateItem.ts +3 -1
- package/src/AWS/DynamoDB/UpdateTimeToLive.ts +3 -1
- package/src/AWS/EC2/Image.ts +2 -2
- package/src/AWS/EC2/Instance.ts +1 -3
- package/src/AWS/EC2/NatGateway.ts +1 -1
- package/src/AWS/EC2/NetworkAcl.ts +1 -1
- package/src/AWS/EC2/SecurityGroup.ts +1 -1
- package/src/AWS/EC2/VpcEndpoint.ts +1 -1
- package/src/AWS/EC2/hosted.ts +2 -2
- package/src/AWS/ECS/DescribeTasks.ts +3 -1
- package/src/AWS/ECS/ListTasks.ts +3 -1
- package/src/AWS/ECS/RunTask.ts +3 -1
- package/src/AWS/ECS/StopTask.ts +3 -1
- package/src/AWS/ECS/Task.ts +1 -1
- package/src/AWS/Environment.ts +4 -3
- package/src/AWS/EventBridge/DescribeEventBus.ts +3 -1
- package/src/AWS/EventBridge/DescribeRule.ts +3 -1
- package/src/AWS/EventBridge/ListEventBuses.ts +3 -1
- package/src/AWS/EventBridge/ListRules.ts +3 -1
- package/src/AWS/EventBridge/ListTargetsByRule.ts +3 -1
- package/src/AWS/EventBridge/PutEvents.ts +3 -1
- package/src/AWS/EventBridge/TestEventPattern.ts +3 -1
- package/src/AWS/EventBridge/ToLambda.ts +3 -1
- package/src/AWS/EventBridge/ToQueue.ts +3 -1
- package/src/AWS/Kinesis/DescribeAccountSettings.ts +3 -1
- package/src/AWS/Kinesis/DescribeLimits.ts +3 -1
- package/src/AWS/Kinesis/DescribeStream.ts +3 -1
- package/src/AWS/Kinesis/DescribeStreamConsumer.ts +3 -1
- package/src/AWS/Kinesis/DescribeStreamSummary.ts +3 -1
- package/src/AWS/Kinesis/GetRecords.ts +3 -1
- package/src/AWS/Kinesis/GetResourcePolicy.ts +3 -1
- package/src/AWS/Kinesis/GetShardIterator.ts +3 -1
- package/src/AWS/Kinesis/ListShards.ts +3 -1
- package/src/AWS/Kinesis/ListStreamConsumers.ts +3 -1
- package/src/AWS/Kinesis/ListStreams.ts +3 -1
- package/src/AWS/Kinesis/ListTagsForResource.ts +3 -1
- package/src/AWS/Kinesis/PutRecord.ts +3 -1
- package/src/AWS/Kinesis/PutRecords.ts +3 -1
- package/src/AWS/Kinesis/StreamSink.ts +3 -1
- package/src/AWS/Kinesis/SubscribeToShard.ts +3 -1
- package/src/AWS/Lambda/BucketEventSource.ts +3 -1
- package/src/AWS/Lambda/EventBridgeEventSource.ts +3 -1
- package/src/AWS/Lambda/Function.ts +182 -55
- package/src/AWS/Lambda/InvokeFunction.ts +3 -1
- package/src/AWS/Lambda/QueueEventSource.ts +3 -1
- package/src/AWS/Lambda/StreamEventSource.ts +3 -1
- package/src/AWS/Lambda/TableEventSource.ts +3 -1
- package/src/AWS/Lambda/TopicEventSource.ts +3 -1
- package/src/AWS/Organizations/Root.ts +1 -1
- package/src/AWS/Providers.ts +4 -5
- package/src/AWS/RDS/Connect.ts +3 -1
- package/src/AWS/RDSData/BatchExecuteStatement.ts +3 -1
- package/src/AWS/RDSData/BeginTransaction.ts +3 -1
- package/src/AWS/RDSData/CommitTransaction.ts +6 -1
- package/src/AWS/RDSData/ExecuteSql.ts +3 -1
- package/src/AWS/RDSData/ExecuteStatement.ts +3 -1
- package/src/AWS/RDSData/RollbackTransaction.ts +3 -1
- package/src/AWS/Region.ts +6 -0
- package/src/AWS/S3/AbortMultipartUpload.ts +3 -1
- package/src/AWS/S3/Bucket.ts +18 -18
- package/src/AWS/S3/CompleteMultipartUpload.ts +3 -1
- package/src/AWS/S3/CopyObject.ts +3 -1
- package/src/AWS/S3/CreateMultipartUpload.ts +3 -1
- package/src/AWS/S3/DeleteObject.ts +3 -1
- package/src/AWS/S3/GetObject.ts +3 -1
- package/src/AWS/S3/HeadObject.ts +3 -1
- package/src/AWS/S3/ListObjectsV2.ts +3 -1
- package/src/AWS/S3/PutObject.ts +3 -1
- package/src/AWS/S3/UploadPart.ts +3 -1
- package/src/AWS/SNS/AddPermission.ts +3 -1
- package/src/AWS/SNS/ConfirmSubscription.ts +3 -1
- package/src/AWS/SNS/GetDataProtectionPolicy.ts +3 -1
- package/src/AWS/SNS/GetSubscriptionAttributes.ts +3 -1
- package/src/AWS/SNS/GetTopicAttributes.ts +3 -1
- package/src/AWS/SNS/ListSubscriptions.ts +3 -1
- package/src/AWS/SNS/ListSubscriptionsByTopic.ts +3 -1
- package/src/AWS/SNS/ListTagsForResource.ts +3 -1
- package/src/AWS/SNS/ListTopics.ts +3 -1
- package/src/AWS/SNS/Publish.ts +3 -1
- package/src/AWS/SNS/PublishBatch.ts +3 -1
- package/src/AWS/SNS/PutDataProtectionPolicy.ts +3 -1
- package/src/AWS/SNS/RemovePermission.ts +3 -1
- package/src/AWS/SNS/SetSubscriptionAttributes.ts +3 -1
- package/src/AWS/SNS/SetTopicAttributes.ts +3 -1
- package/src/AWS/SNS/TagResource.ts +3 -1
- package/src/AWS/SNS/TopicSink.ts +3 -1
- package/src/AWS/SNS/UntagResource.ts +3 -1
- package/src/AWS/SQS/DeleteMessage.ts +3 -1
- package/src/AWS/SQS/DeleteMessageBatch.ts +3 -1
- package/src/AWS/SQS/Queue.ts +1 -1
- package/src/AWS/SQS/QueueSink.ts +3 -1
- package/src/AWS/SQS/ReceiveMessage.ts +3 -1
- package/src/AWS/SQS/SendMessage.ts +3 -1
- package/src/AWS/SQS/SendMessageBatch.ts +3 -1
- package/src/AWS/SecretsManager/DescribeSecret.ts +3 -1
- package/src/AWS/SecretsManager/GetRandomPassword.ts +3 -1
- package/src/AWS/SecretsManager/GetSecretValue.ts +3 -1
- package/src/AWS/SecretsManager/ListSecrets.ts +3 -1
- package/src/AWS/SecretsManager/PutSecretValue.ts +3 -1
- package/src/AWS/StateStore/State.ts +41 -9
- package/src/AWS/Website/Router.ts +212 -208
- package/src/AWS/Website/SsrSite.ts +208 -209
- package/src/AWS/Website/StaticSite.ts +284 -281
- package/src/AdoptPolicy.ts +1 -1
- package/src/Apply.ts +16 -7
- package/src/Auth/Lock.ts +4 -2
- package/src/Auth/Profile.ts +34 -12
- package/src/Axiom/AuthProvider.ts +2 -2
- package/src/Binding.ts +6 -2
- package/src/Bundle/Bundle.ts +53 -4
- package/src/Bundle/Docker.ts +23 -4
- package/src/Bundle/InstalledPackages.ts +615 -0
- package/src/Bundle/TempRoot.ts +1 -1
- package/src/Bundle/index.ts +1 -0
- package/src/Cli/commands/aws.ts +1 -1
- package/src/Cli/commands/cloudflare.ts +3 -10
- package/src/Cli/commands/login.ts +1 -1
- package/src/Cli/commands/logs.ts +1 -1
- package/src/Cli/commands/nuke.ts +1 -1
- package/src/Cli/commands/profile.ts +2 -2
- package/src/Cli/commands/state.ts +6 -11
- package/src/Cli/commands/tail.ts +1 -1
- package/src/Cli/selectCli.ts +2 -25
- package/src/Cloudflare/Access/Application.ts +63 -20
- package/src/Cloudflare/AiGateway/AiGateway.ts +186 -0
- package/src/Cloudflare/AiGateway/AiGatewayBinding.ts +3 -1
- package/src/Cloudflare/AiGateway/DurableObjectChatPersistence.ts +88 -0
- package/src/Cloudflare/AiGateway/LanguageModel.ts +1 -3
- package/src/Cloudflare/AiGateway/index.ts +1 -1
- package/src/Cloudflare/AiSearch/AiSearch.ts +89 -90
- package/src/Cloudflare/AiSearch/AiSearchBinding.ts +5 -2
- package/src/Cloudflare/AiSearch/AiSearchInstance.ts +31 -14
- package/src/Cloudflare/AnalyticsEngine/AnalyticsEngineDataset.ts +1 -4
- package/src/Cloudflare/AnalyticsEngine/AnalyticsEngineDatasetBinding.ts +5 -3
- package/src/Cloudflare/ApiShield/UserSchema.ts +5 -0
- package/src/Cloudflare/Artifacts/ArtifactsBinding.ts +3 -1
- package/src/Cloudflare/Auth/AuthProvider.ts +6 -3
- package/src/Cloudflare/Browser/BrowserBinding.ts +3 -1
- package/src/Cloudflare/Cache/RegionalTieredCache.ts +18 -0
- package/src/Cloudflare/ClientCertificate/ClientCertificate.ts +19 -12
- package/src/Cloudflare/CloudflareEnvironment.ts +3 -1
- package/src/Cloudflare/Container/Container.ts +313 -171
- package/src/Cloudflare/Container/ContainerApplication.ts +73 -893
- package/src/Cloudflare/Container/ContainerBundle.ts +78 -2
- package/src/Cloudflare/Container/ContainerPlatform.ts +220 -0
- package/src/Cloudflare/Container/ContainerProvider.ts +1052 -0
- package/src/Cloudflare/Container/LocalContainerProvider.ts +14 -7
- package/src/Cloudflare/Container/StartContainer.ts +65 -14
- package/src/Cloudflare/Container/index.ts +2 -1
- package/src/Cloudflare/Credentials.ts +6 -0
- package/src/Cloudflare/D1/D1Connection.ts +3 -1
- package/src/Cloudflare/Dns/DnsBinding.ts +1 -30
- package/src/Cloudflare/Dns/DnsRead.ts +5 -3
- package/src/Cloudflare/Dns/DnsReadWrite.ts +3 -1
- package/src/Cloudflare/Dns/DnsWrite.ts +5 -3
- package/src/Cloudflare/Email/EmailCatchAll.ts +1 -1
- package/src/Cloudflare/Email/EmailRouting.ts +1 -1
- package/src/Cloudflare/Email/EmailRule.ts +1 -1
- package/src/Cloudflare/Email/SendEmail.ts +1 -1
- package/src/Cloudflare/Email/SendEmailBinding.ts +5 -3
- package/src/Cloudflare/Fetcher.ts +86 -15
- package/src/Cloudflare/Flagship/FlagshipBinding.ts +3 -1
- package/src/Cloudflare/GoogleTagGateway/GoogleTagGateway.ts +1 -1
- package/src/Cloudflare/HttpClientUtils.ts +31 -0
- package/src/Cloudflare/Hyperdrive/HyperdriveBinding.ts +3 -1
- package/src/Cloudflare/Iam/UserGroupMembership.ts +7 -0
- package/src/Cloudflare/Images/ImagesBinding.ts +3 -1
- package/src/Cloudflare/Images/Variant.ts +20 -3
- package/src/Cloudflare/KV/{KVNamespace.ts → Namespace.ts} +9 -6
- package/src/Cloudflare/KV/NamespaceBinding.ts +68 -0
- package/src/Cloudflare/KV/NamespaceHttp.ts +89 -0
- package/src/Cloudflare/KV/{KVNamespaceBinding.ts → NamespaceRead.ts} +15 -104
- package/src/Cloudflare/KV/NamespaceReadBinding.ts +39 -0
- package/src/Cloudflare/KV/NamespaceReadHttp.ts +171 -0
- package/src/Cloudflare/KV/NamespaceReadWrite.ts +20 -0
- package/src/Cloudflare/KV/NamespaceReadWriteBinding.ts +32 -0
- package/src/Cloudflare/KV/NamespaceReadWriteHttp.ts +38 -0
- package/src/Cloudflare/KV/NamespaceTypes.ts +6 -0
- package/src/Cloudflare/KV/NamespaceWrite.ts +26 -0
- package/src/Cloudflare/KV/NamespaceWriteBinding.ts +34 -0
- package/src/Cloudflare/KV/NamespaceWriteHttp.ts +105 -0
- package/src/Cloudflare/KV/index.ts +11 -2
- package/src/Cloudflare/Providers.ts +4 -22
- package/src/Cloudflare/Queue/Queue.ts +9 -9
- package/src/Cloudflare/Queue/QueueBinding.ts +48 -131
- package/src/Cloudflare/Queue/QueueEventSource.ts +4 -2
- package/src/Cloudflare/Queue/QueueHttp.ts +86 -0
- package/src/Cloudflare/Queue/QueueTypes.ts +17 -0
- package/src/Cloudflare/Queue/QueueWrite.ts +64 -0
- package/src/Cloudflare/Queue/QueueWriteBinding.ts +33 -0
- package/src/Cloudflare/Queue/QueueWriteHttp.ts +82 -0
- package/src/Cloudflare/Queue/index.ts +4 -1
- package/src/Cloudflare/R2/{R2Bucket.ts → Bucket.ts} +6 -9
- package/src/Cloudflare/R2/BucketBinding.ts +115 -0
- package/src/Cloudflare/R2/BucketEventNotification.ts +1 -1
- package/src/Cloudflare/R2/BucketHttp.ts +201 -0
- package/src/Cloudflare/R2/BucketRead.ts +43 -0
- package/src/Cloudflare/R2/BucketReadBinding.ts +44 -0
- package/src/Cloudflare/R2/BucketReadHttp.ts +181 -0
- package/src/Cloudflare/R2/BucketReadWrite.ts +20 -0
- package/src/Cloudflare/R2/BucketReadWriteBinding.ts +26 -0
- package/src/Cloudflare/R2/BucketReadWriteHttp.ts +35 -0
- package/src/Cloudflare/R2/BucketSippy.ts +1 -1
- package/src/Cloudflare/R2/BucketTypes.ts +59 -0
- package/src/Cloudflare/R2/BucketWrite.ts +77 -0
- package/src/Cloudflare/R2/BucketWriteBinding.ts +111 -0
- package/src/Cloudflare/R2/BucketWriteHttp.ts +144 -0
- package/src/Cloudflare/R2/index.ts +10 -2
- package/src/Cloudflare/RateLimit/RateLimitBinding.ts +3 -1
- package/src/Cloudflare/SecretsStore/SecretBinding.ts +3 -1
- package/src/Cloudflare/StateStore/Api.ts +1 -1
- package/src/Cloudflare/StateStore/State.ts +6 -4
- package/src/Cloudflare/StateStore/Store.ts +5 -8
- package/src/Cloudflare/Tunnel/Tunnel.ts +1 -1
- package/src/Cloudflare/Tunnel/TunnelBinding.ts +1 -30
- package/src/Cloudflare/Tunnel/TunnelRead.ts +4 -2
- package/src/Cloudflare/Tunnel/TunnelReadWrite.ts +3 -1
- package/src/Cloudflare/Tunnel/TunnelWrite.ts +4 -2
- package/src/Cloudflare/Tunnel/WarpConnector.ts +1 -1
- package/src/Cloudflare/UrlNormalization/UrlNormalization.ts +12 -0
- package/src/Cloudflare/Vectorize/VectorizeIndexBinding.ts +3 -1
- package/src/Cloudflare/VpcService/VpcService.ts +1 -1
- package/src/Cloudflare/WaitingRoom/Settings.ts +19 -1
- package/src/Cloudflare/Website/StaticSite.ts +12 -11
- package/src/Cloudflare/Website/Vite.ts +1 -1
- package/src/Cloudflare/Workers/AccountSetting.ts +9 -6
- package/src/Cloudflare/Workers/Assets.ts +6 -6
- package/src/Cloudflare/Workers/CronEventSource.ts +4 -2
- package/src/Cloudflare/Workers/DurableObjectBridge.ts +22 -17
- package/src/Cloudflare/Workers/DurableObjectChatPersistence.ts +20 -4
- package/src/Cloudflare/Workers/DurableObjectNamespace.ts +125 -73
- package/src/Cloudflare/Workers/DurableObjectState.ts +25 -11
- package/src/Cloudflare/Workers/DurableObjectStorage.ts +50 -37
- package/src/Cloudflare/Workers/Fetch.ts +3 -1
- package/src/Cloudflare/Workers/GitHubRepositoryEventSource.ts +3 -1
- package/src/Cloudflare/Workers/InferEnv.ts +2 -2
- package/src/Cloudflare/Workers/LocalWorkerProvider.ts +15 -18
- package/src/Cloudflare/Workers/Rpc.ts +7 -273
- package/src/Cloudflare/Workers/RpcDurableObjectNamespace.ts +10 -8
- package/src/Cloudflare/Workers/RpcWorker.ts +8 -8
- package/src/Cloudflare/Workers/ScheduledEvents.ts +24 -20
- package/src/Cloudflare/Workers/VersionMetadataBinding.ts +3 -1
- package/src/Cloudflare/Workers/WebSocket.ts +1 -1
- package/src/Cloudflare/Workers/Worker.ts +157 -1799
- package/src/Cloudflare/Workers/WorkerAsyncBindings.ts +5 -5
- package/src/Cloudflare/Workers/WorkerBinding.ts +8 -6
- package/src/Cloudflare/Workers/WorkerBridge.ts +22 -18
- package/src/Cloudflare/Workers/WorkerBundle.ts +3 -5
- package/src/Cloudflare/Workers/{DynamicWorkerLoader.ts → WorkerLoader.ts} +137 -140
- package/src/Cloudflare/Workers/WorkerProvider.ts +1771 -0
- package/src/Cloudflare/Workers/Workflow.ts +9 -5
- package/src/Cloudflare/Workers/index.ts +2 -2
- package/src/Cloudflare/Zaraz/ZarazConfig.ts +1 -1
- package/src/Cloudflare/Zone/Hold.ts +18 -0
- package/src/Cloudflare/index.ts +3 -0
- package/src/Command/Build.ts +187 -0
- package/src/Command/Command.ts +244 -0
- package/src/Command/Dev.ts +219 -0
- package/src/Command/Exec.ts +121 -0
- package/src/Command/Local.ts +6 -0
- package/src/{Build → Command}/Memo.ts +5 -5
- package/src/Command/Providers.ts +41 -0
- package/src/Command/index.ts +5 -0
- package/src/Drizzle/Schema.ts +213 -26
- package/src/GitHub/AuthProvider.ts +2 -2
- package/src/GitHub/Secrets.ts +15 -12
- package/src/Local/RpcProvider.ts +2 -2
- package/src/Local/RpcProviderProxy.ts +3 -3
- package/src/Local/RpcServerBun.ts +1 -1
- package/src/Local/RpcServerNode.ts +1 -1
- package/src/Local/RpcSpawner.ts +3 -3
- package/src/Named.ts +6 -0
- package/src/Neon/AuthProvider.ts +2 -2
- package/src/Neon/Branch.ts +25 -12
- package/src/Neon/Project.ts +2 -2
- package/src/Phase.ts +16 -0
- package/src/Plan.ts +12 -0
- package/src/Planetscale/AuthProvider.ts +2 -2
- package/src/Platform.ts +137 -96
- package/src/Provider.ts +5 -6
- package/src/Resource.ts +14 -7
- package/src/Rpc.ts +552 -1
- package/src/RuntimeContext.ts +3 -1
- package/src/Self.ts +5 -2
- package/src/Server/S3BucketEventSource.ts +3 -1
- package/src/Stack.ts +26 -5
- package/src/State/LocalState.ts +1 -1
- package/src/State/Sync.ts +4 -4
- package/src/Tags.ts +3 -5
- package/src/Test/Bun.ts +7 -0
- package/src/Test/Http.ts +74 -0
- package/src/Util/FileLogger.ts +1 -1
- package/src/Util/effect.ts +2 -1
- package/src/Util/interactive.ts +32 -0
- package/src/index.ts +2 -2
- package/lib/Build/Command.d.ts +0 -114
- package/lib/Build/Command.d.ts.map +0 -1
- package/lib/Build/Command.js +0 -191
- package/lib/Build/Command.js.map +0 -1
- package/lib/Build/DevServer.d.ts +0 -113
- package/lib/Build/DevServer.d.ts.map +0 -1
- package/lib/Build/DevServer.js +0 -220
- package/lib/Build/DevServer.js.map +0 -1
- package/lib/Build/Local.js +0 -4
- package/lib/Build/Local.js.map +0 -1
- package/lib/Build/Memo.d.ts.map +0 -1
- package/lib/Build/Memo.js.map +0 -1
- package/lib/Build/index.d.ts +0 -2
- package/lib/Build/index.d.ts.map +0 -1
- package/lib/Build/index.js +0 -2
- package/lib/Build/index.js.map +0 -1
- package/lib/Cloudflare/AiGateway/AiGatewaySpendingLimit.d.ts +0 -167
- package/lib/Cloudflare/AiGateway/AiGatewaySpendingLimit.d.ts.map +0 -1
- package/lib/Cloudflare/AiGateway/AiGatewaySpendingLimit.js +0 -263
- package/lib/Cloudflare/AiGateway/AiGatewaySpendingLimit.js.map +0 -1
- package/lib/Cloudflare/Container/ContainerBinding.d.ts +0 -8
- package/lib/Cloudflare/Container/ContainerBinding.d.ts.map +0 -1
- package/lib/Cloudflare/Container/ContainerBinding.js +0 -39
- package/lib/Cloudflare/Container/ContainerBinding.js.map +0 -1
- package/lib/Cloudflare/KV/KVNamespace.d.ts.map +0 -1
- package/lib/Cloudflare/KV/KVNamespace.js.map +0 -1
- package/lib/Cloudflare/KV/KVNamespaceBinding.d.ts.map +0 -1
- package/lib/Cloudflare/KV/KVNamespaceBinding.js +0 -63
- package/lib/Cloudflare/KV/KVNamespaceBinding.js.map +0 -1
- package/lib/Cloudflare/R2/R2Bucket.d.ts.map +0 -1
- package/lib/Cloudflare/R2/R2Bucket.js.map +0 -1
- package/lib/Cloudflare/R2/R2BucketBinding.d.ts +0 -92
- package/lib/Cloudflare/R2/R2BucketBinding.d.ts.map +0 -1
- package/lib/Cloudflare/R2/R2BucketBinding.js +0 -121
- package/lib/Cloudflare/R2/R2BucketBinding.js.map +0 -1
- package/lib/Cloudflare/Workers/DynamicWorkerLoader.d.ts.map +0 -1
- package/lib/Cloudflare/Workers/DynamicWorkerLoader.js.map +0 -1
- package/lib/Construct.d.ts +0 -56
- package/lib/Construct.d.ts.map +0 -1
- package/lib/Construct.js +0 -51
- package/lib/Construct.js.map +0 -1
- package/src/Build/Command.ts +0 -293
- package/src/Build/DevServer.ts +0 -338
- package/src/Build/Local.ts +0 -4
- package/src/Build/index.ts +0 -1
- package/src/Cloudflare/AiGateway/AiGatewaySpendingLimit.ts +0 -398
- package/src/Cloudflare/Container/ContainerBinding.ts +0 -74
- package/src/Cloudflare/R2/R2BucketBinding.ts +0 -339
- package/src/Construct.ts +0 -71
- /package/lib/{Build → Command}/Local.d.ts +0 -0
- /package/lib/{Build → Command}/Memo.d.ts +0 -0
|
@@ -1,34 +1,17 @@
|
|
|
1
1
|
import * as workers from "@distilled.cloud/cloudflare/workers";
|
|
2
|
-
import * as zones from "@distilled.cloud/cloudflare/zones";
|
|
3
2
|
import * as Context from "effect/Context";
|
|
4
|
-
import * as Data from "effect/Data";
|
|
5
3
|
import * as Effect from "effect/Effect";
|
|
6
|
-
import * as Path from "effect/Path";
|
|
7
|
-
import * as Predicate from "effect/Predicate";
|
|
8
4
|
import * as Redacted from "effect/Redacted";
|
|
9
|
-
import
|
|
10
|
-
import * as Stream from "effect/Stream";
|
|
11
|
-
import * as crypto from "node:crypto";
|
|
12
|
-
import { Unowned } from "../../AdoptPolicy.js";
|
|
13
|
-
import * as Artifacts from "../../Artifacts.js";
|
|
14
|
-
import { hashDirectory } from "../../Build/Memo.js";
|
|
5
|
+
import {} from "../../Command/Memo.js";
|
|
15
6
|
import * as Bundle from "../../Bundle/Bundle.js";
|
|
16
|
-
import {
|
|
17
|
-
import * as ProviderLayer from "../../Local/ProviderLayer.js";
|
|
18
|
-
import { Platform } from "../../Platform.js";
|
|
19
|
-
import * as Provider from "../../Provider.js";
|
|
7
|
+
import { Platform, } from "../../Platform.js";
|
|
20
8
|
import { Resource } from "../../Resource.js";
|
|
21
|
-
import { Stack } from "../../Stack.js";
|
|
22
9
|
import { CloudflareEnvironment } from "../CloudflareEnvironment.js";
|
|
23
|
-
import {
|
|
24
|
-
import {
|
|
25
|
-
import { getCompatibility } from "./Compatibility.js";
|
|
26
|
-
import { isDurableObjectExport, } from "./DurableObjectNamespace.js";
|
|
27
|
-
import { LocalWorkerProvider } from "./LocalWorkerProvider.js";
|
|
10
|
+
import {} from "./Assets.js";
|
|
11
|
+
import {} from "./DurableObjectNamespace.js";
|
|
28
12
|
import { Request } from "./Request.js";
|
|
29
|
-
import { bindWorkerAsyncBindings
|
|
30
|
-
import {
|
|
31
|
-
import { createWorkerName } from "./WorkerName.js";
|
|
13
|
+
import { bindWorkerAsyncBindings } from "./WorkerAsyncBindings.js";
|
|
14
|
+
import {} from "./WorkerBundle.js";
|
|
32
15
|
import { makeWorkerRuntimeContext, } from "./WorkerRuntimeContext.js";
|
|
33
16
|
export const WorkerTypeId = "Cloudflare.Worker";
|
|
34
17
|
export const isWorker = (value) => typeof value === "object" &&
|
|
@@ -62,7 +45,7 @@ export const ExportedHandlerMethods = [
|
|
|
62
45
|
* ```typescript
|
|
63
46
|
* Effect.gen(function* () {
|
|
64
47
|
* // Phase 1: bind resources (runs at deploy time)
|
|
65
|
-
* const kv = yield* Cloudflare.
|
|
48
|
+
* const kv = yield* Cloudflare.KV.ReadWriteNamespace(MyKV);
|
|
66
49
|
*
|
|
67
50
|
* return {
|
|
68
51
|
* // Phase 2: runtime handlers (runs on each request)
|
|
@@ -143,7 +126,7 @@ export const ExportedHandlerMethods = [
|
|
|
143
126
|
* { main: import.meta.filename },
|
|
144
127
|
* Effect.gen(function* () {
|
|
145
128
|
* // init: bind resources
|
|
146
|
-
* const kv = yield* Cloudflare.
|
|
129
|
+
* const kv = yield* Cloudflare.KV.ReadWriteNamespace(MyKV);
|
|
147
130
|
*
|
|
148
131
|
* return {
|
|
149
132
|
* // runtime: use them
|
|
@@ -172,16 +155,18 @@ export const ExportedHandlerMethods = [
|
|
|
172
155
|
*
|
|
173
156
|
* @example Worker Layer (class + .make() in one file)
|
|
174
157
|
* ```typescript
|
|
175
|
-
* // src/WorkerB.ts
|
|
176
|
-
*
|
|
177
|
-
*
|
|
178
|
-
*
|
|
179
|
-
* )
|
|
158
|
+
* // src/WorkerB.ts — the tag carries the name + RPC shape; props live
|
|
159
|
+
* // on `.make()`.
|
|
160
|
+
* export class WorkerB extends Cloudflare.Worker<
|
|
161
|
+
* WorkerB,
|
|
162
|
+
* { greet: (name: string) => Effect.Effect<string> }
|
|
163
|
+
* >()("WorkerB") {}
|
|
180
164
|
*
|
|
181
165
|
* export default WorkerB.make(
|
|
166
|
+
* { main: import.meta.filename },
|
|
182
167
|
* Effect.gen(function* () {
|
|
183
168
|
* // init: bind resources
|
|
184
|
-
* const kv = yield* Cloudflare.
|
|
169
|
+
* const kv = yield* Cloudflare.KV.ReadWriteNamespace(MyKV);
|
|
185
170
|
*
|
|
186
171
|
* return {
|
|
187
172
|
* // runtime: use them
|
|
@@ -292,7 +277,7 @@ export const ExportedHandlerMethods = [
|
|
|
292
277
|
* @example Binding and using R2
|
|
293
278
|
* ```typescript
|
|
294
279
|
* // init
|
|
295
|
-
* const bucket = yield* Cloudflare.
|
|
280
|
+
* const bucket = yield* Cloudflare.R2.ReadWrite(MyBucket);
|
|
296
281
|
*
|
|
297
282
|
* return {
|
|
298
283
|
* fetch: Effect.gen(function* () {
|
|
@@ -313,14 +298,14 @@ export const ExportedHandlerMethods = [
|
|
|
313
298
|
* ```
|
|
314
299
|
*
|
|
315
300
|
* @section KV Namespace
|
|
316
|
-
* Bind a KV namespace with `Cloudflare.
|
|
301
|
+
* Bind a KV namespace with `Cloudflare.KV.ReadWriteNamespace`. KV provides
|
|
317
302
|
* eventually-consistent, low-latency key-value reads replicated
|
|
318
303
|
* globally across Cloudflare's edge.
|
|
319
304
|
*
|
|
320
305
|
* @example Binding and using KV
|
|
321
306
|
* ```typescript
|
|
322
307
|
* // init
|
|
323
|
-
* const kv = yield* Cloudflare.
|
|
308
|
+
* const kv = yield* Cloudflare.KV.ReadWriteNamespace(MyKV);
|
|
324
309
|
*
|
|
325
310
|
* return {
|
|
326
311
|
* fetch: Effect.gen(function* () {
|
|
@@ -396,18 +381,18 @@ export const ExportedHandlerMethods = [
|
|
|
396
381
|
* ```
|
|
397
382
|
*
|
|
398
383
|
* @section Dynamic Workers
|
|
399
|
-
* `
|
|
384
|
+
* `WorkerLoader` lets you spin up ephemeral Workers at runtime
|
|
400
385
|
* from inline JavaScript modules. This is useful for sandboxing
|
|
401
386
|
* user-provided code or running untrusted scripts in isolation.
|
|
402
387
|
*
|
|
403
388
|
* @example Loading a dynamic Worker
|
|
404
389
|
* ```typescript
|
|
405
390
|
* // init
|
|
406
|
-
* const loader = yield* Cloudflare.
|
|
391
|
+
* const loader = yield* Cloudflare.WorkerLoader("Loader");
|
|
407
392
|
*
|
|
408
393
|
* return {
|
|
409
394
|
* fetch: Effect.gen(function* () {
|
|
410
|
-
* const worker = loader.load({
|
|
395
|
+
* const worker = yield* loader.load({
|
|
411
396
|
* compatibilityDate: "2026-01-28",
|
|
412
397
|
* mainModule: "worker.js",
|
|
413
398
|
* modules: {
|
|
@@ -436,1264 +421,4 @@ export const Worker = Platform(WorkerTypeId, {
|
|
|
436
421
|
onCreate: (resource, props) => bindWorkerAsyncBindings(resource, props),
|
|
437
422
|
createRuntimeContext: (id) => makeWorkerRuntimeContext(id),
|
|
438
423
|
});
|
|
439
|
-
class MissingDurableObjectNamespaces extends Data.TaggedError("MissingDurableObjectNamespaces") {
|
|
440
|
-
}
|
|
441
|
-
export const WorkerProvider = () => ProviderLayer.select({
|
|
442
|
-
live: () => LiveWorkerProvider(),
|
|
443
|
-
local: () => LocalWorkerProvider(),
|
|
444
|
-
});
|
|
445
|
-
export const LiveWorkerProvider = () => Provider.effect(Worker, Effect.gen(function* () {
|
|
446
|
-
const path = yield* Path.Path;
|
|
447
|
-
const bundler = yield* WorkerBundle;
|
|
448
|
-
const stack = yield* Stack;
|
|
449
|
-
// const createScriptSubdomain = yield* workers.createScriptSubdomain;
|
|
450
|
-
// const deleteScript = yield* workers.deleteScript;
|
|
451
|
-
// const getScriptSubdomain = yield* workers.getScriptSubdomain;
|
|
452
|
-
// const getScriptSchedule = yield* workers.getScriptSchedule;
|
|
453
|
-
// const getScriptSettings = yield* workers.getScriptScriptAndVersionSetting;
|
|
454
|
-
// const getSubdomain = yield* workers.getSubdomain;
|
|
455
|
-
// const putScript = yield* workers.putScript;
|
|
456
|
-
// const putScriptSchedule = yield* workers.putScriptSchedule;
|
|
457
|
-
// const putDomain = yield* workers.putDomain;
|
|
458
|
-
// const listDomains = yield* workers.listDomains;
|
|
459
|
-
// const deleteDomain = yield* workers.deleteDomain;
|
|
460
|
-
// const listZones = yield* zones.listZones;
|
|
461
|
-
const telemetry = yield* CloudflareLogs;
|
|
462
|
-
const getAccountSubdomain = (accountId) => workers
|
|
463
|
-
.getSubdomain({
|
|
464
|
-
accountId,
|
|
465
|
-
})
|
|
466
|
-
.pipe(Effect.map((result) => result.subdomain));
|
|
467
|
-
// Toggle the workers.dev subdomain via `POST /subdomain` with
|
|
468
|
-
// `enabled: true | false`. Mirrors the upstream Alchemy
|
|
469
|
-
// implementation in `.vendor/alchemy/.../worker-subdomain.ts`.
|
|
470
|
-
// When enabling we also set `previewsEnabled: true` so the
|
|
471
|
-
// script is reachable both at its stable workers.dev URL and at
|
|
472
|
-
// version-preview URLs; on disable we send just `enabled: false`.
|
|
473
|
-
const setWorkerSubdomain = Effect.fn(function* (name, enabled) {
|
|
474
|
-
const { accountId } = yield* yield* CloudflareEnvironment;
|
|
475
|
-
return yield* workers.createScriptSubdomain({
|
|
476
|
-
accountId,
|
|
477
|
-
scriptName: name,
|
|
478
|
-
enabled,
|
|
479
|
-
previewsEnabled: enabled ? true : undefined,
|
|
480
|
-
});
|
|
481
|
-
});
|
|
482
|
-
// Convert non-ASCII hostnames (emoji, IDN, etc.) to punycode so the
|
|
483
|
-
// Cloudflare API receives the form it stores domains in. `new URL(...)`
|
|
484
|
-
// does IDNA via WHATWG URL parsing — `📦.alchemy.run` → `xn--5z8h.alchemy.run`.
|
|
485
|
-
const toPunycode = (hostname) => {
|
|
486
|
-
try {
|
|
487
|
-
return new URL(`https://${hostname}`).hostname;
|
|
488
|
-
}
|
|
489
|
-
catch {
|
|
490
|
-
return hostname;
|
|
491
|
-
}
|
|
492
|
-
};
|
|
493
|
-
const normalizeDomains = (domain) => domain === undefined
|
|
494
|
-
? []
|
|
495
|
-
: Array.from(new Set((Array.isArray(domain) ? domain : [domain]).map(toPunycode)));
|
|
496
|
-
const normalizeCrons = (crons) => Array.from(new Set(crons ?? []));
|
|
497
|
-
const getWorkerCrons = Effect.fn(function* (scriptName) {
|
|
498
|
-
const { accountId } = yield* yield* CloudflareEnvironment;
|
|
499
|
-
return yield* workers
|
|
500
|
-
.getScriptSchedule({
|
|
501
|
-
accountId,
|
|
502
|
-
scriptName,
|
|
503
|
-
})
|
|
504
|
-
.pipe(Effect.map((response) => normalizeCrons(response.schedules.map((schedule) => schedule.cron))), Effect.catchTag("WorkerNotFound", () => Effect.succeed([])));
|
|
505
|
-
});
|
|
506
|
-
const reconcileCrons = (scriptName, desired, previous, session) => Effect.gen(function* () {
|
|
507
|
-
const { accountId } = yield* yield* CloudflareEnvironment;
|
|
508
|
-
const live = yield* getWorkerCrons(scriptName);
|
|
509
|
-
const desiredSorted = [...desired].sort();
|
|
510
|
-
const liveSorted = [...live].sort();
|
|
511
|
-
const changed = desiredSorted.length !== liveSorted.length ||
|
|
512
|
-
desiredSorted.some((cron, index) => cron !== liveSorted[index]);
|
|
513
|
-
if (!changed)
|
|
514
|
-
return live;
|
|
515
|
-
if (desired.length > 0 || previous.length > 0 || live.length > 0) {
|
|
516
|
-
yield* session.note(`Reconciling Cron Triggers (${desired.length}) ...`);
|
|
517
|
-
}
|
|
518
|
-
const result = yield* workers
|
|
519
|
-
.putScriptSchedule({
|
|
520
|
-
accountId,
|
|
521
|
-
scriptName,
|
|
522
|
-
body: desired.map((cron) => ({ cron })),
|
|
523
|
-
})
|
|
524
|
-
.pipe(Effect.retry({
|
|
525
|
-
while: (error) => error._tag === "WorkerNotFound",
|
|
526
|
-
schedule: Schedule.exponential(200).pipe(Schedule.both(Schedule.recurs(15))),
|
|
527
|
-
}));
|
|
528
|
-
return normalizeCrons(result.schedules.map((schedule) => schedule.cron));
|
|
529
|
-
});
|
|
530
|
-
/**
|
|
531
|
-
* Infer the Cloudflare Zone ID for a given hostname by listing the
|
|
532
|
-
* account's zones and matching the hostname against each zone's name —
|
|
533
|
-
* walking up the DNS label hierarchy until a match is found.
|
|
534
|
-
*/
|
|
535
|
-
const inferZoneIdForHostname = (hostname, zoneCache) => Effect.gen(function* () {
|
|
536
|
-
const cached = zoneCache.get(hostname);
|
|
537
|
-
if (cached)
|
|
538
|
-
return cached;
|
|
539
|
-
const zoneList = yield* zones
|
|
540
|
-
.listZones({})
|
|
541
|
-
.pipe(Effect.map((response) => response.result ?? []));
|
|
542
|
-
for (const zone of zoneList) {
|
|
543
|
-
zoneCache.set(zone.name, zone.id);
|
|
544
|
-
}
|
|
545
|
-
const parts = hostname.split(".");
|
|
546
|
-
for (let i = 0; i < parts.length - 1; i++) {
|
|
547
|
-
const candidate = parts.slice(i).join(".");
|
|
548
|
-
const match = zoneList.find((z) => z.name === candidate);
|
|
549
|
-
if (match) {
|
|
550
|
-
zoneCache.set(hostname, match.id);
|
|
551
|
-
return match.id;
|
|
552
|
-
}
|
|
553
|
-
}
|
|
554
|
-
return yield* Effect.die(`Could not infer Cloudflare Zone for hostname "${hostname}". ` +
|
|
555
|
-
"Ensure the parent zone exists in this account.");
|
|
556
|
-
});
|
|
557
|
-
const reconcileDomains = (scriptName, desired) => Effect.gen(function* () {
|
|
558
|
-
const { accountId } = yield* yield* CloudflareEnvironment;
|
|
559
|
-
// Always query the live state of domains attached to *this*
|
|
560
|
-
// Worker rather than trusting `_previous` from local state.
|
|
561
|
-
// State may have been wiped, populated by another machine, or
|
|
562
|
-
// simply be out of date. Without this we PUT domains that are
|
|
563
|
-
// already registered to this same Worker and Cloudflare
|
|
564
|
-
// returns a confusing "hostname already in use" error.
|
|
565
|
-
const liveAll = yield* workers
|
|
566
|
-
.listDomains({
|
|
567
|
-
accountId,
|
|
568
|
-
service: scriptName,
|
|
569
|
-
})
|
|
570
|
-
.pipe(Effect.map((r) => (r.result ?? []).flatMap((d) => d.id && d.hostname && d.zoneId
|
|
571
|
-
? [
|
|
572
|
-
{
|
|
573
|
-
id: d.id,
|
|
574
|
-
hostname: d.hostname,
|
|
575
|
-
zoneId: d.zoneId,
|
|
576
|
-
service: d.service ?? undefined,
|
|
577
|
-
},
|
|
578
|
-
]
|
|
579
|
-
: [])), Effect.catch(() => Effect.succeed([])));
|
|
580
|
-
const desiredSet = new Set(desired);
|
|
581
|
-
const liveByHostname = new Map(liveAll.map((d) => [d.hostname, d]));
|
|
582
|
-
// Detach what's no longer wanted. Use the live list so we
|
|
583
|
-
// don't try to delete domains we no longer track.
|
|
584
|
-
const toRemove = liveAll.filter((d) => !desiredSet.has(d.hostname));
|
|
585
|
-
yield* Effect.all(toRemove.map((d) => workers
|
|
586
|
-
.deleteDomain({ accountId, domainId: d.id })
|
|
587
|
-
.pipe(Effect.catchTag("DomainNotFound", () => Effect.void))), { concurrency: "unbounded" });
|
|
588
|
-
if (desired.length === 0)
|
|
589
|
-
return [];
|
|
590
|
-
const zoneCache = new Map();
|
|
591
|
-
// Attach `hostname` to this Worker. Skip the PUT entirely if
|
|
592
|
-
// the hostname is already attached to *this* Worker — that's a
|
|
593
|
-
// no-op for Cloudflare and avoids the "already in use" 409.
|
|
594
|
-
// If it's attached to a *different* Worker, refuse with a
|
|
595
|
-
// clear message rather than silently re-routing traffic.
|
|
596
|
-
const attachDomain = Effect.fn(function* (hostname) {
|
|
597
|
-
const live = liveByHostname.get(hostname);
|
|
598
|
-
if (live) {
|
|
599
|
-
return {
|
|
600
|
-
hostname: live.hostname,
|
|
601
|
-
id: live.id,
|
|
602
|
-
zoneId: live.zoneId,
|
|
603
|
-
};
|
|
604
|
-
}
|
|
605
|
-
// Not attached to this Worker — but it could still belong
|
|
606
|
-
// to another Worker. Check before we try to PUT so we can
|
|
607
|
-
// emit a helpful error instead of the raw 409.
|
|
608
|
-
const otherOwner = yield* workers
|
|
609
|
-
.listDomains({
|
|
610
|
-
accountId,
|
|
611
|
-
hostname,
|
|
612
|
-
})
|
|
613
|
-
.pipe(Effect.map((r) => (r.result ?? []).find((d) => d.hostname === hostname && d.service !== scriptName)), Effect.catch(() => Effect.succeed(undefined)));
|
|
614
|
-
if (otherOwner?.id) {
|
|
615
|
-
return yield* Effect.die(new Error(`Cannot attach hostname '${hostname}' to Worker '${scriptName}': ` +
|
|
616
|
-
`it is already attached to Worker '${otherOwner.service ?? "<unknown>"}'. ` +
|
|
617
|
-
`Detach it from that Worker first, or pick a different hostname.`));
|
|
618
|
-
}
|
|
619
|
-
const zoneId = yield* inferZoneIdForHostname(hostname, zoneCache);
|
|
620
|
-
// Same eventual-consistency window as `setWorkerSubdomain`:
|
|
621
|
-
// PUT /accounts/.../workers/domains right after `putScript`
|
|
622
|
-
// can return `WorkerNotFound` until Cloudflare's script
|
|
623
|
-
// registry has propagated. Retry on that specific tag.
|
|
624
|
-
const res = yield* workers
|
|
625
|
-
.putDomain({
|
|
626
|
-
accountId,
|
|
627
|
-
hostname,
|
|
628
|
-
service: scriptName,
|
|
629
|
-
zoneId,
|
|
630
|
-
})
|
|
631
|
-
.pipe(Effect.retry({
|
|
632
|
-
while: (error) => error._tag === "WorkerNotFound",
|
|
633
|
-
schedule: Schedule.exponential(200).pipe(Schedule.both(Schedule.recurs(15))),
|
|
634
|
-
}));
|
|
635
|
-
return {
|
|
636
|
-
hostname,
|
|
637
|
-
id: res.id ?? "",
|
|
638
|
-
zoneId: res.zoneId ?? zoneId,
|
|
639
|
-
};
|
|
640
|
-
});
|
|
641
|
-
const applied = yield* Effect.all(desired.map(attachDomain), {
|
|
642
|
-
concurrency: "unbounded",
|
|
643
|
-
});
|
|
644
|
-
return applied;
|
|
645
|
-
});
|
|
646
|
-
const createAlchemyWorkerTags = (id) => [
|
|
647
|
-
`alchemy:stack:${stack.name}`,
|
|
648
|
-
`alchemy:stage:${stack.stage}`,
|
|
649
|
-
`alchemy:id:${id}`,
|
|
650
|
-
];
|
|
651
|
-
const hasAlchemyWorkerTags = (id, tags) => {
|
|
652
|
-
const actualTags = new Set(tags ?? []);
|
|
653
|
-
return createAlchemyWorkerTags(id).every((tag) => actualTags.has(tag));
|
|
654
|
-
};
|
|
655
|
-
const getDurableObjectNamespaces = (bindings) => {
|
|
656
|
-
const namespaces = Object.fromEntries((bindings ?? []).flatMap((binding) => binding.type === "durable_object_namespace" &&
|
|
657
|
-
binding.className &&
|
|
658
|
-
binding.namespaceId
|
|
659
|
-
? [[binding.className, binding.namespaceId]]
|
|
660
|
-
: []));
|
|
661
|
-
return namespaces;
|
|
662
|
-
};
|
|
663
|
-
const getExpectedDurableObjectClassNames = (bindings, workerName) => Array.from(new Set(bindings?.flatMap((binding) => binding.type === "durable_object_namespace" &&
|
|
664
|
-
binding.className &&
|
|
665
|
-
(binding.scriptName === undefined ||
|
|
666
|
-
binding.scriptName === workerName)
|
|
667
|
-
? [binding.className]
|
|
668
|
-
: []) ?? []));
|
|
669
|
-
const getWorkerSettingsWithDurableObjects = Effect.fn(function* (scriptName, expectedClassNames) {
|
|
670
|
-
const { accountId } = yield* yield* CloudflareEnvironment;
|
|
671
|
-
return yield* workers
|
|
672
|
-
.getScriptScriptAndVersionSetting({
|
|
673
|
-
accountId,
|
|
674
|
-
scriptName,
|
|
675
|
-
})
|
|
676
|
-
.pipe(Effect.map((settings) => {
|
|
677
|
-
const namespaces = getDurableObjectNamespaces(settings.bindings);
|
|
678
|
-
const missing = expectedClassNames.filter((className) => !namespaces[className]);
|
|
679
|
-
if (missing.length > 0) {
|
|
680
|
-
return Effect.fail(new MissingDurableObjectNamespaces({
|
|
681
|
-
scriptName,
|
|
682
|
-
expected: missing,
|
|
683
|
-
}));
|
|
684
|
-
}
|
|
685
|
-
return Effect.succeed({
|
|
686
|
-
settings,
|
|
687
|
-
durableObjectNamespaces: namespaces,
|
|
688
|
-
});
|
|
689
|
-
}), Effect.flatten, Effect.retry({
|
|
690
|
-
while: (error) => error._tag === "MissingDurableObjectNamespaces",
|
|
691
|
-
schedule: Schedule.exponential(100).pipe(Schedule.both(Schedule.recurs(20))),
|
|
692
|
-
}));
|
|
693
|
-
});
|
|
694
|
-
const prepareAssets = Effect.fn(function* (assets) {
|
|
695
|
-
if (!assets) {
|
|
696
|
-
return undefined;
|
|
697
|
-
}
|
|
698
|
-
if (typeof assets === "object" && "hash" in assets) {
|
|
699
|
-
const { hash: _, ...config } = assets;
|
|
700
|
-
return yield* readAssets(config);
|
|
701
|
-
}
|
|
702
|
-
// Handle string path or AssetsProps
|
|
703
|
-
return yield* readAssets(typeof assets === "string" ? { directory: assets } : assets);
|
|
704
|
-
});
|
|
705
|
-
const prepareBundle = (id, props) => (props.bundle === false
|
|
706
|
-
? readPrebuiltWorkerBundle({
|
|
707
|
-
main: props.main,
|
|
708
|
-
rules: props.rules,
|
|
709
|
-
})
|
|
710
|
-
: bundler.build({
|
|
711
|
-
id,
|
|
712
|
-
main: props.main,
|
|
713
|
-
compatibility: getCompatibility(props),
|
|
714
|
-
entry: props.isExternal
|
|
715
|
-
? {
|
|
716
|
-
kind: "external",
|
|
717
|
-
}
|
|
718
|
-
: {
|
|
719
|
-
kind: "effect",
|
|
720
|
-
exports: props.exports ?? {},
|
|
721
|
-
},
|
|
722
|
-
stack: { name: stack.name, stage: stack.stage },
|
|
723
|
-
extraOptions: props.build,
|
|
724
|
-
})).pipe(Artifacts.cached("build"));
|
|
725
|
-
const hashScript = (script) => Effect.sync(() => crypto.createHash("sha256").update(script).digest("hex"));
|
|
726
|
-
const viteBuild = Effect.fn(function* (props) {
|
|
727
|
-
const compatibility = getCompatibility(props);
|
|
728
|
-
// Loaded lazily: `./Vite.ts` pulls in `@distilled.cloud/cloudflare-vite-plugin`
|
|
729
|
-
// (~0.5s), which is only needed for vite-based workers at build time —
|
|
730
|
-
// not for every Worker definition at module-load time.
|
|
731
|
-
const Vite = yield* Effect.promise(() => import("./Vite.js"));
|
|
732
|
-
const { assetsDirectory, serverBundle } = yield* Vite.viteBuild(props.vite?.rootDir, Object.fromEntries((yield* Effect.all(Object.entries(props.env ?? {}).map(Effect.fn(function* ([key, value]) {
|
|
733
|
-
return [
|
|
734
|
-
key,
|
|
735
|
-
typeof value === "string"
|
|
736
|
-
? value
|
|
737
|
-
: Redacted.isRedacted(value) &&
|
|
738
|
-
typeof Redacted.value(value) === "string"
|
|
739
|
-
? Redacted.value(value)
|
|
740
|
-
: Effect.isEffect(value)
|
|
741
|
-
? yield* value
|
|
742
|
-
: undefined,
|
|
743
|
-
];
|
|
744
|
-
})))).filter(([_, value]) => value !== undefined)), {
|
|
745
|
-
compatibilityDate: compatibility.date,
|
|
746
|
-
compatibilityFlags: compatibility.flags,
|
|
747
|
-
});
|
|
748
|
-
if (!assetsDirectory && !serverBundle) {
|
|
749
|
-
return yield* Effect.die(new Error("Vite build produced neither server nor client output"));
|
|
750
|
-
}
|
|
751
|
-
const [assets, bundle] = yield* Effect.all([
|
|
752
|
-
assetsDirectory
|
|
753
|
-
? readAssets({
|
|
754
|
-
...(props.assets && typeof props.assets !== "string"
|
|
755
|
-
? props.assets
|
|
756
|
-
: undefined),
|
|
757
|
-
directory: assetsDirectory,
|
|
758
|
-
})
|
|
759
|
-
: Effect.succeed(undefined),
|
|
760
|
-
serverBundle
|
|
761
|
-
? Bundle.bundleOutputFromRolldownOutputBundle(serverBundle)
|
|
762
|
-
: Effect.succeed(undefined),
|
|
763
|
-
], { concurrency: "unbounded" });
|
|
764
|
-
return { assets, bundle };
|
|
765
|
-
});
|
|
766
|
-
const prepareAssetsAndBundle = (id, props, opts = {}) => Effect.gen(function* () {
|
|
767
|
-
if (props.script !== undefined) {
|
|
768
|
-
const [assets, bundleHash] = yield* Effect.all([
|
|
769
|
-
opts.skipAssetsRead
|
|
770
|
-
? Effect.succeed(undefined)
|
|
771
|
-
: prepareAssets(props.assets),
|
|
772
|
-
hashScript(props.script),
|
|
773
|
-
], { concurrency: "unbounded" });
|
|
774
|
-
return {
|
|
775
|
-
assets,
|
|
776
|
-
bundle: {
|
|
777
|
-
files: [{ path: "main.js", content: props.script }],
|
|
778
|
-
hash: bundleHash,
|
|
779
|
-
},
|
|
780
|
-
};
|
|
781
|
-
}
|
|
782
|
-
if (props.vite) {
|
|
783
|
-
const [{ assets, bundle }, input] = yield* Effect.all([
|
|
784
|
-
viteBuild(props),
|
|
785
|
-
// hashDirectory expects `{ cwd, memo }`. The vite props
|
|
786
|
-
// store the project root under `rootDir`, so map it
|
|
787
|
-
// here. Without this, `cwd` falls back to
|
|
788
|
-
// `process.cwd()` and the input hash is computed over
|
|
789
|
-
// the wrong directory tree (often the entire monorepo
|
|
790
|
-
// root), making it both slow and unable to detect
|
|
791
|
-
// changes scoped to the actual Vite project.
|
|
792
|
-
hashDirectory({
|
|
793
|
-
cwd: props.vite.rootDir,
|
|
794
|
-
memo: props.vite.memo,
|
|
795
|
-
}),
|
|
796
|
-
], { concurrency: "unbounded" });
|
|
797
|
-
return { assets, bundle, input };
|
|
798
|
-
}
|
|
799
|
-
const [assets, bundle] = yield* Effect.all([
|
|
800
|
-
opts.skipAssetsRead
|
|
801
|
-
? Effect.succeed(undefined)
|
|
802
|
-
: prepareAssets(props.assets),
|
|
803
|
-
prepareBundle(id, props),
|
|
804
|
-
], { concurrency: "unbounded" });
|
|
805
|
-
return { assets, bundle };
|
|
806
|
-
}).pipe(Effect.map(({ assets, bundle, input }) => ({
|
|
807
|
-
assets,
|
|
808
|
-
bundle: {
|
|
809
|
-
main: bundle?.files[0].path,
|
|
810
|
-
files: bundle?.files.map((file) => new File([file.content], file.path, {
|
|
811
|
-
type: contentTypeFromExtension(path.extname(file.path)),
|
|
812
|
-
})),
|
|
813
|
-
},
|
|
814
|
-
hash: {
|
|
815
|
-
assets: assets?.hash,
|
|
816
|
-
bundle: bundle?.hash,
|
|
817
|
-
input,
|
|
818
|
-
},
|
|
819
|
-
})));
|
|
820
|
-
const normalizePrebuiltAssets = (assets, output) => {
|
|
821
|
-
if (!Predicate.hasProperty(assets, "hash"))
|
|
822
|
-
return undefined;
|
|
823
|
-
const { directory: _, hash, ...config } = assets;
|
|
824
|
-
return { config, hash, skip: hash === output?.hash?.assets };
|
|
825
|
-
};
|
|
826
|
-
const putWorker = Effect.fn(function* (id, news, bindings, olds, output, session, existingSettings) {
|
|
827
|
-
const { accountId } = yield* yield* CloudflareEnvironment;
|
|
828
|
-
const name = yield* createWorkerName(id, news.name);
|
|
829
|
-
yield* Effect.logInfo(`Cloudflare Worker ${olds ? "update" : "create"}: preparing bundle for ${name}`);
|
|
830
|
-
// If the caller handed us a precomputed asset hash that matches
|
|
831
|
-
// what we previously stored, we can skip walking the directory
|
|
832
|
-
// entirely and tell Cloudflare to keep the assets it already
|
|
833
|
-
// has bound to this script. The disk read is the expensive
|
|
834
|
-
// part; the script PUT happens either way.
|
|
835
|
-
const prebuiltAssets = normalizePrebuiltAssets(news.assets, output);
|
|
836
|
-
const { assets, bundle, hash: preparedHash, } = yield* prepareAssetsAndBundle(id, news, {
|
|
837
|
-
skipAssetsRead: prebuiltAssets?.skip,
|
|
838
|
-
});
|
|
839
|
-
// When the caller supplied a precomputed hash (e.g. via
|
|
840
|
-
// `Build.Command`), store *that* hash in output state so the
|
|
841
|
-
// next diff can short-circuit by comparing it directly. The
|
|
842
|
-
// hash that `readAssets` produces is the manifest-derived
|
|
843
|
-
// hash, which is shaped differently from any upstream
|
|
844
|
-
// build-input hash and will never match it on the next pass.
|
|
845
|
-
const hash = {
|
|
846
|
-
...preparedHash,
|
|
847
|
-
assets: prebuiltAssets?.hash ?? preparedHash.assets,
|
|
848
|
-
};
|
|
849
|
-
const metadataBindings = bindings.flatMap((b) => b.data.bindings ?? []);
|
|
850
|
-
const expectedDurableObjectClassNames = getExpectedDurableObjectClassNames(metadataBindings, name);
|
|
851
|
-
let metadataAssets;
|
|
852
|
-
let keepAssets = false;
|
|
853
|
-
if (prebuiltAssets?.skip) {
|
|
854
|
-
// Hash matched what's already on Cloudflare: keep the
|
|
855
|
-
// existing asset manifest and skip the upload session.
|
|
856
|
-
yield* Effect.logInfo(`Cloudflare Worker update: assets unchanged for ${name}, keeping existing`);
|
|
857
|
-
keepAssets = true;
|
|
858
|
-
metadataAssets = { config: prebuiltAssets.config };
|
|
859
|
-
metadataBindings.push({
|
|
860
|
-
type: "assets",
|
|
861
|
-
name: "ASSETS",
|
|
862
|
-
});
|
|
863
|
-
}
|
|
864
|
-
else if (assets) {
|
|
865
|
-
// We had to read the directory. Even after the read, the
|
|
866
|
-
// computed hash may match what's already deployed (e.g.
|
|
867
|
-
// legacy `string` / `AssetsProps` shapes that don't carry a
|
|
868
|
-
// precomputed hash, or a precomputed hash that disagreed with
|
|
869
|
-
// disk). In that case still keep the existing manifest and
|
|
870
|
-
// skip the upload session — Cloudflare's content-addressed
|
|
871
|
-
// session would no-op on every byte anyway.
|
|
872
|
-
if (assets.hash === prebuiltAssets?.hash) {
|
|
873
|
-
yield* Effect.logInfo(`Cloudflare Worker update: assets unchanged for ${name}, keeping existing`);
|
|
874
|
-
keepAssets = true;
|
|
875
|
-
metadataAssets = { config: assets.config };
|
|
876
|
-
}
|
|
877
|
-
else {
|
|
878
|
-
yield* Effect.logInfo(`Cloudflare Worker ${olds ? "update" : "create"}: uploading assets for ${name}`);
|
|
879
|
-
const { jwt } = yield* uploadAssets(accountId, name, assets, session);
|
|
880
|
-
metadataAssets = {
|
|
881
|
-
jwt,
|
|
882
|
-
config: assets.config,
|
|
883
|
-
};
|
|
884
|
-
}
|
|
885
|
-
metadataBindings.push({
|
|
886
|
-
type: "assets",
|
|
887
|
-
name: "ASSETS",
|
|
888
|
-
});
|
|
889
|
-
}
|
|
890
|
-
metadataBindings.push({
|
|
891
|
-
type: "plain_text",
|
|
892
|
-
name: "ALCHEMY_PHASE",
|
|
893
|
-
text: "runtime",
|
|
894
|
-
}, {
|
|
895
|
-
type: "plain_text",
|
|
896
|
-
name: "ALCHEMY_STACK_NAME",
|
|
897
|
-
text: stack.name,
|
|
898
|
-
}, {
|
|
899
|
-
type: "plain_text",
|
|
900
|
-
name: "ALCHEMY_STAGE",
|
|
901
|
-
text: stack.stage,
|
|
902
|
-
}, {
|
|
903
|
-
type: "plain_text",
|
|
904
|
-
name: "ALCHEMY_CLOUDFLARE_ACCOUNT_ID",
|
|
905
|
-
text: accountId,
|
|
906
|
-
});
|
|
907
|
-
// Add environment variables as metadata bindings
|
|
908
|
-
if (news.env) {
|
|
909
|
-
for (const [key, value] of Object.entries(news.env)) {
|
|
910
|
-
if (value === undefined)
|
|
911
|
-
continue;
|
|
912
|
-
if (metadataBindings.some((b) => b.name === key))
|
|
913
|
-
continue;
|
|
914
|
-
if (Redacted.isRedacted(value)) {
|
|
915
|
-
const unredacted = Redacted.value(value);
|
|
916
|
-
metadataBindings.push({
|
|
917
|
-
type: "secret_text",
|
|
918
|
-
name: key,
|
|
919
|
-
text: typeof unredacted === "string"
|
|
920
|
-
? unredacted
|
|
921
|
-
: JSON.stringify(unredacted),
|
|
922
|
-
});
|
|
923
|
-
}
|
|
924
|
-
else if (typeof value === "string") {
|
|
925
|
-
metadataBindings.push({
|
|
926
|
-
type: "plain_text",
|
|
927
|
-
name: key,
|
|
928
|
-
text: value,
|
|
929
|
-
});
|
|
930
|
-
}
|
|
931
|
-
else {
|
|
932
|
-
metadataBindings.push({
|
|
933
|
-
type: "json",
|
|
934
|
-
name: key,
|
|
935
|
-
json: value,
|
|
936
|
-
});
|
|
937
|
-
}
|
|
938
|
-
}
|
|
939
|
-
}
|
|
940
|
-
yield* Effect.logInfo(`Cloudflare Worker ${olds ? "update" : "create"}: uploading script for ${name}`);
|
|
941
|
-
const size = bundle.files
|
|
942
|
-
?.filter((file) => !file.name.endsWith(".map"))
|
|
943
|
-
.reduce((acc, file) => acc + file.size, 0) ?? 0;
|
|
944
|
-
const sizeKB = size / 1024;
|
|
945
|
-
const sizeMB = sizeKB / 1024;
|
|
946
|
-
const bundleSize = `${sizeKB > 1024 ? `${sizeMB.toFixed(2)} MB` : `${sizeKB.toFixed(2)} KB`}`;
|
|
947
|
-
yield* session.note(`Uploading worker (${bundleSize}) ...`);
|
|
948
|
-
// Read existing worker settings for migration tracking
|
|
949
|
-
const oldSettings = existingSettings ??
|
|
950
|
-
(yield* workers
|
|
951
|
-
.getScriptScriptAndVersionSetting({
|
|
952
|
-
accountId,
|
|
953
|
-
scriptName: name,
|
|
954
|
-
})
|
|
955
|
-
.pipe(Effect.map((s) => s), Effect.catch(() => Effect.succeed(undefined))));
|
|
956
|
-
const oldTags = Array.from(new Set(oldSettings?.tags ?? []));
|
|
957
|
-
const oldBindings = oldSettings?.bindings ?? [];
|
|
958
|
-
// Parse alchemy:do:{logicalId}:{className} tags
|
|
959
|
-
const oldDoClassNameByLogicalId = getDurableObjectTagMap(oldTags);
|
|
960
|
-
const currentDoBindings = getDurableObjectBindings(bindings, name);
|
|
961
|
-
const currentDoClassNameByLogicalId = Object.fromEntries(currentDoBindings.map((binding) => [
|
|
962
|
-
binding.logicalId,
|
|
963
|
-
binding.className,
|
|
964
|
-
]));
|
|
965
|
-
// Parse alchemy:migration-tag:{version}
|
|
966
|
-
const oldMigrationTag = oldTags.flatMap((tag) => tag.startsWith("alchemy:migration-tag:")
|
|
967
|
-
? [tag.slice("alchemy:migration-tag:".length)]
|
|
968
|
-
: [])[0];
|
|
969
|
-
const newMigrationTag = bumpMigrationTagVersion(oldMigrationTag);
|
|
970
|
-
// Compute deleted classes
|
|
971
|
-
const deletedClasses = [];
|
|
972
|
-
for (const [logicalId, className] of Object.entries(oldDoClassNameByLogicalId)) {
|
|
973
|
-
if (!currentDoClassNameByLogicalId[logicalId]) {
|
|
974
|
-
deletedClasses.push(className);
|
|
975
|
-
}
|
|
976
|
-
}
|
|
977
|
-
// Backward compatibility for old workers that have DO bindings but no
|
|
978
|
-
// alchemy:do tags yet. Cross-script bindings (`scriptName` set to
|
|
979
|
-
// anything other than this worker) are NEVER candidates for
|
|
980
|
-
// delete-class migrations — the class lives on the foreign script
|
|
981
|
-
// and we don't own its lifecycle.
|
|
982
|
-
if (Object.keys(oldDoClassNameByLogicalId).length === 0) {
|
|
983
|
-
for (const oldBinding of oldBindings) {
|
|
984
|
-
const ownedLocally = !("scriptName" in oldBinding) || oldBinding.scriptName === name;
|
|
985
|
-
if (oldBinding.type === "durable_object_namespace" &&
|
|
986
|
-
"className" in oldBinding &&
|
|
987
|
-
oldBinding.className &&
|
|
988
|
-
ownedLocally &&
|
|
989
|
-
!currentDoBindings.some((binding) => binding.bindingName === oldBinding.name)) {
|
|
990
|
-
deletedClasses.push(oldBinding.className);
|
|
991
|
-
}
|
|
992
|
-
}
|
|
993
|
-
}
|
|
994
|
-
// Collect container-backed class names so we can send container metadata
|
|
995
|
-
const containerClassNames = new Set(bindings.flatMap((b) => (b.data.containers ?? []).map((c) => c.className)));
|
|
996
|
-
// Compute new and renamed classes
|
|
997
|
-
const newClasses = [];
|
|
998
|
-
const newSqliteClasses = [];
|
|
999
|
-
const renamedClasses = [];
|
|
1000
|
-
for (const binding of currentDoBindings) {
|
|
1001
|
-
const previousClassName = oldDoClassNameByLogicalId[binding.logicalId];
|
|
1002
|
-
if (!previousClassName) {
|
|
1003
|
-
// Default all new Durable Object classes to SQLite. Cloudflare
|
|
1004
|
-
// recommends SQLite for new namespaces, and container-backed
|
|
1005
|
-
// Durable Objects require it.
|
|
1006
|
-
newSqliteClasses.push(binding.className);
|
|
1007
|
-
}
|
|
1008
|
-
else if (previousClassName !== binding.className) {
|
|
1009
|
-
renamedClasses.push({
|
|
1010
|
-
from: previousClassName,
|
|
1011
|
-
to: binding.className,
|
|
1012
|
-
});
|
|
1013
|
-
}
|
|
1014
|
-
}
|
|
1015
|
-
yield* Effect.logInfo(`Cloudflare Worker put: durable object reconciliation ${JSON.stringify({
|
|
1016
|
-
oldDoClassNameByLogicalId,
|
|
1017
|
-
currentDoClassNameByLogicalId,
|
|
1018
|
-
deletedClasses,
|
|
1019
|
-
renamedClasses,
|
|
1020
|
-
newSqliteClasses,
|
|
1021
|
-
})}`);
|
|
1022
|
-
// Build alchemy:do:{logicalId}:{className} tags for each DO binding
|
|
1023
|
-
const alchemyDoTags = [];
|
|
1024
|
-
for (const binding of currentDoBindings) {
|
|
1025
|
-
alchemyDoTags.push(`alchemy:do:${binding.logicalId}:${binding.className}`);
|
|
1026
|
-
}
|
|
1027
|
-
const metadataTags = Array.from(new Set([
|
|
1028
|
-
...createAlchemyWorkerTags(id),
|
|
1029
|
-
...alchemyDoTags,
|
|
1030
|
-
...(newMigrationTag
|
|
1031
|
-
? [`alchemy:migration-tag:${newMigrationTag}`]
|
|
1032
|
-
: []),
|
|
1033
|
-
...(news.tags ?? []),
|
|
1034
|
-
]));
|
|
1035
|
-
const migrations = {
|
|
1036
|
-
oldTag: oldMigrationTag,
|
|
1037
|
-
newTag: newMigrationTag,
|
|
1038
|
-
newClasses,
|
|
1039
|
-
deletedClasses,
|
|
1040
|
-
renamedClasses,
|
|
1041
|
-
transferredClasses: [],
|
|
1042
|
-
newSqliteClasses,
|
|
1043
|
-
};
|
|
1044
|
-
const metadataContainers = [...containerClassNames].map((className) => ({
|
|
1045
|
-
className,
|
|
1046
|
-
}));
|
|
1047
|
-
const compatibility = getCompatibility(news);
|
|
1048
|
-
const metadata = {
|
|
1049
|
-
assets: metadataAssets,
|
|
1050
|
-
bindings: metadataBindings,
|
|
1051
|
-
bodyPart: undefined,
|
|
1052
|
-
compatibilityDate: compatibility.date,
|
|
1053
|
-
compatibilityFlags: compatibility.flags,
|
|
1054
|
-
containers: metadataContainers.length > 0 ? metadataContainers : undefined,
|
|
1055
|
-
keepAssets,
|
|
1056
|
-
keepBindings: undefined,
|
|
1057
|
-
limits: news.limits,
|
|
1058
|
-
logpush: news.logpush,
|
|
1059
|
-
mainModule: bundle.main,
|
|
1060
|
-
migrations,
|
|
1061
|
-
observability: news.observability ?? {
|
|
1062
|
-
enabled: true,
|
|
1063
|
-
logs: {
|
|
1064
|
-
enabled: true,
|
|
1065
|
-
invocationLogs: true,
|
|
1066
|
-
},
|
|
1067
|
-
},
|
|
1068
|
-
placement: news.placement,
|
|
1069
|
-
tags: metadataTags,
|
|
1070
|
-
tailConsumers: undefined,
|
|
1071
|
-
usageModel: undefined,
|
|
1072
|
-
};
|
|
1073
|
-
const worker = yield* workers
|
|
1074
|
-
.putScript({
|
|
1075
|
-
accountId,
|
|
1076
|
-
scriptName: name,
|
|
1077
|
-
metadata,
|
|
1078
|
-
files: bundle.files,
|
|
1079
|
-
})
|
|
1080
|
-
.pipe(Effect.catch((err) => {
|
|
1081
|
-
// When adopting a Worker managed by Wrangler (or after a previous
|
|
1082
|
-
// deploy with mismatched migrations), the old_tag precondition
|
|
1083
|
-
// fails. The only way to discover the actual tag is through the
|
|
1084
|
-
// error message — getScriptSettings is meant to return it but
|
|
1085
|
-
// doesn't at runtime.
|
|
1086
|
-
const msg = String(typeof err === "object" && err !== null && "message" in err
|
|
1087
|
-
? err.message
|
|
1088
|
-
: err);
|
|
1089
|
-
const expectedTag = msg.match(/when expected tag is ['"]?([^'"]+)['"]?/)?.[1];
|
|
1090
|
-
if (expectedTag) {
|
|
1091
|
-
return workers.putScript({
|
|
1092
|
-
accountId,
|
|
1093
|
-
scriptName: name,
|
|
1094
|
-
metadata: {
|
|
1095
|
-
...metadata,
|
|
1096
|
-
migrations: {
|
|
1097
|
-
...migrations,
|
|
1098
|
-
oldTag: expectedTag,
|
|
1099
|
-
newTag: bumpMigrationTagVersion(expectedTag),
|
|
1100
|
-
},
|
|
1101
|
-
},
|
|
1102
|
-
files: bundle.files,
|
|
1103
|
-
});
|
|
1104
|
-
}
|
|
1105
|
-
return Effect.fail(err);
|
|
1106
|
-
}));
|
|
1107
|
-
const { settings, durableObjectNamespaces } = yield* getWorkerSettingsWithDurableObjects(name, expectedDurableObjectClassNames);
|
|
1108
|
-
// Reconcile workers.dev subdomain against observed cloud state.
|
|
1109
|
-
// We can't diff `news.url` against `olds.url` here because both
|
|
1110
|
-
// default to `undefined` (meaning "enable") — that comparison
|
|
1111
|
-
// would skip the API call on every deploy where the user never
|
|
1112
|
-
// explicitly set `url`, leaving the subdomain in whatever state
|
|
1113
|
-
// Cloudflare currently has it (disabled by default, or whatever
|
|
1114
|
-
// a previous failed/external action left it as).
|
|
1115
|
-
const desiredSubdomainEnabled = news.url !== false;
|
|
1116
|
-
const observedSubdomain = yield* workers
|
|
1117
|
-
.getScriptSubdomain({
|
|
1118
|
-
accountId,
|
|
1119
|
-
scriptName: name,
|
|
1120
|
-
})
|
|
1121
|
-
.pipe(Effect.orElseSucceed(() => ({
|
|
1122
|
-
enabled: false,
|
|
1123
|
-
previewsEnabled: false,
|
|
1124
|
-
})));
|
|
1125
|
-
if (desiredSubdomainEnabled !== observedSubdomain.enabled ||
|
|
1126
|
-
desiredSubdomainEnabled !== observedSubdomain.previewsEnabled) {
|
|
1127
|
-
yield* session.note(`${desiredSubdomainEnabled ? "Enabling" : "Disabling"} workers.dev subdomain...`);
|
|
1128
|
-
// Cloudflare's script registry is eventually consistent — for the
|
|
1129
|
-
// first few hundred ms after `putScript` returns, POST /subdomain
|
|
1130
|
-
// can still get back `WorkerNotFound` (a generic "unknown error"
|
|
1131
|
-
// body), or a bare 500 surfaced as `InternalServerError` /
|
|
1132
|
-
// `UnknownCloudflareError` (code 10013). Bigger uploads race harder.
|
|
1133
|
-
// Retry the subdomain toggle on those transient tags with a short
|
|
1134
|
-
// exponential backoff; same pattern we use elsewhere in this
|
|
1135
|
-
// provider for DO-namespace propagation and for `putScript` itself.
|
|
1136
|
-
yield* setWorkerSubdomain(name, desiredSubdomainEnabled).pipe(Effect.retry({
|
|
1137
|
-
while: (error) => error._tag === "WorkerNotFound" ||
|
|
1138
|
-
error._tag === "InternalServerError" ||
|
|
1139
|
-
error._tag === "UnknownCloudflareError",
|
|
1140
|
-
schedule: Schedule.exponential(200).pipe(Schedule.both(Schedule.recurs(15))),
|
|
1141
|
-
}));
|
|
1142
|
-
}
|
|
1143
|
-
const desiredDomains = normalizeDomains(news.domain);
|
|
1144
|
-
const previousDomains = output?.domains ?? [];
|
|
1145
|
-
if (desiredDomains.length > 0 || previousDomains.length > 0) {
|
|
1146
|
-
yield* session.note(`Reconciling custom domains (${desiredDomains.length}) ...`);
|
|
1147
|
-
}
|
|
1148
|
-
const reconciled = yield* reconcileDomains(name, desiredDomains);
|
|
1149
|
-
const workersDevUrl = news.url !== false
|
|
1150
|
-
? `https://${name}.${yield* getAccountSubdomain(accountId)}.workers.dev`
|
|
1151
|
-
: undefined;
|
|
1152
|
-
const domains = [
|
|
1153
|
-
...reconciled.map((d) => `https://${d.hostname}`),
|
|
1154
|
-
...(workersDevUrl ? [workersDevUrl] : []),
|
|
1155
|
-
];
|
|
1156
|
-
const crons = yield* reconcileCrons(name, normalizeCrons([...getCronBindings(bindings), ...(news.crons ?? [])]), output?.crons ?? [], session);
|
|
1157
|
-
return {
|
|
1158
|
-
workerId: worker.id ?? name,
|
|
1159
|
-
workerName: name,
|
|
1160
|
-
logpush: worker.logpush ?? undefined,
|
|
1161
|
-
url: domains[0],
|
|
1162
|
-
tags: settings.tags ?? metadata.tags,
|
|
1163
|
-
durableObjectNamespaces,
|
|
1164
|
-
accountId,
|
|
1165
|
-
domains,
|
|
1166
|
-
crons,
|
|
1167
|
-
hash,
|
|
1168
|
-
};
|
|
1169
|
-
});
|
|
1170
|
-
const hasChanged = Effect.fn(function* (id, props, output) {
|
|
1171
|
-
if (props.script !== undefined) {
|
|
1172
|
-
const scriptHash = yield* hashScript(props.script);
|
|
1173
|
-
if (scriptHash !== output.hash?.bundle) {
|
|
1174
|
-
return true;
|
|
1175
|
-
}
|
|
1176
|
-
if (!props.assets) {
|
|
1177
|
-
return false;
|
|
1178
|
-
}
|
|
1179
|
-
const assetsHash = Predicate.hasProperty(props.assets, "hash")
|
|
1180
|
-
? props.assets.hash
|
|
1181
|
-
: undefined;
|
|
1182
|
-
if (assetsHash === undefined) {
|
|
1183
|
-
return true;
|
|
1184
|
-
}
|
|
1185
|
-
return assetsHash !== output.hash?.assets;
|
|
1186
|
-
}
|
|
1187
|
-
if (props.vite) {
|
|
1188
|
-
const input = yield* hashDirectory({
|
|
1189
|
-
cwd: props.vite.rootDir,
|
|
1190
|
-
memo: props.vite.memo,
|
|
1191
|
-
});
|
|
1192
|
-
return input !== output.hash?.input;
|
|
1193
|
-
}
|
|
1194
|
-
const bundleHash = yield* prepareBundle(id, props).pipe(Effect.map((b) => b.hash));
|
|
1195
|
-
if (bundleHash !== output.hash?.bundle) {
|
|
1196
|
-
return true;
|
|
1197
|
-
}
|
|
1198
|
-
if (!props.assets) {
|
|
1199
|
-
return false;
|
|
1200
|
-
}
|
|
1201
|
-
// We deliberately don't read the assets directory during diff.
|
|
1202
|
-
// For `AssetsWithHash` (the documented contract) the upstream
|
|
1203
|
-
// `Build.Command` already gave us an authoritative hash — we
|
|
1204
|
-
// just compare strings. Reading the directory here would
|
|
1205
|
-
// (a) hash the same tree twice per apply (`putWorker` reads
|
|
1206
|
-
// again when an upload is actually required), and (b) crash
|
|
1207
|
-
// when the prior state was written on a different machine
|
|
1208
|
-
// and `path` doesn't exist locally — blocking any local
|
|
1209
|
-
// reapply even though the precomputed hash is right there
|
|
1210
|
-
// in props.
|
|
1211
|
-
//
|
|
1212
|
-
// For the legacy `string` / `AssetsProps` shapes there's no
|
|
1213
|
-
// hash in props to compare against, so we conservatively
|
|
1214
|
-
// assume the assets changed; `putWorker` will read once,
|
|
1215
|
-
// hash, and use `keepAssets` if it turns out nothing actually
|
|
1216
|
-
// changed.
|
|
1217
|
-
const assetsHash = Predicate.hasProperty(props.assets, "hash")
|
|
1218
|
-
? props.assets.hash
|
|
1219
|
-
: undefined;
|
|
1220
|
-
if (assetsHash === undefined) {
|
|
1221
|
-
return true;
|
|
1222
|
-
}
|
|
1223
|
-
return assetsHash !== output.hash?.assets;
|
|
1224
|
-
});
|
|
1225
|
-
return Worker.Provider.of({
|
|
1226
|
-
stables: ["workerId", "workerName"],
|
|
1227
|
-
list: () => Effect.gen(function* () {
|
|
1228
|
-
const { accountId } = yield* yield* CloudflareEnvironment;
|
|
1229
|
-
// Account-scoped enumeration of every Worker script. The
|
|
1230
|
-
// per-script `read` makes several extra calls (subdomain,
|
|
1231
|
-
// settings, domains, schedule) to fully hydrate
|
|
1232
|
-
// url/durableObjectNamespaces/domains/crons. Doing that for
|
|
1233
|
-
// every script on the account is both expensive (4 calls × N)
|
|
1234
|
-
// and fragile — a single script with a binding shape the
|
|
1235
|
-
// settings schema doesn't know about would break the whole
|
|
1236
|
-
// listing (the same reason `read` deliberately avoids
|
|
1237
|
-
// `listScripts`). For `list()` we hydrate the core identifying
|
|
1238
|
-
// and settings fields that come straight from the script
|
|
1239
|
-
// metadata and leave the binding-derived fields at the same
|
|
1240
|
-
// defaults `read` returns when those sub-resources are absent
|
|
1241
|
-
// (`url: undefined`, `durableObjectNamespaces: {}`,
|
|
1242
|
-
// `domains: []`, `crons: []`). `accountId` + `workerName` are
|
|
1243
|
-
// sufficient for `delete`.
|
|
1244
|
-
return yield* workers.listScripts.pages({ accountId }).pipe(Stream.runCollect, Effect.map((chunk) => Array.from(chunk).flatMap((page) =>
|
|
1245
|
-
// Annotate the element type as the full `Attributes` shape
|
|
1246
|
-
// (incl. the optional `hash`) so it matches `read` exactly.
|
|
1247
|
-
// `list()` is an inference source for the provider's resource
|
|
1248
|
-
// type; a narrower element (e.g. via `satisfies`, which omits
|
|
1249
|
-
// `hash`) would derail `Res` inference and cascade every
|
|
1250
|
-
// lifecycle method's requirement channel to `never`.
|
|
1251
|
-
(page.result ?? []).flatMap((script) => script.id
|
|
1252
|
-
? [
|
|
1253
|
-
{
|
|
1254
|
-
accountId,
|
|
1255
|
-
workerId: script.id,
|
|
1256
|
-
workerName: script.id,
|
|
1257
|
-
logpush: script.logpush ?? undefined,
|
|
1258
|
-
url: undefined,
|
|
1259
|
-
tags: script.tags ?? undefined,
|
|
1260
|
-
durableObjectNamespaces: {},
|
|
1261
|
-
domains: [],
|
|
1262
|
-
crons: [],
|
|
1263
|
-
},
|
|
1264
|
-
]
|
|
1265
|
-
: []))));
|
|
1266
|
-
}),
|
|
1267
|
-
diff: Effect.fn(function* ({ id, news, olds, output, newBindings }) {
|
|
1268
|
-
const { accountId } = yield* yield* CloudflareEnvironment;
|
|
1269
|
-
if (!isResolved(news))
|
|
1270
|
-
return undefined;
|
|
1271
|
-
if ((output?.accountId ?? accountId) !== accountId) {
|
|
1272
|
-
return { action: "replace" };
|
|
1273
|
-
}
|
|
1274
|
-
const workerName = yield* createWorkerName(id, news.name);
|
|
1275
|
-
const oldWorkerName = output?.workerName
|
|
1276
|
-
? output.workerName
|
|
1277
|
-
: yield* createWorkerName(id, olds?.name);
|
|
1278
|
-
if (workerName !== oldWorkerName) {
|
|
1279
|
-
return { action: "replace" };
|
|
1280
|
-
}
|
|
1281
|
-
if (!output) {
|
|
1282
|
-
return;
|
|
1283
|
-
}
|
|
1284
|
-
const newDomains = normalizeDomains(news.domain)
|
|
1285
|
-
.map((h) => `https://${h}`)
|
|
1286
|
-
.sort();
|
|
1287
|
-
const oldDomains = (output?.domains ?? [])
|
|
1288
|
-
.filter((u) => !u.endsWith(".workers.dev"))
|
|
1289
|
-
.sort();
|
|
1290
|
-
const domainsChanged = newDomains.length !== oldDomains.length ||
|
|
1291
|
-
newDomains.some((d, i) => d !== oldDomains[i]);
|
|
1292
|
-
const newCrons = normalizeCrons([
|
|
1293
|
-
...(Array.isArray(newBindings)
|
|
1294
|
-
? getCronBindings(newBindings)
|
|
1295
|
-
: []),
|
|
1296
|
-
...(news.crons ?? []),
|
|
1297
|
-
]).sort();
|
|
1298
|
-
const oldCrons = [...(output?.crons ?? [])].sort();
|
|
1299
|
-
const cronsChanged = newCrons.length !== oldCrons.length ||
|
|
1300
|
-
newCrons.some((cron, index) => cron !== oldCrons[index]);
|
|
1301
|
-
// `url` is `domains[0]`: the first custom domain in user order if
|
|
1302
|
-
// any, otherwise the workers.dev URL (derived from the stable
|
|
1303
|
-
// worker name + account subdomain). It's stable across this update
|
|
1304
|
-
// exactly when that first domain is unchanged — which is NOT the
|
|
1305
|
-
// same as "the domain set is unchanged": adding a second custom
|
|
1306
|
-
// domain leaves `url` put, while reordering changes it even though
|
|
1307
|
-
// the set is equal. Compute the resulting `url` and carry it
|
|
1308
|
-
// forward as a stable only when it matches the old one, so
|
|
1309
|
-
// downstream resources that reference `worker.url` (e.g. a GitHub
|
|
1310
|
-
// Webhook delivery URL built via `Output.interpolate`) resolve it
|
|
1311
|
-
// to a concrete value during planning instead of an unresolved
|
|
1312
|
-
// Output — otherwise every worker update spuriously re-updates them.
|
|
1313
|
-
const newCustomDomains = normalizeDomains(news.domain);
|
|
1314
|
-
const newUrl = newCustomDomains.length > 0
|
|
1315
|
-
? `https://${newCustomDomains[0]}`
|
|
1316
|
-
: news.url !== false
|
|
1317
|
-
? (output.domains ?? []).find((u) => u.endsWith(".workers.dev"))
|
|
1318
|
-
: undefined;
|
|
1319
|
-
const urlStable = newUrl !== undefined && newUrl === output.url;
|
|
1320
|
-
// `durableObjectNamespaces` maps each hosted DO class name to the
|
|
1321
|
-
// namespace id Cloudflare assigned it. Those ids are permanent for
|
|
1322
|
-
// the lifetime of a (worker, class) pair, so the map only changes
|
|
1323
|
-
// when a class is added or removed — never on a plain code/config
|
|
1324
|
-
// update. Carry it forward as a stable whenever the set of local DO
|
|
1325
|
-
// class names is unchanged, for the same reason as `url` above:
|
|
1326
|
-
// downstream resources that bind a DO namespace via
|
|
1327
|
-
// `worker.durableObjectNamespaces[name]` (e.g. a Container attached
|
|
1328
|
-
// to a DO) must resolve it to a concrete value during planning.
|
|
1329
|
-
// Otherwise the binding holds an unresolved Output, which
|
|
1330
|
-
// `diffBindings` treats as "changed", spuriously re-updating the
|
|
1331
|
-
// bound resource on every deploy. Class names are structural (not the
|
|
1332
|
-
// namespace id), so this comparison holds even when `newBindings` is
|
|
1333
|
-
// otherwise unresolved.
|
|
1334
|
-
const newDoClassNames = Array.isArray(newBindings)
|
|
1335
|
-
? getExpectedDurableObjectClassNames(newBindings.flatMap((b) => b.data.bindings ?? []), workerName).sort()
|
|
1336
|
-
: [];
|
|
1337
|
-
const oldDoClassNames = Object.keys(output.durableObjectNamespaces ?? {}).sort();
|
|
1338
|
-
const doNamespacesStable = oldWorkerName === workerName &&
|
|
1339
|
-
newDoClassNames.length === oldDoClassNames.length &&
|
|
1340
|
-
newDoClassNames.every((name, i) => name === oldDoClassNames[i]);
|
|
1341
|
-
if (domainsChanged ||
|
|
1342
|
-
cronsChanged ||
|
|
1343
|
-
(yield* hasChanged(id, news, output))) {
|
|
1344
|
-
// `workerId` is always stable across an update; seed it so it
|
|
1345
|
-
// survives now that `diff.stables` overrides `provider.stables`
|
|
1346
|
-
// rather than being merged with it.
|
|
1347
|
-
const stables = ["workerId"];
|
|
1348
|
-
if (oldWorkerName === workerName) {
|
|
1349
|
-
stables.push("workerName");
|
|
1350
|
-
}
|
|
1351
|
-
if (urlStable) {
|
|
1352
|
-
stables.push("url");
|
|
1353
|
-
}
|
|
1354
|
-
if (doNamespacesStable) {
|
|
1355
|
-
stables.push("durableObjectNamespaces");
|
|
1356
|
-
}
|
|
1357
|
-
return {
|
|
1358
|
-
action: "update",
|
|
1359
|
-
stables: stables.length > 0 ? stables : undefined,
|
|
1360
|
-
};
|
|
1361
|
-
}
|
|
1362
|
-
}),
|
|
1363
|
-
precreate: Effect.fn(function* ({ id, news, session }) {
|
|
1364
|
-
const { accountId } = yield* yield* CloudflareEnvironment;
|
|
1365
|
-
const name = yield* createWorkerName(id, news.name);
|
|
1366
|
-
const exportMap = news.exports ?? {};
|
|
1367
|
-
const durableObjects = Object.keys(exportMap)
|
|
1368
|
-
.filter((logicalId) => isDurableObjectExport(exportMap[logicalId]))
|
|
1369
|
-
.map((logicalId) => ({
|
|
1370
|
-
logicalId,
|
|
1371
|
-
className: logicalId,
|
|
1372
|
-
}));
|
|
1373
|
-
const doClasses = durableObjects.map((binding) => binding.className);
|
|
1374
|
-
const containers = doClasses.map((className) => ({ className }));
|
|
1375
|
-
const alchemyDoTags = durableObjects.map(({ logicalId, className }) => `alchemy:do:${logicalId}:${className}`);
|
|
1376
|
-
const tags = Array.from(new Set([
|
|
1377
|
-
...createAlchemyWorkerTags(id),
|
|
1378
|
-
...alchemyDoTags,
|
|
1379
|
-
...(news.tags ?? []),
|
|
1380
|
-
]));
|
|
1381
|
-
yield* Effect.logInfo(`Cloudflare Worker precreate: starting ${name}`);
|
|
1382
|
-
yield* Effect.logInfo(`Cloudflare Worker precreate: durable objects ${JSON.stringify(durableObjects)}`);
|
|
1383
|
-
const existingSettings = yield* workers
|
|
1384
|
-
.getScriptScriptAndVersionSetting({
|
|
1385
|
-
accountId,
|
|
1386
|
-
scriptName: name,
|
|
1387
|
-
})
|
|
1388
|
-
.pipe(Effect.catchTag("WorkerNotFound", () => Effect.succeed(undefined)));
|
|
1389
|
-
let durableObjectNamespaces = getDurableObjectNamespaces(existingSettings?.bindings);
|
|
1390
|
-
if (existingSettings) {
|
|
1391
|
-
// Engine has already cleared this resource for write via
|
|
1392
|
-
// `read` + AdoptPolicy. Either we own it (matching tags) or
|
|
1393
|
-
// the user opted in to a takeover (`--adopt` / `adopt(true)`).
|
|
1394
|
-
yield* Effect.logInfo(`Cloudflare Worker precreate: reusing existing ${name}`);
|
|
1395
|
-
}
|
|
1396
|
-
else {
|
|
1397
|
-
yield* session.note("Pre-creating worker...");
|
|
1398
|
-
const mainModule = "main.js";
|
|
1399
|
-
const placeholderScript = `${doClasses.length > 0 ? 'import { DurableObject } from "cloudflare:workers";\n\n' : ""}export default { fetch() { return new Response("Alchemy worker is being deployed...") } };\n${doClasses
|
|
1400
|
-
.map((className) => `export class ${className} extends DurableObject {}`)
|
|
1401
|
-
.join("\n")}`;
|
|
1402
|
-
yield* workers
|
|
1403
|
-
.putScript({
|
|
1404
|
-
accountId,
|
|
1405
|
-
scriptName: name,
|
|
1406
|
-
metadata: {
|
|
1407
|
-
mainModule,
|
|
1408
|
-
bindings: doClasses.length > 0
|
|
1409
|
-
? doClasses.map((className) => ({
|
|
1410
|
-
type: "durable_object_namespace",
|
|
1411
|
-
name: className,
|
|
1412
|
-
className,
|
|
1413
|
-
}))
|
|
1414
|
-
: undefined,
|
|
1415
|
-
...getCompatibility(news),
|
|
1416
|
-
containers,
|
|
1417
|
-
migrations: doClasses.length > 0
|
|
1418
|
-
? {
|
|
1419
|
-
oldTag: undefined,
|
|
1420
|
-
newTag: undefined,
|
|
1421
|
-
newClasses: [],
|
|
1422
|
-
deletedClasses: [],
|
|
1423
|
-
renamedClasses: [],
|
|
1424
|
-
transferredClasses: [],
|
|
1425
|
-
newSqliteClasses: doClasses,
|
|
1426
|
-
}
|
|
1427
|
-
: undefined,
|
|
1428
|
-
observability: news.observability ?? {
|
|
1429
|
-
enabled: true,
|
|
1430
|
-
logs: {
|
|
1431
|
-
enabled: true,
|
|
1432
|
-
invocationLogs: true,
|
|
1433
|
-
},
|
|
1434
|
-
},
|
|
1435
|
-
tags,
|
|
1436
|
-
},
|
|
1437
|
-
files: [
|
|
1438
|
-
new File([placeholderScript], mainModule, {
|
|
1439
|
-
type: "application/javascript+module",
|
|
1440
|
-
}),
|
|
1441
|
-
],
|
|
1442
|
-
})
|
|
1443
|
-
.pipe(
|
|
1444
|
-
// Cloudflare's PUT /workers/scripts/{name} intermittently
|
|
1445
|
-
// returns code 10002 / "An unknown error has occurred" on the
|
|
1446
|
-
// first put for a fresh worker name. Surfaced as the shared
|
|
1447
|
-
// `InternalServerError` upstream (alchemy-run/distilled#290).
|
|
1448
|
-
// Also match `UnknownCloudflareError` for older
|
|
1449
|
-
// @distilled.cloud/cloudflare versions that haven't picked
|
|
1450
|
-
// up the patch yet.
|
|
1451
|
-
Effect.retry({
|
|
1452
|
-
while: (e) => e._tag === "InternalServerError" ||
|
|
1453
|
-
e._tag === "UnknownCloudflareError",
|
|
1454
|
-
schedule: Schedule.exponential(1000).pipe(Schedule.both(Schedule.recurs(5))),
|
|
1455
|
-
}));
|
|
1456
|
-
if (doClasses.length > 0) {
|
|
1457
|
-
({ durableObjectNamespaces } =
|
|
1458
|
-
yield* getWorkerSettingsWithDurableObjects(name, doClasses));
|
|
1459
|
-
}
|
|
1460
|
-
}
|
|
1461
|
-
if (existingSettings && doClasses.length > 0) {
|
|
1462
|
-
({ durableObjectNamespaces } =
|
|
1463
|
-
yield* getWorkerSettingsWithDurableObjects(name, doClasses));
|
|
1464
|
-
}
|
|
1465
|
-
return {
|
|
1466
|
-
workerId: name,
|
|
1467
|
-
workerName: name,
|
|
1468
|
-
logpush: existingSettings?.logpush ?? undefined,
|
|
1469
|
-
url: undefined,
|
|
1470
|
-
tags: existingSettings?.tags ?? tags,
|
|
1471
|
-
durableObjectNamespaces,
|
|
1472
|
-
accountId,
|
|
1473
|
-
domains: [],
|
|
1474
|
-
crons: [],
|
|
1475
|
-
};
|
|
1476
|
-
}),
|
|
1477
|
-
read: Effect.fn(function* ({ id, output, olds }) {
|
|
1478
|
-
const { accountId } = yield* yield* CloudflareEnvironment;
|
|
1479
|
-
const workerName = output?.workerName ?? (yield* createWorkerName(id, olds?.name));
|
|
1480
|
-
yield* Effect.logInfo(`Cloudflare Worker read: checking ${workerName}`);
|
|
1481
|
-
// We deliberately don't call `listScripts({ accountId })` here:
|
|
1482
|
-
// it pulls every Worker on the account back through a strict
|
|
1483
|
-
// schema decode, and a single existing Worker the schema doesn't
|
|
1484
|
-
// know about (e.g. `placement_mode: "targeted"`) breaks the
|
|
1485
|
-
// entire read. `getScriptSettings` already fails with
|
|
1486
|
-
// `WorkerNotFound` if the script doesn't exist, which the
|
|
1487
|
-
// surrounding `Effect.catchTag` turns into `undefined` — that's
|
|
1488
|
-
// all the existence check we need.
|
|
1489
|
-
const [subdomain, settings, domainsList] = yield* Effect.all([
|
|
1490
|
-
workers.getScriptSubdomain({
|
|
1491
|
-
accountId,
|
|
1492
|
-
scriptName: workerName,
|
|
1493
|
-
}),
|
|
1494
|
-
workers.getScriptScriptAndVersionSetting({
|
|
1495
|
-
accountId,
|
|
1496
|
-
scriptName: workerName,
|
|
1497
|
-
}),
|
|
1498
|
-
workers
|
|
1499
|
-
.listDomains({
|
|
1500
|
-
accountId,
|
|
1501
|
-
service: workerName,
|
|
1502
|
-
})
|
|
1503
|
-
.pipe(Effect.map((r) => r.result ?? [])),
|
|
1504
|
-
]);
|
|
1505
|
-
// Preserve the order the user provided in `olds.domain`. The
|
|
1506
|
-
// Cloudflare API returns domains in non-deterministic order,
|
|
1507
|
-
// which would cause downstream `worker.domains[0]` reads to flip
|
|
1508
|
-
// between deploys. Drift (domains we don't know about) is
|
|
1509
|
-
// appended after the user-ordered ones.
|
|
1510
|
-
const userOrder = normalizeDomains(olds?.domain);
|
|
1511
|
-
const orderedHostnames = [
|
|
1512
|
-
...userOrder.flatMap((h) => domainsList.find((d) => d.hostname === h)?.hostname ?? []),
|
|
1513
|
-
...domainsList.flatMap((d) => d.hostname && !userOrder.includes(d.hostname)
|
|
1514
|
-
? [d.hostname]
|
|
1515
|
-
: []),
|
|
1516
|
-
];
|
|
1517
|
-
const workersDevUrl = subdomain.enabled
|
|
1518
|
-
? `https://${workerName}.${yield* getAccountSubdomain(accountId)}.workers.dev`
|
|
1519
|
-
: undefined;
|
|
1520
|
-
const domains = [
|
|
1521
|
-
...orderedHostnames.map((h) => `https://${h}`),
|
|
1522
|
-
...(workersDevUrl ? [workersDevUrl] : []),
|
|
1523
|
-
];
|
|
1524
|
-
const crons = yield* getWorkerCrons(workerName);
|
|
1525
|
-
yield* Effect.logInfo(`Cloudflare Worker read: found ${workerName}`);
|
|
1526
|
-
const attrs = {
|
|
1527
|
-
accountId,
|
|
1528
|
-
workerId: workerName,
|
|
1529
|
-
workerName,
|
|
1530
|
-
logpush: settings.logpush ?? undefined,
|
|
1531
|
-
url: domains[0],
|
|
1532
|
-
tags: settings.tags ?? undefined,
|
|
1533
|
-
durableObjectNamespaces: getDurableObjectNamespaces(settings.bindings),
|
|
1534
|
-
domains,
|
|
1535
|
-
crons,
|
|
1536
|
-
};
|
|
1537
|
-
// Centralized ownership decision: the engine routes `read`'s
|
|
1538
|
-
// return value based on `AdoptPolicy`. We hand it the attrs
|
|
1539
|
-
// either as-is (owned: alchemy tags identify this stack/stage/id,
|
|
1540
|
-
// safe to silently adopt even without `--adopt`) or branded with
|
|
1541
|
-
// `Unowned` (caller must opt in via `--adopt` or the engine
|
|
1542
|
-
// raises `OwnedBySomeoneElse`).
|
|
1543
|
-
return hasAlchemyWorkerTags(id, settings.tags ?? [])
|
|
1544
|
-
? attrs
|
|
1545
|
-
: Unowned(attrs);
|
|
1546
|
-
}, (effect) => effect.pipe(Effect.catchTag("WorkerNotFound", () => Effect.succeed(undefined)))),
|
|
1547
|
-
reconcile: Effect.fn(function* ({ id, news, olds, bindings, output, session, }) {
|
|
1548
|
-
const { accountId } = yield* yield* CloudflareEnvironment;
|
|
1549
|
-
const name = output?.workerName ?? (yield* createWorkerName(id, news.name));
|
|
1550
|
-
const durableObjects = getDurableObjectBindings(bindings, name).map(({ logicalId, className }) => ({
|
|
1551
|
-
logicalId,
|
|
1552
|
-
className,
|
|
1553
|
-
}));
|
|
1554
|
-
yield* Effect.logInfo(`Cloudflare Worker reconcile: starting ${name}`);
|
|
1555
|
-
yield* Effect.logInfo(`Cloudflare Worker reconcile: durable objects ${JSON.stringify(durableObjects)}`);
|
|
1556
|
-
// Observe — fetch the script's current settings if it already exists.
|
|
1557
|
-
// `putWorker` is a true upsert against the Cloudflare API; the
|
|
1558
|
-
// existing settings inform asset/migration decisions and let the
|
|
1559
|
-
// reconciler converge whether the worker is brand-new, adopted, or
|
|
1560
|
-
// an in-place update.
|
|
1561
|
-
const existingSettings = yield* workers
|
|
1562
|
-
.getScriptScriptAndVersionSetting({
|
|
1563
|
-
accountId,
|
|
1564
|
-
scriptName: name,
|
|
1565
|
-
})
|
|
1566
|
-
.pipe(Effect.catchTag("WorkerNotFound", () => Effect.succeed(undefined)));
|
|
1567
|
-
yield* Effect.logInfo(`Cloudflare Worker reconcile: existing durable object tags ${JSON.stringify((existingSettings?.tags ?? []).filter((tag) => tag.startsWith("alchemy:do:")))}`);
|
|
1568
|
-
yield* Effect.logInfo(`Cloudflare Worker reconcile: previous durable object tags ${JSON.stringify((output?.tags ?? []).filter((tag) => tag.startsWith("alchemy:do:")))}`);
|
|
1569
|
-
return yield* putWorker(id, news, bindings, olds, output, session, existingSettings);
|
|
1570
|
-
}),
|
|
1571
|
-
delete: Effect.fn(function* ({ output }) {
|
|
1572
|
-
yield* Effect.logInfo(`Cloudflare Worker delete: deleting ${output.workerName}`);
|
|
1573
|
-
// Look up live domain IDs rather than trusting persisted state.
|
|
1574
|
-
// We no longer track `{ id, zoneId }` on the output; fetching
|
|
1575
|
-
// straight from Cloudflare handles both the normal case and
|
|
1576
|
-
// adopted workers whose domains we never recorded.
|
|
1577
|
-
const liveDomains = yield* workers
|
|
1578
|
-
.listDomains({
|
|
1579
|
-
accountId: output.accountId,
|
|
1580
|
-
service: output.workerName,
|
|
1581
|
-
})
|
|
1582
|
-
.pipe(Effect.map((r) => r.result ?? []), Effect.catch(() => Effect.succeed([])));
|
|
1583
|
-
if (liveDomains.length) {
|
|
1584
|
-
yield* Effect.all(liveDomains.flatMap((d) => d.id
|
|
1585
|
-
? [
|
|
1586
|
-
workers
|
|
1587
|
-
.deleteDomain({
|
|
1588
|
-
accountId: output.accountId,
|
|
1589
|
-
domainId: d.id,
|
|
1590
|
-
})
|
|
1591
|
-
.pipe(Effect.catchTag("DomainNotFound", () => Effect.void)),
|
|
1592
|
-
]
|
|
1593
|
-
: []), { concurrency: "unbounded" });
|
|
1594
|
-
}
|
|
1595
|
-
yield* workers
|
|
1596
|
-
.deleteScript({
|
|
1597
|
-
accountId: output.accountId,
|
|
1598
|
-
scriptName: output.workerName,
|
|
1599
|
-
// Force teardown of queue consumers, durable object classes, and
|
|
1600
|
-
// service bindings hanging off this worker. Without `force`, those
|
|
1601
|
-
// conditions raise QueueConsumerConflict / ServiceBindingConflict
|
|
1602
|
-
// and leave the script in CF. Alchemy is the source of truth for
|
|
1603
|
-
// the worker, so we want a hard delete on teardown.
|
|
1604
|
-
force: true,
|
|
1605
|
-
})
|
|
1606
|
-
.pipe(Effect.catchTag("WorkerNotFound", () => Effect.void));
|
|
1607
|
-
}),
|
|
1608
|
-
tail: ({ output }) => telemetry.tailScript({
|
|
1609
|
-
accountId: output.accountId,
|
|
1610
|
-
scriptName: output.workerName,
|
|
1611
|
-
}),
|
|
1612
|
-
logs: ({ output, options }) => telemetry.queryLogs({
|
|
1613
|
-
accountId: output.accountId,
|
|
1614
|
-
filters: [
|
|
1615
|
-
{
|
|
1616
|
-
key: "$workers.scriptName",
|
|
1617
|
-
operation: "eq",
|
|
1618
|
-
type: "string",
|
|
1619
|
-
value: output.workerName,
|
|
1620
|
-
},
|
|
1621
|
-
],
|
|
1622
|
-
options,
|
|
1623
|
-
}),
|
|
1624
|
-
});
|
|
1625
|
-
}));
|
|
1626
|
-
const contentTypeFromExtension = (extension) => {
|
|
1627
|
-
switch (extension) {
|
|
1628
|
-
case ".wasm":
|
|
1629
|
-
return "application/wasm";
|
|
1630
|
-
case ".txt":
|
|
1631
|
-
case ".html":
|
|
1632
|
-
case ".sql":
|
|
1633
|
-
case ".custom":
|
|
1634
|
-
return "text/plain";
|
|
1635
|
-
case ".bin":
|
|
1636
|
-
return "application/octet-stream";
|
|
1637
|
-
case ".mjs":
|
|
1638
|
-
case ".js":
|
|
1639
|
-
return "application/javascript+module";
|
|
1640
|
-
case ".cjs":
|
|
1641
|
-
return "application/javascript";
|
|
1642
|
-
case ".map":
|
|
1643
|
-
return "application/source-map";
|
|
1644
|
-
default:
|
|
1645
|
-
return "application/octet-stream";
|
|
1646
|
-
}
|
|
1647
|
-
};
|
|
1648
|
-
function bumpMigrationTagVersion(oldTag) {
|
|
1649
|
-
if (!oldTag)
|
|
1650
|
-
return undefined;
|
|
1651
|
-
const version = oldTag.match(/^(alchemy:)?v(\d+)$/)?.[2];
|
|
1652
|
-
if (!version)
|
|
1653
|
-
return "alchemy:v1";
|
|
1654
|
-
return `alchemy:v${parseInt(version, 10) + 1}`;
|
|
1655
|
-
}
|
|
1656
|
-
function getDurableObjectBindings(bindings, workerName) {
|
|
1657
|
-
// Resource authors (and the `make`/`yield* Tag`/plan-vs-apply machinery)
|
|
1658
|
-
// can register the same DO binding multiple times under the same logical
|
|
1659
|
-
// id — `binding()` is a plain `worker.bind` and intentionally has no
|
|
1660
|
-
// dedup. Collapse duplicates here so each `(logicalId, bindingName,
|
|
1661
|
-
// className)` tuple appears at most once. We also exclude cross-script
|
|
1662
|
-
// references: a `scriptName` pointing to *another* worker means this
|
|
1663
|
-
// worker just references a foreign class — ship the binding to
|
|
1664
|
-
// Cloudflare, but don't drive class migrations for it.
|
|
1665
|
-
const seen = new Set();
|
|
1666
|
-
return bindings.flatMap((binding) => (binding.data.bindings ?? []).flatMap((item) => {
|
|
1667
|
-
if (item.type !== "durable_object_namespace" ||
|
|
1668
|
-
!("className" in item) ||
|
|
1669
|
-
!item.className) {
|
|
1670
|
-
return [];
|
|
1671
|
-
}
|
|
1672
|
-
if (item.scriptName !== undefined && item.scriptName !== workerName) {
|
|
1673
|
-
return [];
|
|
1674
|
-
}
|
|
1675
|
-
const dedupKey = `${binding.sid}::${item.name}::${item.className}`;
|
|
1676
|
-
if (seen.has(dedupKey))
|
|
1677
|
-
return [];
|
|
1678
|
-
seen.add(dedupKey);
|
|
1679
|
-
return [
|
|
1680
|
-
{
|
|
1681
|
-
logicalId: binding.sid,
|
|
1682
|
-
bindingName: item.name,
|
|
1683
|
-
className: item.className,
|
|
1684
|
-
},
|
|
1685
|
-
];
|
|
1686
|
-
}));
|
|
1687
|
-
}
|
|
1688
|
-
function getDurableObjectTagMap(tags) {
|
|
1689
|
-
return Object.fromEntries(tags.flatMap((tag) => {
|
|
1690
|
-
if (!tag.startsWith("alchemy:do:")) {
|
|
1691
|
-
return [];
|
|
1692
|
-
}
|
|
1693
|
-
const parts = tag.split(":");
|
|
1694
|
-
const logicalId = parts[2];
|
|
1695
|
-
const className = parts.slice(3).join(":");
|
|
1696
|
-
return logicalId && className ? [[logicalId, className]] : [];
|
|
1697
|
-
}));
|
|
1698
|
-
}
|
|
1699
424
|
//# sourceMappingURL=Worker.js.map
|