alchemy 2.0.0-beta.60 → 2.0.0-beta.61

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 (607) hide show
  1. package/bin/cli.js +9 -1
  2. package/bin/exec.js +15 -5
  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 +9 -2
  6. package/lib/AWS/ACM/Certificate.js.map +1 -1
  7. package/lib/AWS/AutoScaling/AutoScalingGroup.d.ts.map +1 -1
  8. package/lib/AWS/AutoScaling/AutoScalingGroup.js +18 -11
  9. package/lib/AWS/AutoScaling/AutoScalingGroup.js.map +1 -1
  10. package/lib/AWS/AutoScaling/LaunchTemplate.js +6 -1
  11. package/lib/AWS/AutoScaling/LaunchTemplate.js.map +1 -1
  12. package/lib/AWS/AutoScaling/ScalingPolicy.d.ts.map +1 -1
  13. package/lib/AWS/AutoScaling/ScalingPolicy.js +28 -10
  14. package/lib/AWS/AutoScaling/ScalingPolicy.js.map +1 -1
  15. package/lib/AWS/CloudFront/PublicKey.d.ts.map +1 -1
  16. package/lib/AWS/CloudFront/PublicKey.js +5 -1
  17. package/lib/AWS/CloudFront/PublicKey.js.map +1 -1
  18. package/lib/AWS/DynamoDB/Table.js +1 -1
  19. package/lib/AWS/DynamoDB/Table.js.map +1 -1
  20. package/lib/AWS/ECS/Service.d.ts.map +1 -1
  21. package/lib/AWS/ECS/Service.js +29 -4
  22. package/lib/AWS/ECS/Service.js.map +1 -1
  23. package/lib/AWS/IAM/OpenIDConnectProvider.d.ts.map +1 -1
  24. package/lib/AWS/IAM/OpenIDConnectProvider.js +9 -1
  25. package/lib/AWS/IAM/OpenIDConnectProvider.js.map +1 -1
  26. package/lib/AWS/Lambda/Alias.d.ts +26 -0
  27. package/lib/AWS/Lambda/Alias.d.ts.map +1 -1
  28. package/lib/AWS/Lambda/Alias.js +31 -0
  29. package/lib/AWS/Lambda/Alias.js.map +1 -1
  30. package/lib/AWS/Lambda/EventInvokeConfig.d.ts +36 -0
  31. package/lib/AWS/Lambda/EventInvokeConfig.d.ts.map +1 -0
  32. package/lib/AWS/Lambda/EventInvokeConfig.js +76 -0
  33. package/lib/AWS/Lambda/EventInvokeConfig.js.map +1 -0
  34. package/lib/AWS/Lambda/Function.d.ts +27 -2
  35. package/lib/AWS/Lambda/Function.d.ts.map +1 -1
  36. package/lib/AWS/Lambda/Function.js +23 -2
  37. package/lib/AWS/Lambda/Function.js.map +1 -1
  38. package/lib/AWS/Lambda/index.d.ts +1 -0
  39. package/lib/AWS/Lambda/index.d.ts.map +1 -1
  40. package/lib/AWS/Lambda/index.js +1 -0
  41. package/lib/AWS/Lambda/index.js.map +1 -1
  42. package/lib/AWS/Organizations/DelegatedAdministrator.d.ts.map +1 -1
  43. package/lib/AWS/Organizations/DelegatedAdministrator.js +10 -2
  44. package/lib/AWS/Organizations/DelegatedAdministrator.js.map +1 -1
  45. package/lib/AWS/Organizations/PolicyAttachment.d.ts.map +1 -1
  46. package/lib/AWS/Organizations/PolicyAttachment.js +10 -4
  47. package/lib/AWS/Organizations/PolicyAttachment.js.map +1 -1
  48. package/lib/AWS/Organizations/RootPolicyType.d.ts.map +1 -1
  49. package/lib/AWS/Organizations/RootPolicyType.js +9 -4
  50. package/lib/AWS/Organizations/RootPolicyType.js.map +1 -1
  51. package/lib/AWS/Organizations/TrustedServiceAccess.d.ts.map +1 -1
  52. package/lib/AWS/Organizations/TrustedServiceAccess.js +8 -1
  53. package/lib/AWS/Organizations/TrustedServiceAccess.js.map +1 -1
  54. package/lib/AWS/Route53/HostedZone.d.ts.map +1 -1
  55. package/lib/AWS/Route53/HostedZone.js +20 -4
  56. package/lib/AWS/Route53/HostedZone.js.map +1 -1
  57. package/lib/AWS/Route53/Record.d.ts.map +1 -1
  58. package/lib/AWS/Route53/Record.js +32 -9
  59. package/lib/AWS/Route53/Record.js.map +1 -1
  60. package/lib/Apply.js +7 -1
  61. package/lib/Apply.js.map +1 -1
  62. package/lib/Auth/Lock.d.ts +17 -0
  63. package/lib/Auth/Lock.d.ts.map +1 -1
  64. package/lib/Auth/Lock.js +53 -18
  65. package/lib/Auth/Lock.js.map +1 -1
  66. package/lib/Bundle/PurePlugin.d.ts.map +1 -1
  67. package/lib/Bundle/PurePlugin.js +15 -2
  68. package/lib/Bundle/PurePlugin.js.map +1 -1
  69. package/lib/Cli/commands/sync.d.ts +22 -0
  70. package/lib/Cli/commands/sync.d.ts.map +1 -0
  71. package/lib/Cli/commands/sync.js +64 -0
  72. package/lib/Cli/commands/sync.js.map +1 -0
  73. package/lib/Cli/main.d.ts.map +1 -1
  74. package/lib/Cli/main.js +2 -0
  75. package/lib/Cli/main.js.map +1 -1
  76. package/lib/Cloudflare/AI/CustomTopics.d.ts.map +1 -1
  77. package/lib/Cloudflare/AI/CustomTopics.js +3 -1
  78. package/lib/Cloudflare/AI/CustomTopics.js.map +1 -1
  79. package/lib/Cloudflare/AI/Dataset.d.ts.map +1 -1
  80. package/lib/Cloudflare/AI/Dataset.js +3 -1
  81. package/lib/Cloudflare/AI/Dataset.js.map +1 -1
  82. package/lib/Cloudflare/AI/Evaluation.d.ts.map +1 -1
  83. package/lib/Cloudflare/AI/Evaluation.js +3 -1
  84. package/lib/Cloudflare/AI/Evaluation.js.map +1 -1
  85. package/lib/Cloudflare/AI/Gateway.d.ts.map +1 -1
  86. package/lib/Cloudflare/AI/Gateway.js +5 -6
  87. package/lib/Cloudflare/AI/Gateway.js.map +1 -1
  88. package/lib/Cloudflare/AI/GatewayDynamicRouting.d.ts.map +1 -1
  89. package/lib/Cloudflare/AI/GatewayDynamicRouting.js +3 -1
  90. package/lib/Cloudflare/AI/GatewayDynamicRouting.js.map +1 -1
  91. package/lib/Cloudflare/AI/GatewayProvider.d.ts +2 -1
  92. package/lib/Cloudflare/AI/GatewayProvider.d.ts.map +1 -1
  93. package/lib/Cloudflare/AI/GatewayProvider.js +5 -2
  94. package/lib/Cloudflare/AI/GatewayProvider.js.map +1 -1
  95. package/lib/Cloudflare/AI/ProviderKey.d.ts +135 -0
  96. package/lib/Cloudflare/AI/ProviderKey.d.ts.map +1 -0
  97. package/lib/Cloudflare/AI/ProviderKey.js +90 -0
  98. package/lib/Cloudflare/AI/ProviderKey.js.map +1 -0
  99. package/lib/Cloudflare/AI/SearchInstance.d.ts.map +1 -1
  100. package/lib/Cloudflare/AI/SearchInstance.js +5 -4
  101. package/lib/Cloudflare/AI/SearchInstance.js.map +1 -1
  102. package/lib/Cloudflare/AI/SearchNamespace.d.ts.map +1 -1
  103. package/lib/Cloudflare/AI/SearchNamespace.js +5 -4
  104. package/lib/Cloudflare/AI/SearchNamespace.js.map +1 -1
  105. package/lib/Cloudflare/AI/SearchToken.d.ts.map +1 -1
  106. package/lib/Cloudflare/AI/SearchToken.js +3 -1
  107. package/lib/Cloudflare/AI/SearchToken.js.map +1 -1
  108. package/lib/Cloudflare/AI/SecuritySettings.d.ts.map +1 -1
  109. package/lib/Cloudflare/AI/SecuritySettings.js +3 -1
  110. package/lib/Cloudflare/AI/SecuritySettings.js.map +1 -1
  111. package/lib/Cloudflare/AI/index.d.ts +1 -0
  112. package/lib/Cloudflare/AI/index.d.ts.map +1 -1
  113. package/lib/Cloudflare/AI/index.js +1 -0
  114. package/lib/Cloudflare/AI/index.js.map +1 -1
  115. package/lib/Cloudflare/Access/InfrastructureTarget.d.ts.map +1 -1
  116. package/lib/Cloudflare/Access/InfrastructureTarget.js +3 -1
  117. package/lib/Cloudflare/Access/InfrastructureTarget.js.map +1 -1
  118. package/lib/Cloudflare/Access/Organization.d.ts.map +1 -1
  119. package/lib/Cloudflare/Access/Organization.js +1 -1
  120. package/lib/Cloudflare/Access/Organization.js.map +1 -1
  121. package/lib/Cloudflare/Access/Policy.d.ts.map +1 -1
  122. package/lib/Cloudflare/Access/Policy.js +3 -1
  123. package/lib/Cloudflare/Access/Policy.js.map +1 -1
  124. package/lib/Cloudflare/Account/Account.d.ts.map +1 -1
  125. package/lib/Cloudflare/Account/Account.js +3 -1
  126. package/lib/Cloudflare/Account/Account.js.map +1 -1
  127. package/lib/Cloudflare/ApiToken/AccountApiToken.d.ts.map +1 -1
  128. package/lib/Cloudflare/ApiToken/AccountApiToken.js +1 -1
  129. package/lib/Cloudflare/ApiToken/AccountApiToken.js.map +1 -1
  130. package/lib/Cloudflare/ApiToken/UserApiToken.d.ts.map +1 -1
  131. package/lib/Cloudflare/ApiToken/UserApiToken.js +1 -1
  132. package/lib/Cloudflare/ApiToken/UserApiToken.js.map +1 -1
  133. package/lib/Cloudflare/Auth/AuthProvider.d.ts +3 -0
  134. package/lib/Cloudflare/Auth/AuthProvider.d.ts.map +1 -1
  135. package/lib/Cloudflare/Auth/AuthProvider.js +51 -14
  136. package/lib/Cloudflare/Auth/AuthProvider.js.map +1 -1
  137. package/lib/Cloudflare/BotManagement/BotManagement.d.ts.map +1 -1
  138. package/lib/Cloudflare/BotManagement/BotManagement.js +3 -1
  139. package/lib/Cloudflare/BotManagement/BotManagement.js.map +1 -1
  140. package/lib/Cloudflare/Cache/Reserve.d.ts.map +1 -1
  141. package/lib/Cloudflare/Cache/Reserve.js +3 -1
  142. package/lib/Cloudflare/Cache/Reserve.js.map +1 -1
  143. package/lib/Cloudflare/ClientCertificate/ClientCertificate.d.ts.map +1 -1
  144. package/lib/Cloudflare/ClientCertificate/ClientCertificate.js +3 -1
  145. package/lib/Cloudflare/ClientCertificate/ClientCertificate.js.map +1 -1
  146. package/lib/Cloudflare/Containers/Container.d.ts +2 -2
  147. package/lib/Cloudflare/Containers/Container.js +2 -2
  148. package/lib/Cloudflare/ContentScanning/ContentScanning.d.ts.map +1 -1
  149. package/lib/Cloudflare/ContentScanning/ContentScanning.js +3 -1
  150. package/lib/Cloudflare/ContentScanning/ContentScanning.js.map +1 -1
  151. package/lib/Cloudflare/CustomCertificate/CustomCertificate.d.ts.map +1 -1
  152. package/lib/Cloudflare/CustomCertificate/CustomCertificate.js +3 -1
  153. package/lib/Cloudflare/CustomCertificate/CustomCertificate.js.map +1 -1
  154. package/lib/Cloudflare/CustomHostname/CustomHostname.d.ts.map +1 -1
  155. package/lib/Cloudflare/CustomHostname/CustomHostname.js +1 -1
  156. package/lib/Cloudflare/CustomHostname/CustomHostname.js.map +1 -1
  157. package/lib/Cloudflare/CustomHostname/FallbackOrigin.d.ts.map +1 -1
  158. package/lib/Cloudflare/CustomHostname/FallbackOrigin.js +1 -1
  159. package/lib/Cloudflare/CustomHostname/FallbackOrigin.js.map +1 -1
  160. package/lib/Cloudflare/CustomNameserver/CustomNameserver.d.ts.map +1 -1
  161. package/lib/Cloudflare/CustomNameserver/CustomNameserver.js +3 -1
  162. package/lib/Cloudflare/CustomNameserver/CustomNameserver.js.map +1 -1
  163. package/lib/Cloudflare/D1/Database.d.ts.map +1 -1
  164. package/lib/Cloudflare/D1/Database.js +2 -2
  165. package/lib/Cloudflare/D1/Database.js.map +1 -1
  166. package/lib/Cloudflare/DNS/AccountSettings.d.ts.map +1 -1
  167. package/lib/Cloudflare/DNS/AccountSettings.js +3 -1
  168. package/lib/Cloudflare/DNS/AccountSettings.js.map +1 -1
  169. package/lib/Cloudflare/DNS/Dnssec.d.ts.map +1 -1
  170. package/lib/Cloudflare/DNS/Dnssec.js +3 -1
  171. package/lib/Cloudflare/DNS/Dnssec.js.map +1 -1
  172. package/lib/Cloudflare/DNS/Firewall.d.ts.map +1 -1
  173. package/lib/Cloudflare/DNS/Firewall.js +3 -1
  174. package/lib/Cloudflare/DNS/Firewall.js.map +1 -1
  175. package/lib/Cloudflare/DNS/Record.d.ts.map +1 -1
  176. package/lib/Cloudflare/DNS/Record.js +3 -1
  177. package/lib/Cloudflare/DNS/Record.js.map +1 -1
  178. package/lib/Cloudflare/DNS/View.d.ts.map +1 -1
  179. package/lib/Cloudflare/DNS/View.js +3 -1
  180. package/lib/Cloudflare/DNS/View.js.map +1 -1
  181. package/lib/Cloudflare/DNS/ZoneSettings.d.ts.map +1 -1
  182. package/lib/Cloudflare/DNS/ZoneSettings.js +3 -1
  183. package/lib/Cloudflare/DNS/ZoneSettings.js.map +1 -1
  184. package/lib/Cloudflare/DNS/ZoneTransferAcl.d.ts.map +1 -1
  185. package/lib/Cloudflare/DNS/ZoneTransferAcl.js +3 -1
  186. package/lib/Cloudflare/DNS/ZoneTransferAcl.js.map +1 -1
  187. package/lib/Cloudflare/DNS/ZoneTransferIncoming.d.ts.map +1 -1
  188. package/lib/Cloudflare/DNS/ZoneTransferIncoming.js +3 -1
  189. package/lib/Cloudflare/DNS/ZoneTransferIncoming.js.map +1 -1
  190. package/lib/Cloudflare/DNS/ZoneTransferOutgoing.d.ts.map +1 -1
  191. package/lib/Cloudflare/DNS/ZoneTransferOutgoing.js +3 -1
  192. package/lib/Cloudflare/DNS/ZoneTransferOutgoing.js.map +1 -1
  193. package/lib/Cloudflare/DNS/ZoneTransferPeer.d.ts.map +1 -1
  194. package/lib/Cloudflare/DNS/ZoneTransferPeer.js +3 -1
  195. package/lib/Cloudflare/DNS/ZoneTransferPeer.js.map +1 -1
  196. package/lib/Cloudflare/DNS/ZoneTransferTsig.d.ts.map +1 -1
  197. package/lib/Cloudflare/DNS/ZoneTransferTsig.js +3 -1
  198. package/lib/Cloudflare/DNS/ZoneTransferTsig.js.map +1 -1
  199. package/lib/Cloudflare/Email/Address.d.ts.map +1 -1
  200. package/lib/Cloudflare/Email/Address.js +3 -1
  201. package/lib/Cloudflare/Email/Address.js.map +1 -1
  202. package/lib/Cloudflare/Email/AllowPolicy.d.ts.map +1 -1
  203. package/lib/Cloudflare/Email/AllowPolicy.js +1 -1
  204. package/lib/Cloudflare/Email/AllowPolicy.js.map +1 -1
  205. package/lib/Cloudflare/Email/BlockSender.d.ts.map +1 -1
  206. package/lib/Cloudflare/Email/BlockSender.js +1 -1
  207. package/lib/Cloudflare/Email/BlockSender.js.map +1 -1
  208. package/lib/Cloudflare/Email/CatchAll.d.ts.map +1 -1
  209. package/lib/Cloudflare/Email/CatchAll.js +8 -2
  210. package/lib/Cloudflare/Email/CatchAll.js.map +1 -1
  211. package/lib/Cloudflare/Email/Domain.d.ts.map +1 -1
  212. package/lib/Cloudflare/Email/Domain.js +3 -1
  213. package/lib/Cloudflare/Email/Domain.js.map +1 -1
  214. package/lib/Cloudflare/Email/ImpersonationRegistryEntry.d.ts.map +1 -1
  215. package/lib/Cloudflare/Email/ImpersonationRegistryEntry.js +1 -1
  216. package/lib/Cloudflare/Email/ImpersonationRegistryEntry.js.map +1 -1
  217. package/lib/Cloudflare/Email/Routing.d.ts.map +1 -1
  218. package/lib/Cloudflare/Email/Routing.js +3 -1
  219. package/lib/Cloudflare/Email/Routing.js.map +1 -1
  220. package/lib/Cloudflare/Email/Rule.d.ts.map +1 -1
  221. package/lib/Cloudflare/Email/Rule.js +3 -1
  222. package/lib/Cloudflare/Email/Rule.js.map +1 -1
  223. package/lib/Cloudflare/Email/SendingSubdomain.d.ts.map +1 -1
  224. package/lib/Cloudflare/Email/SendingSubdomain.js +1 -1
  225. package/lib/Cloudflare/Email/SendingSubdomain.js.map +1 -1
  226. package/lib/Cloudflare/Email/TrustedDomain.d.ts.map +1 -1
  227. package/lib/Cloudflare/Email/TrustedDomain.js +1 -1
  228. package/lib/Cloudflare/Email/TrustedDomain.js.map +1 -1
  229. package/lib/Cloudflare/Fetcher.d.ts.map +1 -1
  230. package/lib/Cloudflare/Fetcher.js +10 -3
  231. package/lib/Cloudflare/Fetcher.js.map +1 -1
  232. package/lib/Cloudflare/Flagship/App.d.ts.map +1 -1
  233. package/lib/Cloudflare/Flagship/App.js +2 -3
  234. package/lib/Cloudflare/Flagship/App.js.map +1 -1
  235. package/lib/Cloudflare/Fraud/DetectionSettings.d.ts.map +1 -1
  236. package/lib/Cloudflare/Fraud/DetectionSettings.js +3 -1
  237. package/lib/Cloudflare/Fraud/DetectionSettings.js.map +1 -1
  238. package/lib/Cloudflare/GoogleTagGateway/GoogleTagGateway.d.ts.map +1 -1
  239. package/lib/Cloudflare/GoogleTagGateway/GoogleTagGateway.js +8 -2
  240. package/lib/Cloudflare/GoogleTagGateway/GoogleTagGateway.js.map +1 -1
  241. package/lib/Cloudflare/Healthcheck/Healthcheck.d.ts.map +1 -1
  242. package/lib/Cloudflare/Healthcheck/Healthcheck.js +3 -1
  243. package/lib/Cloudflare/Healthcheck/Healthcheck.js.map +1 -1
  244. package/lib/Cloudflare/HostnameTlsSetting/HostnameTlsSetting.d.ts.map +1 -1
  245. package/lib/Cloudflare/HostnameTlsSetting/HostnameTlsSetting.js +3 -1
  246. package/lib/Cloudflare/HostnameTlsSetting/HostnameTlsSetting.js.map +1 -1
  247. package/lib/Cloudflare/Hyperdrive/Connection.d.ts.map +1 -1
  248. package/lib/Cloudflare/Hyperdrive/Connection.js +2 -4
  249. package/lib/Cloudflare/Hyperdrive/Connection.js.map +1 -1
  250. package/lib/Cloudflare/KV/Namespace.d.ts.map +1 -1
  251. package/lib/Cloudflare/KV/Namespace.js +5 -4
  252. package/lib/Cloudflare/KV/Namespace.js.map +1 -1
  253. package/lib/Cloudflare/KeylessCertificate/KeylessCertificate.d.ts.map +1 -1
  254. package/lib/Cloudflare/KeylessCertificate/KeylessCertificate.js +3 -1
  255. package/lib/Cloudflare/KeylessCertificate/KeylessCertificate.js.map +1 -1
  256. package/lib/Cloudflare/LeakedCredentialCheck/LeakedCredentialCheck.d.ts.map +1 -1
  257. package/lib/Cloudflare/LeakedCredentialCheck/LeakedCredentialCheck.js +3 -1
  258. package/lib/Cloudflare/LeakedCredentialCheck/LeakedCredentialCheck.js.map +1 -1
  259. package/lib/Cloudflare/LoadBalancer/LoadBalancer.d.ts.map +1 -1
  260. package/lib/Cloudflare/LoadBalancer/LoadBalancer.js +3 -1
  261. package/lib/Cloudflare/LoadBalancer/LoadBalancer.js.map +1 -1
  262. package/lib/Cloudflare/ManagedTransforms/ManagedTransforms.d.ts.map +1 -1
  263. package/lib/Cloudflare/ManagedTransforms/ManagedTransforms.js +3 -1
  264. package/lib/Cloudflare/ManagedTransforms/ManagedTransforms.js.map +1 -1
  265. package/lib/Cloudflare/MtlsCertificate/MtlsCertificate.d.ts.map +1 -1
  266. package/lib/Cloudflare/MtlsCertificate/MtlsCertificate.js +3 -1
  267. package/lib/Cloudflare/MtlsCertificate/MtlsCertificate.js.map +1 -1
  268. package/lib/Cloudflare/Organization/Organization.d.ts.map +1 -1
  269. package/lib/Cloudflare/Organization/Organization.js +3 -1
  270. package/lib/Cloudflare/Organization/Organization.js.map +1 -1
  271. package/lib/Cloudflare/OriginCaCertificate/OriginCaCertificate.d.ts.map +1 -1
  272. package/lib/Cloudflare/OriginCaCertificate/OriginCaCertificate.js +7 -2
  273. package/lib/Cloudflare/OriginCaCertificate/OriginCaCertificate.js.map +1 -1
  274. package/lib/Cloudflare/OriginPostQuantumEncryption/OriginPostQuantumEncryption.d.ts.map +1 -1
  275. package/lib/Cloudflare/OriginPostQuantumEncryption/OriginPostQuantumEncryption.js +3 -1
  276. package/lib/Cloudflare/OriginPostQuantumEncryption/OriginPostQuantumEncryption.js.map +1 -1
  277. package/lib/Cloudflare/OriginTlsClientAuth/HostnameCertificate.d.ts.map +1 -1
  278. package/lib/Cloudflare/OriginTlsClientAuth/HostnameCertificate.js +5 -1
  279. package/lib/Cloudflare/OriginTlsClientAuth/HostnameCertificate.js.map +1 -1
  280. package/lib/Cloudflare/PageRule/PageRule.d.ts.map +1 -1
  281. package/lib/Cloudflare/PageRule/PageRule.js +3 -1
  282. package/lib/Cloudflare/PageRule/PageRule.js.map +1 -1
  283. package/lib/Cloudflare/Providers.d.ts +29 -0
  284. package/lib/Cloudflare/Providers.d.ts.map +1 -1
  285. package/lib/Cloudflare/Providers.js +30 -19
  286. package/lib/Cloudflare/Providers.js.map +1 -1
  287. package/lib/Cloudflare/Queues/Consumer.d.ts.map +1 -1
  288. package/lib/Cloudflare/Queues/Consumer.js +3 -1
  289. package/lib/Cloudflare/Queues/Consumer.js.map +1 -1
  290. package/lib/Cloudflare/Queues/Queue.d.ts.map +1 -1
  291. package/lib/Cloudflare/Queues/Queue.js +5 -4
  292. package/lib/Cloudflare/Queues/Queue.js.map +1 -1
  293. package/lib/Cloudflare/Queues/Subscription.d.ts.map +1 -1
  294. package/lib/Cloudflare/Queues/Subscription.js +3 -1
  295. package/lib/Cloudflare/Queues/Subscription.js.map +1 -1
  296. package/lib/Cloudflare/R2/Bucket.d.ts +98 -0
  297. package/lib/Cloudflare/R2/Bucket.d.ts.map +1 -1
  298. package/lib/Cloudflare/R2/Bucket.js +141 -3
  299. package/lib/Cloudflare/R2/Bucket.js.map +1 -1
  300. package/lib/Cloudflare/RegionalHostname/RegionalHostname.d.ts.map +1 -1
  301. package/lib/Cloudflare/RegionalHostname/RegionalHostname.js +3 -1
  302. package/lib/Cloudflare/RegionalHostname/RegionalHostname.js.map +1 -1
  303. package/lib/Cloudflare/Ruleset/Ruleset.d.ts.map +1 -1
  304. package/lib/Cloudflare/Ruleset/Ruleset.js +8 -3
  305. package/lib/Cloudflare/Ruleset/Ruleset.js.map +1 -1
  306. package/lib/Cloudflare/SecretsStore/Secret.d.ts.map +1 -1
  307. package/lib/Cloudflare/SecretsStore/Secret.js +31 -5
  308. package/lib/Cloudflare/SecretsStore/Secret.js.map +1 -1
  309. package/lib/Cloudflare/SecurityTxt/SecurityTxt.d.ts.map +1 -1
  310. package/lib/Cloudflare/SecurityTxt/SecurityTxt.js +3 -1
  311. package/lib/Cloudflare/SecurityTxt/SecurityTxt.js.map +1 -1
  312. package/lib/Cloudflare/StateStore/Api.d.ts +15 -0
  313. package/lib/Cloudflare/StateStore/State.d.ts +30 -1
  314. package/lib/Cloudflare/StateStore/State.d.ts.map +1 -1
  315. package/lib/Cloudflare/StateStore/State.js +85 -16
  316. package/lib/Cloudflare/StateStore/State.js.map +1 -1
  317. package/lib/Cloudflare/Tags/AccountResourceTags.d.ts.map +1 -1
  318. package/lib/Cloudflare/Tags/AccountResourceTags.js +8 -3
  319. package/lib/Cloudflare/Tags/AccountResourceTags.js.map +1 -1
  320. package/lib/Cloudflare/Tunnel/Route.d.ts.map +1 -1
  321. package/lib/Cloudflare/Tunnel/Route.js +3 -1
  322. package/lib/Cloudflare/Tunnel/Route.js.map +1 -1
  323. package/lib/Cloudflare/Tunnel/Tunnel.d.ts.map +1 -1
  324. package/lib/Cloudflare/Tunnel/Tunnel.js +3 -1
  325. package/lib/Cloudflare/Tunnel/Tunnel.js.map +1 -1
  326. package/lib/Cloudflare/UrlNormalization/UrlNormalization.d.ts.map +1 -1
  327. package/lib/Cloudflare/UrlNormalization/UrlNormalization.js +3 -1
  328. package/lib/Cloudflare/UrlNormalization/UrlNormalization.js.map +1 -1
  329. package/lib/Cloudflare/Vectorize/VectorizeIndex.d.ts.map +1 -1
  330. package/lib/Cloudflare/Vectorize/VectorizeIndex.js +2 -3
  331. package/lib/Cloudflare/Vectorize/VectorizeIndex.js.map +1 -1
  332. package/lib/Cloudflare/VpcService/VpcService.d.ts.map +1 -1
  333. package/lib/Cloudflare/VpcService/VpcService.js +1 -1
  334. package/lib/Cloudflare/VpcService/VpcService.js.map +1 -1
  335. package/lib/Cloudflare/WaitingRoom/WaitingRoom.d.ts.map +1 -1
  336. package/lib/Cloudflare/WaitingRoom/WaitingRoom.js +3 -1
  337. package/lib/Cloudflare/WaitingRoom/WaitingRoom.js.map +1 -1
  338. package/lib/Cloudflare/Web3/ContentList.d.ts.map +1 -1
  339. package/lib/Cloudflare/Web3/ContentList.js +3 -1
  340. package/lib/Cloudflare/Web3/ContentList.js.map +1 -1
  341. package/lib/Cloudflare/Web3/Hostname.d.ts.map +1 -1
  342. package/lib/Cloudflare/Web3/Hostname.js +3 -1
  343. package/lib/Cloudflare/Web3/Hostname.js.map +1 -1
  344. package/lib/Cloudflare/Workers/Cache.d.ts +71 -0
  345. package/lib/Cloudflare/Workers/Cache.d.ts.map +1 -0
  346. package/lib/Cloudflare/Workers/Cache.js +64 -0
  347. package/lib/Cloudflare/Workers/Cache.js.map +1 -0
  348. package/lib/Cloudflare/Workers/CronEventSource.d.ts +180 -6
  349. package/lib/Cloudflare/Workers/CronEventSource.d.ts.map +1 -1
  350. package/lib/Cloudflare/Workers/CronEventSource.js +180 -6
  351. package/lib/Cloudflare/Workers/CronEventSource.js.map +1 -1
  352. package/lib/Cloudflare/Workers/DurableObject.d.ts +36 -1
  353. package/lib/Cloudflare/Workers/DurableObject.d.ts.map +1 -1
  354. package/lib/Cloudflare/Workers/DurableObject.js +36 -1
  355. package/lib/Cloudflare/Workers/DurableObject.js.map +1 -1
  356. package/lib/Cloudflare/Workers/DurableObjectState.d.ts +11 -0
  357. package/lib/Cloudflare/Workers/DurableObjectState.d.ts.map +1 -1
  358. package/lib/Cloudflare/Workers/DurableObjectState.js +7 -0
  359. package/lib/Cloudflare/Workers/DurableObjectState.js.map +1 -1
  360. package/lib/Cloudflare/Workers/Fetch.js +2 -2
  361. package/lib/Cloudflare/Workers/Fetch.js.map +1 -1
  362. package/lib/Cloudflare/Workers/LocalWorkerProvider.d.ts.map +1 -1
  363. package/lib/Cloudflare/Workers/LocalWorkerProvider.js +3 -0
  364. package/lib/Cloudflare/Workers/LocalWorkerProvider.js.map +1 -1
  365. package/lib/Cloudflare/Workers/Worker.d.ts +230 -4
  366. package/lib/Cloudflare/Workers/Worker.d.ts.map +1 -1
  367. package/lib/Cloudflare/Workers/Worker.js +161 -7
  368. package/lib/Cloudflare/Workers/Worker.js.map +1 -1
  369. package/lib/Cloudflare/Workers/WorkerAsyncBindings.d.ts +9 -0
  370. package/lib/Cloudflare/Workers/WorkerAsyncBindings.d.ts.map +1 -1
  371. package/lib/Cloudflare/Workers/WorkerAsyncBindings.js +15 -0
  372. package/lib/Cloudflare/Workers/WorkerAsyncBindings.js.map +1 -1
  373. package/lib/Cloudflare/Workers/WorkerBinding.d.ts +30 -0
  374. package/lib/Cloudflare/Workers/WorkerBinding.d.ts.map +1 -1
  375. package/lib/Cloudflare/Workers/WorkerBridge.d.ts.map +1 -1
  376. package/lib/Cloudflare/Workers/WorkerBridge.js +27 -5
  377. package/lib/Cloudflare/Workers/WorkerBridge.js.map +1 -1
  378. package/lib/Cloudflare/Workers/WorkerLoader.js +9 -1
  379. package/lib/Cloudflare/Workers/WorkerLoader.js.map +1 -1
  380. package/lib/Cloudflare/Workers/WorkerProvider.d.ts.map +1 -1
  381. package/lib/Cloudflare/Workers/WorkerProvider.js +365 -18
  382. package/lib/Cloudflare/Workers/WorkerProvider.js.map +1 -1
  383. package/lib/Cloudflare/Workers/WorkerRuntimeContext.d.ts.map +1 -1
  384. package/lib/Cloudflare/Workers/WorkerRuntimeContext.js +20 -3
  385. package/lib/Cloudflare/Workers/WorkerRuntimeContext.js.map +1 -1
  386. package/lib/Cloudflare/Workers/index.d.ts +1 -0
  387. package/lib/Cloudflare/Workers/index.d.ts.map +1 -1
  388. package/lib/Cloudflare/Workers/index.js +1 -0
  389. package/lib/Cloudflare/Workers/index.js.map +1 -1
  390. package/lib/Cloudflare/WorkersForPlatforms/DispatchNamespace.d.ts.map +1 -1
  391. package/lib/Cloudflare/WorkersForPlatforms/DispatchNamespace.js +2 -3
  392. package/lib/Cloudflare/WorkersForPlatforms/DispatchNamespace.js.map +1 -1
  393. package/lib/Cloudflare/Workflows/Workflow.d.ts +200 -24
  394. package/lib/Cloudflare/Workflows/Workflow.d.ts.map +1 -1
  395. package/lib/Cloudflare/Workflows/Workflow.js +126 -28
  396. package/lib/Cloudflare/Workflows/Workflow.js.map +1 -1
  397. package/lib/Cloudflare/Workflows/WorkflowBridge.d.ts.map +1 -1
  398. package/lib/Cloudflare/Workflows/WorkflowBridge.js +42 -3
  399. package/lib/Cloudflare/Workflows/WorkflowBridge.js.map +1 -1
  400. package/lib/Cloudflare/Zaraz/Config.d.ts +1 -0
  401. package/lib/Cloudflare/Zaraz/Config.d.ts.map +1 -1
  402. package/lib/Cloudflare/Zaraz/Config.js +8 -2
  403. package/lib/Cloudflare/Zaraz/Config.js.map +1 -1
  404. package/lib/Cloudflare/Zone/Zone.d.ts.map +1 -1
  405. package/lib/Cloudflare/Zone/Zone.js +1 -0
  406. package/lib/Cloudflare/Zone/Zone.js.map +1 -1
  407. package/lib/Docker/Container.d.ts.map +1 -1
  408. package/lib/Docker/Container.js +11 -1
  409. package/lib/Docker/Container.js.map +1 -1
  410. package/lib/Drizzle/Schema.d.ts.map +1 -1
  411. package/lib/Drizzle/Schema.js +12 -5
  412. package/lib/Drizzle/Schema.js.map +1 -1
  413. package/lib/Neon/Branch.d.ts.map +1 -1
  414. package/lib/Neon/Branch.js +15 -3
  415. package/lib/Neon/Branch.js.map +1 -1
  416. package/lib/Output.d.ts +13 -1
  417. package/lib/Output.d.ts.map +1 -1
  418. package/lib/Output.js +17 -3
  419. package/lib/Output.js.map +1 -1
  420. package/lib/Planetscale/Postgres/PostgresRole.js +2 -2
  421. package/lib/Planetscale/Postgres/PostgresRole.js.map +1 -1
  422. package/lib/Provider.d.ts +8 -0
  423. package/lib/Provider.d.ts.map +1 -1
  424. package/lib/Provider.js +38 -3
  425. package/lib/Provider.js.map +1 -1
  426. package/lib/Ref.d.ts +9 -1
  427. package/lib/Ref.d.ts.map +1 -1
  428. package/lib/Ref.js +2 -1
  429. package/lib/Ref.js.map +1 -1
  430. package/lib/Resource.d.ts +44 -0
  431. package/lib/Resource.d.ts.map +1 -1
  432. package/lib/Resource.js +22 -1
  433. package/lib/Resource.js.map +1 -1
  434. package/lib/Stack.js +1 -1
  435. package/lib/Stack.js.map +1 -1
  436. package/lib/State/HttpStateApi.d.ts +4 -4
  437. package/lib/State/HttpStateStore.d.ts +12 -0
  438. package/lib/State/HttpStateStore.d.ts.map +1 -1
  439. package/lib/State/HttpStateStore.js +46 -5
  440. package/lib/State/HttpStateStore.js.map +1 -1
  441. package/lib/Sync.d.ts +109 -0
  442. package/lib/Sync.d.ts.map +1 -0
  443. package/lib/Sync.js +312 -0
  444. package/lib/Sync.js.map +1 -0
  445. package/lib/Test/Bun.d.ts +1 -1
  446. package/lib/Test/Bun.d.ts.map +1 -1
  447. package/lib/Test/Bun.js +1 -1
  448. package/lib/Test/Bun.js.map +1 -1
  449. package/lib/Test/Http.d.ts +67 -0
  450. package/lib/Test/Http.d.ts.map +1 -1
  451. package/lib/Test/Http.js +69 -0
  452. package/lib/Test/Http.js.map +1 -1
  453. package/lib/Test/Vitest.d.ts +1 -1
  454. package/lib/Test/Vitest.d.ts.map +1 -1
  455. package/lib/Test/Vitest.js +1 -0
  456. package/lib/Test/Vitest.js.map +1 -1
  457. package/lib/Util/proxy-chain.js +14 -15
  458. package/lib/Util/proxy-chain.js.map +1 -1
  459. package/lib/index.d.ts +1 -0
  460. package/lib/index.d.ts.map +1 -1
  461. package/lib/index.js +1 -0
  462. package/lib/index.js.map +1 -1
  463. package/package.json +19 -19
  464. package/src/AWS/ACM/Certificate.ts +13 -2
  465. package/src/AWS/AutoScaling/AutoScalingGroup.ts +21 -15
  466. package/src/AWS/AutoScaling/LaunchTemplate.ts +6 -1
  467. package/src/AWS/AutoScaling/ScalingPolicy.ts +31 -17
  468. package/src/AWS/CloudFront/PublicKey.ts +4 -0
  469. package/src/AWS/DynamoDB/Table.ts +1 -1
  470. package/src/AWS/ECS/Service.ts +35 -6
  471. package/src/AWS/IAM/OpenIDConnectProvider.ts +9 -1
  472. package/src/AWS/Lambda/Alias.ts +42 -0
  473. package/src/AWS/Lambda/EventInvokeConfig.ts +150 -0
  474. package/src/AWS/Lambda/Function.ts +35 -2
  475. package/src/AWS/Lambda/index.ts +1 -0
  476. package/src/AWS/Organizations/DelegatedAdministrator.ts +11 -3
  477. package/src/AWS/Organizations/PolicyAttachment.ts +10 -4
  478. package/src/AWS/Organizations/RootPolicyType.ts +9 -4
  479. package/src/AWS/Organizations/TrustedServiceAccess.ts +9 -3
  480. package/src/AWS/Route53/HostedZone.ts +30 -13
  481. package/src/AWS/Route53/Record.ts +44 -22
  482. package/src/Apply.ts +7 -1
  483. package/src/Auth/Lock.ts +62 -18
  484. package/src/Bundle/PurePlugin.ts +15 -2
  485. package/src/Cli/commands/sync.ts +123 -0
  486. package/src/Cli/main.ts +2 -0
  487. package/src/Cloudflare/AI/CustomTopics.ts +3 -1
  488. package/src/Cloudflare/AI/Dataset.ts +3 -1
  489. package/src/Cloudflare/AI/Evaluation.ts +3 -1
  490. package/src/Cloudflare/AI/Gateway.ts +5 -6
  491. package/src/Cloudflare/AI/GatewayDynamicRouting.ts +3 -1
  492. package/src/Cloudflare/AI/GatewayProvider.ts +5 -2
  493. package/src/Cloudflare/AI/ProviderKey.ts +161 -0
  494. package/src/Cloudflare/AI/SearchInstance.ts +5 -4
  495. package/src/Cloudflare/AI/SearchNamespace.ts +5 -4
  496. package/src/Cloudflare/AI/SearchToken.ts +3 -1
  497. package/src/Cloudflare/AI/SecuritySettings.ts +3 -0
  498. package/src/Cloudflare/AI/index.ts +1 -0
  499. package/src/Cloudflare/Access/InfrastructureTarget.ts +4 -1
  500. package/src/Cloudflare/Access/Organization.ts +1 -0
  501. package/src/Cloudflare/Access/Policy.ts +3 -1
  502. package/src/Cloudflare/Account/Account.ts +3 -1
  503. package/src/Cloudflare/ApiToken/AccountApiToken.ts +1 -0
  504. package/src/Cloudflare/ApiToken/UserApiToken.ts +1 -0
  505. package/src/Cloudflare/Auth/AuthProvider.ts +69 -8
  506. package/src/Cloudflare/BotManagement/BotManagement.ts +3 -1
  507. package/src/Cloudflare/Cache/Reserve.ts +3 -1
  508. package/src/Cloudflare/ClientCertificate/ClientCertificate.ts +3 -1
  509. package/src/Cloudflare/Containers/Container.ts +2 -2
  510. package/src/Cloudflare/ContentScanning/ContentScanning.ts +3 -1
  511. package/src/Cloudflare/CustomCertificate/CustomCertificate.ts +3 -1
  512. package/src/Cloudflare/CustomHostname/CustomHostname.ts +1 -0
  513. package/src/Cloudflare/CustomHostname/FallbackOrigin.ts +1 -0
  514. package/src/Cloudflare/CustomNameserver/CustomNameserver.ts +3 -1
  515. package/src/Cloudflare/D1/Database.ts +2 -2
  516. package/src/Cloudflare/DNS/AccountSettings.ts +3 -1
  517. package/src/Cloudflare/DNS/Dnssec.ts +3 -1
  518. package/src/Cloudflare/DNS/Firewall.ts +3 -1
  519. package/src/Cloudflare/DNS/Record.ts +3 -1
  520. package/src/Cloudflare/DNS/View.ts +3 -1
  521. package/src/Cloudflare/DNS/ZoneSettings.ts +3 -1
  522. package/src/Cloudflare/DNS/ZoneTransferAcl.ts +3 -1
  523. package/src/Cloudflare/DNS/ZoneTransferIncoming.ts +3 -1
  524. package/src/Cloudflare/DNS/ZoneTransferOutgoing.ts +3 -1
  525. package/src/Cloudflare/DNS/ZoneTransferPeer.ts +3 -1
  526. package/src/Cloudflare/DNS/ZoneTransferTsig.ts +3 -1
  527. package/src/Cloudflare/Email/Address.ts +3 -1
  528. package/src/Cloudflare/Email/AllowPolicy.ts +1 -0
  529. package/src/Cloudflare/Email/BlockSender.ts +1 -0
  530. package/src/Cloudflare/Email/CatchAll.ts +7 -2
  531. package/src/Cloudflare/Email/Domain.ts +3 -1
  532. package/src/Cloudflare/Email/ImpersonationRegistryEntry.ts +1 -0
  533. package/src/Cloudflare/Email/Routing.ts +3 -1
  534. package/src/Cloudflare/Email/Rule.ts +3 -1
  535. package/src/Cloudflare/Email/SendingSubdomain.ts +1 -0
  536. package/src/Cloudflare/Email/TrustedDomain.ts +1 -0
  537. package/src/Cloudflare/Fetcher.ts +12 -5
  538. package/src/Cloudflare/Flagship/App.ts +2 -3
  539. package/src/Cloudflare/Fraud/DetectionSettings.ts +3 -1
  540. package/src/Cloudflare/GoogleTagGateway/GoogleTagGateway.ts +7 -2
  541. package/src/Cloudflare/Healthcheck/Healthcheck.ts +3 -1
  542. package/src/Cloudflare/HostnameTlsSetting/HostnameTlsSetting.ts +3 -1
  543. package/src/Cloudflare/Hyperdrive/Connection.ts +2 -4
  544. package/src/Cloudflare/KV/Namespace.ts +5 -4
  545. package/src/Cloudflare/KeylessCertificate/KeylessCertificate.ts +3 -1
  546. package/src/Cloudflare/LeakedCredentialCheck/LeakedCredentialCheck.ts +3 -1
  547. package/src/Cloudflare/LoadBalancer/LoadBalancer.ts +3 -1
  548. package/src/Cloudflare/ManagedTransforms/ManagedTransforms.ts +3 -1
  549. package/src/Cloudflare/MtlsCertificate/MtlsCertificate.ts +3 -1
  550. package/src/Cloudflare/Organization/Organization.ts +3 -1
  551. package/src/Cloudflare/OriginCaCertificate/OriginCaCertificate.ts +7 -2
  552. package/src/Cloudflare/OriginPostQuantumEncryption/OriginPostQuantumEncryption.ts +3 -1
  553. package/src/Cloudflare/OriginTlsClientAuth/HostnameCertificate.ts +5 -1
  554. package/src/Cloudflare/PageRule/PageRule.ts +3 -1
  555. package/src/Cloudflare/Providers.ts +34 -19
  556. package/src/Cloudflare/Queues/Consumer.ts +3 -1
  557. package/src/Cloudflare/Queues/Queue.ts +5 -4
  558. package/src/Cloudflare/Queues/Subscription.ts +3 -1
  559. package/src/Cloudflare/R2/Bucket.ts +230 -3
  560. package/src/Cloudflare/RegionalHostname/RegionalHostname.ts +3 -1
  561. package/src/Cloudflare/Ruleset/Ruleset.ts +9 -4
  562. package/src/Cloudflare/SecretsStore/Secret.ts +46 -5
  563. package/src/Cloudflare/SecurityTxt/SecurityTxt.ts +3 -1
  564. package/src/Cloudflare/StateStore/State.ts +89 -24
  565. package/src/Cloudflare/Tags/AccountResourceTags.ts +9 -5
  566. package/src/Cloudflare/Tunnel/Route.ts +3 -1
  567. package/src/Cloudflare/Tunnel/Tunnel.ts +3 -1
  568. package/src/Cloudflare/UrlNormalization/UrlNormalization.ts +3 -1
  569. package/src/Cloudflare/Vectorize/VectorizeIndex.ts +2 -3
  570. package/src/Cloudflare/VpcService/VpcService.ts +1 -0
  571. package/src/Cloudflare/WaitingRoom/WaitingRoom.ts +3 -1
  572. package/src/Cloudflare/Web3/ContentList.ts +3 -1
  573. package/src/Cloudflare/Web3/Hostname.ts +3 -1
  574. package/src/Cloudflare/Workers/Cache.ts +102 -0
  575. package/src/Cloudflare/Workers/CronEventSource.ts +180 -6
  576. package/src/Cloudflare/Workers/DurableObject.ts +36 -1
  577. package/src/Cloudflare/Workers/DurableObjectState.ts +25 -0
  578. package/src/Cloudflare/Workers/Fetch.ts +2 -2
  579. package/src/Cloudflare/Workers/LocalWorkerProvider.ts +3 -0
  580. package/src/Cloudflare/Workers/Worker.ts +315 -9
  581. package/src/Cloudflare/Workers/WorkerAsyncBindings.ts +18 -0
  582. package/src/Cloudflare/Workers/WorkerBridge.ts +37 -10
  583. package/src/Cloudflare/Workers/WorkerLoader.ts +10 -1
  584. package/src/Cloudflare/Workers/WorkerProvider.ts +576 -40
  585. package/src/Cloudflare/Workers/WorkerRuntimeContext.ts +23 -2
  586. package/src/Cloudflare/Workers/index.ts +1 -0
  587. package/src/Cloudflare/WorkersForPlatforms/DispatchNamespace.ts +2 -4
  588. package/src/Cloudflare/Workflows/Workflow.ts +296 -38
  589. package/src/Cloudflare/Workflows/WorkflowBridge.ts +62 -12
  590. package/src/Cloudflare/Zaraz/Config.ts +7 -2
  591. package/src/Cloudflare/Zone/Zone.ts +1 -0
  592. package/src/Docker/Container.ts +10 -1
  593. package/src/Drizzle/Schema.ts +12 -5
  594. package/src/Neon/Branch.ts +15 -3
  595. package/src/Output.ts +18 -2
  596. package/src/Planetscale/Postgres/PostgresRole.ts +2 -2
  597. package/src/Provider.ts +53 -3
  598. package/src/Ref.ts +10 -0
  599. package/src/Resource.ts +50 -1
  600. package/src/Stack.ts +1 -1
  601. package/src/State/HttpStateStore.ts +47 -5
  602. package/src/Sync.ts +494 -0
  603. package/src/Test/Bun.ts +4 -0
  604. package/src/Test/Http.ts +133 -0
  605. package/src/Test/Vitest.ts +11 -0
  606. package/src/Util/proxy-chain.ts +9 -12
  607. package/src/index.ts +1 -0
