alchemy 2.0.0-beta.61 → 2.0.0-beta.63

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 (1017) hide show
  1. package/README.md +26 -11
  2. package/bin/exec.js +2023 -75
  3. package/bin/exec.js.map +1 -1
  4. package/lib/AWS/ACM/Certificate.d.ts.map +1 -1
  5. package/lib/AWS/ACM/Certificate.js +16 -4
  6. package/lib/AWS/ACM/Certificate.js.map +1 -1
  7. package/lib/AWS/ApiGateway/common.d.ts.map +1 -1
  8. package/lib/AWS/ApiGateway/common.js +6 -3
  9. package/lib/AWS/ApiGateway/common.js.map +1 -1
  10. package/lib/AWS/AuthProvider.d.ts.map +1 -1
  11. package/lib/AWS/AuthProvider.js +2 -2
  12. package/lib/AWS/AuthProvider.js.map +1 -1
  13. package/lib/AWS/AutoScaling/AutoScalingGroup.d.ts.map +1 -1
  14. package/lib/AWS/AutoScaling/AutoScalingGroup.js +8 -2
  15. package/lib/AWS/AutoScaling/AutoScalingGroup.js.map +1 -1
  16. package/lib/AWS/Bootstrap.d.ts.map +1 -1
  17. package/lib/AWS/Bootstrap.js +5 -2
  18. package/lib/AWS/Bootstrap.js.map +1 -1
  19. package/lib/AWS/CloudFront/Distribution.d.ts.map +1 -1
  20. package/lib/AWS/CloudFront/Distribution.js +20 -5
  21. package/lib/AWS/CloudFront/Distribution.js.map +1 -1
  22. package/lib/AWS/CloudFront/Function.js +5 -2
  23. package/lib/AWS/CloudFront/Function.js.map +1 -1
  24. package/lib/AWS/CloudFront/Invalidation.d.ts.map +1 -1
  25. package/lib/AWS/CloudFront/Invalidation.js +4 -1
  26. package/lib/AWS/CloudFront/Invalidation.js.map +1 -1
  27. package/lib/AWS/CloudFront/KvEntries.d.ts.map +1 -1
  28. package/lib/AWS/CloudFront/KvEntries.js +4 -1
  29. package/lib/AWS/CloudFront/KvEntries.js.map +1 -1
  30. package/lib/AWS/CloudFront/KvRoutesUpdate.d.ts.map +1 -1
  31. package/lib/AWS/CloudFront/KvRoutesUpdate.js +8 -2
  32. package/lib/AWS/CloudFront/KvRoutesUpdate.js.map +1 -1
  33. package/lib/AWS/CloudFront/VpcOrigin.d.ts.map +1 -1
  34. package/lib/AWS/CloudFront/VpcOrigin.js +12 -3
  35. package/lib/AWS/CloudFront/VpcOrigin.js.map +1 -1
  36. package/lib/AWS/CloudFront/common.d.ts.map +1 -1
  37. package/lib/AWS/CloudFront/common.js +5 -2
  38. package/lib/AWS/CloudFront/common.js.map +1 -1
  39. package/lib/AWS/CloudWatch/AnomalyDetector.d.ts.map +1 -1
  40. package/lib/AWS/CloudWatch/AnomalyDetector.js +4 -1
  41. package/lib/AWS/CloudWatch/AnomalyDetector.js.map +1 -1
  42. package/lib/AWS/CloudWatch/common.d.ts.map +1 -1
  43. package/lib/AWS/CloudWatch/common.js +1 -1
  44. package/lib/AWS/CloudWatch/common.js.map +1 -1
  45. package/lib/AWS/DynamoDB/Table.d.ts.map +1 -1
  46. package/lib/AWS/DynamoDB/Table.js +53 -20
  47. package/lib/AWS/DynamoDB/Table.js.map +1 -1
  48. package/lib/AWS/EC2/EIP.d.ts.map +1 -1
  49. package/lib/AWS/EC2/EIP.js +4 -1
  50. package/lib/AWS/EC2/EIP.js.map +1 -1
  51. package/lib/AWS/EC2/EgressOnlyInternetGateway.d.ts.map +1 -1
  52. package/lib/AWS/EC2/EgressOnlyInternetGateway.js +4 -2
  53. package/lib/AWS/EC2/EgressOnlyInternetGateway.js.map +1 -1
  54. package/lib/AWS/EC2/Instance.d.ts.map +1 -1
  55. package/lib/AWS/EC2/Instance.js +12 -3
  56. package/lib/AWS/EC2/Instance.js.map +1 -1
  57. package/lib/AWS/EC2/InternetGateway.d.ts.map +1 -1
  58. package/lib/AWS/EC2/InternetGateway.js +12 -5
  59. package/lib/AWS/EC2/InternetGateway.js.map +1 -1
  60. package/lib/AWS/EC2/NatGateway.js +2 -4
  61. package/lib/AWS/EC2/NatGateway.js.map +1 -1
  62. package/lib/AWS/EC2/NetworkAcl.d.ts.map +1 -1
  63. package/lib/AWS/EC2/NetworkAcl.js +4 -1
  64. package/lib/AWS/EC2/NetworkAcl.js.map +1 -1
  65. package/lib/AWS/EC2/NetworkAclEntry.d.ts.map +1 -1
  66. package/lib/AWS/EC2/NetworkAclEntry.js +4 -1
  67. package/lib/AWS/EC2/NetworkAclEntry.js.map +1 -1
  68. package/lib/AWS/EC2/RouteTable.d.ts.map +1 -1
  69. package/lib/AWS/EC2/RouteTable.js +8 -6
  70. package/lib/AWS/EC2/RouteTable.js.map +1 -1
  71. package/lib/AWS/EC2/RouteTableAssociation.js +2 -5
  72. package/lib/AWS/EC2/RouteTableAssociation.js.map +1 -1
  73. package/lib/AWS/EC2/SecurityGroup.d.ts.map +1 -1
  74. package/lib/AWS/EC2/SecurityGroup.js +8 -3
  75. package/lib/AWS/EC2/SecurityGroup.js.map +1 -1
  76. package/lib/AWS/EC2/Subnet.d.ts.map +1 -1
  77. package/lib/AWS/EC2/Subnet.js +10 -6
  78. package/lib/AWS/EC2/Subnet.js.map +1 -1
  79. package/lib/AWS/EC2/Vpc.d.ts.map +1 -1
  80. package/lib/AWS/EC2/Vpc.js +7 -7
  81. package/lib/AWS/EC2/Vpc.js.map +1 -1
  82. package/lib/AWS/EC2/VpcEndpoint.js +2 -4
  83. package/lib/AWS/EC2/VpcEndpoint.js.map +1 -1
  84. package/lib/AWS/EC2/hosted.d.ts.map +1 -1
  85. package/lib/AWS/EC2/hosted.js +2 -1
  86. package/lib/AWS/EC2/hosted.js.map +1 -1
  87. package/lib/AWS/ECS/Service.d.ts.map +1 -1
  88. package/lib/AWS/ECS/Service.js +4 -1
  89. package/lib/AWS/ECS/Service.js.map +1 -1
  90. package/lib/AWS/ECS/Task.d.ts.map +1 -1
  91. package/lib/AWS/ECS/Task.js +2 -1
  92. package/lib/AWS/ECS/Task.js.map +1 -1
  93. package/lib/AWS/EKS/Addon.js +8 -2
  94. package/lib/AWS/EKS/Addon.js.map +1 -1
  95. package/lib/AWS/EKS/Cluster.d.ts.map +1 -1
  96. package/lib/AWS/EKS/Cluster.js +4 -1
  97. package/lib/AWS/EKS/Cluster.js.map +1 -1
  98. package/lib/AWS/ELBv2/TargetGroup.d.ts.map +1 -1
  99. package/lib/AWS/ELBv2/TargetGroup.js +4 -1
  100. package/lib/AWS/ELBv2/TargetGroup.js.map +1 -1
  101. package/lib/AWS/ELBv2/TrustStore.d.ts.map +1 -1
  102. package/lib/AWS/ELBv2/TrustStore.js +4 -1
  103. package/lib/AWS/ELBv2/TrustStore.js.map +1 -1
  104. package/lib/AWS/IAM/SAMLProvider.js +4 -1
  105. package/lib/AWS/IAM/SAMLProvider.js.map +1 -1
  106. package/lib/AWS/IdentityCenter/AccountAssignment.js +8 -2
  107. package/lib/AWS/IdentityCenter/AccountAssignment.js.map +1 -1
  108. package/lib/AWS/IdentityCenter/common.d.ts.map +1 -1
  109. package/lib/AWS/IdentityCenter/common.js +1 -1
  110. package/lib/AWS/IdentityCenter/common.js.map +1 -1
  111. package/lib/AWS/KMS/Alias.js +4 -1
  112. package/lib/AWS/KMS/Alias.js.map +1 -1
  113. package/lib/AWS/KMS/Key.js +4 -1
  114. package/lib/AWS/KMS/Key.js.map +1 -1
  115. package/lib/AWS/Kinesis/Stream.d.ts.map +1 -1
  116. package/lib/AWS/Kinesis/Stream.js +2 -2
  117. package/lib/AWS/Kinesis/Stream.js.map +1 -1
  118. package/lib/AWS/Kinesis/StreamConsumer.d.ts.map +1 -1
  119. package/lib/AWS/Kinesis/StreamConsumer.js +7 -4
  120. package/lib/AWS/Kinesis/StreamConsumer.js.map +1 -1
  121. package/lib/AWS/Lambda/Alias.d.ts.map +1 -1
  122. package/lib/AWS/Lambda/Alias.js +4 -1
  123. package/lib/AWS/Lambda/Alias.js.map +1 -1
  124. package/lib/AWS/Lambda/EventInvokeConfig.d.ts.map +1 -1
  125. package/lib/AWS/Lambda/EventInvokeConfig.js +2 -2
  126. package/lib/AWS/Lambda/EventInvokeConfig.js.map +1 -1
  127. package/lib/AWS/Lambda/EventSourceMapping.d.ts.map +1 -1
  128. package/lib/AWS/Lambda/EventSourceMapping.js +10 -4
  129. package/lib/AWS/Lambda/EventSourceMapping.js.map +1 -1
  130. package/lib/AWS/Lambda/Function.d.ts +16 -1
  131. package/lib/AWS/Lambda/Function.d.ts.map +1 -1
  132. package/lib/AWS/Lambda/Function.js +113 -65
  133. package/lib/AWS/Lambda/Function.js.map +1 -1
  134. package/lib/AWS/Lambda/MicrovmProvider.d.ts.map +1 -1
  135. package/lib/AWS/Lambda/MicrovmProvider.js +13 -5
  136. package/lib/AWS/Lambda/MicrovmProvider.js.map +1 -1
  137. package/lib/AWS/Lambda/MicrovmRuntimeContext.d.ts.map +1 -1
  138. package/lib/AWS/Lambda/MicrovmRuntimeContext.js +9 -21
  139. package/lib/AWS/Lambda/MicrovmRuntimeContext.js.map +1 -1
  140. package/lib/AWS/Lambda/NetworkConnector.js +13 -5
  141. package/lib/AWS/Lambda/NetworkConnector.js.map +1 -1
  142. package/lib/AWS/Lambda/RuntimeExtension.d.ts +27 -0
  143. package/lib/AWS/Lambda/RuntimeExtension.d.ts.map +1 -0
  144. package/lib/AWS/Lambda/RuntimeExtension.js +49 -0
  145. package/lib/AWS/Lambda/RuntimeExtension.js.map +1 -0
  146. package/lib/AWS/Organizations/Account.js +5 -2
  147. package/lib/AWS/Organizations/Account.js.map +1 -1
  148. package/lib/AWS/Organizations/common.d.ts.map +1 -1
  149. package/lib/AWS/Organizations/common.js +1 -1
  150. package/lib/AWS/Organizations/common.js.map +1 -1
  151. package/lib/AWS/Providers.js +14 -12
  152. package/lib/AWS/Providers.js.map +1 -1
  153. package/lib/AWS/RDS/DBCluster.d.ts.map +1 -1
  154. package/lib/AWS/RDS/DBCluster.js +8 -2
  155. package/lib/AWS/RDS/DBCluster.js.map +1 -1
  156. package/lib/AWS/RDS/DBInstance.d.ts.map +1 -1
  157. package/lib/AWS/RDS/DBInstance.js +8 -2
  158. package/lib/AWS/RDS/DBInstance.js.map +1 -1
  159. package/lib/AWS/RDS/DBProxy.d.ts.map +1 -1
  160. package/lib/AWS/RDS/DBProxy.js +4 -1
  161. package/lib/AWS/RDS/DBProxy.js.map +1 -1
  162. package/lib/AWS/RDS/DBProxyEndpoint.d.ts.map +1 -1
  163. package/lib/AWS/RDS/DBProxyEndpoint.js +4 -1
  164. package/lib/AWS/RDS/DBProxyEndpoint.js.map +1 -1
  165. package/lib/AWS/Route53/HealthCheck.d.ts.map +1 -1
  166. package/lib/AWS/Route53/HealthCheck.js +8 -2
  167. package/lib/AWS/Route53/HealthCheck.js.map +1 -1
  168. package/lib/AWS/Route53/HostedZone.d.ts.map +1 -1
  169. package/lib/AWS/Route53/HostedZone.js +8 -2
  170. package/lib/AWS/Route53/HostedZone.js.map +1 -1
  171. package/lib/AWS/Route53/Record.d.ts.map +1 -1
  172. package/lib/AWS/Route53/Record.js +4 -1
  173. package/lib/AWS/Route53/Record.js.map +1 -1
  174. package/lib/AWS/S3/Bucket.d.ts.map +1 -1
  175. package/lib/AWS/S3/Bucket.js +5 -2
  176. package/lib/AWS/S3/Bucket.js.map +1 -1
  177. package/lib/AWS/SQS/Queue.d.ts.map +1 -1
  178. package/lib/AWS/SQS/Queue.js +25 -7
  179. package/lib/AWS/SQS/Queue.js.map +1 -1
  180. package/lib/AWS/StateStore/State.js +5 -2
  181. package/lib/AWS/StateStore/State.js.map +1 -1
  182. package/lib/AWS/Website/AssetDeployment.js +5 -2
  183. package/lib/AWS/Website/AssetDeployment.js.map +1 -1
  184. package/lib/Action.d.ts +8 -0
  185. package/lib/Action.d.ts.map +1 -1
  186. package/lib/Action.js +16 -5
  187. package/lib/Action.js.map +1 -1
  188. package/lib/ActionRuntimeContext.d.ts +14 -0
  189. package/lib/ActionRuntimeContext.d.ts.map +1 -0
  190. package/lib/ActionRuntimeContext.js +56 -0
  191. package/lib/ActionRuntimeContext.js.map +1 -0
  192. package/lib/Apply.d.ts.map +1 -1
  193. package/lib/Apply.js +48 -6
  194. package/lib/Apply.js.map +1 -1
  195. package/lib/Auth/AuthProvider.d.ts +10 -0
  196. package/lib/Auth/AuthProvider.d.ts.map +1 -1
  197. package/lib/Auth/AuthProvider.js +10 -0
  198. package/lib/Auth/AuthProvider.js.map +1 -1
  199. package/lib/Auth/Lock.d.ts.map +1 -1
  200. package/lib/Auth/Lock.js +5 -2
  201. package/lib/Auth/Lock.js.map +1 -1
  202. package/lib/Axiom/AuthProvider.d.ts.map +1 -1
  203. package/lib/Axiom/AuthProvider.js +1 -1
  204. package/lib/Axiom/AuthProvider.js.map +1 -1
  205. package/lib/Bundle/PurePlugin.d.ts.map +1 -1
  206. package/lib/Bundle/PurePlugin.js +26 -1
  207. package/lib/Bundle/PurePlugin.js.map +1 -1
  208. package/lib/Bundle/Vite.d.ts +3 -1
  209. package/lib/Bundle/Vite.d.ts.map +1 -1
  210. package/lib/Bundle/Vite.js +38 -13
  211. package/lib/Bundle/Vite.js.map +1 -1
  212. package/lib/Cli/LoggingCli.d.ts.map +1 -1
  213. package/lib/Cli/LoggingCli.js +7 -4
  214. package/lib/Cli/LoggingCli.js.map +1 -1
  215. package/lib/Cli/commands/_shared.d.ts +74 -5
  216. package/lib/Cli/commands/_shared.d.ts.map +1 -1
  217. package/lib/Cli/commands/_shared.js +84 -2
  218. package/lib/Cli/commands/_shared.js.map +1 -1
  219. package/lib/Cli/commands/login.d.ts +7 -3
  220. package/lib/Cli/commands/login.d.ts.map +1 -1
  221. package/lib/Cli/commands/login.js +71 -24
  222. package/lib/Cli/commands/login.js.map +1 -1
  223. package/lib/Cli/commands/logs.d.ts.map +1 -1
  224. package/lib/Cli/commands/logs.js +1 -0
  225. package/lib/Cli/commands/logs.js.map +1 -1
  226. package/lib/Cli/commands/nuke.d.ts.map +1 -1
  227. package/lib/Cli/commands/nuke.js +15 -24
  228. package/lib/Cli/commands/nuke.js.map +1 -1
  229. package/lib/Cli/commands/profile.d.ts +23 -1
  230. package/lib/Cli/commands/profile.d.ts.map +1 -1
  231. package/lib/Cli/commands/profile.js +46 -22
  232. package/lib/Cli/commands/profile.js.map +1 -1
  233. package/lib/Cli/commands/tail.d.ts.map +1 -1
  234. package/lib/Cli/commands/tail.js +1 -0
  235. package/lib/Cli/commands/tail.js.map +1 -1
  236. package/lib/Cloudflare/AI/GatewayDynamicRouting.d.ts.map +1 -1
  237. package/lib/Cloudflare/AI/GatewayDynamicRouting.js +31 -2
  238. package/lib/Cloudflare/AI/GatewayDynamicRouting.js.map +1 -1
  239. package/lib/Cloudflare/AI/LanguageModel.js +21 -4
  240. package/lib/Cloudflare/AI/LanguageModel.js.map +1 -1
  241. package/lib/Cloudflare/AI/QuerySearchLocal.d.ts +37 -0
  242. package/lib/Cloudflare/AI/QuerySearchLocal.d.ts.map +1 -0
  243. package/lib/Cloudflare/AI/QuerySearchLocal.js +53 -0
  244. package/lib/Cloudflare/AI/QuerySearchLocal.js.map +1 -0
  245. package/lib/Cloudflare/AI/QuerySearchNamespaceLocal.d.ts +35 -0
  246. package/lib/Cloudflare/AI/QuerySearchNamespaceLocal.d.ts.map +1 -0
  247. package/lib/Cloudflare/AI/QuerySearchNamespaceLocal.js +47 -0
  248. package/lib/Cloudflare/AI/QuerySearchNamespaceLocal.js.map +1 -0
  249. package/lib/Cloudflare/AI/SearchHttpClient.d.ts +34 -0
  250. package/lib/Cloudflare/AI/SearchHttpClient.d.ts.map +1 -0
  251. package/lib/Cloudflare/AI/SearchHttpClient.js +262 -0
  252. package/lib/Cloudflare/AI/SearchHttpClient.js.map +1 -0
  253. package/lib/Cloudflare/AI/SearchInstance.js +4 -1
  254. package/lib/Cloudflare/AI/SearchInstance.js.map +1 -1
  255. package/lib/Cloudflare/AI/index.d.ts +2 -0
  256. package/lib/Cloudflare/AI/index.d.ts.map +1 -1
  257. package/lib/Cloudflare/AI/index.js +2 -0
  258. package/lib/Cloudflare/AI/index.js.map +1 -1
  259. package/lib/Cloudflare/Access/Application.d.ts.map +1 -1
  260. package/lib/Cloudflare/Access/Application.js +7 -1
  261. package/lib/Cloudflare/Access/Application.js.map +1 -1
  262. package/lib/Cloudflare/Alerting/Silence.d.ts.map +1 -1
  263. package/lib/Cloudflare/Alerting/Silence.js +4 -1
  264. package/lib/Cloudflare/Alerting/Silence.js.map +1 -1
  265. package/lib/Cloudflare/Alerting/Webhook.d.ts.map +1 -1
  266. package/lib/Cloudflare/Alerting/Webhook.js +8 -2
  267. package/lib/Cloudflare/Alerting/Webhook.js.map +1 -1
  268. package/lib/Cloudflare/Auth/AuthProvider.d.ts.map +1 -1
  269. package/lib/Cloudflare/Auth/AuthProvider.js +23 -8
  270. package/lib/Cloudflare/Auth/AuthProvider.js.map +1 -1
  271. package/lib/Cloudflare/Auth/OAuthClient.d.ts.map +1 -1
  272. package/lib/Cloudflare/Auth/OAuthClient.js +6 -7
  273. package/lib/Cloudflare/Auth/OAuthClient.js.map +1 -1
  274. package/lib/Cloudflare/Cache/RegionalTieredCache.d.ts.map +1 -1
  275. package/lib/Cloudflare/Cache/RegionalTieredCache.js +7 -1
  276. package/lib/Cloudflare/Cache/RegionalTieredCache.js.map +1 -1
  277. package/lib/Cloudflare/Containers/ContainerApplication.d.ts +18 -2
  278. package/lib/Cloudflare/Containers/ContainerApplication.d.ts.map +1 -1
  279. package/lib/Cloudflare/Containers/ContainerApplication.js +1 -0
  280. package/lib/Cloudflare/Containers/ContainerApplication.js.map +1 -1
  281. package/lib/Cloudflare/Containers/ContainerBundle.d.ts +29 -3
  282. package/lib/Cloudflare/Containers/ContainerBundle.d.ts.map +1 -1
  283. package/lib/Cloudflare/Containers/ContainerBundle.js +84 -23
  284. package/lib/Cloudflare/Containers/ContainerBundle.js.map +1 -1
  285. package/lib/Cloudflare/Containers/ContainerPlatform.d.ts.map +1 -1
  286. package/lib/Cloudflare/Containers/ContainerPlatform.js +12 -33
  287. package/lib/Cloudflare/Containers/ContainerPlatform.js.map +1 -1
  288. package/lib/Cloudflare/Containers/ContainerProvider.d.ts.map +1 -1
  289. package/lib/Cloudflare/Containers/ContainerProvider.js +53 -14
  290. package/lib/Cloudflare/Containers/ContainerProvider.js.map +1 -1
  291. package/lib/Cloudflare/Containers/LocalContainerProvider.d.ts +6 -6
  292. package/lib/Cloudflare/Containers/LocalContainerProvider.d.ts.map +1 -1
  293. package/lib/Cloudflare/Containers/LocalContainerProvider.js +69 -47
  294. package/lib/Cloudflare/Containers/LocalContainerProvider.js.map +1 -1
  295. package/lib/Cloudflare/D1/QueryDatabaseHttpClient.d.ts +24 -0
  296. package/lib/Cloudflare/D1/QueryDatabaseHttpClient.d.ts.map +1 -0
  297. package/lib/Cloudflare/D1/QueryDatabaseHttpClient.js +106 -0
  298. package/lib/Cloudflare/D1/QueryDatabaseHttpClient.js.map +1 -0
  299. package/lib/Cloudflare/D1/QueryDatabaseLocal.d.ts +38 -0
  300. package/lib/Cloudflare/D1/QueryDatabaseLocal.d.ts.map +1 -0
  301. package/lib/Cloudflare/D1/QueryDatabaseLocal.js +54 -0
  302. package/lib/Cloudflare/D1/QueryDatabaseLocal.js.map +1 -0
  303. package/lib/Cloudflare/D1/index.d.ts +1 -0
  304. package/lib/Cloudflare/D1/index.d.ts.map +1 -1
  305. package/lib/Cloudflare/D1/index.js +1 -0
  306. package/lib/Cloudflare/D1/index.js.map +1 -1
  307. package/lib/Cloudflare/DNS/DnsHttp.d.ts +16 -1
  308. package/lib/Cloudflare/DNS/DnsHttp.d.ts.map +1 -1
  309. package/lib/Cloudflare/DNS/DnsHttp.js +6 -1
  310. package/lib/Cloudflare/DNS/DnsHttp.js.map +1 -1
  311. package/lib/Cloudflare/DNS/DnsLocal.d.ts +22 -0
  312. package/lib/Cloudflare/DNS/DnsLocal.d.ts.map +1 -0
  313. package/lib/Cloudflare/DNS/DnsLocal.js +31 -0
  314. package/lib/Cloudflare/DNS/DnsLocal.js.map +1 -0
  315. package/lib/Cloudflare/DNS/ReadDnsHttp.d.ts +3 -3
  316. package/lib/Cloudflare/DNS/ReadDnsHttp.d.ts.map +1 -1
  317. package/lib/Cloudflare/DNS/ReadDnsHttp.js +3 -4
  318. package/lib/Cloudflare/DNS/ReadDnsHttp.js.map +1 -1
  319. package/lib/Cloudflare/DNS/ReadDnsLocal.d.ts +32 -0
  320. package/lib/Cloudflare/DNS/ReadDnsLocal.d.ts.map +1 -0
  321. package/lib/Cloudflare/DNS/ReadDnsLocal.js +35 -0
  322. package/lib/Cloudflare/DNS/ReadDnsLocal.js.map +1 -0
  323. package/lib/Cloudflare/DNS/ReadWriteDnsHttp.d.ts +3 -3
  324. package/lib/Cloudflare/DNS/ReadWriteDnsHttp.d.ts.map +1 -1
  325. package/lib/Cloudflare/DNS/ReadWriteDnsHttp.js +4 -4
  326. package/lib/Cloudflare/DNS/ReadWriteDnsHttp.js.map +1 -1
  327. package/lib/Cloudflare/DNS/ReadWriteDnsLocal.d.ts +40 -0
  328. package/lib/Cloudflare/DNS/ReadWriteDnsLocal.d.ts.map +1 -0
  329. package/lib/Cloudflare/DNS/ReadWriteDnsLocal.js +43 -0
  330. package/lib/Cloudflare/DNS/ReadWriteDnsLocal.js.map +1 -0
  331. package/lib/Cloudflare/DNS/WriteDnsHttp.d.ts +3 -3
  332. package/lib/Cloudflare/DNS/WriteDnsHttp.d.ts.map +1 -1
  333. package/lib/Cloudflare/DNS/WriteDnsHttp.js +3 -4
  334. package/lib/Cloudflare/DNS/WriteDnsHttp.js.map +1 -1
  335. package/lib/Cloudflare/DNS/WriteDnsLocal.d.ts +38 -0
  336. package/lib/Cloudflare/DNS/WriteDnsLocal.d.ts.map +1 -0
  337. package/lib/Cloudflare/DNS/WriteDnsLocal.js +41 -0
  338. package/lib/Cloudflare/DNS/WriteDnsLocal.js.map +1 -0
  339. package/lib/Cloudflare/DNS/index.d.ts +3 -0
  340. package/lib/Cloudflare/DNS/index.d.ts.map +1 -1
  341. package/lib/Cloudflare/DNS/index.js +3 -0
  342. package/lib/Cloudflare/DNS/index.js.map +1 -1
  343. package/lib/Cloudflare/Diagnostics/EndpointHealthcheck.js +4 -1
  344. package/lib/Cloudflare/Diagnostics/EndpointHealthcheck.js.map +1 -1
  345. package/lib/Cloudflare/Flagship/ReadFlagsHttpClient.d.ts +27 -0
  346. package/lib/Cloudflare/Flagship/ReadFlagsHttpClient.d.ts.map +1 -0
  347. package/lib/Cloudflare/Flagship/ReadFlagsHttpClient.js +86 -0
  348. package/lib/Cloudflare/Flagship/ReadFlagsHttpClient.js.map +1 -0
  349. package/lib/Cloudflare/Flagship/ReadFlagsLocal.d.ts +41 -0
  350. package/lib/Cloudflare/Flagship/ReadFlagsLocal.d.ts.map +1 -0
  351. package/lib/Cloudflare/Flagship/ReadFlagsLocal.js +57 -0
  352. package/lib/Cloudflare/Flagship/ReadFlagsLocal.js.map +1 -0
  353. package/lib/Cloudflare/Flagship/index.d.ts +1 -0
  354. package/lib/Cloudflare/Flagship/index.d.ts.map +1 -1
  355. package/lib/Cloudflare/Flagship/index.js +1 -0
  356. package/lib/Cloudflare/Flagship/index.js.map +1 -1
  357. package/lib/Cloudflare/Images/Variant.d.ts.map +1 -1
  358. package/lib/Cloudflare/Images/Variant.js +4 -1
  359. package/lib/Cloudflare/Images/Variant.js.map +1 -1
  360. package/lib/Cloudflare/KV/NamespaceHttp.d.ts +16 -1
  361. package/lib/Cloudflare/KV/NamespaceHttp.d.ts.map +1 -1
  362. package/lib/Cloudflare/KV/NamespaceHttp.js +8 -2
  363. package/lib/Cloudflare/KV/NamespaceHttp.js.map +1 -1
  364. package/lib/Cloudflare/KV/NamespaceLocal.d.ts +22 -0
  365. package/lib/Cloudflare/KV/NamespaceLocal.d.ts.map +1 -0
  366. package/lib/Cloudflare/KV/NamespaceLocal.js +32 -0
  367. package/lib/Cloudflare/KV/NamespaceLocal.js.map +1 -0
  368. package/lib/Cloudflare/KV/ReadNamespaceHttp.d.ts +2 -2
  369. package/lib/Cloudflare/KV/ReadNamespaceHttp.d.ts.map +1 -1
  370. package/lib/Cloudflare/KV/ReadNamespaceHttp.js +5 -6
  371. package/lib/Cloudflare/KV/ReadNamespaceHttp.js.map +1 -1
  372. package/lib/Cloudflare/KV/ReadNamespaceLocal.d.ts +27 -0
  373. package/lib/Cloudflare/KV/ReadNamespaceLocal.d.ts.map +1 -0
  374. package/lib/Cloudflare/KV/ReadNamespaceLocal.js +30 -0
  375. package/lib/Cloudflare/KV/ReadNamespaceLocal.js.map +1 -0
  376. package/lib/Cloudflare/KV/ReadWriteNamespaceHttp.d.ts +3 -3
  377. package/lib/Cloudflare/KV/ReadWriteNamespaceHttp.d.ts.map +1 -1
  378. package/lib/Cloudflare/KV/ReadWriteNamespaceHttp.js +6 -6
  379. package/lib/Cloudflare/KV/ReadWriteNamespaceHttp.js.map +1 -1
  380. package/lib/Cloudflare/KV/ReadWriteNamespaceLocal.d.ts +34 -0
  381. package/lib/Cloudflare/KV/ReadWriteNamespaceLocal.d.ts.map +1 -0
  382. package/lib/Cloudflare/KV/ReadWriteNamespaceLocal.js +37 -0
  383. package/lib/Cloudflare/KV/ReadWriteNamespaceLocal.js.map +1 -0
  384. package/lib/Cloudflare/KV/WriteNamespaceHttp.d.ts +2 -2
  385. package/lib/Cloudflare/KV/WriteNamespaceHttp.d.ts.map +1 -1
  386. package/lib/Cloudflare/KV/WriteNamespaceHttp.js +5 -6
  387. package/lib/Cloudflare/KV/WriteNamespaceHttp.js.map +1 -1
  388. package/lib/Cloudflare/KV/WriteNamespaceLocal.d.ts +27 -0
  389. package/lib/Cloudflare/KV/WriteNamespaceLocal.d.ts.map +1 -0
  390. package/lib/Cloudflare/KV/WriteNamespaceLocal.js +30 -0
  391. package/lib/Cloudflare/KV/WriteNamespaceLocal.js.map +1 -0
  392. package/lib/Cloudflare/KV/index.d.ts +3 -0
  393. package/lib/Cloudflare/KV/index.d.ts.map +1 -1
  394. package/lib/Cloudflare/KV/index.js +3 -0
  395. package/lib/Cloudflare/KV/index.js.map +1 -1
  396. package/lib/Cloudflare/LoadBalancer/Monitor.d.ts.map +1 -1
  397. package/lib/Cloudflare/LoadBalancer/Monitor.js +4 -1
  398. package/lib/Cloudflare/LoadBalancer/Monitor.js.map +1 -1
  399. package/lib/Cloudflare/LoadBalancer/MonitorGroup.d.ts.map +1 -1
  400. package/lib/Cloudflare/LoadBalancer/MonitorGroup.js +4 -1
  401. package/lib/Cloudflare/LoadBalancer/MonitorGroup.js.map +1 -1
  402. package/lib/Cloudflare/LoadBalancer/Pool.d.ts.map +1 -1
  403. package/lib/Cloudflare/LoadBalancer/Pool.js +4 -1
  404. package/lib/Cloudflare/LoadBalancer/Pool.js.map +1 -1
  405. package/lib/Cloudflare/LocalRuntime.d.ts +14 -0
  406. package/lib/Cloudflare/LocalRuntime.d.ts.map +1 -1
  407. package/lib/Cloudflare/LocalRuntime.js +1 -0
  408. package/lib/Cloudflare/LocalRuntime.js.map +1 -1
  409. package/lib/Cloudflare/MagicNetworkMonitoring/Rule.d.ts.map +1 -1
  410. package/lib/Cloudflare/MagicNetworkMonitoring/Rule.js +4 -1
  411. package/lib/Cloudflare/MagicNetworkMonitoring/Rule.js.map +1 -1
  412. package/lib/Cloudflare/Pipelines/Pipeline.d.ts.map +1 -1
  413. package/lib/Cloudflare/Pipelines/Pipeline.js +8 -2
  414. package/lib/Cloudflare/Pipelines/Pipeline.js.map +1 -1
  415. package/lib/Cloudflare/Pipelines/Sink.d.ts.map +1 -1
  416. package/lib/Cloudflare/Pipelines/Sink.js +8 -2
  417. package/lib/Cloudflare/Pipelines/Sink.js.map +1 -1
  418. package/lib/Cloudflare/Pipelines/Stream.d.ts.map +1 -1
  419. package/lib/Cloudflare/Pipelines/Stream.js +4 -1
  420. package/lib/Cloudflare/Pipelines/Stream.js.map +1 -1
  421. package/lib/Cloudflare/Providers.js +14 -11
  422. package/lib/Cloudflare/Providers.js.map +1 -1
  423. package/lib/Cloudflare/Queues/Consumer.d.ts.map +1 -1
  424. package/lib/Cloudflare/Queues/Consumer.js +30 -3
  425. package/lib/Cloudflare/Queues/Consumer.js.map +1 -1
  426. package/lib/Cloudflare/Queues/Queue.d.ts.map +1 -1
  427. package/lib/Cloudflare/Queues/Queue.js +4 -1
  428. package/lib/Cloudflare/Queues/Queue.js.map +1 -1
  429. package/lib/Cloudflare/Queues/QueueHttp.d.ts +20 -1
  430. package/lib/Cloudflare/Queues/QueueHttp.d.ts.map +1 -1
  431. package/lib/Cloudflare/Queues/QueueHttp.js +2 -2
  432. package/lib/Cloudflare/Queues/QueueHttp.js.map +1 -1
  433. package/lib/Cloudflare/Queues/WriteQueueHttp.d.ts +9 -3
  434. package/lib/Cloudflare/Queues/WriteQueueHttp.d.ts.map +1 -1
  435. package/lib/Cloudflare/Queues/WriteQueueHttp.js +11 -6
  436. package/lib/Cloudflare/Queues/WriteQueueHttp.js.map +1 -1
  437. package/lib/Cloudflare/Queues/WriteQueueLocal.d.ts +36 -0
  438. package/lib/Cloudflare/Queues/WriteQueueLocal.d.ts.map +1 -0
  439. package/lib/Cloudflare/Queues/WriteQueueLocal.js +51 -0
  440. package/lib/Cloudflare/Queues/WriteQueueLocal.js.map +1 -0
  441. package/lib/Cloudflare/Queues/index.d.ts +1 -0
  442. package/lib/Cloudflare/Queues/index.d.ts.map +1 -1
  443. package/lib/Cloudflare/Queues/index.js +1 -0
  444. package/lib/Cloudflare/Queues/index.js.map +1 -1
  445. package/lib/Cloudflare/R2/Bucket.js +12 -3
  446. package/lib/Cloudflare/R2/Bucket.js.map +1 -1
  447. package/lib/Cloudflare/R2/BucketEventNotification.js +4 -1
  448. package/lib/Cloudflare/R2/BucketEventNotification.js.map +1 -1
  449. package/lib/Cloudflare/R2/BucketHttp.d.ts +15 -1
  450. package/lib/Cloudflare/R2/BucketHttp.d.ts.map +1 -1
  451. package/lib/Cloudflare/R2/BucketHttp.js +3 -3
  452. package/lib/Cloudflare/R2/BucketHttp.js.map +1 -1
  453. package/lib/Cloudflare/R2/BucketLocal.d.ts +21 -0
  454. package/lib/Cloudflare/R2/BucketLocal.d.ts.map +1 -0
  455. package/lib/Cloudflare/R2/BucketLocal.js +32 -0
  456. package/lib/Cloudflare/R2/BucketLocal.js.map +1 -0
  457. package/lib/Cloudflare/R2/DataCatalog.js +4 -1
  458. package/lib/Cloudflare/R2/DataCatalog.js.map +1 -1
  459. package/lib/Cloudflare/R2/ReadBucketHttp.d.ts +2 -2
  460. package/lib/Cloudflare/R2/ReadBucketHttp.d.ts.map +1 -1
  461. package/lib/Cloudflare/R2/ReadBucketHttp.js +4 -4
  462. package/lib/Cloudflare/R2/ReadBucketHttp.js.map +1 -1
  463. package/lib/Cloudflare/R2/ReadBucketLocal.d.ts +27 -0
  464. package/lib/Cloudflare/R2/ReadBucketLocal.d.ts.map +1 -0
  465. package/lib/Cloudflare/R2/ReadBucketLocal.js +30 -0
  466. package/lib/Cloudflare/R2/ReadBucketLocal.js.map +1 -0
  467. package/lib/Cloudflare/R2/ReadWriteBucketHttp.d.ts +2 -2
  468. package/lib/Cloudflare/R2/ReadWriteBucketHttp.d.ts.map +1 -1
  469. package/lib/Cloudflare/R2/ReadWriteBucketHttp.js +5 -4
  470. package/lib/Cloudflare/R2/ReadWriteBucketHttp.js.map +1 -1
  471. package/lib/Cloudflare/R2/ReadWriteBucketLocal.d.ts +30 -0
  472. package/lib/Cloudflare/R2/ReadWriteBucketLocal.d.ts.map +1 -0
  473. package/lib/Cloudflare/R2/ReadWriteBucketLocal.js +33 -0
  474. package/lib/Cloudflare/R2/ReadWriteBucketLocal.js.map +1 -0
  475. package/lib/Cloudflare/R2/WriteBucketHttp.d.ts +2 -2
  476. package/lib/Cloudflare/R2/WriteBucketHttp.d.ts.map +1 -1
  477. package/lib/Cloudflare/R2/WriteBucketHttp.js +4 -4
  478. package/lib/Cloudflare/R2/WriteBucketHttp.js.map +1 -1
  479. package/lib/Cloudflare/R2/WriteBucketLocal.d.ts +27 -0
  480. package/lib/Cloudflare/R2/WriteBucketLocal.d.ts.map +1 -0
  481. package/lib/Cloudflare/R2/WriteBucketLocal.js +30 -0
  482. package/lib/Cloudflare/R2/WriteBucketLocal.js.map +1 -0
  483. package/lib/Cloudflare/R2/index.d.ts +3 -0
  484. package/lib/Cloudflare/R2/index.d.ts.map +1 -1
  485. package/lib/Cloudflare/R2/index.js +3 -0
  486. package/lib/Cloudflare/R2/index.js.map +1 -1
  487. package/lib/Cloudflare/Rum/Rule.d.ts.map +1 -1
  488. package/lib/Cloudflare/Rum/Rule.js +4 -1
  489. package/lib/Cloudflare/Rum/Rule.js.map +1 -1
  490. package/lib/Cloudflare/Snippets/Snippet.d.ts.map +1 -1
  491. package/lib/Cloudflare/Snippets/Snippet.js +4 -1
  492. package/lib/Cloudflare/Snippets/Snippet.js.map +1 -1
  493. package/lib/Cloudflare/StateStore/Api.d.ts +2 -0
  494. package/lib/Cloudflare/StateStore/CredentialsFile.d.ts +42 -0
  495. package/lib/Cloudflare/StateStore/CredentialsFile.d.ts.map +1 -0
  496. package/lib/Cloudflare/StateStore/CredentialsFile.js +23 -0
  497. package/lib/Cloudflare/StateStore/CredentialsFile.js.map +1 -0
  498. package/lib/Cloudflare/StateStore/State.d.ts +2 -2
  499. package/lib/Cloudflare/StateStore/State.d.ts.map +1 -1
  500. package/lib/Cloudflare/StateStore/State.js +46 -9
  501. package/lib/Cloudflare/StateStore/State.js.map +1 -1
  502. package/lib/Cloudflare/Tags/ZoneResourceTags.d.ts.map +1 -1
  503. package/lib/Cloudflare/Tags/ZoneResourceTags.js +4 -1
  504. package/lib/Cloudflare/Tags/ZoneResourceTags.js.map +1 -1
  505. package/lib/Cloudflare/Tunnel/ReadTunnel.d.ts +3 -3
  506. package/lib/Cloudflare/Tunnel/ReadTunnel.d.ts.map +1 -1
  507. package/lib/Cloudflare/Tunnel/ReadTunnel.js +7 -8
  508. package/lib/Cloudflare/Tunnel/ReadTunnel.js.map +1 -1
  509. package/lib/Cloudflare/Tunnel/ReadTunnelLocal.d.ts +29 -0
  510. package/lib/Cloudflare/Tunnel/ReadTunnelLocal.d.ts.map +1 -0
  511. package/lib/Cloudflare/Tunnel/ReadTunnelLocal.js +30 -0
  512. package/lib/Cloudflare/Tunnel/ReadTunnelLocal.js.map +1 -0
  513. package/lib/Cloudflare/Tunnel/ReadWriteTunnel.d.ts +3 -3
  514. package/lib/Cloudflare/Tunnel/ReadWriteTunnel.d.ts.map +1 -1
  515. package/lib/Cloudflare/Tunnel/ReadWriteTunnel.js +4 -4
  516. package/lib/Cloudflare/Tunnel/ReadWriteTunnel.js.map +1 -1
  517. package/lib/Cloudflare/Tunnel/ReadWriteTunnelLocal.d.ts +35 -0
  518. package/lib/Cloudflare/Tunnel/ReadWriteTunnelLocal.d.ts.map +1 -0
  519. package/lib/Cloudflare/Tunnel/ReadWriteTunnelLocal.js +36 -0
  520. package/lib/Cloudflare/Tunnel/ReadWriteTunnelLocal.js.map +1 -0
  521. package/lib/Cloudflare/Tunnel/TunnelBinding.d.ts +17 -1
  522. package/lib/Cloudflare/Tunnel/TunnelBinding.d.ts.map +1 -1
  523. package/lib/Cloudflare/Tunnel/TunnelBinding.js +7 -1
  524. package/lib/Cloudflare/Tunnel/TunnelBinding.js.map +1 -1
  525. package/lib/Cloudflare/Tunnel/TunnelLocalBinding.d.ts +19 -0
  526. package/lib/Cloudflare/Tunnel/TunnelLocalBinding.d.ts.map +1 -0
  527. package/lib/Cloudflare/Tunnel/TunnelLocalBinding.js +29 -0
  528. package/lib/Cloudflare/Tunnel/TunnelLocalBinding.js.map +1 -0
  529. package/lib/Cloudflare/Tunnel/WarpConnector.d.ts +3 -3
  530. package/lib/Cloudflare/Tunnel/WarpConnector.d.ts.map +1 -1
  531. package/lib/Cloudflare/Tunnel/WarpConnector.js +7 -4
  532. package/lib/Cloudflare/Tunnel/WarpConnector.js.map +1 -1
  533. package/lib/Cloudflare/Tunnel/WriteTunnel.d.ts +3 -3
  534. package/lib/Cloudflare/Tunnel/WriteTunnel.d.ts.map +1 -1
  535. package/lib/Cloudflare/Tunnel/WriteTunnel.js +7 -8
  536. package/lib/Cloudflare/Tunnel/WriteTunnel.js.map +1 -1
  537. package/lib/Cloudflare/Tunnel/WriteTunnelLocal.d.ts +29 -0
  538. package/lib/Cloudflare/Tunnel/WriteTunnelLocal.d.ts.map +1 -0
  539. package/lib/Cloudflare/Tunnel/WriteTunnelLocal.js +30 -0
  540. package/lib/Cloudflare/Tunnel/WriteTunnelLocal.js.map +1 -0
  541. package/lib/Cloudflare/Tunnel/index.d.ts +3 -0
  542. package/lib/Cloudflare/Tunnel/index.d.ts.map +1 -1
  543. package/lib/Cloudflare/Tunnel/index.js +3 -0
  544. package/lib/Cloudflare/Tunnel/index.js.map +1 -1
  545. package/lib/Cloudflare/UrlNormalization/UrlNormalization.d.ts.map +1 -1
  546. package/lib/Cloudflare/UrlNormalization/UrlNormalization.js +7 -1
  547. package/lib/Cloudflare/UrlNormalization/UrlNormalization.js.map +1 -1
  548. package/lib/Cloudflare/Vectorize/SearchIndexHttpClient.d.ts +30 -0
  549. package/lib/Cloudflare/Vectorize/SearchIndexHttpClient.d.ts.map +1 -0
  550. package/lib/Cloudflare/Vectorize/SearchIndexHttpClient.js +100 -0
  551. package/lib/Cloudflare/Vectorize/SearchIndexHttpClient.js.map +1 -0
  552. package/lib/Cloudflare/Vectorize/SearchIndexLocal.d.ts +42 -0
  553. package/lib/Cloudflare/Vectorize/SearchIndexLocal.d.ts.map +1 -0
  554. package/lib/Cloudflare/Vectorize/SearchIndexLocal.js +58 -0
  555. package/lib/Cloudflare/Vectorize/SearchIndexLocal.js.map +1 -0
  556. package/lib/Cloudflare/Vectorize/index.d.ts +1 -0
  557. package/lib/Cloudflare/Vectorize/index.d.ts.map +1 -1
  558. package/lib/Cloudflare/Vectorize/index.js +1 -0
  559. package/lib/Cloudflare/Vectorize/index.js.map +1 -1
  560. package/lib/Cloudflare/WaitingRoom/Settings.d.ts.map +1 -1
  561. package/lib/Cloudflare/WaitingRoom/Settings.js +7 -1
  562. package/lib/Cloudflare/WaitingRoom/Settings.js.map +1 -1
  563. package/lib/Cloudflare/Website/Vite.d.ts +19 -0
  564. package/lib/Cloudflare/Website/Vite.d.ts.map +1 -1
  565. package/lib/Cloudflare/Website/Vite.js +20 -0
  566. package/lib/Cloudflare/Website/Vite.js.map +1 -1
  567. package/lib/Cloudflare/Workers/BrowserHttpClient.d.ts +32 -0
  568. package/lib/Cloudflare/Workers/BrowserHttpClient.d.ts.map +1 -0
  569. package/lib/Cloudflare/Workers/BrowserHttpClient.js +100 -0
  570. package/lib/Cloudflare/Workers/BrowserHttpClient.js.map +1 -0
  571. package/lib/Cloudflare/Workers/BrowserLocal.d.ts +37 -0
  572. package/lib/Cloudflare/Workers/BrowserLocal.d.ts.map +1 -0
  573. package/lib/Cloudflare/Workers/BrowserLocal.js +53 -0
  574. package/lib/Cloudflare/Workers/BrowserLocal.js.map +1 -0
  575. package/lib/Cloudflare/Workers/Compatibility.d.ts.map +1 -1
  576. package/lib/Cloudflare/Workers/Compatibility.js +43 -7
  577. package/lib/Cloudflare/Workers/Compatibility.js.map +1 -1
  578. package/lib/Cloudflare/Workers/ConfigProvider.d.ts +8 -0
  579. package/lib/Cloudflare/Workers/ConfigProvider.d.ts.map +1 -1
  580. package/lib/Cloudflare/Workers/ConfigProvider.js +10 -1
  581. package/lib/Cloudflare/Workers/ConfigProvider.js.map +1 -1
  582. package/lib/Cloudflare/Workers/CronEventSource.d.ts +3 -2
  583. package/lib/Cloudflare/Workers/CronEventSource.d.ts.map +1 -1
  584. package/lib/Cloudflare/Workers/CronEventSource.js.map +1 -1
  585. package/lib/Cloudflare/Workers/DurableObject.d.ts +137 -3
  586. package/lib/Cloudflare/Workers/DurableObject.d.ts.map +1 -1
  587. package/lib/Cloudflare/Workers/DurableObject.js +141 -6
  588. package/lib/Cloudflare/Workers/DurableObject.js.map +1 -1
  589. package/lib/Cloudflare/Workers/DurableObjectBridge.d.ts.map +1 -1
  590. package/lib/Cloudflare/Workers/DurableObjectBridge.js +86 -82
  591. package/lib/Cloudflare/Workers/DurableObjectBridge.js.map +1 -1
  592. package/lib/Cloudflare/Workers/HttpServer.d.ts +1 -4
  593. package/lib/Cloudflare/Workers/HttpServer.d.ts.map +1 -1
  594. package/lib/Cloudflare/Workers/HttpServer.js +1 -3
  595. package/lib/Cloudflare/Workers/HttpServer.js.map +1 -1
  596. package/lib/Cloudflare/Workers/LocalWorkerProvider.d.ts +2 -185
  597. package/lib/Cloudflare/Workers/LocalWorkerProvider.d.ts.map +1 -1
  598. package/lib/Cloudflare/Workers/LocalWorkerProvider.js +74 -11
  599. package/lib/Cloudflare/Workers/LocalWorkerProvider.js.map +1 -1
  600. package/lib/Cloudflare/Workers/ObservabilityDestination.d.ts.map +1 -1
  601. package/lib/Cloudflare/Workers/ObservabilityDestination.js +4 -1
  602. package/lib/Cloudflare/Workers/ObservabilityDestination.js.map +1 -1
  603. package/lib/Cloudflare/Workers/Vite.d.ts +1 -1
  604. package/lib/Cloudflare/Workers/Vite.d.ts.map +1 -1
  605. package/lib/Cloudflare/Workers/Vite.js +81 -2
  606. package/lib/Cloudflare/Workers/Vite.js.map +1 -1
  607. package/lib/Cloudflare/Workers/Worker.d.ts +42 -6
  608. package/lib/Cloudflare/Workers/Worker.d.ts.map +1 -1
  609. package/lib/Cloudflare/Workers/Worker.js +10 -5
  610. package/lib/Cloudflare/Workers/Worker.js.map +1 -1
  611. package/lib/Cloudflare/Workers/WorkerAsyncBindings.d.ts.map +1 -1
  612. package/lib/Cloudflare/Workers/WorkerAsyncBindings.js +26 -16
  613. package/lib/Cloudflare/Workers/WorkerAsyncBindings.js.map +1 -1
  614. package/lib/Cloudflare/Workers/WorkerBinding.d.ts +22 -1
  615. package/lib/Cloudflare/Workers/WorkerBinding.d.ts.map +1 -1
  616. package/lib/Cloudflare/Workers/WorkerBinding.js.map +1 -1
  617. package/lib/Cloudflare/Workers/WorkerBridge.d.ts +13 -5
  618. package/lib/Cloudflare/Workers/WorkerBridge.d.ts.map +1 -1
  619. package/lib/Cloudflare/Workers/WorkerBridge.js +133 -52
  620. package/lib/Cloudflare/Workers/WorkerBridge.js.map +1 -1
  621. package/lib/Cloudflare/Workers/WorkerProvider.d.ts +81 -0
  622. package/lib/Cloudflare/Workers/WorkerProvider.d.ts.map +1 -1
  623. package/lib/Cloudflare/Workers/WorkerProvider.js +476 -68
  624. package/lib/Cloudflare/Workers/WorkerProvider.js.map +1 -1
  625. package/lib/Cloudflare/Workers/WorkerRuntimeContext.d.ts.map +1 -1
  626. package/lib/Cloudflare/Workers/WorkerRuntimeContext.js +11 -37
  627. package/lib/Cloudflare/Workers/WorkerRuntimeContext.js.map +1 -1
  628. package/lib/Cloudflare/Workers/cloudflare_workers.d.ts.map +1 -1
  629. package/lib/Cloudflare/Workers/cloudflare_workers.js +10 -3
  630. package/lib/Cloudflare/Workers/cloudflare_workers.js.map +1 -1
  631. package/lib/Cloudflare/Workers/index.d.ts +1 -0
  632. package/lib/Cloudflare/Workers/index.d.ts.map +1 -1
  633. package/lib/Cloudflare/Workers/index.js +1 -0
  634. package/lib/Cloudflare/Workers/index.js.map +1 -1
  635. package/lib/Cloudflare/Workflows/Workflow.d.ts +10 -7
  636. package/lib/Cloudflare/Workflows/Workflow.d.ts.map +1 -1
  637. package/lib/Cloudflare/Workflows/Workflow.js +38 -13
  638. package/lib/Cloudflare/Workflows/Workflow.js.map +1 -1
  639. package/lib/Cloudflare/Workflows/WorkflowBridge.d.ts.map +1 -1
  640. package/lib/Cloudflare/Workflows/WorkflowBridge.js +39 -37
  641. package/lib/Cloudflare/Workflows/WorkflowBridge.js.map +1 -1
  642. package/lib/Cloudflare/Workflows/WorkflowName.d.ts +11 -0
  643. package/lib/Cloudflare/Workflows/WorkflowName.d.ts.map +1 -0
  644. package/lib/Cloudflare/Workflows/WorkflowName.js +28 -0
  645. package/lib/Cloudflare/Workflows/WorkflowName.js.map +1 -0
  646. package/lib/Cloudflare/Zone/Hold.d.ts.map +1 -1
  647. package/lib/Cloudflare/Zone/Hold.js +7 -1
  648. package/lib/Cloudflare/Zone/Hold.js.map +1 -1
  649. package/lib/Command/Dev.d.ts +16 -6
  650. package/lib/Command/Dev.d.ts.map +1 -1
  651. package/lib/Command/Dev.js +37 -7
  652. package/lib/Command/Dev.js.map +1 -1
  653. package/lib/Diff.d.ts +16 -0
  654. package/lib/Diff.d.ts.map +1 -1
  655. package/lib/Diff.js +33 -0
  656. package/lib/Diff.js.map +1 -1
  657. package/lib/Docker/Container.js +4 -1
  658. package/lib/Docker/Container.js.map +1 -1
  659. package/lib/Drizzle/Postgres.d.ts +14 -13
  660. package/lib/Drizzle/Postgres.d.ts.map +1 -1
  661. package/lib/Drizzle/Postgres.js +39 -19
  662. package/lib/Drizzle/Postgres.js.map +1 -1
  663. package/lib/GitHub/AuthProvider.d.ts.map +1 -1
  664. package/lib/GitHub/AuthProvider.js +1 -1
  665. package/lib/GitHub/AuthProvider.js.map +1 -1
  666. package/lib/GitHub/Env.d.ts +20 -0
  667. package/lib/GitHub/Env.d.ts.map +1 -0
  668. package/lib/GitHub/Env.js +27 -0
  669. package/lib/GitHub/Env.js.map +1 -0
  670. package/lib/GitHub/Secrets.d.ts +1 -1
  671. package/lib/GitHub/Secrets.js +1 -1
  672. package/lib/GitHub/Variables.d.ts +1 -1
  673. package/lib/GitHub/Variables.js +1 -1
  674. package/lib/GitHub/index.d.ts +1 -0
  675. package/lib/GitHub/index.d.ts.map +1 -1
  676. package/lib/GitHub/index.js +1 -0
  677. package/lib/GitHub/index.js.map +1 -1
  678. package/lib/Http.d.ts +9 -0
  679. package/lib/Http.d.ts.map +1 -1
  680. package/lib/Http.js +9 -0
  681. package/lib/Http.js.map +1 -1
  682. package/lib/Local/RpcProviderProxy.js +1 -1
  683. package/lib/Local/RpcProviderProxy.js.map +1 -1
  684. package/lib/Local/RpcSerialization.d.ts.map +1 -1
  685. package/lib/Local/RpcSerialization.js +6 -2
  686. package/lib/Local/RpcSerialization.js.map +1 -1
  687. package/lib/Local/RpcSpawner.d.ts.map +1 -1
  688. package/lib/Local/RpcSpawner.js +14 -8
  689. package/lib/Local/RpcSpawner.js.map +1 -1
  690. package/lib/Neon/AuthProvider.d.ts.map +1 -1
  691. package/lib/Neon/AuthProvider.js +2 -2
  692. package/lib/Neon/AuthProvider.js.map +1 -1
  693. package/lib/Neon/Project.js +4 -1
  694. package/lib/Neon/Project.js.map +1 -1
  695. package/lib/Plan.d.ts.map +1 -1
  696. package/lib/Plan.js +37 -13
  697. package/lib/Plan.js.map +1 -1
  698. package/lib/Planetscale/AuthProvider.d.ts +26 -9
  699. package/lib/Planetscale/AuthProvider.d.ts.map +1 -1
  700. package/lib/Planetscale/AuthProvider.js +142 -11
  701. package/lib/Planetscale/AuthProvider.js.map +1 -1
  702. package/lib/Planetscale/Branch.d.ts.map +1 -1
  703. package/lib/Planetscale/Branch.js +4 -1
  704. package/lib/Planetscale/Branch.js.map +1 -1
  705. package/lib/Planetscale/Credentials.d.ts.map +1 -1
  706. package/lib/Planetscale/Credentials.js +14 -6
  707. package/lib/Planetscale/Credentials.js.map +1 -1
  708. package/lib/Planetscale/Database.d.ts +2 -1
  709. package/lib/Planetscale/Database.d.ts.map +1 -1
  710. package/lib/Planetscale/MySQL/MySQLClusterSize.d.ts +41 -3
  711. package/lib/Planetscale/MySQL/MySQLClusterSize.d.ts.map +1 -1
  712. package/lib/Planetscale/MySQL/MySQLClusterSize.js +88 -11
  713. package/lib/Planetscale/MySQL/MySQLClusterSize.js.map +1 -1
  714. package/lib/Planetscale/MySQL/MySQLDatabase.d.ts +14 -0
  715. package/lib/Planetscale/MySQL/MySQLDatabase.d.ts.map +1 -1
  716. package/lib/Planetscale/MySQL/MySQLDatabase.js +24 -11
  717. package/lib/Planetscale/MySQL/MySQLDatabase.js.map +1 -1
  718. package/lib/Planetscale/MySQL/MySQLMigrations.js +4 -1
  719. package/lib/Planetscale/MySQL/MySQLMigrations.js.map +1 -1
  720. package/lib/Planetscale/OAuthClient.d.ts +72 -0
  721. package/lib/Planetscale/OAuthClient.d.ts.map +1 -0
  722. package/lib/Planetscale/OAuthClient.js +227 -0
  723. package/lib/Planetscale/OAuthClient.js.map +1 -0
  724. package/lib/Planetscale/Postgres/PostgresClusterSize.d.ts.map +1 -1
  725. package/lib/Planetscale/Postgres/PostgresClusterSize.js +4 -1
  726. package/lib/Planetscale/Postgres/PostgresClusterSize.js.map +1 -1
  727. package/lib/Planetscale/Postgres/PostgresMigrations.js +4 -1
  728. package/lib/Planetscale/Postgres/PostgresMigrations.js.map +1 -1
  729. package/lib/Planetscale/Util.d.ts.map +1 -1
  730. package/lib/Planetscale/Util.js +4 -1
  731. package/lib/Planetscale/Util.js.map +1 -1
  732. package/lib/Platform.d.ts +2 -3
  733. package/lib/Platform.d.ts.map +1 -1
  734. package/lib/Platform.js +62 -3
  735. package/lib/Platform.js.map +1 -1
  736. package/lib/Provider.d.ts +35 -0
  737. package/lib/Provider.d.ts.map +1 -1
  738. package/lib/Provider.js.map +1 -1
  739. package/lib/Runtime.d.ts +23 -0
  740. package/lib/Runtime.d.ts.map +1 -1
  741. package/lib/Runtime.js +83 -0
  742. package/lib/Runtime.js.map +1 -1
  743. package/lib/RuntimeContext.d.ts +46 -0
  744. package/lib/RuntimeContext.d.ts.map +1 -1
  745. package/lib/RuntimeContext.js +60 -0
  746. package/lib/RuntimeContext.js.map +1 -1
  747. package/lib/Server/Process.d.ts +1 -1
  748. package/lib/Server/Process.d.ts.map +1 -1
  749. package/lib/Server/Process.js +8 -8
  750. package/lib/Server/Process.js.map +1 -1
  751. package/lib/Stack.js +1 -1
  752. package/lib/Stack.js.map +1 -1
  753. package/lib/State/HttpStateApi.d.ts +10 -10
  754. package/lib/State/HttpStateStore.js +5 -2
  755. package/lib/State/HttpStateStore.js.map +1 -1
  756. package/lib/Sync.d.ts.map +1 -1
  757. package/lib/Sync.js +3 -0
  758. package/lib/Sync.js.map +1 -1
  759. package/lib/Test/Alchemy.d.ts +74 -0
  760. package/lib/Test/Alchemy.d.ts.map +1 -0
  761. package/lib/Test/Alchemy.js +143 -0
  762. package/lib/Test/Alchemy.js.map +1 -0
  763. package/lib/Test/Http.d.ts.map +1 -1
  764. package/lib/Test/Http.js +8 -2
  765. package/lib/Test/Http.js.map +1 -1
  766. package/lib/Util/cached-function.d.ts +1 -1
  767. package/lib/Util/cached-function.d.ts.map +1 -1
  768. package/lib/Util/cached-function.js +2 -2
  769. package/lib/Util/cached-function.js.map +1 -1
  770. package/lib/Util/data.d.ts +6 -1
  771. package/lib/Util/data.d.ts.map +1 -1
  772. package/lib/Util/data.js.map +1 -1
  773. package/lib/Util/poll.js +1 -1
  774. package/lib/Util/poll.js.map +1 -1
  775. package/lib/Util/proxy-chain.js +3 -0
  776. package/lib/Util/proxy-chain.js.map +1 -1
  777. package/package.json +23 -23
  778. package/src/AWS/ACM/Certificate.ts +16 -12
  779. package/src/AWS/ApiGateway/common.ts +11 -8
  780. package/src/AWS/AuthProvider.ts +1 -4
  781. package/src/AWS/AutoScaling/AutoScalingGroup.ts +8 -6
  782. package/src/AWS/Bootstrap.ts +5 -6
  783. package/src/AWS/CloudFront/Distribution.ts +20 -16
  784. package/src/AWS/CloudFront/Function.ts +10 -6
  785. package/src/AWS/CloudFront/Invalidation.ts +4 -3
  786. package/src/AWS/CloudFront/KvEntries.ts +4 -3
  787. package/src/AWS/CloudFront/KvRoutesUpdate.ts +8 -6
  788. package/src/AWS/CloudFront/VpcOrigin.ts +12 -9
  789. package/src/AWS/CloudFront/common.ts +10 -6
  790. package/src/AWS/CloudWatch/AnomalyDetector.ts +4 -3
  791. package/src/AWS/CloudWatch/common.ts +1 -3
  792. package/src/AWS/DynamoDB/Table.ts +57 -47
  793. package/src/AWS/EC2/EIP.ts +6 -4
  794. package/src/AWS/EC2/EgressOnlyInternetGateway.ts +6 -4
  795. package/src/AWS/EC2/Instance.ts +12 -9
  796. package/src/AWS/EC2/InternetGateway.ts +18 -12
  797. package/src/AWS/EC2/NatGateway.ts +6 -10
  798. package/src/AWS/EC2/NetworkAcl.ts +6 -4
  799. package/src/AWS/EC2/NetworkAclEntry.ts +4 -3
  800. package/src/AWS/EC2/RouteTable.ts +12 -9
  801. package/src/AWS/EC2/RouteTableAssociation.ts +3 -5
  802. package/src/AWS/EC2/SecurityGroup.ts +10 -7
  803. package/src/AWS/EC2/Subnet.ts +15 -15
  804. package/src/AWS/EC2/Vpc.ts +12 -12
  805. package/src/AWS/EC2/VpcEndpoint.ts +6 -8
  806. package/src/AWS/EC2/hosted.ts +2 -1
  807. package/src/AWS/ECS/Service.ts +4 -3
  808. package/src/AWS/ECS/Task.ts +2 -1
  809. package/src/AWS/EKS/Addon.ts +8 -6
  810. package/src/AWS/EKS/Cluster.ts +4 -3
  811. package/src/AWS/ELBv2/TargetGroup.ts +4 -3
  812. package/src/AWS/ELBv2/TrustStore.ts +4 -3
  813. package/src/AWS/IAM/SAMLProvider.ts +4 -4
  814. package/src/AWS/IdentityCenter/AccountAssignment.ts +8 -6
  815. package/src/AWS/IdentityCenter/common.ts +1 -3
  816. package/src/AWS/KMS/Alias.ts +4 -3
  817. package/src/AWS/KMS/Key.ts +4 -3
  818. package/src/AWS/Kinesis/Stream.ts +2 -6
  819. package/src/AWS/Kinesis/StreamConsumer.ts +7 -12
  820. package/src/AWS/Lambda/Alias.ts +4 -3
  821. package/src/AWS/Lambda/EventInvokeConfig.ts +2 -6
  822. package/src/AWS/Lambda/EventSourceMapping.ts +10 -8
  823. package/src/AWS/Lambda/Function.ts +123 -77
  824. package/src/AWS/Lambda/MicrovmProvider.ts +18 -16
  825. package/src/AWS/Lambda/MicrovmRuntimeContext.ts +11 -38
  826. package/src/AWS/Lambda/NetworkConnector.ts +19 -15
  827. package/src/AWS/Lambda/RuntimeExtension.ts +46 -0
  828. package/src/AWS/Organizations/Account.ts +5 -6
  829. package/src/AWS/Organizations/common.ts +1 -3
  830. package/src/AWS/Providers.ts +22 -20
  831. package/src/AWS/RDS/DBCluster.ts +8 -6
  832. package/src/AWS/RDS/DBInstance.ts +8 -6
  833. package/src/AWS/RDS/DBProxy.ts +4 -3
  834. package/src/AWS/RDS/DBProxyEndpoint.ts +4 -3
  835. package/src/AWS/Route53/HealthCheck.ts +8 -6
  836. package/src/AWS/Route53/HostedZone.ts +8 -6
  837. package/src/AWS/Route53/Record.ts +4 -3
  838. package/src/AWS/S3/Bucket.ts +5 -4
  839. package/src/AWS/SQS/Queue.ts +26 -20
  840. package/src/AWS/StateStore/State.ts +5 -4
  841. package/src/AWS/Website/AssetDeployment.ts +10 -6
  842. package/src/Action.ts +39 -6
  843. package/src/ActionRuntimeContext.ts +68 -0
  844. package/src/Apply.ts +54 -8
  845. package/src/Auth/AuthProvider.ts +11 -0
  846. package/src/Auth/Lock.ts +5 -2
  847. package/src/Axiom/AuthProvider.ts +0 -3
  848. package/src/Bundle/PurePlugin.ts +34 -1
  849. package/src/Bundle/Vite.ts +67 -16
  850. package/src/Cli/LoggingCli.ts +7 -4
  851. package/src/Cli/commands/_shared.ts +171 -5
  852. package/src/Cli/commands/login.ts +91 -46
  853. package/src/Cli/commands/logs.ts +1 -0
  854. package/src/Cli/commands/nuke.ts +16 -44
  855. package/src/Cli/commands/profile.ts +67 -39
  856. package/src/Cli/commands/tail.ts +1 -0
  857. package/src/Cloudflare/AI/GatewayDynamicRouting.ts +38 -6
  858. package/src/Cloudflare/AI/LanguageModel.ts +25 -5
  859. package/src/Cloudflare/AI/QuerySearchLocal.ts +66 -0
  860. package/src/Cloudflare/AI/QuerySearchNamespaceLocal.ts +60 -0
  861. package/src/Cloudflare/AI/SearchHttpClient.ts +423 -0
  862. package/src/Cloudflare/AI/SearchInstance.ts +4 -3
  863. package/src/Cloudflare/AI/index.ts +2 -0
  864. package/src/Cloudflare/Access/Application.ts +7 -4
  865. package/src/Cloudflare/Alerting/Silence.ts +4 -3
  866. package/src/Cloudflare/Alerting/Webhook.ts +8 -6
  867. package/src/Cloudflare/Auth/AuthProvider.ts +55 -39
  868. package/src/Cloudflare/Auth/OAuthClient.ts +6 -7
  869. package/src/Cloudflare/Cache/RegionalTieredCache.ts +7 -4
  870. package/src/Cloudflare/Containers/ContainerApplication.ts +22 -2
  871. package/src/Cloudflare/Containers/ContainerBundle.ts +110 -34
  872. package/src/Cloudflare/Containers/ContainerPlatform.ts +14 -52
  873. package/src/Cloudflare/Containers/ContainerProvider.ts +73 -19
  874. package/src/Cloudflare/Containers/LocalContainerProvider.ts +78 -72
  875. package/src/Cloudflare/D1/QueryDatabaseHttpClient.ts +176 -0
  876. package/src/Cloudflare/D1/QueryDatabaseLocal.ts +66 -0
  877. package/src/Cloudflare/D1/index.ts +1 -0
  878. package/src/Cloudflare/DNS/DnsHttp.ts +24 -2
  879. package/src/Cloudflare/DNS/DnsLocal.ts +41 -0
  880. package/src/Cloudflare/DNS/ReadDnsHttp.ts +4 -5
  881. package/src/Cloudflare/DNS/ReadDnsLocal.ts +38 -0
  882. package/src/Cloudflare/DNS/ReadWriteDnsHttp.ts +5 -5
  883. package/src/Cloudflare/DNS/ReadWriteDnsLocal.ts +46 -0
  884. package/src/Cloudflare/DNS/WriteDnsHttp.ts +4 -5
  885. package/src/Cloudflare/DNS/WriteDnsLocal.ts +44 -0
  886. package/src/Cloudflare/DNS/index.ts +3 -0
  887. package/src/Cloudflare/Diagnostics/EndpointHealthcheck.ts +4 -3
  888. package/src/Cloudflare/Flagship/ReadFlagsHttpClient.ts +183 -0
  889. package/src/Cloudflare/Flagship/ReadFlagsLocal.ts +69 -0
  890. package/src/Cloudflare/Flagship/index.ts +1 -0
  891. package/src/Cloudflare/Images/Variant.ts +4 -3
  892. package/src/Cloudflare/KV/NamespaceHttp.ts +25 -2
  893. package/src/Cloudflare/KV/NamespaceLocal.ts +42 -0
  894. package/src/Cloudflare/KV/ReadNamespaceHttp.ts +7 -6
  895. package/src/Cloudflare/KV/ReadNamespaceLocal.ts +35 -0
  896. package/src/Cloudflare/KV/ReadWriteNamespaceHttp.ts +11 -6
  897. package/src/Cloudflare/KV/ReadWriteNamespaceLocal.ts +42 -0
  898. package/src/Cloudflare/KV/WriteNamespaceHttp.ts +7 -6
  899. package/src/Cloudflare/KV/WriteNamespaceLocal.ts +35 -0
  900. package/src/Cloudflare/KV/index.ts +3 -0
  901. package/src/Cloudflare/LoadBalancer/Monitor.ts +4 -3
  902. package/src/Cloudflare/LoadBalancer/MonitorGroup.ts +4 -3
  903. package/src/Cloudflare/LoadBalancer/Pool.ts +4 -3
  904. package/src/Cloudflare/LocalRuntime.ts +17 -0
  905. package/src/Cloudflare/MagicNetworkMonitoring/Rule.ts +4 -3
  906. package/src/Cloudflare/Pipelines/Pipeline.ts +8 -6
  907. package/src/Cloudflare/Pipelines/Sink.ts +8 -6
  908. package/src/Cloudflare/Pipelines/Stream.ts +4 -3
  909. package/src/Cloudflare/Providers.ts +21 -19
  910. package/src/Cloudflare/Queues/Consumer.ts +45 -9
  911. package/src/Cloudflare/Queues/Queue.ts +4 -3
  912. package/src/Cloudflare/Queues/QueueHttp.ts +24 -2
  913. package/src/Cloudflare/Queues/WriteQueueHttp.ts +16 -7
  914. package/src/Cloudflare/Queues/WriteQueueLocal.ts +64 -0
  915. package/src/Cloudflare/Queues/index.ts +1 -0
  916. package/src/Cloudflare/R2/Bucket.ts +12 -9
  917. package/src/Cloudflare/R2/BucketEventNotification.ts +4 -3
  918. package/src/Cloudflare/R2/BucketHttp.ts +20 -3
  919. package/src/Cloudflare/R2/BucketLocal.ts +47 -0
  920. package/src/Cloudflare/R2/DataCatalog.ts +4 -3
  921. package/src/Cloudflare/R2/ReadBucketHttp.ts +10 -5
  922. package/src/Cloudflare/R2/ReadBucketLocal.ts +33 -0
  923. package/src/Cloudflare/R2/ReadWriteBucketHttp.ts +11 -5
  924. package/src/Cloudflare/R2/ReadWriteBucketLocal.ts +36 -0
  925. package/src/Cloudflare/R2/WriteBucketHttp.ts +10 -5
  926. package/src/Cloudflare/R2/WriteBucketLocal.ts +33 -0
  927. package/src/Cloudflare/R2/index.ts +3 -0
  928. package/src/Cloudflare/Rum/Rule.ts +4 -3
  929. package/src/Cloudflare/Snippets/Snippet.ts +4 -3
  930. package/src/Cloudflare/StateStore/CredentialsFile.ts +48 -0
  931. package/src/Cloudflare/StateStore/State.ts +61 -25
  932. package/src/Cloudflare/Tags/ZoneResourceTags.ts +4 -3
  933. package/src/Cloudflare/Tunnel/ReadTunnel.ts +8 -9
  934. package/src/Cloudflare/Tunnel/ReadTunnelLocal.ts +33 -0
  935. package/src/Cloudflare/Tunnel/ReadWriteTunnel.ts +5 -5
  936. package/src/Cloudflare/Tunnel/ReadWriteTunnelLocal.ts +39 -0
  937. package/src/Cloudflare/Tunnel/TunnelBinding.ts +26 -2
  938. package/src/Cloudflare/Tunnel/TunnelLocalBinding.ts +38 -0
  939. package/src/Cloudflare/Tunnel/WarpConnector.ts +8 -5
  940. package/src/Cloudflare/Tunnel/WriteTunnel.ts +8 -9
  941. package/src/Cloudflare/Tunnel/WriteTunnelLocal.ts +33 -0
  942. package/src/Cloudflare/Tunnel/index.ts +3 -0
  943. package/src/Cloudflare/UrlNormalization/UrlNormalization.ts +7 -4
  944. package/src/Cloudflare/Vectorize/SearchIndexHttpClient.ts +183 -0
  945. package/src/Cloudflare/Vectorize/SearchIndexLocal.ts +70 -0
  946. package/src/Cloudflare/Vectorize/index.ts +1 -0
  947. package/src/Cloudflare/WaitingRoom/Settings.ts +7 -4
  948. package/src/Cloudflare/Website/Vite.ts +20 -0
  949. package/src/Cloudflare/Workers/BrowserHttpClient.ts +201 -0
  950. package/src/Cloudflare/Workers/BrowserLocal.ts +65 -0
  951. package/src/Cloudflare/Workers/Compatibility.ts +50 -7
  952. package/src/Cloudflare/Workers/ConfigProvider.ts +15 -1
  953. package/src/Cloudflare/Workers/CronEventSource.ts +3 -2
  954. package/src/Cloudflare/Workers/DurableObject.ts +227 -6
  955. package/src/Cloudflare/Workers/DurableObjectBridge.ts +38 -33
  956. package/src/Cloudflare/Workers/HttpServer.ts +1 -4
  957. package/src/Cloudflare/Workers/LocalWorkerProvider.ts +132 -26
  958. package/src/Cloudflare/Workers/ObservabilityDestination.ts +4 -3
  959. package/src/Cloudflare/Workers/Vite.ts +93 -11
  960. package/src/Cloudflare/Workers/Worker.ts +46 -6
  961. package/src/Cloudflare/Workers/WorkerAsyncBindings.ts +33 -21
  962. package/src/Cloudflare/Workers/WorkerBinding.ts +20 -1
  963. package/src/Cloudflare/Workers/WorkerBridge.ts +239 -108
  964. package/src/Cloudflare/Workers/WorkerProvider.ts +689 -135
  965. package/src/Cloudflare/Workers/WorkerRuntimeContext.ts +14 -45
  966. package/src/Cloudflare/Workers/cloudflare_workers.ts +20 -12
  967. package/src/Cloudflare/Workers/index.ts +1 -0
  968. package/src/Cloudflare/Workflows/Workflow.ts +54 -20
  969. package/src/Cloudflare/Workflows/WorkflowBridge.ts +19 -23
  970. package/src/Cloudflare/Workflows/WorkflowName.ts +41 -0
  971. package/src/Cloudflare/Zone/Hold.ts +7 -4
  972. package/src/Command/Dev.ts +42 -10
  973. package/src/Diff.ts +33 -0
  974. package/src/Docker/Container.ts +4 -1
  975. package/src/Drizzle/Postgres.ts +51 -23
  976. package/src/GitHub/AuthProvider.ts +0 -3
  977. package/src/GitHub/Env.ts +57 -0
  978. package/src/GitHub/Secrets.ts +1 -1
  979. package/src/GitHub/Variables.ts +1 -1
  980. package/src/GitHub/index.ts +1 -0
  981. package/src/Http.ts +11 -0
  982. package/src/Local/RpcProviderProxy.ts +1 -1
  983. package/src/Local/RpcSerialization.ts +6 -2
  984. package/src/Local/RpcSpawner.ts +21 -8
  985. package/src/Neon/AuthProvider.ts +1 -4
  986. package/src/Neon/Project.ts +2 -2
  987. package/src/Plan.ts +43 -13
  988. package/src/Planetscale/AuthProvider.ts +267 -27
  989. package/src/Planetscale/Branch.ts +4 -3
  990. package/src/Planetscale/Credentials.ts +18 -6
  991. package/src/Planetscale/Database.ts +2 -1
  992. package/src/Planetscale/MySQL/MySQLClusterSize.ts +120 -21
  993. package/src/Planetscale/MySQL/MySQLDatabase.ts +84 -44
  994. package/src/Planetscale/MySQL/MySQLMigrations.ts +4 -3
  995. package/src/Planetscale/OAuthClient.ts +307 -0
  996. package/src/Planetscale/Postgres/PostgresClusterSize.ts +4 -3
  997. package/src/Planetscale/Postgres/PostgresMigrations.ts +4 -3
  998. package/src/Planetscale/Util.ts +4 -3
  999. package/src/Platform.ts +83 -7
  1000. package/src/Provider.ts +35 -0
  1001. package/src/Runtime.ts +92 -0
  1002. package/src/RuntimeContext.ts +79 -0
  1003. package/src/Server/Process.ts +11 -18
  1004. package/src/Stack.ts +1 -1
  1005. package/src/State/HttpStateStore.ts +5 -5
  1006. package/src/Sync.ts +3 -0
  1007. package/src/Test/Alchemy.ts +282 -0
  1008. package/src/Test/Http.ts +8 -6
  1009. package/src/Util/cached-function.ts +5 -5
  1010. package/src/Util/data.ts +14 -5
  1011. package/src/Util/poll.ts +1 -1
  1012. package/src/Util/proxy-chain.ts +3 -0
  1013. package/lib/ExecutionContext.d.ts +0 -18
  1014. package/lib/ExecutionContext.d.ts.map +0 -1
  1015. package/lib/ExecutionContext.js +0 -10
  1016. package/lib/ExecutionContext.js.map +0 -1
  1017. package/src/ExecutionContext.ts +0 -18
