alchemy 2.0.0-beta.62 → 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 (489) hide show
  1. package/README.md +12 -12
  2. package/bin/exec.js +1959 -70
  3. package/bin/exec.js.map +1 -1
  4. package/lib/AWS/AuthProvider.js +1 -1
  5. package/lib/AWS/AuthProvider.js.map +1 -1
  6. package/lib/AWS/EC2/hosted.d.ts.map +1 -1
  7. package/lib/AWS/EC2/hosted.js +2 -1
  8. package/lib/AWS/EC2/hosted.js.map +1 -1
  9. package/lib/AWS/ECS/Task.d.ts.map +1 -1
  10. package/lib/AWS/ECS/Task.js +2 -1
  11. package/lib/AWS/ECS/Task.js.map +1 -1
  12. package/lib/AWS/Lambda/Function.d.ts.map +1 -1
  13. package/lib/AWS/Lambda/Function.js +13 -40
  14. package/lib/AWS/Lambda/Function.js.map +1 -1
  15. package/lib/AWS/Lambda/MicrovmRuntimeContext.d.ts.map +1 -1
  16. package/lib/AWS/Lambda/MicrovmRuntimeContext.js +9 -21
  17. package/lib/AWS/Lambda/MicrovmRuntimeContext.js.map +1 -1
  18. package/lib/Action.d.ts +8 -0
  19. package/lib/Action.d.ts.map +1 -1
  20. package/lib/Action.js +16 -5
  21. package/lib/Action.js.map +1 -1
  22. package/lib/ActionRuntimeContext.d.ts +14 -0
  23. package/lib/ActionRuntimeContext.d.ts.map +1 -0
  24. package/lib/ActionRuntimeContext.js +56 -0
  25. package/lib/ActionRuntimeContext.js.map +1 -0
  26. package/lib/Apply.d.ts.map +1 -1
  27. package/lib/Apply.js +40 -6
  28. package/lib/Apply.js.map +1 -1
  29. package/lib/Auth/AuthProvider.d.ts +3 -3
  30. package/lib/Auth/AuthProvider.d.ts.map +1 -1
  31. package/lib/Auth/AuthProvider.js +1 -1
  32. package/lib/Auth/AuthProvider.js.map +1 -1
  33. package/lib/Auth/Lock.d.ts.map +1 -1
  34. package/lib/Auth/Lock.js +5 -2
  35. package/lib/Auth/Lock.js.map +1 -1
  36. package/lib/Bundle/PurePlugin.d.ts.map +1 -1
  37. package/lib/Bundle/PurePlugin.js +26 -1
  38. package/lib/Bundle/PurePlugin.js.map +1 -1
  39. package/lib/Bundle/Vite.d.ts +2 -0
  40. package/lib/Bundle/Vite.d.ts.map +1 -1
  41. package/lib/Bundle/Vite.js +24 -1
  42. package/lib/Bundle/Vite.js.map +1 -1
  43. package/lib/Cli/LoggingCli.d.ts.map +1 -1
  44. package/lib/Cli/LoggingCli.js +7 -4
  45. package/lib/Cli/LoggingCli.js.map +1 -1
  46. package/lib/Cli/commands/_shared.d.ts +19 -0
  47. package/lib/Cli/commands/_shared.d.ts.map +1 -1
  48. package/lib/Cli/commands/_shared.js +22 -0
  49. package/lib/Cli/commands/_shared.js.map +1 -1
  50. package/lib/Cli/commands/login.d.ts +7 -3
  51. package/lib/Cli/commands/login.d.ts.map +1 -1
  52. package/lib/Cli/commands/login.js +70 -12
  53. package/lib/Cli/commands/login.js.map +1 -1
  54. package/lib/Cli/commands/profile.d.ts.map +1 -1
  55. package/lib/Cli/commands/profile.js +7 -20
  56. package/lib/Cli/commands/profile.js.map +1 -1
  57. package/lib/Cloudflare/AI/LanguageModel.js +21 -4
  58. package/lib/Cloudflare/AI/LanguageModel.js.map +1 -1
  59. package/lib/Cloudflare/AI/QuerySearchLocal.d.ts +37 -0
  60. package/lib/Cloudflare/AI/QuerySearchLocal.d.ts.map +1 -0
  61. package/lib/Cloudflare/AI/QuerySearchLocal.js +53 -0
  62. package/lib/Cloudflare/AI/QuerySearchLocal.js.map +1 -0
  63. package/lib/Cloudflare/AI/QuerySearchNamespaceLocal.d.ts +35 -0
  64. package/lib/Cloudflare/AI/QuerySearchNamespaceLocal.d.ts.map +1 -0
  65. package/lib/Cloudflare/AI/QuerySearchNamespaceLocal.js +47 -0
  66. package/lib/Cloudflare/AI/QuerySearchNamespaceLocal.js.map +1 -0
  67. package/lib/Cloudflare/AI/SearchHttpClient.d.ts +34 -0
  68. package/lib/Cloudflare/AI/SearchHttpClient.d.ts.map +1 -0
  69. package/lib/Cloudflare/AI/SearchHttpClient.js +262 -0
  70. package/lib/Cloudflare/AI/SearchHttpClient.js.map +1 -0
  71. package/lib/Cloudflare/AI/index.d.ts +2 -0
  72. package/lib/Cloudflare/AI/index.d.ts.map +1 -1
  73. package/lib/Cloudflare/AI/index.js +2 -0
  74. package/lib/Cloudflare/AI/index.js.map +1 -1
  75. package/lib/Cloudflare/Auth/AuthProvider.js +1 -1
  76. package/lib/Cloudflare/Auth/AuthProvider.js.map +1 -1
  77. package/lib/Cloudflare/Containers/ContainerBundle.d.ts.map +1 -1
  78. package/lib/Cloudflare/Containers/ContainerBundle.js +11 -1
  79. package/lib/Cloudflare/Containers/ContainerBundle.js.map +1 -1
  80. package/lib/Cloudflare/Containers/ContainerPlatform.d.ts.map +1 -1
  81. package/lib/Cloudflare/Containers/ContainerPlatform.js +12 -33
  82. package/lib/Cloudflare/Containers/ContainerPlatform.js.map +1 -1
  83. package/lib/Cloudflare/D1/QueryDatabaseHttpClient.d.ts +24 -0
  84. package/lib/Cloudflare/D1/QueryDatabaseHttpClient.d.ts.map +1 -0
  85. package/lib/Cloudflare/D1/QueryDatabaseHttpClient.js +106 -0
  86. package/lib/Cloudflare/D1/QueryDatabaseHttpClient.js.map +1 -0
  87. package/lib/Cloudflare/D1/QueryDatabaseLocal.d.ts +38 -0
  88. package/lib/Cloudflare/D1/QueryDatabaseLocal.d.ts.map +1 -0
  89. package/lib/Cloudflare/D1/QueryDatabaseLocal.js +54 -0
  90. package/lib/Cloudflare/D1/QueryDatabaseLocal.js.map +1 -0
  91. package/lib/Cloudflare/D1/index.d.ts +1 -0
  92. package/lib/Cloudflare/D1/index.d.ts.map +1 -1
  93. package/lib/Cloudflare/D1/index.js +1 -0
  94. package/lib/Cloudflare/D1/index.js.map +1 -1
  95. package/lib/Cloudflare/DNS/DnsHttp.d.ts +16 -1
  96. package/lib/Cloudflare/DNS/DnsHttp.d.ts.map +1 -1
  97. package/lib/Cloudflare/DNS/DnsHttp.js +6 -1
  98. package/lib/Cloudflare/DNS/DnsHttp.js.map +1 -1
  99. package/lib/Cloudflare/DNS/DnsLocal.d.ts +22 -0
  100. package/lib/Cloudflare/DNS/DnsLocal.d.ts.map +1 -0
  101. package/lib/Cloudflare/DNS/DnsLocal.js +31 -0
  102. package/lib/Cloudflare/DNS/DnsLocal.js.map +1 -0
  103. package/lib/Cloudflare/DNS/ReadDnsHttp.d.ts +3 -3
  104. package/lib/Cloudflare/DNS/ReadDnsHttp.d.ts.map +1 -1
  105. package/lib/Cloudflare/DNS/ReadDnsHttp.js +3 -4
  106. package/lib/Cloudflare/DNS/ReadDnsHttp.js.map +1 -1
  107. package/lib/Cloudflare/DNS/ReadDnsLocal.d.ts +32 -0
  108. package/lib/Cloudflare/DNS/ReadDnsLocal.d.ts.map +1 -0
  109. package/lib/Cloudflare/DNS/ReadDnsLocal.js +35 -0
  110. package/lib/Cloudflare/DNS/ReadDnsLocal.js.map +1 -0
  111. package/lib/Cloudflare/DNS/ReadWriteDnsHttp.d.ts +3 -3
  112. package/lib/Cloudflare/DNS/ReadWriteDnsHttp.d.ts.map +1 -1
  113. package/lib/Cloudflare/DNS/ReadWriteDnsHttp.js +4 -4
  114. package/lib/Cloudflare/DNS/ReadWriteDnsHttp.js.map +1 -1
  115. package/lib/Cloudflare/DNS/ReadWriteDnsLocal.d.ts +40 -0
  116. package/lib/Cloudflare/DNS/ReadWriteDnsLocal.d.ts.map +1 -0
  117. package/lib/Cloudflare/DNS/ReadWriteDnsLocal.js +43 -0
  118. package/lib/Cloudflare/DNS/ReadWriteDnsLocal.js.map +1 -0
  119. package/lib/Cloudflare/DNS/WriteDnsHttp.d.ts +3 -3
  120. package/lib/Cloudflare/DNS/WriteDnsHttp.d.ts.map +1 -1
  121. package/lib/Cloudflare/DNS/WriteDnsHttp.js +3 -4
  122. package/lib/Cloudflare/DNS/WriteDnsHttp.js.map +1 -1
  123. package/lib/Cloudflare/DNS/WriteDnsLocal.d.ts +38 -0
  124. package/lib/Cloudflare/DNS/WriteDnsLocal.d.ts.map +1 -0
  125. package/lib/Cloudflare/DNS/WriteDnsLocal.js +41 -0
  126. package/lib/Cloudflare/DNS/WriteDnsLocal.js.map +1 -0
  127. package/lib/Cloudflare/DNS/index.d.ts +3 -0
  128. package/lib/Cloudflare/DNS/index.d.ts.map +1 -1
  129. package/lib/Cloudflare/DNS/index.js +3 -0
  130. package/lib/Cloudflare/DNS/index.js.map +1 -1
  131. package/lib/Cloudflare/Flagship/ReadFlagsHttpClient.d.ts +27 -0
  132. package/lib/Cloudflare/Flagship/ReadFlagsHttpClient.d.ts.map +1 -0
  133. package/lib/Cloudflare/Flagship/ReadFlagsHttpClient.js +86 -0
  134. package/lib/Cloudflare/Flagship/ReadFlagsHttpClient.js.map +1 -0
  135. package/lib/Cloudflare/Flagship/ReadFlagsLocal.d.ts +41 -0
  136. package/lib/Cloudflare/Flagship/ReadFlagsLocal.d.ts.map +1 -0
  137. package/lib/Cloudflare/Flagship/ReadFlagsLocal.js +57 -0
  138. package/lib/Cloudflare/Flagship/ReadFlagsLocal.js.map +1 -0
  139. package/lib/Cloudflare/Flagship/index.d.ts +1 -0
  140. package/lib/Cloudflare/Flagship/index.d.ts.map +1 -1
  141. package/lib/Cloudflare/Flagship/index.js +1 -0
  142. package/lib/Cloudflare/Flagship/index.js.map +1 -1
  143. package/lib/Cloudflare/KV/NamespaceHttp.d.ts +16 -1
  144. package/lib/Cloudflare/KV/NamespaceHttp.d.ts.map +1 -1
  145. package/lib/Cloudflare/KV/NamespaceHttp.js +8 -2
  146. package/lib/Cloudflare/KV/NamespaceHttp.js.map +1 -1
  147. package/lib/Cloudflare/KV/NamespaceLocal.d.ts +22 -0
  148. package/lib/Cloudflare/KV/NamespaceLocal.d.ts.map +1 -0
  149. package/lib/Cloudflare/KV/NamespaceLocal.js +32 -0
  150. package/lib/Cloudflare/KV/NamespaceLocal.js.map +1 -0
  151. package/lib/Cloudflare/KV/ReadNamespaceHttp.d.ts +2 -2
  152. package/lib/Cloudflare/KV/ReadNamespaceHttp.d.ts.map +1 -1
  153. package/lib/Cloudflare/KV/ReadNamespaceHttp.js +5 -6
  154. package/lib/Cloudflare/KV/ReadNamespaceHttp.js.map +1 -1
  155. package/lib/Cloudflare/KV/ReadNamespaceLocal.d.ts +27 -0
  156. package/lib/Cloudflare/KV/ReadNamespaceLocal.d.ts.map +1 -0
  157. package/lib/Cloudflare/KV/ReadNamespaceLocal.js +30 -0
  158. package/lib/Cloudflare/KV/ReadNamespaceLocal.js.map +1 -0
  159. package/lib/Cloudflare/KV/ReadWriteNamespaceHttp.d.ts +3 -3
  160. package/lib/Cloudflare/KV/ReadWriteNamespaceHttp.d.ts.map +1 -1
  161. package/lib/Cloudflare/KV/ReadWriteNamespaceHttp.js +6 -6
  162. package/lib/Cloudflare/KV/ReadWriteNamespaceHttp.js.map +1 -1
  163. package/lib/Cloudflare/KV/ReadWriteNamespaceLocal.d.ts +34 -0
  164. package/lib/Cloudflare/KV/ReadWriteNamespaceLocal.d.ts.map +1 -0
  165. package/lib/Cloudflare/KV/ReadWriteNamespaceLocal.js +37 -0
  166. package/lib/Cloudflare/KV/ReadWriteNamespaceLocal.js.map +1 -0
  167. package/lib/Cloudflare/KV/WriteNamespaceHttp.d.ts +2 -2
  168. package/lib/Cloudflare/KV/WriteNamespaceHttp.d.ts.map +1 -1
  169. package/lib/Cloudflare/KV/WriteNamespaceHttp.js +5 -6
  170. package/lib/Cloudflare/KV/WriteNamespaceHttp.js.map +1 -1
  171. package/lib/Cloudflare/KV/WriteNamespaceLocal.d.ts +27 -0
  172. package/lib/Cloudflare/KV/WriteNamespaceLocal.d.ts.map +1 -0
  173. package/lib/Cloudflare/KV/WriteNamespaceLocal.js +30 -0
  174. package/lib/Cloudflare/KV/WriteNamespaceLocal.js.map +1 -0
  175. package/lib/Cloudflare/KV/index.d.ts +3 -0
  176. package/lib/Cloudflare/KV/index.d.ts.map +1 -1
  177. package/lib/Cloudflare/KV/index.js +3 -0
  178. package/lib/Cloudflare/KV/index.js.map +1 -1
  179. package/lib/Cloudflare/Queues/QueueHttp.d.ts +20 -1
  180. package/lib/Cloudflare/Queues/QueueHttp.d.ts.map +1 -1
  181. package/lib/Cloudflare/Queues/QueueHttp.js +2 -2
  182. package/lib/Cloudflare/Queues/QueueHttp.js.map +1 -1
  183. package/lib/Cloudflare/Queues/WriteQueueHttp.d.ts +9 -3
  184. package/lib/Cloudflare/Queues/WriteQueueHttp.d.ts.map +1 -1
  185. package/lib/Cloudflare/Queues/WriteQueueHttp.js +11 -6
  186. package/lib/Cloudflare/Queues/WriteQueueHttp.js.map +1 -1
  187. package/lib/Cloudflare/Queues/WriteQueueLocal.d.ts +36 -0
  188. package/lib/Cloudflare/Queues/WriteQueueLocal.d.ts.map +1 -0
  189. package/lib/Cloudflare/Queues/WriteQueueLocal.js +51 -0
  190. package/lib/Cloudflare/Queues/WriteQueueLocal.js.map +1 -0
  191. package/lib/Cloudflare/Queues/index.d.ts +1 -0
  192. package/lib/Cloudflare/Queues/index.d.ts.map +1 -1
  193. package/lib/Cloudflare/Queues/index.js +1 -0
  194. package/lib/Cloudflare/Queues/index.js.map +1 -1
  195. package/lib/Cloudflare/R2/BucketHttp.d.ts +15 -1
  196. package/lib/Cloudflare/R2/BucketHttp.d.ts.map +1 -1
  197. package/lib/Cloudflare/R2/BucketHttp.js +3 -3
  198. package/lib/Cloudflare/R2/BucketHttp.js.map +1 -1
  199. package/lib/Cloudflare/R2/BucketLocal.d.ts +21 -0
  200. package/lib/Cloudflare/R2/BucketLocal.d.ts.map +1 -0
  201. package/lib/Cloudflare/R2/BucketLocal.js +32 -0
  202. package/lib/Cloudflare/R2/BucketLocal.js.map +1 -0
  203. package/lib/Cloudflare/R2/ReadBucketHttp.d.ts +2 -2
  204. package/lib/Cloudflare/R2/ReadBucketHttp.d.ts.map +1 -1
  205. package/lib/Cloudflare/R2/ReadBucketHttp.js +4 -4
  206. package/lib/Cloudflare/R2/ReadBucketHttp.js.map +1 -1
  207. package/lib/Cloudflare/R2/ReadBucketLocal.d.ts +27 -0
  208. package/lib/Cloudflare/R2/ReadBucketLocal.d.ts.map +1 -0
  209. package/lib/Cloudflare/R2/ReadBucketLocal.js +30 -0
  210. package/lib/Cloudflare/R2/ReadBucketLocal.js.map +1 -0
  211. package/lib/Cloudflare/R2/ReadWriteBucketHttp.d.ts +2 -2
  212. package/lib/Cloudflare/R2/ReadWriteBucketHttp.d.ts.map +1 -1
  213. package/lib/Cloudflare/R2/ReadWriteBucketHttp.js +5 -4
  214. package/lib/Cloudflare/R2/ReadWriteBucketHttp.js.map +1 -1
  215. package/lib/Cloudflare/R2/ReadWriteBucketLocal.d.ts +30 -0
  216. package/lib/Cloudflare/R2/ReadWriteBucketLocal.d.ts.map +1 -0
  217. package/lib/Cloudflare/R2/ReadWriteBucketLocal.js +33 -0
  218. package/lib/Cloudflare/R2/ReadWriteBucketLocal.js.map +1 -0
  219. package/lib/Cloudflare/R2/WriteBucketHttp.d.ts +2 -2
  220. package/lib/Cloudflare/R2/WriteBucketHttp.d.ts.map +1 -1
  221. package/lib/Cloudflare/R2/WriteBucketHttp.js +4 -4
  222. package/lib/Cloudflare/R2/WriteBucketHttp.js.map +1 -1
  223. package/lib/Cloudflare/R2/WriteBucketLocal.d.ts +27 -0
  224. package/lib/Cloudflare/R2/WriteBucketLocal.d.ts.map +1 -0
  225. package/lib/Cloudflare/R2/WriteBucketLocal.js +30 -0
  226. package/lib/Cloudflare/R2/WriteBucketLocal.js.map +1 -0
  227. package/lib/Cloudflare/R2/index.d.ts +3 -0
  228. package/lib/Cloudflare/R2/index.d.ts.map +1 -1
  229. package/lib/Cloudflare/R2/index.js +3 -0
  230. package/lib/Cloudflare/R2/index.js.map +1 -1
  231. package/lib/Cloudflare/StateStore/Api.d.ts +2 -0
  232. package/lib/Cloudflare/Tunnel/ReadTunnel.d.ts +3 -3
  233. package/lib/Cloudflare/Tunnel/ReadTunnel.d.ts.map +1 -1
  234. package/lib/Cloudflare/Tunnel/ReadTunnel.js +7 -8
  235. package/lib/Cloudflare/Tunnel/ReadTunnel.js.map +1 -1
  236. package/lib/Cloudflare/Tunnel/ReadTunnelLocal.d.ts +29 -0
  237. package/lib/Cloudflare/Tunnel/ReadTunnelLocal.d.ts.map +1 -0
  238. package/lib/Cloudflare/Tunnel/ReadTunnelLocal.js +30 -0
  239. package/lib/Cloudflare/Tunnel/ReadTunnelLocal.js.map +1 -0
  240. package/lib/Cloudflare/Tunnel/ReadWriteTunnel.d.ts +3 -3
  241. package/lib/Cloudflare/Tunnel/ReadWriteTunnel.d.ts.map +1 -1
  242. package/lib/Cloudflare/Tunnel/ReadWriteTunnel.js +4 -4
  243. package/lib/Cloudflare/Tunnel/ReadWriteTunnel.js.map +1 -1
  244. package/lib/Cloudflare/Tunnel/ReadWriteTunnelLocal.d.ts +35 -0
  245. package/lib/Cloudflare/Tunnel/ReadWriteTunnelLocal.d.ts.map +1 -0
  246. package/lib/Cloudflare/Tunnel/ReadWriteTunnelLocal.js +36 -0
  247. package/lib/Cloudflare/Tunnel/ReadWriteTunnelLocal.js.map +1 -0
  248. package/lib/Cloudflare/Tunnel/TunnelBinding.d.ts +17 -1
  249. package/lib/Cloudflare/Tunnel/TunnelBinding.d.ts.map +1 -1
  250. package/lib/Cloudflare/Tunnel/TunnelBinding.js +7 -1
  251. package/lib/Cloudflare/Tunnel/TunnelBinding.js.map +1 -1
  252. package/lib/Cloudflare/Tunnel/TunnelLocalBinding.d.ts +19 -0
  253. package/lib/Cloudflare/Tunnel/TunnelLocalBinding.d.ts.map +1 -0
  254. package/lib/Cloudflare/Tunnel/TunnelLocalBinding.js +29 -0
  255. package/lib/Cloudflare/Tunnel/TunnelLocalBinding.js.map +1 -0
  256. package/lib/Cloudflare/Tunnel/WarpConnector.d.ts +3 -3
  257. package/lib/Cloudflare/Tunnel/WarpConnector.d.ts.map +1 -1
  258. package/lib/Cloudflare/Tunnel/WarpConnector.js +7 -4
  259. package/lib/Cloudflare/Tunnel/WarpConnector.js.map +1 -1
  260. package/lib/Cloudflare/Tunnel/WriteTunnel.d.ts +3 -3
  261. package/lib/Cloudflare/Tunnel/WriteTunnel.d.ts.map +1 -1
  262. package/lib/Cloudflare/Tunnel/WriteTunnel.js +7 -8
  263. package/lib/Cloudflare/Tunnel/WriteTunnel.js.map +1 -1
  264. package/lib/Cloudflare/Tunnel/WriteTunnelLocal.d.ts +29 -0
  265. package/lib/Cloudflare/Tunnel/WriteTunnelLocal.d.ts.map +1 -0
  266. package/lib/Cloudflare/Tunnel/WriteTunnelLocal.js +30 -0
  267. package/lib/Cloudflare/Tunnel/WriteTunnelLocal.js.map +1 -0
  268. package/lib/Cloudflare/Tunnel/index.d.ts +3 -0
  269. package/lib/Cloudflare/Tunnel/index.d.ts.map +1 -1
  270. package/lib/Cloudflare/Tunnel/index.js +3 -0
  271. package/lib/Cloudflare/Tunnel/index.js.map +1 -1
  272. package/lib/Cloudflare/Vectorize/SearchIndexHttpClient.d.ts +30 -0
  273. package/lib/Cloudflare/Vectorize/SearchIndexHttpClient.d.ts.map +1 -0
  274. package/lib/Cloudflare/Vectorize/SearchIndexHttpClient.js +100 -0
  275. package/lib/Cloudflare/Vectorize/SearchIndexHttpClient.js.map +1 -0
  276. package/lib/Cloudflare/Vectorize/SearchIndexLocal.d.ts +42 -0
  277. package/lib/Cloudflare/Vectorize/SearchIndexLocal.d.ts.map +1 -0
  278. package/lib/Cloudflare/Vectorize/SearchIndexLocal.js +58 -0
  279. package/lib/Cloudflare/Vectorize/SearchIndexLocal.js.map +1 -0
  280. package/lib/Cloudflare/Vectorize/index.d.ts +1 -0
  281. package/lib/Cloudflare/Vectorize/index.d.ts.map +1 -1
  282. package/lib/Cloudflare/Vectorize/index.js +1 -0
  283. package/lib/Cloudflare/Vectorize/index.js.map +1 -1
  284. package/lib/Cloudflare/Workers/BrowserHttpClient.d.ts +32 -0
  285. package/lib/Cloudflare/Workers/BrowserHttpClient.d.ts.map +1 -0
  286. package/lib/Cloudflare/Workers/BrowserHttpClient.js +100 -0
  287. package/lib/Cloudflare/Workers/BrowserHttpClient.js.map +1 -0
  288. package/lib/Cloudflare/Workers/BrowserLocal.d.ts +37 -0
  289. package/lib/Cloudflare/Workers/BrowserLocal.d.ts.map +1 -0
  290. package/lib/Cloudflare/Workers/BrowserLocal.js +53 -0
  291. package/lib/Cloudflare/Workers/BrowserLocal.js.map +1 -0
  292. package/lib/Cloudflare/Workers/ConfigProvider.d.ts +8 -0
  293. package/lib/Cloudflare/Workers/ConfigProvider.d.ts.map +1 -1
  294. package/lib/Cloudflare/Workers/ConfigProvider.js +10 -1
  295. package/lib/Cloudflare/Workers/ConfigProvider.js.map +1 -1
  296. package/lib/Cloudflare/Workers/DurableObject.d.ts +137 -3
  297. package/lib/Cloudflare/Workers/DurableObject.d.ts.map +1 -1
  298. package/lib/Cloudflare/Workers/DurableObject.js +141 -6
  299. package/lib/Cloudflare/Workers/DurableObject.js.map +1 -1
  300. package/lib/Cloudflare/Workers/LocalWorkerProvider.d.ts +2 -185
  301. package/lib/Cloudflare/Workers/LocalWorkerProvider.d.ts.map +1 -1
  302. package/lib/Cloudflare/Workers/Vite.d.ts.map +1 -1
  303. package/lib/Cloudflare/Workers/Vite.js +81 -2
  304. package/lib/Cloudflare/Workers/Vite.js.map +1 -1
  305. package/lib/Cloudflare/Workers/Worker.d.ts +15 -1
  306. package/lib/Cloudflare/Workers/Worker.d.ts.map +1 -1
  307. package/lib/Cloudflare/Workers/Worker.js.map +1 -1
  308. package/lib/Cloudflare/Workers/WorkerAsyncBindings.d.ts.map +1 -1
  309. package/lib/Cloudflare/Workers/WorkerAsyncBindings.js +2 -1
  310. package/lib/Cloudflare/Workers/WorkerAsyncBindings.js.map +1 -1
  311. package/lib/Cloudflare/Workers/WorkerBinding.d.ts +22 -1
  312. package/lib/Cloudflare/Workers/WorkerBinding.d.ts.map +1 -1
  313. package/lib/Cloudflare/Workers/WorkerBinding.js.map +1 -1
  314. package/lib/Cloudflare/Workers/WorkerBridge.d.ts.map +1 -1
  315. package/lib/Cloudflare/Workers/WorkerBridge.js +7 -2
  316. package/lib/Cloudflare/Workers/WorkerBridge.js.map +1 -1
  317. package/lib/Cloudflare/Workers/WorkerProvider.d.ts +81 -0
  318. package/lib/Cloudflare/Workers/WorkerProvider.d.ts.map +1 -1
  319. package/lib/Cloudflare/Workers/WorkerProvider.js +450 -61
  320. package/lib/Cloudflare/Workers/WorkerProvider.js.map +1 -1
  321. package/lib/Cloudflare/Workers/WorkerRuntimeContext.d.ts.map +1 -1
  322. package/lib/Cloudflare/Workers/WorkerRuntimeContext.js +11 -37
  323. package/lib/Cloudflare/Workers/WorkerRuntimeContext.js.map +1 -1
  324. package/lib/Cloudflare/Workers/index.d.ts +1 -0
  325. package/lib/Cloudflare/Workers/index.d.ts.map +1 -1
  326. package/lib/Cloudflare/Workers/index.js +1 -0
  327. package/lib/Cloudflare/Workers/index.js.map +1 -1
  328. package/lib/Diff.d.ts +16 -0
  329. package/lib/Diff.d.ts.map +1 -1
  330. package/lib/Diff.js +33 -0
  331. package/lib/Diff.js.map +1 -1
  332. package/lib/GitHub/Secrets.d.ts +1 -1
  333. package/lib/GitHub/Secrets.js +1 -1
  334. package/lib/GitHub/Variables.d.ts +1 -1
  335. package/lib/GitHub/Variables.js +1 -1
  336. package/lib/Local/RpcSerialization.d.ts.map +1 -1
  337. package/lib/Local/RpcSerialization.js +6 -2
  338. package/lib/Local/RpcSerialization.js.map +1 -1
  339. package/lib/Local/RpcSpawner.d.ts.map +1 -1
  340. package/lib/Local/RpcSpawner.js +14 -8
  341. package/lib/Local/RpcSpawner.js.map +1 -1
  342. package/lib/Neon/AuthProvider.js +1 -1
  343. package/lib/Neon/AuthProvider.js.map +1 -1
  344. package/lib/Plan.d.ts.map +1 -1
  345. package/lib/Plan.js +11 -4
  346. package/lib/Plan.js.map +1 -1
  347. package/lib/Planetscale/Database.d.ts +2 -1
  348. package/lib/Planetscale/Database.d.ts.map +1 -1
  349. package/lib/Planetscale/MySQL/MySQLClusterSize.d.ts +41 -3
  350. package/lib/Planetscale/MySQL/MySQLClusterSize.d.ts.map +1 -1
  351. package/lib/Planetscale/MySQL/MySQLClusterSize.js +88 -11
  352. package/lib/Planetscale/MySQL/MySQLClusterSize.js.map +1 -1
  353. package/lib/Planetscale/MySQL/MySQLDatabase.d.ts +14 -0
  354. package/lib/Planetscale/MySQL/MySQLDatabase.d.ts.map +1 -1
  355. package/lib/Planetscale/MySQL/MySQLDatabase.js +24 -11
  356. package/lib/Planetscale/MySQL/MySQLDatabase.js.map +1 -1
  357. package/lib/Platform.d.ts.map +1 -1
  358. package/lib/Platform.js +11 -1
  359. package/lib/Platform.js.map +1 -1
  360. package/lib/Runtime.d.ts +23 -0
  361. package/lib/Runtime.d.ts.map +1 -1
  362. package/lib/Runtime.js +83 -0
  363. package/lib/Runtime.js.map +1 -1
  364. package/lib/RuntimeContext.d.ts +46 -0
  365. package/lib/RuntimeContext.d.ts.map +1 -1
  366. package/lib/RuntimeContext.js +60 -0
  367. package/lib/RuntimeContext.js.map +1 -1
  368. package/lib/Server/Process.d.ts +1 -1
  369. package/lib/Server/Process.d.ts.map +1 -1
  370. package/lib/Server/Process.js +8 -8
  371. package/lib/Server/Process.js.map +1 -1
  372. package/lib/Stack.js +1 -1
  373. package/lib/Stack.js.map +1 -1
  374. package/lib/State/HttpStateApi.d.ts +10 -10
  375. package/lib/Test/Alchemy.d.ts +74 -0
  376. package/lib/Test/Alchemy.d.ts.map +1 -0
  377. package/lib/Test/Alchemy.js +143 -0
  378. package/lib/Test/Alchemy.js.map +1 -0
  379. package/lib/Util/cached-function.d.ts +1 -1
  380. package/lib/Util/cached-function.d.ts.map +1 -1
  381. package/lib/Util/cached-function.js +2 -2
  382. package/lib/Util/cached-function.js.map +1 -1
  383. package/lib/Util/proxy-chain.js +3 -0
  384. package/lib/Util/proxy-chain.js.map +1 -1
  385. package/package.json +10 -10
  386. package/src/AWS/AuthProvider.ts +1 -1
  387. package/src/AWS/EC2/hosted.ts +2 -1
  388. package/src/AWS/ECS/Task.ts +2 -1
  389. package/src/AWS/Lambda/Function.ts +13 -47
  390. package/src/AWS/Lambda/MicrovmRuntimeContext.ts +11 -38
  391. package/src/Action.ts +39 -6
  392. package/src/ActionRuntimeContext.ts +68 -0
  393. package/src/Apply.ts +46 -8
  394. package/src/Auth/AuthProvider.ts +1 -1
  395. package/src/Auth/Lock.ts +5 -2
  396. package/src/Bundle/PurePlugin.ts +34 -1
  397. package/src/Bundle/Vite.ts +51 -1
  398. package/src/Cli/LoggingCli.ts +7 -4
  399. package/src/Cli/commands/_shared.ts +52 -0
  400. package/src/Cli/commands/login.ts +90 -14
  401. package/src/Cli/commands/profile.ts +7 -41
  402. package/src/Cloudflare/AI/LanguageModel.ts +25 -5
  403. package/src/Cloudflare/AI/QuerySearchLocal.ts +66 -0
  404. package/src/Cloudflare/AI/QuerySearchNamespaceLocal.ts +60 -0
  405. package/src/Cloudflare/AI/SearchHttpClient.ts +423 -0
  406. package/src/Cloudflare/AI/index.ts +2 -0
  407. package/src/Cloudflare/Auth/AuthProvider.ts +1 -1
  408. package/src/Cloudflare/Containers/ContainerBundle.ts +11 -1
  409. package/src/Cloudflare/Containers/ContainerPlatform.ts +14 -52
  410. package/src/Cloudflare/D1/QueryDatabaseHttpClient.ts +176 -0
  411. package/src/Cloudflare/D1/QueryDatabaseLocal.ts +66 -0
  412. package/src/Cloudflare/D1/index.ts +1 -0
  413. package/src/Cloudflare/DNS/DnsHttp.ts +24 -2
  414. package/src/Cloudflare/DNS/DnsLocal.ts +41 -0
  415. package/src/Cloudflare/DNS/ReadDnsHttp.ts +4 -5
  416. package/src/Cloudflare/DNS/ReadDnsLocal.ts +38 -0
  417. package/src/Cloudflare/DNS/ReadWriteDnsHttp.ts +5 -5
  418. package/src/Cloudflare/DNS/ReadWriteDnsLocal.ts +46 -0
  419. package/src/Cloudflare/DNS/WriteDnsHttp.ts +4 -5
  420. package/src/Cloudflare/DNS/WriteDnsLocal.ts +44 -0
  421. package/src/Cloudflare/DNS/index.ts +3 -0
  422. package/src/Cloudflare/Flagship/ReadFlagsHttpClient.ts +183 -0
  423. package/src/Cloudflare/Flagship/ReadFlagsLocal.ts +69 -0
  424. package/src/Cloudflare/Flagship/index.ts +1 -0
  425. package/src/Cloudflare/KV/NamespaceHttp.ts +25 -2
  426. package/src/Cloudflare/KV/NamespaceLocal.ts +42 -0
  427. package/src/Cloudflare/KV/ReadNamespaceHttp.ts +7 -6
  428. package/src/Cloudflare/KV/ReadNamespaceLocal.ts +35 -0
  429. package/src/Cloudflare/KV/ReadWriteNamespaceHttp.ts +11 -6
  430. package/src/Cloudflare/KV/ReadWriteNamespaceLocal.ts +42 -0
  431. package/src/Cloudflare/KV/WriteNamespaceHttp.ts +7 -6
  432. package/src/Cloudflare/KV/WriteNamespaceLocal.ts +35 -0
  433. package/src/Cloudflare/KV/index.ts +3 -0
  434. package/src/Cloudflare/Queues/QueueHttp.ts +24 -2
  435. package/src/Cloudflare/Queues/WriteQueueHttp.ts +16 -7
  436. package/src/Cloudflare/Queues/WriteQueueLocal.ts +64 -0
  437. package/src/Cloudflare/Queues/index.ts +1 -0
  438. package/src/Cloudflare/R2/BucketHttp.ts +20 -3
  439. package/src/Cloudflare/R2/BucketLocal.ts +47 -0
  440. package/src/Cloudflare/R2/ReadBucketHttp.ts +10 -5
  441. package/src/Cloudflare/R2/ReadBucketLocal.ts +33 -0
  442. package/src/Cloudflare/R2/ReadWriteBucketHttp.ts +11 -5
  443. package/src/Cloudflare/R2/ReadWriteBucketLocal.ts +36 -0
  444. package/src/Cloudflare/R2/WriteBucketHttp.ts +10 -5
  445. package/src/Cloudflare/R2/WriteBucketLocal.ts +33 -0
  446. package/src/Cloudflare/R2/index.ts +3 -0
  447. package/src/Cloudflare/Tunnel/ReadTunnel.ts +8 -9
  448. package/src/Cloudflare/Tunnel/ReadTunnelLocal.ts +33 -0
  449. package/src/Cloudflare/Tunnel/ReadWriteTunnel.ts +5 -5
  450. package/src/Cloudflare/Tunnel/ReadWriteTunnelLocal.ts +39 -0
  451. package/src/Cloudflare/Tunnel/TunnelBinding.ts +26 -2
  452. package/src/Cloudflare/Tunnel/TunnelLocalBinding.ts +38 -0
  453. package/src/Cloudflare/Tunnel/WarpConnector.ts +8 -5
  454. package/src/Cloudflare/Tunnel/WriteTunnel.ts +8 -9
  455. package/src/Cloudflare/Tunnel/WriteTunnelLocal.ts +33 -0
  456. package/src/Cloudflare/Tunnel/index.ts +3 -0
  457. package/src/Cloudflare/Vectorize/SearchIndexHttpClient.ts +183 -0
  458. package/src/Cloudflare/Vectorize/SearchIndexLocal.ts +70 -0
  459. package/src/Cloudflare/Vectorize/index.ts +1 -0
  460. package/src/Cloudflare/Workers/BrowserHttpClient.ts +201 -0
  461. package/src/Cloudflare/Workers/BrowserLocal.ts +65 -0
  462. package/src/Cloudflare/Workers/ConfigProvider.ts +15 -1
  463. package/src/Cloudflare/Workers/DurableObject.ts +227 -6
  464. package/src/Cloudflare/Workers/Vite.ts +93 -11
  465. package/src/Cloudflare/Workers/Worker.ts +19 -1
  466. package/src/Cloudflare/Workers/WorkerAsyncBindings.ts +6 -5
  467. package/src/Cloudflare/Workers/WorkerBinding.ts +20 -1
  468. package/src/Cloudflare/Workers/WorkerBridge.ts +12 -2
  469. package/src/Cloudflare/Workers/WorkerProvider.ts +664 -117
  470. package/src/Cloudflare/Workers/WorkerRuntimeContext.ts +14 -45
  471. package/src/Cloudflare/Workers/index.ts +1 -0
  472. package/src/Diff.ts +33 -0
  473. package/src/GitHub/Secrets.ts +1 -1
  474. package/src/GitHub/Variables.ts +1 -1
  475. package/src/Local/RpcSerialization.ts +6 -2
  476. package/src/Local/RpcSpawner.ts +21 -8
  477. package/src/Neon/AuthProvider.ts +1 -1
  478. package/src/Plan.ts +17 -4
  479. package/src/Planetscale/Database.ts +2 -1
  480. package/src/Planetscale/MySQL/MySQLClusterSize.ts +120 -21
  481. package/src/Planetscale/MySQL/MySQLDatabase.ts +84 -44
  482. package/src/Platform.ts +12 -3
  483. package/src/Runtime.ts +92 -0
  484. package/src/RuntimeContext.ts +79 -0
  485. package/src/Server/Process.ts +11 -18
  486. package/src/Stack.ts +1 -1
  487. package/src/Test/Alchemy.ts +282 -0
  488. package/src/Util/cached-function.ts +5 -5
  489. package/src/Util/proxy-chain.ts +3 -0
