alchemy 2.0.0-beta.52 → 2.0.0-beta.54

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.
Files changed (833) hide show
  1. package/bin/exec.js +9 -9
  2. package/bin/exec.js.map +1 -1
  3. package/lib/AWS/ACM/Certificate.d.ts +1 -1
  4. package/lib/AWS/ApiGateway/Account.d.ts +1 -1
  5. package/lib/AWS/ApiGateway/ApiKey.d.ts +2 -2
  6. package/lib/AWS/ApiGateway/ApiKey.d.ts.map +1 -1
  7. package/lib/AWS/ApiGateway/ApiKey.js +3 -3
  8. package/lib/AWS/ApiGateway/ApiKey.js.map +1 -1
  9. package/lib/AWS/ApiGateway/Authorizer.d.ts +1 -1
  10. package/lib/AWS/ApiGateway/BasePathMapping.d.ts +1 -1
  11. package/lib/AWS/ApiGateway/Deployment.d.ts +1 -1
  12. package/lib/AWS/ApiGateway/DomainName.d.ts +1 -1
  13. package/lib/AWS/ApiGateway/GatewayResource.d.ts +1 -1
  14. package/lib/AWS/ApiGateway/GatewayResponse.d.ts +1 -1
  15. package/lib/AWS/ApiGateway/Method.d.ts +1 -1
  16. package/lib/AWS/ApiGateway/RestApi.d.ts +2 -2
  17. package/lib/AWS/ApiGateway/RestApi.d.ts.map +1 -1
  18. package/lib/AWS/ApiGateway/RestApi.js +4 -4
  19. package/lib/AWS/ApiGateway/RestApi.js.map +1 -1
  20. package/lib/AWS/ApiGateway/Stage.d.ts +2 -2
  21. package/lib/AWS/ApiGateway/Stage.d.ts.map +1 -1
  22. package/lib/AWS/ApiGateway/Stage.js +3 -3
  23. package/lib/AWS/ApiGateway/Stage.js.map +1 -1
  24. package/lib/AWS/ApiGateway/UsagePlan.d.ts +2 -2
  25. package/lib/AWS/ApiGateway/UsagePlan.d.ts.map +1 -1
  26. package/lib/AWS/ApiGateway/UsagePlan.js +3 -3
  27. package/lib/AWS/ApiGateway/UsagePlan.js.map +1 -1
  28. package/lib/AWS/ApiGateway/UsagePlanKey.d.ts +1 -1
  29. package/lib/AWS/ApiGateway/VpcLink.d.ts +2 -2
  30. package/lib/AWS/ApiGateway/VpcLink.d.ts.map +1 -1
  31. package/lib/AWS/ApiGateway/VpcLink.js +3 -3
  32. package/lib/AWS/ApiGateway/VpcLink.js.map +1 -1
  33. package/lib/AWS/ApiGateway/common.d.ts +1 -1
  34. package/lib/AWS/Assets.d.ts +21 -12
  35. package/lib/AWS/Assets.d.ts.map +1 -1
  36. package/lib/AWS/Assets.js +95 -70
  37. package/lib/AWS/Assets.js.map +1 -1
  38. package/lib/AWS/AuthProvider.d.ts +12 -6
  39. package/lib/AWS/AuthProvider.d.ts.map +1 -1
  40. package/lib/AWS/AuthProvider.js +120 -75
  41. package/lib/AWS/AuthProvider.js.map +1 -1
  42. package/lib/AWS/AutoScaling/AutoScalingGroup.d.ts +1 -1
  43. package/lib/AWS/AutoScaling/LaunchTemplate.d.ts +1 -2
  44. package/lib/AWS/AutoScaling/LaunchTemplate.d.ts.map +1 -1
  45. package/lib/AWS/AutoScaling/LaunchTemplate.js +21 -27
  46. package/lib/AWS/AutoScaling/LaunchTemplate.js.map +1 -1
  47. package/lib/AWS/AutoScaling/ScalingPolicy.d.ts +1 -1
  48. package/lib/AWS/Bootstrap.d.ts +2 -14
  49. package/lib/AWS/Bootstrap.d.ts.map +1 -1
  50. package/lib/AWS/Bootstrap.js +46 -133
  51. package/lib/AWS/Bootstrap.js.map +1 -1
  52. package/lib/AWS/CloudFront/CachePolicy.d.ts +1 -1
  53. package/lib/AWS/CloudFront/Distribution.d.ts +1 -1
  54. package/lib/AWS/CloudFront/Function.d.ts +1 -1
  55. package/lib/AWS/CloudFront/Invalidation.d.ts +1 -1
  56. package/lib/AWS/CloudFront/KeyGroup.d.ts +1 -1
  57. package/lib/AWS/CloudFront/KeyValueStore.d.ts +1 -1
  58. package/lib/AWS/CloudFront/OriginAccessControl.d.ts +1 -1
  59. package/lib/AWS/CloudFront/OriginRequestPolicy.d.ts +1 -1
  60. package/lib/AWS/CloudFront/PublicKey.d.ts +1 -1
  61. package/lib/AWS/CloudFront/ResponseHeadersPolicy.d.ts +1 -1
  62. package/lib/AWS/CloudFront/common.d.ts +1 -1
  63. package/lib/AWS/CloudWatch/Alarm.d.ts +2 -3
  64. package/lib/AWS/CloudWatch/Alarm.d.ts.map +1 -1
  65. package/lib/AWS/CloudWatch/Alarm.js +3 -6
  66. package/lib/AWS/CloudWatch/Alarm.js.map +1 -1
  67. package/lib/AWS/CloudWatch/AlarmMuteRule.d.ts +2 -3
  68. package/lib/AWS/CloudWatch/AlarmMuteRule.d.ts.map +1 -1
  69. package/lib/AWS/CloudWatch/AlarmMuteRule.js +2 -5
  70. package/lib/AWS/CloudWatch/AlarmMuteRule.js.map +1 -1
  71. package/lib/AWS/CloudWatch/AnomalyDetector.d.ts +1 -1
  72. package/lib/AWS/CloudWatch/CompositeAlarm.d.ts +2 -3
  73. package/lib/AWS/CloudWatch/CompositeAlarm.d.ts.map +1 -1
  74. package/lib/AWS/CloudWatch/CompositeAlarm.js +3 -6
  75. package/lib/AWS/CloudWatch/CompositeAlarm.js.map +1 -1
  76. package/lib/AWS/CloudWatch/Dashboard.d.ts +2 -2
  77. package/lib/AWS/CloudWatch/Dashboard.d.ts.map +1 -1
  78. package/lib/AWS/CloudWatch/Dashboard.js +3 -4
  79. package/lib/AWS/CloudWatch/Dashboard.js.map +1 -1
  80. package/lib/AWS/CloudWatch/DescribeAlarmContributors.d.ts +1 -1
  81. package/lib/AWS/CloudWatch/DescribeAlarmHistory.d.ts +1 -1
  82. package/lib/AWS/CloudWatch/DescribeAlarms.d.ts +1 -1
  83. package/lib/AWS/CloudWatch/DescribeAlarmsForMetric.d.ts +1 -1
  84. package/lib/AWS/CloudWatch/DescribeAnomalyDetectors.d.ts +1 -1
  85. package/lib/AWS/CloudWatch/DescribeInsightRules.d.ts +1 -1
  86. package/lib/AWS/CloudWatch/DisableAlarmActions.d.ts +1 -1
  87. package/lib/AWS/CloudWatch/DisableInsightRules.d.ts +1 -1
  88. package/lib/AWS/CloudWatch/EnableAlarmActions.d.ts +1 -1
  89. package/lib/AWS/CloudWatch/GetAlarmMuteRule.d.ts +1 -1
  90. package/lib/AWS/CloudWatch/GetDashboard.d.ts +1 -1
  91. package/lib/AWS/CloudWatch/GetInsightRuleReport.d.ts +1 -1
  92. package/lib/AWS/CloudWatch/GetMetricData.d.ts +1 -1
  93. package/lib/AWS/CloudWatch/GetMetricStatistics.d.ts +1 -1
  94. package/lib/AWS/CloudWatch/GetMetricStream.d.ts +1 -1
  95. package/lib/AWS/CloudWatch/GetMetricWidgetImage.d.ts +1 -1
  96. package/lib/AWS/CloudWatch/InsightRule.d.ts +2 -3
  97. package/lib/AWS/CloudWatch/InsightRule.d.ts.map +1 -1
  98. package/lib/AWS/CloudWatch/InsightRule.js +4 -7
  99. package/lib/AWS/CloudWatch/InsightRule.js.map +1 -1
  100. package/lib/AWS/CloudWatch/ListAlarmMuteRules.d.ts +1 -1
  101. package/lib/AWS/CloudWatch/ListDashboards.d.ts +1 -1
  102. package/lib/AWS/CloudWatch/ListManagedInsightRules.d.ts +1 -1
  103. package/lib/AWS/CloudWatch/ListMetricStreams.d.ts +1 -1
  104. package/lib/AWS/CloudWatch/ListMetrics.d.ts +1 -1
  105. package/lib/AWS/CloudWatch/ListTagsForResource.d.ts +1 -1
  106. package/lib/AWS/CloudWatch/MetricStream.d.ts +2 -3
  107. package/lib/AWS/CloudWatch/MetricStream.d.ts.map +1 -1
  108. package/lib/AWS/CloudWatch/MetricStream.js +3 -6
  109. package/lib/AWS/CloudWatch/MetricStream.js.map +1 -1
  110. package/lib/AWS/CloudWatch/PutMetricData.d.ts +1 -1
  111. package/lib/AWS/CloudWatch/SetAlarmState.d.ts +1 -1
  112. package/lib/AWS/CloudWatch/common.d.ts +2 -2
  113. package/lib/AWS/Credentials.d.ts.map +1 -1
  114. package/lib/AWS/Credentials.js +4 -1
  115. package/lib/AWS/Credentials.js.map +1 -1
  116. package/lib/AWS/DynamoDB/BatchExecuteStatement.d.ts +1 -1
  117. package/lib/AWS/DynamoDB/BatchGetItem.d.ts +1 -1
  118. package/lib/AWS/DynamoDB/BatchWriteItem.d.ts +1 -1
  119. package/lib/AWS/DynamoDB/DeleteItem.d.ts +1 -1
  120. package/lib/AWS/DynamoDB/DescribeTable.d.ts +1 -1
  121. package/lib/AWS/DynamoDB/DescribeTimeToLive.d.ts +1 -1
  122. package/lib/AWS/DynamoDB/ExecuteStatement.d.ts +1 -1
  123. package/lib/AWS/DynamoDB/ExecuteTransaction.d.ts +1 -1
  124. package/lib/AWS/DynamoDB/GetItem.d.ts +1 -1
  125. package/lib/AWS/DynamoDB/ListTables.d.ts +1 -1
  126. package/lib/AWS/DynamoDB/ListTagsOfResource.d.ts +1 -1
  127. package/lib/AWS/DynamoDB/PutItem.d.ts +1 -1
  128. package/lib/AWS/DynamoDB/Query.d.ts +1 -1
  129. package/lib/AWS/DynamoDB/RestoreTableToPointInTime.d.ts +1 -1
  130. package/lib/AWS/DynamoDB/Scan.d.ts +1 -1
  131. package/lib/AWS/DynamoDB/Table.d.ts +1 -1
  132. package/lib/AWS/DynamoDB/TransactGetItems.d.ts +1 -1
  133. package/lib/AWS/DynamoDB/TransactWriteItems.d.ts +1 -1
  134. package/lib/AWS/DynamoDB/UpdateItem.d.ts +1 -1
  135. package/lib/AWS/DynamoDB/UpdateTimeToLive.d.ts +1 -1
  136. package/lib/AWS/EC2/EIP.d.ts +2 -3
  137. package/lib/AWS/EC2/EIP.d.ts.map +1 -1
  138. package/lib/AWS/EC2/EIP.js +2 -3
  139. package/lib/AWS/EC2/EIP.js.map +1 -1
  140. package/lib/AWS/EC2/EgressOnlyInternetGateway.d.ts +2 -3
  141. package/lib/AWS/EC2/EgressOnlyInternetGateway.d.ts.map +1 -1
  142. package/lib/AWS/EC2/EgressOnlyInternetGateway.js +5 -8
  143. package/lib/AWS/EC2/EgressOnlyInternetGateway.js.map +1 -1
  144. package/lib/AWS/EC2/Image.d.ts +6 -6
  145. package/lib/AWS/EC2/Instance.d.ts +2 -2
  146. package/lib/AWS/EC2/Instance.d.ts.map +1 -1
  147. package/lib/AWS/EC2/Instance.js +30 -36
  148. package/lib/AWS/EC2/Instance.js.map +1 -1
  149. package/lib/AWS/EC2/InternetGateway.d.ts +2 -4
  150. package/lib/AWS/EC2/InternetGateway.d.ts.map +1 -1
  151. package/lib/AWS/EC2/InternetGateway.js +2 -4
  152. package/lib/AWS/EC2/InternetGateway.js.map +1 -1
  153. package/lib/AWS/EC2/NatGateway.d.ts +2 -3
  154. package/lib/AWS/EC2/NatGateway.d.ts.map +1 -1
  155. package/lib/AWS/EC2/NatGateway.js +6 -8
  156. package/lib/AWS/EC2/NatGateway.js.map +1 -1
  157. package/lib/AWS/EC2/Network.d.ts +2 -2
  158. package/lib/AWS/EC2/Network.d.ts.map +1 -1
  159. package/lib/AWS/EC2/Network.js +2 -2
  160. package/lib/AWS/EC2/Network.js.map +1 -1
  161. package/lib/AWS/EC2/NetworkAcl.d.ts +2 -3
  162. package/lib/AWS/EC2/NetworkAcl.d.ts.map +1 -1
  163. package/lib/AWS/EC2/NetworkAcl.js +36 -36
  164. package/lib/AWS/EC2/NetworkAcl.js.map +1 -1
  165. package/lib/AWS/EC2/NetworkAclAssociation.d.ts +1 -1
  166. package/lib/AWS/EC2/NetworkAclEntry.d.ts +1 -1
  167. package/lib/AWS/EC2/Route.d.ts +1 -1
  168. package/lib/AWS/EC2/RouteTable.d.ts +2 -3
  169. package/lib/AWS/EC2/RouteTable.d.ts.map +1 -1
  170. package/lib/AWS/EC2/RouteTable.js +2 -4
  171. package/lib/AWS/EC2/RouteTable.js.map +1 -1
  172. package/lib/AWS/EC2/RouteTableAssociation.d.ts +1 -1
  173. package/lib/AWS/EC2/SecurityGroup.d.ts +2 -3
  174. package/lib/AWS/EC2/SecurityGroup.d.ts.map +1 -1
  175. package/lib/AWS/EC2/SecurityGroup.js +40 -40
  176. package/lib/AWS/EC2/SecurityGroup.js.map +1 -1
  177. package/lib/AWS/EC2/SecurityGroupRule.d.ts +1 -1
  178. package/lib/AWS/EC2/Subnet.d.ts +1 -1
  179. package/lib/AWS/EC2/Vpc.d.ts +2 -3
  180. package/lib/AWS/EC2/Vpc.d.ts.map +1 -1
  181. package/lib/AWS/EC2/Vpc.js +1 -3
  182. package/lib/AWS/EC2/Vpc.js.map +1 -1
  183. package/lib/AWS/EC2/VpcEndpoint.d.ts +1 -2
  184. package/lib/AWS/EC2/VpcEndpoint.d.ts.map +1 -1
  185. package/lib/AWS/EC2/VpcEndpoint.js +44 -43
  186. package/lib/AWS/EC2/VpcEndpoint.js.map +1 -1
  187. package/lib/AWS/EC2/hosted.d.ts +3 -6
  188. package/lib/AWS/EC2/hosted.d.ts.map +1 -1
  189. package/lib/AWS/EC2/hosted.js +17 -18
  190. package/lib/AWS/EC2/hosted.js.map +1 -1
  191. package/lib/AWS/ECR/Repository.d.ts +1 -1
  192. package/lib/AWS/ECS/CapacityProvider.d.ts +1 -2
  193. package/lib/AWS/ECS/CapacityProvider.d.ts.map +1 -1
  194. package/lib/AWS/ECS/CapacityProvider.js +1 -3
  195. package/lib/AWS/ECS/CapacityProvider.js.map +1 -1
  196. package/lib/AWS/ECS/Cluster.d.ts +2 -3
  197. package/lib/AWS/ECS/Cluster.d.ts.map +1 -1
  198. package/lib/AWS/ECS/Cluster.js +1 -3
  199. package/lib/AWS/ECS/Cluster.js.map +1 -1
  200. package/lib/AWS/ECS/DescribeTasks.d.ts +1 -1
  201. package/lib/AWS/ECS/ListTasks.d.ts +1 -1
  202. package/lib/AWS/ECS/RunTask.d.ts +1 -1
  203. package/lib/AWS/ECS/Service.d.ts +1 -1
  204. package/lib/AWS/ECS/StopTask.d.ts +1 -1
  205. package/lib/AWS/ECS/Task.d.ts +2 -2
  206. package/lib/AWS/ECS/Task.d.ts.map +1 -1
  207. package/lib/AWS/ECS/Task.js +2 -2
  208. package/lib/AWS/ECS/Task.js.map +1 -1
  209. package/lib/AWS/EKS/AccessEntry.d.ts +1 -1
  210. package/lib/AWS/EKS/Addon.d.ts +1 -1
  211. package/lib/AWS/EKS/Cluster.d.ts +1 -1
  212. package/lib/AWS/EKS/Cluster.d.ts.map +1 -1
  213. package/lib/AWS/EKS/PodIdentityAssociation.d.ts +1 -1
  214. package/lib/AWS/ELBv2/Listener.d.ts +1 -1
  215. package/lib/AWS/ELBv2/LoadBalancer.d.ts +1 -1
  216. package/lib/AWS/ELBv2/TargetGroup.d.ts +1 -1
  217. package/lib/AWS/Endpoint.d.ts.map +1 -1
  218. package/lib/AWS/Endpoint.js +5 -2
  219. package/lib/AWS/Endpoint.js.map +1 -1
  220. package/lib/AWS/Environment.d.ts +6 -50
  221. package/lib/AWS/Environment.d.ts.map +1 -1
  222. package/lib/AWS/Environment.js +11 -80
  223. package/lib/AWS/Environment.js.map +1 -1
  224. package/lib/AWS/EventBridge/DescribeEventBus.d.ts +1 -1
  225. package/lib/AWS/EventBridge/DescribeRule.d.ts +1 -1
  226. package/lib/AWS/EventBridge/EventBus.d.ts +2 -3
  227. package/lib/AWS/EventBridge/EventBus.d.ts.map +1 -1
  228. package/lib/AWS/EventBridge/EventBus.js +1 -3
  229. package/lib/AWS/EventBridge/EventBus.js.map +1 -1
  230. package/lib/AWS/EventBridge/ListEventBuses.d.ts +1 -1
  231. package/lib/AWS/EventBridge/ListRules.d.ts +2 -3
  232. package/lib/AWS/EventBridge/ListRules.d.ts.map +1 -1
  233. package/lib/AWS/EventBridge/ListRules.js +2 -3
  234. package/lib/AWS/EventBridge/ListRules.js.map +1 -1
  235. package/lib/AWS/EventBridge/ListTargetsByRule.d.ts +1 -1
  236. package/lib/AWS/EventBridge/Permission.d.ts +1 -1
  237. package/lib/AWS/EventBridge/PutEvents.d.ts +2 -3
  238. package/lib/AWS/EventBridge/PutEvents.d.ts.map +1 -1
  239. package/lib/AWS/EventBridge/PutEvents.js +2 -3
  240. package/lib/AWS/EventBridge/PutEvents.js.map +1 -1
  241. package/lib/AWS/EventBridge/Rule.d.ts +2 -3
  242. package/lib/AWS/EventBridge/Rule.d.ts.map +1 -1
  243. package/lib/AWS/EventBridge/Rule.js +2 -3
  244. package/lib/AWS/EventBridge/Rule.js.map +1 -1
  245. package/lib/AWS/EventBridge/TestEventPattern.d.ts +1 -1
  246. package/lib/AWS/IAM/AccessKey.d.ts +1 -1
  247. package/lib/AWS/IAM/AccountAlias.d.ts +1 -1
  248. package/lib/AWS/IAM/AccountPasswordPolicy.d.ts +1 -1
  249. package/lib/AWS/IAM/Group.d.ts +1 -1
  250. package/lib/AWS/IAM/GroupMembership.d.ts +1 -1
  251. package/lib/AWS/IAM/InstanceProfile.d.ts +1 -1
  252. package/lib/AWS/IAM/LoginProfile.d.ts +1 -1
  253. package/lib/AWS/IAM/OpenIDConnectProvider.d.ts +1 -1
  254. package/lib/AWS/IAM/OpenIDConnectProvider.d.ts.map +1 -1
  255. package/lib/AWS/IAM/OpenIDConnectProvider.js +5 -4
  256. package/lib/AWS/IAM/OpenIDConnectProvider.js.map +1 -1
  257. package/lib/AWS/IAM/Policy.d.ts +1 -1
  258. package/lib/AWS/IAM/Policy.d.ts.map +1 -1
  259. package/lib/AWS/IAM/Policy.js +1 -1
  260. package/lib/AWS/IAM/Policy.js.map +1 -1
  261. package/lib/AWS/IAM/Role.d.ts +2 -2
  262. package/lib/AWS/IAM/Role.d.ts.map +1 -1
  263. package/lib/AWS/IAM/Role.js +1 -1
  264. package/lib/AWS/IAM/Role.js.map +1 -1
  265. package/lib/AWS/IAM/SAMLProvider.d.ts +2 -2
  266. package/lib/AWS/IAM/SAMLProvider.d.ts.map +1 -1
  267. package/lib/AWS/IAM/SAMLProvider.js +2 -2
  268. package/lib/AWS/IAM/SAMLProvider.js.map +1 -1
  269. package/lib/AWS/IAM/SSHPublicKey.d.ts +1 -1
  270. package/lib/AWS/IAM/ServerCertificate.d.ts +1 -1
  271. package/lib/AWS/IAM/ServiceSpecificCredential.d.ts +1 -1
  272. package/lib/AWS/IAM/SigningCertificate.d.ts +1 -1
  273. package/lib/AWS/IAM/User.d.ts +1 -1
  274. package/lib/AWS/IAM/VirtualMFADevice.d.ts +1 -1
  275. package/lib/AWS/IdentityCenter/AccountAssignment.d.ts +1 -1
  276. package/lib/AWS/IdentityCenter/Group.d.ts +1 -1
  277. package/lib/AWS/IdentityCenter/Instance.d.ts +1 -1
  278. package/lib/AWS/IdentityCenter/PermissionSet.d.ts +1 -1
  279. package/lib/AWS/IdentityCenter/common.d.ts +4 -4
  280. package/lib/AWS/Kinesis/DescribeAccountSettings.d.ts +1 -1
  281. package/lib/AWS/Kinesis/DescribeLimits.d.ts +1 -1
  282. package/lib/AWS/Kinesis/DescribeStream.d.ts +1 -1
  283. package/lib/AWS/Kinesis/DescribeStreamConsumer.d.ts +1 -1
  284. package/lib/AWS/Kinesis/DescribeStreamSummary.d.ts +1 -1
  285. package/lib/AWS/Kinesis/GetRecords.d.ts +1 -1
  286. package/lib/AWS/Kinesis/GetResourcePolicy.d.ts +1 -1
  287. package/lib/AWS/Kinesis/GetShardIterator.d.ts +1 -1
  288. package/lib/AWS/Kinesis/ListShards.d.ts +1 -1
  289. package/lib/AWS/Kinesis/ListStreamConsumers.d.ts +1 -1
  290. package/lib/AWS/Kinesis/ListStreams.d.ts +1 -1
  291. package/lib/AWS/Kinesis/ListTagsForResource.d.ts +1 -1
  292. package/lib/AWS/Kinesis/PutRecord.d.ts +1 -1
  293. package/lib/AWS/Kinesis/PutRecords.d.ts +1 -1
  294. package/lib/AWS/Kinesis/Stream.d.ts +2 -3
  295. package/lib/AWS/Kinesis/Stream.d.ts.map +1 -1
  296. package/lib/AWS/Kinesis/Stream.js +1 -3
  297. package/lib/AWS/Kinesis/Stream.js.map +1 -1
  298. package/lib/AWS/Kinesis/StreamConsumer.d.ts +1 -1
  299. package/lib/AWS/Kinesis/SubscribeToShard.d.ts +1 -1
  300. package/lib/AWS/Lambda/EventSourceMapping.d.ts +2 -3
  301. package/lib/AWS/Lambda/EventSourceMapping.d.ts.map +1 -1
  302. package/lib/AWS/Lambda/EventSourceMapping.js +1 -3
  303. package/lib/AWS/Lambda/EventSourceMapping.js.map +1 -1
  304. package/lib/AWS/Lambda/Function.d.ts +2 -2
  305. package/lib/AWS/Lambda/Function.d.ts.map +1 -1
  306. package/lib/AWS/Lambda/Function.js +9 -7
  307. package/lib/AWS/Lambda/Function.js.map +1 -1
  308. package/lib/AWS/Lambda/InvokeFunction.d.ts +1 -1
  309. package/lib/AWS/Lambda/Permission.d.ts +2 -2
  310. package/lib/AWS/Lambda/Permission.js +1 -1
  311. package/lib/AWS/Logs/LogGroup.d.ts +2 -3
  312. package/lib/AWS/Logs/LogGroup.d.ts.map +1 -1
  313. package/lib/AWS/Logs/LogGroup.js +1 -3
  314. package/lib/AWS/Logs/LogGroup.js.map +1 -1
  315. package/lib/AWS/Organizations/Account.d.ts +1 -1
  316. package/lib/AWS/Organizations/DelegatedAdministrator.d.ts +1 -1
  317. package/lib/AWS/Organizations/Organization.d.ts +1 -1
  318. package/lib/AWS/Organizations/OrganizationResourcePolicy.d.ts +1 -1
  319. package/lib/AWS/Organizations/OrganizationalUnit.d.ts +1 -1
  320. package/lib/AWS/Organizations/Policy.d.ts +1 -1
  321. package/lib/AWS/Organizations/PolicyAttachment.d.ts +1 -1
  322. package/lib/AWS/Organizations/Root.d.ts +1 -1
  323. package/lib/AWS/Organizations/RootPolicyType.d.ts +1 -1
  324. package/lib/AWS/Organizations/TrustedServiceAccess.d.ts +1 -1
  325. package/lib/AWS/Organizations/common.d.ts +2 -2
  326. package/lib/AWS/Providers.d.ts +3 -2
  327. package/lib/AWS/Providers.d.ts.map +1 -1
  328. package/lib/AWS/Providers.js +2 -2
  329. package/lib/AWS/Providers.js.map +1 -1
  330. package/lib/AWS/RDS/Connect.d.ts +1 -1
  331. package/lib/AWS/RDS/DBCluster.d.ts +1 -1
  332. package/lib/AWS/RDS/DBClusterEndpoint.d.ts +1 -1
  333. package/lib/AWS/RDS/DBClusterParameterGroup.d.ts +1 -1
  334. package/lib/AWS/RDS/DBInstance.d.ts +1 -1
  335. package/lib/AWS/RDS/DBParameterGroup.d.ts +1 -1
  336. package/lib/AWS/RDS/DBProxy.d.ts +1 -1
  337. package/lib/AWS/RDS/DBProxyEndpoint.d.ts +1 -1
  338. package/lib/AWS/RDS/DBProxyTargetGroup.d.ts +1 -1
  339. package/lib/AWS/RDS/DBSubnetGroup.d.ts +1 -1
  340. package/lib/AWS/RDSData/BatchExecuteStatement.d.ts +1 -1
  341. package/lib/AWS/RDSData/BeginTransaction.d.ts +1 -1
  342. package/lib/AWS/RDSData/CommitTransaction.d.ts +1 -1
  343. package/lib/AWS/RDSData/ExecuteSql.d.ts +1 -1
  344. package/lib/AWS/RDSData/ExecuteStatement.d.ts +1 -1
  345. package/lib/AWS/RDSData/RollbackTransaction.d.ts +1 -1
  346. package/lib/AWS/Region.d.ts +2 -0
  347. package/lib/AWS/Region.d.ts.map +1 -1
  348. package/lib/AWS/Region.js +8 -3
  349. package/lib/AWS/Region.js.map +1 -1
  350. package/lib/AWS/Route53/Record.d.ts +1 -1
  351. package/lib/AWS/S3/AbortMultipartUpload.d.ts +1 -1
  352. package/lib/AWS/S3/Bucket.d.ts +6 -3
  353. package/lib/AWS/S3/Bucket.d.ts.map +1 -1
  354. package/lib/AWS/S3/Bucket.js +3 -4
  355. package/lib/AWS/S3/Bucket.js.map +1 -1
  356. package/lib/AWS/S3/CompleteMultipartUpload.d.ts +1 -1
  357. package/lib/AWS/S3/CopyObject.d.ts +1 -1
  358. package/lib/AWS/S3/CreateMultipartUpload.d.ts +1 -1
  359. package/lib/AWS/S3/DeleteObject.d.ts +1 -1
  360. package/lib/AWS/S3/GetObject.d.ts +1 -1
  361. package/lib/AWS/S3/HeadObject.d.ts +1 -1
  362. package/lib/AWS/S3/ListObjectsV2.d.ts +1 -1
  363. package/lib/AWS/S3/PutObject.d.ts +1 -1
  364. package/lib/AWS/S3/UploadPart.d.ts +1 -1
  365. package/lib/AWS/SNS/AddPermission.d.ts +1 -1
  366. package/lib/AWS/SNS/ConfirmSubscription.d.ts +1 -1
  367. package/lib/AWS/SNS/GetDataProtectionPolicy.d.ts +1 -1
  368. package/lib/AWS/SNS/GetSubscriptionAttributes.d.ts +1 -1
  369. package/lib/AWS/SNS/GetTopicAttributes.d.ts +1 -1
  370. package/lib/AWS/SNS/ListSubscriptions.d.ts +1 -1
  371. package/lib/AWS/SNS/ListSubscriptionsByTopic.d.ts +1 -1
  372. package/lib/AWS/SNS/ListTagsForResource.d.ts +1 -1
  373. package/lib/AWS/SNS/ListTopics.d.ts +1 -1
  374. package/lib/AWS/SNS/Publish.d.ts +1 -1
  375. package/lib/AWS/SNS/PublishBatch.d.ts +1 -1
  376. package/lib/AWS/SNS/PutDataProtectionPolicy.d.ts +1 -1
  377. package/lib/AWS/SNS/RemovePermission.d.ts +1 -1
  378. package/lib/AWS/SNS/SetSubscriptionAttributes.d.ts +1 -1
  379. package/lib/AWS/SNS/SetTopicAttributes.d.ts +1 -1
  380. package/lib/AWS/SNS/Subscription.d.ts +1 -1
  381. package/lib/AWS/SNS/TagResource.d.ts +1 -1
  382. package/lib/AWS/SNS/Topic.d.ts +1 -1
  383. package/lib/AWS/SNS/UntagResource.d.ts +1 -1
  384. package/lib/AWS/SQS/DeleteMessage.d.ts +1 -1
  385. package/lib/AWS/SQS/DeleteMessageBatch.d.ts +1 -1
  386. package/lib/AWS/SQS/Queue.d.ts +1 -2
  387. package/lib/AWS/SQS/Queue.d.ts.map +1 -1
  388. package/lib/AWS/SQS/Queue.js +2 -3
  389. package/lib/AWS/SQS/Queue.js.map +1 -1
  390. package/lib/AWS/SQS/ReceiveMessage.d.ts +1 -1
  391. package/lib/AWS/SQS/SendMessage.d.ts +1 -1
  392. package/lib/AWS/SQS/SendMessageBatch.d.ts +1 -1
  393. package/lib/AWS/Scheduler/Schedule.d.ts +1 -1
  394. package/lib/AWS/Scheduler/ScheduleGroup.d.ts +1 -1
  395. package/lib/AWS/SecretsManager/DescribeSecret.d.ts +1 -1
  396. package/lib/AWS/SecretsManager/GetRandomPassword.d.ts +1 -1
  397. package/lib/AWS/SecretsManager/GetSecretValue.d.ts +1 -1
  398. package/lib/AWS/SecretsManager/ListSecrets.d.ts +1 -1
  399. package/lib/AWS/SecretsManager/PutSecretValue.d.ts +1 -1
  400. package/lib/AWS/SecretsManager/Secret.d.ts +1 -1
  401. package/lib/AWS/Website/AssetDeployment.d.ts +1 -1
  402. package/lib/AWS/index.d.ts +0 -1
  403. package/lib/AWS/index.d.ts.map +1 -1
  404. package/lib/AWS/index.js +0 -1
  405. package/lib/AWS/index.js.map +1 -1
  406. package/lib/Auth/Profile.d.ts +10 -10
  407. package/lib/Auth/Profile.d.ts.map +1 -1
  408. package/lib/Auth/Profile.js +4 -4
  409. package/lib/Auth/Profile.js.map +1 -1
  410. package/lib/Axiom/Credentials.d.ts +2 -3
  411. package/lib/Axiom/Credentials.d.ts.map +1 -1
  412. package/lib/Axiom/Credentials.js +3 -3
  413. package/lib/Axiom/Credentials.js.map +1 -1
  414. package/lib/Axiom/Dataset.js +1 -1
  415. package/lib/Axiom/Dataset.js.map +1 -1
  416. package/lib/Axiom/Providers.d.ts +1 -1
  417. package/lib/Axiom/Providers.d.ts.map +1 -1
  418. package/lib/Axiom/Providers.js +1 -1
  419. package/lib/Axiom/Providers.js.map +1 -1
  420. package/lib/Binding.d.ts +2 -2
  421. package/lib/Binding.d.ts.map +1 -1
  422. package/lib/Binding.js.map +1 -1
  423. package/lib/Cli/commands/_shared.d.ts +3 -3
  424. package/lib/Cli/commands/_shared.d.ts.map +1 -1
  425. package/lib/Cli/commands/_shared.js.map +1 -1
  426. package/lib/Cli/commands/aws.d.ts +1 -1
  427. package/lib/Cli/commands/aws.d.ts.map +1 -1
  428. package/lib/Cli/commands/aws.js +3 -3
  429. package/lib/Cli/commands/aws.js.map +1 -1
  430. package/lib/Cli/commands/cloudflare.js +1 -1
  431. package/lib/Cli/commands/cloudflare.js.map +1 -1
  432. package/lib/Cli/commands/deploy.d.ts +4 -4
  433. package/lib/Cli/commands/deploy.d.ts.map +1 -1
  434. package/lib/Cli/commands/login.d.ts +2 -3
  435. package/lib/Cli/commands/login.d.ts.map +1 -1
  436. package/lib/Cli/commands/login.js +6 -15
  437. package/lib/Cli/commands/login.js.map +1 -1
  438. package/lib/Cli/commands/logs.d.ts +1 -1
  439. package/lib/Cli/commands/logs.d.ts.map +1 -1
  440. package/lib/Cli/commands/profile.js +3 -3
  441. package/lib/Cli/commands/profile.js.map +1 -1
  442. package/lib/Cli/commands/tail.d.ts +1 -1
  443. package/lib/Cli/commands/tail.d.ts.map +1 -1
  444. package/lib/Cloudflare/AiGateway/AiGateway.d.ts.map +1 -1
  445. package/lib/Cloudflare/AiGateway/AiGateway.js +185 -180
  446. package/lib/Cloudflare/AiGateway/AiGateway.js.map +1 -1
  447. package/lib/Cloudflare/ApiToken/AccountApiToken.d.ts.map +1 -1
  448. package/lib/Cloudflare/ApiToken/AccountApiToken.js +103 -102
  449. package/lib/Cloudflare/ApiToken/AccountApiToken.js.map +1 -1
  450. package/lib/Cloudflare/ApiToken/UserApiToken.d.ts.map +1 -1
  451. package/lib/Cloudflare/ApiToken/UserApiToken.js +77 -81
  452. package/lib/Cloudflare/ApiToken/UserApiToken.js.map +1 -1
  453. package/lib/Cloudflare/CloudflareEnvironment.d.ts +4 -3
  454. package/lib/Cloudflare/CloudflareEnvironment.d.ts.map +1 -1
  455. package/lib/Cloudflare/CloudflareEnvironment.js +3 -4
  456. package/lib/Cloudflare/CloudflareEnvironment.js.map +1 -1
  457. package/lib/Cloudflare/Container/ContainerApplication.d.ts.map +1 -1
  458. package/lib/Cloudflare/Container/ContainerApplication.js +18 -18
  459. package/lib/Cloudflare/Container/ContainerApplication.js.map +1 -1
  460. package/lib/Cloudflare/Credentials.d.ts +2 -2
  461. package/lib/Cloudflare/Credentials.d.ts.map +1 -1
  462. package/lib/Cloudflare/Credentials.js +2 -2
  463. package/lib/Cloudflare/Credentials.js.map +1 -1
  464. package/lib/Cloudflare/D1/D1Database.d.ts +3 -1
  465. package/lib/Cloudflare/D1/D1Database.d.ts.map +1 -1
  466. package/lib/Cloudflare/D1/D1Database.js +205 -201
  467. package/lib/Cloudflare/D1/D1Database.js.map +1 -1
  468. package/lib/Cloudflare/EdgeSession.d.ts.map +1 -1
  469. package/lib/Cloudflare/EdgeSession.js +6 -5
  470. package/lib/Cloudflare/EdgeSession.js.map +1 -1
  471. package/lib/Cloudflare/Email/EmailAddress.d.ts.map +1 -1
  472. package/lib/Cloudflare/Email/EmailAddress.js +69 -61
  473. package/lib/Cloudflare/Email/EmailAddress.js.map +1 -1
  474. package/lib/Cloudflare/Email/EmailRouting.d.ts.map +1 -1
  475. package/lib/Cloudflare/Email/EmailRouting.js +63 -56
  476. package/lib/Cloudflare/Email/EmailRouting.js.map +1 -1
  477. package/lib/Cloudflare/Email/EmailRule.d.ts.map +1 -1
  478. package/lib/Cloudflare/Email/EmailRule.js +67 -63
  479. package/lib/Cloudflare/Email/EmailRule.js.map +1 -1
  480. package/lib/Cloudflare/Hyperdrive/Hyperdrive.d.ts.map +1 -1
  481. package/lib/Cloudflare/Hyperdrive/Hyperdrive.js +140 -138
  482. package/lib/Cloudflare/Hyperdrive/Hyperdrive.js.map +1 -1
  483. package/lib/Cloudflare/KV/KVNamespace.d.ts.map +1 -1
  484. package/lib/Cloudflare/KV/KVNamespace.js +115 -108
  485. package/lib/Cloudflare/KV/KVNamespace.js.map +1 -1
  486. package/lib/Cloudflare/Local.js +5 -2
  487. package/lib/Cloudflare/Local.js.map +1 -1
  488. package/lib/Cloudflare/LocalRuntime.d.ts +21 -0
  489. package/lib/Cloudflare/LocalRuntime.d.ts.map +1 -0
  490. package/lib/Cloudflare/LocalRuntime.js +40 -0
  491. package/lib/Cloudflare/LocalRuntime.js.map +1 -0
  492. package/lib/Cloudflare/Providers.d.ts +1 -1
  493. package/lib/Cloudflare/Providers.d.ts.map +1 -1
  494. package/lib/Cloudflare/Providers.js +2 -1
  495. package/lib/Cloudflare/Providers.js.map +1 -1
  496. package/lib/Cloudflare/Queue/Queue.d.ts +4 -1
  497. package/lib/Cloudflare/Queue/Queue.d.ts.map +1 -1
  498. package/lib/Cloudflare/Queue/Queue.js +154 -87
  499. package/lib/Cloudflare/Queue/Queue.js.map +1 -1
  500. package/lib/Cloudflare/Queue/QueueConsumer.d.ts +32 -26
  501. package/lib/Cloudflare/Queue/QueueConsumer.d.ts.map +1 -1
  502. package/lib/Cloudflare/Queue/QueueConsumer.js +323 -243
  503. package/lib/Cloudflare/Queue/QueueConsumer.js.map +1 -1
  504. package/lib/Cloudflare/R2/R2Bucket.d.ts.map +1 -1
  505. package/lib/Cloudflare/R2/R2Bucket.js +101 -66
  506. package/lib/Cloudflare/R2/R2Bucket.js.map +1 -1
  507. package/lib/Cloudflare/Ruleset/Ruleset.d.ts.map +1 -1
  508. package/lib/Cloudflare/Ruleset/Ruleset.js +81 -81
  509. package/lib/Cloudflare/Ruleset/Ruleset.js.map +1 -1
  510. package/lib/Cloudflare/SecretsStore/Secret.d.ts.map +1 -1
  511. package/lib/Cloudflare/SecretsStore/Secret.js +144 -143
  512. package/lib/Cloudflare/SecretsStore/Secret.js.map +1 -1
  513. package/lib/Cloudflare/SecretsStore/SecretsStore.d.ts.map +1 -1
  514. package/lib/Cloudflare/SecretsStore/SecretsStore.js +74 -75
  515. package/lib/Cloudflare/SecretsStore/SecretsStore.js.map +1 -1
  516. package/lib/Cloudflare/StateStore/State.d.ts +1 -1
  517. package/lib/Cloudflare/StateStore/State.d.ts.map +1 -1
  518. package/lib/Cloudflare/StateStore/State.js +3 -3
  519. package/lib/Cloudflare/StateStore/State.js.map +1 -1
  520. package/lib/Cloudflare/Tunnel/Tunnel.d.ts.map +1 -1
  521. package/lib/Cloudflare/Tunnel/Tunnel.js +166 -158
  522. package/lib/Cloudflare/Tunnel/Tunnel.js.map +1 -1
  523. package/lib/Cloudflare/Tunnel/TunnelBinding.d.ts +2 -2
  524. package/lib/Cloudflare/Tunnel/TunnelBinding.d.ts.map +1 -1
  525. package/lib/Cloudflare/Tunnel/TunnelBinding.js +10 -11
  526. package/lib/Cloudflare/Tunnel/TunnelBinding.js.map +1 -1
  527. package/lib/Cloudflare/Tunnel/TunnelRead.d.ts +4 -3
  528. package/lib/Cloudflare/Tunnel/TunnelRead.d.ts.map +1 -1
  529. package/lib/Cloudflare/Tunnel/TunnelRead.js.map +1 -1
  530. package/lib/Cloudflare/Tunnel/TunnelReadWrite.d.ts +4 -3
  531. package/lib/Cloudflare/Tunnel/TunnelReadWrite.d.ts.map +1 -1
  532. package/lib/Cloudflare/Tunnel/TunnelReadWrite.js.map +1 -1
  533. package/lib/Cloudflare/Tunnel/TunnelWrite.d.ts +4 -3
  534. package/lib/Cloudflare/Tunnel/TunnelWrite.d.ts.map +1 -1
  535. package/lib/Cloudflare/Tunnel/TunnelWrite.js.map +1 -1
  536. package/lib/Cloudflare/Vectorize/VectorizeIndex.d.ts.map +1 -1
  537. package/lib/Cloudflare/Vectorize/VectorizeIndex.js +79 -75
  538. package/lib/Cloudflare/Vectorize/VectorizeIndex.js.map +1 -1
  539. package/lib/Cloudflare/Vectorize/VectorizeMetadataIndex.d.ts.map +1 -1
  540. package/lib/Cloudflare/Vectorize/VectorizeMetadataIndex.js +85 -82
  541. package/lib/Cloudflare/Vectorize/VectorizeMetadataIndex.js.map +1 -1
  542. package/lib/Cloudflare/VpcService/VpcService.d.ts.map +1 -1
  543. package/lib/Cloudflare/VpcService/VpcService.js +112 -106
  544. package/lib/Cloudflare/VpcService/VpcService.js.map +1 -1
  545. package/lib/Cloudflare/VpcService/VpcServiceRef.js +1 -1
  546. package/lib/Cloudflare/VpcService/VpcServiceRef.js.map +1 -1
  547. package/lib/Cloudflare/Workers/LocalWorkerProvider.d.ts +3 -5
  548. package/lib/Cloudflare/Workers/LocalWorkerProvider.d.ts.map +1 -1
  549. package/lib/Cloudflare/Workers/LocalWorkerProvider.js +34 -26
  550. package/lib/Cloudflare/Workers/LocalWorkerProvider.js.map +1 -1
  551. package/lib/Cloudflare/Workers/Worker.d.ts +3 -5
  552. package/lib/Cloudflare/Workers/Worker.d.ts.map +1 -1
  553. package/lib/Cloudflare/Workers/Worker.js +116 -68
  554. package/lib/Cloudflare/Workers/Worker.js.map +1 -1
  555. package/lib/Cloudflare/Workers/WorkerAsyncBindings.d.ts.map +1 -1
  556. package/lib/Cloudflare/Workers/WorkerAsyncBindings.js +2 -14
  557. package/lib/Cloudflare/Workers/WorkerAsyncBindings.js.map +1 -1
  558. package/lib/Cloudflare/Workers/Workflow.js +6 -6
  559. package/lib/Cloudflare/Workers/Workflow.js.map +1 -1
  560. package/lib/Cloudflare/Zaraz/ZarazConfig.d.ts.map +1 -1
  561. package/lib/Cloudflare/Zaraz/ZarazConfig.js +68 -75
  562. package/lib/Cloudflare/Zaraz/ZarazConfig.js.map +1 -1
  563. package/lib/Cloudflare/Zone/Zone.d.ts.map +1 -1
  564. package/lib/Cloudflare/Zone/Zone.js +18 -13
  565. package/lib/Cloudflare/Zone/Zone.js.map +1 -1
  566. package/lib/GitHub/Comment.d.ts +1 -6
  567. package/lib/GitHub/Comment.d.ts.map +1 -1
  568. package/lib/GitHub/Comment.js +3 -9
  569. package/lib/GitHub/Comment.js.map +1 -1
  570. package/lib/GitHub/Credentials.d.ts +4 -3
  571. package/lib/GitHub/Credentials.d.ts.map +1 -1
  572. package/lib/GitHub/Credentials.js +5 -5
  573. package/lib/GitHub/Credentials.js.map +1 -1
  574. package/lib/GitHub/Octokit.d.ts +5 -0
  575. package/lib/GitHub/Octokit.d.ts.map +1 -0
  576. package/lib/GitHub/Octokit.js +7 -0
  577. package/lib/GitHub/Octokit.js.map +1 -0
  578. package/lib/GitHub/Providers.d.ts +1 -1
  579. package/lib/GitHub/Providers.d.ts.map +1 -1
  580. package/lib/GitHub/Secret.d.ts +1 -2
  581. package/lib/GitHub/Secret.d.ts.map +1 -1
  582. package/lib/GitHub/Secret.js +8 -12
  583. package/lib/GitHub/Secret.js.map +1 -1
  584. package/lib/GitHub/Variable.d.ts +1 -2
  585. package/lib/GitHub/Variable.d.ts.map +1 -1
  586. package/lib/GitHub/Variable.js +3 -7
  587. package/lib/GitHub/Variable.js.map +1 -1
  588. package/lib/Kubernetes/client.d.ts +11 -11
  589. package/lib/Kubernetes/client.d.ts.map +1 -1
  590. package/lib/Kubernetes/client.js +2 -2
  591. package/lib/Kubernetes/client.js.map +1 -1
  592. package/lib/Local/ProviderLayer.d.ts +10 -0
  593. package/lib/Local/ProviderLayer.d.ts.map +1 -0
  594. package/lib/Local/ProviderLayer.js +7 -0
  595. package/lib/Local/ProviderLayer.js.map +1 -0
  596. package/lib/Local/RpcProvider.d.ts.map +1 -1
  597. package/lib/Local/RpcProvider.js +2 -1
  598. package/lib/Local/RpcProvider.js.map +1 -1
  599. package/lib/Local/RpcProviderProxy.js.map +1 -1
  600. package/lib/Local/RpcSerialization.js +2 -2
  601. package/lib/Local/RpcSerialization.js.map +1 -1
  602. package/lib/Local/RpcServerEnvironment.d.ts +2 -2
  603. package/lib/Local/RpcServerEnvironment.d.ts.map +1 -1
  604. package/lib/Neon/AuthProvider.d.ts +2 -2
  605. package/lib/Neon/AuthProvider.d.ts.map +1 -1
  606. package/lib/Neon/AuthProvider.js +2 -2
  607. package/lib/Neon/AuthProvider.js.map +1 -1
  608. package/lib/Neon/Branch.d.ts.map +1 -1
  609. package/lib/Neon/Branch.js +213 -215
  610. package/lib/Neon/Branch.js.map +1 -1
  611. package/lib/Neon/Credentials.d.ts +2 -3
  612. package/lib/Neon/Credentials.d.ts.map +1 -1
  613. package/lib/Neon/Credentials.js +3 -3
  614. package/lib/Neon/Credentials.js.map +1 -1
  615. package/lib/Neon/Project.d.ts +22 -22
  616. package/lib/Neon/Project.d.ts.map +1 -1
  617. package/lib/Neon/Project.js +263 -266
  618. package/lib/Neon/Project.js.map +1 -1
  619. package/lib/Neon/Providers.d.ts +2 -4
  620. package/lib/Neon/Providers.d.ts.map +1 -1
  621. package/lib/Neon/Providers.js +1 -3
  622. package/lib/Neon/Providers.js.map +1 -1
  623. package/lib/Neon/index.d.ts +0 -1
  624. package/lib/Neon/index.d.ts.map +1 -1
  625. package/lib/Neon/index.js +0 -1
  626. package/lib/Neon/index.js.map +1 -1
  627. package/lib/Output.d.ts +2 -1
  628. package/lib/Output.d.ts.map +1 -1
  629. package/lib/Output.js +7 -3
  630. package/lib/Output.js.map +1 -1
  631. package/lib/Plan.d.ts.map +1 -1
  632. package/lib/Plan.js +14 -6
  633. package/lib/Plan.js.map +1 -1
  634. package/lib/Planetscale/Branch.d.ts +1 -2
  635. package/lib/Planetscale/Branch.d.ts.map +1 -1
  636. package/lib/Planetscale/Branch.js +252 -235
  637. package/lib/Planetscale/Branch.js.map +1 -1
  638. package/lib/Planetscale/Credentials.d.ts +2 -3
  639. package/lib/Planetscale/Credentials.d.ts.map +1 -1
  640. package/lib/Planetscale/Credentials.js +6 -6
  641. package/lib/Planetscale/Credentials.js.map +1 -1
  642. package/lib/Planetscale/Database.d.ts +1 -1
  643. package/lib/Planetscale/MySQL/MySQLBranch.d.ts +1 -1
  644. package/lib/Planetscale/MySQL/MySQLBranch.d.ts.map +1 -1
  645. package/lib/Planetscale/MySQL/MySQLClusterSize.d.ts +2 -2
  646. package/lib/Planetscale/MySQL/MySQLClusterSize.d.ts.map +1 -1
  647. package/lib/Planetscale/MySQL/MySQLDatabase.d.ts +1 -1
  648. package/lib/Planetscale/MySQL/MySQLDatabase.d.ts.map +1 -1
  649. package/lib/Planetscale/MySQL/MySQLDatabase.js +215 -215
  650. package/lib/Planetscale/MySQL/MySQLDatabase.js.map +1 -1
  651. package/lib/Planetscale/MySQL/MySQLMigrations.d.ts +2 -2
  652. package/lib/Planetscale/MySQL/MySQLMigrations.d.ts.map +1 -1
  653. package/lib/Planetscale/MySQL/MySQLPassword.d.ts.map +1 -1
  654. package/lib/Planetscale/MySQL/MySQLPassword.js +145 -145
  655. package/lib/Planetscale/MySQL/MySQLPassword.js.map +1 -1
  656. package/lib/Planetscale/Postgres/PostgresBranch.d.ts +1 -1
  657. package/lib/Planetscale/Postgres/PostgresBranch.d.ts.map +1 -1
  658. package/lib/Planetscale/Postgres/PostgresClusterSize.d.ts +3 -2
  659. package/lib/Planetscale/Postgres/PostgresClusterSize.d.ts.map +1 -1
  660. package/lib/Planetscale/Postgres/PostgresClusterSize.js +16 -6
  661. package/lib/Planetscale/Postgres/PostgresClusterSize.js.map +1 -1
  662. package/lib/Planetscale/Postgres/PostgresDatabase.d.ts +1 -1
  663. package/lib/Planetscale/Postgres/PostgresDatabase.d.ts.map +1 -1
  664. package/lib/Planetscale/Postgres/PostgresDatabase.js +220 -218
  665. package/lib/Planetscale/Postgres/PostgresDatabase.js.map +1 -1
  666. package/lib/Planetscale/Postgres/PostgresDefaultRole.d.ts.map +1 -1
  667. package/lib/Planetscale/Postgres/PostgresDefaultRole.js +123 -121
  668. package/lib/Planetscale/Postgres/PostgresDefaultRole.js.map +1 -1
  669. package/lib/Planetscale/Postgres/PostgresMigrations.d.ts +2 -2
  670. package/lib/Planetscale/Postgres/PostgresMigrations.d.ts.map +1 -1
  671. package/lib/Planetscale/Postgres/PostgresRole.d.ts.map +1 -1
  672. package/lib/Planetscale/Postgres/PostgresRole.js +159 -160
  673. package/lib/Planetscale/Postgres/PostgresRole.js.map +1 -1
  674. package/lib/Planetscale/Providers.d.ts +1 -2
  675. package/lib/Planetscale/Providers.d.ts.map +1 -1
  676. package/lib/Planetscale/Providers.js.map +1 -1
  677. package/lib/Planetscale/Util.d.ts +3 -3
  678. package/lib/Planetscale/Util.d.ts.map +1 -1
  679. package/lib/Planetscale/Util.js +7 -5
  680. package/lib/Planetscale/Util.js.map +1 -1
  681. package/lib/Server/S3BucketEventSource.d.ts +1 -1
  682. package/lib/Server/S3BucketEventSource.d.ts.map +1 -1
  683. package/lib/Server/SQSQueueEventSource.d.ts +2 -2
  684. package/lib/Server/SQSQueueEventSource.d.ts.map +1 -1
  685. package/lib/Server/SQSQueueEventSource.js +3 -2
  686. package/lib/Server/SQSQueueEventSource.js.map +1 -1
  687. package/lib/Stack.d.ts +4 -4
  688. package/lib/Stack.d.ts.map +1 -1
  689. package/lib/Stack.js +1 -1
  690. package/lib/Stack.js.map +1 -1
  691. package/lib/tsconfig.test.tsbuildinfo +1 -1
  692. package/package.json +14 -13
  693. package/src/AWS/ApiGateway/ApiKey.ts +4 -5
  694. package/src/AWS/ApiGateway/RestApi.ts +5 -6
  695. package/src/AWS/ApiGateway/Stage.ts +4 -5
  696. package/src/AWS/ApiGateway/UsagePlan.ts +4 -5
  697. package/src/AWS/ApiGateway/VpcLink.ts +4 -6
  698. package/src/AWS/Assets.ts +161 -108
  699. package/src/AWS/AuthProvider.ts +221 -124
  700. package/src/AWS/AutoScaling/LaunchTemplate.ts +31 -32
  701. package/src/AWS/Bootstrap.ts +66 -195
  702. package/src/AWS/CloudWatch/Alarm.ts +9 -8
  703. package/src/AWS/CloudWatch/AlarmMuteRule.ts +8 -7
  704. package/src/AWS/CloudWatch/CompositeAlarm.ts +9 -8
  705. package/src/AWS/CloudWatch/Dashboard.ts +9 -6
  706. package/src/AWS/CloudWatch/InsightRule.ts +10 -9
  707. package/src/AWS/CloudWatch/MetricStream.ts +9 -7
  708. package/src/AWS/Credentials.ts +4 -1
  709. package/src/AWS/EC2/EIP.ts +5 -5
  710. package/src/AWS/EC2/EgressOnlyInternetGateway.ts +20 -17
  711. package/src/AWS/EC2/Instance.ts +42 -41
  712. package/src/AWS/EC2/InternetGateway.ts +4 -8
  713. package/src/AWS/EC2/NatGateway.ts +10 -11
  714. package/src/AWS/EC2/Network.ts +2 -2
  715. package/src/AWS/EC2/NetworkAcl.ts +38 -39
  716. package/src/AWS/EC2/RouteTable.ts +3 -6
  717. package/src/AWS/EC2/SecurityGroup.ts +43 -44
  718. package/src/AWS/EC2/Vpc.ts +2 -5
  719. package/src/AWS/EC2/VpcEndpoint.ts +47 -47
  720. package/src/AWS/EC2/hosted.ts +19 -33
  721. package/src/AWS/ECS/CapacityProvider.ts +1 -3
  722. package/src/AWS/ECS/Cluster.ts +2 -5
  723. package/src/AWS/ECS/Task.ts +4 -3
  724. package/src/AWS/Endpoint.ts +12 -6
  725. package/src/AWS/Environment.ts +22 -120
  726. package/src/AWS/EventBridge/EventBus.ts +2 -5
  727. package/src/AWS/EventBridge/ListRules.ts +2 -5
  728. package/src/AWS/EventBridge/PutEvents.ts +2 -3
  729. package/src/AWS/EventBridge/Rule.ts +3 -5
  730. package/src/AWS/IAM/OpenIDConnectProvider.ts +10 -4
  731. package/src/AWS/IAM/Policy.ts +1 -2
  732. package/src/AWS/IAM/Role.ts +2 -2
  733. package/src/AWS/IAM/SAMLProvider.ts +3 -3
  734. package/src/AWS/Kinesis/Stream.ts +2 -5
  735. package/src/AWS/Lambda/EventSourceMapping.ts +2 -5
  736. package/src/AWS/Lambda/Function.ts +10 -8
  737. package/src/AWS/Lambda/Permission.ts +1 -1
  738. package/src/AWS/Logs/LogGroup.ts +2 -5
  739. package/src/AWS/Providers.ts +2 -2
  740. package/src/AWS/Region.ts +15 -3
  741. package/src/AWS/S3/Bucket.ts +15 -15
  742. package/src/AWS/SQS/Queue.ts +2 -3
  743. package/src/AWS/index.ts +0 -1
  744. package/src/Auth/Profile.ts +13 -12
  745. package/src/Axiom/Credentials.ts +4 -2
  746. package/src/Axiom/Dataset.ts +1 -1
  747. package/src/Axiom/Providers.ts +1 -1
  748. package/src/Binding.ts +2 -5
  749. package/src/Cli/commands/_shared.ts +2 -2
  750. package/src/Cli/commands/aws.ts +12 -9
  751. package/src/Cli/commands/cloudflare.ts +1 -1
  752. package/src/Cli/commands/login.ts +6 -22
  753. package/src/Cli/commands/profile.ts +3 -3
  754. package/src/Cloudflare/AiGateway/AiGateway.ts +219 -218
  755. package/src/Cloudflare/ApiToken/AccountApiToken.ts +142 -153
  756. package/src/Cloudflare/ApiToken/UserApiToken.ts +105 -121
  757. package/src/Cloudflare/CloudflareEnvironment.ts +10 -5
  758. package/src/Cloudflare/Container/ContainerApplication.ts +32 -29
  759. package/src/Cloudflare/Credentials.ts +2 -2
  760. package/src/Cloudflare/D1/D1Database.ts +268 -263
  761. package/src/Cloudflare/EdgeSession.ts +6 -5
  762. package/src/Cloudflare/Email/EmailAddress.ts +74 -71
  763. package/src/Cloudflare/Email/EmailRouting.ts +73 -75
  764. package/src/Cloudflare/Email/EmailRule.ts +79 -80
  765. package/src/Cloudflare/Hyperdrive/Hyperdrive.ts +156 -161
  766. package/src/Cloudflare/KV/KVNamespace.ts +139 -138
  767. package/src/Cloudflare/Local.ts +9 -5
  768. package/src/Cloudflare/LocalRuntime.ts +70 -0
  769. package/src/Cloudflare/Providers.ts +2 -0
  770. package/src/Cloudflare/Queue/Queue.ts +184 -110
  771. package/src/Cloudflare/Queue/QueueConsumer.ts +452 -346
  772. package/src/Cloudflare/R2/R2Bucket.ts +200 -165
  773. package/src/Cloudflare/Ruleset/Ruleset.ts +93 -98
  774. package/src/Cloudflare/SecretsStore/Secret.ts +187 -194
  775. package/src/Cloudflare/SecretsStore/SecretsStore.ts +82 -87
  776. package/src/Cloudflare/StateStore/State.ts +5 -3
  777. package/src/Cloudflare/Tunnel/Tunnel.ts +187 -186
  778. package/src/Cloudflare/Tunnel/TunnelBinding.ts +16 -9
  779. package/src/Cloudflare/Tunnel/TunnelRead.ts +3 -2
  780. package/src/Cloudflare/Tunnel/TunnelReadWrite.ts +7 -2
  781. package/src/Cloudflare/Tunnel/TunnelWrite.ts +3 -2
  782. package/src/Cloudflare/Vectorize/VectorizeIndex.ts +98 -98
  783. package/src/Cloudflare/Vectorize/VectorizeMetadataIndex.ts +97 -109
  784. package/src/Cloudflare/VpcService/VpcService.ts +126 -125
  785. package/src/Cloudflare/VpcService/VpcServiceRef.ts +1 -1
  786. package/src/Cloudflare/Workers/LocalWorkerProvider.ts +41 -31
  787. package/src/Cloudflare/Workers/Worker.ts +328 -295
  788. package/src/Cloudflare/Workers/WorkerAsyncBindings.ts +7 -21
  789. package/src/Cloudflare/Workers/Workflow.ts +8 -8
  790. package/src/Cloudflare/Zaraz/ZarazConfig.ts +87 -99
  791. package/src/Cloudflare/Zone/Zone.ts +36 -33
  792. package/src/GitHub/Comment.ts +3 -20
  793. package/src/GitHub/Credentials.ts +9 -5
  794. package/src/GitHub/Octokit.ts +9 -0
  795. package/src/GitHub/Secret.ts +8 -21
  796. package/src/GitHub/Variable.ts +3 -8
  797. package/src/Kubernetes/client.ts +2 -2
  798. package/src/Local/ProviderLayer.ts +22 -0
  799. package/src/Local/RpcProvider.ts +2 -0
  800. package/src/Local/RpcProviderProxy.ts +2 -2
  801. package/src/Local/RpcSerialization.ts +2 -2
  802. package/src/Neon/AuthProvider.ts +2 -2
  803. package/src/Neon/Branch.ts +264 -272
  804. package/src/Neon/Credentials.ts +4 -2
  805. package/src/Neon/Project.ts +372 -378
  806. package/src/Neon/Providers.ts +0 -6
  807. package/src/Neon/index.ts +0 -1
  808. package/src/Output.ts +8 -4
  809. package/src/Plan.ts +15 -7
  810. package/src/Planetscale/Branch.ts +346 -328
  811. package/src/Planetscale/Credentials.ts +20 -15
  812. package/src/Planetscale/Database.ts +1 -1
  813. package/src/Planetscale/MySQL/MySQLDatabase.ts +269 -280
  814. package/src/Planetscale/MySQL/MySQLPassword.ts +161 -168
  815. package/src/Planetscale/Postgres/PostgresClusterSize.ts +19 -5
  816. package/src/Planetscale/Postgres/PostgresDatabase.ts +287 -296
  817. package/src/Planetscale/Postgres/PostgresDefaultRole.ts +143 -146
  818. package/src/Planetscale/Postgres/PostgresRole.ts +188 -195
  819. package/src/Planetscale/Providers.ts +2 -7
  820. package/src/Planetscale/Util.ts +7 -5
  821. package/src/Server/SQSQueueEventSource.ts +3 -2
  822. package/src/Stack.ts +3 -3
  823. package/bin/alchemy.sh +0 -15
  824. package/lib/AWS/Context.d.ts +0 -8
  825. package/lib/AWS/Context.d.ts.map +0 -1
  826. package/lib/AWS/Context.js +0 -16
  827. package/lib/AWS/Context.js.map +0 -1
  828. package/lib/Neon/NeonEnvironment.d.ts +0 -11
  829. package/lib/Neon/NeonEnvironment.d.ts.map +0 -1
  830. package/lib/Neon/NeonEnvironment.js +0 -18
  831. package/lib/Neon/NeonEnvironment.js.map +0 -1
  832. package/src/AWS/Context.ts +0 -30
  833. package/src/Neon/NeonEnvironment.ts +0 -32