@@ -1,7 +1,13 @@
1
+ import * as PsCredentialsModule from "@distilled.cloud/planetscale/Credentials";
2
+ import { listOrganizations } from "@distilled.cloud/planetscale/Operations";
1
3
  import * as Console from "effect/Console";
4
+ import * as Duration from "effect/Duration";
2
5
  import * as Effect from "effect/Effect";
6
+ import * as Layer from "effect/Layer";
3
7
  import * as Match from "effect/Match";
4
8
  import * as Redacted from "effect/Redacted";
9
+ import * as FetchHttpClient from "effect/unstable/http/FetchHttpClient";
10
+ import * as HttpClient from "effect/unstable/http/HttpClient";
5
11
  import {
6
12
  AuthError,
7
13
  AuthProviderLayer,
@@ -14,6 +20,7 @@ import {
14
20
  retryOnce,
15
21
  } from "../Auth/Env.ts";
16
22
  import * as Clank from "../Util/Clank.ts";
23
+ import * as OAuthClient from "./OAuthClient.ts";
17
24
 
18
25
  /**
19
26
  * Canonical name registered in {@link AuthProviders}. Use this key to look
@@ -21,6 +28,66 @@ import * as Clank from "../Util/Clank.ts";
21
28
  */
22
29
  export const PLANETSCALE_AUTH_PROVIDER_NAME = "Planetscale";
23
30
 
31
+ /**
32
+ * Provide PlanetScale `Credentials` + `HttpClient` to an Effect using a
33
+ * just-obtained OAuth access token. Used during configure to call
34
+ * org-discovery endpoints before the user has chosen an org.
35
+ *
36
+ * `organization` is required by the credential type but isn't consulted by
37
+ * `listOrganizations` (it's a user-scoped endpoint), so an empty string is
38
+ * fine here.
39
+ */
40
+ const withOAuthCredentials = <A, E>(
41
+ accessToken: string,
42
+ effect: Effect.Effect<
43
+ A,
44
+ E,
45
+ PsCredentialsModule.Credentials | HttpClient.HttpClient
46
+ >,
47
+ ): Effect.Effect<A, E> =>
48
+ Effect.provide(
49
+ effect,
50
+ Layer.mergeAll(
51
+ PsCredentialsModule.fromOAuth({
52
+ accessToken,
53
+ organization: "",
54
+ }),
55
+ FetchHttpClient.layer,
56
+ ),
57
+ );
58
+
59
+ /**
60
+ * List the organizations the OAuth user belongs to and either auto-pick
61
+ * (one org) or prompt the user to choose. Returns the org's URL slug
62
+ * (`name` field, used as `{organization}` in API paths).
63
+ */
64
+ const selectOrganization = (accessToken: string) =>
65
+ Effect.gen(function* () {
66
+ const list = yield* listOrganizations;
67
+ const response = yield* list({});
68
+ const orgs = response.data;
69
+ if (orgs.length === 0) {
70
+ return yield* new AuthError({
71
+ message: "Planetscale: no organizations found for this credential.",
72
+ });
73
+ }
74
+ if (orgs.length === 1) {
75
+ const org = orgs[0]!;
76
+ yield* Clank.info(
77
+ `Planetscale: using organization: ${org.name} (${org.id})`,
78
+ );
79
+ return org.name;
80
+ }
81
+ return yield* Clank.select({
82
+ message: "Select a Planetscale organization",
83
+ options: orgs.map((o) => ({
84
+ value: o.name,
85
+ label: o.name,
86
+ hint: o.id,
87
+ })),
88
+ }).pipe(retryOnce);
89
+ }).pipe((e) => withOAuthCredentials(accessToken, e));
90
+
24
91
  const options: Array<{
25
92
  value: PlanetscaleAuthConfig["method"];
26
93
  label: string;
@@ -31,12 +98,16 @@ const options: Array<{
31
98
  label: "Environment Variables",
32
99
  hint: "PLANETSCALE_API_TOKEN_ID + PLANETSCALE_API_TOKEN + PLANETSCALE_ORGANIZATION",
33
100
  },
101
+ {
102
+ value: "oauth",
103
+ label: "OAuth",
104
+ hint: "recommended — browser-based login with automatic token refresh",
105
+ },
34
106
  {
35
107
  value: "stored",
36
108
  label: "Service Token",
37
109
  hint: "enter service token interactively, stored in ~/.alchemy/credentials",
38
110
  },
39
- //todo(pear): add planetscale oauth
40
111
  ];
41
112
 
42
113
  /**
@@ -44,13 +115,17 @@ const options: Array<{
44
115
  * PlanetScale provider.
45
116
  *
46
117
  * - `env`: read credentials from environment variables at resolution time.
47
- * - `stored`: read credentials from `~/.alchemy/credentials/<profile>/planetscale-stored.json`.
48
- *
49
- * OAuth is intentionally not implemented because PlanetScale does not
50
- * publish a redirect-based OAuth client; service tokens are the canonical
51
- * credential.
118
+ * - `stored`: read service-token credentials from
119
+ * `~/.alchemy/credentials/<profile>/planetscale-stored.json`.
120
+ * - `oauth`: browser-based login; the access/refresh tokens are stored at
121
+ * `~/.alchemy/credentials/<profile>/planetscale-oauth.json` and refreshed
122
+ * on demand. PlanetScale has no PKCE flow, so the OAuth application's
123
+ * `client_secret` ships in the CLI — see {@link OAuthClient}.
52
124
  */
53
- export type PlanetscaleAuthConfig = { method: "env" } | { method: "stored" };
125
+ export type PlanetscaleAuthConfig =
126
+ | { method: "env" }
127
+ | { method: "stored" }
128
+ | { method: "oauth"; organization: string };
54
129
 
55
130
  /**
56
131
  * apiToken credentials persisted to disk for `method: "stored"`.
@@ -65,18 +140,30 @@ export interface PlanetscaleStoredCredentials {
65
140
 
66
141
  /**
67
142
  * Resolved in-memory PlanetScale credentials returned by
68
- * {@link AuthProviderImpl.read}.
143
+ * {@link AuthProviderImpl.read}. Either a service token (`tokenId`/`token`)
144
+ * or an OAuth access token.
69
145
  */
70
- export interface PlanetscaleResolvedCredentials {
71
- type: "apiToken";
72
- tokenId: Redacted.Redacted<string>;
73
- token: Redacted.Redacted<string>;
74
- organization: string;
75
- source: {
76
- type: PlanetscaleAuthConfig["method"];
77
- details?: string;
78
- };
79
- }
146
+ export type PlanetscaleResolvedCredentials =
147
+ | {
148
+ type: "apiToken";
149
+ tokenId: Redacted.Redacted<string>;
150
+ token: Redacted.Redacted<string>;
151
+ organization: string;
152
+ source: {
153
+ type: PlanetscaleAuthConfig["method"];
154
+ details?: string;
155
+ };
156
+ }
157
+ | {
158
+ type: "oauth";
159
+ accessToken: Redacted.Redacted<string>;
160
+ expires: number;
161
+ organization: string;
162
+ source: {
163
+ type: PlanetscaleAuthConfig["method"];
164
+ details?: string;
165
+ };
166
+ };
80
167
 
81
168
  /**
82
169
  * Layer that registers the PlanetScale {@link AuthProvider} into the
@@ -87,6 +174,8 @@ export interface PlanetscaleResolvedCredentials {
87
174
  * - `env`: reads `PLANETSCALE_API_TOKEN_ID`/`PLANETSCALE_API_TOKEN`/`PLANETSCALE_ORGANIZATION`.
88
175
  * - `stored`: prompts for a service token interactively and writes it to
89
176
  * `~/.alchemy/credentials/<profile>/planetscale-stored.json`.
177
+ * - `oauth`: browser-based login storing access/refresh tokens at
178
+ * `~/.alchemy/credentials/<profile>/planetscale-oauth.json`.
90
179
  */
91
180
  export const PlanetscaleAuth = AuthProviderLayer<
92
181
  PlanetscaleAuthConfig,
@@ -96,6 +185,54 @@ export const PlanetscaleAuth = AuthProviderLayer<
96
185
  Effect.gen(function* () {
97
186
  const store = yield* CredentialsStore;
98
187
 
188
+ const oauthLogin = (profileName: string) =>
189
+ Effect.gen(function* () {
190
+ const authorization = OAuthClient.authorize();
191
+
192
+ yield* Clank.info("Planetscale: opening browser for OAuth login...");
193
+ yield* Clank.info(authorization.url);
194
+ yield* Clank.openUrl(authorization.url).pipe(
195
+ Effect.catch(() =>
196
+ Clank.warn(
197
+ "Planetscale: could not open browser automatically. Please open the URL above manually.",
198
+ ),
199
+ ),
200
+ );
201
+ yield* Clank.info(
202
+ "Planetscale: waiting for authorization (up to 5 minutes)...",
203
+ );
204
+
205
+ const credentials = yield* OAuthClient.callback(authorization);
206
+ yield* store.write(profileName, "planetscale-oauth", credentials);
207
+ yield* Clank.success("Planetscale: OAuth credentials saved.");
208
+ return credentials;
209
+ });
210
+
211
+ const configureOAuth = Effect.fn(function* (profileName: string) {
212
+ const oauthCreds = yield* oauthLogin(profileName);
213
+
214
+ // Use the just-issued access token to list the user's orgs and let
215
+ // them pick (mirrors Cloudflare's selectAccount). Requires the
216
+ // `user:read_organizations` scope. If the call fails for any
217
+ // reason — missing scope, network, off-spec response — fall back
218
+ // to a manual prompt so login still completes.
219
+ const organization = yield* selectOrganization(oauthCreds.access).pipe(
220
+ Effect.catch((e) =>
221
+ Effect.gen(function* () {
222
+ yield* Clank.warn(
223
+ `Planetscale: could not auto-list organizations (${String(e)}). Falling back to manual entry.`,
224
+ );
225
+ return yield* Clank.text({
226
+ message: "Planetscale Organization (URL slug)",
227
+ validate: (v) => (v.length === 0 ? "Required" : undefined),
228
+ }).pipe(retryOnce);
229
+ }),
230
+ ),
231
+ );
232
+
233
+ return { method: "oauth" as const, organization };
234
+ });
235
+
99
236
  const loginStored = Effect.fn(function* (profileName: string) {
100
237
  const tokenId = yield* Clank.text({
101
238
  message: "Planetscale Service Token ID",
@@ -134,6 +271,7 @@ export const PlanetscaleAuth = AuthProviderLayer<
134
271
  Effect.flatMap((method) =>
135
272
  Match.value(method).pipe(
136
273
  Match.when("env", () => Effect.succeed({ method: "env" as const })),
274
+ Match.when("oauth", () => configureOAuth(profileName)),
137
275
  Match.when("stored", () => loginStored(profileName)),
138
276
  Match.exhaustive,
139
277
  ),
@@ -214,6 +352,48 @@ export const PlanetscaleAuth = AuthProviderLayer<
214
352
  ),
215
353
  ),
216
354
  ),
355
+ Match.when({ method: "oauth" }, (cfg) =>
356
+ Effect.gen(function* () {
357
+ const creds = yield* store.read<OAuthClient.OAuthCredentials>(
358
+ profileName,
359
+ "planetscale-oauth",
360
+ );
361
+ if (creds == null || creds.type !== "oauth") {
362
+ return yield* Effect.fail(
363
+ new AuthError({
364
+ message:
365
+ "Planetscale OAuth credentials not found. Run: alchemy login",
366
+ }),
367
+ );
368
+ }
369
+ // Refresh proactively if the token has expired (or is within
370
+ // 10s of expiring). Persist the refreshed creds so subsequent
371
+ // resolves don't repeat the round-trip.
372
+ const fresh =
373
+ creds.expires > Date.now() + 10_000
374
+ ? creds
375
+ : yield* OAuthClient.refresh(creds).pipe(
376
+ Effect.tap((refreshed) =>
377
+ store.write(profileName, "planetscale-oauth", refreshed),
378
+ ),
379
+ Effect.mapError(
380
+ (e) =>
381
+ new AuthError({
382
+ message:
383
+ "Planetscale OAuth refresh failed. Run: alchemy login",
384
+ cause: e,
385
+ }),
386
+ ),
387
+ );
388
+ return {
389
+ type: "oauth" as const,
390
+ accessToken: Redacted.make(fresh.access),
391
+ expires: fresh.expires,
392
+ organization: cfg.organization,
393
+ source: { type: "oauth" as const },
394
+ } satisfies PlanetscaleResolvedCredentials;
395
+ }),
396
+ ),
217
397
  Match.exhaustive,
218
398
  );
219
399
 
@@ -229,6 +409,17 @@ export const PlanetscaleAuth = AuthProviderLayer<
229
409
  ),
230
410
  ),
231
411
  ),
412
+ // PlanetScale publishes no token-revocation endpoint, so logout just
413
+ // drops the locally stored tokens.
414
+ Match.when({ method: "oauth" }, () =>
415
+ store
416
+ .delete(profileName, "planetscale-oauth")
417
+ .pipe(
418
+ Effect.andThen(
419
+ Clank.success("Planetscale: OAuth credentials removed."),
420
+ ),
421
+ ),
422
+ ),
232
423
  Match.exhaustive,
233
424
  );
