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
@@ -1 +1 @@
1
- {"version":3,"file":"ReadWriteBucketHttp.d.ts","sourceRoot":"","sources":["../../../src/Cloudflare/R2/ReadWriteBucketHttp.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,EAAyB,KAAK,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAExE,OAAO,EACL,eAAe,EACf,KAAK,qBAAqB,EAC3B,MAAM,sBAAsB,CAAC;AAG9B;;;;GAIG;AACH,eAAO,MAAM,mBAAmB;;;GAQ/B,CAAC;AAEF,2EAA2E;AAC3E,eAAO,MAAM,yBAAyB,UAC7B,SAAS,cACJ,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,gBACnB,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,KAClC,qBAIiC,CAAC"}
1
+ {"version":3,"file":"ReadWriteBucketHttp.d.ts","sourceRoot":"","sources":["../../../src/Cloudflare/R2/ReadWriteBucketHttp.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAEtC,OAAO,EAAyB,KAAK,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAErE,OAAO,EACL,eAAe,EACf,KAAK,qBAAqB,EAC3B,MAAM,sBAAsB,CAAC;AAG9B;;;;GAIG;AACH,eAAO,MAAM,mBAAmB;;;GAa/B,CAAC;AAEF,2EAA2E;AAC3E,eAAO,MAAM,yBAAyB,SAC9B,MAAM,cACA,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,gBACnB,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,KAClC,qBAIiC,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import * as Effect from "effect/Effect";
2
2
  import * as Layer from "effect/Layer";
3
+ import { authorizeWith } from "../HttpClientUtils.js";
3
4
  import { makeHttpBucketBinding } from "./BucketHttp.js";
4
5
  import { makeReadR2HttpClient } from "./ReadBucketHttp.js";
5
6
  import { ReadWriteBucket, } from "./ReadWriteBucket.js";
@@ -11,11 +12,11 @@ import { makeWriteR2HttpClient } from "./WriteBucketHttp.js";
11
12
  */
12
13
  export const ReadWriteBucketHttp = Layer.effect(ReadWriteBucket, Effect.suspend(() => makeHttpBucketBinding({
13
14
  permissionGroups: ["Workers R2 Storage Read", "Workers R2 Storage Write"],
14
- makeClient: makeReadWriteR2HttpClient,
15
+ makeClient: (token, bucketName, jurisdiction) => makeReadWriteR2HttpClient({ authorize: authorizeWith(token), accountId: token.accountId }, bucketName, jurisdiction),
15
16
  })));
16
17
  /** Build the HTTP-backed {@link ReadWrite} over a bound token + bucket. */
17
- export const makeReadWriteR2HttpClient = (token, bucketName, jurisdiction) => ({
18
- ...makeReadR2HttpClient(token, bucketName, jurisdiction),
19
- ...makeWriteR2HttpClient(token, bucketName, jurisdiction),
18
+ export const makeReadWriteR2HttpClient = (auth, bucketName, jurisdiction) => ({
19
+ ...makeReadR2HttpClient(auth, bucketName, jurisdiction),
20
+ ...makeWriteR2HttpClient(auth, bucketName, jurisdiction),
20
21
  });
21
22
  //# sourceMappingURL=ReadWriteBucketHttp.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ReadWriteBucketHttp.js","sourceRoot":"","sources":["../../../src/Cloudflare/R2/ReadWriteBucketHttp.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,qBAAqB,EAAkB,MAAM,iBAAiB,CAAC;AACxE,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EACL,eAAe,GAEhB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAE7D;;;;GAIG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAK,CAAC,MAAM,CAC7C,eAAe,EACf,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAClB,qBAAqB,CAAC;IACpB,gBAAgB,EAAE,CAAC,yBAAyB,EAAE,0BAA0B,CAAC;IACzE,UAAU,EAAE,yBAAyB;CACtC,CAAC,CACH,CACF,CAAC;AAEF,2EAA2E;AAC3E,MAAM,CAAC,MAAM,yBAAyB,GAAG,CACvC,KAAgB,EAChB,UAAiC,EACjC,YAAmC,EACZ,EAAE,CACzB,CAAC;IACC,GAAG,oBAAoB,CAAC,KAAK,EAAE,UAAU,EAAE,YAAY,CAAC;IACxD,GAAG,qBAAqB,CAAC,KAAK,EAAE,UAAU,EAAE,YAAY,CAAC;CAC1D,CAAiC,CAAC"}
1
+ {"version":3,"file":"ReadWriteBucketHttp.js","sourceRoot":"","sources":["../../../src/Cloudflare/R2/ReadWriteBucketHttp.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAe,MAAM,iBAAiB,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EACL,eAAe,GAEhB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAE7D;;;;GAIG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAK,CAAC,MAAM,CAC7C,eAAe,EACf,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAClB,qBAAqB,CAAC;IACpB,gBAAgB,EAAE,CAAC,yBAAyB,EAAE,0BAA0B,CAAC;IACzE,UAAU,EAAE,CAAC,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,EAAE,CAC9C,yBAAyB,CACvB,EAAE,SAAS,EAAE,aAAa,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,EAC/D,UAAU,EACV,YAAY,CACb;CACJ,CAAC,CACH,CACF,CAAC;AAEF,2EAA2E;AAC3E,MAAM,CAAC,MAAM,yBAAyB,GAAG,CACvC,IAAY,EACZ,UAAiC,EACjC,YAAmC,EACZ,EAAE,CACzB,CAAC;IACC,GAAG,oBAAoB,CAAC,IAAI,EAAE,UAAU,EAAE,YAAY,CAAC;IACvD,GAAG,qBAAqB,CAAC,IAAI,EAAE,UAAU,EAAE,YAAY,CAAC;CACzD,CAAiC,CAAC"}
@@ -0,0 +1,30 @@
1
+ import * as Layer from "effect/Layer";
2
+ import { ReadWriteBucket } from "./ReadWriteBucket.ts";
3
+ /**
4
+ * Local implementation of the {@link ReadWriteBucket} binding — reads and
5
+ * writes R2 objects over the Cloudflare HTTP API using the **current
6
+ * credentials** instead of a native Worker binding (`ReadWriteBucketBinding`)
7
+ * or a scoped API token (`ReadWriteBucketHttp`).
8
+ *
9
+ * Provide it on an {@link Action} (or any deploy-time Effect) to use the same
10
+ * `head`/`get`/`list`/`put`/`delete` client you'd use inside a Worker.
11
+ * Multipart uploads are unsupported over the HTTP API (mirrors
12
+ * `ReadWriteBucketHttp`).
13
+ *
14
+ * @example Seeding then reading a bucket from an Action
15
+ * ```typescript
16
+ * const Seed = Alchemy.Action(
17
+ * "Seed",
18
+ * Effect.gen(function* () {
19
+ * const r2 = yield* Cloudflare.R2.ReadWriteBucket(bucket);
20
+ * return Effect.fn(function* () {
21
+ * yield* r2.put("hello.txt", "Hello, World!");
22
+ * const object = yield* r2.get("hello.txt");
23
+ * return object ? yield* object.text() : null;
24
+ * });
25
+ * }).pipe(Effect.provide(Cloudflare.R2.ReadWriteBucketLocal)),
26
+ * );
27
+ * ```
28
+ */
29
+ export declare const ReadWriteBucketLocal: Layer.Layer<ReadWriteBucket, never, import("../CloudflareEnvironment.ts").CloudflareEnvironment | import("@distilled.cloud/cloudflare").Credentials | import("effect/unstable/http/HttpClient").HttpClient>;
30
+ //# sourceMappingURL=ReadWriteBucketLocal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReadWriteBucketLocal.d.ts","sourceRoot":"","sources":["../../../src/Cloudflare/R2/ReadWriteBucketLocal.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAEtC,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAGvD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,eAAO,MAAM,oBAAoB,6MAGhC,CAAC"}
@@ -0,0 +1,33 @@
1
+ import * as Effect from "effect/Effect";
2
+ import * as Layer from "effect/Layer";
3
+ import { makeLocalBucketBinding } from "./BucketLocal.js";
4
+ import { ReadWriteBucket } from "./ReadWriteBucket.js";
5
+ import { makeReadWriteR2HttpClient } from "./ReadWriteBucketHttp.js";
6
+ /**
7
+ * Local implementation of the {@link ReadWriteBucket} binding — reads and
8
+ * writes R2 objects over the Cloudflare HTTP API using the **current
9
+ * credentials** instead of a native Worker binding (`ReadWriteBucketBinding`)
10
+ * or a scoped API token (`ReadWriteBucketHttp`).
11
+ *
12
+ * Provide it on an {@link Action} (or any deploy-time Effect) to use the same
13
+ * `head`/`get`/`list`/`put`/`delete` client you'd use inside a Worker.
14
+ * Multipart uploads are unsupported over the HTTP API (mirrors
15
+ * `ReadWriteBucketHttp`).
16
+ *
17
+ * @example Seeding then reading a bucket from an Action
18
+ * ```typescript
19
+ * const Seed = Alchemy.Action(
20
+ * "Seed",
21
+ * Effect.gen(function* () {
22
+ * const r2 = yield* Cloudflare.R2.ReadWriteBucket(bucket);
23
+ * return Effect.fn(function* () {
24
+ * yield* r2.put("hello.txt", "Hello, World!");
25
+ * const object = yield* r2.get("hello.txt");
26
+ * return object ? yield* object.text() : null;
27
+ * });
28
+ * }).pipe(Effect.provide(Cloudflare.R2.ReadWriteBucketLocal)),
29
+ * );
30
+ * ```
31
+ */
32
+ export const ReadWriteBucketLocal = Layer.effect(ReadWriteBucket, Effect.suspend(() => makeLocalBucketBinding(makeReadWriteR2HttpClient)));
33
+ //# sourceMappingURL=ReadWriteBucketLocal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReadWriteBucketLocal.js","sourceRoot":"","sources":["../../../src/Cloudflare/R2/ReadWriteBucketLocal.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AAErE;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,CAAC,MAAM,CAC9C,eAAe,EACf,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,sBAAsB,CAAC,yBAAyB,CAAC,CAAC,CACxE,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import * as Effect from "effect/Effect";
2
2
  import * as Layer from "effect/Layer";
3
- import { type HttpToken } from "./BucketHttp.ts";
3
+ import { type R2Auth } from "./BucketHttp.ts";
4
4
  import { WriteBucket, type WriteBucketClient } from "./WriteBucket.ts";
5
5
  /**
6
6
  * HTTP-backed implementation of the {@link WriteBucket} binding.
@@ -12,5 +12,5 @@ export declare const WriteBucketHttp: Layer.Layer<WriteBucket, never, import("..
12
12
  LogicalId: string;
13
13
  }>>;
14
14
  /** Build the write half of the HTTP-backed {@link ReadWrite} client. */
15
- export declare const makeWriteR2HttpClient: (token: HttpToken, bucketName: Effect.Effect<string>, jurisdiction: Effect.Effect<string>) => WriteBucketClient;
15
+ export declare const makeWriteR2HttpClient: (auth: R2Auth, bucketName: Effect.Effect<string>, jurisdiction: Effect.Effect<string>) => WriteBucketClient;
16
16
  //# sourceMappingURL=WriteBucketHttp.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"WriteBucketHttp.d.ts","sourceRoot":"","sources":["../../../src/Cloudflare/R2/WriteBucketHttp.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAGtC,OAAO,EAOL,KAAK,SAAS,EACf,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,WAAW,EAAE,KAAK,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAEvE;;;;GAIG;AACH,eAAO,MAAM,eAAe;;;GAQ3B,CAAC;AAEF,wEAAwE;AACxE,eAAO,MAAM,qBAAqB,UACzB,SAAS,cACJ,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,gBACnB,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,KAClC,iBA0GF,CAAC"}
1
+ {"version":3,"file":"WriteBucketHttp.d.ts","sourceRoot":"","sources":["../../../src/Cloudflare/R2/WriteBucketHttp.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAGtC,OAAO,EAOL,KAAK,MAAM,EACZ,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,WAAW,EAAE,KAAK,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAEvE;;;;GAIG;AACH,eAAO,MAAM,eAAe;;;GAa3B,CAAC;AAEF,wEAAwE;AACxE,eAAO,MAAM,qBAAqB,SAC1B,MAAM,cACA,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,gBACnB,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,KAClC,iBA0GF,CAAC"}
@@ -13,12 +13,12 @@ import { WriteBucket } from "./WriteBucket.js";
13
13
  */
14
14
  export const WriteBucketHttp = Layer.effect(WriteBucket, Effect.suspend(() => makeHttpBucketBinding({
15
15
  permissionGroups: ["Workers R2 Storage Write"],
16
- makeClient: makeWriteR2HttpClient,
16
+ makeClient: (token, bucketName, jurisdiction) => makeWriteR2HttpClient({ authorize: authorizeWith(token), accountId: token.accountId }, bucketName, jurisdiction),
17
17
  })));
18
18
  /** Build the write half of the HTTP-backed {@link ReadWrite} client. */
19
- export const makeWriteR2HttpClient = (token, bucketName, jurisdiction) => {
20
- const authorize = authorizeWith(token);
21
- const scope = makeR2HttpScope(token, bucketName, jurisdiction);
19
+ export const makeWriteR2HttpClient = (auth, bucketName, jurisdiction) => {
20
+ const authorize = auth.authorize;
21
+ const scope = makeR2HttpScope(auth.accountId, bucketName, jurisdiction);
22
22
  return {
23
23
  put: ((key, value, options) => scope.pipe(Effect.flatMap(({ accountId, bucketName, cfR2Jurisdiction }) => toBody(value).pipe(Effect.flatMap(({ body, contentLength }) => {
24
24
  const meta = readHttpMetadata(options);
@@ -1 +1 @@
1
- {"version":3,"file":"WriteBucketHttp.js","sourceRoot":"","sources":["../../../src/Cloudflare/R2/WriteBucketHttp.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"WriteBucketHttp.js","sourceRoot":"","sources":["../../../src/Cloudflare/R2/WriteBucketHttp.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ import * as Layer from "effect/Layer";
2
+ import { WriteBucket } from "./WriteBucket.ts";
3
+ /**
4
+ * Local implementation of the {@link WriteBucket} binding — writes R2 objects
5
+ * over the Cloudflare HTTP API using the **current credentials** instead of a
6
+ * native Worker binding (`WriteBucketBinding`) or a scoped API token
7
+ * (`WriteBucketHttp`).
8
+ *
9
+ * Provide it on an {@link Action} (or any deploy-time Effect) to write a bucket
10
+ * with the same `put`/`delete` client you'd use inside a Worker. Multipart
11
+ * uploads are unsupported over the HTTP API (mirrors `WriteBucketHttp`).
12
+ *
13
+ * @example Seeding a bucket from an Action
14
+ * ```typescript
15
+ * const Seed = Alchemy.Action(
16
+ * "Seed",
17
+ * Effect.gen(function* () {
18
+ * const r2 = yield* Cloudflare.R2.WriteBucket(bucket);
19
+ * return Effect.fn(function* () {
20
+ * yield* r2.put("hello.txt", "Hello, World!");
21
+ * });
22
+ * }).pipe(Effect.provide(Cloudflare.R2.WriteBucketLocal)),
23
+ * );
24
+ * ```
25
+ */
26
+ export declare const WriteBucketLocal: Layer.Layer<WriteBucket, never, import("../CloudflareEnvironment.ts").CloudflareEnvironment | import("@distilled.cloud/cloudflare").Credentials | import("effect/unstable/http/HttpClient").HttpClient>;
27
+ //# sourceMappingURL=WriteBucketLocal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WriteBucketLocal.d.ts","sourceRoot":"","sources":["../../../src/Cloudflare/R2/WriteBucketLocal.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAEtC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAG/C;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,eAAO,MAAM,gBAAgB,yMAG5B,CAAC"}
@@ -0,0 +1,30 @@
1
+ import * as Effect from "effect/Effect";
2
+ import * as Layer from "effect/Layer";
3
+ import { makeLocalBucketBinding } from "./BucketLocal.js";
4
+ import { WriteBucket } from "./WriteBucket.js";
5
+ import { makeWriteR2HttpClient } from "./WriteBucketHttp.js";
6
+ /**
7
+ * Local implementation of the {@link WriteBucket} binding — writes R2 objects
8
+ * over the Cloudflare HTTP API using the **current credentials** instead of a
9
+ * native Worker binding (`WriteBucketBinding`) or a scoped API token
10
+ * (`WriteBucketHttp`).
11
+ *
12
+ * Provide it on an {@link Action} (or any deploy-time Effect) to write a bucket
13
+ * with the same `put`/`delete` client you'd use inside a Worker. Multipart
14
+ * uploads are unsupported over the HTTP API (mirrors `WriteBucketHttp`).
15
+ *
16
+ * @example Seeding a bucket from an Action
17
+ * ```typescript
18
+ * const Seed = Alchemy.Action(
19
+ * "Seed",
20
+ * Effect.gen(function* () {
21
+ * const r2 = yield* Cloudflare.R2.WriteBucket(bucket);
22
+ * return Effect.fn(function* () {
23
+ * yield* r2.put("hello.txt", "Hello, World!");
24
+ * });
25
+ * }).pipe(Effect.provide(Cloudflare.R2.WriteBucketLocal)),
26
+ * );
27
+ * ```
28
+ */
29
+ export const WriteBucketLocal = Layer.effect(WriteBucket, Effect.suspend(() => makeLocalBucketBinding(makeWriteR2HttpClient)));
30
+ //# sourceMappingURL=WriteBucketLocal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WriteBucketLocal.js","sourceRoot":"","sources":["../../../src/Cloudflare/R2/WriteBucketLocal.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAE7D;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,CAAC,MAAM,CAC1C,WAAW,EACX,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,sBAAsB,CAAC,qBAAqB,CAAC,CAAC,CACpE,CAAC"}
@@ -5,10 +5,13 @@ export * from "./DataCatalog.ts";
5
5
  export * from "./ReadBucket.ts";
6
6
  export * from "./ReadBucketBinding.ts";
7
7
  export * from "./ReadBucketHttp.ts";
8
+ export * from "./ReadBucketLocal.ts";
8
9
  export * from "./ReadWriteBucket.ts";
9
10
  export * from "./ReadWriteBucketBinding.ts";
10
11
  export * from "./ReadWriteBucketHttp.ts";
12
+ export * from "./ReadWriteBucketLocal.ts";
11
13
  export * from "./WriteBucket.ts";
12
14
  export * from "./WriteBucketBinding.ts";
13
15
  export * from "./WriteBucketHttp.ts";
16
+ export * from "./WriteBucketLocal.ts";
14
17
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Cloudflare/R2/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,8BAA8B,CAAC;AAC7C,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,0BAA0B,CAAC;AACzC,cAAc,kBAAkB,CAAC;AACjC,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Cloudflare/R2/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,8BAA8B,CAAC;AAC7C,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,kBAAkB,CAAC;AACjC,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC"}
@@ -5,10 +5,13 @@ export * from "./DataCatalog.js";
5
5
  export * from "./ReadBucket.js";
6
6
  export * from "./ReadBucketBinding.js";
7
7
  export * from "./ReadBucketHttp.js";
8
+ export * from "./ReadBucketLocal.js";
8
9
  export * from "./ReadWriteBucket.js";
9
10
  export * from "./ReadWriteBucketBinding.js";
10
11
  export * from "./ReadWriteBucketHttp.js";
12
+ export * from "./ReadWriteBucketLocal.js";
11
13
  export * from "./WriteBucket.js";
12
14
  export * from "./WriteBucketBinding.js";
13
15
  export * from "./WriteBucketHttp.js";
16
+ export * from "./WriteBucketLocal.js";
14
17
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/Cloudflare/R2/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,8BAA8B,CAAC;AAC7C,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,0BAA0B,CAAC;AACzC,cAAc,kBAAkB,CAAC;AACjC,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/Cloudflare/R2/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,8BAA8B,CAAC;AAC7C,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,kBAAkB,CAAC;AACjC,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC"}
@@ -59,6 +59,7 @@ declare const _default: Effect.Effect<import("effect/Pipeable").Pipeable & impor
59
59
  assets: string | undefined;
60
60
  bundle: string | undefined;
61
61
  input: string | undefined;
62
+ additionalWorkspaces: string[] | undefined;
62
63
  metadata?: string | undefined;
63
64
  };
64
65
  }, {
@@ -111,6 +112,7 @@ declare const _default: Effect.Effect<import("effect/Pipeable").Pipeable & impor
111
112
  assets: string | undefined;
112
113
  bundle: string | undefined;
113
114
  input: string | undefined;
115
+ additionalWorkspaces: string[] | undefined;
114
116
  metadata?: string | undefined;
115
117
  } | undefined, never>;
116
118
  } & import("../Bridge.ts").Rpc<{
@@ -4,7 +4,7 @@ import * as Binding from "../../Binding.ts";
4
4
  import type { Worker } from "../Workers/Worker.ts";
5
5
  import type { CloudflareEnvironment } from "../CloudflareEnvironment.ts";
6
6
  import type { RuntimeContext } from "../../RuntimeContext.ts";
7
- import { type Token } from "./TunnelBinding.ts";
7
+ import { type TunnelAuth } from "./TunnelBinding.ts";
8
8
  /**
9
9
  * Binding that lets a Worker read Cloudflare Tunnels at runtime.
10
10
  *
@@ -68,6 +68,6 @@ export interface ReadTunnelClient {
68
68
  /** Read the remotely-managed configuration (ingress rules) for a tunnel. */
69
69
  getConfiguration(tunnelId: string): Effect.Effect<GetTunnelCloudflaredConfigurationResponse, GetTunnelCloudflaredConfigurationError, RuntimeContext>;
70
70
  }
71
- /** Build the read-only client over a bound token. */
72
- export declare const readClient: (token: Token) => ReadTunnelClient;
71
+ /** Build the read-only client over an injectable {@link TunnelAuth}. */
72
+ export declare const readClient: (auth: TunnelAuth) => ReadTunnelClient;
73
73
  //# sourceMappingURL=ReadTunnel.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ReadTunnel.d.ts","sourceRoot":"","sources":["../../../src/Cloudflare/Tunnel/ReadTunnel.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,sCAAsC,EACtC,yCAAyC,EACzC,yBAAyB,EACzB,4BAA4B,EAC5B,8BAA8B,EAC9B,iCAAiC,EACjC,2BAA2B,EAC3B,6BAA6B,EAC7B,8BAA8B,EAC/B,MAAM,wCAAwC,CAAC;AAEhD,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,OAAO,MAAM,kBAAkB,CAAC;AAC5C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACzE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAGhD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AACH,MAAM,WAAW,UAAW,SAAQ,OAAO,CAAC,OAAO,CACjD,UAAU,EACV,8BAA8B,EAC9B,MAAM,MAAM,CAAC,MAAM,CAAC,gBAAgB,EAAE,KAAK,EAAE,MAAM,GAAG,qBAAqB,CAAC,CAC7E;CAAG;AAEJ,eAAO,MAAM,UAAU,YAEtB,CAAC;AAEF,4EAA4E;AAC5E,MAAM,MAAM,kBAAkB,GAAG,IAAI,CACnC,6BAA6B,EAC7B,WAAW,CACZ,CAAC;AAEF;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,mCAAmC;IACnC,GAAG,CACD,QAAQ,EAAE,MAAM,GACf,MAAM,CAAC,MAAM,CACd,4BAA4B,EAC5B,yBAAyB,EACzB,cAAc,CACf,CAAC;IACF,mCAAmC;IACnC,IAAI,CACF,OAAO,CAAC,EAAE,kBAAkB,GAC3B,MAAM,CAAC,MAAM,CACd,8BAA8B,EAC9B,2BAA2B,EAC3B,cAAc,CACf,CAAC;IACF,wDAAwD;IACxD,QAAQ,CACN,QAAQ,EAAE,MAAM,GACf,MAAM,CAAC,MAAM,CACd,iCAAiC,EACjC,8BAA8B,EAC9B,cAAc,CACf,CAAC;IACF,4EAA4E;IAC5E,gBAAgB,CACd,QAAQ,EAAE,MAAM,GACf,MAAM,CAAC,MAAM,CACd,yCAAyC,EACzC,sCAAsC,EACtC,cAAc,CACf,CAAC;CACH;AAED,qDAAqD;AACrD,eAAO,MAAM,UAAU,UAAW,KAAK,KAAG,gBA8BzC,CAAC"}
1
+ {"version":3,"file":"ReadTunnel.d.ts","sourceRoot":"","sources":["../../../src/Cloudflare/Tunnel/ReadTunnel.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,sCAAsC,EACtC,yCAAyC,EACzC,yBAAyB,EACzB,4BAA4B,EAC5B,8BAA8B,EAC9B,iCAAiC,EACjC,2BAA2B,EAC3B,6BAA6B,EAC7B,8BAA8B,EAC/B,MAAM,wCAAwC,CAAC;AAEhD,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,OAAO,MAAM,kBAAkB,CAAC;AAC5C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACzE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAErD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AACH,MAAM,WAAW,UAAW,SAAQ,OAAO,CAAC,OAAO,CACjD,UAAU,EACV,8BAA8B,EAC9B,MAAM,MAAM,CAAC,MAAM,CAAC,gBAAgB,EAAE,KAAK,EAAE,MAAM,GAAG,qBAAqB,CAAC,CAC7E;CAAG;AAEJ,eAAO,MAAM,UAAU,YAEtB,CAAC;AAEF,4EAA4E;AAC5E,MAAM,MAAM,kBAAkB,GAAG,IAAI,CACnC,6BAA6B,EAC7B,WAAW,CACZ,CAAC;AAEF;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,mCAAmC;IACnC,GAAG,CACD,QAAQ,EAAE,MAAM,GACf,MAAM,CAAC,MAAM,CACd,4BAA4B,EAC5B,yBAAyB,EACzB,cAAc,CACf,CAAC;IACF,mCAAmC;IACnC,IAAI,CACF,OAAO,CAAC,EAAE,kBAAkB,GAC3B,MAAM,CAAC,MAAM,CACd,8BAA8B,EAC9B,2BAA2B,EAC3B,cAAc,CACf,CAAC;IACF,wDAAwD;IACxD,QAAQ,CACN,QAAQ,EAAE,MAAM,GACf,MAAM,CAAC,MAAM,CACd,iCAAiC,EACjC,8BAA8B,EAC9B,cAAc,CACf,CAAC;IACF,4EAA4E;IAC5E,gBAAgB,CACd,QAAQ,EAAE,MAAM,GACf,MAAM,CAAC,MAAM,CACd,yCAAyC,EACzC,sCAAsC,EACtC,cAAc,CACf,CAAC;CACH;AAED,wEAAwE;AACxE,eAAO,MAAM,UAAU,SAAU,UAAU,KAAG,gBA8B7C,CAAC"}
@@ -2,26 +2,25 @@ import * as zeroTrust from "@distilled.cloud/cloudflare/zero-trust";
2
2
  import * as Effect from "effect/Effect";
3
3
  import * as Binding from "../../Binding.js";
4
4
  import {} from "./TunnelBinding.js";
5
- import { authorizeWith } from "../HttpClientUtils.js";
6
5
  export const ReadTunnel = Binding.Service("Cloudflare.Tunnel.ReadTunnel");
7
- /** Build the read-only client over a bound token. */
8
- export const readClient = (token) => {
9
- const authorize = authorizeWith(token);
6
+ /** Build the read-only client over an injectable {@link TunnelAuth}. */
7
+ export const readClient = (auth) => {
8
+ const { authorize } = auth;
10
9
  return {
11
10
  get: Effect.fn("Cloudflare.Tunnel.get")(function* (tunnelId) {
12
- const accountId = yield* token.accountId;
11
+ const accountId = yield* auth.accountId;
13
12
  return yield* authorize(zeroTrust.getTunnelCloudflared({ accountId, tunnelId }));
14
13
  }),
15
14
  list: Effect.fn("Cloudflare.Tunnel.list")(function* (request) {
16
- const accountId = yield* token.accountId;
15
+ const accountId = yield* auth.accountId;
17
16
  return yield* authorize(zeroTrust.listTunnelCloudflareds({ accountId, ...request }));
18
17
  }),
19
18
  getToken: Effect.fn("Cloudflare.Tunnel.getToken")(function* (tunnelId) {
20
- const accountId = yield* token.accountId;
19
+ const accountId = yield* auth.accountId;
21
20
  return yield* authorize(zeroTrust.getTunnelCloudflaredToken({ accountId, tunnelId }));
22
21
  }),
23
22
  getConfiguration: Effect.fn("Cloudflare.Tunnel.getConfiguration")(function* (tunnelId) {
24
- const accountId = yield* token.accountId;
23
+ const accountId = yield* auth.accountId;
25
24
  return yield* authorize(zeroTrust.getTunnelCloudflaredConfiguration({ accountId, tunnelId }));
26
25
  }),
27
26
  };
@@ -1 +1 @@
1
- {"version":3,"file":"ReadTunnel.js","sourceRoot":"","sources":["../../../src/Cloudflare/Tunnel/ReadTunnel.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,SAAS,MAAM,wCAAwC,CAAC;AACpE,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,OAAO,MAAM,kBAAkB,CAAC;AAI5C,OAAO,EAAc,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAoDtD,MAAM,CAAC,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CACvC,8BAA8B,CAC/B,CAAC;AA+CF,qDAAqD;AACrD,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,KAAY,EAAoB,EAAE;IAC3D,MAAM,SAAS,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;IACvC,OAAO;QACL,GAAG,EAAE,MAAM,CAAC,EAAE,CAAC,uBAAuB,CAAC,CAAC,QAAQ,CAAC,EAAE,QAAQ;YACzD,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC;YACzC,OAAO,KAAK,CAAC,CAAC,SAAS,CACrB,SAAS,CAAC,oBAAoB,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,CACxD,CAAC;QACJ,CAAC,CAAC;QACF,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC,wBAAwB,CAAC,CAAC,QAAQ,CAAC,EAAE,OAAO;YAC1D,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC;YACzC,OAAO,KAAK,CAAC,CAAC,SAAS,CACrB,SAAS,CAAC,sBAAsB,CAAC,EAAE,SAAS,EAAE,GAAG,OAAO,EAAE,CAAC,CAC5D,CAAC;QACJ,CAAC,CAAC;QACF,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC,4BAA4B,CAAC,CAAC,QAAQ,CAAC,EAAE,QAAQ;YACnE,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC;YACzC,OAAO,KAAK,CAAC,CAAC,SAAS,CACrB,SAAS,CAAC,yBAAyB,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,CAC7D,CAAC;QACJ,CAAC,CAAC;QACF,gBAAgB,EAAE,MAAM,CAAC,EAAE,CAAC,oCAAoC,CAAC,CAC/D,QAAQ,CAAC,EAAE,QAAQ;YACjB,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC;YACzC,OAAO,KAAK,CAAC,CAAC,SAAS,CACrB,SAAS,CAAC,iCAAiC,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,CACrE,CAAC;QACJ,CAAC,CACF;KACF,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"ReadTunnel.js","sourceRoot":"","sources":["../../../src/Cloudflare/Tunnel/ReadTunnel.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,SAAS,MAAM,wCAAwC,CAAC;AACpE,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,OAAO,MAAM,kBAAkB,CAAC;AAI5C,OAAO,EAAmB,MAAM,oBAAoB,CAAC;AAoDrD,MAAM,CAAC,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CACvC,8BAA8B,CAC/B,CAAC;AA+CF,wEAAwE;AACxE,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,IAAgB,EAAoB,EAAE;IAC/D,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC;IAC3B,OAAO;QACL,GAAG,EAAE,MAAM,CAAC,EAAE,CAAC,uBAAuB,CAAC,CAAC,QAAQ,CAAC,EAAE,QAAQ;YACzD,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;YACxC,OAAO,KAAK,CAAC,CAAC,SAAS,CACrB,SAAS,CAAC,oBAAoB,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,CACxD,CAAC;QACJ,CAAC,CAAC;QACF,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC,wBAAwB,CAAC,CAAC,QAAQ,CAAC,EAAE,OAAO;YAC1D,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;YACxC,OAAO,KAAK,CAAC,CAAC,SAAS,CACrB,SAAS,CAAC,sBAAsB,CAAC,EAAE,SAAS,EAAE,GAAG,OAAO,EAAE,CAAC,CAC5D,CAAC;QACJ,CAAC,CAAC;QACF,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC,4BAA4B,CAAC,CAAC,QAAQ,CAAC,EAAE,QAAQ;YACnE,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;YACxC,OAAO,KAAK,CAAC,CAAC,SAAS,CACrB,SAAS,CAAC,yBAAyB,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,CAC7D,CAAC;QACJ,CAAC,CAAC;QACF,gBAAgB,EAAE,MAAM,CAAC,EAAE,CAAC,oCAAoC,CAAC,CAC/D,QAAQ,CAAC,EAAE,QAAQ;YACjB,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;YACxC,OAAO,KAAK,CAAC,CAAC,SAAS,CACrB,SAAS,CAAC,iCAAiC,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,CACrE,CAAC;QACJ,CAAC,CACF;KACF,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,29 @@
1
+ import * as Layer from "effect/Layer";
2
+ import { ReadTunnel } from "./ReadTunnel.ts";
3
+ /**
4
+ * Local implementation of the {@link ReadTunnel} binding — reads Cloudflare
5
+ * Tunnels over the cfd_tunnel HTTP API using the **current credentials**
6
+ * instead of a native Worker binding (`ReadTunnelBinding`) or a scoped API
7
+ * token. No `host.bind`, no minted token, no Worker host.
8
+ *
9
+ * Provide it on an {@link Action} (or any deploy-time Effect) so you can read
10
+ * tunnels with the same `get`/`list`/`getToken`/`getConfiguration` client you'd
11
+ * use inside a Worker.
12
+ *
13
+ * @example Read a tunnel's connector token from an Action
14
+ * ```typescript
15
+ * const Inspect = Alchemy.Action(
16
+ * "Inspect",
17
+ * Effect.gen(function* () {
18
+ * const tunnels = yield* Cloudflare.Tunnel.ReadTunnel();
19
+ * const tunnelId = yield* tunnel.tunnelId;
20
+ * return Effect.fn(function* () {
21
+ * const t = yield* tunnels.get(yield* tunnelId);
22
+ * return t.result?.name;
23
+ * });
24
+ * }).pipe(Effect.provide(Cloudflare.Tunnel.ReadTunnelLocal)),
25
+ * );
26
+ * ```
27
+ */
28
+ export declare const ReadTunnelLocal: Layer.Layer<ReadTunnel, never, import("../CloudflareEnvironment.ts").CloudflareEnvironment | import("@distilled.cloud/cloudflare").Credentials | import("effect/unstable/http/HttpClient").HttpClient>;
29
+ //# sourceMappingURL=ReadTunnelLocal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReadTunnelLocal.d.ts","sourceRoot":"","sources":["../../../src/Cloudflare/Tunnel/ReadTunnelLocal.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,EAAc,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAGzD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,eAAO,MAAM,eAAe,wMAG3B,CAAC"}
@@ -0,0 +1,30 @@
1
+ import * as Layer from "effect/Layer";
2
+ import { readClient, ReadTunnel } from "./ReadTunnel.js";
3
+ import { makeLocalTunnelClient } from "./TunnelLocalBinding.js";
4
+ /**
5
+ * Local implementation of the {@link ReadTunnel} binding — reads Cloudflare
6
+ * Tunnels over the cfd_tunnel HTTP API using the **current credentials**
7
+ * instead of a native Worker binding (`ReadTunnelBinding`) or a scoped API
8
+ * token. No `host.bind`, no minted token, no Worker host.
9
+ *
10
+ * Provide it on an {@link Action} (or any deploy-time Effect) so you can read
11
+ * tunnels with the same `get`/`list`/`getToken`/`getConfiguration` client you'd
12
+ * use inside a Worker.
13
+ *
14
+ * @example Read a tunnel's connector token from an Action
15
+ * ```typescript
16
+ * const Inspect = Alchemy.Action(
17
+ * "Inspect",
18
+ * Effect.gen(function* () {
19
+ * const tunnels = yield* Cloudflare.Tunnel.ReadTunnel();
20
+ * const tunnelId = yield* tunnel.tunnelId;
21
+ * return Effect.fn(function* () {
22
+ * const t = yield* tunnels.get(yield* tunnelId);
23
+ * return t.result?.name;
24
+ * });
25
+ * }).pipe(Effect.provide(Cloudflare.Tunnel.ReadTunnelLocal)),
26
+ * );
27
+ * ```
28
+ */
29
+ export const ReadTunnelLocal = Layer.effect(ReadTunnel, makeLocalTunnelClient(readClient));
30
+ //# sourceMappingURL=ReadTunnelLocal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReadTunnelLocal.js","sourceRoot":"","sources":["../../../src/Cloudflare/Tunnel/ReadTunnelLocal.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEhE;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,CAAC,MAAM,CACzC,UAAU,EACV,qBAAqB,CAAC,UAAU,CAAC,CAClC,CAAC"}
@@ -2,7 +2,7 @@ import * as Effect from "effect/Effect";
2
2
  import * as Binding from "../../Binding.ts";
3
3
  import type { Worker } from "../Workers/Worker.ts";
4
4
  import type { CloudflareEnvironment } from "../CloudflareEnvironment.ts";
5
- import { type Token } from "./TunnelBinding.ts";
5
+ import { type TunnelAuth } from "./TunnelBinding.ts";
6
6
  import { type ReadTunnelClient } from "./ReadTunnel.ts";
7
7
  import { type WriteTunnelClient } from "./WriteTunnel.ts";
8
8
  /**
@@ -55,6 +55,6 @@ export declare const ReadWriteTunnel: ReadWriteTunnel;
55
55
  /** Combined read + write tunnel operations. */
56
56
  export interface ReadWriteTunnelClient extends ReadTunnelClient, WriteTunnelClient {
57
57
  }
58
- /** Build the combined read + write client over a bound token. */
59
- export declare const readWriteClient: (token: Token) => ReadWriteTunnelClient;
58
+ /** Build the combined read + write client over an injectable {@link TunnelAuth}. */
59
+ export declare const readWriteClient: (auth: TunnelAuth) => ReadWriteTunnelClient;
60
60
  //# sourceMappingURL=ReadWriteTunnel.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ReadWriteTunnel.d.ts","sourceRoot":"","sources":["../../../src/Cloudflare/Tunnel/ReadWriteTunnel.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,OAAO,MAAM,kBAAkB,CAAC;AAC5C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACzE,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAc,KAAK,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACpE,OAAO,EAAe,KAAK,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAEvE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AACH,MAAM,WAAW,eAAgB,SAAQ,OAAO,CAAC,OAAO,CACtD,eAAe,EACf,mCAAmC,EACnC,MAAM,MAAM,CAAC,MAAM,CACjB,qBAAqB,EACrB,KAAK,EACL,MAAM,GAAG,qBAAqB,CAC/B,CACF;CAAG;AAEJ,eAAO,MAAM,eAAe,iBAE3B,CAAC;AAEF,+CAA+C;AAC/C,MAAM,WAAW,qBACf,SAAQ,gBAAgB,EAAE,iBAAiB;CAAG;AAEhD,iEAAiE;AACjE,eAAO,MAAM,eAAe,UAAW,KAAK,KAAG,qBAG7C,CAAC"}
1
+ {"version":3,"file":"ReadWriteTunnel.d.ts","sourceRoot":"","sources":["../../../src/Cloudflare/Tunnel/ReadWriteTunnel.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,OAAO,MAAM,kBAAkB,CAAC;AAC5C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACzE,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAc,KAAK,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACpE,OAAO,EAAe,KAAK,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAEvE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AACH,MAAM,WAAW,eAAgB,SAAQ,OAAO,CAAC,OAAO,CACtD,eAAe,EACf,mCAAmC,EACnC,MAAM,MAAM,CAAC,MAAM,CACjB,qBAAqB,EACrB,KAAK,EACL,MAAM,GAAG,qBAAqB,CAC/B,CACF;CAAG;AAEJ,eAAO,MAAM,eAAe,iBAE3B,CAAC;AAEF,+CAA+C;AAC/C,MAAM,WAAW,qBACf,SAAQ,gBAAgB,EAAE,iBAAiB;CAAG;AAEhD,oFAAoF;AACpF,eAAO,MAAM,eAAe,SAAU,UAAU,KAAG,qBAGjD,CAAC"}
@@ -4,9 +4,9 @@ import {} from "./TunnelBinding.js";
4
4
  import { readClient } from "./ReadTunnel.js";
5
5
  import { writeClient } from "./WriteTunnel.js";
6
6
  export const ReadWriteTunnel = Binding.Service("Cloudflare.Tunnel.ReadWriteTunnel");
7
- /** Build the combined read + write client over a bound token. */
8
- export const readWriteClient = (token) => ({
9
- ...readClient(token),
10
- ...writeClient(token),
7
+ /** Build the combined read + write client over an injectable {@link TunnelAuth}. */
8
+ export const readWriteClient = (auth) => ({
9
+ ...readClient(auth),
10
+ ...writeClient(auth),
11
11
  });
12
12
  //# sourceMappingURL=ReadWriteTunnel.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ReadWriteTunnel.js","sourceRoot":"","sources":["../../../src/Cloudflare/Tunnel/ReadWriteTunnel.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,OAAO,MAAM,kBAAkB,CAAC;AAG5C,OAAO,EAAc,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAyB,MAAM,iBAAiB,CAAC;AACpE,OAAO,EAAE,WAAW,EAA0B,MAAM,kBAAkB,CAAC;AAwDvE,MAAM,CAAC,MAAM,eAAe,GAAG,OAAO,CAAC,OAAO,CAC5C,mCAAmC,CACpC,CAAC;AAMF,iEAAiE;AACjE,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,KAAY,EAAyB,EAAE,CAAC,CAAC;IACvE,GAAG,UAAU,CAAC,KAAK,CAAC;IACpB,GAAG,WAAW,CAAC,KAAK,CAAC;CACtB,CAAC,CAAC"}
1
+ {"version":3,"file":"ReadWriteTunnel.js","sourceRoot":"","sources":["../../../src/Cloudflare/Tunnel/ReadWriteTunnel.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,OAAO,MAAM,kBAAkB,CAAC;AAG5C,OAAO,EAAmB,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAyB,MAAM,iBAAiB,CAAC;AACpE,OAAO,EAAE,WAAW,EAA0B,MAAM,kBAAkB,CAAC;AAwDvE,MAAM,CAAC,MAAM,eAAe,GAAG,OAAO,CAAC,OAAO,CAC5C,mCAAmC,CACpC,CAAC;AAMF,oFAAoF;AACpF,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,IAAgB,EAAyB,EAAE,CAAC,CAAC;IAC3E,GAAG,UAAU,CAAC,IAAI,CAAC;IACnB,GAAG,WAAW,CAAC,IAAI,CAAC;CACrB,CAAC,CAAC"}
@@ -0,0 +1,35 @@
1
+ import * as Layer from "effect/Layer";
2
+ import { ReadWriteTunnel } from "./ReadWriteTunnel.ts";
3
+ /**
4
+ * Local implementation of the {@link ReadWriteTunnel} binding — performs the
5
+ * full cfd_tunnel CRUD surface over the HTTP API using the **current
6
+ * credentials** instead of a native Worker binding (`ReadWriteTunnelBinding`)
7
+ * or a scoped API token. No `host.bind`, no minted token, no Worker host.
8
+ *
9
+ * Provide it on an {@link Action} (or any deploy-time Effect) so you can manage
10
+ * tunnels with the same combined read + write client you'd use inside a Worker.
11
+ *
12
+ * @example Configure a deployed tunnel from an Action
13
+ * ```typescript
14
+ * const Configure = Alchemy.Action(
15
+ * "Configure",
16
+ * Effect.gen(function* () {
17
+ * const tunnels = yield* Cloudflare.Tunnel.ReadWriteTunnel();
18
+ * const tunnelId = yield* tunnel.tunnelId;
19
+ * return Effect.fn(function* () {
20
+ * const id = yield* tunnelId;
21
+ * yield* tunnels.putConfiguration(id, {
22
+ * ingress: [
23
+ * { hostname: "app.example.com", service: "http://localhost:3000" },
24
+ * { service: "http_status:404" },
25
+ * ],
26
+ * });
27
+ * const { config } = yield* tunnels.getConfiguration(id);
28
+ * return config;
29
+ * });
30
+ * }).pipe(Effect.provide(Cloudflare.Tunnel.ReadWriteTunnelLocal)),
31
+ * );
32
+ * ```
33
+ */
34
+ export declare const ReadWriteTunnelLocal: Layer.Layer<ReadWriteTunnel, never, import("../CloudflareEnvironment.ts").CloudflareEnvironment | import("@distilled.cloud/cloudflare").Credentials | import("effect/unstable/http/HttpClient").HttpClient>;
35
+ //# sourceMappingURL=ReadWriteTunnelLocal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReadWriteTunnelLocal.d.ts","sourceRoot":"","sources":["../../../src/Cloudflare/Tunnel/ReadWriteTunnelLocal.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,EAAmB,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAGxE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,eAAO,MAAM,oBAAoB,6MAGhC,CAAC"}
@@ -0,0 +1,36 @@
1
+ import * as Layer from "effect/Layer";
2
+ import { readWriteClient, ReadWriteTunnel } from "./ReadWriteTunnel.js";
3
+ import { makeLocalTunnelClient } from "./TunnelLocalBinding.js";
4
+ /**
5
+ * Local implementation of the {@link ReadWriteTunnel} binding — performs the
6
+ * full cfd_tunnel CRUD surface over the HTTP API using the **current
7
+ * credentials** instead of a native Worker binding (`ReadWriteTunnelBinding`)
8
+ * or a scoped API token. No `host.bind`, no minted token, no Worker host.
9
+ *
10
+ * Provide it on an {@link Action} (or any deploy-time Effect) so you can manage
11
+ * tunnels with the same combined read + write client you'd use inside a Worker.
12
+ *
13
+ * @example Configure a deployed tunnel from an Action
14
+ * ```typescript
15
+ * const Configure = Alchemy.Action(
16
+ * "Configure",
17
+ * Effect.gen(function* () {
18
+ * const tunnels = yield* Cloudflare.Tunnel.ReadWriteTunnel();
19
+ * const tunnelId = yield* tunnel.tunnelId;
20
+ * return Effect.fn(function* () {
21
+ * const id = yield* tunnelId;
22
+ * yield* tunnels.putConfiguration(id, {
23
+ * ingress: [
24
+ * { hostname: "app.example.com", service: "http://localhost:3000" },
25
+ * { service: "http_status:404" },
26
+ * ],
27
+ * });
28
+ * const { config } = yield* tunnels.getConfiguration(id);
29
+ * return config;
30
+ * });
31
+ * }).pipe(Effect.provide(Cloudflare.Tunnel.ReadWriteTunnelLocal)),
32
+ * );
33
+ * ```
34
+ */
35
+ export const ReadWriteTunnelLocal = Layer.effect(ReadWriteTunnel, makeLocalTunnelClient(readWriteClient));
36
+ //# sourceMappingURL=ReadWriteTunnelLocal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReadWriteTunnelLocal.js","sourceRoot":"","sources":["../../../src/Cloudflare/Tunnel/ReadWriteTunnelLocal.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACxE,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEhE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,CAAC,MAAM,CAC9C,eAAe,EACf,qBAAqB,CAAC,eAAe,CAAC,CACvC,CAAC"}
@@ -1,8 +1,11 @@
1
1
  import * as Effect from "effect/Effect";
2
2
  import type * as Redacted from "effect/Redacted";
3
+ import type * as HttpClient from "effect/unstable/http/HttpClient";
4
+ import type { RuntimeContext } from "../../RuntimeContext.ts";
3
5
  import { AccountApiToken } from "../ApiToken/AccountApiToken.ts";
4
6
  import type { PermissionGroupRef } from "../ApiToken/Common.ts";
5
7
  import { CloudflareEnvironment } from "../CloudflareEnvironment.ts";
8
+ import type { Credentials } from "../Credentials.ts";
6
9
  import { Worker } from "../Workers/Worker.ts";
7
10
  /**
8
11
  * Shared runtime body for a tunnel binding. Mints a scoped
@@ -12,7 +15,20 @@ import { Worker } from "../Workers/Worker.ts";
12
15
  *
13
16
  * Pass the result to `Layer.effect(<Callable>, ...)`.
14
17
  */
15
- export declare const makeTunnelClient: <C>(sid: string, permissionGroups: PermissionGroupRef[], makeClient: (token: Token) => C) => Effect.Effect<() => Effect.Effect<C, never, Worker<any>>, never, CloudflareEnvironment>;
18
+ export declare const makeTunnelClient: <C>(sid: string, permissionGroups: PermissionGroupRef[], makeClient: (auth: TunnelAuth) => C) => Effect.Effect<() => Effect.Effect<C, never, Worker<any>>, never, CloudflareEnvironment>;
19
+ /**
20
+ * Injectable auth for the tunnel client builders. Both the scoped-token
21
+ * (`*Binding`) and current-credentials (`*Local`) variants supply an
22
+ * `authorize` (which provides `Credentials` + `HttpClient` to a raw SDK op)
23
+ * and an `accountId`, so the client builders are agnostic to how creds are
24
+ * obtained.
25
+ */
26
+ export interface TunnelAuth {
27
+ authorize: <A, E>(eff: Effect.Effect<A, E, Credentials | HttpClient.HttpClient>) => Effect.Effect<A, E, RuntimeContext>;
28
+ accountId: Effect.Effect<string>;
29
+ }
30
+ /** Build a scoped-token {@link TunnelAuth} from a bound {@link Token}. */
31
+ export declare const makeTunnelAuth: (token: Token) => TunnelAuth;
16
32
  /**
17
33
  * Runtime accessors for a tunnel binding's token, obtained by binding the
18
34
  * {@link AccountApiToken}'s outputs in the Worker's Init phase. Each accessor
@@ -1 +1 @@
1
- {"version":3,"file":"TunnelBinding.d.ts","sourceRoot":"","sources":["../../../src/Cloudflare/Tunnel/TunnelBinding.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,KAAK,QAAQ,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAE9C;;;;;;;GAOG;AACH,eAAO,MAAM,gBAAgB,GAAI,CAAC,OAC3B,MAAM,oBACO,kBAAkB,EAAE,cAC1B,CAAC,KAAK,EAAE,KAAK,KAAK,CAAC,4FAyB7B,CAAC;AAEL;;;;GAIG;AACH,MAAM,WAAW,KAAK;IACpB,yEAAyE;IACzE,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;IAChD,6CAA6C;IAC7C,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;CAClC;AAED;;;;GAIG;AACH,eAAO,MAAM,eAAe,UAAW,eAAe;;;gBAKlD,CAAC"}
1
+ {"version":3,"file":"TunnelBinding.d.ts","sourceRoot":"","sources":["../../../src/Cloudflare/Tunnel/TunnelBinding.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,KAAK,QAAQ,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,KAAK,UAAU,MAAM,iCAAiC,CAAC;AACnE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAE9C;;;;;;;GAOG;AACH,eAAO,MAAM,gBAAgB,GAAI,CAAC,OAC3B,MAAM,oBACO,kBAAkB,EAAE,cAC1B,CAAC,IAAI,EAAE,UAAU,KAAK,CAAC,4FAyBjC,CAAC;AAEL;;;;;;GAMG;AACH,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EACd,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,WAAW,GAAG,UAAU,CAAC,UAAU,CAAC,KAC1D,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,cAAc,CAAC,CAAC;IACzC,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;CAClC;AAED,0EAA0E;AAC1E,eAAO,MAAM,cAAc,UAAW,KAAK,KAAG,UAG5C,CAAC;AAEH;;;;GAIG;AACH,MAAM,WAAW,KAAK;IACpB,yEAAyE;IACzE,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;IAChD,6CAA6C;IAC7C,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;CAClC;AAED;;;;GAIG;AACH,eAAO,MAAM,eAAe,UAAW,eAAe;;;gBAKlD,CAAC"}