alchemy 2.0.0-beta.23 → 2.0.0-beta.25
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/alchemy.js +12574 -2451
- package/bin/alchemy.js.map +1 -1
- package/bin/alchemy.ts +2 -0
- package/bin/cli.js +18 -0
- package/bin/commands/bootstrap.ts +88 -4
- package/bin/commands/deploy.ts +54 -20
- package/bin/commands/dev.ts +45 -0
- package/bin/exec.ts +22 -0
- package/lib/AdoptPolicy.d.ts +2 -2
- package/lib/AdoptPolicy.d.ts.map +1 -1
- package/lib/AdoptPolicy.js.map +1 -1
- package/lib/AlchemyContext.d.ts +1 -0
- package/lib/AlchemyContext.d.ts.map +1 -1
- package/lib/AlchemyContext.js +1 -0
- package/lib/AlchemyContext.js.map +1 -1
- package/lib/Build/Command.d.ts.map +1 -1
- package/lib/Build/Command.js +8 -1
- package/lib/Build/Command.js.map +1 -1
- package/lib/Bundle/Bundle.d.ts +21 -9
- package/lib/Bundle/Bundle.d.ts.map +1 -1
- package/lib/Bundle/Bundle.js +29 -15
- package/lib/Bundle/Bundle.js.map +1 -1
- package/lib/Cloudflare/Local/Sidecar.d.ts +27 -0
- package/lib/Cloudflare/Local/Sidecar.d.ts.map +1 -0
- package/lib/Cloudflare/Local/Sidecar.js +24 -0
- package/lib/Cloudflare/Local/Sidecar.js.map +1 -0
- package/lib/Cloudflare/Local/SidecarHandlers.d.ts +5 -0
- package/lib/Cloudflare/Local/SidecarHandlers.d.ts.map +1 -0
- package/lib/Cloudflare/Local/SidecarHandlers.js +119 -0
- package/lib/Cloudflare/Local/SidecarHandlers.js.map +1 -0
- package/lib/Cloudflare/Local/SidecarServer.d.ts +2 -0
- package/lib/Cloudflare/Local/SidecarServer.d.ts.map +1 -0
- package/lib/Cloudflare/Local/SidecarServer.js +27 -0
- package/lib/Cloudflare/Local/SidecarServer.js.map +1 -0
- package/lib/Cloudflare/SecretsStore/Secret.d.ts.map +1 -1
- package/lib/Cloudflare/SecretsStore/Secret.js +55 -7
- package/lib/Cloudflare/SecretsStore/Secret.js.map +1 -1
- package/lib/Cloudflare/SecretsStore/SecretsStore.d.ts.map +1 -1
- package/lib/Cloudflare/SecretsStore/SecretsStore.js +35 -11
- package/lib/Cloudflare/SecretsStore/SecretsStore.js.map +1 -1
- package/lib/Cloudflare/StateStore/State.d.ts +35 -0
- package/lib/Cloudflare/StateStore/State.d.ts.map +1 -1
- package/lib/Cloudflare/StateStore/State.js +187 -45
- package/lib/Cloudflare/StateStore/State.js.map +1 -1
- package/lib/Cloudflare/StateStore/index.d.ts +1 -1
- package/lib/Cloudflare/StateStore/index.d.ts.map +1 -1
- package/lib/Cloudflare/StateStore/index.js +1 -1
- package/lib/Cloudflare/StateStore/index.js.map +1 -1
- package/lib/Cloudflare/Workers/Compatibility.d.ts +6 -0
- package/lib/Cloudflare/Workers/Compatibility.d.ts.map +1 -0
- package/lib/Cloudflare/Workers/Compatibility.js +10 -0
- package/lib/Cloudflare/Workers/Compatibility.js.map +1 -0
- package/lib/Cloudflare/Workers/LocalWorkerProvider.d.ts +7 -0
- package/lib/Cloudflare/Workers/LocalWorkerProvider.d.ts.map +1 -0
- package/lib/Cloudflare/Workers/LocalWorkerProvider.js +81 -0
- package/lib/Cloudflare/Workers/LocalWorkerProvider.js.map +1 -0
- package/lib/Cloudflare/Workers/Worker.d.ts +3 -1
- package/lib/Cloudflare/Workers/Worker.d.ts.map +1 -1
- package/lib/Cloudflare/Workers/Worker.js +89 -31
- package/lib/Cloudflare/Workers/Worker.js.map +1 -1
- package/lib/Cloudflare/Workers/WorkerBundle.d.ts +31 -0
- package/lib/Cloudflare/Workers/WorkerBundle.d.ts.map +1 -0
- package/lib/Cloudflare/Workers/WorkerBundle.js +174 -0
- package/lib/Cloudflare/Workers/WorkerBundle.js.map +1 -0
- package/lib/Cloudflare/Workers/WorkerName.d.ts +3 -0
- package/lib/Cloudflare/Workers/WorkerName.d.ts.map +1 -0
- package/lib/Cloudflare/Workers/WorkerName.js +9 -0
- package/lib/Cloudflare/Workers/WorkerName.js.map +1 -0
- package/lib/Cloudflare/Workers/index.d.ts +1 -0
- package/lib/Cloudflare/Workers/index.d.ts.map +1 -1
- package/lib/Cloudflare/Workers/index.js +1 -0
- package/lib/Cloudflare/Workers/index.js.map +1 -1
- package/lib/Platform.d.ts +1 -1
- package/lib/Platform.d.ts.map +1 -1
- package/lib/Sidecar/Lock.d.ts +24 -0
- package/lib/Sidecar/Lock.d.ts.map +1 -0
- package/lib/Sidecar/Lock.js +102 -0
- package/lib/Sidecar/Lock.js.map +1 -0
- package/lib/Sidecar/RpcClient.d.ts +15 -0
- package/lib/Sidecar/RpcClient.d.ts.map +1 -0
- package/lib/Sidecar/RpcClient.js +75 -0
- package/lib/Sidecar/RpcClient.js.map +1 -0
- package/lib/Sidecar/RpcHandler.d.ts +48 -0
- package/lib/Sidecar/RpcHandler.d.ts.map +1 -0
- package/lib/Sidecar/RpcHandler.js +64 -0
- package/lib/Sidecar/RpcHandler.js.map +1 -0
- package/lib/Sidecar/RpcPaths.d.ts +14 -0
- package/lib/Sidecar/RpcPaths.d.ts.map +1 -0
- package/lib/Sidecar/RpcPaths.js +22 -0
- package/lib/Sidecar/RpcPaths.js.map +1 -0
- package/lib/Sidecar/RpcServer.d.ts +10 -0
- package/lib/Sidecar/RpcServer.d.ts.map +1 -0
- package/lib/Sidecar/RpcServer.js +50 -0
- package/lib/Sidecar/RpcServer.js.map +1 -0
- package/lib/Sidecar/RpcTransport.d.ts +22 -0
- package/lib/Sidecar/RpcTransport.d.ts.map +1 -0
- package/lib/Sidecar/RpcTransport.js +81 -0
- package/lib/Sidecar/RpcTransport.js.map +1 -0
- package/lib/Telemetry/Metrics.d.ts +15 -0
- package/lib/Telemetry/Metrics.d.ts.map +1 -1
- package/lib/Telemetry/Metrics.js +20 -0
- package/lib/Telemetry/Metrics.js.map +1 -1
- package/lib/Util/PlatformServices.d.ts +3 -0
- package/lib/Util/PlatformServices.d.ts.map +1 -1
- package/lib/Util/PlatformServices.js +13 -0
- package/lib/Util/PlatformServices.js.map +1 -1
- package/lib/Util/layer-scoped.d.ts +16 -0
- package/lib/Util/layer-scoped.d.ts.map +1 -0
- package/lib/Util/layer-scoped.js +14 -0
- package/lib/Util/layer-scoped.js.map +1 -0
- package/package.json +4 -2
- package/src/AdoptPolicy.ts +9 -9
- package/src/AlchemyContext.ts +2 -0
- package/src/Build/Command.ts +8 -1
- package/src/Bundle/Bundle.ts +65 -25
- package/src/Cloudflare/Local/Sidecar.ts +44 -0
- package/src/Cloudflare/Local/SidecarHandlers.ts +182 -0
- package/src/Cloudflare/Local/SidecarServer.ts +57 -0
- package/src/Cloudflare/SecretsStore/Secret.ts +78 -7
- package/src/Cloudflare/SecretsStore/SecretsStore.ts +47 -12
- package/src/Cloudflare/StateStore/State.ts +281 -64
- package/src/Cloudflare/StateStore/index.ts +1 -1
- package/src/Cloudflare/Workers/Compatibility.ts +12 -0
- package/src/Cloudflare/Workers/LocalWorkerProvider.ts +93 -0
- package/src/Cloudflare/Workers/Worker.ts +151 -55
- package/src/Cloudflare/Workers/WorkerBundle.ts +234 -0
- package/src/Cloudflare/Workers/WorkerName.ts +10 -0
- package/src/Cloudflare/Workers/index.ts +1 -0
- package/src/Platform.ts +1 -1
- package/src/Sidecar/Lock.ts +190 -0
- package/src/Sidecar/RpcClient.ts +141 -0
- package/src/Sidecar/RpcHandler.ts +169 -0
- package/src/Sidecar/RpcPaths.ts +29 -0
- package/src/Sidecar/RpcServer.ts +80 -0
- package/src/Sidecar/RpcTransport.ts +85 -0
- package/src/Telemetry/Metrics.ts +38 -0
- package/src/Util/PlatformServices.ts +19 -0
- package/src/Util/layer-scoped.ts +25 -0
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { ServeError, type ServeResult } from "@distilled.cloud/cloudflare-runtime/Server";
|
|
2
|
+
import * as Worker from "@distilled.cloud/cloudflare-runtime/Worker";
|
|
3
|
+
import * as Effect from "effect/Effect";
|
|
4
|
+
import { BundleError } from "../../Bundle/Bundle.ts";
|
|
5
|
+
import type { WorkerBinding } from "../Workers/Worker.ts";
|
|
6
|
+
import type { WorkerBundleOptions } from "../Workers/WorkerBundle.ts";
|
|
7
|
+
export interface ServeOptions extends WorkerBundleOptions {
|
|
8
|
+
name: string;
|
|
9
|
+
bindings: WorkerBinding[];
|
|
10
|
+
durableObjectNamespaces: Worker.DurableObjectNamespace[];
|
|
11
|
+
}
|
|
12
|
+
export declare const SidecarSchema: import("../../Sidecar/RpcHandler.ts").RpcHandlerEncoders<{
|
|
13
|
+
readonly serve: (options: ServeOptions) => Effect.Effect<ServeResult, ServeError | BundleError>;
|
|
14
|
+
readonly stop: (name: string) => Effect.Effect<void>;
|
|
15
|
+
}> & import("../../Sidecar/RpcHandler.ts").RpcHandlerDecoders<{
|
|
16
|
+
readonly serve: (options: ServeOptions) => Effect.Effect<ServeResult, ServeError | BundleError>;
|
|
17
|
+
readonly stop: (name: string) => Effect.Effect<void>;
|
|
18
|
+
}>;
|
|
19
|
+
declare const Sidecar_base: import("effect/Context").ServiceClass<Sidecar, "Sidecar", {
|
|
20
|
+
readonly serve: (options: ServeOptions) => Effect.Effect<ServeResult, ServeError | BundleError>;
|
|
21
|
+
readonly stop: (name: string) => Effect.Effect<void>;
|
|
22
|
+
}>;
|
|
23
|
+
export declare class Sidecar extends Sidecar_base {
|
|
24
|
+
}
|
|
25
|
+
export declare const SidecarLive: import("effect/Layer").Layer<Sidecar, never, import("../../AlchemyContext.ts").AlchemyContext | import("effect/Path").Path | import("effect/FileSystem").FileSystem | import("effect/unstable/process/ChildProcessSpawner").ChildProcessSpawner>;
|
|
26
|
+
export {};
|
|
27
|
+
//# sourceMappingURL=Sidecar.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Sidecar.d.ts","sourceRoot":"","sources":["../../../src/Cloudflare/Local/Sidecar.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,KAAK,WAAW,EACjB,MAAM,4CAA4C,CAAC;AACpD,OAAO,KAAK,MAAM,MAAM,4CAA4C,CAAC;AACrE,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAGrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAEtE,MAAM,WAAW,YAAa,SAAQ,mBAAmB;IACvD,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,uBAAuB,EAAE,MAAM,CAAC,sBAAsB,EAAE,CAAC;CAC1D;AAED,eAAO,MAAM,aAAa;oBAcN,CACd,OAAO,EAAE,YAAY,KAClB,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,UAAU,GAAG,WAAW,CAAC;mBAC1C,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;;oBAHpC,CACd,OAAO,EAAE,YAAY,KAClB,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,UAAU,GAAG,WAAW,CAAC;mBAC1C,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;EARtD,CAAC;;oBAKiB,CACd,OAAO,EAAE,YAAY,KAClB,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,UAAU,GAAG,WAAW,CAAC;mBAC1C,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;;AANxD,qBAAa,OAAQ,SAAQ,YAQf;CAAG;AAEjB,eAAO,MAAM,WAAW,kPAGtB,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { ServeError, } from "@distilled.cloud/cloudflare-runtime/Server";
|
|
2
|
+
import * as Worker from "@distilled.cloud/cloudflare-runtime/Worker";
|
|
3
|
+
import * as Effect from "effect/Effect";
|
|
4
|
+
import * as Schema from "effect/Schema";
|
|
5
|
+
import { BundleError } from "../../Bundle/Bundle.js";
|
|
6
|
+
import * as RpcClient from "../../Sidecar/RpcClient.js";
|
|
7
|
+
import { defineSchema } from "../../Sidecar/RpcHandler.js";
|
|
8
|
+
export const SidecarSchema = defineSchema({
|
|
9
|
+
serve: {
|
|
10
|
+
success: Schema.Struct({
|
|
11
|
+
name: Schema.String,
|
|
12
|
+
address: Schema.String,
|
|
13
|
+
}),
|
|
14
|
+
error: Schema.Union([ServeError, BundleError]),
|
|
15
|
+
},
|
|
16
|
+
stop: { success: Schema.Void, error: Schema.Never },
|
|
17
|
+
});
|
|
18
|
+
export class Sidecar extends RpcClient.RpcClientService()("Sidecar") {
|
|
19
|
+
}
|
|
20
|
+
export const SidecarLive = RpcClient.layer(Sidecar, {
|
|
21
|
+
main: import.meta.resolve("./SidecarServer.ts", import.meta.url),
|
|
22
|
+
schema: SidecarSchema,
|
|
23
|
+
});
|
|
24
|
+
//# sourceMappingURL=Sidecar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Sidecar.js","sourceRoot":"","sources":["../../../src/Cloudflare/Local/Sidecar.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,GAEX,MAAM,4CAA4C,CAAC;AACpD,OAAO,KAAK,MAAM,MAAM,4CAA4C,CAAC;AACrE,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,KAAK,SAAS,MAAM,4BAA4B,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAU3D,MAAM,CAAC,MAAM,aAAa,GAAG,YAAY,CAAqB;IAC5D,KAAK,EAAE;QACL,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC;YACrB,IAAI,EAAE,MAAM,CAAC,MAAM;YACnB,OAAO,EAAE,MAAM,CAAC,MAAM;SACvB,CAAC;QACF,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;KAC/C;IACD,IAAI,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE;CACpD,CAAC,CAAC;AAEH,MAAM,OAAO,OAAQ,SAAQ,SAAS,CAAC,gBAAgB,EAQpD,CAAC,SAAS,CAAC;CAAG;AAEjB,MAAM,CAAC,MAAM,WAAW,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE;IAClD,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,oBAAoB,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;IAChE,MAAM,EAAE,aAAa;CACtB,CAAC,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import * as Server from "@distilled.cloud/cloudflare-runtime/Server";
|
|
2
|
+
import * as Layer from "effect/Layer";
|
|
3
|
+
import { Sidecar } from "./Sidecar.ts";
|
|
4
|
+
export declare const SidecarHandlers: Layer.Layer<Sidecar, never, import("effect/Path").Path | import("effect/FileSystem").FileSystem | Server.Server>;
|
|
5
|
+
//# sourceMappingURL=SidecarHandlers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SidecarHandlers.d.ts","sourceRoot":"","sources":["../../../src/Cloudflare/Local/SidecarHandlers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,4CAA4C,CAAC;AAQrE,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAMtC,OAAO,EAAE,OAAO,EAAqB,MAAM,cAAc,CAAC;AAE1D,eAAO,MAAM,eAAe,kHAoJ3B,CAAC"}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import * as Server from "@distilled.cloud/cloudflare-runtime/Server";
|
|
2
|
+
import * as Cause from "effect/Cause";
|
|
3
|
+
import * as Deferred from "effect/Deferred";
|
|
4
|
+
import * as Effect from "effect/Effect";
|
|
5
|
+
import * as Exit from "effect/Exit";
|
|
6
|
+
import * as Fiber from "effect/Fiber";
|
|
7
|
+
import * as Hash from "effect/Hash";
|
|
8
|
+
import * as Layer from "effect/Layer";
|
|
9
|
+
import * as Result from "effect/Result";
|
|
10
|
+
import * as Scope from "effect/Scope";
|
|
11
|
+
import * as Stream from "effect/Stream";
|
|
12
|
+
import * as Bundle from "../../Bundle/Bundle.js";
|
|
13
|
+
import { WorkerBundle } from "../Workers/WorkerBundle.js";
|
|
14
|
+
import { Sidecar } from "./Sidecar.js";
|
|
15
|
+
export const SidecarHandlers = Layer.effect(Sidecar, Effect.gen(function* () {
|
|
16
|
+
const bundle = yield* WorkerBundle;
|
|
17
|
+
const server = yield* Server.Server;
|
|
18
|
+
const rootScope = yield* Effect.scope;
|
|
19
|
+
const serverScopes = new Map();
|
|
20
|
+
const serveScoped = Effect.fnUntraced(function* (worker, modules) {
|
|
21
|
+
const scope = yield* Effect.flatMap(Effect.scope, Scope.fork);
|
|
22
|
+
const result = yield* server
|
|
23
|
+
.serve({
|
|
24
|
+
name: worker.id.toLowerCase(),
|
|
25
|
+
compatibilityDate: worker.compatibility.date,
|
|
26
|
+
compatibilityFlags: worker.compatibility.flags,
|
|
27
|
+
bindings: worker.bindings,
|
|
28
|
+
durableObjectNamespaces: worker.durableObjectNamespaces,
|
|
29
|
+
modules,
|
|
30
|
+
})
|
|
31
|
+
.pipe(Scope.provide(scope));
|
|
32
|
+
const previous = serverScopes.get(worker.name);
|
|
33
|
+
if (previous) {
|
|
34
|
+
yield* Effect.forkDetach(Scope.close(previous, Exit.void));
|
|
35
|
+
}
|
|
36
|
+
serverScopes.set(worker.name, scope);
|
|
37
|
+
return result;
|
|
38
|
+
});
|
|
39
|
+
const watchers = new Map();
|
|
40
|
+
const serveFiber = Effect.fnUntraced(function* (worker) {
|
|
41
|
+
const result = yield* Deferred.make();
|
|
42
|
+
let start = Date.now();
|
|
43
|
+
yield* bundle.watch(worker).pipe(Stream.mapEffect((event) => event._tag === "Error" && !Deferred.isDoneUnsafe(result)
|
|
44
|
+
? Effect.fail(event.error)
|
|
45
|
+
: Effect.succeed(event)), Stream.tap((event) => {
|
|
46
|
+
if (event._tag === "Start") {
|
|
47
|
+
start = Date.now();
|
|
48
|
+
if (Deferred.isDoneUnsafe(result)) {
|
|
49
|
+
return Effect.log(`[${worker.id}] Rebuilding`);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
else if (event._tag === "Error") {
|
|
53
|
+
return Effect.logError(`[${worker.id}] Bundle error`, event.error);
|
|
54
|
+
}
|
|
55
|
+
return Effect.void;
|
|
56
|
+
}), Stream.filterMap((event) => event._tag === "Success"
|
|
57
|
+
? Result.succeed(event.output)
|
|
58
|
+
: Result.failVoid), Stream.map(bundleOutputToWorkerModules), Stream.mapEffect((modules) => serveScoped(worker, modules).pipe(Effect.exit, Effect.tap((exit) => {
|
|
59
|
+
const isDone = Deferred.isDoneUnsafe(result);
|
|
60
|
+
if (exit._tag === "Success") {
|
|
61
|
+
return Effect.log(`[${worker.id}] ${isDone ? "Updated" : "Started"} in ${Math.round(Date.now() - start)}ms`);
|
|
62
|
+
}
|
|
63
|
+
else if (isDone) {
|
|
64
|
+
return Effect.logError(`[${worker.id}] Error`, Cause.squash(exit.cause));
|
|
65
|
+
}
|
|
66
|
+
return Effect.void;
|
|
67
|
+
}), Effect.tap((exit) => Deferred.complete(result, exit)))), Stream.onExit((exit) => exit._tag === "Failure" && !Deferred.isDoneUnsafe(result)
|
|
68
|
+
? Deferred.failCause(result, exit.cause)
|
|
69
|
+
: Effect.void), Stream.runDrain, Effect.forkScoped);
|
|
70
|
+
return yield* Deferred.await(result);
|
|
71
|
+
});
|
|
72
|
+
return Sidecar.of({
|
|
73
|
+
serve: Effect.fn(function* (worker) {
|
|
74
|
+
const hash = Hash.structure(worker);
|
|
75
|
+
const existing = watchers.get(worker.name);
|
|
76
|
+
if (existing) {
|
|
77
|
+
if (existing.hash === hash) {
|
|
78
|
+
yield* Effect.log(`[${worker.id}] No changes, using existing watcher`);
|
|
79
|
+
return yield* Fiber.join(existing.fiber);
|
|
80
|
+
}
|
|
81
|
+
yield* Effect.log(`[${worker.id}] Changes detected, interrupting existing watcher`);
|
|
82
|
+
yield* Fiber.interrupt(existing.fiber);
|
|
83
|
+
yield* Scope.close(existing.scope, Exit.void);
|
|
84
|
+
watchers.delete(worker.name);
|
|
85
|
+
}
|
|
86
|
+
const scope = yield* Scope.fork(rootScope);
|
|
87
|
+
const fiber = yield* serveFiber(worker).pipe(Effect.forkDetach, Scope.provide(scope));
|
|
88
|
+
watchers.set(worker.name, { hash, fiber, scope });
|
|
89
|
+
return yield* Fiber.join(fiber).pipe(Effect.onExit((exit) => Effect.sync(() => {
|
|
90
|
+
if (exit._tag === "Failure") {
|
|
91
|
+
watchers.delete(worker.name);
|
|
92
|
+
}
|
|
93
|
+
})));
|
|
94
|
+
}),
|
|
95
|
+
stop: Effect.fn(function* (name) {
|
|
96
|
+
const watcher = watchers.get(name);
|
|
97
|
+
if (watcher) {
|
|
98
|
+
yield* Fiber.interrupt(watcher.fiber);
|
|
99
|
+
yield* Scope.close(watcher.scope, Exit.void);
|
|
100
|
+
watchers.delete(name);
|
|
101
|
+
}
|
|
102
|
+
}),
|
|
103
|
+
});
|
|
104
|
+
}));
|
|
105
|
+
function bundleOutputToWorkerModules(bundle) {
|
|
106
|
+
const modules = [];
|
|
107
|
+
for (const file of bundle.files) {
|
|
108
|
+
if (file.path.endsWith(".map") || file.content instanceof Uint8Array) {
|
|
109
|
+
continue;
|
|
110
|
+
}
|
|
111
|
+
modules.push({
|
|
112
|
+
name: file.path,
|
|
113
|
+
type: "ESModule",
|
|
114
|
+
content: file.content,
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
return modules;
|
|
118
|
+
}
|
|
119
|
+
//# sourceMappingURL=SidecarHandlers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SidecarHandlers.js","sourceRoot":"","sources":["../../../src/Cloudflare/Local/SidecarHandlers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SidecarServer.d.ts","sourceRoot":"","sources":["../../../src/Cloudflare/Local/SidecarServer.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import * as RuntimeServices from "@distilled.cloud/cloudflare-runtime/RuntimeServices";
|
|
2
|
+
import * as Effect from "effect/Effect";
|
|
3
|
+
import * as Layer from "effect/Layer";
|
|
4
|
+
import * as Path from "effect/Path";
|
|
5
|
+
import * as FetchHttpClient from "effect/unstable/http/FetchHttpClient";
|
|
6
|
+
import * as AlchemyContext from "../../AlchemyContext.js";
|
|
7
|
+
import { AuthProviders } from "../../Auth/AuthProvider.js";
|
|
8
|
+
import * as RpcServer from "../../Sidecar/RpcServer.js";
|
|
9
|
+
import { httpServer, PlatformServices, runMain, } from "../../Util/PlatformServices.js";
|
|
10
|
+
import { CloudflareAuth } from "../Auth/AuthProvider.js";
|
|
11
|
+
import * as CloudflareEnvironment from "../CloudflareEnvironment.js";
|
|
12
|
+
import * as Credentials from "../Credentials.js";
|
|
13
|
+
import { Sidecar, SidecarSchema } from "./Sidecar.js";
|
|
14
|
+
import { SidecarHandlers } from "./SidecarHandlers.js";
|
|
15
|
+
const apiServices = Layer.merge(Credentials.fromAuthProvider(), CloudflareEnvironment.fromProfile()).pipe(Layer.provide(CloudflareAuth), Layer.provide(Layer.succeed(AuthProviders, {})));
|
|
16
|
+
const runtimeServices = SidecarHandlers.pipe(Layer.provide(Layer.unwrap(Effect.gen(function* () {
|
|
17
|
+
const { accountId } = yield* CloudflareEnvironment.CloudflareEnvironment;
|
|
18
|
+
const { dotAlchemy } = yield* AlchemyContext.AlchemyContext;
|
|
19
|
+
const path = yield* Path.Path;
|
|
20
|
+
return RuntimeServices.layer({
|
|
21
|
+
accountId,
|
|
22
|
+
storage: path.join(dotAlchemy, "local"),
|
|
23
|
+
});
|
|
24
|
+
}))), Layer.provide(Layer.mergeAll(apiServices, FetchHttpClient.layer, httpServer())));
|
|
25
|
+
const services = Layer.provideMerge(Layer.provideMerge(runtimeServices, RpcServer.layerServices(import.meta.url)), PlatformServices);
|
|
26
|
+
RpcServer.makeRpcServer(Sidecar.asEffect(), SidecarSchema).pipe(Effect.provide(services), Effect.scoped, runMain);
|
|
27
|
+
//# sourceMappingURL=SidecarServer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SidecarServer.js","sourceRoot":"","sources":["../../../src/Cloudflare/Local/SidecarServer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,eAAe,MAAM,qDAAqD,CAAC;AACvF,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,IAAI,MAAM,aAAa,CAAC;AACpC,OAAO,KAAK,eAAe,MAAM,sCAAsC,CAAC;AACxE,OAAO,KAAK,cAAc,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,KAAK,SAAS,MAAM,4BAA4B,CAAC;AACxD,OAAO,EACL,UAAU,EACV,gBAAgB,EAChB,OAAO,GACR,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,KAAK,qBAAqB,MAAM,6BAA6B,CAAC;AACrE,OAAO,KAAK,WAAW,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,MAAM,WAAW,GAAG,KAAK,CAAC,KAAK,CAC7B,WAAW,CAAC,gBAAgB,EAAE,EAC9B,qBAAqB,CAAC,WAAW,EAAE,CACpC,CAAC,IAAI,CACJ,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,EAC7B,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC,CAChD,CAAC;AAEF,MAAM,eAAe,GAAG,eAAe,CAAC,IAAI,CAC1C,KAAK,CAAC,OAAO,CACX,KAAK,CAAC,MAAM,CACV,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,EAAE,SAAS,EAAE,GACjB,KAAK,CAAC,CAAC,qBAAqB,CAAC,qBAAqB,CAAC;IACrD,MAAM,EAAE,UAAU,EAAE,GAAG,KAAK,CAAC,CAAC,cAAc,CAAC,cAAc,CAAC;IAC5D,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;IAC9B,OAAO,eAAe,CAAC,KAAK,CAAC;QAC3B,SAAS;QACT,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC;KACxC,CAAC,CAAC;AACL,CAAC,CAAC,CACH,CACF,EACD,KAAK,CAAC,OAAO,CACX,KAAK,CAAC,QAAQ,CAAC,WAAW,EAAE,eAAe,CAAC,KAAK,EAAE,UAAU,EAAE,CAAC,CACjE,CACF,CAAC;AAEF,MAAM,QAAQ,GAAG,KAAK,CAAC,YAAY,CACjC,KAAK,CAAC,YAAY,CAAC,eAAe,EAAE,SAAS,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAC7E,gBAAgB,CACjB,CAAC;AAEF,SAAS,CAAC,aAAa,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,aAAa,CAAC,CAAC,IAAI,CAC7D,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EACxB,MAAM,CAAC,MAAM,EACb,OAAO,CACR,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Secret.d.ts","sourceRoot":"","sources":["../../../src/Cloudflare/SecretsStore/Secret.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"Secret.d.ts","sourceRoot":"","sources":["../../../src/Cloudflare/SecretsStore/Secret.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAC;AAI5C,OAAO,KAAK,QAAQ,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,MAAM,MAAM,gBAAgB,GAAG;IAC7B;;OAEG;IACH,KAAK,EAAE;QACL,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;IACF;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,KAAK,EAAE,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACjC;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,MAAM,GAAG,QAAQ,CAC3B,gCAAgC,EAChC,gBAAgB,EAChB;IACE,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,SAAS,GAAG,QAAQ,GAAG,SAAS,CAAC;IACzC,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;CAC7B,EACD,KAAK,EACL,SAAS,CACV,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,eAAO,MAAM,MAAM;;EAEjB,CAAC;AAQH,eAAO,MAAM,mBAAmB,gLA+M7B,CAAC"}
|
|
@@ -3,6 +3,7 @@ import * as Effect from "effect/Effect";
|
|
|
3
3
|
import * as Option from "effect/Option";
|
|
4
4
|
import * as Redacted from "effect/Redacted";
|
|
5
5
|
import * as Stream from "effect/Stream";
|
|
6
|
+
import { AdoptPolicy } from "../../AdoptPolicy.js";
|
|
6
7
|
import { isResolved } from "../../Diff.js";
|
|
7
8
|
import * as Provider from "../../Provider.js";
|
|
8
9
|
import { Resource } from "../../Resource.js";
|
|
@@ -67,7 +68,8 @@ export const StoreSecretProvider = () => Provider.effect(Secret, Effect.gen(func
|
|
|
67
68
|
create: Effect.fn(function* ({ id, news }) {
|
|
68
69
|
const name = resolveName(id, news.name);
|
|
69
70
|
const scopes = resolveScopes(news.scopes);
|
|
70
|
-
const
|
|
71
|
+
const adoptEnabled = yield* Effect.serviceOption(AdoptPolicy).pipe(Effect.map(Option.getOrElse(() => false)));
|
|
72
|
+
const create = createStoreSecret({
|
|
71
73
|
accountId: news.store.accountId,
|
|
72
74
|
storeId: news.store.storeId,
|
|
73
75
|
body: [
|
|
@@ -79,15 +81,61 @@ export const StoreSecretProvider = () => Provider.effect(Secret, Effect.gen(func
|
|
|
79
81
|
},
|
|
80
82
|
],
|
|
81
83
|
});
|
|
82
|
-
|
|
84
|
+
// Only swallow the conflict when adoption is opted-in via
|
|
85
|
+
// `AdoptPolicy`; otherwise surface `SecretNameAlreadyExists`
|
|
86
|
+
// so the caller learns the secret already exists rather than
|
|
87
|
+
// silently taking ownership of someone else's secret.
|
|
88
|
+
const created = adoptEnabled
|
|
89
|
+
? yield* create.pipe(Effect.catchTag("SecretNameAlreadyExists", () => Effect.succeed(undefined)))
|
|
90
|
+
: yield* create;
|
|
91
|
+
if (created) {
|
|
92
|
+
const secret = created.result[0];
|
|
93
|
+
return {
|
|
94
|
+
secretId: secret.id,
|
|
95
|
+
secretName: secret.name,
|
|
96
|
+
storeId: secret.storeId,
|
|
97
|
+
accountId: news.store.accountId,
|
|
98
|
+
status: secret.status,
|
|
99
|
+
scopes,
|
|
100
|
+
comment: secret.comment ?? undefined,
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
// Adopt-on-conflict path. A secret with this name already
|
|
104
|
+
// exists in Cloudflare — typically because a previous deploy
|
|
105
|
+
// partially failed (e.g. the secret was created server-side
|
|
106
|
+
// but the response was lost so local state never recorded
|
|
107
|
+
// it). We re-fetch the existing secret and reconcile
|
|
108
|
+
// scopes/comment. The value itself cannot be read back from
|
|
109
|
+
// the API and we trust that an identically-named secret in
|
|
110
|
+
// the same store reflects the same intent (this matches how
|
|
111
|
+
// SecretsStore itself adopts the account-wide store).
|
|
112
|
+
const existing = yield* listStoreSecrets
|
|
113
|
+
.items({
|
|
114
|
+
accountId: news.store.accountId,
|
|
115
|
+
storeId: news.store.storeId,
|
|
116
|
+
})
|
|
117
|
+
.pipe(Stream.filter((s) => s.name === name), Stream.runHead, Effect.map(Option.getOrUndefined));
|
|
118
|
+
if (!existing) {
|
|
119
|
+
return yield* Effect.die(new Error(`Secret '${name}' reported as already existing in store ${news.store.storeId} but could not be found on lookup.`));
|
|
120
|
+
}
|
|
121
|
+
// listStoreSecrets does not surface scopes, so we have no way
|
|
122
|
+
// to detect drift; reconcile to the requested scopes/comment
|
|
123
|
+
// unconditionally. PATCH is cheap and idempotent.
|
|
124
|
+
const patched = yield* patchStoreSecret({
|
|
125
|
+
accountId: news.store.accountId,
|
|
126
|
+
storeId: news.store.storeId,
|
|
127
|
+
secretId: existing.id,
|
|
128
|
+
scopes,
|
|
129
|
+
comment: news.comment,
|
|
130
|
+
}).pipe(Effect.catchTag("SecretNotFound", () => Effect.succeed(undefined)));
|
|
83
131
|
return {
|
|
84
|
-
secretId:
|
|
85
|
-
secretName:
|
|
86
|
-
storeId:
|
|
132
|
+
secretId: existing.id,
|
|
133
|
+
secretName: existing.name,
|
|
134
|
+
storeId: existing.storeId,
|
|
87
135
|
accountId: news.store.accountId,
|
|
88
|
-
status:
|
|
136
|
+
status: patched?.status ?? existing.status,
|
|
89
137
|
scopes,
|
|
90
|
-
comment:
|
|
138
|
+
comment: patched?.comment ?? news.comment ?? existing.comment ?? undefined,
|
|
91
139
|
};
|
|
92
140
|
}),
|
|
93
141
|
update: Effect.fn(function* ({ news, olds = {}, output }) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Secret.js","sourceRoot":"","sources":["../../../src/Cloudflare/SecretsStore/Secret.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"Secret.js","sourceRoot":"","sources":["../../../src/Cloudflare/SecretsStore/Secret.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SecretsStore.d.ts","sourceRoot":"","sources":["../../../src/Cloudflare/SecretsStore/SecretsStore.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"SecretsStore.d.ts","sourceRoot":"","sources":["../../../src/Cloudflare/SecretsStore/SecretsStore.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,QAAQ,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD,MAAM,MAAM,YAAY,GAAG,QAAQ,CACjC,yBAAyB,EACzB,EAAE,EACF;IACE,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB,EACD,KAAK,EACL,SAAS,CACV,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,eAAO,MAAM,YAAY,yDAAoD,CAAC;AAE9E,eAAO,MAAM,oBAAoB,8MA4F9B,CAAC"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import * as secretsStore from "@distilled.cloud/cloudflare/secrets-store";
|
|
2
2
|
import * as Effect from "effect/Effect";
|
|
3
|
+
import * as Option from "effect/Option";
|
|
4
|
+
import { AdoptPolicy } from "../../AdoptPolicy.js";
|
|
3
5
|
import * as Provider from "../../Provider.js";
|
|
4
6
|
import { Resource } from "../../Resource.js";
|
|
5
7
|
import { CloudflareEnvironment } from "../CloudflareEnvironment.js";
|
|
@@ -36,28 +38,50 @@ export const SecretsStoreProvider = () => Provider.effect(SecretsStore, Effect.g
|
|
|
36
38
|
return {
|
|
37
39
|
stables: ["storeId", "storeName", "accountId"],
|
|
38
40
|
create: Effect.fn(function* () {
|
|
39
|
-
const
|
|
40
|
-
|
|
41
|
-
|
|
41
|
+
const adoptEnabled = yield* Effect.serviceOption(AdoptPolicy).pipe(Effect.map(Option.getOrElse(() => false)));
|
|
42
|
+
const adoptExisting = Effect.gen(function* () {
|
|
43
|
+
const stores = yield* listStores({ accountId });
|
|
42
44
|
const first = stores.result[0];
|
|
45
|
+
if (!first)
|
|
46
|
+
return undefined;
|
|
43
47
|
return {
|
|
44
48
|
storeId: first.id,
|
|
45
49
|
storeName: first.name,
|
|
46
50
|
accountId,
|
|
47
51
|
};
|
|
52
|
+
});
|
|
53
|
+
// Cloudflare allows exactly one Secrets Store per account, so
|
|
54
|
+
// any account that's been touched before may already have one.
|
|
55
|
+
// Only adopt it if the caller opted in via `AdoptPolicy`,
|
|
56
|
+
// otherwise let `createStore` surface MaximumStoresExceeded.
|
|
57
|
+
if (adoptEnabled) {
|
|
58
|
+
const adopted = yield* adoptExisting;
|
|
59
|
+
if (adopted)
|
|
60
|
+
return adopted;
|
|
48
61
|
}
|
|
49
|
-
|
|
50
|
-
const response = yield* createStore({
|
|
62
|
+
const create = createStore({
|
|
51
63
|
accountId,
|
|
52
64
|
//`default_secrets_store` is the name cloudflare uses to create a secret store
|
|
53
65
|
body: [{ name: "default_secrets_store" }],
|
|
54
66
|
});
|
|
55
|
-
const
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
67
|
+
const response = adoptEnabled
|
|
68
|
+
? yield* create.pipe(
|
|
69
|
+
// A concurrent process (or a previous partially-failed
|
|
70
|
+
// deploy) may have raced us between list and create.
|
|
71
|
+
Effect.catchTag("MaximumStoresExceeded", () => Effect.succeed(undefined)))
|
|
72
|
+
: yield* create;
|
|
73
|
+
if (response) {
|
|
74
|
+
const store = response.result[0];
|
|
75
|
+
return {
|
|
76
|
+
storeId: store.id,
|
|
77
|
+
storeName: store.name,
|
|
78
|
+
accountId,
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
const recovered = yield* adoptExisting;
|
|
82
|
+
if (recovered)
|
|
83
|
+
return recovered;
|
|
84
|
+
return yield* Effect.die(new Error(`Cloudflare reported MaximumStoresExceeded for account ${accountId} but no store could be listed.`));
|
|
61
85
|
}),
|
|
62
86
|
update: Effect.fn(function* ({ output }) {
|
|
63
87
|
return output;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SecretsStore.js","sourceRoot":"","sources":["../../../src/Cloudflare/SecretsStore/SecretsStore.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,YAAY,MAAM,2CAA2C,CAAC;AAC1E,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,QAAQ,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAepE;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,QAAQ,CAAe,yBAAyB,CAAC,CAAC;AAE9E,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAAG,EAAE,CACvC,QAAQ,CAAC,MAAM,CACb,YAAY,EACZ,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC,CAAC,qBAAqB,CAAC;IACnD,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,YAAY,CAAC,WAAW,CAAC;IACpD,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,YAAY,CAAC,UAAU,CAAC;IAElD,OAAO;QACL,OAAO,EAAE,CAAC,SAAS,EAAE,WAAW,EAAE,WAAW,CAAC;QAC9C,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC;YACzB,MAAM,
|
|
1
|
+
{"version":3,"file":"SecretsStore.js","sourceRoot":"","sources":["../../../src/Cloudflare/SecretsStore/SecretsStore.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import * as SecretsStore from "@distilled.cloud/cloudflare/secrets-store";
|
|
2
2
|
import * as workers from "@distilled.cloud/cloudflare/workers";
|
|
3
|
+
import * as Output from "alchemy/Output";
|
|
3
4
|
import * as Effect from "effect/Effect";
|
|
4
5
|
import * as Layer from "effect/Layer";
|
|
5
6
|
import * as HttpClient from "effect/unstable/http/HttpClient";
|
|
@@ -9,6 +10,40 @@ import * as Cloudflare from "../../Cloudflare/Providers.ts";
|
|
|
9
10
|
import * as CloudflareEnvironment from "../CloudflareEnvironment.ts";
|
|
10
11
|
import { AlchemyContext } from "../../AlchemyContext.ts";
|
|
11
12
|
import { State } from "../../State/State.ts";
|
|
13
|
+
export interface BootstrapOptions {
|
|
14
|
+
/**
|
|
15
|
+
* The name of the script to use for the state store.
|
|
16
|
+
* @default "alchemy-state-store"
|
|
17
|
+
*/
|
|
18
|
+
workerName?: string;
|
|
19
|
+
/**
|
|
20
|
+
* Re-run the deploy even if the worker already exists in Cloudflare.
|
|
21
|
+
*
|
|
22
|
+
* Without this flag, an already-deployed worker is **adopted**: the
|
|
23
|
+
* auth-token secret is re-fetched via an edge probe and the local
|
|
24
|
+
* credentials file is refreshed, but no new code is uploaded. With
|
|
25
|
+
* `force: true` the full deploy runs again, redeploying the worker
|
|
26
|
+
* code and reconciling every resource in place.
|
|
27
|
+
*/
|
|
28
|
+
force?: boolean;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Manually bootstrap (or repair) the Cloudflare-hosted HTTP State
|
|
32
|
+
* Store. Used by `alchemy bootstrap cloudflare`.
|
|
33
|
+
*
|
|
34
|
+
* The flow mirrors what {@link state} does on first use, but is
|
|
35
|
+
* exposed as a standalone effect so users can trigger it (or recover
|
|
36
|
+
* from a partially-failed previous deploy) explicitly:
|
|
37
|
+
*
|
|
38
|
+
* 1. Resume any in-progress local `CloudflareStateStore` stack.
|
|
39
|
+
* 2. If the worker already exists in Cloudflare and `force` is not
|
|
40
|
+
* set, adopt it: read the auth token via an edge-preview probe
|
|
41
|
+
* and persist credentials.
|
|
42
|
+
* 3. Otherwise run the full deploy with adoption enabled, sync local
|
|
43
|
+
* state into the deployed store, persist credentials, and delete
|
|
44
|
+
* the local stack.
|
|
45
|
+
*/
|
|
46
|
+
export declare const bootstrap: (options?: BootstrapOptions) => Effect.Effect<void, AlchemyContext | import("effect/PlatformError").PlatformError | Config.ConfigError | AuthError | import("../../Stage.ts").Stage | import("../../State/State.ts").StateStoreError | Output.MissingSourceError | Output.InvalidReferenceError | import("@distilled.cloud/cloudflare").DefaultErrors | workers.InvalidRoute | SecretsStore.InvalidAccountId, AlchemyContext | import("effect/Path").Path | import("effect/FileSystem").FileSystem | HttpClient.HttpClient | import("../../Cli/Cli.ts").Cli | Cloudflare.Credentials | CloudflareEnvironment.CloudflareEnvironment>;
|
|
12
47
|
export declare const state: (props?: {
|
|
13
48
|
/**
|
|
14
49
|
* The name of the script to use for the state store.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"State.d.ts","sourceRoot":"","sources":["../../../src/Cloudflare/StateStore/State.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,YAAY,MAAM,2CAA2C,CAAC;AAC1E,OAAO,KAAK,OAAO,MAAM,qCAAqC,CAAC;
|
|
1
|
+
{"version":3,"file":"State.d.ts","sourceRoot":"","sources":["../../../src/Cloudflare/StateStore/State.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,YAAY,MAAM,2CAA2C,CAAC;AAC1E,OAAO,KAAK,OAAO,MAAM,qCAAqC,CAAC;AAC/D,OAAO,KAAK,MAAM,MAAM,gBAAgB,CAAC;AACzC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAEtC,OAAO,KAAK,UAAU,MAAM,iCAAiC,CAAC;AAE9D,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAGvD,OAAO,KAAK,UAAU,MAAM,+BAA+B,CAAC;AAO5D,OAAO,KAAK,qBAAqB,MAAM,6BAA6B,CAAC;AAGrE,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAEzD,OAAO,EAAE,KAAK,EAAqB,MAAM,sBAAsB,CAAC;AAWhE,MAAM,WAAW,gBAAgB;IAC/B;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;;;;;OAQG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,SAAS,GAAI,UAAS,gBAAqB,wkBA+DpD,CAAC;AAEL,eAAO,MAAM,KAAK,GAAI,QAAQ;IAC5B;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,ySAuHE,CAAC;AAyIJ;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,mBAAmB;;;wsBA6D7B,CAAC"}
|