234
425
 
@@ -248,6 +439,39 @@ export const PlanetscaleAuth = AuthProviderLayer<
248
439
  ),
249
440
  ),
250
441
  ),
442
+ Match.when({ method: "oauth" }, (c) =>
443
+ Effect.gen(function* () {
444
+ const creds = yield* store.read<OAuthClient.OAuthCredentials>(
445
+ profileName,
446
+ "planetscale-oauth",
447
+ );
448
+
449
+ if (creds?.type === "oauth") {
450
+ yield* Clank.info(
451
+ "Planetscale: refreshing OAuth credentials...",
452
+ );
453
+ yield* OAuthClient.refresh(creds).pipe(
454
+ Effect.flatMap((refreshed) =>
455
+ store
456
+ .write(profileName, "planetscale-oauth", refreshed)
457
+ .pipe(
458
+ Effect.andThen(
459
+ Clank.success(
460
+ "Planetscale: OAuth credentials refreshed.",
461
+ ),
462
+ ),
463
+ ),
464
+ ),
465
+ Effect.catchTag("OAuthError", () =>
466
+ oauthLogin(profileName).pipe(Effect.asVoid),
467
+ ),
468
+ );
469
+ return;
470
+ }
471
+
472
+ yield* oauthLogin(profileName);
473
+ }),
474
+ ),
251
475
  Match.exhaustive,