@@ -1,20 +1,22 @@
1
1
  import * as queues from "@distilled.cloud/cloudflare/queues";
2
2
  import * as Effect from "effect/Effect";
3
+ import * as MutableHashMap from "effect/MutableHashMap";
3
4
  import * as Option from "effect/Option";
4
5
  import * as Schedule from "effect/Schedule";
5
6
  import * as Stream from "effect/Stream";
6
7
  import { isResolved } from "../../Diff.ts";
8
+ import * as ProviderLayer from "../../Local/ProviderLayer.ts";
9
+ import * as RpcProvider from "../../Local/RpcProvider.ts";
7
10
  import * as Provider from "../../Provider.ts";
8
11
  import { Resource } from "../../Resource.ts";
9
12
  import { CloudflareEnvironment } from "../CloudflareEnvironment.ts";
13
+ import {
14
+ isLiveId,
15
+ LOCAL_ENTRY_URL,
16
+ LocalRuntimeState,
17
+ } from "../LocalRuntime.ts";
10
18
  import type { Providers } from "../Providers.ts";
11
19
 
12
- // ~60s budget — Worker reconcile uploads typically land in 2–10s,
13
- // but a fresh container/asset deploy can stretch that.
14
- const queueHandlerReadinessSchedule = Schedule.spaced("2 seconds").pipe(
15
- Schedule.both(Schedule.recurs(30)),
16
- );
17
-
18
20
  export type QueueConsumerProps = {
19
21
  /**
20
22
  * The queue ID to attach the consumer to.
@@ -31,33 +33,35 @@ export type QueueConsumerProps = {
31
33
  /**
32
34
  * Consumer settings.
33
35
  */
34
- settings?: {
35
- /**
36
- * The maximum number of messages per batch.
37
- * @default 10
38
- */
39
- batchSize?: number;
40
- /**
41
- * The maximum number of concurrent consumer invocations.
42
- */
43
- maxConcurrency?: number;
44
- /**
45
- * The maximum number of retries for a message.
46
- * @default 3
47
- */
48
- maxRetries?: number;
49
- /**
50
- * The maximum time to wait for a batch to fill, in milliseconds.
51
- * @default 5000
52
- */
53
- maxWaitTimeMs?: number;
54
- /**
55
- * The number of seconds to wait before retrying a message.
56
- */
57
- retryDelay?: number;
58
- };
36
+ settings?: QueueConsumerSettings;
59
37
  };