@@ -10,10 +10,58 @@ import { asEffect } from "../../Util/types.js";
10
10
  import { DurableObjectState, fromDurableObjectState, } from "./DurableObjectState.js";
11
11
  import { makeRpcStub } from "./Rpc.js";
12
12
  import {} from "./WebSocket.js";
13
- import { Worker, WorkerEnvironment } from "./Worker.js";
13
+ import { isWorker, Worker, WorkerEnvironment, } from "./Worker.js";
14
14
  export const isDurableObjectExport = (value) => typeof value === "object" && value?.kind === "durableObject";
15
15
  const TypeId = "Cloudflare.DurableObject";
16
16
  export const isDurableObjectLike = (value) => typeof value === "object" && value?.kind === TypeId;
17
+ const resolveTransferSourceRef = (source, depth = 0) => {
18
+ if (typeof source === "string") {
19
+ return source;
20
+ }
21
+ // A Worker resource — contribute its logical id.
22
+ if (isWorker(source)) {
23
+ return source.LogicalId;
24
+ }
25
+ // A Worker platform class — carries its logical id statically. (On an
26
+ // Output proxy this property access yields another Output, never a
27
+ // string, so the check cannot misfire there.)
28
+ const logicalId = source.LogicalId;
29
+ if (typeof logicalId === "string") {
30
+ return logicalId;
31
+ }
32
+ // A same-stack Output on a Worker (e.g. `b.workerName`): take the
33
+ // identity from its provenance, not the value.
34
+ if (Output.isPropExpr(source)) {
35
+ const expr = source.expr;
36
+ if (Output.isResourceExpr(expr) && isWorker(expr.src)) {
37
+ return expr.src.LogicalId;
38
+ }
39
+ }
40
+ if (Output.isResourceExpr(source) && isWorker(source.src)) {
41
+ return source.src.LogicalId;
42
+ }
43
+ if (Output.isOutput(source)) {
44
+ // No local resource to take identity from (e.g. a cross-stack
45
+ // `stackRef`) — the engine resolves the string at deploy time.
46
+ return source;
47
+ }
48
+ if (typeof source === "function" && depth < 8) {
49
+ return resolveTransferSourceRef(source(), depth + 1);
50
+ }
51
+ throw new Error("Invalid transferredFrom entry: pass the former host's logical id or script name, its Worker class or resource, a thunk of one of those, or a string Output.");
52
+ };
53
+ /**
54
+ * Normalize a `transferredFrom` declaration to plain host identifiers at
55
+ * plan time. See {@link DurableObjectTransferSource} for the accepted forms
56
+ * and why Worker references reduce to logical ids instead of Outputs.
57
+ *
58
+ * @internal
59
+ */
60
+ export const normalizeTransferredFrom = (value) => value === undefined
61
+ ? undefined
62
+ : (Array.isArray(value)
63
+ ? value
64
+ : [value]).map((source) => resolveTransferSourceRef(source));
17
65
  export class DurableObjectScope extends Context.Service()("Cloudflare.DurableObject") {
18
66
  }