252
476
  )
253
477
  .pipe(
@@ -262,16 +486,32 @@ export const PlanetscaleAuth = AuthProviderLayer<
262
486
  const sourceStr = creds.source.details
263
487
  ? `${creds.source.type} - ${creds.source.details}`
264
488
  : creds.source.type;
265
- return Effect.all([
266
- Console.log(` tokenId: ${displayRedacted(creds.token, 3)}`),
267
- Console.log(` token: ${displayRedacted(creds.token, 6)}`),
268
- Console.log(` organization: ${creds.organization}`),
269
- Console.log(` source: ${sourceStr}`),
270
- ]);
489
+ return Match.value(creds).pipe(
490
+ Match.when({ type: "apiToken" }, (c) =>
491
+ Effect.all([
492
+ Console.log(` tokenId: ${displayRedacted(c.tokenId, 3)}`),
493
+ Console.log(` token: ${displayRedacted(c.token, 6)}`),
494
+ Console.log(` organization: ${c.organization}`),
495
+ Console.log(` source: ${sourceStr}`),
496
+ ]),
497
+ ),
498
+ Match.when({ type: "oauth" }, (c) => {
499
+ const remainingMs = c.expires - Date.now();
500
+ const expiresAt = new Date(c.expires).toISOString();
501
+ const expiresStr =
502
+ remainingMs <= 0
503
+ ? `expired (${expiresAt})`
504
+ : `in ${Duration.format(Duration.millis(remainingMs))} (${expiresAt})`;
505
+ return Effect.all([
506
+ Console.log(` accessToken: ${displayRedacted(c.accessToken)}`),
507
+ Console.log(` expires: ${expiresStr}`),
508
+ Console.log(` organization: ${c.organization}`),
509
+ Console.log(` source: ${sourceStr}`),
510
+ ]);
511
+ }),
512
+ Match.exhaustive,
513
+ );
271
514
  }),