@@ -11,7 +11,9 @@ import { makeRequestHandler } from "./HttpServer.ts";
11
11
  import {
12
12
  ExportedHandlerMethods,
13
13
  WorkerEnvironment,
14
+ WorkerExecutionContext,
14
15
  WorkerTypeId,
16
+ deferredExecutionContext,
15
17
  type WorkerEvent,
16
18
  } from "./Worker.ts";
17
19
  import type { WorkflowExport } from "../Workflows/Workflow.ts";
@@ -108,7 +110,13 @@ export const makeWorkerRuntimeContext = (id: string): WorkerRuntimeContext => {
108
110
  Effect.sync(() => {
109
111
  exports[name] = value;
110
112
  }),
111
- planServices: Layer.succeed(WorkerEnvironment, {}),
113
+ planServices: Layer.mergeAll(
114
+ Layer.succeed(WorkerEnvironment, {}),
115
+ // Lets the init closure `yield*` WorkerExecutionContext during plan;
116
+ // its RuntimeContext-colored methods can't run until a real handler
117
+ // provides the live per-event context.
118
+ Layer.succeed(WorkerExecutionContext, deferredExecutionContext),
119
+ ),
112
120
  exports: Effect.gen(function* () {
113
121
  const handlers = yield* Effect.all(listeners, {
114
122
  concurrency: "unbounded",
@@ -125,12 +133,25 @@ export const makeWorkerRuntimeContext = (id: string): WorkerRuntimeContext => {
125
133
  env,
126
134
  context,
127
135
  };
136
+ const effects: Effect.Effect<unknown>[] = [];
128
137
  for (const handler of handlers) {
129
138
  const eff = handler(event);
130
139
  if (Effect.isEffect(eff)) {
131
- return [eff, services];
140
+ effects.push(eff);
132
141
  }
133
142
  }
143
+ if (effects.length === 1) {
144
+ return [effects[0], services];
145
+ }
146
+ if (effects.length > 1) {
147
+ return [
148
+ Effect.all(effects, {
149
+ concurrency: "unbounded",
150
+ discard: true,
151
+ }),
152
+ services,
153
+ ];
154
+ }
134
155
  return [
135
156
  Effect.die(
136
157
  new Error(`No event handler found for event type '${type}'`),
@@ -2,6 +2,7 @@ export * from "./AccountSetting.ts";
2
2
  export * from "./Assets.ts";
3
3
  export * from "./Browser.ts";
4
4
  export * from "./BrowserBinding.ts";
5
+ export * from "./Cache.ts";
5
6
  export * from "./ConfigProvider.ts";
6
7
  export * from "./CronEventSource.ts";
7
8
  export * from "./DurableObject.ts";
@@ -1,12 +1,11 @@
1
1
  import * as wfp from "@distilled.cloud/cloudflare/workers-for-platforms";
2
2
  import * as Effect from "effect/Effect";
3
- import * as Predicate from "effect/Predicate";
4
3
  import * as Stream from "effect/Stream";
5
4
 
6
5
  import { isResolved } from "../../Diff.ts";
7
6
  import { createPhysicalName } from "../../PhysicalName.ts";
8
7
  import * as Provider from "../../Provider.ts";
9
- import { Resource } from "../../Resource.ts";
8
+ import { isResourceOfType, Resource } from "../../Resource.ts";
10
9
  import { CloudflareEnvironment } from "../CloudflareEnvironment.ts";
11
10
  import type { Providers } from "../Providers.ts";
12
11
 
@@ -152,8 +151,7 @@ export const DispatchNamespace = Resource<DispatchNamespace>(TypeId);
152
151
  */
153
152
  export const isDispatchNamespace = (
154
153
  value: unknown,
155
- ): value is DispatchNamespace =>
156
- Predicate.hasProperty(value, "Type") && value.Type === TypeId;
154
+ ): value is DispatchNamespace => isResourceOfType(value, TypeId);
157
155
 
158
156
  export const DispatchNamespaceProvider = () =>
159
157
  Provider.succeed(DispatchNamespace, {
@@ -36,19 +36,119 @@ export class WorkflowEvent extends Context.Service<
36
36
  payload: unknown;
37
37
  timestamp: Date;
38
38
  instanceId: string;
39
+ workflowName: string;
40
+ schedule?: WorkflowCronSchedule;
39
41
  }
40
42
  >()("Cloudflare.Workflows.WorkflowEvent") {}
41
43
 
44
+ export interface WorkflowCronSchedule {
45
+ cron: string;
46
+ scheduledTime: number;
47
+ }
48
+
49
+ export type WorkflowBackoff = "constant" | "linear" | "exponential";
50
+
51
+ export interface WorkflowStepConfig {
52
+ retries?: {
53
+ limit: number;
54
+ delay: string | number;
55
+ backoff?: WorkflowBackoff;
56
+ };
57
+ timeout?: string | number;
58
+ }
59
+
60
+ export interface WorkflowStepContextData {
61
+ step: {
62
+ name: string;
63
+ count: number;
64
+ };
65
+ attempt: number;
66
+ config: WorkflowStepConfig;
67
+ }
68
+
69
+ /**
70
+ * Runtime information for the current `task` attempt.
71
+ */
72
+ export class WorkflowStepContext extends Context.Service<
73
+ WorkflowStepContext,
74
+ WorkflowStepContextData
75
+ >()("Cloudflare.WorkflowStepContext") {}
76
+
77
+ export interface WorkflowRollbackContext<Output = unknown> {
78
+ error: Error;
79
+ output: Output | undefined;
80
+ }
81
+
82
+ export interface WorkflowRollbackOptions<Output = unknown, R = never> {
83
+ rollback: (
84
+ context: WorkflowRollbackContext<Output>,
85
+ ) => Effect.Effect<void, never, R>;
86
+ rollbackConfig?: WorkflowStepConfig;
87
+ }
88
+
89
+ /**
90
+ * Optional configuration for a `task` step: retry policy, timeout, and a
91
+ * rollback handler with its own retry config.
92
+ */
93
+ export interface WorkflowTaskConfig<
94
+ Output = unknown,
95
+ RollbackReq = never,
96
+ > extends WorkflowStepConfig {
97
+ rollback?: (
98
+ context: WorkflowRollbackContext<Output>,
99
+ ) => Effect.Effect<void, never, RollbackReq>;
100
+ rollbackConfig?: WorkflowStepConfig;
101
+ }
102
+
103
+ /**
104
+ * Internal step descriptor passed from `task` to the bridge. Bundles the step
105
+ * name and Effect together with the `WorkflowTaskConfig` fields.
106
+ */
107
+ export interface WorkflowTaskOptions<
108
+ Output = unknown,
109
+ R = never,
110
+ RollbackReq = never,
111
+ > extends WorkflowTaskConfig<Output, RollbackReq> {
112
+ name: string;
113
+ effect: Effect.Effect<Output, never, R>;
114
+ }
115
+
116
+ export interface WorkflowWaitForEventOptions {
117
+ type: string;
118
+ timeout?: string | number;
119
+ }
120
+
121
+ /**
122
+ * The event delivered to a `waitForEvent` step. Mirrors the native
123
+ * `WorkflowStepEvent` shape from `cloudflare:workers` 1:1.
124
+ */
125
+ export interface WorkflowStepEvent<Payload = unknown> {
126
+ payload: Payload;
127
+ timestamp: Date;
128
+ type: string;
129
+ }
130
+
131
+ type ExcludeWorkflowStepContext<R> = R extends {
132
+ readonly key: "Cloudflare.WorkflowStepContext";
133
+ }
134
+ ? never
135
+ : R;
136
+
42
137
  /**
43
138
  * Internal service that wraps the Cloudflare `WorkflowStep` object.
44
- * Not accessed directly by users -- use `task`, `sleep`, `sleepUntil` instead.
139
+ * Not accessed directly by users -- use `task`, `sleep`, `sleepUntil`, and
140
+ * `waitForEvent` instead.
45
141
  */
46
142
  export class WorkflowStep extends Context.Service<
47
143
  WorkflowStep,
48
144
  {
49
- do<T>(name: string, effect: Effect.Effect<T>): Effect.Effect<T>;
145
+ do<T>(options: WorkflowTaskOptions<T, any, any>): Effect.Effect<T>;
50
146
  sleep(name: string, duration: string | number): Effect.Effect<void>;
51
147
  sleepUntil(name: string, timestamp: Date | number): Effect.Effect<void>;
148
+ waitForEvent<T>(
149
+ name: string,
150
+ options: WorkflowWaitForEventOptions,
151
+ ): Effect.Effect<WorkflowStepEvent<T>>;
52
152
  }
53
153
  >()("Cloudflare.Workflows.WorkflowStep") {}
54
154
 
@@ -65,16 +165,35 @@ export class WorkflowStep extends Context.Service<
65
165
  * binding like `kv.put` / `kv.get`) are threaded through automatically by
66
166
  * capturing the surrounding workflow body's context and providing it to
67
167
  * the inner effect before it runs inside `step.do`.
168
+ *
169
+ * The step name comes first, followed by the Effect. Retry config, timeout,
170
+ * and a rollback handler can be passed in the optional third `options` arg.
68
171
  */
69
- export const task = <T, R = never>(
172
+ export function task<T, R = never, RollbackReq = never>(
70
173
  name: string,
71
174
  effect: Effect.Effect<T, never, R>,
72
- ): Effect.Effect<T, never, WorkflowStep | R> =>
73
- Effect.gen(function* () {
175
+ options?: WorkflowTaskConfig<T, RollbackReq>,
176
+ ): Effect.Effect<
177
+ T,
178
+ never,
179
+ WorkflowStep | ExcludeWorkflowStepContext<R | RollbackReq>
180
+ > {
181
+ return Effect.gen(function* () {
74
182
  const step = yield* WorkflowStep;
75
- const context = yield* Effect.context<R>();
76
- return yield* step.do(name, effect.pipe(Effect.provide(context)));
183
+ const context =
184
+ yield* Effect.context<ExcludeWorkflowStepContext<R | RollbackReq>>();
185
+ const rollbackEffect = options?.rollback;
186
+ return yield* step.do({
187
+ ...options,
188
+ name,
189
+ effect: effect.pipe(Effect.provide(context)),
190
+ rollback: rollbackEffect
191
+ ? (rollbackContext: WorkflowRollbackContext<T>) =>
192
+ rollbackEffect(rollbackContext).pipe(Effect.provide(context))
193
+ : undefined,
194
+ } as WorkflowTaskOptions<T, any, any>);
77
195
  });
196
+ }
78
197
 
79
198
  /**
80
199
  * Pause the workflow for the given duration.
@@ -83,10 +202,10 @@ export const sleep = (
83
202
  name: string,
84
203
  duration: string | number,
85
204
  ): Effect.Effect<void, never, WorkflowStep> =>
86
- WorkflowStep.pipe(
87
- Effect.flatMap((step) => step.sleep(name, duration)),
88
- Effect.orDie,
89
- );
205
+ Effect.gen(function* () {
206
+ const step = yield* WorkflowStep;
207
+ yield* step.sleep(name, duration);
208
+ }).pipe(Effect.orDie);
90
209
 
91
210
  /**
92
211
  * Pause the workflow until the given timestamp.
@@ -95,10 +214,25 @@ export const sleepUntil = (
95
214
  name: string,
96
215
  timestamp: Date | number,
97
216
  ): Effect.Effect<void, never, WorkflowStep> =>
98
- WorkflowStep.pipe(
99
- Effect.flatMap((step) => step.sleepUntil(name, timestamp)),
100
- Effect.orDie,
101
- );
217
+ Effect.gen(function* () {
218
+ const step = yield* WorkflowStep;
219
+ yield* step.sleepUntil(name, timestamp);
220
+ }).pipe(Effect.orDie);
221
+
222
+ /**
223
+ * Pause the workflow until an external event is delivered with
224
+ * `WorkflowInstance.sendEvent`. Resolves with the full
225
+ * {@link WorkflowStepEvent} (`{ payload, timestamp, type }`), exactly like
226
+ * the native `step.waitForEvent`.
227
+ */
228
+ export const waitForEvent = <T = unknown>(
229
+ name: string,
230
+ options: WorkflowWaitForEventOptions,
231
+ ): Effect.Effect<WorkflowStepEvent<T>, never, WorkflowStep> =>
232
+ Effect.gen(function* () {
233
+ const step = yield* WorkflowStep;
234
+ return yield* step.waitForEvent<T>(name, options);
235
+ }).pipe(Effect.orDie);
102
236
 
103
237
  /**
104
238
  * The services available inside a workflow run body.
@@ -216,22 +350,75 @@ export const isWorkflowBinding = (binding: {
216
350
  export interface WorkflowHandle<Input = unknown, Result = unknown> {
217
351
  Type: TypeId;
218
352
  name: string;
219
- create(input: Input): Effect.Effect<WorkflowInstance<Result>>;
353
+ /**
354
+ * Start a workflow instance. Pass payload through `params`; omit `id` to let
355
+ * Cloudflare generate an instance ID.
356
+ */
357
+ create(
358
+ options?: WorkflowInstanceCreateOptions<Input>,
359
+ ): Effect.Effect<WorkflowInstance<Result>>;
360
+ createBatch(
361
+ batch: WorkflowInstanceCreateOptions<Input>[],
362
+ ): Effect.Effect<WorkflowInstance<Result>[]>;
220
363
  get(instanceId: string): Effect.Effect<WorkflowInstance<Result>>;
221
364
  }
222
365
 
366
+ /** Options for starting a workflow instance. */
367
+ export interface WorkflowInstanceCreateOptions<Input = unknown> {
368
+ id?: string;
369
+ params?: Input;
370
+ retention?: WorkflowInstanceRetention;
371
+ }
372
+
373
+ export interface WorkflowInstanceRetention {
374
+ successRetention?: string | number;
375
+ errorRetention?: string | number;
376
+ }
377
+
378
+ /** Handle for a single Cloudflare workflow instance. */
223
379
  export interface WorkflowInstance<Result = unknown> {
224
380
  id: string;
225
381
  status(): Effect.Effect<WorkflowInstanceStatus<Result>>;
226
382
  pause(): Effect.Effect<void>;
227
383
  resume(): Effect.Effect<void>;
384
+ restart(options?: WorkflowInstanceRestartOptions): Effect.Effect<void>;
228
385
  terminate(): Effect.Effect<void>;
386
+ sendEvent<Event = unknown>(
387
+ event: WorkflowInstanceEvent<Event>,
388
+ ): Effect.Effect<void>;
389
+ }
390
+
391
+ export interface WorkflowInstanceRestartOptions {
392
+ from?: {
393
+ name: string;
394
+ count?: number;
395
+ type?: "do" | "sleep" | "waitForEvent";
396
+ };
397
+ }
398
+
399
+ export interface WorkflowInstanceEvent<Payload = unknown> {
400
+ type: string;
401
+ payload?: Payload;
229
402
  }
230
403
 
231
404
  export interface WorkflowInstanceStatus<Result = unknown> {
232
- status: string;
405
+ status:
406
+ | "queued"
407
+ | "running"
408
+ | "paused"
409
+ | "errored"
410
+ | "terminated"
411
+ | "complete"
412
+ | "waiting"
413
+ | "waitingForPause"
414
+ | "unknown"
415
+ | (string & {});
233
416
  output?: Result;
234
417
  error?: { name: string; message: string } | null;
418
+ rollback?: {
419
+ outcome: "complete" | "failed";
420
+ error: { name: string; message: string } | null;
421
+ } | null;
235
422
  }
236
423
 
237
424
  export interface WorkflowClass extends Effect.Effect<
@@ -278,7 +465,8 @@ export class WorkflowScope extends Context.Service<
278
465
  * Objects. The outer `Effect.gen` resolves shared dependencies. The inner
279
466
  * `Effect.fn` is the workflow body — a function from a typed `input`
280
467
  * payload to an Effect that runs steps using `task`, `sleep`, and
281
- * `sleepUntil`.
468
+ * `sleepUntil`. `task` takes the step name and Effect, plus an optional
469
+ * config object for retries, timeout, and a rollback handler.
282
470
  *
283
471
  * ```typescript
284
472
  * Effect.gen(function* () {
@@ -320,11 +508,42 @@ export class WorkflowScope extends Context.Service<
320
508
  * );
321
509
  * ```
322
510
  *
511
+ * @example Configuring retries and reading step context
512
+ * ```typescript
513
+ * const result = yield* Cloudflare.Workflows.task(
514
+ * "call-api",
515
+ * Effect.gen(function* () {
516
+ * const context = yield* Cloudflare.Workflows.WorkflowStepContext;
517
+ * return { attempt: context.attempt };
518
+ * }),
519
+ * { retries: { limit: 3, delay: "5 seconds", backoff: "linear" } },
520
+ * );
521
+ * ```
522
+ *
523
+ * @example Registering rollback
524
+ * ```typescript
525
+ * yield* Cloudflare.Workflows.task("reserve-inventory", reserveInventory, {
526
+ * rollback: ({ output }) =>
527
+ * output ? releaseInventory(output.reservationId) : Effect.void,
528
+ * rollbackConfig: { retries: { limit: 3, delay: "10 seconds" } },
529
+ * });
530
+ * ```
531
+ *
323
532
  * @example Sleeping between steps
324
533
  * ```typescript
325
534
  * yield* Cloudflare.Workflows.sleep("cooldown", "30 seconds");
326
535
  * ```
327
536
  *
537
+ * @example Waiting for an external event
538
+ * ```typescript
539
+ * const event = yield* Cloudflare.Workflows.waitForEvent<{ approved: boolean }>(
540
+ * "approval",
541
+ * { type: "approval", timeout: "1 day" },
542
+ * );
543
+ * // Same shape as the native step.waitForEvent result:
544
+ * event.payload.approved;
545
+ * ```
546
+ *
328
547
  * @example Accessing env bindings inside a task
329
548
  * Bind a resource (e.g. `Namespace`, `Bucket`) in the workflow's
330
549
  * outer init phase to get a typed Effect-native client, then use it
@@ -354,10 +573,31 @@ export class WorkflowScope extends Context.Service<
354
573
  * ```
355
574
  *
356
575
  * @section Starting and Monitoring Instances
576
+ * `create` mirrors Cloudflare's native Workflow API: pass workflow input in
577
+ * `params`, pass `id` only when you need a deterministic instance ID, and omit
578
+ * `id` to let Cloudflare generate one.
579
+ *
357
580
  * @example Creating an instance from a Worker
358
581
  * ```typescript
359
582
  * const workflow = yield* MyWorkflow;
360
- * const instance = yield* workflow.create({ orderId: "abc" });
583
+ * const instance = yield* workflow.create({ params: { orderId: "abc" } });
584
+ * ```
585
+ *
586
+ * @example Creating an instance with id and retention
587
+ * ```typescript
588
+ * const instance = yield* workflow.create({
589
+ * id: "order-abc",
590
+ * params: { orderId: "abc" },
591
+ * retention: { successRetention: "1 day", errorRetention: "7 days" },
592
+ * });
593
+ * ```
594
+ *
595
+ * @example Creating a batch
596
+ * ```typescript
597
+ * const instances = yield* workflow.createBatch([
598
+ * { id: "order-a", params: { orderId: "a" } },
599
+ * { id: "order-b", params: { orderId: "b" } },
600
+ * ]);
361
601
  * ```
362
602
  *
363
603
  * @example Checking instance status
@@ -367,6 +607,13 @@ export class WorkflowScope extends Context.Service<
367
607
  * const status = yield* handle.status();
368
608
  * ```
369
609
  *
610
+ * @example Sending events and restarting instances
611
+ * ```typescript
612
+ * const instance = yield* workflow.get(instanceId);
613
+ * yield* instance.sendEvent({ type: "approval", payload: { approved: true } });
614
+ * yield* instance.restart({ from: { name: "approval", type: "waitForEvent" } });
615
+ * ```
616
+ *
370
617
  * @section Triggering from a Worker
371
618
  * Wire the workflow into HTTP routes so callers can fire instances
372
619
  * and poll for completion.
@@ -382,7 +629,7 @@ export class WorkflowScope extends Context.Service<
382
629
  *
383
630
  * if (request.url.startsWith("/workflow/start/")) {
384
631
  * const id = request.url.split("/").pop()!;
385
- * const instance = yield* notifier.create({ id });
632
+ * const instance = yield* notifier.create({ params: { orderId: id } });
386
633
  * return HttpServerResponse.json({ instanceId: instance.id });
387
634
  * }
388
635
  *
@@ -462,9 +709,8 @@ export class WorkflowScope extends Context.Service<
462
709
  * ```
463
710
  *
464
711
  * @section Testing Workflows
465
- * Workflows run asynchronously, so tests start an instance and
466
- * poll until it reaches a terminal status. A simple recipe with
467
- * `alchemy/Test/Bun`:
712
+ * Workflows run asynchronously, so tests start an instance and poll until it
713
+ * reaches a terminal status. Keep polling bounded with `Effect.repeat`.
468
714
  *
469
715
  * @example Polling for workflow completion
470
716
  * ```typescript
@@ -476,20 +722,20 @@ export class WorkflowScope extends Context.Service<
476
722
  * const start = yield* HttpClient.post(`${url}/workflow/start/x`);
477
723
  * const { instanceId } = (yield* start.json) as { instanceId: string };
478
724
  *
479
- * let status: { status: string } | undefined;
480
- * const deadline = Date.now() + 60_000;
481
- * while (Date.now() < deadline) {
482
- * const res = yield* HttpClient.get(
483
- * `${url}/workflow/status/${instanceId}`,
484
- * );
485
- * status = (yield* res.json) as { status: string };
486
- * if (status.status === "complete" || status.status === "errored") {
487
- * break;
488
- * }
489
- * yield* Effect.sleep("2 seconds");
490
- * }
725
+ * const status = yield* HttpClient.get(
726
+ * `${url}/workflow/status/${instanceId}`,
727
+ * ).pipe(
728
+ * Effect.flatMap((res) => res.json),
729
+ * Effect.map((json) => json as { status: string }),
730
+ * Effect.repeat({
731
+ * schedule: Schedule.spaced("2 seconds"),
732
+ * until: (status) =>
733
+ * status.status === "complete" || status.status === "errored",
734
+ * times: 30,
735
+ * }),
736
+ * );
491
737
  *
492
- * expect(status?.status).toBe("complete");
738
+ * expect(status.status).toBe("complete");
493
739
  * }),
494
740
  * { timeout: 120_000 },
495
741
  * );
@@ -563,11 +809,18 @@ export const Workflow: WorkflowClass = taggedFunction(WorkflowScope, ((
563
809
  const self: WorkflowHandle<any, any> = {
564
810
  Type: TypeId,
565
811
  name,
566
- create: (input: unknown) =>
567
- Effect.tryPromise(() => binding.create({ params: input })).pipe(
812
+ create: (options?: WorkflowInstanceCreateOptions<any>) =>
813
+ Effect.tryPromise(() => binding.create(options)).pipe(
568
814
  Effect.map(wrapInstance),
569
815
  Effect.orDie,
570
816
  ),
817
+ createBatch: (batch: WorkflowInstanceCreateOptions<any>[]) =>
818
+ Effect.tryPromise(
819
+ () => binding.createBatch(batch) as Promise<any[]>,
820
+ ).pipe(
821
+ Effect.map((instances: any[]) => instances.map(wrapInstance)),
822
+ Effect.orDie,
823
+ ),
571
824
  get: (instanceId: string) =>
572
825
  Effect.tryPromise(() => binding.get(instanceId)).pipe(
573
826
  Effect.map(wrapInstance),
@@ -725,10 +978,15 @@ const wrapInstance = <Result>(raw: any): WorkflowInstance<Result> => ({
725
978
  status: s.status as string,
726
979
  output: s.output as Result,
727
980
  error: s.error,
981
+ rollback: s.rollback,
728
982
  })),
729
983
  Effect.orDie,
730
984
  ),
731
985
  pause: () => Effect.tryPromise(() => raw.pause()).pipe(Effect.orDie),
732
986
  resume: () => Effect.tryPromise(() => raw.resume()).pipe(Effect.orDie),
987
+ restart: (options?: WorkflowInstanceRestartOptions) =>
988
+ Effect.tryPromise(() => raw.restart(options)).pipe(Effect.orDie),
733
989
  terminate: () => Effect.tryPromise(() => raw.terminate()).pipe(Effect.orDie),
990
+ sendEvent: <Event = unknown>(event: WorkflowInstanceEvent<Event>) =>
991
+ Effect.tryPromise(() => raw.sendEvent(event)).pipe(Effect.orDie),
734
992
  });
@@ -11,6 +11,10 @@ import {
11
11
  type WorkflowExport,
12
12
  type WorkflowImpl,
13
13
  WorkflowStep,
14
+ WorkflowStepContext,
15
+ type WorkflowStepConfig,
16
+ type WorkflowStepEvent,
17
+ type WorkflowTaskOptions,
14
18
  } from "./Workflow.ts";
15
19
 
16
20
  /**
@@ -105,29 +109,75 @@ export const makeWorkflowBridge =
105
109
  }
106
110
  };
107
111
 
108
- const wrapWorkflowEvent = (
109
- event: any,
110
- ): { payload: unknown; timestamp: Date; instanceId: string } => ({
112
+ const wrapWorkflowEvent = (event: any): WorkflowEventService["Service"] => ({
111
113
  payload: event.payload,
112
114
  timestamp:
113
115
  event.timestamp instanceof Date
114
116
  ? event.timestamp
115
117
  : new Date(event.timestamp),
116
118
  instanceId: event.instanceId ?? "",
119
+ workflowName: event.workflowName ?? "",
120
+ schedule: event.schedule,
117
121
  });
118
122
 
119
123
  const wrapWorkflowStep = (step: any): WorkflowStep["Service"] => ({
120
- do: <T>(name: string, effect: Effect.Effect<T>): Effect.Effect<T> =>
121
- Effect.tryPromise(
122
- () => step.do(name, () => Effect.runPromise(effect)) as Promise<T>,
123
- ),
124
+ do: <T>(options: WorkflowTaskOptions<T, any, any>): Effect.Effect<T> => {
125
+ const { name } = options;
126
+ // The surrounding body context is already provided in `task`; the bridge
127
+ // supplies `WorkflowStepContext` and runs the step to completion, so the
128
+ // effect is fully satisfied (R = never) at this boundary.
129
+ const effect = options.effect as Effect.Effect<
130
+ T,
131
+ never,
132
+ WorkflowStepContext
133
+ >;
134
+ const config = toWorkflowStepConfig(options);
135
+ const rollbackEffect = options.rollback;
136
+ const callback = (context: any) =>
137
+ Effect.runPromise(
138
+ effect.pipe(
139
+ Effect.provideService(WorkflowStepContext, {
140
+ step: context.step,
141
+ attempt: context.attempt,
142
+ config: context.config,
143
+ }),
144
+ ),
145
+ );
146
+ const rollback = rollbackEffect
147
+ ? {
148
+ rollback: (context: any) =>
149
+ Effect.runPromise(
150
+ rollbackEffect({
151
+ error: context.error,
152
+ output: context.output,
153
+ }) as Effect.Effect<void>,
154
+ ),
155
+ rollbackConfig: options.rollbackConfig,
156
+ }
157
+ : undefined;
158
+ return Effect.tryPromise(() => {
159
+ if (config && rollback) return step.do(name, config, callback, rollback);
160
+ if (config) return step.do(name, config, callback);
161
+ if (rollback) return step.do(name, callback, rollback);
162
+ return step.do(name, callback);
163
+ });
164
+ },
124
165
  sleep: (name: string, duration: string | number): Effect.Effect<void> =>
125
166
  Effect.tryPromise(() => step.sleep(name, duration)),
126
167
  sleepUntil: (name: string, timestamp: Date | number): Effect.Effect<void> =>
127
- Effect.tryPromise(() =>
128
- step.sleepUntil(
129
- name,
130
- timestamp instanceof Date ? timestamp.toISOString() : timestamp,
131
- ),
168
+ Effect.tryPromise(() => step.sleepUntil(name, timestamp)),
169
+ waitForEvent: <T>(
170
+ name: string,
171
+ options: any,
172
+ ): Effect.Effect<WorkflowStepEvent<T>> =>
173
+ Effect.tryPromise(
174
+ () => step.waitForEvent(name, options) as Promise<WorkflowStepEvent<T>>,
132
175
  ),
133
176
  });
177
+
178
+ const toWorkflowStepConfig = (
179
+ options: WorkflowTaskOptions<any, any, any>,
180
+ ): WorkflowStepConfig | undefined => {
181
+ if (!options.retries && !options.timeout) return undefined;
182
+ return { retries: options.retries, timeout: options.timeout };
183
+ };
@@ -185,7 +185,9 @@ export type ConfigAttributes = {
185
185
  * ```
186
186
  */
187
187
  export const Config = Object.assign(
188
- Resource<Config>("Cloudflare.Zaraz.Config"),
188
+ Resource<Config>("Cloudflare.Zaraz.Config", {
189
+ aliases: ["Cloudflare.ZarazConfig"],
190
+ }),
189
191
  {
190
192
  /**
191
193
  * Define a type-only contract for the events sent through this Zaraz config.
@@ -251,7 +253,10 @@ export const ConfigProvider = () =>
251
253
  }),
252
254
  read: Effect.fn(function* ({ olds, output }) {
253
255
  const zoneId =
254
- output?.zoneId ?? (olds ? yield* resolve(olds.zone) : undefined);
256
+ // `olds.zone` may be `undefined` when a `creating` row was persisted
257
+ // before upstream Outputs resolved — report "not found" then.
258
+ output?.zoneId ??
259
+ (olds?.zone !== undefined ? yield* resolve(olds.zone) : undefined);
255
260
  if (!zoneId) return undefined;
256
261
  return yield* observe(zoneId);
257
262
  }),
@@ -190,6 +190,7 @@ export type Zone = Resource<
190
190
  */
191
191
  export const Zone = Resource<Zone>("Cloudflare.Zone.Zone", {
192
192
  defaultRemovalPolicy: "retain",
193
+ aliases: ["Cloudflare.Zone"],
193
194
  });
194
195
 
195
196
  export const ZoneProvider = () =>