60
38
 
39
+ export interface QueueConsumerSettings {
40
+ /**
41
+ * The maximum number of messages per batch.
42
+ * @default 10
43
+ */
44
+ batchSize?: number;
45
+ /**
46
+ * The maximum number of concurrent consumer invocations.
47
+ */
48
+ maxConcurrency?: number;
49
+ /**
50
+ * The maximum number of retries for a message.
51
+ * @default 3
52
+ */
53
+ maxRetries?: number;
54
+ /**
55
+ * The maximum time to wait for a batch to fill, in milliseconds.
56
+ * @default 5000
57
+ */
58
+ maxWaitTimeMs?: number;
59
+ /**
60
+ * The number of seconds to wait before retrying a message.
61
+ */
62
+ retryDelay?: number;
63
+ }
64
+
61
65
  export type QueueConsumer = Resource<
62
66
  "Cloudflare.QueueConsumer",
63
67
  QueueConsumerProps,
@@ -66,6 +70,8 @@ export type QueueConsumer = Resource<
66
70
  queueId: string;
67
71
  scriptName: string;
68
72
  accountId: string;
73
+ deadLetterQueue?: string;
74
+ settings?: QueueConsumerSettings;
69
75
  },
70
76
  never,
71
77
  Providers
@@ -111,6 +117,363 @@ export const QueueConsumer = Resource<QueueConsumer>(
111
117
  "Cloudflare.QueueConsumer",
112
118
  );