272
- Effect.catch((e) =>
273
- Console.error(` Failed to retrieve credentials: ${e}`),
274
- ),
275
515
  );
276
516
 
277
517
  return {
@@ -484,9 +484,10 @@ export const makeBranchProvider = <R extends ResourceLike>(opts: {
484
484
  // rejected with an UnprocessableEntity. Retry until it clears.
485
485
  const retryWhileResizing = Effect.retry({
486
486
  while: isResizeInProgress,
487
- schedule: Schedule.spaced("5 seconds").pipe(
488
- Schedule.both(Schedule.recurs(120)),
489
- ),
487
+ schedule: Schedule.max([
488
+ Schedule.spaced("5 seconds"),
489
+ Schedule.recurs(120),
490
+ ]),
490
491
  });
491
492
  current = desiredProduction
492
493
  ? yield* planetscale
@@ -1,5 +1,6 @@
1
1
  import { ConfigError } from "@distilled.cloud/core/errors";
2
2
  import {
3
+ type Config as PlanetscaleClientConfig,
3
4
  Credentials,
4
5
  DEFAULT_API_BASE_URL,
5
6
  } from "@distilled.cloud/planetscale/Credentials";
@@ -82,12 +83,23 @@ export const fromAuthProvider = () =>
82
83
  Effect.flatMap((config) =>
83
84
  auth.read(profileName, config as PlanetscaleAuthConfig),
84
85
  ),
85
- Effect.map((creds) => ({
86
- tokenId: creds.tokenId,
87
- token: creds.token,
88
- organization: creds.organization,
89
- apiBaseUrl,
90
- })),
86
+ Effect.map(
87
+ (creds): PlanetscaleClientConfig =>
88
+ creds.type === "oauth"
89
+ ? {
90
+ type: "oauth",
91
+ accessToken: creds.accessToken,
92
+ organization: creds.organization,
93
+ apiBaseUrl,
94
+ }
95
+ : {
96
+ type: "serviceToken",
97
+ tokenId: creds.tokenId,
98
+ token: creds.token,
99
+ organization: creds.organization,
100
+ apiBaseUrl,
101
+ },
102
+ ),
91
103
  Effect.mapError(
92
104
  (e) =>
93
105
  new ConfigError({
@@ -29,7 +29,8 @@ export interface BaseDatabaseProps {
29
29
 
30
30
  /**
31
31
  * Number of replicas for the database. `0` for non-HA, `2+` for HA.
32
- * Create-only.
32
+ * Create-only for PostgreSQL databases; MySQL databases reconcile
33
+ * changes in place ({@link MySQLDatabaseProps.replicas}).
33
34
  */
34
35
  replicas?: number;
35
36
 
@@ -1,6 +1,7 @@
1
1
  import * as ops from "@distilled.cloud/planetscale/Operations";
2
2
  import * as Effect from "effect/Effect";
3
- import { pollUntil } from "../Util.ts";
3
+ import * as Schedule from "effect/Schedule";
4
+ import { PlanetscaleConflict, pollUntil } from "../Util.ts";
4
5
 
5
6
  /**
6
7
  * Available PlanetScale MySQL (Vitess) cluster sizes.
@@ -55,15 +56,15 @@ export const waitForKeyspaceReady = Effect.fn(function* (
55
56
  });
56
57
 
57
58
  /**
58
- * Ensures the default keyspace of a MySQL production branch has the
59
- * expected cluster size, triggering a resize if it doesn't. Cluster sizes
60
- * can only be configured on production branches.
59
+ * Observes the default keyspace of a branch. The default keyspace usually
60
+ * shares the database's name, but a renamed database keeps its original
61
+ * keyspace name, so prefer the `default` flag and fall back to name
62
+ * matching.
61
63
  */
62
- export const ensureMySQLProductionBranchClusterSize = Effect.fn(function* (
64
+ const observeDefaultKeyspace = Effect.fn(function* (
63
65
  organization: string,
64
66
  database: string,
65
67
  branch: string,
66
- expectedClusterSize: MySQLClusterSize,
67
68
  ) {
68
69
  const keyspaces = yield* ops.listKeyspaces({
69
70
  organization,
@@ -72,31 +73,129 @@ export const ensureMySQLProductionBranchClusterSize = Effect.fn(function* (
72
73
  page: 1,
73
74
  per_page: 100,
74
75
  });
75
- // Default keyspace is always the same name as the database.
76
- const defaultKeyspace = keyspaces.data.find((x) => x.name === database);
77
- if (!defaultKeyspace) {
76
+ return (
77
+ keyspaces.data.find((x) => x.default) ??
78
+ keyspaces.data.find((x) => x.name === database)
79
+ );
80
+ });
81
+
82
+ /**
83
+ * Observes the total replica count of a branch's default keyspace, or
84
+ * `undefined` when the branch or keyspace does not exist (yet).
85
+ */
86
+ export const observeDefaultKeyspaceReplicas = Effect.fn(function* (
87
+ organization: string,
88
+ database: string,
89
+ branch: string,
90
+ ) {
91
+ return yield* observeDefaultKeyspace(organization, database, branch).pipe(
92
+ Effect.map((keyspace) => keyspace?.replicas),
93
+ Effect.catchTag("NotFound", () => Effect.succeed(undefined)),
94
+ );
95
+ });
96
+
97
+ /**
98
+ * Ensures the default keyspace of a MySQL production branch has the
99
+ * expected cluster size and (optionally) total replica count, driving
100
+ * PlanetScale's in-place keyspace resize lifecycle when it doesn't.
101
+ * Cluster sizes can only be configured on production branches. Returns
102
+ * the final observed keyspace.
103
+ */
104
+ export const ensureMySQLProductionBranchClusterSize = Effect.fn(function* (
105
+ organization: string,
106
+ database: string,
107
+ branch: string,
108
+ expectedClusterSize: MySQLClusterSize,
109
+ expectedReplicas?: number,
110
+ ) {
111
+ let keyspace = yield* observeDefaultKeyspace(organization, database, branch);
112
+ if (!keyspace) {
78
113
  return yield* Effect.die(`No default keyspace found for branch ${branch}`);
79
114
  }
80
115
 
81
- yield* waitForKeyspaceReady(
82
- organization,
83
- database,
84
- branch,
85
- defaultKeyspace.name,
86
- );
116
+ yield* waitForKeyspaceReady(organization, database, branch, keyspace.name);
87
117
 
88
- if (defaultKeyspace.cluster_name !== expectedClusterSize) {
118
+ if (keyspace.cluster_name !== expectedClusterSize) {
89
119
  yield* ops.updateBranchClusterConfig({
90
120
  organization,
91
121
  database,
92
122
  branch,
93
123
  cluster_size: expectedClusterSize,
94
124
  });
95
- yield* waitForKeyspaceReady(
96
- organization,
97
- database,
98
- branch,
99
- defaultKeyspace.name,
125
+ yield* waitForKeyspaceReady(organization, database, branch, keyspace.name);
126
+ // Re-observe so the replica sync below diffs against the post-resize
127
+ // keyspace state.
128
+ keyspace =
129
+ (yield* observeDefaultKeyspace(organization, database, branch)) ??
130
+ keyspace;
131
+ }
132
+
133
+ // Sync replicas — MySQL databases cannot configure replicas at
134
+ // creation time (the API rejects the `replicas` param for mysql), so
135
+ // the desired total replica count is converged in place via a keyspace
136
+ // resize request.
137
+ if (
138
+ expectedReplicas !== undefined &&
139
+ keyspace.replicas !== expectedReplicas
140
+ ) {
141
+ // Each cluster size includes a fixed number of replicas (2 for
142
+ // production PS_* sizes); the resize API only accepts the count of
143
+ // additional replicas beyond that.
144
+ const includedReplicas = keyspace.replicas - keyspace.extra_replicas;
145
+ const extraReplicas = expectedReplicas - includedReplicas;
146
+ if (extraReplicas < 0) {
147
+ return yield* Effect.fail(
148
+ new PlanetscaleConflict({
149
+ message:
150
+ `Cannot set replicas to ${expectedReplicas} on keyspace "${keyspace.name}": ` +
151
+ `cluster size ${keyspace.cluster_name} always includes ${includedReplicas} replicas. ` +
152
+ `Set replicas to ${includedReplicas} or more (or omit it).`,
153
+ }),
154
+ );
155
+ }
156
+
157
+ const resize = yield* ops
158
+ .createKeyspaceResizeRequest({
159
+ organization,
160
+ database,
161
+ branch,
162
+ keyspace: keyspace.name,
163
+ extra_replicas: extraReplicas,
164
+ })
165
+ .pipe(
166
+ // A prior resize (e.g. the cluster-size change above) can still
167
+ // be finalizing after the keyspace reports `resizing: false`;
168
+ // PlanetScale rejects new resize requests during that window.
169
+ Effect.retry({
170
+ while: (e): boolean =>
171
+ e._tag === "UnprocessableEntity" &&
172
+ e.message.includes("resize in progress"),
173
+ schedule: Schedule.max([
174
+ Schedule.spaced("5 seconds"),
175
+ Schedule.recurs(120),
176
+ ]),
177
+ }),
178
+ );
179
+
180
+ yield* pollUntil(
181
+ `keyspace "${keyspace.name}" resize completed`,
182
+ ops.listKeyspaceResizeRequests({
183
+ organization,
184
+ database,
185
+ branch,
186
+ keyspace: keyspace.name,
187
+ }),
188
+ (page) => {
189
+ const request = page.data.find((r) => r.id === resize.id);
190
+ // If the request is missing, treat as settled (caller re-observes).
191
+ return request ? request.state === "completed" : true;
192
+ },
100
193
  );
194
+
195
+ keyspace =
196
+ (yield* observeDefaultKeyspace(organization, database, branch)) ??
197
+ keyspace;
101
198
  }
199
+
200
+ return keyspace;
102
201
  });