alchemy 2.0.0-beta.47 → 2.0.0-beta.49

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 (263) hide show
  1. package/bin/exec.js +28 -5
  2. package/bin/exec.js.map +1 -1
  3. package/lib/AWS/Lambda/BucketEventSource.d.ts +1 -1
  4. package/lib/AWS/Lambda/BucketEventSource.d.ts.map +1 -1
  5. package/lib/AWS/Lambda/EventBridgeEventSource.d.ts +1 -1
  6. package/lib/AWS/Lambda/EventBridgeEventSource.d.ts.map +1 -1
  7. package/lib/AWS/Lambda/QueueEventSource.d.ts +1 -1
  8. package/lib/AWS/Lambda/QueueEventSource.d.ts.map +1 -1
  9. package/lib/AWS/Lambda/StreamEventSource.d.ts +1 -1
  10. package/lib/AWS/Lambda/StreamEventSource.d.ts.map +1 -1
  11. package/lib/AWS/Lambda/TableEventSource.d.ts +1 -1
  12. package/lib/AWS/Lambda/TableEventSource.d.ts.map +1 -1
  13. package/lib/AWS/Lambda/TopicEventSource.d.ts +1 -1
  14. package/lib/AWS/Lambda/TopicEventSource.d.ts.map +1 -1
  15. package/lib/AdoptPolicy.js +1 -1
  16. package/lib/AdoptPolicy.js.map +1 -1
  17. package/lib/Binding.d.ts +5 -1
  18. package/lib/Binding.d.ts.map +1 -1
  19. package/lib/Binding.js.map +1 -1
  20. package/lib/Cli/commands/cloudflare.d.ts +4 -1
  21. package/lib/Cli/commands/cloudflare.d.ts.map +1 -1
  22. package/lib/Cli/commands/cloudflare.js +274 -1
  23. package/lib/Cli/commands/cloudflare.js.map +1 -1
  24. package/lib/Cloudflare/AiGateway/AiGateway.d.ts +1 -1
  25. package/lib/Cloudflare/AiGateway/AiGateway.d.ts.map +1 -1
  26. package/lib/Cloudflare/AiGateway/AiGateway.js +2 -1
  27. package/lib/Cloudflare/AiGateway/AiGateway.js.map +1 -1
  28. package/lib/Cloudflare/ApiToken/AccountApiToken.d.ts +40 -2
  29. package/lib/Cloudflare/ApiToken/AccountApiToken.d.ts.map +1 -1
  30. package/lib/Cloudflare/ApiToken/AccountApiToken.js +49 -6
  31. package/lib/Cloudflare/ApiToken/AccountApiToken.js.map +1 -1
  32. package/lib/Cloudflare/ApiToken/Common.d.ts +36 -4
  33. package/lib/Cloudflare/ApiToken/Common.d.ts.map +1 -1
  34. package/lib/Cloudflare/ApiToken/Common.js +8 -0
  35. package/lib/Cloudflare/ApiToken/Common.js.map +1 -1
  36. package/lib/Cloudflare/ApiToken/UserApiToken.d.ts +38 -2
  37. package/lib/Cloudflare/ApiToken/UserApiToken.d.ts.map +1 -1
  38. package/lib/Cloudflare/ApiToken/UserApiToken.js +47 -6
  39. package/lib/Cloudflare/ApiToken/UserApiToken.js.map +1 -1
  40. package/lib/Cloudflare/Browser/Browser.d.ts +121 -0
  41. package/lib/Cloudflare/Browser/Browser.d.ts.map +1 -0
  42. package/lib/Cloudflare/{BrowserRendering/BrowserRendering.js → Browser/Browser.js} +19 -26
  43. package/lib/Cloudflare/Browser/Browser.js.map +1 -0
  44. package/lib/Cloudflare/Browser/BrowserBinding.d.ts +55 -0
  45. package/lib/Cloudflare/Browser/BrowserBinding.d.ts.map +1 -0
  46. package/lib/Cloudflare/{BrowserRendering/BrowserRenderingBinding.js → Browser/BrowserBinding.js} +11 -11
  47. package/lib/Cloudflare/Browser/BrowserBinding.js.map +1 -0
  48. package/lib/Cloudflare/Browser/index.d.ts +3 -0
  49. package/lib/Cloudflare/Browser/index.d.ts.map +1 -0
  50. package/lib/Cloudflare/Browser/index.js +3 -0
  51. package/lib/Cloudflare/Browser/index.js.map +1 -0
  52. package/lib/Cloudflare/Container/ContainerBinding.d.ts +2 -1
  53. package/lib/Cloudflare/Container/ContainerBinding.d.ts.map +1 -1
  54. package/lib/Cloudflare/D1/D1Database.d.ts.map +1 -1
  55. package/lib/Cloudflare/D1/D1Database.js +2 -1
  56. package/lib/Cloudflare/D1/D1Database.js.map +1 -1
  57. package/lib/Cloudflare/Dns/DnsBinding.d.ts +52 -0
  58. package/lib/Cloudflare/Dns/DnsBinding.d.ts.map +1 -0
  59. package/lib/Cloudflare/Dns/DnsBinding.js +59 -0
  60. package/lib/Cloudflare/Dns/DnsBinding.js.map +1 -0
  61. package/lib/Cloudflare/Dns/DnsRead.d.ts +80 -0
  62. package/lib/Cloudflare/Dns/DnsRead.d.ts.map +1 -0
  63. package/lib/Cloudflare/Dns/DnsRead.js +70 -0
  64. package/lib/Cloudflare/Dns/DnsRead.js.map +1 -0
  65. package/lib/Cloudflare/Dns/DnsReadWrite.d.ts +79 -0
  66. package/lib/Cloudflare/Dns/DnsReadWrite.d.ts.map +1 -0
  67. package/lib/Cloudflare/Dns/DnsReadWrite.js +72 -0
  68. package/lib/Cloudflare/Dns/DnsReadWrite.js.map +1 -0
  69. package/lib/Cloudflare/Dns/DnsWrite.d.ts +113 -0
  70. package/lib/Cloudflare/Dns/DnsWrite.d.ts.map +1 -0
  71. package/lib/Cloudflare/Dns/DnsWrite.js +100 -0
  72. package/lib/Cloudflare/Dns/DnsWrite.js.map +1 -0
  73. package/lib/Cloudflare/Dns/index.d.ts +5 -0
  74. package/lib/Cloudflare/Dns/index.d.ts.map +1 -0
  75. package/lib/Cloudflare/Dns/index.js +5 -0
  76. package/lib/Cloudflare/Dns/index.js.map +1 -0
  77. package/lib/Cloudflare/Email/EmailRouting.d.ts +1 -1
  78. package/lib/Cloudflare/Email/EmailRouting.d.ts.map +1 -1
  79. package/lib/Cloudflare/Email/EmailRouting.js +1 -1
  80. package/lib/Cloudflare/Email/EmailRouting.js.map +1 -1
  81. package/lib/Cloudflare/Email/EmailRule.d.ts +1 -1
  82. package/lib/Cloudflare/Email/EmailRule.d.ts.map +1 -1
  83. package/lib/Cloudflare/Email/EmailRule.js +1 -1
  84. package/lib/Cloudflare/Email/EmailRule.js.map +1 -1
  85. package/lib/Cloudflare/Hyperdrive/Hyperdrive.d.ts +1 -1
  86. package/lib/Cloudflare/Images/Images.d.ts +32 -23
  87. package/lib/Cloudflare/Images/Images.d.ts.map +1 -1
  88. package/lib/Cloudflare/Images/Images.js +10 -13
  89. package/lib/Cloudflare/Images/Images.js.map +1 -1
  90. package/lib/Cloudflare/KV/KVNamespace.d.ts +1 -1
  91. package/lib/Cloudflare/Providers.d.ts.map +1 -1
  92. package/lib/Cloudflare/Providers.js +14 -3
  93. package/lib/Cloudflare/Providers.js.map +1 -1
  94. package/lib/Cloudflare/Queue/Queue.d.ts +1 -1
  95. package/lib/Cloudflare/R2/R2Bucket.d.ts +2 -2
  96. package/lib/Cloudflare/R2/R2Bucket.d.ts.map +1 -1
  97. package/lib/Cloudflare/R2/R2Bucket.js +13 -7
  98. package/lib/Cloudflare/R2/R2Bucket.js.map +1 -1
  99. package/lib/Cloudflare/RateLimit/RateLimit.d.ts +132 -0
  100. package/lib/Cloudflare/RateLimit/RateLimit.d.ts.map +1 -0
  101. package/lib/Cloudflare/RateLimit/RateLimit.js +80 -0
  102. package/lib/Cloudflare/RateLimit/RateLimit.js.map +1 -0
  103. package/lib/Cloudflare/RateLimit/RateLimitBinding.d.ts +30 -0
  104. package/lib/Cloudflare/RateLimit/RateLimitBinding.d.ts.map +1 -0
  105. package/lib/Cloudflare/RateLimit/RateLimitBinding.js +50 -0
  106. package/lib/Cloudflare/RateLimit/RateLimitBinding.js.map +1 -0
  107. package/lib/Cloudflare/RateLimit/index.d.ts +3 -0
  108. package/lib/Cloudflare/RateLimit/index.d.ts.map +1 -0
  109. package/lib/Cloudflare/RateLimit/index.js +3 -0
  110. package/lib/Cloudflare/RateLimit/index.js.map +1 -0
  111. package/lib/Cloudflare/SecretsStore/Secret.d.ts +3 -2
  112. package/lib/Cloudflare/SecretsStore/Secret.d.ts.map +1 -1
  113. package/lib/Cloudflare/SecretsStore/Secret.js +7 -4
  114. package/lib/Cloudflare/SecretsStore/Secret.js.map +1 -1
  115. package/lib/Cloudflare/StateStore/Api.d.ts +1 -1
  116. package/lib/Cloudflare/Tunnel/Tunnel.d.ts +27 -0
  117. package/lib/Cloudflare/Tunnel/Tunnel.d.ts.map +1 -1
  118. package/lib/Cloudflare/Tunnel/Tunnel.js +27 -0
  119. package/lib/Cloudflare/Tunnel/Tunnel.js.map +1 -1
  120. package/lib/Cloudflare/Tunnel/TunnelBinding.d.ts +48 -0
  121. package/lib/Cloudflare/Tunnel/TunnelBinding.d.ts.map +1 -0
  122. package/lib/Cloudflare/Tunnel/TunnelBinding.js +56 -0
  123. package/lib/Cloudflare/Tunnel/TunnelBinding.js.map +1 -0
  124. package/lib/Cloudflare/Tunnel/TunnelRead.d.ts +83 -0
  125. package/lib/Cloudflare/Tunnel/TunnelRead.d.ts.map +1 -0
  126. package/lib/Cloudflare/Tunnel/TunnelRead.js +79 -0
  127. package/lib/Cloudflare/Tunnel/TunnelRead.js.map +1 -0
  128. package/lib/Cloudflare/Tunnel/TunnelReadWrite.d.ts +70 -0
  129. package/lib/Cloudflare/Tunnel/TunnelReadWrite.d.ts.map +1 -0
  130. package/lib/Cloudflare/Tunnel/TunnelReadWrite.js +63 -0
  131. package/lib/Cloudflare/Tunnel/TunnelReadWrite.js.map +1 -0
  132. package/lib/Cloudflare/Tunnel/TunnelWrite.d.ts +92 -0
  133. package/lib/Cloudflare/Tunnel/TunnelWrite.d.ts.map +1 -0
  134. package/lib/Cloudflare/Tunnel/TunnelWrite.js +88 -0
  135. package/lib/Cloudflare/Tunnel/TunnelWrite.js.map +1 -0
  136. package/lib/Cloudflare/Tunnel/index.d.ts +4 -0
  137. package/lib/Cloudflare/Tunnel/index.d.ts.map +1 -1
  138. package/lib/Cloudflare/Tunnel/index.js +4 -0
  139. package/lib/Cloudflare/Tunnel/index.js.map +1 -1
  140. package/lib/Cloudflare/Vectorize/VectorizeIndex.d.ts +1 -1
  141. package/lib/Cloudflare/Vectorize/VectorizeIndex.js +1 -0
  142. package/lib/Cloudflare/Vectorize/VectorizeIndex.js.map +1 -1
  143. package/lib/Cloudflare/VpcService/VpcService.d.ts +1 -1
  144. package/lib/Cloudflare/VpcService/VpcService.d.ts.map +1 -1
  145. package/lib/Cloudflare/VpcService/VpcService.js.map +1 -1
  146. package/lib/Cloudflare/Workers/DynamicWorkerLoader.d.ts +119 -11
  147. package/lib/Cloudflare/Workers/DynamicWorkerLoader.d.ts.map +1 -1
  148. package/lib/Cloudflare/Workers/DynamicWorkerLoader.js +88 -9
  149. package/lib/Cloudflare/Workers/DynamicWorkerLoader.js.map +1 -1
  150. package/lib/Cloudflare/Workers/InferEnv.d.ts +1 -1
  151. package/lib/Cloudflare/Workers/InferEnv.d.ts.map +1 -1
  152. package/lib/Cloudflare/Workers/LocalWorkerProvider.js +2 -0
  153. package/lib/Cloudflare/Workers/LocalWorkerProvider.js.map +1 -1
  154. package/lib/Cloudflare/Workers/WorkerAsyncBindings.d.ts.map +1 -1
  155. package/lib/Cloudflare/Workers/WorkerAsyncBindings.js +18 -2
  156. package/lib/Cloudflare/Workers/WorkerAsyncBindings.js.map +1 -1
  157. package/lib/Cloudflare/Workers/WorkerBinding.d.ts +7 -5
  158. package/lib/Cloudflare/Workers/WorkerBinding.d.ts.map +1 -1
  159. package/lib/Cloudflare/Workers/WorkerBinding.js +1 -1
  160. package/lib/Cloudflare/Workers/WorkerBinding.js.map +1 -1
  161. package/lib/Cloudflare/Zaraz/ZarazConfig.d.ts +1 -1
  162. package/lib/Cloudflare/Zaraz/ZarazConfig.d.ts.map +1 -1
  163. package/lib/Cloudflare/Zaraz/ZarazConfig.js +1 -1
  164. package/lib/Cloudflare/Zaraz/ZarazConfig.js.map +1 -1
  165. package/lib/Cloudflare/Zone/Zone.d.ts +170 -0
  166. package/lib/Cloudflare/Zone/Zone.d.ts.map +1 -0
  167. package/lib/Cloudflare/Zone/Zone.js +180 -0
  168. package/lib/Cloudflare/Zone/Zone.js.map +1 -0
  169. package/lib/Cloudflare/Zone/index.d.ts +3 -0
  170. package/lib/Cloudflare/Zone/index.d.ts.map +1 -0
  171. package/lib/Cloudflare/Zone/index.js +3 -0
  172. package/lib/Cloudflare/Zone/index.js.map +1 -0
  173. package/lib/Cloudflare/Zone/lookup.d.ts +33 -0
  174. package/lib/Cloudflare/Zone/lookup.d.ts.map +1 -0
  175. package/lib/Cloudflare/{Zone.js → Zone/lookup.js} +2 -2
  176. package/lib/Cloudflare/Zone/lookup.js.map +1 -0
  177. package/lib/Cloudflare/index.d.ts +4 -1
  178. package/lib/Cloudflare/index.d.ts.map +1 -1
  179. package/lib/Cloudflare/index.js +4 -1
  180. package/lib/Cloudflare/index.js.map +1 -1
  181. package/lib/Output.d.ts +13 -1
  182. package/lib/Output.d.ts.map +1 -1
  183. package/lib/Output.js +43 -11
  184. package/lib/Output.js.map +1 -1
  185. package/lib/Plan.d.ts.map +1 -1
  186. package/lib/Plan.js +8 -0
  187. package/lib/Plan.js.map +1 -1
  188. package/lib/Platform.d.ts +5 -5
  189. package/lib/Platform.d.ts.map +1 -1
  190. package/lib/Platform.js +5 -2
  191. package/lib/Platform.js.map +1 -1
  192. package/lib/RemovalPolicy.js +2 -2
  193. package/lib/RemovalPolicy.js.map +1 -1
  194. package/lib/Resource.d.ts +15 -2
  195. package/lib/Resource.d.ts.map +1 -1
  196. package/lib/Resource.js +3 -2
  197. package/lib/Resource.js.map +1 -1
  198. package/lib/tsconfig.test.tsbuildinfo +1 -1
  199. package/package.json +7 -7
  200. package/src/AdoptPolicy.ts +1 -1
  201. package/src/Binding.ts +5 -1
  202. package/src/Cli/commands/cloudflare.ts +394 -1
  203. package/src/Cloudflare/AiGateway/AiGateway.ts +2 -1
  204. package/src/Cloudflare/ApiToken/AccountApiToken.ts +60 -7
  205. package/src/Cloudflare/ApiToken/Common.ts +45 -6
  206. package/src/Cloudflare/ApiToken/UserApiToken.ts +58 -7
  207. package/src/Cloudflare/Browser/Browser.ts +140 -0
  208. package/src/Cloudflare/Browser/BrowserBinding.ts +128 -0
  209. package/src/Cloudflare/Browser/index.ts +11 -0
  210. package/src/Cloudflare/D1/D1Database.ts +6 -2
  211. package/src/Cloudflare/Dns/DnsBinding.ts +123 -0
  212. package/src/Cloudflare/Dns/DnsRead.ts +129 -0
  213. package/src/Cloudflare/Dns/DnsReadWrite.ts +99 -0
  214. package/src/Cloudflare/Dns/DnsWrite.ts +209 -0
  215. package/src/Cloudflare/Dns/index.ts +4 -0
  216. package/src/Cloudflare/Email/EmailRouting.ts +1 -1
  217. package/src/Cloudflare/Email/EmailRule.ts +6 -6
  218. package/src/Cloudflare/Images/Images.ts +40 -27
  219. package/src/Cloudflare/Providers.ts +22 -3
  220. package/src/Cloudflare/R2/R2Bucket.ts +17 -9
  221. package/src/Cloudflare/RateLimit/RateLimit.ts +160 -0
  222. package/src/Cloudflare/RateLimit/RateLimitBinding.ts +90 -0
  223. package/src/Cloudflare/RateLimit/index.ts +2 -0
  224. package/src/Cloudflare/SecretsStore/Secret.ts +12 -6
  225. package/src/Cloudflare/Tunnel/Tunnel.ts +27 -0
  226. package/src/Cloudflare/Tunnel/TunnelBinding.ts +114 -0
  227. package/src/Cloudflare/Tunnel/TunnelRead.ts +168 -0
  228. package/src/Cloudflare/Tunnel/TunnelReadWrite.ts +88 -0
  229. package/src/Cloudflare/Tunnel/TunnelWrite.ts +194 -0
  230. package/src/Cloudflare/Tunnel/index.ts +4 -0
  231. package/src/Cloudflare/Vectorize/VectorizeIndex.ts +2 -1
  232. package/src/Cloudflare/VpcService/VpcService.ts +4 -2
  233. package/src/Cloudflare/Workers/DynamicWorkerLoader.ts +139 -13
  234. package/src/Cloudflare/Workers/InferEnv.ts +19 -15
  235. package/src/Cloudflare/Workers/LocalWorkerProvider.ts +13 -2
  236. package/src/Cloudflare/Workers/WorkerAsyncBindings.ts +16 -2
  237. package/src/Cloudflare/Workers/WorkerBinding.ts +6 -2
  238. package/src/Cloudflare/Zaraz/ZarazConfig.ts +1 -1
  239. package/src/Cloudflare/Zone/Zone.ts +349 -0
  240. package/src/Cloudflare/Zone/index.ts +2 -0
  241. package/src/Cloudflare/{Zone.ts → Zone/lookup.ts} +16 -3
  242. package/src/Cloudflare/index.ts +4 -1
  243. package/src/Output.ts +67 -11
  244. package/src/Plan.ts +9 -0
  245. package/src/Platform.ts +19 -15
  246. package/src/RemovalPolicy.ts +2 -2
  247. package/src/Resource.ts +19 -2
  248. package/lib/Cloudflare/BrowserRendering/BrowserRendering.d.ts +0 -116
  249. package/lib/Cloudflare/BrowserRendering/BrowserRendering.d.ts.map +0 -1
  250. package/lib/Cloudflare/BrowserRendering/BrowserRendering.js.map +0 -1
  251. package/lib/Cloudflare/BrowserRendering/BrowserRenderingBinding.d.ts +0 -55
  252. package/lib/Cloudflare/BrowserRendering/BrowserRenderingBinding.d.ts.map +0 -1
  253. package/lib/Cloudflare/BrowserRendering/BrowserRenderingBinding.js.map +0 -1
  254. package/lib/Cloudflare/BrowserRendering/index.d.ts +0 -3
  255. package/lib/Cloudflare/BrowserRendering/index.d.ts.map +0 -1
  256. package/lib/Cloudflare/BrowserRendering/index.js +0 -3
  257. package/lib/Cloudflare/BrowserRendering/index.js.map +0 -1
  258. package/lib/Cloudflare/Zone.d.ts +0 -14
  259. package/lib/Cloudflare/Zone.d.ts.map +0 -1
  260. package/lib/Cloudflare/Zone.js.map +0 -1
  261. package/src/Cloudflare/BrowserRendering/BrowserRendering.ts +0 -132
  262. package/src/Cloudflare/BrowserRendering/BrowserRenderingBinding.ts +0 -137
  263. package/src/Cloudflare/BrowserRendering/index.ts +0 -11