19
67
  /**
@@ -605,6 +653,85 @@ export class DurableObjectScope extends Context.Service()("Cloudflare.DurableObj
605
653
  * });
606
654
  * ```
607
655
  *
656
+ * @section Moving a Class Between Workers
657
+ * A Durable Object class can move from one Worker to another with its
658
+ * data intact. The move is always **declared** — a class that disappears
659
+ * from one worker and appears on another is otherwise ambiguous between
660
+ * "transfer the data" and "delete it, start fresh", so Alchemy never
661
+ * guesses (removing a DO deletes it; that is the default). Declare
662
+ * `transferredFrom` on the Durable Object at its **new host**, naming the
663
+ * former host, and the new host's deploy ships Cloudflare's
664
+ * data-preserving `transferred_classes` migration. The former host's
665
+ * deploy converges on its own — no delete migration is emitted for a
666
+ * class that moved away.
667
+ *
668
+ * Each `transferredFrom` entry is either the former host's Worker
669
+ * **logical id** (same stack + stage, resolved via alchemy's ownership
670
+ * tags) or its **physical script name** (required for cross-stack moves).
671
+ * When no listed host holds the namespace — a fresh stage, or the
672
+ * transfer already completed — the declaration is inert, so it is safe to
673
+ * leave in place indefinitely.
674
+ *
675
+ * @example Move a class from WorkerB to WorkerA
676
+ * ```typescript
677
+ * // BEFORE: worker-b hosts the class
678
+ * const b = yield* Cloudflare.Worker("WorkerB", {
679
+ * main: "./src/worker-b.ts", // exports MyDOClass
680
+ * bindings: {
681
+ * MyDO: Cloudflare.DurableObject("MyDO", { className: "MyDOClass" }),
682
+ * },
683
+ * });
684
+ *
685
+ * // AFTER: worker-a hosts it and declares where it came from;
686
+ * // worker-b keeps a cross-script reference.
687
+ * const a = yield* Cloudflare.Worker("WorkerA", {
688
+ * main: "./src/worker-a.ts", // now exports MyDOClass
689
+ * bindings: {
690
+ * MyDO: Cloudflare.DurableObject("MyDO", {
691
+ * className: "MyDOClass",
692
+ * transferredFrom: "WorkerB", // logical id (or its script name)
693
+ * }),
694
+ * },
695
+ * });
696
+ * const b = yield* Cloudflare.Worker("WorkerB", {
697
+ * main: "./src/worker-b.ts", // no longer exports MyDOClass
698
+ * bindings: {
699
+ * MyDO: Cloudflare.DurableObject("MyDO", {
700
+ * className: "MyDOClass",
701
+ * scriptName: a.workerName,
702
+ * }),
703
+ * },
704
+ * });
705
+ * ```
706
+ *
707
+ * Forgetting the declaration is safe: when the former host still
708
+ * references the class cross-script, its deploy fails before any upload
709
+ * with `DurableObjectTransferRequired`, telling you exactly what to
710
+ * declare — data is never silently destroyed or forked.
711
+ *
712
+ * @example Chained moves keep the host history
713
+ * ```typescript
714
+ * // The class moved WorkerB → WorkerA last release and WorkerA →
715
+ * // WorkerC this release. Keep the full history so a stage that lagged
716
+ * // behind (or skipped the intermediate release) still transfers from
717
+ * // wherever its namespace currently lives.
718
+ * Cloudflare.DurableObject("MyDO", {
719
+ * className: "MyDOClass",
720
+ * transferredFrom: ["WorkerB", "WorkerA"],
721
+ * })
722
+ * ```
723
+ *
724
+ * Two rules for multi-worker migrations:
725
+ *
726
+ * - **Pure moves (the former host drops the DO entirely, keeping no
727
+ * cross-script reference) must be two deploys**: first add the class to
728
+ * the new host with `transferredFrom` and deploy; then remove it from
729
+ * the former host and deploy. In a single deploy nothing orders the
730
+ * transfer before the former host's delete.
731
+ * - **Cross-stack moves deploy the new host's stack first**, naming the
732
+ * former host by physical script name; the former host's stack deploys
733
+ * after and converges.
734
+ *
608
735
  * @section Adopting an Existing Durable Object
609
736
  * When you adopt a Worker that already exists on Cloudflare — created
610
737
  * outside Alchemy via Wrangler, the dashboard, or the raw API — its
@@ -614,7 +741,8 @@ export class DurableObjectScope extends Context.Service()("Cloudflare.DurableObj
614
741
  * a worker with no Alchemy ownership tags as `Unowned`.
615
742
  *
616
743
  * Alchemy normally tracks which class backs each binding through an
617
- * `alchemy:do:<logicalId>:<className>` tag it writes on the script. A
744
+ * `alchemy:dos:` metadata tag it writes on the script (mapping each
745
+ * binding's logical id to its class name). A
618
746
  * foreign worker has no such tag, so on the **adopting deploy** Alchemy
619
747
  * falls back to matching your binding to the live class **by binding
620
748
  * name**. The class is then reused in place — not recreated — so
@@ -625,7 +753,7 @@ export class DurableObjectScope extends Context.Service()("Cloudflare.DurableObj
625
753
  * binding's `className` must match the class that already exists on the
626
754
  * worker.** You cannot rename the class in the same deploy that adopts
627
755
  * it. Once the deploy completes, Alchemy owns the worker and has written
628
- * the `alchemy:do:` tag, so subsequent renames are driven by logical id
756
+ * the `alchemy:dos:` tag, so subsequent renames are driven by logical id
629
757
  * and work normally.
630
758
  *
631
759
  * @example Adopting a worker whose `Counter` class already exists
@@ -666,16 +794,16 @@ export const DurableObject = taggedFunction(DurableObjectScope, function (...arg
666
794
  const isClassForm = args[2] === true;
667
795
  const propsOrImpl = args[1];
668
796
  const tag = Context.Service(namespace);
669
- const binding = (scriptName) => Effect.gen(function* () {
797
+ const binding = (scriptName, transferredFrom) => Effect.gen(function* () {
670
798
  const worker = yield* Worker;
671
799
  yield* worker.bind `${namespace}`({
672
- // TODO(sam): automate class migrations, probably in the provider
673
800
  bindings: [
674
801
  {
675
802
  type: "durable_object_namespace",
676
803
  name: namespace,
677
804
  className: namespace,
678
805
  scriptName,
806
+ transferredFrom: normalizeTransferredFrom(transferredFrom),
679
807
  },
680
808
  ],
681
809
  });
@@ -715,13 +843,19 @@ export const DurableObject = taggedFunction(DurableObjectScope, function (...arg
715
843
  // use((ns) => ns.jurisdiction(jurisdiction) as any),
716
844
  };
717
845
  });
846
+ // Class-form declarations (`DurableObject<Self>()("Name", props?)`) can
847
+ // carry `transferredFrom` so the host's local binding drives a
848
+ // data-preserving transfer migration.
849
+ const classProps = isClassForm && !Effect.isEffect(propsOrImpl)
850
+ ? propsOrImpl
851
+ : undefined;
718
852
  const make = Effect.fn(function* (impl) {
719
853
  // Register the local DO binding (no `scriptName`) and obtain the
720
854
  // namespace handle. We provide this same handle as
721
855
  // `DurableObjectScope` to the user's constructor effect
722
856
  // and also return it so a `Layer.effect(tag, make(impl))` Layer
723
857
  // resolves the tag to a concrete namespace value.
724
- const self = yield* binding();
858
+ const self = yield* binding(undefined, classProps?.transferredFrom);
725
859
  const phase = yield* ALCHEMY_PHASE;
726
860
  const constructor = impl.pipe(Effect.provide(Layer.succeed(DurableObjectScope, self)));
727
861
  if (phase === "plan") {
@@ -747,6 +881,7 @@ export const DurableObject = taggedFunction(DurableObjectScope, function (...arg
747
881
  name: namespace,
748
882
  className: args[1]?.className || namespace,
749
883
  scriptName: args[1]?.scriptName,
884
+ transferredFrom: args[1]?.transferredFrom,
750
885
  };
751
886
  }
752
887
  else if (Effect.isEffect(propsOrImpl)) {
@@ -1 +1 @@
1
- {"version":3,"file":"DurableObject.js","sourceRoot":"","sources":["../../../src/Cloudflare/Workers/DurableObject.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DurableObject.js","sourceRoot":"","sources":["../../../src/Cloudflare/Workers/DurableObject.ts"],"names":[],"mappings":"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"}
@@ -10,6 +10,7 @@ import { Stack } from "../../Stack.ts";
10
10
  import { CloudflareEnvironment } from "../CloudflareEnvironment.ts";
11
11
  import { LocalRuntimeState } from "../LocalRuntime.ts";
12
12
  import { Worker } from "./Worker.ts";
13
+ import type { WorkerBinding } from "./WorkerBinding.ts";
13
14
  declare const WorkerValidationError_base: Schema.Class<WorkerValidationError, Schema.TaggedStruct<"WorkerValidationError", {
14
15
  readonly message: Schema.String;
15
16
  readonly hint: Schema.optional<Schema.String>;
@@ -18,190 +19,6 @@ declare const WorkerValidationError_base: Schema.Class<WorkerValidationError, Sc
18
19
  export declare class WorkerValidationError extends WorkerValidationError_base {
19
20
  }
20
21
  export declare const LocalWorkerProvider: () => import("effect/Layer").Layer<import("../../Provider.ts").Provider<Worker<any>>, never, import("../../AlchemyContext.ts").AlchemyContext | import("../../Artifacts.ts").ArtifactStore | CloudflareEnvironment | import("effect/FileSystem").FileSystem | LocalRuntimeState | Path.Path | Scope.Scope | Stack | import("../../Stage.ts").Stage | WorkerProxy.WorkerProxy | RuntimeServices>;
21
- export declare const toRuntimeBinding: (b: {
22
- name: string;
23
- type: "ai";
24
- } | {
25
- instanceName: string;
26
- name: string;
27
- type: "ai_search";
28
- namespace?: string;
29
- } | {
30
- name: string;
31
- namespace: string;
32
- type: "ai_search_namespace";
33
- } | {
34
- dataset: string;
35
- name: string;
36
- type: "analytics_engine";
37
- } | {
38
- name: string;
39
- type: "assets";
40
- } | {
41
- name: string;
42
- type: "browser";
43
- } | {
44
- databaseId: string;
45
- name: string;
46
- type: "d1";
47
- id?: string;
48
- } | {
49
- name: string;
50
- part: string;
51
- type: "data_blob";
52
- } | {
53
- name: string;
54
- namespace: string;
55
- type: "dispatch_namespace";
56
- outbound?: {
57
- params?: {
58
- name: string;
59
- }[];
60
- worker?: {
61
- entrypoint?: string;
62
- environment?: string;
63
- service?: string;
64
- };
65
- };
66
- } | {
67
- name: string;
68
- type: "durable_object_namespace";
69
- className: string;
70
- dispatchNamespace?: string;
71
- environment?: string;
72
- namespaceId?: string;
73
- scriptName?: string;
74
- } | {
75
- id: string;
76
- name: string;
77
- type: "hyperdrive";
78
- } | {
79
- name: string;
80
- type: "inherit";
81
- oldName?: string;
82
- versionId?: string;
83
- } | {
84
- name: string;
85
- type: "images";
86
- } | {
87
- json: unknown;
88
- name: string;
89
- type: "json";
90
- } | {
91
- name: string;
92
- namespaceId: string;
93
- type: "kv_namespace";
94
- } | {
95
- name: string;
96
- type: "media";
97
- } | {
98
- certificateId: string;
99
- name: string;
100
- type: "mtls_certificate";
101
- } | {
102
- name: string;
103
- text: string;
104
- type: "plain_text";
105
- } | {
106
- name: string;
107
- pipeline: string;
108
- type: "pipelines";
109
- } | {
110
- name: string;
111
- queueName: string;
112
- type: "queue";
113
- } | {
114
- name: string;
115
- namespaceId: string;
116
- simple: {
117
- limit: number;
118
- period: number;
119
- mitigationTimeout?: number;
120
- };
121
- type: "ratelimit";
122
- } | {
123
- bucketName: string;
124
- name: string;
125
- type: "r2_bucket";
126
- jurisdiction?: "eu" | "fedramp" | "fedramp-high" | (string & {});
127
- } | {
128
- name: string;
129
- text: string;
130
- type: "secret_text";
131
- } | {
132
- name: string;
133
- type: "send_email";
134
- allowedDestinationAddresses?: string[];
135
- allowedSenderAddresses?: string[];
136
- destinationAddress?: string;
137
- } | {
138
- name: string;
139
- service: string;
140
- type: "service";
141
- entrypoint?: string;
142
- environment?: string;
143
- } | {
144
- name: string;
145
- part: string;
146
- type: "text_blob";
147
- } | {
148
- indexName: string;
149
- name: string;
150
- type: "vectorize";
151
- } | {
152
- name: string;
153
- type: "version_metadata";
154
- } | {
155
- name: string;
156
- secretName: string;
157
- storeId: string;
158
- type: "secrets_store_secret";
159
- } | {
160
- appId: string;
161
- name: string;
162
- type: "flagship";
163
- } | {
164
- algorithm: unknown;
165
- format: "raw" | "pkcs8" | "spki" | "jwk" | (string & {});
166
- name: string;
167
- type: "secret_key";
168
- usages: ("encrypt" | "decrypt" | "sign" | "verify" | "deriveKey" | "deriveBits" | "wrapKey" | "unwrapKey" | (string & {}))[];
169
- keyBase64?: string;
170
- keyJwk?: unknown;
171
- } | {
172
- name: string;
173
- type: "workflow";
174
- workflowName: string;
175
- className: string;
176
- scriptName?: string;
177
- } | {
178
- name: string;
179
- part: string;
180
- type: "wasm_module";
181
- } | {
182
- name: string;
183
- serviceId: string;
184
- type: "vpc_service";
185
- } | {
186
- name: string;
187
- type: "vpc_network";
188
- networkId?: string;
189
- tunnelId?: string;
190
- } | {
191
- name: string;
192
- type: "worker_loader";
193
- } | {
194
- name: string;
195
- type: "artifacts";
196
- namespace: string;
197
- } | {
198
- name: string;
199
- type: "ratelimit";
200
- namespaceId: string;
201
- simple: {
202
- limit: number;
203
- period: number;
204
- };
205
- }) => Effect.Effect<BindingHook<AnalyticsEngine.AnalyticsEngine> | BindingHook<Assets.Assets> | BindingHook<Hyperdrive.Hyperdrive> | BindingHook<RateLimit.RateLimit> | BindingHook<DispatchNamespace.DispatchNamespace | import("@distilled.cloud/cloudflare-runtime/remote-bindings/RemoteBindings").RemoteBindings> | BindingHook<Queue.Queue | import("@distilled.cloud/cloudflare-runtime/registry/RegistryProxy").RegistryProxy> | BindingHook<import("@distilled.cloud/cloudflare-runtime/registry/RegistryProxy").RegistryProxy | Workflows.Workflows> | BindingHook<import("@distilled.cloud/cloudflare-runtime/remote-bindings/RemoteBindings").RemoteBindings | SendEmail.SendEmail>, WorkerValidationError, never>;
22
+ export declare const toRuntimeBinding: (b: WorkerBinding) => Effect.Effect<BindingHook<AnalyticsEngine.AnalyticsEngine> | BindingHook<Assets.Assets> | BindingHook<Hyperdrive.Hyperdrive> | BindingHook<RateLimit.RateLimit> | BindingHook<DispatchNamespace.DispatchNamespace | import("@distilled.cloud/cloudflare-runtime/remote-bindings/RemoteBindings").RemoteBindings> | BindingHook<Queue.Queue | import("@distilled.cloud/cloudflare-runtime/registry/RegistryProxy").RegistryProxy> | BindingHook<import("@distilled.cloud/cloudflare-runtime/registry/RegistryProxy").RegistryProxy | Workflows.Workflows> | BindingHook<import("@distilled.cloud/cloudflare-runtime/remote-bindings/RemoteBindings").RemoteBindings | SendEmail.SendEmail>, WorkerValidationError, never>;
206
23
  export {};
207
24
  //# sourceMappingURL=LocalWorkerProvider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"LocalWorkerProvider.d.ts","sourceRoot":"","sources":["../../../src/Cloudflare/Workers/LocalWorkerProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,WAAW,EAOhB,KAAK,eAAe,EACrB,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAGL,eAAe,EAEf,MAAM,EAIN,iBAAiB,EAGjB,UAAU,EAMV,KAAK,EAEL,SAAS,EACT,SAAS,EAOT,SAAS,EACV,MAAM,8CAA8C,CAAC;AAEtD,OAAO,KAAK,WAAW,MAAM,uDAAuD,CAAC;AACrF,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAMxC,OAAO,KAAK,IAAI,MAAM,aAAa,CAAC;AAGpC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAOtC,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAEvC,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,EAAmB,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAGxE,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;;;;;;AAUrC,qBAAa,qBAAsB,SAAQ,0BAO1C;CAAG;AAEJ,eAAO,MAAM,mBAAmB,iYAsoB7B,CAAC;AAEJ,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8rBA6G3B,CAAC"}
1
+ {"version":3,"file":"LocalWorkerProvider.d.ts","sourceRoot":"","sources":["../../../src/Cloudflare/Workers/LocalWorkerProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,WAAW,EAOhB,KAAK,eAAe,EACrB,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAGL,eAAe,EAEf,MAAM,EAIN,iBAAiB,EAGjB,UAAU,EAMV,KAAK,EAEL,SAAS,EACT,SAAS,EAOT,SAAS,EACV,MAAM,8CAA8C,CAAC;AAEtD,OAAO,KAAK,WAAW,MAAM,uDAAuD,CAAC;AACrF,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAMxC,OAAO,KAAK,IAAI,MAAM,aAAa,CAAC;AAGpC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAOtC,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAEvC,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,EAAmB,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAGxE,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;;;;;;AAQxD,qBAAa,qBAAsB,SAAQ,0BAO1C;CAAG;AAEJ,eAAO,MAAM,mBAAmB,iYAsoB7B,CAAC;AAEJ,eAAO,MAAM,gBAAgB,gtBA6G3B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"Vite.d.ts","sourceRoot":"","sources":["../../../src/Cloudflare/Workers/Vite.ts"],"names":[],"mappings":"AAAA,OAAmB,EACjB,KAAK,2BAA2B,EACjC,MAAM,yCAAyC,CAAC;AACjD,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAKxC,OAAO,KAAK,KAAK,IAAI,MAAM,MAAM,CAAC;AAGlC,eAAO,MAAM,OAAO,YACT,MAAM,mBACV,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,iBACb,2BAA2B,iBAC3B,IAAI,CAAC,aAAa,2EAkBhC,CAAC;AAEJ,eAAO,MAAM,SAAS,YACX,MAAM,mBACV,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,iBACb,2BAA2B,8IAsBxC,CAAC"}
1
+ {"version":3,"file":"Vite.d.ts","sourceRoot":"","sources":["../../../src/Cloudflare/Workers/Vite.ts"],"names":[],"mappings":"AAAA,OAAmB,EACjB,KAAK,2BAA2B,EACjC,MAAM,yCAAyC,CAAC;AAEjD,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAKxC,OAAO,KAAK,KAAK,IAAI,MAAM,MAAM,CAAC;AAsElC,eAAO,MAAM,OAAO,YACT,MAAM,mBACV,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,iBACb,2BAA2B,iBAC3B,IAAI,CAAC,aAAa,2EAsBhC,CAAC;AAEJ,eAAO,MAAM,SAAS,YACX,MAAM,mBACV,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,iBACb,2BAA2B,8IAgCxC,CAAC"}
@@ -7,35 +7,114 @@ var __rewriteRelativeImportExtension = (this && this.__rewriteRelativeImportExte
7
7
  return path;
8
8
  };
9
9
  import cloudflare, {} from "@distilled.cloud/cloudflare-vite-plugin";
10
+ import * as ConsoleService from "effect/Console";
10
11
  import * as Effect from "effect/Effect";
11
12
  import * as Redacted from "effect/Redacted";
12
13
  import { createRequire } from "node:module";
13
14
  import path from "node:path";
14
15
  import { pathToFileURL } from "node:url";
15
16
  import { viteBuildOutputPlugin } from "../../Bundle/Vite.js";
16
- export const viteDev = (rootDir = process.cwd(), env, pluginOptions, serverOptions) => Effect.acquireRelease(Effect.promise(async () => {
17
+ /**
18
+ * Route Vite's logger through the ambient Effect `Console` service instead of
19
+ * its default stdout logger. Under the CLI this is the global console
20
+ * (identical output); under environments that override the Console — e.g.
21
+ * alchemy-test's per-test buffering console — the build output is captured
22
+ * with the test instead of leaking to the terminal.
23
+ */
24
+ const makeViteLogger = (console) => {
25
+ const loggedErrors = new WeakSet();
26
+ let hasWarned = false;
27
+ return {
28
+ info: (msg) => console.log(msg),
29
+ warn: (msg) => {
30
+ hasWarned = true;
31
+ console.warn(msg);
32
+ },
33
+ warnOnce: (msg) => {
34
+ hasWarned = true;
35
+ console.warn(msg);
36
+ },
37
+ error: (msg, options) => {
38
+ if (options?.error != null)
39
+ loggedErrors.add(options.error);
40
+ console.error(msg);
41
+ },
42
+ clearScreen: () => { },
43
+ hasErrorLogged: (error) => loggedErrors.has(error),
44
+ get hasWarned() {
45
+ return hasWarned;
46
+ },
47
+ };
48
+ };
49
+ /**
50
+ * Signals to the app's own Vite config that Alchemy is injecting its
51
+ * resource-aware Cloudflare plugin into this build/dev run.
52
+ *
53
+ * Apps that also build standalone (plain `vite build` in CI, no Alchemy)
54
+ * need the Cloudflare plugin in their `vite.config.ts`. Without a guard,
55
+ * an Alchemy-orchestrated run instantiates that config-file instance
56
+ * *alongside* the injected one: two same-named plugin stacks whose
57
+ * cross-plugin API lookups resolve by name, and — in dev — two workerd
58
+ * runtimes, only one of which carries the Worker's bindings. Guarding on
59
+ * this variable lets the config-file instance stand down:
60
+ *
61
+ * ```ts
62
+ * // vite.config.ts
63
+ * process.env.ALCHEMY_CLOUDFLARE_VITE_INJECTED === "1"
64
+ * ? null
65
+ * : cloudflare({ ... })
66
+ * ```
67
+ *
68
+ * The variable is set process-locally by `viteDev`/`viteBuild`, so it is
69
+ * correct regardless of which process hosts Vite (`alchemy dev` runs the
70
+ * dev server in the spawned local-provider host, not in the process that
71
+ * evaluates the user's alchemy.run.ts — an env variable set there never
72
+ * reaches the config).
73
+ *
74
+ * Contract: the value is `"1"` while the process is Alchemy-orchestrated;
75
+ * absence means not injected. It is deliberately never unset — Vite
76
+ * re-evaluates the app config on dev-server restarts long after
77
+ * `viteDev` returned, and concurrent `viteBuild`s in one process would
78
+ * race a save/restore. A process that ran an Alchemy build never also
79
+ * runs a standalone (non-Alchemy) Vite build, so the flag staying set is
80
+ * correct for the process lifetime.
81
+ */
82
+ const ALCHEMY_CLOUDFLARE_VITE_INJECTED = "ALCHEMY_CLOUDFLARE_VITE_INJECTED";
83
+ export const viteDev = (rootDir = process.cwd(), env, pluginOptions, serverOptions) => Effect.acquireRelease(ConsoleService.consoleWith((console) => Effect.promise(async () => {
84
+ process.env[ALCHEMY_CLOUDFLARE_VITE_INJECTED] = "1";
17
85
  const vite = await loadVite(rootDir);
18
86
  const devServer = await vite.createServer({
19
87
  root: rootDir,
20
88
  define: getDefine(env),
21
89
  plugins: [cloudflare(pluginOptions)],
22
90
  server: serverOptions,
91
+ customLogger: makeViteLogger(console),
23
92
  });
24
93
  await devServer.listen();
25
94
  return devServer;
26
- }), (devServer) => Effect.promise(async () => {
95
+ })), (devServer) => Effect.promise(async () => {
27
96
  await devServer.close();
28
97
  }));
