alchemy 2.0.0-beta.27 → 2.0.0-beta.29
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 +1 -1
- package/bin/alchemy.js.map +1 -1
- package/bin/alchemy.ts +1 -1
- package/bin/exec.js +185 -93
- package/bin/exec.js.map +1 -1
- package/bin/exec.ts +1 -1
- package/lib/AWS/IAM/SAMLProvider.d.ts +2 -1
- package/lib/AWS/IAM/SAMLProvider.d.ts.map +1 -1
- package/lib/AWS/IAM/SAMLProvider.js +30 -9
- package/lib/AWS/IAM/SAMLProvider.js.map +1 -1
- package/lib/Apply.d.ts.map +1 -1
- package/lib/Apply.js +55 -11
- package/lib/Apply.js.map +1 -1
- package/lib/Cli/commands/bootstrap.d.ts +1 -1
- package/lib/Cli/commands/bootstrap.d.ts.map +1 -1
- package/lib/Cli/commands/bootstrap.js +2 -1
- package/lib/Cli/commands/bootstrap.js.map +1 -1
- package/lib/Cli/exec.d.ts.map +1 -1
- package/lib/Cli/exec.js +2 -2
- package/lib/Cli/exec.js.map +1 -1
- package/lib/Cloudflare/Access.d.ts +19 -0
- package/lib/Cloudflare/Access.d.ts.map +1 -0
- package/lib/Cloudflare/Access.js +64 -0
- package/lib/Cloudflare/Access.js.map +1 -0
- package/lib/Cloudflare/AiGateway/AiGateway.d.ts +244 -0
- package/lib/Cloudflare/AiGateway/AiGateway.d.ts.map +1 -0
- package/lib/Cloudflare/AiGateway/AiGateway.js +269 -0
- package/lib/Cloudflare/AiGateway/AiGateway.js.map +1 -0
- package/lib/Cloudflare/AiGateway/AiGatewayBinding.d.ts +103 -0
- package/lib/Cloudflare/AiGateway/AiGatewayBinding.d.ts.map +1 -0
- package/lib/Cloudflare/AiGateway/AiGatewayBinding.js +99 -0
- package/lib/Cloudflare/AiGateway/AiGatewayBinding.js.map +1 -0
- package/lib/Cloudflare/AiGateway/index.d.ts +3 -0
- package/lib/Cloudflare/AiGateway/index.d.ts.map +1 -0
- package/lib/Cloudflare/AiGateway/index.js +3 -0
- package/lib/Cloudflare/AiGateway/index.js.map +1 -0
- package/lib/Cloudflare/EdgeSession.d.ts +2 -1
- package/lib/Cloudflare/EdgeSession.d.ts.map +1 -1
- package/lib/Cloudflare/EdgeSession.js +8 -4
- package/lib/Cloudflare/EdgeSession.js.map +1 -1
- package/lib/Cloudflare/Providers.d.ts +2 -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/StateStore/Api.d.ts +10 -0
- package/lib/Cloudflare/StateStore/Api.d.ts.map +1 -1
- package/lib/Cloudflare/StateStore/Api.js +12 -1
- package/lib/Cloudflare/StateStore/Api.js.map +1 -1
- package/lib/Cloudflare/StateStore/State.d.ts +4 -3
- package/lib/Cloudflare/StateStore/State.d.ts.map +1 -1
- package/lib/Cloudflare/StateStore/State.js +103 -13
- package/lib/Cloudflare/StateStore/State.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/Worker.d.ts +2 -1
- package/lib/Cloudflare/Workers/Worker.d.ts.map +1 -1
- package/lib/Cloudflare/Workers/Worker.js +40 -31
- package/lib/Cloudflare/Workers/Worker.js.map +1 -1
- 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/Plan.d.ts +8 -0
- package/lib/Plan.d.ts.map +1 -1
- package/lib/Plan.js +12 -5
- package/lib/Plan.js.map +1 -1
- package/lib/State/HttpStateApi.d.ts +19 -1
- package/lib/State/HttpStateApi.d.ts.map +1 -1
- package/lib/State/HttpStateApi.js +18 -1
- package/lib/State/HttpStateApi.js.map +1 -1
- package/lib/Util/cached-function.d.ts +38 -0
- package/lib/Util/cached-function.d.ts.map +1 -0
- package/lib/Util/cached-function.js +53 -0
- package/lib/Util/cached-function.js.map +1 -0
- package/lib/Util/index.d.ts +0 -1
- package/lib/Util/index.d.ts.map +1 -1
- package/lib/Util/index.js +0 -1
- package/lib/Util/index.js.map +1 -1
- package/lib/Util/scc.d.ts +12 -0
- package/lib/Util/scc.d.ts.map +1 -0
- package/lib/Util/scc.js +81 -0
- package/lib/Util/scc.js.map +1 -0
- package/lib/tsconfig.test.tsbuildinfo +1 -1
- package/package.json +8 -2
- package/src/AWS/IAM/SAMLProvider.ts +47 -18
- package/src/Apply.ts +72 -8
- package/src/Cli/commands/bootstrap.ts +2 -0
- package/src/Cli/exec.ts +3 -2
- package/src/Cloudflare/Access.ts +110 -0
- package/src/Cloudflare/AiGateway/AiGateway.ts +526 -0
- package/src/Cloudflare/AiGateway/AiGatewayBinding.ts +190 -0
- package/src/Cloudflare/AiGateway/index.ts +2 -0
- package/src/Cloudflare/EdgeSession.ts +15 -5
- package/src/Cloudflare/Providers.ts +7 -0
- package/src/Cloudflare/StateStore/Api.ts +18 -0
- package/src/Cloudflare/StateStore/State.ts +130 -12
- package/src/Cloudflare/Workers/InferEnv.ts +7 -5
- package/src/Cloudflare/Workers/Worker.ts +44 -33
- package/src/Cloudflare/index.ts +1 -0
- package/src/Plan.ts +21 -5
- package/src/State/HttpStateApi.ts +22 -1
- package/src/Util/cached-function.ts +75 -0
- package/src/Util/index.ts +0 -1
- package/src/Util/scc.ts +89 -0
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
/// <reference types="@cloudflare/workers-types" />
|
|
2
|
+
import * as Data from "effect/Data";
|
|
3
|
+
import * as Effect from "effect/Effect";
|
|
4
|
+
import * as Layer from "effect/Layer";
|
|
5
|
+
import * as Option from "effect/Option";
|
|
6
|
+
import * as Binding from "../../Binding.js";
|
|
7
|
+
import { isWorker, WorkerEnvironment } from "../Workers/Worker.js";
|
|
8
|
+
/**
|
|
9
|
+
* Error raised by AI Gateway runtime operations.
|
|
10
|
+
*/
|
|
11
|
+
export class AiGatewayError extends Data.TaggedError("AiGatewayError") {
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Binding service that turns an {@link AiGatewayResource} resource into a typed
|
|
15
|
+
* {@link AiGatewayClient} for Worker runtime code.
|
|
16
|
+
*
|
|
17
|
+
* @section Calling AI Gateway
|
|
18
|
+
* Bind the gateway during the Worker's init phase, then use `run` or `getUrl`
|
|
19
|
+
* from request handlers.
|
|
20
|
+
*
|
|
21
|
+
* @example Run through a gateway
|
|
22
|
+
* ```typescript
|
|
23
|
+
* const aiGateway = yield* Cloudflare.AiGatewayBinding.bind(gateway);
|
|
24
|
+
*
|
|
25
|
+
* return {
|
|
26
|
+
* fetch: Effect.gen(function* () {
|
|
27
|
+
* return yield* aiGateway.run({
|
|
28
|
+
* provider: "workers-ai",
|
|
29
|
+
* endpoint: "@cf/meta/llama-3.1-8b-instruct",
|
|
30
|
+
* headers: { "content-type": "application/json" },
|
|
31
|
+
* query: { prompt: "Write a concise status update" },
|
|
32
|
+
* });
|
|
33
|
+
* }),
|
|
34
|
+
* };
|
|
35
|
+
* ```
|
|
36
|
+
*
|
|
37
|
+
* Provide {@link AiGatewayBindingLive} in the worker's runtime layer to
|
|
38
|
+
* resolve the underlying Cloudflare AI binding at request time.
|
|
39
|
+
*/
|
|
40
|
+
export class AiGatewayBinding extends Binding.Service()("Cloudflare.AiGateway.Binding") {
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Runtime layer for {@link AiGatewayBinding}.
|
|
44
|
+
*/
|
|
45
|
+
export const AiGatewayBindingLive = Layer.effect(AiGatewayBinding, Effect.gen(function* () {
|
|
46
|
+
const Policy = yield* AiGatewayBindingPolicy;
|
|
47
|
+
return Effect.fn(function* (gateway) {
|
|
48
|
+
yield* Policy(gateway);
|
|
49
|
+
// Capture the gatewayId accessor (which requires WorkerEnvironment) but
|
|
50
|
+
// don't resolve it here — that happens lazily at runtime when each
|
|
51
|
+
// method is invoked. Resolving eagerly would require WorkerEnvironment
|
|
52
|
+
// at deploy time, where it's intentionally not provided.
|
|
53
|
+
const gatewayIdAccessor = yield* gateway.gatewayId;
|
|
54
|
+
const ai = yield* Effect.serviceOption(WorkerEnvironment).pipe(Effect.map(Option.getOrUndefined), Effect.map((env) => env?.[gateway.LogicalId]), Effect.cached);
|
|
55
|
+
const runtimeGateway = yield* Effect.zip(ai, gatewayIdAccessor).pipe(Effect.map(([ai, gatewayId]) => ai.gateway(gatewayId)), Effect.cached);
|
|
56
|
+
const use = (fn) => runtimeGateway.pipe(Effect.flatMap((gateway) => tryPromise(() => fn(gateway))));
|
|
57
|
+
return {
|
|
58
|
+
raw: ai,
|
|
59
|
+
gateway: runtimeGateway,
|
|
60
|
+
patchLog: (logId, data) => use((gateway) => gateway.patchLog(logId, data)),
|
|
61
|
+
getLog: (logId) => use((gateway) => gateway.getLog(logId)),
|
|
62
|
+
getUrl: (provider) => use((gateway) => gateway.getUrl(provider)),
|
|
63
|
+
run: (data, options) => use((gateway) => gateway.run(data, options)),
|
|
64
|
+
};
|
|
65
|
+
});
|
|
66
|
+
}));
|
|
67
|
+
/**
|
|
68
|
+
* Deploy-time policy service that attaches an AI binding to Workers.
|
|
69
|
+
*/
|
|
70
|
+
export class AiGatewayBindingPolicy extends Binding.Policy()("Cloudflare.AiGateway.Binding") {
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Live deploy-time policy layer for {@link AiGatewayBindingPolicy}.
|
|
74
|
+
*/
|
|
75
|
+
export const AiGatewayBindingPolicyLive = AiGatewayBindingPolicy.layer.succeed(Effect.fn(function* (host, gateway) {
|
|
76
|
+
if (isWorker(host)) {
|
|
77
|
+
yield* host.bind(gateway.LogicalId, {
|
|
78
|
+
bindings: [
|
|
79
|
+
{
|
|
80
|
+
type: "ai",
|
|
81
|
+
name: gateway.LogicalId,
|
|
82
|
+
},
|
|
83
|
+
],
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
else {
|
|
87
|
+
return yield* Effect.die(new Error(`AiGatewayBinding does not support runtime '${host.Type}'`));
|
|
88
|
+
}
|
|
89
|
+
}));
|
|
90
|
+
const tryPromise = (fn) => Effect.tryPromise({
|
|
91
|
+
try: fn,
|
|
92
|
+
catch: (error) => new AiGatewayError({
|
|
93
|
+
message: error instanceof Error
|
|
94
|
+
? error.message
|
|
95
|
+
: "Unknown AI Gateway runtime error",
|
|
96
|
+
cause: error,
|
|
97
|
+
}),
|
|
98
|
+
});
|
|
99
|
+
//# sourceMappingURL=AiGatewayBinding.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AiGatewayBinding.js","sourceRoot":"","sources":["../../../src/Cloudflare/AiGateway/AiGatewayBinding.ts"],"names":[],"mappings":"AAAA,mDAAmD;AAEnD,OAAO,KAAK,IAAI,MAAM,aAAa,CAAC;AACpC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,OAAO,MAAM,kBAAkB,CAAC;AAE5C,OAAO,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAGnE;;GAEG;AACH,MAAM,OAAO,cAAe,SAAQ,IAAI,CAAC,WAAW,CAAC,gBAAgB,CASnE;CAAG;AA8CL;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,OAAO,gBAAiB,SAAQ,OAAO,CAAC,OAAO,EAGlD,CAAC,8BAA8B,CAAC;CAAG;AAEtC;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,CAAC,MAAM,CAC9C,gBAAgB,EAChB,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,sBAAsB,CAAC;IAE7C,OAAO,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,OAA0B;QACpD,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACvB,wEAAwE;QACxE,mEAAmE;QACnE,uEAAuE;QACvE,yDAAyD;QACzD,MAAM,iBAAiB,GAAG,KAAK,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC;QACnD,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAC5D,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,cAAc,CAAC,EACjC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,SAAS,CAAQ,CAAC,EACpD,MAAM,CAAC,MAAM,CACd,CAAC;QACF,MAAM,cAAc,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,iBAAiB,CAAC,CAAC,IAAI,CAClE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,EACtD,MAAM,CAAC,MAAM,CACd,CAAC;QAEF,MAAM,GAAG,GAAG,CACV,EAAsC,EACe,EAAE,CACvD,cAAc,CAAC,IAAI,CACjB,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAC3D,CAAC;QAEJ,OAAO;YACL,GAAG,EAAE,EAAE;YACP,OAAO,EAAE,cAAc;YACvB,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CACxB,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YACjD,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC1D,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAChE,GAAG,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;SAC3C,CAAC;IAC9B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CACH,CAAC;AAEF;;GAEG;AACH,MAAM,OAAO,sBAAuB,SAAQ,OAAO,CAAC,MAAM,EAGvD,CAAC,8BAA8B,CAAC;CAAG;AAEtC;;GAEG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,sBAAsB,CAAC,KAAK,CAAC,OAAO,CAC5E,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,IAAkB,EAAE,OAA0B;IACjE,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACnB,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE;YAClC,QAAQ,EAAE;gBACR;oBACE,IAAI,EAAE,IAAI;oBACV,IAAI,EAAE,OAAO,CAAC,SAAS;iBACxB;aACF;SACF,CAAC,CAAC;IACL,CAAC;SAAM,CAAC;QACN,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,CACtB,IAAI,KAAK,CAAC,8CAA8C,IAAI,CAAC,IAAI,GAAG,CAAC,CACtE,CAAC;IACJ,CAAC;AACH,CAAC,CAAC,CACH,CAAC;AAEF,MAAM,UAAU,GAAG,CACjB,EAAoB,EACc,EAAE,CACpC,MAAM,CAAC,UAAU,CAAC;IAChB,GAAG,EAAE,EAAE;IACP,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CACf,IAAI,cAAc,CAAC;QACjB,OAAO,EACL,KAAK,YAAY,KAAK;YACpB,CAAC,CAAC,KAAK,CAAC,OAAO;YACf,CAAC,CAAC,kCAAkC;QACxC,KAAK,EAAE,KAAK;KACb,CAAC;CACL,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Cloudflare/AiGateway/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/Cloudflare/AiGateway/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC"}
|
|
@@ -2,6 +2,7 @@ import { Credentials } from "@distilled.cloud/cloudflare/Credentials";
|
|
|
2
2
|
import * as workers from "@distilled.cloud/cloudflare/workers";
|
|
3
3
|
import * as Effect from "effect/Effect";
|
|
4
4
|
import * as HttpClient from "effect/unstable/http/HttpClient";
|
|
5
|
+
import { Access } from "./Access.ts";
|
|
5
6
|
import { CloudflareEnvironment } from "./CloudflareEnvironment.ts";
|
|
6
7
|
/**
|
|
7
8
|
* A "remote binding" as understood by the Cloudflare Workers
|
|
@@ -48,6 +49,6 @@ export interface EdgeSessionHandle {
|
|
|
48
49
|
* sending requests with the returned preview token and expire soon
|
|
49
50
|
* after. Nothing is deployed or billed.
|
|
50
51
|
*/
|
|
51
|
-
export declare const createEdgeSession: (options: EdgeSessionOptions) => Effect.Effect<EdgeSessionHandle, EdgeSessionError, CloudflareEnvironment | HttpClient.HttpClient | Credentials>;
|
|
52
|
+
export declare const createEdgeSession: (options: EdgeSessionOptions) => Effect.Effect<EdgeSessionHandle, EdgeSessionError, CloudflareEnvironment | HttpClient.HttpClient | Credentials | Access>;
|
|
52
53
|
export {};
|
|
53
54
|
//# sourceMappingURL=EdgeSession.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EdgeSession.d.ts","sourceRoot":"","sources":["../../src/Cloudflare/EdgeSession.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,yCAAyC,CAAC;AACtE,OAAO,KAAK,OAAO,MAAM,qCAAqC,CAAC;AAE/D,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,UAAU,MAAM,iCAAiC,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAEnE;;;;GAIG;AACH,KAAK,YAAY,GAAG,WAAW,CAC7B,WAAW,CAAC,OAAO,CAAC,8BAA8B,CAAC,UAAU,CAAC,CAAC,CAChE,CAAC;AACF,MAAM,MAAM,WAAW,GAAG,WAAW,CACnC,WAAW,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,CACtC,CAAC,MAAM,CAAC,CAAC;;;;AAEV,qBAAa,gBAAiB,SAAQ,sBAAqC;IACzE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;CAC1B,CAAC;CAAG;AAEL,MAAM,WAAW,kBAAkB;IACjC;;;OAGG;IACH,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,oEAAoE;IACpE,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC;IACpC,sDAAsD;IACtD,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC,WAAW,CAAC,CAAC;IAC9C,4BAA4B;IAC5B,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;CACrC;AAED;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC1C;AAsED;;;;;;;GAOG;AACH,eAAO,MAAM,iBAAiB,GAC5B,SAAS,kBAAkB,KAC1B,MAAM,CAAC,MAAM,CACd,iBAAiB,EACjB,gBAAgB,EAChB,qBAAqB,GAAG,UAAU,CAAC,UAAU,GAAG,WAAW,
|
|
1
|
+
{"version":3,"file":"EdgeSession.d.ts","sourceRoot":"","sources":["../../src/Cloudflare/EdgeSession.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,yCAAyC,CAAC;AACtE,OAAO,KAAK,OAAO,MAAM,qCAAqC,CAAC;AAE/D,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,UAAU,MAAM,iCAAiC,CAAC;AAC9D,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAEnE;;;;GAIG;AACH,KAAK,YAAY,GAAG,WAAW,CAC7B,WAAW,CAAC,OAAO,CAAC,8BAA8B,CAAC,UAAU,CAAC,CAAC,CAChE,CAAC;AACF,MAAM,MAAM,WAAW,GAAG,WAAW,CACnC,WAAW,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,CACtC,CAAC,MAAM,CAAC,CAAC;;;;AAEV,qBAAa,gBAAiB,SAAQ,sBAAqC;IACzE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;CAC1B,CAAC;CAAG;AAEL,MAAM,WAAW,kBAAkB;IACjC;;;OAGG;IACH,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,oEAAoE;IACpE,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC;IACpC,sDAAsD;IACtD,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC,WAAW,CAAC,CAAC;IAC9C,4BAA4B;IAC5B,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;CACrC;AAED;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC1C;AAsED;;;;;;;GAOG;AACH,eAAO,MAAM,iBAAiB,GAC5B,SAAS,kBAAkB,KAC1B,MAAM,CAAC,MAAM,CACd,iBAAiB,EACjB,gBAAgB,EAChB,qBAAqB,GAAG,UAAU,CAAC,UAAU,GAAG,WAAW,GAAG,MAAM,CAuBJ,CAAC"}
|
|
@@ -3,6 +3,7 @@ import * as workers from "@distilled.cloud/cloudflare/workers";
|
|
|
3
3
|
import * as Data from "effect/Data";
|
|
4
4
|
import * as Effect from "effect/Effect";
|
|
5
5
|
import * as HttpClient from "effect/unstable/http/HttpClient";
|
|
6
|
+
import { Access } from "./Access.js";
|
|
6
7
|
import { CloudflareEnvironment } from "./CloudflareEnvironment.js";
|
|
7
8
|
export class EdgeSessionError extends Data.TaggedError("EdgeSessionError") {
|
|
8
9
|
}
|
|
@@ -66,13 +67,16 @@ const workerHost = (scriptName) => Effect.gen(function* () {
|
|
|
66
67
|
* after. Nothing is deployed or billed.
|
|
67
68
|
*/
|
|
68
69
|
export const createEdgeSession = (options) => Effect.gen(function* () {
|
|
69
|
-
const [{ previewToken },
|
|
70
|
+
const [{ previewToken }, { url, headers }] = yield* Effect.all([
|
|
70
71
|
createUploadToken.pipe(Effect.flatMap((t) => uploadScript(options, t))),
|
|
71
|
-
workerHost(options.scriptName)
|
|
72
|
+
workerHost(options.scriptName).pipe(Effect.flatMap(Effect.fn(function* (host) {
|
|
73
|
+
const headers = yield* Access.use((access) => access.getAccessHeaders(host));
|
|
74
|
+
return { url: `https://${host}`, headers };
|
|
75
|
+
}))),
|
|
72
76
|
], { concurrency: "unbounded" });
|
|
73
77
|
return {
|
|
74
|
-
url
|
|
75
|
-
headers: { "cf-workers-preview-token": previewToken },
|
|
78
|
+
url,
|
|
79
|
+
headers: { ...headers, "cf-workers-preview-token": previewToken },
|
|
76
80
|
};
|
|
77
81
|
}).pipe((e) => wrap(e, "Failed to create edge preview session"));
|
|
78
82
|
//# sourceMappingURL=EdgeSession.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EdgeSession.js","sourceRoot":"","sources":["../../src/Cloudflare/EdgeSession.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"EdgeSession.js","sourceRoot":"","sources":["../../src/Cloudflare/EdgeSession.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,7 @@ import * as Layer from "effect/Layer";
|
|
|
2
2
|
import { Command } from "../Build/Command.ts";
|
|
3
3
|
import * as Provider from "../Provider.ts";
|
|
4
4
|
import { Random } from "../Random.ts";
|
|
5
|
+
import * as Access from "./Access.ts";
|
|
5
6
|
import * as CloudflareEnvironment from "./CloudflareEnvironment.ts";
|
|
6
7
|
import * as Containers from "./Container/index.ts";
|
|
7
8
|
export { Credentials } from "@distilled.cloud/cloudflare/Credentials";
|
|
@@ -12,5 +13,5 @@ export type ProviderRequirements = Layer.Services<ReturnType<typeof providers>>;
|
|
|
12
13
|
/**
|
|
13
14
|
* Cloudflare providers, bindings, and credentials for Worker-based stacks.
|
|
14
15
|
*/
|
|
15
|
-
export declare const providers: () => Layer.Layer<Provider.Provider<Random> | Provider.Provider<Command> | Containers.Credentials | CloudflareEnvironment.CloudflareEnvironment | Providers, never, any>;
|
|
16
|
+
export declare const providers: () => Layer.Layer<Provider.Provider<Random> | Provider.Provider<Command> | Access.Access | Containers.Credentials | CloudflareEnvironment.CloudflareEnvironment | Providers, never, any>;
|
|
16
17
|
//# sourceMappingURL=Providers.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Providers.d.ts","sourceRoot":"","sources":["../../src/Cloudflare/Providers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAE9C,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAkB,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"Providers.d.ts","sourceRoot":"","sources":["../../src/Cloudflare/Providers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAE9C,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAkB,MAAM,cAAc,CAAC;AACtD,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AAKtC,OAAO,KAAK,qBAAqB,MAAM,4BAA4B,CAAC;AACpE,OAAO,KAAK,UAAU,MAAM,sBAAsB,CAAC;AAUnD,OAAO,EAAE,WAAW,EAAE,MAAM,yCAAyC,CAAC;;AAEtE,qBAAa,SAAU,SAAQ,cAE9B;CAAG;AAEJ,MAAM,MAAM,oBAAoB,GAAG,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAO,SAAS,CAAC,CAAC,CAAC;AAEhF;;GAEG;AACH,eAAO,MAAM,SAAS,0LAgEnB,CAAC"}
|
|
@@ -3,6 +3,8 @@ import { Command } from "../Build/Command.js";
|
|
|
3
3
|
import * as Build from "../Build/index.js";
|
|
4
4
|
import * as Provider from "../Provider.js";
|
|
5
5
|
import { Random, RandomProvider } from "../Random.js";
|
|
6
|
+
import * as Access from "./Access.js";
|
|
7
|
+
import * as AiGateway from "./AiGateway/index.js";
|
|
6
8
|
import * as ApiToken from "./ApiToken/index.js";
|
|
7
9
|
import * as Artifacts from "./Artifacts/index.js";
|
|
8
10
|
import { CloudflareAuth } from "./Auth/AuthProvider.js";
|
|
@@ -25,6 +27,8 @@ export class Providers extends Provider.ProviderCollection()("Cloudflare") {
|
|
|
25
27
|
export const providers = () => Layer.effect(Providers, Provider.collection([
|
|
26
28
|
ApiToken.AccountApiToken,
|
|
27
29
|
ApiToken.UserApiToken,
|
|
30
|
+
AiGateway.AiGateway,
|
|
31
|
+
AiGateway.AiGatewayBindingPolicy,
|
|
28
32
|
Artifacts.ArtifactsBindingPolicy,
|
|
29
33
|
Command,
|
|
30
34
|
Containers.Container,
|
|
@@ -45,5 +49,5 @@ export const providers = () => Layer.effect(Providers, Provider.collection([
|
|
|
45
49
|
Workers.FetchPolicy,
|
|
46
50
|
Workers.Worker,
|
|
47
51
|
Workflows.WorkflowResource,
|
|
48
|
-
])).pipe(Layer.provide(Layer.mergeAll(ApiToken.AccountApiTokenProvider(), ApiToken.UserApiTokenProvider(), Artifacts.ArtifactsBindingPolicyLive, Containers.ContainerProvider(), D1.D1ConnectionPolicyLive, D1.DatabaseProvider(), KV.KVNamespaceBindingPolicyLive, KV.KVNamespaceProvider(), Queue.QueueBindingPolicyLive, Queue.QueueProvider(), Queue.QueueConsumerProvider(), R2.R2BucketBindingPolicyLive, R2.R2BucketProvider(), SecretsStore.SecretBindingPolicyLive, SecretsStore.SecretsStoreProvider(), SecretsStore.StoreSecretProvider(), Workers.BindWorkerPolicyLive, Workers.FetchPolicyLive, Workers.WorkerProvider(), Workflows.WorkflowProvider())), Layer.provideMerge(Layer.mergeAll(Build.CommandProvider(), RandomProvider())), Layer.provideMerge(Credentials.fromAuthProvider()), Layer.provideMerge(CloudflareEnvironment.fromProfile()), Layer.provideMerge(CloudflareAuth), Layer.orDie);
|
|
52
|
+
])).pipe(Layer.provide(Layer.mergeAll(ApiToken.AccountApiTokenProvider(), ApiToken.UserApiTokenProvider(), AiGateway.AiGatewayProvider(), AiGateway.AiGatewayBindingPolicyLive, Artifacts.ArtifactsBindingPolicyLive, Containers.ContainerProvider(), D1.D1ConnectionPolicyLive, D1.DatabaseProvider(), KV.KVNamespaceBindingPolicyLive, KV.KVNamespaceProvider(), Queue.QueueBindingPolicyLive, Queue.QueueProvider(), Queue.QueueConsumerProvider(), R2.R2BucketBindingPolicyLive, R2.R2BucketProvider(), SecretsStore.SecretBindingPolicyLive, SecretsStore.SecretsStoreProvider(), SecretsStore.StoreSecretProvider(), Workers.BindWorkerPolicyLive, Workers.FetchPolicyLive, Workers.WorkerProvider(), Workflows.WorkflowProvider())), Layer.provideMerge(Layer.mergeAll(Build.CommandProvider(), RandomProvider())), Layer.provideMerge(Credentials.fromAuthProvider()), Layer.provideMerge(CloudflareEnvironment.fromProfile()), Layer.provideMerge(CloudflareAuth), Layer.provideMerge(Access.AccessLive), Layer.orDie);
|
|
49
53
|
//# sourceMappingURL=Providers.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Providers.js","sourceRoot":"","sources":["../../src/Cloudflare/Providers.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Providers.js","sourceRoot":"","sources":["../../src/Cloudflare/Providers.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,15 @@
|
|
|
1
1
|
import * as Effect from "effect/Effect";
|
|
2
2
|
export declare const STATE_STORE_SCRIPT_NAME: "alchemy-state-store";
|
|
3
|
+
/**
|
|
4
|
+
* Version of the deployed Cloudflare State Store worker contract.
|
|
5
|
+
*
|
|
6
|
+
* Bump this whenever the wire format or runtime behaviour of the
|
|
7
|
+
* worker changes in a way that an older deployed copy can no longer
|
|
8
|
+
* satisfy. Clients query `/version` on the deployed worker and
|
|
9
|
+
* compare against this constant; a mismatch (or 404) triggers a
|
|
10
|
+
* forced redeploy via the bootstrap flow.
|
|
11
|
+
*/
|
|
12
|
+
export declare const STATE_STORE_VERSION: 1;
|
|
3
13
|
/**
|
|
4
14
|
* Path on disk to *this* file, used as the worker's bundling entry.
|
|
5
15
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Api.d.ts","sourceRoot":"","sources":["../../../src/Cloudflare/StateStore/Api.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAexC,eAAO,MAAM,uBAAuB,EAAG,qBAA8B,CAAC;AAEtE;;;;;;;;;;;;GAYG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACH,
|
|
1
|
+
{"version":3,"file":"Api.d.ts","sourceRoot":"","sources":["../../../src/Cloudflare/StateStore/Api.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAexC,eAAO,MAAM,uBAAuB,EAAG,qBAA8B,CAAC;AAEtE;;;;;;;;GAQG;AACH,eAAO,MAAM,mBAAmB,EAAG,CAAU,CAAC;AAE9C;;;;;;;;;;;;GAYG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACH,wBAoHE"}
|
|
@@ -14,6 +14,16 @@ import { Worker } from "../Workers/Worker.js";
|
|
|
14
14
|
import Store from "./Store.js";
|
|
15
15
|
import { AuthToken } from "./Token.js";
|
|
16
16
|
export const STATE_STORE_SCRIPT_NAME = "alchemy-state-store";
|
|
17
|
+
/**
|
|
18
|
+
* Version of the deployed Cloudflare State Store worker contract.
|
|
19
|
+
*
|
|
20
|
+
* Bump this whenever the wire format or runtime behaviour of the
|
|
21
|
+
* worker changes in a way that an older deployed copy can no longer
|
|
22
|
+
* satisfy. Clients query `/version` on the deployed worker and
|
|
23
|
+
* compare against this constant; a mismatch (or 404) triggers a
|
|
24
|
+
* forced redeploy via the bootstrap flow.
|
|
25
|
+
*/
|
|
26
|
+
export const STATE_STORE_VERSION = 1;
|
|
17
27
|
/**
|
|
18
28
|
* Path on disk to *this* file, used as the worker's bundling entry.
|
|
19
29
|
*
|
|
@@ -43,6 +53,7 @@ export default Worker("Api", {
|
|
|
43
53
|
? Effect.void
|
|
44
54
|
: Effect.fail(new HttpApiError.Unauthorized()),
|
|
45
55
|
})), Effect.orDie));
|
|
56
|
+
const versionApi = HttpApiBuilder.group(StateApi, "version", (handlers) => handlers.handle("getVersion", () => Effect.succeed({ version: STATE_STORE_VERSION })));
|
|
46
57
|
const stateApi = HttpApiBuilder.group(StateApi, "state", (handlers) => handlers
|
|
47
58
|
.handle("listStacks", () => store.getByName(Store.ROOT_DO_NAME).listStacks())
|
|
48
59
|
.handle("listStages", ({ params }) => store.getByName(params.stack).listStages())
|
|
@@ -82,7 +93,7 @@ export default Worker("Api", {
|
|
|
82
93
|
.unregisterStack({ stack: params.stack })
|
|
83
94
|
: Effect.void), Effect.asVoid)));
|
|
84
95
|
return {
|
|
85
|
-
fetch: HttpApiBuilder.layer(StateApi).pipe(Layer.provide(stateApi), Layer.provide(StateAuthLive), Layer.provide(bearerTokenValidator),
|
|
96
|
+
fetch: HttpApiBuilder.layer(StateApi).pipe(Layer.provide(stateApi), Layer.provide(versionApi), Layer.provide(StateAuthLive), Layer.provide(bearerTokenValidator),
|
|
86
97
|
// The state-store worker never serves files, so HttpPlatform's
|
|
87
98
|
// file-response surface is stubbed.
|
|
88
99
|
Layer.provide([Etag.layer, HttpPlatformStub, Path.layer]), HttpRouter.toHttpEffect),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Api.js","sourceRoot":"","sources":["../../../src/Cloudflare/StateStore/Api.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Api.js","sourceRoot":"","sources":["../../../src/Cloudflare/StateStore/Api.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,6 +10,7 @@ import * as Cloudflare from "../../Cloudflare/Providers.ts";
|
|
|
10
10
|
import * as CloudflareEnvironment from "../CloudflareEnvironment.ts";
|
|
11
11
|
import { AlchemyContext } from "../../AlchemyContext.ts";
|
|
12
12
|
import { State } from "../../State/State.ts";
|
|
13
|
+
import * as Access from "../Access.ts";
|
|
13
14
|
export interface BootstrapOptions {
|
|
14
15
|
/**
|
|
15
16
|
* The name of the script to use for the state store.
|
|
@@ -43,14 +44,14 @@ export interface BootstrapOptions {
|
|
|
43
44
|
* state into the deployed store, persist credentials, and delete
|
|
44
45
|
* the local stack.
|
|
45
46
|
*/
|
|
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/Errors").DefaultErrors | workers.InvalidRoute | SecretsStore.InvalidAccountId, AlchemyContext | import("effect/Path").Path | import("effect/FileSystem").FileSystem | HttpClient.HttpClient | import("../../index.ts").Cli | Cloudflare.Credentials | CloudflareEnvironment.CloudflareEnvironment>;
|
|
47
|
+
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/Errors").DefaultErrors | workers.InvalidRoute | SecretsStore.InvalidAccountId, AlchemyContext | import("effect/Path").Path | import("effect/FileSystem").FileSystem | HttpClient.HttpClient | import("../../index.ts").Cli | Access.Access | Cloudflare.Credentials | CloudflareEnvironment.CloudflareEnvironment>;
|
|
47
48
|
export declare const state: (props?: {
|
|
48
49
|
/**
|
|
49
50
|
* The name of the script to use for the state store.
|
|
50
51
|
* @default "alchemy-state-store"
|
|
51
52
|
*/
|
|
52
53
|
workerName?: string;
|
|
53
|
-
}) => Layer.Layer<State | Cloudflare.Credentials | CloudflareEnvironment.CloudflareEnvironment, never, AlchemyContext | import("effect/Path").Path | import("effect/FileSystem").FileSystem | HttpClient.HttpClient | import("../../index.ts").AuthProviders | import("../../index.ts").Cli>;
|
|
54
|
+
}) => Layer.Layer<State | Access.Access | Cloudflare.Credentials | CloudflareEnvironment.CloudflareEnvironment, never, AlchemyContext | import("effect/Path").Path | import("effect/FileSystem").FileSystem | import("effect/unstable/process/ChildProcessSpawner").ChildProcessSpawner | HttpClient.HttpClient | import("../../index.ts").AuthProviders | import("../../index.ts").Cli>;
|
|
54
55
|
/**
|
|
55
56
|
* Log in to a Cloudflare-deployed HTTP state-store.
|
|
56
57
|
*
|
|
@@ -70,5 +71,5 @@ export declare const state: (props?: {
|
|
|
70
71
|
export declare const loginWithCloudflare: () => Effect.Effect<{
|
|
71
72
|
url: string;
|
|
72
73
|
authToken: string;
|
|
73
|
-
}, Config.ConfigError | AuthError | import("@distilled.cloud/axiom").Unauthorized | import("@distilled.cloud/axiom").TooManyRequests | import("@distilled.cloud/axiom").InternalServerError | import("@distilled.cloud/axiom").BadGateway | import("@distilled.cloud/axiom").ServiceUnavailable | import("@distilled.cloud/axiom").GatewayTimeout | import("@distilled.cloud/cloudflare/Errors").CloudflareHttpError | import("@distilled.cloud/cloudflare/Errors").CloudflareParseError | import("@distilled.cloud/cloudflare/Errors").UnknownCloudflareError | workers.InvalidRoute | SecretsStore.InvalidAccountId, import("effect/FileSystem").FileSystem | HttpClient.HttpClient | Cloudflare.Credentials | CloudflareEnvironment.CloudflareEnvironment>;
|
|
74
|
+
}, Config.ConfigError | AuthError | import("@distilled.cloud/axiom").Unauthorized | import("@distilled.cloud/axiom").TooManyRequests | import("@distilled.cloud/axiom").InternalServerError | import("@distilled.cloud/axiom").BadGateway | import("@distilled.cloud/axiom").ServiceUnavailable | import("@distilled.cloud/axiom").GatewayTimeout | import("@distilled.cloud/cloudflare/Errors").CloudflareHttpError | import("@distilled.cloud/cloudflare/Errors").CloudflareParseError | import("@distilled.cloud/cloudflare/Errors").UnknownCloudflareError | workers.InvalidRoute | SecretsStore.InvalidAccountId, import("effect/FileSystem").FileSystem | HttpClient.HttpClient | Access.Access | Cloudflare.Credentials | CloudflareEnvironment.CloudflareEnvironment>;
|
|
74
75
|
//# sourceMappingURL=State.d.ts.map
|
|
@@ -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;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;
|
|
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;AAG9D,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAGvD,OAAO,KAAK,UAAU,MAAM,+BAA+B,CAAC;AAQ5D,OAAO,KAAK,qBAAqB,MAAM,6BAA6B,CAAC;AAGrE,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAEzD,OAAO,EAAE,KAAK,EAAqB,MAAM,sBAAsB,CAAC;AAGhE,OAAO,KAAK,MAAM,MAAM,cAAc,CAAC;AASvC,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,6lBAgEpD,CAAC;AAEL,eAAO,MAAM,KAAK,GAAI,QAAQ;IAC5B;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,uXA8IE,CAAC;AAyIJ;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,mBAAmB;;;6uBAyE7B,CAAC"}
|
|
@@ -5,6 +5,7 @@ import * as Effect from "effect/Effect";
|
|
|
5
5
|
import * as Layer from "effect/Layer";
|
|
6
6
|
import * as Redacted from "effect/Redacted";
|
|
7
7
|
import * as HttpClient from "effect/unstable/http/HttpClient";
|
|
8
|
+
import * as HttpApiClient from "effect/unstable/httpapi/HttpApiClient";
|
|
8
9
|
import * as Config from "effect/Config";
|
|
9
10
|
import { adopt } from "../../AdoptPolicy.js";
|
|
10
11
|
import { AuthError } from "../../Auth/AuthProvider.js";
|
|
@@ -13,6 +14,7 @@ import { ALCHEMY_PROFILE } from "../../Auth/Profile.js";
|
|
|
13
14
|
import * as Cloudflare from "../../Cloudflare/Providers.js";
|
|
14
15
|
import { deploy } from "../../Deploy.js";
|
|
15
16
|
import * as Alchemy from "../../Stack.js";
|
|
17
|
+
import { StateApi } from "../../State/HttpStateApi.js";
|
|
16
18
|
import { makeHttpStateStore, } from "../../State/HttpStateStore.js";
|
|
17
19
|
import * as CloudflareEnvironment from "../CloudflareEnvironment.js";
|
|
18
20
|
import * as Credentials from "../Credentials.js";
|
|
@@ -21,9 +23,10 @@ import { makeLocalState } from "../../State/LocalState.js";
|
|
|
21
23
|
import { State } from "../../State/State.js";
|
|
22
24
|
import { recordStateStoreOp } from "../../Telemetry/Metrics.js";
|
|
23
25
|
import * as Clank from "../../Util/Clank.js";
|
|
26
|
+
import * as Access from "../Access.js";
|
|
24
27
|
import { CloudflareAuth } from "../Auth/AuthProvider.js";
|
|
25
28
|
import { EdgeSessionError, createEdgeSession } from "../EdgeSession.js";
|
|
26
|
-
import Api, { STATE_STORE_SCRIPT_NAME } from "./Api.js";
|
|
29
|
+
import Api, { STATE_STORE_SCRIPT_NAME, STATE_STORE_VERSION } from "./Api.js";
|
|
27
30
|
import { AuthTokenSecretName, TokenValue } from "./Token.js";
|
|
28
31
|
/** Filename used for stored credentials under the profile directory. */
|
|
29
32
|
const CREDENTIALS_FILE = "cloudflare-state-store";
|
|
@@ -67,6 +70,13 @@ export const bootstrap = (options = {}) => Effect.gen(function* () {
|
|
|
67
70
|
if (!isCI) {
|
|
68
71
|
yield* writeCredentials(profileName, CREDENTIALS_FILE, credentials);
|
|
69
72
|
}
|
|
73
|
+
yield* redeployIfStale({
|
|
74
|
+
scriptName,
|
|
75
|
+
profileName,
|
|
76
|
+
localState,
|
|
77
|
+
isCI,
|
|
78
|
+
url: credentials.url,
|
|
79
|
+
});
|
|
70
80
|
yield* Clank.success(`Cloudflare State Store '${scriptName}' is ready.`);
|
|
71
81
|
return;
|
|
72
82
|
}
|
|
@@ -109,9 +119,21 @@ export const state = (props) => Layer.effect(State, Effect.gen(function* () {
|
|
|
109
119
|
isCI,
|
|
110
120
|
});
|
|
111
121
|
}
|
|
112
|
-
// TODO(sam): support upgrading state store, right now we only deploy once
|
|
113
122
|
if (credentials) {
|
|
114
|
-
//
|
|
123
|
+
// We have local credentials. Before trusting them, verify
|
|
124
|
+
// the deployed worker is on the version this CLI was built
|
|
125
|
+
// against. If it isn't, `redeployIfStale` runs the idempotent
|
|
126
|
+
// bootstrap flow and short-circuits with the freshly-deployed
|
|
127
|
+
// store.
|
|
128
|
+
const fresh = yield* redeployIfStale({
|
|
129
|
+
scriptName,
|
|
130
|
+
profileName,
|
|
131
|
+
localState,
|
|
132
|
+
isCI,
|
|
133
|
+
url: credentials.url,
|
|
134
|
+
});
|
|
135
|
+
if (fresh)
|
|
136
|
+
return fresh;
|
|
115
137
|
const httpState = yield* makeHttpStateStore(credentials);
|
|
116
138
|
if (alchemyContext.updateStateStore) {
|
|
117
139
|
yield* deployStateStore(scriptName, httpState);
|
|
@@ -132,6 +154,15 @@ export const state = (props) => Layer.effect(State, Effect.gen(function* () {
|
|
|
132
154
|
if (!isCI) {
|
|
133
155
|
yield* writeCredentials(profileName, CREDENTIALS_FILE, credentials);
|
|
134
156
|
}
|
|
157
|
+
const fresh = yield* redeployIfStale({
|
|
158
|
+
scriptName,
|
|
159
|
+
profileName,
|
|
160
|
+
localState,
|
|
161
|
+
isCI,
|
|
162
|
+
url: credentials.url,
|
|
163
|
+
});
|
|
164
|
+
if (fresh)
|
|
165
|
+
return fresh;
|
|
135
166
|
const httpState = yield* makeHttpStateStore(credentials);
|
|
136
167
|
if (alchemyContext.updateStateStore) {
|
|
137
168
|
yield* deployStateStore(scriptName, httpState);
|
|
@@ -157,7 +188,7 @@ export const state = (props) => Layer.effect(State, Effect.gen(function* () {
|
|
|
157
188
|
localState,
|
|
158
189
|
isCI,
|
|
159
190
|
});
|
|
160
|
-
}).pipe(Effect.orDie)).pipe(Layer.provideMerge(Credentials.fromAuthProvider()), Layer.provideMerge(CloudflareEnvironment.fromProfile()), Layer.provideMerge(CloudflareAuth), Layer.orDie);
|
|
191
|
+
}).pipe(Effect.orDie)).pipe(Layer.provideMerge(Credentials.fromAuthProvider()), Layer.provideMerge(CloudflareEnvironment.fromProfile()), Layer.provideMerge(CloudflareAuth), Layer.provideMerge(Access.AccessLive), Layer.orDie);
|
|
161
192
|
/**
|
|
162
193
|
* Non-destructively copy every resource in the
|
|
163
194
|
* `CloudflareStateStore/<scriptName>` stack from `source` into
|
|
@@ -286,7 +317,15 @@ export const loginWithCloudflare = () => Effect.gen(function* () {
|
|
|
286
317
|
}));
|
|
287
318
|
}
|
|
288
319
|
// 2. Fetch the auth-token value via an edge-preview worker.
|
|
289
|
-
|
|
320
|
+
// We piggy-back on the already-deployed state-store script so the
|
|
321
|
+
// `cf-workers-preview-token` header has a real workers.dev route to
|
|
322
|
+
// swap onto. Uploading the probe under a brand-new script name fails
|
|
323
|
+
// on accounts where that script has never been deployed (or where
|
|
324
|
+
// workers.dev preview URLs are off by default — the post-2024
|
|
325
|
+
// Cloudflare default for new accounts) because the host doesn't
|
|
326
|
+
// resolve and Cloudflare's edge serves a 400 HTML error page
|
|
327
|
+
// instead of routing to the preview.
|
|
328
|
+
const authToken = yield* readSecretViaEdge(STATE_STORE_SCRIPT_NAME, store.id, AuthTokenSecretName);
|
|
290
329
|
// 3. Derive the deployed worker URL.
|
|
291
330
|
const { subdomain } = yield* workers.getSubdomain({ accountId });
|
|
292
331
|
const url = `https://${STATE_STORE_SCRIPT_NAME}.${subdomain}.workers.dev`;
|
|
@@ -308,8 +347,45 @@ export const loginWithCloudflare = () => Effect.gen(function* () {
|
|
|
308
347
|
message: `Edge-preview secret read failed: ${e.message}`,
|
|
309
348
|
cause: e.cause,
|
|
310
349
|
}))));
|
|
311
|
-
/**
|
|
312
|
-
|
|
350
|
+
/**
|
|
351
|
+
* Run {@link finishBootstrap} iff the worker at `url` fails the
|
|
352
|
+
* version probe; otherwise resolve to `undefined`. Centralises the
|
|
353
|
+
* "is the deployed worker still compatible?" guard used by every
|
|
354
|
+
* code path that already has a presumably-valid worker URL.
|
|
355
|
+
*/
|
|
356
|
+
const redeployIfStale = ({ url, scriptName, profileName, localState, isCI, }) => Effect.gen(function* () {
|
|
357
|
+
if (yield* checkStateStoreVersion(url))
|
|
358
|
+
return undefined;
|
|
359
|
+
yield* Clank.info(`Cloudflare State Store '${scriptName}' is out of date; redeploying...`);
|
|
360
|
+
return yield* finishBootstrap({
|
|
361
|
+
scriptName,
|
|
362
|
+
profileName,
|
|
363
|
+
localState,
|
|
364
|
+
isCI,
|
|
365
|
+
});
|
|
366
|
+
});
|
|
367
|
+
/**
|
|
368
|
+
* Probe the deployed worker's `/version` endpoint and decide whether
|
|
369
|
+
* it satisfies the current {@link STATE_STORE_VERSION} contract.
|
|
370
|
+
*
|
|
371
|
+
* Reuses the same typed {@link StateApi} client the rest of the store
|
|
372
|
+
* speaks, just without the bearer-token transform — the `/version`
|
|
373
|
+
* route is intentionally unauthenticated so we can probe it before
|
|
374
|
+
* trusting any locally-cached credentials.
|
|
375
|
+
*
|
|
376
|
+
* Returns `true` only on a successful response carrying the matching
|
|
377
|
+
* version. Any failure (404 from a pre-`/version` deploy, transport
|
|
378
|
+
* error, schema mismatch, version mismatch) collapses to `false`,
|
|
379
|
+
* since the caller's response in every case is the same: fall
|
|
380
|
+
* through to the idempotent bootstrap flow.
|
|
381
|
+
*/
|
|
382
|
+
const checkStateStoreVersion = (url) => Effect.gen(function* () {
|
|
383
|
+
const client = yield* HttpApiClient.make(StateApi, { baseUrl: url });
|
|
384
|
+
const result = yield* client.version
|
|
385
|
+
.getVersion()
|
|
386
|
+
.pipe(Effect.catch(() => Effect.succeed(undefined)));
|
|
387
|
+
return result?.version === STATE_STORE_VERSION;
|
|
388
|
+
});
|
|
313
389
|
/**
|
|
314
390
|
* Tiny ES-module worker that reads `env.SECRET.get()` and echoes it
|
|
315
391
|
* back. Uploaded as an ephemeral edge-preview, called once, then
|
|
@@ -326,18 +402,27 @@ const SECRET_PROBE_SOURCE = `export default {
|
|
|
326
402
|
},
|
|
327
403
|
};`;
|
|
328
404
|
/**
|
|
329
|
-
* Upload
|
|
330
|
-
*
|
|
331
|
-
*
|
|
332
|
-
*
|
|
405
|
+
* Upload an ephemeral edge-preview build of the given (already
|
|
406
|
+
* deployed) script that binds the requested Secrets Store secret,
|
|
407
|
+
* call it once with the preview token, and return the decoded value.
|
|
408
|
+
* The Cloudflare REST API deliberately hides secret values; only
|
|
409
|
+
* worker bindings can resolve them, so this is the out-of-band path.
|
|
410
|
+
*
|
|
411
|
+
* `scriptName` MUST be a script that is already deployed on the
|
|
412
|
+
* account with workers.dev enabled — the `cf-workers-preview-token`
|
|
413
|
+
* header swaps our probe code in for an existing route, it does not
|
|
414
|
+
* create one. Using an undeployed name (or a deployed script that
|
|
415
|
+
* doesn't have workers.dev enabled) makes the workers.dev edge serve
|
|
416
|
+
* a generic Cloudflare 400 HTML error page instead of routing to the
|
|
417
|
+
* preview. The state-store script itself satisfies both conditions.
|
|
333
418
|
*/
|
|
334
|
-
const readSecretViaEdge = (storeId, secretName) => Effect.gen(function* () {
|
|
419
|
+
const readSecretViaEdge = (scriptName, storeId, secretName) => Effect.gen(function* () {
|
|
335
420
|
const http = yield* HttpClient.HttpClient;
|
|
336
421
|
const file = new File([SECRET_PROBE_SOURCE], "worker.js", {
|
|
337
422
|
type: "application/javascript+module",
|
|
338
423
|
});
|
|
339
424
|
const session = yield* createEdgeSession({
|
|
340
|
-
scriptName
|
|
425
|
+
scriptName,
|
|
341
426
|
files: [file],
|
|
342
427
|
bindings: [
|
|
343
428
|
{ type: "secrets_store_secret", name: "SECRET", secretName, storeId },
|
|
@@ -348,6 +433,11 @@ const readSecretViaEdge = (storeId, secretName) => Effect.gen(function* () {
|
|
|
348
433
|
});
|
|
349
434
|
if (response.status !== 200) {
|
|
350
435
|
const body = yield* response.text.pipe(Effect.catch(() => Effect.succeed("")));
|
|
436
|
+
// TEMP(sam): dump the full body so we can capture the exact
|
|
437
|
+
// Cloudflare error page when the probe fails in the wild. Drop
|
|
438
|
+
// this once we've confirmed the routing fix covers all the
|
|
439
|
+
// observed failure modes.
|
|
440
|
+
yield* Effect.logWarning(`Secret probe failed (${response.status}) at ${session.url}\n${body}`);
|
|
351
441
|
return yield* Effect.fail(new EdgeSessionError({
|
|
352
442
|
message: `Secret probe returned ${response.status}: ${body.slice(0, 200)}`,
|
|
353
443
|
}));
|