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.
- package/bin/exec.js +28 -5
- package/bin/exec.js.map +1 -1
- package/lib/AWS/Lambda/BucketEventSource.d.ts +1 -1
- package/lib/AWS/Lambda/BucketEventSource.d.ts.map +1 -1
- package/lib/AWS/Lambda/EventBridgeEventSource.d.ts +1 -1
- package/lib/AWS/Lambda/EventBridgeEventSource.d.ts.map +1 -1
- package/lib/AWS/Lambda/QueueEventSource.d.ts +1 -1
- package/lib/AWS/Lambda/QueueEventSource.d.ts.map +1 -1
- package/lib/AWS/Lambda/StreamEventSource.d.ts +1 -1
- package/lib/AWS/Lambda/StreamEventSource.d.ts.map +1 -1
- package/lib/AWS/Lambda/TableEventSource.d.ts +1 -1
- package/lib/AWS/Lambda/TableEventSource.d.ts.map +1 -1
- package/lib/AWS/Lambda/TopicEventSource.d.ts +1 -1
- package/lib/AWS/Lambda/TopicEventSource.d.ts.map +1 -1
- package/lib/AdoptPolicy.js +1 -1
- package/lib/AdoptPolicy.js.map +1 -1
- package/lib/Binding.d.ts +5 -1
- package/lib/Binding.d.ts.map +1 -1
- package/lib/Binding.js.map +1 -1
- package/lib/Cli/commands/cloudflare.d.ts +4 -1
- package/lib/Cli/commands/cloudflare.d.ts.map +1 -1
- package/lib/Cli/commands/cloudflare.js +274 -1
- package/lib/Cli/commands/cloudflare.js.map +1 -1
- package/lib/Cloudflare/AiGateway/AiGateway.d.ts +1 -1
- package/lib/Cloudflare/AiGateway/AiGateway.d.ts.map +1 -1
- package/lib/Cloudflare/AiGateway/AiGateway.js +2 -1
- package/lib/Cloudflare/AiGateway/AiGateway.js.map +1 -1
- package/lib/Cloudflare/ApiToken/AccountApiToken.d.ts +40 -2
- package/lib/Cloudflare/ApiToken/AccountApiToken.d.ts.map +1 -1
- package/lib/Cloudflare/ApiToken/AccountApiToken.js +49 -6
- package/lib/Cloudflare/ApiToken/AccountApiToken.js.map +1 -1
- package/lib/Cloudflare/ApiToken/Common.d.ts +36 -4
- package/lib/Cloudflare/ApiToken/Common.d.ts.map +1 -1
- package/lib/Cloudflare/ApiToken/Common.js +8 -0
- package/lib/Cloudflare/ApiToken/Common.js.map +1 -1
- package/lib/Cloudflare/ApiToken/UserApiToken.d.ts +38 -2
- package/lib/Cloudflare/ApiToken/UserApiToken.d.ts.map +1 -1
- package/lib/Cloudflare/ApiToken/UserApiToken.js +47 -6
- package/lib/Cloudflare/ApiToken/UserApiToken.js.map +1 -1
- package/lib/Cloudflare/Browser/Browser.d.ts +121 -0
- package/lib/Cloudflare/Browser/Browser.d.ts.map +1 -0
- package/lib/Cloudflare/{BrowserRendering/BrowserRendering.js → Browser/Browser.js} +19 -26
- package/lib/Cloudflare/Browser/Browser.js.map +1 -0
- package/lib/Cloudflare/Browser/BrowserBinding.d.ts +55 -0
- package/lib/Cloudflare/Browser/BrowserBinding.d.ts.map +1 -0
- package/lib/Cloudflare/{BrowserRendering/BrowserRenderingBinding.js → Browser/BrowserBinding.js} +11 -11
- package/lib/Cloudflare/Browser/BrowserBinding.js.map +1 -0
- package/lib/Cloudflare/Browser/index.d.ts +3 -0
- package/lib/Cloudflare/Browser/index.d.ts.map +1 -0
- package/lib/Cloudflare/Browser/index.js +3 -0
- package/lib/Cloudflare/Browser/index.js.map +1 -0
- package/lib/Cloudflare/Container/ContainerBinding.d.ts +2 -1
- package/lib/Cloudflare/Container/ContainerBinding.d.ts.map +1 -1
- package/lib/Cloudflare/D1/D1Database.d.ts.map +1 -1
- package/lib/Cloudflare/D1/D1Database.js +2 -1
- package/lib/Cloudflare/D1/D1Database.js.map +1 -1
- package/lib/Cloudflare/Dns/DnsBinding.d.ts +52 -0
- package/lib/Cloudflare/Dns/DnsBinding.d.ts.map +1 -0
- package/lib/Cloudflare/Dns/DnsBinding.js +59 -0
- package/lib/Cloudflare/Dns/DnsBinding.js.map +1 -0
- package/lib/Cloudflare/Dns/DnsRead.d.ts +80 -0
- package/lib/Cloudflare/Dns/DnsRead.d.ts.map +1 -0
- package/lib/Cloudflare/Dns/DnsRead.js +70 -0
- package/lib/Cloudflare/Dns/DnsRead.js.map +1 -0
- package/lib/Cloudflare/Dns/DnsReadWrite.d.ts +79 -0
- package/lib/Cloudflare/Dns/DnsReadWrite.d.ts.map +1 -0
- package/lib/Cloudflare/Dns/DnsReadWrite.js +72 -0
- package/lib/Cloudflare/Dns/DnsReadWrite.js.map +1 -0
- package/lib/Cloudflare/Dns/DnsWrite.d.ts +113 -0
- package/lib/Cloudflare/Dns/DnsWrite.d.ts.map +1 -0
- package/lib/Cloudflare/Dns/DnsWrite.js +100 -0
- package/lib/Cloudflare/Dns/DnsWrite.js.map +1 -0
- package/lib/Cloudflare/Dns/index.d.ts +5 -0
- package/lib/Cloudflare/Dns/index.d.ts.map +1 -0
- package/lib/Cloudflare/Dns/index.js +5 -0
- package/lib/Cloudflare/Dns/index.js.map +1 -0
- package/lib/Cloudflare/Email/EmailRouting.d.ts +1 -1
- package/lib/Cloudflare/Email/EmailRouting.d.ts.map +1 -1
- package/lib/Cloudflare/Email/EmailRouting.js +1 -1
- package/lib/Cloudflare/Email/EmailRouting.js.map +1 -1
- package/lib/Cloudflare/Email/EmailRule.d.ts +1 -1
- package/lib/Cloudflare/Email/EmailRule.d.ts.map +1 -1
- package/lib/Cloudflare/Email/EmailRule.js +1 -1
- package/lib/Cloudflare/Email/EmailRule.js.map +1 -1
- package/lib/Cloudflare/Hyperdrive/Hyperdrive.d.ts +1 -1
- package/lib/Cloudflare/Images/Images.d.ts +32 -23
- package/lib/Cloudflare/Images/Images.d.ts.map +1 -1
- package/lib/Cloudflare/Images/Images.js +10 -13
- package/lib/Cloudflare/Images/Images.js.map +1 -1
- package/lib/Cloudflare/KV/KVNamespace.d.ts +1 -1
- package/lib/Cloudflare/Providers.d.ts.map +1 -1
- package/lib/Cloudflare/Providers.js +14 -3
- package/lib/Cloudflare/Providers.js.map +1 -1
- package/lib/Cloudflare/Queue/Queue.d.ts +1 -1
- package/lib/Cloudflare/R2/R2Bucket.d.ts +2 -2
- package/lib/Cloudflare/R2/R2Bucket.d.ts.map +1 -1
- package/lib/Cloudflare/R2/R2Bucket.js +13 -7
- package/lib/Cloudflare/R2/R2Bucket.js.map +1 -1
- package/lib/Cloudflare/RateLimit/RateLimit.d.ts +132 -0
- package/lib/Cloudflare/RateLimit/RateLimit.d.ts.map +1 -0
- package/lib/Cloudflare/RateLimit/RateLimit.js +80 -0
- package/lib/Cloudflare/RateLimit/RateLimit.js.map +1 -0
- package/lib/Cloudflare/RateLimit/RateLimitBinding.d.ts +30 -0
- package/lib/Cloudflare/RateLimit/RateLimitBinding.d.ts.map +1 -0
- package/lib/Cloudflare/RateLimit/RateLimitBinding.js +50 -0
- package/lib/Cloudflare/RateLimit/RateLimitBinding.js.map +1 -0
- package/lib/Cloudflare/RateLimit/index.d.ts +3 -0
- package/lib/Cloudflare/RateLimit/index.d.ts.map +1 -0
- package/lib/Cloudflare/RateLimit/index.js +3 -0
- package/lib/Cloudflare/RateLimit/index.js.map +1 -0
- package/lib/Cloudflare/SecretsStore/Secret.d.ts +3 -2
- package/lib/Cloudflare/SecretsStore/Secret.d.ts.map +1 -1
- package/lib/Cloudflare/SecretsStore/Secret.js +7 -4
- package/lib/Cloudflare/SecretsStore/Secret.js.map +1 -1
- package/lib/Cloudflare/StateStore/Api.d.ts +1 -1
- package/lib/Cloudflare/Tunnel/Tunnel.d.ts +27 -0
- package/lib/Cloudflare/Tunnel/Tunnel.d.ts.map +1 -1
- package/lib/Cloudflare/Tunnel/Tunnel.js +27 -0
- package/lib/Cloudflare/Tunnel/Tunnel.js.map +1 -1
- package/lib/Cloudflare/Tunnel/TunnelBinding.d.ts +48 -0
- package/lib/Cloudflare/Tunnel/TunnelBinding.d.ts.map +1 -0
- package/lib/Cloudflare/Tunnel/TunnelBinding.js +56 -0
- package/lib/Cloudflare/Tunnel/TunnelBinding.js.map +1 -0
- package/lib/Cloudflare/Tunnel/TunnelRead.d.ts +83 -0
- package/lib/Cloudflare/Tunnel/TunnelRead.d.ts.map +1 -0
- package/lib/Cloudflare/Tunnel/TunnelRead.js +79 -0
- package/lib/Cloudflare/Tunnel/TunnelRead.js.map +1 -0
- package/lib/Cloudflare/Tunnel/TunnelReadWrite.d.ts +70 -0
- package/lib/Cloudflare/Tunnel/TunnelReadWrite.d.ts.map +1 -0
- package/lib/Cloudflare/Tunnel/TunnelReadWrite.js +63 -0
- package/lib/Cloudflare/Tunnel/TunnelReadWrite.js.map +1 -0
- package/lib/Cloudflare/Tunnel/TunnelWrite.d.ts +92 -0
- package/lib/Cloudflare/Tunnel/TunnelWrite.d.ts.map +1 -0
- package/lib/Cloudflare/Tunnel/TunnelWrite.js +88 -0
- package/lib/Cloudflare/Tunnel/TunnelWrite.js.map +1 -0
- package/lib/Cloudflare/Tunnel/index.d.ts +4 -0
- package/lib/Cloudflare/Tunnel/index.d.ts.map +1 -1
- package/lib/Cloudflare/Tunnel/index.js +4 -0
- package/lib/Cloudflare/Tunnel/index.js.map +1 -1
- package/lib/Cloudflare/Vectorize/VectorizeIndex.d.ts +1 -1
- package/lib/Cloudflare/Vectorize/VectorizeIndex.js +1 -0
- package/lib/Cloudflare/Vectorize/VectorizeIndex.js.map +1 -1
- package/lib/Cloudflare/VpcService/VpcService.d.ts +1 -1
- package/lib/Cloudflare/VpcService/VpcService.d.ts.map +1 -1
- package/lib/Cloudflare/VpcService/VpcService.js.map +1 -1
- package/lib/Cloudflare/Workers/DynamicWorkerLoader.d.ts +119 -11
- package/lib/Cloudflare/Workers/DynamicWorkerLoader.d.ts.map +1 -1
- package/lib/Cloudflare/Workers/DynamicWorkerLoader.js +88 -9
- package/lib/Cloudflare/Workers/DynamicWorkerLoader.js.map +1 -1
- package/lib/Cloudflare/Workers/InferEnv.d.ts +1 -1
- package/lib/Cloudflare/Workers/InferEnv.d.ts.map +1 -1
- package/lib/Cloudflare/Workers/LocalWorkerProvider.js +2 -0
- package/lib/Cloudflare/Workers/LocalWorkerProvider.js.map +1 -1
- package/lib/Cloudflare/Workers/WorkerAsyncBindings.d.ts.map +1 -1
- package/lib/Cloudflare/Workers/WorkerAsyncBindings.js +18 -2
- package/lib/Cloudflare/Workers/WorkerAsyncBindings.js.map +1 -1
- package/lib/Cloudflare/Workers/WorkerBinding.d.ts +7 -5
- package/lib/Cloudflare/Workers/WorkerBinding.d.ts.map +1 -1
- package/lib/Cloudflare/Workers/WorkerBinding.js +1 -1
- package/lib/Cloudflare/Workers/WorkerBinding.js.map +1 -1
- package/lib/Cloudflare/Zaraz/ZarazConfig.d.ts +1 -1
- package/lib/Cloudflare/Zaraz/ZarazConfig.d.ts.map +1 -1
- package/lib/Cloudflare/Zaraz/ZarazConfig.js +1 -1
- package/lib/Cloudflare/Zaraz/ZarazConfig.js.map +1 -1
- package/lib/Cloudflare/Zone/Zone.d.ts +170 -0
- package/lib/Cloudflare/Zone/Zone.d.ts.map +1 -0
- package/lib/Cloudflare/Zone/Zone.js +180 -0
- package/lib/Cloudflare/Zone/Zone.js.map +1 -0
- package/lib/Cloudflare/Zone/index.d.ts +3 -0
- package/lib/Cloudflare/Zone/index.d.ts.map +1 -0
- package/lib/Cloudflare/Zone/index.js +3 -0
- package/lib/Cloudflare/Zone/index.js.map +1 -0
- package/lib/Cloudflare/Zone/lookup.d.ts +33 -0
- package/lib/Cloudflare/Zone/lookup.d.ts.map +1 -0
- package/lib/Cloudflare/{Zone.js → Zone/lookup.js} +2 -2
- package/lib/Cloudflare/Zone/lookup.js.map +1 -0
- package/lib/Cloudflare/index.d.ts +4 -1
- package/lib/Cloudflare/index.d.ts.map +1 -1
- package/lib/Cloudflare/index.js +4 -1
- package/lib/Cloudflare/index.js.map +1 -1
- package/lib/Output.d.ts +13 -1
- package/lib/Output.d.ts.map +1 -1
- package/lib/Output.js +43 -11
- package/lib/Output.js.map +1 -1
- package/lib/Plan.d.ts.map +1 -1
- package/lib/Plan.js +8 -0
- package/lib/Plan.js.map +1 -1
- package/lib/Platform.d.ts +5 -5
- package/lib/Platform.d.ts.map +1 -1
- package/lib/Platform.js +5 -2
- package/lib/Platform.js.map +1 -1
- package/lib/RemovalPolicy.js +2 -2
- package/lib/RemovalPolicy.js.map +1 -1
- package/lib/Resource.d.ts +15 -2
- package/lib/Resource.d.ts.map +1 -1
- package/lib/Resource.js +3 -2
- package/lib/Resource.js.map +1 -1
- package/lib/tsconfig.test.tsbuildinfo +1 -1
- package/package.json +7 -7
- package/src/AdoptPolicy.ts +1 -1
- package/src/Binding.ts +5 -1
- package/src/Cli/commands/cloudflare.ts +394 -1
- package/src/Cloudflare/AiGateway/AiGateway.ts +2 -1
- package/src/Cloudflare/ApiToken/AccountApiToken.ts +60 -7
- package/src/Cloudflare/ApiToken/Common.ts +45 -6
- package/src/Cloudflare/ApiToken/UserApiToken.ts +58 -7
- package/src/Cloudflare/Browser/Browser.ts +140 -0
- package/src/Cloudflare/Browser/BrowserBinding.ts +128 -0
- package/src/Cloudflare/Browser/index.ts +11 -0
- package/src/Cloudflare/D1/D1Database.ts +6 -2
- package/src/Cloudflare/Dns/DnsBinding.ts +123 -0
- package/src/Cloudflare/Dns/DnsRead.ts +129 -0
- package/src/Cloudflare/Dns/DnsReadWrite.ts +99 -0
- package/src/Cloudflare/Dns/DnsWrite.ts +209 -0
- package/src/Cloudflare/Dns/index.ts +4 -0
- package/src/Cloudflare/Email/EmailRouting.ts +1 -1
- package/src/Cloudflare/Email/EmailRule.ts +6 -6
- package/src/Cloudflare/Images/Images.ts +40 -27
- package/src/Cloudflare/Providers.ts +22 -3
- package/src/Cloudflare/R2/R2Bucket.ts +17 -9
- package/src/Cloudflare/RateLimit/RateLimit.ts +160 -0
- package/src/Cloudflare/RateLimit/RateLimitBinding.ts +90 -0
- package/src/Cloudflare/RateLimit/index.ts +2 -0
- package/src/Cloudflare/SecretsStore/Secret.ts +12 -6
- package/src/Cloudflare/Tunnel/Tunnel.ts +27 -0
- package/src/Cloudflare/Tunnel/TunnelBinding.ts +114 -0
- package/src/Cloudflare/Tunnel/TunnelRead.ts +168 -0
- package/src/Cloudflare/Tunnel/TunnelReadWrite.ts +88 -0
- package/src/Cloudflare/Tunnel/TunnelWrite.ts +194 -0
- package/src/Cloudflare/Tunnel/index.ts +4 -0
- package/src/Cloudflare/Vectorize/VectorizeIndex.ts +2 -1
- package/src/Cloudflare/VpcService/VpcService.ts +4 -2
- package/src/Cloudflare/Workers/DynamicWorkerLoader.ts +139 -13
- package/src/Cloudflare/Workers/InferEnv.ts +19 -15
- package/src/Cloudflare/Workers/LocalWorkerProvider.ts +13 -2
- package/src/Cloudflare/Workers/WorkerAsyncBindings.ts +16 -2
- package/src/Cloudflare/Workers/WorkerBinding.ts +6 -2
- package/src/Cloudflare/Zaraz/ZarazConfig.ts +1 -1
- package/src/Cloudflare/Zone/Zone.ts +349 -0
- package/src/Cloudflare/Zone/index.ts +2 -0
- package/src/Cloudflare/{Zone.ts → Zone/lookup.ts} +16 -3
- package/src/Cloudflare/index.ts +4 -1
- package/src/Output.ts +67 -11
- package/src/Plan.ts +9 -0
- package/src/Platform.ts +19 -15
- package/src/RemovalPolicy.ts +2 -2
- package/src/Resource.ts +19 -2
- package/lib/Cloudflare/BrowserRendering/BrowserRendering.d.ts +0 -116
- package/lib/Cloudflare/BrowserRendering/BrowserRendering.d.ts.map +0 -1
- package/lib/Cloudflare/BrowserRendering/BrowserRendering.js.map +0 -1
- package/lib/Cloudflare/BrowserRendering/BrowserRenderingBinding.d.ts +0 -55
- package/lib/Cloudflare/BrowserRendering/BrowserRenderingBinding.d.ts.map +0 -1
- package/lib/Cloudflare/BrowserRendering/BrowserRenderingBinding.js.map +0 -1
- package/lib/Cloudflare/BrowserRendering/index.d.ts +0 -3
- package/lib/Cloudflare/BrowserRendering/index.d.ts.map +0 -1
- package/lib/Cloudflare/BrowserRendering/index.js +0 -3
- package/lib/Cloudflare/BrowserRendering/index.js.map +0 -1
- package/lib/Cloudflare/Zone.d.ts +0 -14
- package/lib/Cloudflare/Zone.d.ts.map +0 -1
- package/lib/Cloudflare/Zone.js.map +0 -1
- package/src/Cloudflare/BrowserRendering/BrowserRendering.ts +0 -132
- package/src/Cloudflare/BrowserRendering/BrowserRenderingBinding.ts +0 -137
- 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
|
|
465
|
-
? self[prop]
|
|
466
|
-
|
|
467
|
-
?
|
|
468
|
-
|
|
469
|
-
|
|
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
|
-
|
|
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 (
|
|
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 (
|
|
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(
|
|
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 =
|
|
381
|
+
const value =
|
|
382
|
+
yield* ctx.get<Redacted.Redacted<string>>(key);
|
|
383
383
|
if (value) {
|
|
384
|
-
return ConfigProvider.makeValue(
|
|
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
|
package/src/RemovalPolicy.ts
CHANGED
|
@@ -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
|
|
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(() =>
|
|
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":"AACA,OAAO,KAAK,IAAI,MAAM,aAAa,CAAC;AACpC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,OAAO,MAAM,kBAAkB,CAAC;AAE5C,OAAO,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAGnE,MAAM,OAAO,qBAAsB,SAAQ,IAAI,CAAC,WAAW,CACzD,uBAAuB,CAIvB;CAAG;AAuCL,MAAM,OAAO,uBAAwB,SAAQ,OAAO,CAAC,OAAO,EAGzD,CAAC,qCAAqC,CAAC;CAAG;AAE7C,MAAM,CAAC,MAAM,2BAA2B,GAAG,KAAK,CAAC,MAAM,CACrD,uBAAuB,EACvB,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,6BAA6B,CAAC;IAEpD,OAAO,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,OAA6B;QACvD,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACvB,sEAAsE;QACtE,kEAAkE;QAClE,MAAM,GAAG,GAAG,iBAAiB,CAAC,OAAO,CACnC,CAAC,GAAG,EAAE,EAAE,CAAE,GAAkC,CAAC,OAAO,CAAC,IAAI,CAAE,CAC5D,CAAC;QACF,OAAO,0BAA0B,CAAC,GAAG,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CACH,CAAC;AAEF,MAAM,OAAO,6BAA8B,SAAQ,OAAO,CAAC,MAAM,EAG9D,CAAC,qCAAqC,CAAC;CAAG;AAE7C,MAAM,CAAC,MAAM,iCAAiC,GAC5C,6BAA6B,CAAC,KAAK,CAAC,OAAO,CACzC,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,IAAkB,EAAE,OAA6B;IACpE,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACnB,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;YAC7B,QAAQ,EAAE;gBACR;oBACE,IAAI,EAAE,SAAS;oBACf,IAAI,EAAE,OAAO,CAAC,IAAI;iBACnB;aACF;SACF,CAAC,CAAC;IACL,CAAC;SAAM,CAAC;QACN,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,CACtB,IAAI,KAAK,CACP,qDAAqD,IAAI,CAAC,IAAI,GAAG,CAClE,CACF,CAAC;IACJ,CAAC;AACH,CAAC,CAAC,CACH,CAAC;AAEJ,MAAM,UAAU,GAAG,CACjB,EAAoB,EACqB,EAAE,CAC3C,MAAM,CAAC,UAAU,CAAC;IAChB,GAAG,EAAE,EAAE;IACP,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CACf,IAAI,qBAAqB,CAAC;QACxB,OAAO,EACL,KAAK,YAAY,KAAK;YACpB,CAAC,CAAC,KAAK,CAAC,OAAO;YACf,CAAC,CAAC,iCAAiC;QACvC,KAAK,EAAE,KAAK;KACb,CAAC;CACL,CAAC,CAAC;AAEL,gBAAgB;AAChB,MAAM,CAAC,MAAM,0BAA0B,GAAG,CACxC,GAAwD,EAChC,EAAE;IAC1B,MAAM,MAAM,GAAG,CACb,SAA6C,EAC7C,EAAE,CACF,GAAG,CAAC,IAAI,CACN,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CACzE,CAAC;IAEJ,OAAO;QACL,GAAG;QACH,MAAM;QACN,WAAW,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE,EAAE,CAC9B,MAAM,CAAC,iBAAiB,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,EAAE,CAC3D,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAClC;KAC6B,CAAC;AACrC,CAAC,CAAC"}
|
|
@@ -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 +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"}
|
package/lib/Cloudflare/Zone.d.ts
DELETED
|
@@ -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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"}
|