package/src/Output.ts CHANGED
@@ -81,6 +81,7 @@ export type Expr<A = any, Req = any> =
81
81
  | AllExpr<Expr<A, Req>[]>
82
82
  | ApplyExpr<any, A, Req>
83
83
  | EffectExpr<any, A, Req>
84
+ | FlatMapExpr<any, A, Req>
84
85
  | LiteralExpr<A>
85
86
  | NamedExpr<A, Req>
86
87
  | PropExpr<A, keyof A, Req>
@@ -238,6 +239,45 @@ export const mapEffect =
238
239
  <Req>(output: Output<A, Req>): ToOutput<B, Req | Req2> =>
239
240
  new EffectExpr(output as Expr<A, Req>, fn) as any;
240
241
 
242
+ export const flatMap: {
243
+ <A, B, Req2>(
244
+ fn: (value: A) => Output<B, Req2>,
245
+ ): <Req>(output: Output<A, Req>) => ToOutput<B, Req | Req2>;
246
+ <A, B, Req, Req2>(
247
+ output: Output<A, Req>,
248
+ fn: (value: A) => Output<B, Req2>,
249
+ ): ToOutput<B, Req | Req2>;
250
+ } = (<A, B, Req, Req2>(
251
+ ...args:
252
+ | [fn: (value: A) => Output<B, Req2>]
253
+ | [output: Output<A, Req>, fn: (value: A) => Output<B, Req2>]
254
+ ) =>
255
+ args.length === 1
256
+ ? <Req>(output: Output<A, Req>): ToOutput<B, Req | Req2> =>
257
+ new FlatMapExpr(output as Expr<A, Req>, args[0]) as any
258
+ : new FlatMapExpr(args[0] as any, args[1])) as any;
259
+
260
+ export const isFlatMapExpr = <In = any, Out = any, Req = any, Req2 = any>(
261
+ node: any,
262
+ ): node is FlatMapExpr<In, Out, Req, Req2> => node?.kind === "FlatMapExpr";
263
+
264
+ export class FlatMapExpr<A, B, Req = never, Req2 = never> extends BaseExpr<
265
+ B,
266
+ Req | Req2
267
+ > {
268
+ readonly kind = "FlatMapExpr";
269
+ constructor(
270
+ public readonly expr: Expr<A, Req>,
271
+ public readonly f: (value: A) => Output<B, Req2>,
272
+ ) {
273
+ super();
274
+ return proxy(this);
275
+ }
276
+ [inspect](): string {
277
+ return `${this.expr[inspect]()}.flatMap(${this.f.toString()})`;
278
+ }
279
+ }
280
+
241
281
  export const isEffectExpr = <In = any, Out = any, Req = any, Req2 = any>(
242
282
  node: any,
243
283
  ): node is EffectExpr<In, Out, Req, Req2> => node?.kind === "EffectExpr";