113
119
 
120
+ // Cloudflare allows a single Worker consumer per queue, so the
121
+ // first match in the paginated stream is the only one. Using
122
+ // `.items` defeats single-page lookups that would otherwise
123
+ // miss late-arriving consumers under eventual consistency.
124
+ const findWorkerConsumer = (acct: string, queueId: string) =>
125
+ queues.listConsumers.items({ accountId: acct, queueId }).pipe(
126
+ Stream.map(toObserved),
127
+ Stream.filter((c): c is ObservedConsumer => c !== undefined),
128
+ Stream.runHead,
129
+ Effect.map(Option.getOrUndefined),
130
+ );
131
+
132
+ export const QueueConsumerProviderLive = () =>
133
+ Provider.succeed(QueueConsumer, {
134
+ // The `consumerId` is not marked as stable because if you start in dev mode, the ID will change on first deploy.
135
+ stables: ["accountId"],
136
+ diff: Effect.fn(function* ({ olds, news, output }) {
137
+ const { accountId } = yield* yield* CloudflareEnvironment;
138
+ if (!isResolved(news)) return undefined;
139
+ // If either contain `dev:` IDs, we need to update to live ones.
140
+ // The live resource doesn't exist yet, so there's no need to replace even when we otherwise would.
141
+ if (!isLiveId(output?.queueId) || !isLiveId(output?.consumerId)) {
142
+ return { action: "update" };
143
+ }
144
+ if ((output?.accountId ?? accountId) !== accountId) {
145
+ return { action: "replace" } as const;
146
+ }
147
+ // Queue change requires replacement — consumerId is bound
148
+ // to a queue and the API has no "move consumer" verb.
149
+ if (output?.queueId && news.queueId !== output.queueId) {
150
+ return { action: "replace", deleteFirst: true } as const;
151
+ }
152
+ // Settings / DLQ / script drift is an update. We DON'T
153
+ // escalate scriptName changes to `replace` because the
154
+ // engine resolves cross-resource Output<string> refs (a
155
+ // sibling Worker's `workerName`) lazily — when the upstream
156
+ // Worker is created in the same plan, `news` is partially
157
+ // unresolved at diff time and `isResolved(news)` short-
158
+ // circuits up top. Falling through to "update" lets the
159
+ // engine call reconcile with fully-resolved `news`, where
160
+ // we detect script drift and rebuild the consumer in
161
+ // place (Cloudflare's PUT silently ignores `script_name`
162
+ // changes, so reconcile does delete-then-create).
163
+ if (
164
+ JSON.stringify(olds.settings ?? {}) !==
165
+ JSON.stringify(news.settings ?? {}) ||
166
+ (olds.deadLetterQueue ?? undefined) !==
167
+ (news.deadLetterQueue ?? undefined) ||
168
+ (output?.scriptName !== undefined &&
169
+ news.scriptName !== output.scriptName)
170
+ ) {
171
+ return { action: "update" } as const;
172
+ }
173
+ }),
174
+ reconcile: Effect.fn(function* ({ news, output }) {
175
+ const { accountId } = yield* yield* CloudflareEnvironment;
176
+ const acct = output?.accountId ?? accountId;
177
+ const queueId = output?.queueId ?? (news.queueId as unknown as string);
178
+
179
+ // Observe — prefer the cached consumerId, then fall back to
180
+ // listConsumers (paginated) to recover from out-of-band
181
+ // deletes or partial state-persistence failures. Track
182
+ // whether the observation came from the cached id or the
183
+ // list scan: a different-script worker consumer found via
184
+ // the list scan is potentially foreign (state was lost,
185
+ // someone else attached the consumer), and silently
186
+ // updating it could clobber another team's wiring.
187
+ let observed: ObservedConsumer | undefined;
188
+ let owned = false;
189
+ if (isLiveId(output?.consumerId)) {
190
+ const fetched = yield* queues
191
+ .getConsumer({
192
+ accountId: acct,
193
+ queueId,
194
+ consumerId: output.consumerId,
195
+ })
196
+ .pipe(
197
+ Effect.catchTag("ConsumerNotFound", () =>
198
+ Effect.succeed(undefined),
199
+ ),
200
+ );
201
+ if (fetched) {
202
+ observed = toObserved(fetched);
203
+ owned = observed !== undefined;
204
+ }
205
+ }
206
+ if (!observed) {
207
+ observed = yield* findWorkerConsumer(acct, queueId);
208
+ }
209
+
210
+ // Owned consumer pointing at a different script: rebuild
211
+ // it in place. Cloudflare's PUT consumer silently ignores
212
+ // `script_name` changes on existing consumers (the live
213
+ // record stays pinned to the original worker), and the
214
+ // platform allows only one Worker consumer per queue, so
215
+ // the only path to re-point is delete-then-create.
216
+ if (
217
+ owned &&
218
+ observed &&
219
+ observed.script !== undefined &&
220
+ observed.script !== news.scriptName
221
+ ) {
222
+ yield* queues
223
+ .deleteConsumer({
224
+ accountId: acct,
225
+ queueId,
226
+ consumerId: observed.consumerId,
227
+ })
228
+ .pipe(Effect.catchTag("ConsumerNotFound", () => Effect.void));
229
+ // Wait for Cloudflare's worker subsystem to drop its
230
+ // claim on the old script so createConsumer below
231
+ // doesn't race the queue↔script propagation lag.
232
+ yield* queues
233
+ .getConsumer({
234
+ accountId: acct,
235
+ queueId,
236
+ consumerId: observed.consumerId,
237
+ })
238
+ .pipe(
239
+ Effect.flatMap(() => Effect.fail("still-attached" as const)),
240
+ Effect.catchTag("ConsumerNotFound", () => Effect.void),
241
+ Effect.retry({
242
+ while: (e) => e === "still-attached",
243
+ schedule: Schedule.spaced("1 second").pipe(
244
+ Schedule.both(Schedule.recurs(30)),
245
+ ),
246
+ }),
247
+ Effect.ignore,
248
+ );
249
+ observed = undefined;
250
+ owned = false;
251
+ }
252
+
253
+ // Refuse to take over a foreign consumer on the state-loss
254
+ // path. With `owned=false` we found this via the list scan
255
+ // and the script mismatch means it belongs to another
256
+ // resource or was created out-of-band — silent adoption
257
+ // would clobber that.
258
+ if (
259
+ observed &&
260
+ !owned &&
261
+ observed.script !== undefined &&
262
+ observed.script !== news.scriptName
263
+ ) {
264
+ return yield* Effect.die(
265
+ `Cloudflare queue "${queueId}" already has a worker ` +
266
+ `consumer for script "${observed.script}", but this ` +
267
+ `resource is configured for "${news.scriptName}" and ` +
268
+ `local state for the consumer was missing. Each queue ` +
269
+ `can have only one worker consumer — delete the ` +
270
+ `existing one, update scriptName to match, or restore ` +
271
+ `the consumer's state entry before redeploying.`,
272
+ );
273
+ }
274
+
275
+ // Ensure — create if missing. ConsumerAlreadyExists is the
276
+ // race signal: another reconcile or peer beat us to it.
277
+ // Re-run the lookup; the paginated stream tolerates the
278
+ // single-page eventual-consistency window the previous
279
+ // implementation missed.
280
+ let consumerId: string;
281
+ if (!observed) {
282
+ const created = yield* queues
283
+ .createConsumer({
284
+ accountId: acct,
285
+ queueId,
286
+ scriptName: news.scriptName,
287
+ type: "worker",
288
+ deadLetterQueue: news.deadLetterQueue,
289
+ settings: news.settings,
290
+ })
291
+ .pipe(
292
+ // The sibling Worker resource pre-creates a placeholder
293
+ // script with no `queue` handler; Cloudflare returns
294
+ // code 11001 until the real reconcile uploads the
295
+ // handler. Retry until the upload propagates (capped),
296
+ // then surface a real failure if it never does.
297
+ Effect.tapError((e) =>
298
+ e._tag === "QueueHandlerMissing"
299
+ ? Effect.logDebug(
300
+ `QueueConsumer create: worker ` +
301
+ `"${news.scriptName}" has no queue handler ` +
302
+ `yet (code 11001), retrying`,
303
+ )
304
+ : Effect.void,
305
+ ),
306
+ Effect.retry({
307
+ while: (e) => e._tag === "QueueHandlerMissing",
308
+ schedule: queueHandlerReadinessSchedule,
309
+ }),
310
+ Effect.catchTag("ConsumerAlreadyExists", (cause) =>
311
+ Effect.gen(function* () {
312
+ const match = yield* findWorkerConsumer(acct, queueId);
313
+ if (!match) {
314
+ return yield* Effect.die(
315
+ `Cloudflare reported a worker consumer already ` +
316
+ `exists on queue "${queueId}", but listConsumers ` +
317
+ `returned none. Retry the deploy; if this ` +
318
+ `persists, the queue is in an inconsistent ` +
319
+ `state. Underlying error: ${cause.message}`,
320
+ );
321
+ }
322
+ if (
323
+ match.script !== undefined &&
324
+ match.script !== news.scriptName
325
+ ) {
326
+ return yield* Effect.die(
327
+ `Cloudflare queue "${queueId}" already has a ` +
328
+ `worker consumer for script "${match.script}", ` +
329
+ `but this resource is configured for ` +
330
+ `"${news.scriptName}". Each queue can have only ` +
331
+ `one worker consumer — delete the existing one ` +
332
+ `or update scriptName to match before redeploying.`,
333
+ );
334
+ }
335
+ return match;
336
+ }),
337
+ ),
338
+ );
339
+ consumerId = created.consumerId!;
340
+ } else {
341
+ consumerId = observed.consumerId;
342
+ }
343
+
344
+ // Sync — Cloudflare replaces all mutable fields on
345
+ // updateConsumer, so always issue this so adoption converges
346
+ // and settings drift gets corrected on every reconcile.
347
+ // updateConsumer hits the same "queue handler missing" race
348
+ // window as create when the worker is mid-upload, so apply
349
+ // the same bounded retry.
350
+ yield* queues
351
+ .updateConsumer({
352
+ accountId: acct,
353
+ queueId,
354
+ consumerId,
355
+ scriptName: news.scriptName,
356
+ type: "worker",
357
+ settings: news.settings,
358
+ deadLetterQueue: news.deadLetterQueue,
359
+ })
360
+ .pipe(
361
+ Effect.retry({
362
+ while: (e) => e._tag === "QueueHandlerMissing",
363
+ schedule: queueHandlerReadinessSchedule,
364
+ }),
365
+ );
366
+
367
+ yield* queues.getConsumer({ accountId: acct, queueId, consumerId }).pipe(
368
+ Effect.flatMap((fetched) =>
369
+ toObserved(fetched)?.script === news.scriptName
370
+ ? Effect.void
371
+ : Effect.fail("ScriptUnbound" as const),
372
+ ),
373
+ Effect.catchTag("ConsumerNotFound", () =>
374
+ Effect.fail("ScriptUnbound" as const),
375
+ ),
376
+ Effect.retry({
377
+ while: (e) => e === "ScriptUnbound",
378
+ schedule: queueHandlerReadinessSchedule,
379
+ }),
380
+ );
381
+
382
+ return {
383
+ consumerId,
384
+ queueId,
385
+ scriptName: news.scriptName!,
386
+ accountId: acct,
387
+ deadLetterQueue: news.deadLetterQueue,
388
+ settings: news.settings,
389
+ };
390
+ }),
391
+ delete: Effect.fn(function* ({ output }) {
392
+ // If the consumerId is a `dev:` ID, the resource only exists locally, so we don't need to delete it from Cloudflare.
393
+ if (!isLiveId(output.consumerId)) return;
394
+
395
+ yield* queues
396
+ .deleteConsumer({
397
+ accountId: output.accountId,
398
+ queueId: output.queueId,
399
+ consumerId: output.consumerId,
400
+ })
401
+ .pipe(Effect.catchTag("ConsumerNotFound", () => Effect.void));
402
+
403
+ // Block until Cloudflare's worker subsystem stops claiming
404
+ // the script as a queue consumer. Without this the
405
+ // sibling Worker.delete races on `QueueConsumerConflict`
406
+ // (code 10064) — `deleteConsumer` returns success on the
407
+ // queue subsystem before the script-side view propagates.
408
+ yield* queues
409
+ .getConsumer({
410
+ accountId: output.accountId,
411
+ queueId: output.queueId,
412
+ consumerId: output.consumerId,
413
+ })
414
+ .pipe(
415
+ Effect.flatMap(() => Effect.fail("still-attached" as const)),
416
+ Effect.catchTag("ConsumerNotFound", () => Effect.void),
417
+ Effect.retry({
418
+ while: (e) => e === "still-attached",
419
+ schedule: Schedule.spaced("1 second").pipe(
420
+ Schedule.both(Schedule.recurs(30)),
421
+ ),
422
+ }),
423
+ Effect.ignore,
424
+ );
425
+ }),
426
+ read: Effect.fn(function* ({ output }) {
427
+ if (output?.consumerId) {
428
+ const fetched = yield* queues
429
+ .getConsumer({
430
+ accountId: output.accountId,
431
+ queueId: output.queueId,
432
+ consumerId: output.consumerId,
433
+ })
434
+ .pipe(
435
+ Effect.catchTag("ConsumerNotFound", () =>
436
+ Effect.succeed(undefined),
437
+ ),
438
+ );
439
+ if (fetched) {
440
+ return {
441
+ consumerId: fetched.consumerId!,
442
+ queueId: output.queueId,
443
+ scriptName:
444
+ ("scriptName" in fetched && typeof fetched.scriptName === "string"
445
+ ? fetched.scriptName
446
+ : output.scriptName) ?? output.scriptName,
447
+ accountId: output.accountId,
448
+ deadLetterQueue: output.deadLetterQueue,
449
+ settings: output.settings,
450
+ };
451
+ }
452
+ }
453
+ // Fallback: a state loss can leave us without a consumerId
454
+ // even though the consumer is still alive on Cloudflare. The
455
+ // queue allows only one worker consumer, so finding it via
456
+ // listConsumers is unambiguous.
457
+ if (output?.queueId && output?.accountId) {
458
+ const match = yield* findWorkerConsumer(
459
+ output.accountId,
460
+ output.queueId,
461
+ );
462
+ if (match) {
463
+ return {
464
+ consumerId: match.consumerId,
465
+ queueId: output.queueId,
466
+ scriptName: match.script ?? output.scriptName,
467
+ accountId: output.accountId,
468
+ deadLetterQueue: output.deadLetterQueue,
469
+ settings: output.settings,
470
+ };
471
+ }
472
+ }
473
+ return undefined;
474
+ }),
475
+ });
476
+
114
477
  type ObservedConsumer = {
115
478
  consumerId: string;
116
479
  script: string | undefined;
@@ -125,339 +488,82 @@ const toObserved = (c: {
125
488
  ? { consumerId: c.consumerId, script: c.scriptName ?? undefined }
126
489
  : undefined;
127
490
 
128
- export const QueueConsumerProvider = () =>
129
- Provider.effect(
491
+ // ~60s budget — Worker reconcile uploads typically land in 2–10s,
492
+ // but a fresh container/asset deploy can stretch that.
493
+ const queueHandlerReadinessSchedule = Schedule.spaced("2 seconds").pipe(
494
+ Schedule.both(Schedule.recurs(30)),
495
+ );
496
+
497
+ export const QueueConsumerProviderLocal = () =>
498
+ RpcProvider.effect(
130
499
  QueueConsumer,
500
+ LOCAL_ENTRY_URL,
131
501
  Effect.gen(function* () {
132
- const { accountId } = yield* CloudflareEnvironment;
133
- const createConsumer = yield* queues.createConsumer;
134
- const getConsumer = yield* queues.getConsumer;
135
- const updateConsumer = yield* queues.updateConsumer;
136
- const deleteConsumer = yield* queues.deleteConsumer;
137
-
138
- // Cloudflare allows a single Worker consumer per queue, so the
139
- // first match in the paginated stream is the only one. Using
140
- // `.items` defeats single-page lookups that would otherwise
141
- // miss late-arriving consumers under eventual consistency.
142
- const findWorkerConsumer = (acct: string, queueId: string) =>
143
- queues.listConsumers.items({ accountId: acct, queueId }).pipe(
144
- Stream.map(toObserved),
145
- Stream.filter((c): c is ObservedConsumer => c !== undefined),
146
- Stream.runHead,
147
- Effect.map(Option.getOrUndefined),
148
- );
149
-
502
+ const localRuntimeState = yield* LocalRuntimeState;
150
503
  return {
151
- stables: ["consumerId", "accountId"],
152
- diff: Effect.fn(function* ({ olds, news, output }) {
504
+ diff: Effect.fn(function* ({ news, output }) {
505
+ const { accountId } = yield* yield* CloudflareEnvironment;
506
+ if (!output) return { action: "update" };
153
507
  if (!isResolved(news)) return undefined;
154
- if ((output?.accountId ?? accountId) !== accountId) {
155
- return { action: "replace" } as const;
156
- }
157
- // Queue change requires replacement — consumerId is bound
158
- // to a queue and the API has no "move consumer" verb.
159
- if (output?.queueId && news.queueId !== output.queueId) {
160
- return { action: "replace", deleteFirst: true } as const;
508
+ if (
509
+ output.queueId !== news.queueId ||
510
+ output.accountId !== accountId
511
+ ) {
512
+ return { action: "replace" };
161
513
  }
162
- // Settings / DLQ / script drift is an update. We DON'T
163
- // escalate scriptName changes to `replace` because the
164
- // engine resolves cross-resource Output<string> refs (a
165
- // sibling Worker's `workerName`) lazily — when the upstream
166
- // Worker is created in the same plan, `news` is partially
167
- // unresolved at diff time and `isResolved(news)` short-
168
- // circuits up top. Falling through to "update" lets the
169
- // engine call reconcile with fully-resolved `news`, where
170
- // we detect script drift and rebuild the consumer in
171
- // place (Cloudflare's PUT silently ignores `script_name`
172
- // changes, so reconcile does delete-then-create).
173
514
  if (
174
- JSON.stringify(olds.settings ?? {}) !==
515
+ JSON.stringify(output.settings ?? {}) !==
175
516
  JSON.stringify(news.settings ?? {}) ||
176
- (olds.deadLetterQueue ?? undefined) !==
177
- (news.deadLetterQueue ?? undefined) ||
178
- (output?.scriptName !== undefined &&
179
- news.scriptName !== output.scriptName)
517
+ output.scriptName !== news.scriptName ||
518
+ output.deadLetterQueue !== news.deadLetterQueue
180
519
  ) {
181
- return { action: "update" } as const;
520
+ return { action: "update" };
182
521
  }
522
+ // If the resource is a noop, add it to the local runtime state so it's available downstream.
523
+ // We do it here instead of in the reconcile function so it doesn't appear as an update.
524
+ MutableHashMap.set(
525
+ localRuntimeState.queueConsumers,
526
+ output.consumerId,
527
+ output,
528
+ );
529
+ return { action: "noop" };
530
+ }),
531
+ read: Effect.fn(function* ({ output }) {
532
+ if (!output?.consumerId) return undefined;
533
+ return MutableHashMap.get(
534
+ localRuntimeState.queueConsumers,
535
+ output.consumerId,
536
+ ).pipe(Option.getOrUndefined);
183
537
  }),
184
538
  reconcile: Effect.fn(function* ({ news, output }) {
185
- const acct = output?.accountId ?? accountId;
186
- const queueId =
187
- output?.queueId ?? (news.queueId as unknown as string);
188
-
189
- // Observe — prefer the cached consumerId, then fall back to
190
- // listConsumers (paginated) to recover from out-of-band
191
- // deletes or partial state-persistence failures. Track
192
- // whether the observation came from the cached id or the
193
- // list scan: a different-script worker consumer found via
194
- // the list scan is potentially foreign (state was lost,
195
- // someone else attached the consumer), and silently
196
- // updating it could clobber another team's wiring.
197
- let observed: ObservedConsumer | undefined;
198
- let owned = false;
199
- if (output?.consumerId) {
200
- const fetched = yield* getConsumer({
201
- accountId: acct,
202
- queueId,
203
- consumerId: output.consumerId,
204
- }).pipe(
205
- Effect.catchTag("ConsumerNotFound", () =>
206
- Effect.succeed(undefined),
207
- ),
208
- );
209
- if (fetched) {
210
- observed = toObserved(fetched);
211
- owned = observed !== undefined;
212
- }
213
- }
214
- if (!observed) {
215
- observed = yield* findWorkerConsumer(acct, queueId);
216
- }
217
-
218
- // Owned consumer pointing at a different script: rebuild
219
- // it in place. Cloudflare's PUT consumer silently ignores
220
- // `script_name` changes on existing consumers (the live
221
- // record stays pinned to the original worker), and the
222
- // platform allows only one Worker consumer per queue, so
223
- // the only path to re-point is delete-then-create.
224
- if (
225
- owned &&
226
- observed &&
227
- observed.script !== undefined &&
228
- observed.script !== news.scriptName
229
- ) {
230
- yield* deleteConsumer({
231
- accountId: acct,
232
- queueId,
233
- consumerId: observed.consumerId,
234
- }).pipe(Effect.catchTag("ConsumerNotFound", () => Effect.void));
235
- // Wait for Cloudflare's worker subsystem to drop its
236
- // claim on the old script so createConsumer below
237
- // doesn't race the queue↔script propagation lag.
238
- yield* getConsumer({
239
- accountId: acct,
240
- queueId,
241
- consumerId: observed.consumerId,
242
- }).pipe(
243
- Effect.flatMap(() => Effect.fail("still-attached" as const)),
244
- Effect.catchTag("ConsumerNotFound", () => Effect.void),
245
- Effect.retry({
246
- while: (e) => e === "still-attached",
247
- schedule: Schedule.spaced("1 second").pipe(
248
- Schedule.both(Schedule.recurs(30)),
249
- ),
250
- }),
251
- Effect.ignore,
252
- );
253
- observed = undefined;
254
- owned = false;
255
- }
256
-
257
- // Refuse to take over a foreign consumer on the state-loss
258
- // path. With `owned=false` we found this via the list scan
259
- // and the script mismatch means it belongs to another
260
- // resource or was created out-of-band — silent adoption
261
- // would clobber that.
262
- if (
263
- observed &&
264
- !owned &&
265
- observed.script !== undefined &&
266
- observed.script !== news.scriptName
267
- ) {
268
- return yield* Effect.die(
269
- `Cloudflare queue "${queueId}" already has a worker ` +
270
- `consumer for script "${observed.script}", but this ` +
271
- `resource is configured for "${news.scriptName}" and ` +
272
- `local state for the consumer was missing. Each queue ` +
273
- `can have only one worker consumer — delete the ` +
274
- `existing one, update scriptName to match, or restore ` +
275
- `the consumer's state entry before redeploying.`,
276
- );
277
- }
278
-
279
- // Ensure — create if missing. ConsumerAlreadyExists is the
280
- // race signal: another reconcile or peer beat us to it.
281
- // Re-run the lookup; the paginated stream tolerates the
282
- // single-page eventual-consistency window the previous
283
- // implementation missed.
284
- let consumerId: string;
285
- if (!observed) {
286
- const created = yield* createConsumer({
287
- accountId: acct,
288
- queueId,
289
- scriptName: news.scriptName,
290
- type: "worker",
291
- deadLetterQueue: news.deadLetterQueue,
292
- settings: news.settings,
293
- }).pipe(
294
- // The sibling Worker resource pre-creates a placeholder
295
- // script with no `queue` handler; Cloudflare returns
296
- // code 11001 until the real reconcile uploads the
297
- // handler. Retry until the upload propagates (capped),
298
- // then surface a real failure if it never does.
299
- Effect.tapError((e) =>
300
- e._tag === "QueueHandlerMissing"
301
- ? Effect.logDebug(
302
- `QueueConsumer create: worker ` +
303
- `"${news.scriptName}" has no queue handler ` +
304
- `yet (code 11001), retrying`,
305
- )
306
- : Effect.void,
307
- ),
308
- Effect.retry({
309
- while: (e) => e._tag === "QueueHandlerMissing",
310
- schedule: queueHandlerReadinessSchedule,
311
- }),
312
- Effect.catchTag("ConsumerAlreadyExists", (cause) =>
313
- Effect.gen(function* () {
314
- const match = yield* findWorkerConsumer(acct, queueId);
315
- if (!match) {
316
- return yield* Effect.die(
317
- `Cloudflare reported a worker consumer already ` +
318
- `exists on queue "${queueId}", but listConsumers ` +
319
- `returned none. Retry the deploy; if this ` +
320
- `persists, the queue is in an inconsistent ` +
321
- `state. Underlying error: ${cause.message}`,
322
- );
323
- }
324
- if (
325
- match.script !== undefined &&
326
- match.script !== news.scriptName
327
- ) {
328
- return yield* Effect.die(
329
- `Cloudflare queue "${queueId}" already has a ` +
330
- `worker consumer for script "${match.script}", ` +
331
- `but this resource is configured for ` +
332
- `"${news.scriptName}". Each queue can have only ` +
333
- `one worker consumer — delete the existing one ` +
334
- `or update scriptName to match before redeploying.`,
335
- );
336
- }
337
- return match;
338
- }),
339
- ),
340
- );
341
- consumerId = created.consumerId!;
342
- } else {
343
- consumerId = observed.consumerId;
344
- }
345
-
346
- // Sync — Cloudflare replaces all mutable fields on
347
- // updateConsumer, so always issue this so adoption converges
348
- // and settings drift gets corrected on every reconcile.
349
- // updateConsumer hits the same "queue handler missing" race
350
- // window as create when the worker is mid-upload, so apply
351
- // the same bounded retry.
352
- yield* updateConsumer({
353
- accountId: acct,
354
- queueId,
355
- consumerId,
539
+ const { accountId } = yield* yield* CloudflareEnvironment;
540
+ const consumer: QueueConsumer["Attributes"] = {
541
+ consumerId: output?.consumerId ?? `dev:${crypto.randomUUID()}`,
542
+ queueId: news.queueId,
356
543
  scriptName: news.scriptName,
357
- type: "worker",
358
- settings: news.settings,
359
544
  deadLetterQueue: news.deadLetterQueue,
360
- }).pipe(
361
- Effect.retry({
362
- while: (e) => e._tag === "QueueHandlerMissing",
363
- schedule: queueHandlerReadinessSchedule,
364
- }),
365
- );
366
-
367
- yield* getConsumer({ accountId: acct, queueId, consumerId }).pipe(
368
- Effect.flatMap((fetched) =>
369
- toObserved(fetched)?.script === news.scriptName
370
- ? Effect.void
371
- : Effect.fail("ScriptUnbound" as const),
372
- ),
373
- Effect.catchTag("ConsumerNotFound", () =>
374
- Effect.fail("ScriptUnbound" as const),
375
- ),
376
- Effect.retry({
377
- while: (e) => e === "ScriptUnbound",
378
- schedule: queueHandlerReadinessSchedule,
379
- }),
380
- );
381
-
382
- return {
383
- consumerId,
384
- queueId,
385
- scriptName: news.scriptName!,
386
- accountId: acct,
545
+ accountId,
546
+ settings: news.settings,
387
547
  };
548
+ MutableHashMap.set(
549
+ localRuntimeState.queueConsumers,
550
+ consumer.consumerId,
551
+ consumer,
552
+ );
553
+ return consumer;
388
554
  }),
389
555
  delete: Effect.fn(function* ({ output }) {
390
- yield* deleteConsumer({
391
- accountId: output.accountId,
392
- queueId: output.queueId,
393
- consumerId: output.consumerId,
394
- }).pipe(Effect.catchTag("ConsumerNotFound", () => Effect.void));
395
-
396
- // Block until Cloudflare's worker subsystem stops claiming
397
- // the script as a queue consumer. Without this the
398
- // sibling Worker.delete races on `QueueConsumerConflict`
399
- // (code 10064) — `deleteConsumer` returns success on the
400
- // queue subsystem before the script-side view propagates.
401
- yield* getConsumer({
402
- accountId: output.accountId,
403
- queueId: output.queueId,
404
- consumerId: output.consumerId,
405
- }).pipe(
406
- Effect.flatMap(() => Effect.fail("still-attached" as const)),
407
- Effect.catchTag("ConsumerNotFound", () => Effect.void),
408
- Effect.retry({
409
- while: (e) => e === "still-attached",
410
- schedule: Schedule.spaced("1 second").pipe(
411
- Schedule.both(Schedule.recurs(30)),
412
- ),
413
- }),
414
- Effect.ignore,
556
+ MutableHashMap.remove(
557
+ localRuntimeState.queueConsumers,
558
+ output.consumerId,
415
559
  );
416
560
  }),
417
- read: Effect.fn(function* ({ output }) {
418
- if (output?.consumerId) {
419
- const fetched = yield* getConsumer({
420
- accountId: output.accountId,
421
- queueId: output.queueId,
422
- consumerId: output.consumerId,
423
- }).pipe(
424
- Effect.catchTag("ConsumerNotFound", () =>
425
- Effect.succeed(undefined),
426
- ),
427
- );
428
- if (fetched) {
429
- return {
430
- consumerId: fetched.consumerId!,
431
- queueId: output.queueId,
432
- scriptName:
433
- ("scriptName" in fetched &&
434
- typeof fetched.scriptName === "string"
435
- ? fetched.scriptName
436
- : output.scriptName) ?? output.scriptName,
437
- accountId: output.accountId,
438
- };
439
- }
440
- }
441
- // Fallback: a state loss can leave us without a consumerId
442
- // even though the consumer is still alive on Cloudflare. The
443
- // queue allows only one worker consumer, so finding it via
444
- // listConsumers is unambiguous.
445
- if (output?.queueId && output?.accountId) {
446
- const match = yield* findWorkerConsumer(
447
- output.accountId,
448
- output.queueId,
449
- );
450
- if (match) {
451
- return {
452
- consumerId: match.consumerId,
453
- queueId: output.queueId,
454
- scriptName: match.script ?? output.scriptName,
455
- accountId: output.accountId,
456
- };
457
- }
458
- }
459
- return undefined;
460
- }),
461
561
  };
462
562
  }),
463
563
  );
564
+
565
+ export const QueueConsumerProvider = () =>
566
+ ProviderLayer.select({
567
+ local: () => QueueConsumerProviderLocal(),
568
+ live: () => QueueConsumerProviderLive(),
569
+ });