alchemy 2.0.0-beta.48 → 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/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/Cloudflare/AiGateway/AiGateway.d.ts +1 -1
- package/lib/Cloudflare/ApiToken/Common.d.ts +10 -1
- package/lib/Cloudflare/ApiToken/Common.d.ts.map +1 -1
- package/lib/Cloudflare/ApiToken/Common.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/Hyperdrive/Hyperdrive.d.ts +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 +5 -1
- package/lib/Cloudflare/Providers.js.map +1 -1
- package/lib/Cloudflare/Queue/Queue.d.ts +1 -1
- package/lib/Cloudflare/R2/R2Bucket.d.ts +1 -1
- package/lib/Cloudflare/SecretsStore/Secret.d.ts +1 -1
- package/lib/Cloudflare/StateStore/Api.d.ts +1 -1
- package/lib/Cloudflare/Vectorize/VectorizeIndex.d.ts +1 -1
- package/lib/Cloudflare/Workers/WorkerBinding.d.ts +2 -2
- package/lib/Cloudflare/index.d.ts +1 -0
- package/lib/Cloudflare/index.d.ts.map +1 -1
- package/lib/Cloudflare/index.js +1 -0
- 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.map +1 -1
- package/lib/Platform.js +5 -2
- package/lib/Platform.js.map +1 -1
- package/lib/Resource.d.ts +1 -1
- package/lib/Resource.d.ts.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/Cloudflare/ApiToken/Common.ts +13 -3
- 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/Providers.ts +7 -0
- package/src/Cloudflare/index.ts +1 -0
- package/src/Output.ts +67 -11
- package/src/Plan.ts +9 -0
- package/src/Platform.ts +11 -3
- package/src/Resource.ts +1 -1
package/bin/exec.js
CHANGED
|
@@ -363,6 +363,7 @@ const of = (resource) => {
|
|
|
363
363
|
}
|
|
364
364
|
return new ResourceExpr(resource);
|
|
365
365
|
};
|
|
366
|
+
const asOutput = (t) => isOutput(t) ? t : Effect.isEffect(t) ? new EffectExpr(VoidExpr, () => t) : new LiteralExpr(t);
|
|
366
367
|
const isOutput = (value) => value && (typeof value === "object" || typeof value === "function") && ExprSymbol in value;
|
|
367
368
|
const ExprSymbol = Symbol.for("alchemy/Expr");
|
|
368
369
|
const isExpr = (value) => value && (typeof value === "object" || typeof value === "function") && ExprSymbol in value;
|
|
@@ -447,6 +448,21 @@ var ApplyExpr = class extends BaseExpr {
|
|
|
447
448
|
return `${this.expr[inspect]()}.map(${this.f.toString()})`;
|
|
448
449
|
}
|
|
449
450
|
};
|
|
451
|
+
const isFlatMapExpr = (node) => node?.kind === "FlatMapExpr";
|
|
452
|
+
var FlatMapExpr = class extends BaseExpr {
|
|
453
|
+
expr;
|
|
454
|
+
f;
|
|
455
|
+
kind = "FlatMapExpr";
|
|
456
|
+
constructor(expr, f) {
|
|
457
|
+
super();
|
|
458
|
+
this.expr = expr;
|
|
459
|
+
this.f = f;
|
|
460
|
+
return proxy(this);
|
|
461
|
+
}
|
|
462
|
+
[inspect]() {
|
|
463
|
+
return `${this.expr[inspect]()}.flatMap(${this.f.toString()})`;
|
|
464
|
+
}
|
|
465
|
+
};
|
|
450
466
|
const isEffectExpr = (node) => node?.kind === "EffectExpr";
|
|
451
467
|
var EffectExpr = class extends BaseExpr {
|
|
452
468
|
expr;
|
|
@@ -557,11 +573,12 @@ function proxy(self) {
|
|
|
557
573
|
has: (_, prop) => prop === ExprSymbol || prop === inspect ? true : prop in self,
|
|
558
574
|
get: (target$1, prop) => prop === Symbol.toPrimitive ? (hint) => {
|
|
559
575
|
throw new Error(`Cannot coerce Output<${self[inspect]()}> to a ${hint === "number" ? "number" : "string"} via JS coercion. Use Output.interpolate\`...\` or Output.map(output, fn) to compose Outputs — the value isn't known until deploy time.`);
|
|
560
|
-
} : prop === ExprSymbol ? self : prop === inspect ? target$1[inspect] : isResourceExpr(self) && self.stables && prop in self.stables ? self.stables[prop] : prop
|
|
576
|
+
} : prop === ExprSymbol ? self : prop === inspect ? target$1[inspect] : isResourceExpr(self) && self.stables && prop in self.stables ? self.stables[prop] : prop in self ? typeof self[prop] === "function" && !("kind" in self) ? new PropExpr(proxy$1, prop) : self[prop] : new PropExpr(proxy$1, prop),
|
|
561
577
|
apply: (_, thisArg, args) => {
|
|
562
578
|
if (isPropExpr(self)) {
|
|
563
|
-
if (self.identifier === "apply") return new ApplyExpr(self.expr, args[0]);
|
|
564
|
-
else if (self.identifier === "effect") return new EffectExpr(self.expr, args[0]);
|
|
579
|
+
if (self.identifier === "map" || self.identifier === "apply") return new ApplyExpr(self.expr, args[0]);
|
|
580
|
+
else if (self.identifier === "mapEffect" || self.identifier === "effect") return new EffectExpr(self.expr, args[0]);
|
|
581
|
+
else if (self.identifier === "flatMap") return new FlatMapExpr(self.expr, args[0]);
|
|
565
582
|
}
|
|
566
583
|
}
|
|
567
584
|
});
|
|
@@ -590,7 +607,10 @@ const evaluate = (expr, upstream$1) => Effect.gen(function* () {
|
|
|
590
607
|
} else if (isLiteralExpr(expr)) return expr.value;
|
|
591
608
|
else if (isApplyExpr(expr)) return expr.f(yield* evaluate(expr.expr, upstream$1));
|
|
592
609
|
else if (isEffectExpr(expr)) return yield* expr.f(yield* evaluate(expr.expr, upstream$1));
|
|
593
|
-
else if (
|
|
610
|
+
else if (isFlatMapExpr(expr)) {
|
|
611
|
+
const value = yield* evaluate(expr.expr, upstream$1);
|
|
612
|
+
return yield* evaluate(expr.f(value), upstream$1);
|
|
613
|
+
} else if (isAllExpr(expr)) return yield* Effect.all(expr.outs.map((out) => evaluate(out, upstream$1)));
|
|
594
614
|
else if (isPropExpr(expr)) return (yield* evaluate(expr.expr, upstream$1))?.[expr.identifier];
|
|
595
615
|
else if (isNamedExpr(expr)) return yield* evaluate(expr.expr, upstream$1);
|
|
596
616
|
else if (isRefExpr(expr)) {
|
|
@@ -645,7 +665,7 @@ const upstream = (expr) => {
|
|
|
645
665
|
else if (isResourceExpr(expr)) return { [expr.src.FQN]: expr.src };
|
|
646
666
|
else if (isPropExpr(expr)) return upstream(expr.expr);
|
|
647
667
|
else if (isAllExpr(expr)) return Object.assign({}, ...expr.outs.map((out) => upstream(out)));
|
|
648
|
-
else if (isEffectExpr(expr) || isApplyExpr(expr) || isNamedExpr(expr)) return upstream(expr.expr);
|
|
668
|
+
else if (isEffectExpr(expr) || isApplyExpr(expr) || isFlatMapExpr(expr) || isNamedExpr(expr)) return upstream(expr.expr);
|
|
649
669
|
else if (Array.isArray(expr)) return expr.map(upstream).reduce(toObject, {});
|
|
650
670
|
else if (typeof expr === "object" && expr !== null) return Object.values(expr).map((v) => upstream(v)).reduce(toObject, {});
|
|
651
671
|
return {};
|
|
@@ -1254,6 +1274,9 @@ const make = (stack, options = {}) => Effect.gen(function* () {
|
|
|
1254
1274
|
} else if (isEffectExpr(expr)) {
|
|
1255
1275
|
const upstream$1 = yield* resolveOutput(expr.expr);
|
|
1256
1276
|
return hasOutputs(upstream$1) ? expr : yield* expr.f(upstream$1);
|
|
1277
|
+
} else if (isFlatMapExpr(expr)) {
|
|
1278
|
+
const upstream$1 = yield* resolveOutput(expr.expr);
|
|
1279
|
+
return hasOutputs(upstream$1) ? expr : yield* resolveOutput(asOutput(expr.f(upstream$1)));
|
|
1257
1280
|
} else if (isAllExpr(expr)) return yield* Effect.all(expr.outs.map(resolveOutput), { concurrency: "unbounded" });
|
|
1258
1281
|
else if (isLiteralExpr(expr)) return expr.value;
|
|
1259
1282
|
else if (isRefExpr(expr)) {
|