@@ -461,20 +501,26 @@ function proxy(self: any): any {
461
501
  ? target[inspect]
462
502
  : isResourceExpr(self) && self.stables && prop in self.stables
463
503
  ? self.stables[prop as keyof typeof self.stables]
464
- : prop === "apply"
465
- ? self[prop]
466
- : prop in self
467
- ? typeof self[prop as keyof typeof self] === "function" &&
468
- !("kind" in self)
469
- ? new PropExpr(proxy, prop as never)
470
- : self[prop as keyof typeof self]
471
- : new PropExpr(proxy, prop as never),
504
+ : prop in self
505
+ ? typeof self[prop as keyof typeof self] === "function" &&
506
+ !("kind" in self)
507
+ ? new PropExpr(proxy, prop as never)
508
+ : self[prop as keyof typeof self]
509
+ : new PropExpr(proxy, prop as never),
472
510
  apply: (_, thisArg, args) => {
473
511
  if (isPropExpr(self)) {
474
- if (self.identifier === "apply") {
512
+ // Method-style combinators on an Output proxy. `map`/`apply` and
513
+ // `mapEffect`/`effect` are aliases that mirror the standalone
514
+ // `Output.map` / `Output.mapEffect` / `Output.flatMap` functions.
515
+ if (self.identifier === "map" || self.identifier === "apply") {
475
516
  return new ApplyExpr(self.expr, args[0]);
476
- } else if (self.identifier === "effect") {
517
+ } else if (
518
+ self.identifier === "mapEffect" ||
519
+ self.identifier === "effect"
520
+ ) {
477
521
  return new EffectExpr(self.expr, args[0]);
522
+ } else if (self.identifier === "flatMap") {
523
+ return new FlatMapExpr(self.expr, args[0]);
478
524
  }
479
525
  }
480
526
  return undefined;
@@ -540,6 +586,11 @@ export const evaluate: <A, Req = never>(
540
586
  } else if (isEffectExpr(expr)) {
541
587
  // TODO(sam): the same effect shoudl be memoized so that it's not run multiple times
542
588
  return yield* expr.f(yield* evaluate(expr.expr, upstream));
589
+ } else if (isFlatMapExpr(expr)) {
590
+ // Resolve the source, hand it to `f` to produce a new Output, then
591
+ // recursively evaluate that Output (flattening one level).
592
+ const value = yield* evaluate(expr.expr, upstream);
593
+ return yield* evaluate(expr.f(value), upstream);
543
594
  } else if (isAllExpr(expr)) {
544
595
  return yield* Effect.all(
545
596
  expr.outs.map((out) => evaluate(out, upstream)),
@@ -648,7 +699,12 @@ export const upstream = <E extends Output<any, any>>(expr: E): any => {
648
699
  return upstream(expr.expr);
649
700
  } else if (isAllExpr(expr)) {
650
701
  return Object.assign({}, ...expr.outs.map((out) => upstream(out)));
651
- } else if (isEffectExpr(expr) || isApplyExpr(expr) || isNamedExpr(expr)) {
702
+ } else if (
703
+ isEffectExpr(expr) ||
704
+ isApplyExpr(expr) ||
705
+ isFlatMapExpr(expr) ||
706
+ isNamedExpr(expr)
707
+ ) {
652
708
  return upstream(expr.expr);
653
709
  } else if (Array.isArray(expr)) {
654
710
  return expr.map(upstream).reduce(toObject, {});
package/src/Plan.ts CHANGED
@@ -424,6 +424,15 @@ export const make = <A>(
424
424
  } else if (Output.isEffectExpr(expr)) {
425
425
  const upstream = yield* resolveOutput(expr.expr);
426
426
  return Output.hasOutputs(upstream) ? expr : yield* expr.f(upstream);
427
+ } else if (Output.isFlatMapExpr(expr)) {
428
+ const upstream = yield* resolveOutput(expr.expr);
429
+ // Source still unresolved -> keep the flatMap intact for a later pass.
430
+ // Otherwise run `f` to produce the next Output and resolve into it.
431
+ return Output.hasOutputs(upstream)
432
+ ? expr
433
+ : yield* resolveOutput(
434
+ Output.asOutput(expr.f(upstream)) as Output.Expr<any>,
435
+ );
427
436
  } else if (Output.isAllExpr(expr)) {
428
437
  return yield* Effect.all(expr.outs.map(resolveOutput), {
429
438
  concurrency: "unbounded",
package/src/Platform.ts CHANGED
@@ -5,6 +5,7 @@ import * as Effect from "effect/Effect";
5
5
  import { pipe } from "effect/Function";
6
6
  import * as Layer from "effect/Layer";
7
7
  import * as Option from "effect/Option";
8
+ import * as Redacted from "effect/Redacted";
8
9
  import type { Scope } from "effect/Scope";
9
10
  import type { HttpClient } from "effect/unstable/http/HttpClient";
10
11
  import { SingleShotGen } from "effect/Utils";
@@ -66,11 +67,7 @@ export interface Platform<
66
67
  MainShape,
67
68
  RuntimeContext extends BaseRuntimeContext,
68
69
  BaseShape = {},
69
- > extends Effect.Effect<
70
- Resource & RuntimeContext,
71
- never,
72
- Services | PlatformServices
73
- > {
70
+ > extends Effect.Effect<Resource & RuntimeContext, never, Resource> {
74
71
  Type: Resource["Type"];
75
72
  Provider: Provider<Resource>;
76
73
 
@@ -91,7 +88,7 @@ export interface Platform<
91
88
  Self,
92
89
  never,
93
90
  | Resource["Providers"]
94
- | Exclude<PropsReq | InitReq, Services | PlatformServices>
91
+ | Exclude<PropsReq | InitReq, Services | PlatformServices | Resource>
95
92
  >;
96
93
  new (_: never): MakeShape<Shape, BaseShape>;
97
94
  of(shape: Shape & MainShape): MakeShape<Shape, BaseShape>;
@@ -101,7 +98,7 @@ export interface Platform<
101
98
  <
102
99
  Shape extends MainShape,
103
100
  PropsReq = never,
104
- InitReq extends Services | PlatformServices = never,
101
+ InitReq extends Services | PlatformServices | Resource = never,
105
102
  >(
106
103
  id: string,
107
104
  props:
@@ -113,7 +110,7 @@ export interface Platform<
113
110
  never,
114
111
  | Resource["Providers"]
115
112
  | PropsReq
116
- | Exclude<InitReq, Services | PlatformServices>
113
+ | Exclude<InitReq, Services | PlatformServices | Resource>
117
114
  > & {
118
115
  new (_: never): MakeShape<Shape, BaseShape>;
119
116
  };
@@ -127,23 +124,23 @@ export interface Platform<
127
124
  never,
128
125
  Resource["Providers"] | PropsReq
129
126
  > & {
130
- make<InitReq extends Services | PlatformServices = never>(
127
+ make<InitReq extends Services | PlatformServices | Resource = never>(
131
128
  impl: Effect.Effect<Shape, ConfigError.ConfigError, InitReq>,
132
129
  ): Layer.Layer<
133
130
  Self,
134
131
  never,
135
132
  | Resource["Providers"]
136
- | Exclude<PropsReq | InitReq, Services | PlatformServices>
133
+ | Exclude<PropsReq | InitReq, Services | PlatformServices | Resource>
137
134
  >;
138
135
  new (_: never): MakeShape<Shape, BaseShape>;
139
- } & (<InitReq extends Services | PlatformServices = never>(
136
+ } & (<InitReq extends Services | PlatformServices | Resource = never>(
140
137
  impl: Effect.Effect<Shape, never, InitReq>,
141
138
  ) => Effect.Effect<
142
139
  Resource & Rpc<Self>,
143
140
  never,
144
141
  | Resource["Providers"]
145
142
  | PropsReq
146
- | Exclude<InitReq, Services | PlatformServices>
143
+ | Exclude<InitReq, Services | PlatformServices | Resource>
147
144
  >);
148
145
  };
149
146
  // <PropsReq = never, InitReq extends Services | PlatformServices = never>(
@@ -374,14 +371,21 @@ export const Platform = <
374
371
  const node = yield* configProvider.get(path);
375
372
  if (phase === "plan" && node) {
376
373
  // bind it to the RuntimeContext if running in plan phase
377
- const output = Output.literal(node.value);
374
+ const output = Output.literal(
375
+ Redacted.make(node.value),
376
+ );
378
377
  yield* ctx?.set(key, output) ?? Effect.void;
379
378
  return node;
380
379
  } else if (phase === "runtime" && ctx) {
381
380
  // retrieve from the RuntimeContext if running in runtime phase
382
- const value = yield* ctx.get<string>(key);
381
+ const value =
382
+ yield* ctx.get<Redacted.Redacted<string>>(key);
383
383
  if (value) {
384
- return ConfigProvider.makeValue(value as string);
384
+ return ConfigProvider.makeValue(
385
+ Redacted.isRedacted(value)
386
+ ? Redacted.value(value)
387
+ : value,
388
+ );
385
389
  }
386
390
  }
387
391
  // fallback to the config provider otherwise
@@ -17,7 +17,7 @@ export const retain: {
17
17
  ): <R, Req2 = never>(
18
18
  a: Effect.Effect<R, never, Req2>,
19
19
  ) => Effect.Effect<R, never, Req | Req2>;
20
- } = ((enabled: boolean | Effect.Effect<boolean, never, any>) =>
20
+ } = ((enabled: boolean | Effect.Effect<boolean, never, any> = true) =>
21
21
  (eff: Effect.Effect<any, never, any>) =>
22
22
  eff.pipe(
23
23
  typeof enabled === "boolean"
@@ -39,7 +39,7 @@ export const destroy: {
39
39
  ): <R, Req2 = never>(
40
40
  a: Effect.Effect<R, never, Req2>,
41
41
  ) => Effect.Effect<R, never, Req | Req2>;
42
- } = ((enabled: boolean | Effect.Effect<boolean, never, any>) =>
42
+ } = ((enabled: boolean | Effect.Effect<boolean, never, any> = true) =>
43
43
  (eff: Effect.Effect<any, never, any>) =>
44
44
  eff.pipe(
45
45
  typeof enabled === "boolean"
package/src/Resource.ts CHANGED
@@ -126,7 +126,7 @@ export type Resource<
126
126
  Providers = undefined,
127
127
  > = Pipeable &
128
128
  ResourceLike<Type, Props, Attributes, Binding, Providers> & {
129
- bind(sid: string, binding: Input<Binding>): Effect.Effect<void>;
129
+ bind(sid: Input<string>, binding: Input<Binding>): Effect.Effect<void>;
130
130
  bind(
131
131
  template: TemplateStringsArray,
132
132
  ...args: any[]
@@ -135,6 +135,20 @@ export type Resource<
135
135
  [attr in keyof Attributes]-?: Output.Output<Attributes[attr], never>;
136
136
  };
137
137
 
138
+ export interface ResourceOptions {
139
+ /**
140
+ * Default removal policy for this resource type when the caller has not
141
+ * explicitly provided one via `RemovalPolicy` / `destroy()` / `retain()`.
142
+ *
143
+ * Useful for resources that wrap unrecoverable real-world identifiers
144
+ * (DNS zones, customer accounts, etc.) where the safe default is to
145
+ * leave the cloud object alone on stack destroy.
146
+ *
147
+ * @default "destroy"
148
+ */
149
+ defaultRemovalPolicy?: RemovalPolicy["Service"];
150
+ }
151
+
138
152
  /**
139
153
  * Creates a resource constructor for a concrete resource type.
140
154
  *
@@ -145,7 +159,9 @@ export type Resource<
145
159
  */
146
160
  export function Resource<R extends ResourceLike>(
147
161
  type: R["Type"],
162
+ options?: ResourceOptions,
148
163
  ): ResourceClass<R> {
164
+ const defaultRemovalPolicy = options?.defaultRemovalPolicy ?? "destroy";
149
165
  type Props = Input<R["Props"]>;
150
166
  const self = Self<R>(type);
151
167
  const constructor = (
@@ -228,7 +244,7 @@ export function Resource<R extends ResourceLike>(
228
244
  Props: props,
229
245
  Provider: ProviderTag as Provider<any>,
230
246
  RemovalPolicy: yield* Effect.serviceOption(RemovalPolicy).pipe(
231
- Effect.map(Option.getOrElse(() => "destroy" as const)),
247
+ Effect.map(Option.getOrElse(() => defaultRemovalPolicy)),
232
248
  ),
233
249
  bind,
234
250
  toString(this: typeof target) {
@@ -285,6 +301,7 @@ export function Resource<R extends ResourceLike>(
285
301
  options?: { stage?: string; stack?: string },
286
302
  ): Effect.Effect<R> =>
287
303
  Effect.succeed(Output.of(makeRef<R>(id, options)) as unknown as R),
304
+
288
305
  Type: type,
289
306
  Provider: ProviderTag,
290
307
  Self: self,
@@ -1,116 +0,0 @@
1
- import * as Effect from "effect/Effect";
2
- import { BrowserRenderingBinding } from "./BrowserRenderingBinding.ts";
3
- type BrowserRenderingTypeId = typeof BrowserRenderingTypeId;
4
- declare const BrowserRenderingTypeId: "Cloudflare.BrowserRendering";
5
- export type BrowserRenderingProps = {
6
- /**
7
- * Binding name used when `Cloudflare.BrowserRendering.bind(browser)` attaches
8
- * Browser Rendering from inside a Worker init phase. When Browser Rendering
9
- * is passed through `Worker({ bindings: { ... } })`, the object key remains
10
- * the binding name.
11
- *
12
- * @default "BROWSER"
13
- */
14
- name?: string;
15
- };
16
- /**
17
- * Marker for a Cloudflare Browser Rendering binding.
18
- *
19
- * Browser Rendering bindings are configured directly on Workers and do not
20
- * have a standalone provisioning API. The Worker provider sees this object in
21
- * `bindings: { ... }` and emits the corresponding `{ type: "browser" }`
22
- * metadata binding to the script.
23
- */
24
- export type BrowserRendering = {
25
- kind: BrowserRenderingTypeId;
26
- name: string;
27
- };
28
- export declare const isBrowserRendering: (value: unknown) => value is BrowserRendering;
29
- /**
30
- * A Cloudflare Browser Rendering binding for launching headless browser
31
- * sessions from Workers via `@cloudflare/puppeteer`.
32
- *
33
- * @binding
34
- *
35
- * @section Effect-style Worker (recommended)
36
- * @example Render a page title with managed browser cleanup
37
- * ```typescript
38
- * import puppeteer from "@cloudflare/puppeteer";
39
- * import * as Effect from "effect/Effect";
40
- *
41
- * const Browser = Cloudflare.BrowserRendering({ name: "BROWSER" });
42
- *
43
- * Cloudflare.Worker(
44
- * "BrowserWorker",
45
- * { main: import.meta.filename },
46
- * Effect.gen(function* () {
47
- * const browserRendering = yield* Cloudflare.BrowserRendering.bind(
48
- * yield* Browser,
49
- * );
50
- *
51
- * return {
52
- * fetch: browserRendering.withBrowser(puppeteer, (browser) =>
53
- * Effect.gen(function* () {
54
- * const page = yield* Effect.tryPromise(() => browser.newPage());
55
- * yield* Effect.tryPromise(() => page.goto("https://example.com"));
56
- * const title = yield* Effect.tryPromise(() => page.title());
57
- * return Response.json({ title });
58
- * }),
59
- * ),
60
- * };
61
- * }).pipe(Effect.provide(Cloudflare.BrowserRenderingBindingLive)),
62
- * );
63
- * ```
64
- *
65
- * @section Declaring Browser Rendering
66
- * @example
67
- * ```typescript
68
- * const Browser = yield* Cloudflare.BrowserRendering({ name: "BROWSER" });
69
- * ```
70
- *
71
- * @section Worker binding metadata
72
- * @example
73
- * ```typescript
74
- * export const Worker = Cloudflare.Worker("Worker", {
75
- * main: "./src/worker.ts",
76
- * bindings: {
77
- * BROWSER: Cloudflare.BrowserRendering(),
78
- * },
79
- * });
80
- *
81
- * export type WorkerEnv = Cloudflare.InferEnv<typeof Worker>;
82
- * // { BROWSER: Fetcher }
83
- * ```
84
- *
85
- * @example Async-style worker with the raw runtime binding
86
- * ```typescript
87
- * import puppeteer from "@cloudflare/puppeteer";
88
- * import type { WorkerEnv } from "../alchemy.run.ts";
89
- *
90
- * export default {
91
- * async fetch(request: Request, env: WorkerEnv) {
92
- * const browser = await puppeteer.launch(env.BROWSER);
93
- * const page = await browser.newPage();
94
- * await page.goto("https://example.com");
95
- * const screenshot = await page.screenshot();
96
- * await browser.close();
97
- *
98
- * return new Response(screenshot, {
99
- * headers: { "content-type": "image/png" },
100
- * });
101
- * },
102
- * };
103
- * ```
104
- *
105
- * @see https://developers.cloudflare.com/browser-rendering/workers-binding-api/
106
- */
107
- export declare const BrowserRendering: {
108
- (props?: BrowserRenderingProps): Effect.Effect<BrowserRendering>;
109
- /**
110
- * Bind Browser Rendering to the surrounding Worker, returning a small client
111
- * with access to the native Workers runtime binding.
112
- */
113
- bind: typeof BrowserRenderingBinding.bind;
114
- };
115
- export {};
116
- //# sourceMappingURL=BrowserRendering.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"BrowserRendering.d.ts","sourceRoot":"","sources":["../../../src/Cloudflare/BrowserRendering/BrowserRendering.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAEvE,KAAK,sBAAsB,GAAG,OAAO,sBAAsB,CAAC;AAC5D,QAAA,MAAM,sBAAsB,EAAG,6BAAsC,CAAC;AAEtE,MAAM,MAAM,qBAAqB,GAAG;IAClC;;;;;;;OAOG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE,sBAAsB,CAAC;IAC7B,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,gBAEC,CAAC;AAE/D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6EG;AACH,eAAO,MAAM,gBAAgB,EAAE;IAC7B,CAAC,KAAK,CAAC,EAAE,qBAAqB,GAAG,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;IACjE;;;OAGG;IACH,IAAI,EAAE,OAAO,uBAAuB,CAAC,IAAI,CAAC;CAY3C,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"BrowserRendering.js","sourceRoot":"","sources":["../../../src/Cloudflare/BrowserRendering/BrowserRendering.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAGvE,MAAM,sBAAsB,GAAG,6BAAsC,CAAC;AA2BtE,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,KAAc,EAA6B,EAAE,CAC9E,OAAO,KAAK,KAAK,QAAQ;IACxB,KAA0B,EAAE,IAAI,KAAK,sBAAsB,CAAC;AAE/D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6EG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAOzB,MAAM,CAAC,MAAM,CACf,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,KAA6B;IAChD,OAAO;QACL,IAAI,EAAE,sBAAsB;QAC5B,IAAI,EAAE,KAAK,EAAE,IAAI,IAAI,SAAS;KACJ,CAAC;AAC/B,CAAC,CAAC,EACF;IACE,IAAI,EAAE,CAAC,GAAG,IAAqD,EAAE,EAAE,CACjE,uBAAuB,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CACxC,CACF,CAAC"}
@@ -1,55 +0,0 @@
1
- import type * as cf from "@cloudflare/workers-types";
2
- import * as Effect from "effect/Effect";
3
- import * as Layer from "effect/Layer";
4
- import * as Binding from "../../Binding.ts";
5
- import { WorkerEnvironment } from "../Workers/Worker.ts";
6
- import type { BrowserRendering as BrowserRenderingLike } from "./BrowserRendering.ts";
7
- declare const BrowserRenderingError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
8
- readonly _tag: "BrowserRenderingError";
9
- } & Readonly<A>;
10
- export declare class BrowserRenderingError extends BrowserRenderingError_base<{
11
- message: string;
12
- cause: unknown;
13
- }> {
14
- }
15
- export interface BrowserRenderingBrowser {
16
- close(): Promise<void>;
17
- }
18
- export interface BrowserRenderingPuppeteer<Browser extends BrowserRenderingBrowser> {
19
- launch(binding: cf.Fetcher): Promise<Browser>;
20
- }
21
- /**
22
- * Effect-native client for a Cloudflare Browser Rendering binding.
23
- *
24
- * Browser Rendering's Workers binding is consumed by `@cloudflare/puppeteer`.
25
- * Alchemy keeps Puppeteer as a caller-provided dependency while wrapping
26
- * launch and cleanup in Effects.
27
- */
28
- export interface BrowserRenderingClient {
29
- /**
30
- * Effect resolving to the raw Cloudflare Browser Rendering runtime binding.
31
- */
32
- raw: Effect.Effect<cf.Fetcher, never, WorkerEnvironment>;
33
- /**
34
- * Launch a Browser Rendering session through `@cloudflare/puppeteer`.
35
- */
36
- launch<Browser extends BrowserRenderingBrowser>(puppeteer: BrowserRenderingPuppeteer<Browser>): Effect.Effect<Browser, BrowserRenderingError, WorkerEnvironment>;
37
- /**
38
- * Launch a browser, run an Effect with it, and close it afterward.
39
- */
40
- withBrowser<Browser extends BrowserRenderingBrowser, A, E, R>(puppeteer: BrowserRenderingPuppeteer<Browser>, use: (browser: Browser) => Effect.Effect<A, E, R>): Effect.Effect<A, BrowserRenderingError | E, WorkerEnvironment | R>;
41
- }
42
- declare const BrowserRenderingBinding_base: Binding.Service<BrowserRenderingBinding, "Cloudflare.BrowserRendering.Binding", (browser: BrowserRenderingLike) => Effect.Effect<BrowserRenderingClient>> & {
43
- bind: (browser: BrowserRenderingLike) => Effect.Effect<any, any, any>;
44
- };
45
- export declare class BrowserRenderingBinding extends BrowserRenderingBinding_base {
46
- }
47
- export declare const BrowserRenderingBindingLive: Layer.Layer<BrowserRenderingBinding, never, BrowserRenderingBindingPolicy>;
48
- declare const BrowserRenderingBindingPolicy_base: Binding.Policy<BrowserRenderingBindingPolicy, "Policy<Cloudflare.BrowserRendering.Binding>", (browser: BrowserRenderingLike) => Effect.Effect<void>>;
49
- export declare class BrowserRenderingBindingPolicy extends BrowserRenderingBindingPolicy_base {
50
- }
51
- export declare const BrowserRenderingBindingPolicyLive: Layer.Layer<BrowserRenderingBindingPolicy, never, never>;
52
- /** @internal */
53
- export declare const makeBrowserRenderingClient: (raw: Effect.Effect<cf.Fetcher, never, WorkerEnvironment>) => BrowserRenderingClient;
54
- export {};
55
- //# sourceMappingURL=BrowserRenderingBinding.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"BrowserRenderingBinding.d.ts","sourceRoot":"","sources":["../../../src/Cloudflare/BrowserRendering/BrowserRenderingBinding.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,EAAE,MAAM,2BAA2B,CAAC;AAErD,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,OAAO,MAAM,kBAAkB,CAAC;AAE5C,OAAO,EAAY,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,KAAK,EAAE,gBAAgB,IAAI,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;;;;AAEtF,qBAAa,qBAAsB,SAAQ,2BAEzC;IACA,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,OAAO,CAAC;CAChB,CAAC;CAAG;AAEL,MAAM,WAAW,uBAAuB;IACtC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAED,MAAM,WAAW,yBAAyB,CACxC,OAAO,SAAS,uBAAuB;IAEvC,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAC/C;AAED;;;;;;GAMG;AACH,MAAM,WAAW,sBAAsB;IACrC;;OAEG;IACH,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,iBAAiB,CAAC,CAAC;IACzD;;OAEG;IACH,MAAM,CAAC,OAAO,SAAS,uBAAuB,EAC5C,SAAS,EAAE,yBAAyB,CAAC,OAAO,CAAC,GAC5C,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,qBAAqB,EAAE,iBAAiB,CAAC,CAAC;IACpE;;OAEG;IACH,WAAW,CAAC,OAAO,SAAS,uBAAuB,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAC1D,SAAS,EAAE,yBAAyB,CAAC,OAAO,CAAC,EAC7C,GAAG,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAChD,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,qBAAqB,GAAG,CAAC,EAAE,iBAAiB,GAAG,CAAC,CAAC,CAAC;CACvE;sIAIW,oBAAoB,KAAK,MAAM,CAAC,MAAM,CAAC,sBAAsB,CAAC;;;AAF1E,qBAAa,uBAAwB,SAAQ,4BAGH;CAAG;AAE7C,eAAO,MAAM,2BAA2B,4EAevC,CAAC;yJAIU,oBAAoB,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;AAFxD,qBAAa,6BAA8B,SAAQ,kCAGT;CAAG;AAE7C,eAAO,MAAM,iCAAiC,0DAoB3C,CAAC;AAiBJ,gBAAgB;AAChB,eAAO,MAAM,0BAA0B,GACrC,KAAK,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,iBAAiB,CAAC,KACvD,sBAgBF,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"BrowserRenderingBinding.js","sourceRoot":"","sources":["../../../src/Cloudflare/BrowserRendering/BrowserRenderingBinding.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- export * from "./BrowserRendering.ts";
2
- export { BrowserRenderingBinding, BrowserRenderingBindingLive, BrowserRenderingBindingPolicy, BrowserRenderingBindingPolicyLive, BrowserRenderingError, type BrowserRenderingBrowser, type BrowserRenderingClient, type BrowserRenderingPuppeteer, } from "./BrowserRenderingBinding.ts";
3
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Cloudflare/BrowserRendering/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,OAAO,EACL,uBAAuB,EACvB,2BAA2B,EAC3B,6BAA6B,EAC7B,iCAAiC,EACjC,qBAAqB,EACrB,KAAK,uBAAuB,EAC5B,KAAK,sBAAsB,EAC3B,KAAK,yBAAyB,GAC/B,MAAM,8BAA8B,CAAC"}
@@ -1,3 +0,0 @@
1
- export * from "./BrowserRendering.js";
2
- export { BrowserRenderingBinding, BrowserRenderingBindingLive, BrowserRenderingBindingPolicy, BrowserRenderingBindingPolicyLive, BrowserRenderingError, } from "./BrowserRenderingBinding.js";
3
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/Cloudflare/BrowserRendering/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,OAAO,EACL,uBAAuB,EACvB,2BAA2B,EAC3B,6BAA6B,EAC7B,iCAAiC,EACjC,qBAAqB,GAItB,MAAM,8BAA8B,CAAC"}
@@ -1,14 +0,0 @@
1
- import { Credentials } from "@distilled.cloud/cloudflare/Credentials";
2
- import * as Effect from "effect/Effect";
3
- export type ZoneReference = string | {
4
- zoneId: string;
5
- name?: string;
6
- };
7
- export declare const isZoneId: (zone: string) => boolean;
8
- export declare const matchesZoneHostname: (zoneName: string, hostname: string) => boolean;
9
- export declare const resolveZoneId: ({ accountId, zone, hostname, }: {
10
- accountId: string;
11
- zone: ZoneReference | undefined;
12
- hostname: string;
13
- }) => Effect.Effect<string, Error, Credentials>;
14
- //# sourceMappingURL=Zone.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Zone.d.ts","sourceRoot":"","sources":["../../src/Cloudflare/Zone.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EAEZ,MAAM,yCAAyC,CAAC;AACjD,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAEvE,eAAO,MAAM,QAAQ,GAAI,MAAM,MAAM,KAAG,OAAuC,CAAC;AAEhF,eAAO,MAAM,mBAAmB,GAC9B,UAAU,MAAM,EAChB,UAAU,MAAM,KACf,OAAqE,CAAC;AAEzE,eAAO,MAAM,aAAa,GAAI,gCAI3B;IACD,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,aAAa,GAAG,SAAS,CAAC;IAChC,QAAQ,EAAE,MAAM,CAAC;CAClB,8CAaG,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Zone.js","sourceRoot":"","sources":["../../src/Cloudflare/Zone.ts"],"names":[],"mappings":"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"}