29
98
  export const viteBuild = (rootDir = process.cwd(), env, pluginOptions) => Effect.gen(function* () {
30
99
  const outputPlugin = yield* viteBuildOutputPlugin({
31
100
  entryEnvironment: pluginOptions.viteEnvironments?.entry ?? "ssr",
32
101
  });
102
+ const console = yield* ConsoleService.Console;
33
103
  yield* Effect.promise(async () => {
104
+ process.env[ALCHEMY_CLOUDFLARE_VITE_INJECTED] = "1";
34
105
  const vite = await loadVite(rootDir);
35
106
  const builder = await vite.createBuilder({
36
107
  root: rootDir,
37
108
  define: getDefine(env),
38
109
  plugins: [cloudflare(pluginOptions), outputPlugin.plugin],
110
+ customLogger: makeViteLogger(console),
111
+ // Disables the NATIVE rolldown progress reporter ("transforming…",
112
+ // "rendering chunks…", "computing gzip size…"): it prints from
113
+ // Rust straight to fd 1 and cannot be intercepted from JS — vite
114
+ // only enables it when logLevel >= info. Info-level build
115
+ // summaries are suppressed with it; warnings and errors still
116
+ // reach the customLogger above.
117
+ logLevel: "warn",
39
118
  },
40
119
  // This is the `useLegacyBuilder` option. The Vite CLI implementation uses `null` here.
41
120
  // Originally we used `undefined` here, but this caused the static site build to fail.
@@ -1 +1 @@
1
- {"version":3,"file":"Vite.js","sourceRoot":"","sources":["../../../src/Cloudflare/Workers/Vite.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Vite.js","sourceRoot":"","sources":["../../../src/Cloudflare/Workers/Vite.ts"],"names":[],"mappings":";;;;;;;;AAAA,OAAO,UAAU,EAAE,EAElB,MAAM,yCAAyC,CAAC;AACjD,OAAO,KAAK,cAAc,MAAM,gBAAgB,CAAC;AACjD,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAE7D;;;;;;GAMG;AACH,MAAM,cAAc,GAAG,CAAC,OAA+B,EAAe,EAAE;IACtE,MAAM,YAAY,GAAG,IAAI,OAAO,EAAU,CAAC;IAC3C,IAAI,SAAS,GAAG,KAAK,CAAC;IACtB,OAAO;QACL,IAAI,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC;QAC/B,IAAI,EAAE,CAAC,GAAG,EAAE,EAAE;YACZ,SAAS,GAAG,IAAI,CAAC;YACjB,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACpB,CAAC;QACD,QAAQ,EAAE,CAAC,GAAG,EAAE,EAAE;YAChB,SAAS,GAAG,IAAI,CAAC;YACjB,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACpB,CAAC;QACD,KAAK,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE;YACtB,IAAI,OAAO,EAAE,KAAK,IAAI,IAAI;gBAAE,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAC5D,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACrB,CAAC;QACD,WAAW,EAAE,GAAG,EAAE,GAAE,CAAC;QACrB,cAAc,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC;QAClD,IAAI,SAAS;YACX,OAAO,SAAS,CAAC;QACnB,CAAC;KACF,CAAC;AACJ,CAAC,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,MAAM,gCAAgC,GAAG,kCAAkC,CAAC;AAE5E,MAAM,CAAC,MAAM,OAAO,GAAG,CACrB,OAAO,GAAW,OAAO,CAAC,GAAG,EAAE,EAC/B,GAA4B,EAC5B,aAA0C,EAC1C,aAAiC,EACjC,EAAE,CACF,MAAM,CAAC,cAAc,CACnB,cAAc,CAAC,WAAW,CAAC,CAAC,OAAO,EAAE,EAAE,CACrC,MAAM,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE;IACxB,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,GAAG,GAAG,CAAC;IACpD,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,CAAC;IACrC,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC;QACxC,IAAI,EAAE,OAAO;QACb,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC;QACtB,OAAO,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;QACpC,MAAM,EAAE,aAAa;QACrB,YAAY,EAAE,cAAc,CAAC,OAAO,CAAC;KACtC,CAAC,CAAC;IACH,MAAM,SAAS,CAAC,MAAM,EAAE,CAAC;IACzB,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC,CACH,EACD,CAAC,SAAS,EAAE,EAAE,CACZ,MAAM,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE;IACxB,MAAM,SAAS,CAAC,KAAK,EAAE,CAAC;AAC1B,CAAC,CAAC,CACL,CAAC;AAEJ,MAAM,CAAC,MAAM,SAAS,GAAG,CACvB,OAAO,GAAW,OAAO,CAAC,GAAG,EAAE,EAC/B,GAA4B,EAC5B,aAA0C,EAC1C,EAAE,CACF,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,YAAY,GAAG,KAAK,CAAC,CAAC,qBAAqB,CAAC;QAChD,gBAAgB,EAAE,aAAa,CAAC,gBAAgB,EAAE,KAAK,IAAI,KAAK;KACjE,CAAC,CAAC;IACH,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC;IAC9C,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE;QAC/B,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,GAAG,GAAG,CAAC;QACpD,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,CAAC;QACrC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,aAAa,CACtC;YACE,IAAI,EAAE,OAAO;YACb,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC;YACtB,OAAO,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,YAAY,CAAC,MAAM,CAAC;YACzD,YAAY,EAAE,cAAc,CAAC,OAAO,CAAC;YACrC,mEAAmE;YACnE,+DAA+D;YAC/D,iEAAiE;YACjE,0DAA0D;YAC1D,8DAA8D;YAC9D,gCAAgC;YAChC,QAAQ,EAAE,MAAM;SACjB;QACD,uFAAuF;QACvF,sFAAsF;QACtF,kHAAkH;QAClH,IAAI,CACL,CAAC;QACF,MAAM,OAAO,CAAC,QAAQ,EAAE,CAAC;IAC3B,CAAC,CAAC,CAAC;IACH,OAAO,KAAK,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC;AACpC,CAAC,CAAC,CAAC;AAEL,2DAA2D;AAC3D,2DAA2D;AAC3D,2DAA2D;AAC3D,2DAA2D;AAC3D,+BAA+B;AAC/B,MAAM,SAAS,GAAG,CAAC,GAA4B,EAAE,EAAE,CACjD,MAAM,CAAC,WAAW,CAChB,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,EAAE;IACzC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC;QAAE,OAAO,EAAE,CAAC;IACxC,MAAM,KAAK,GAAG,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;IACnE,OAAO,CAAC,CAAC,mBAAmB,GAAG,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAU,CAAC,CAAC;AACtE,CAAC,CAAC,CACH,CAAC;AAIJ;;;GAGG;AACH,KAAK,UAAU,QAAQ,CACrB,WAAW,GAAW,OAAO,CAAC,GAAG,EAAE;IAEnC,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC,CAAC;QACtE,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACzC,oEAAoE;QACpE,MAAM,OAAO,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;QACxC,OAAO,MAAM,MAAM,kCAAC,kBAAkB,CAAC,OAAO,CAAC,IAAI,EAAC,CAAC;IACvD,CAAC;IAAC,MAAM,CAAC;QACP,4FAA4F;QAC5F,oDAAoD;QACpD,OAAO,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC;IAC9B,CAAC;AACH,CAAC"}
@@ -413,7 +413,20 @@ export interface ViteOptions {
413
413
  *
414
414
  * @see {@link MemoOptions}
415
415
  */
416
- memo?: MemoOptions;
416
+ memo?: MemoOptions & {
417
+ /**
418
+ * Configure additional workspaces to hash.
419
+ * By default, auto-detects workspaces during Vite build, then hashes all
420
+ * non-gitignored files in the workspace plus the nearest lockfile.
421
+ * @default "auto"
422
+ */
423
+ workspaces?: "auto" | Array<MemoOptions & {
424
+ /**
425
+ * The working directory to hash, relative to the Vite root.
426
+ */
427
+ cwd: string;
428
+ }>;
429
+ };
417
430
  /**
418
431
  * Selects which Vite environments make up the deployed Worker, for
419
432
  * frameworks that build more than one (e.g. React Server Components).
@@ -460,6 +473,7 @@ export type Worker<Bindings extends WorkerBindings = any> = Resource<WorkerTypeI
460
473
  assets: string | undefined;
461
474
  bundle: string | undefined;
462
475
  input: string | undefined;
476
+ additionalWorkspaces: string[] | undefined;
463
477
  metadata?: string | undefined;
464
478
  };
465
479
  }, {