alchemy 2.0.0-beta.53 → 2.0.0-beta.55
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 +1 -1
- package/bin/exec.js.map +1 -1
- package/lib/Cloudflare/AiGateway/AiGatewaySpendingLimit.d.ts +165 -0
- package/lib/Cloudflare/AiGateway/AiGatewaySpendingLimit.d.ts.map +1 -0
- package/lib/Cloudflare/AiGateway/AiGatewaySpendingLimit.js +232 -0
- package/lib/Cloudflare/AiGateway/AiGatewaySpendingLimit.js.map +1 -0
- package/lib/Cloudflare/AiGateway/index.d.ts +1 -0
- package/lib/Cloudflare/AiGateway/index.d.ts.map +1 -1
- package/lib/Cloudflare/AiGateway/index.js +1 -0
- package/lib/Cloudflare/AiGateway/index.js.map +1 -1
- package/lib/Cloudflare/Bridge.d.ts +1 -0
- package/lib/Cloudflare/Bridge.d.ts.map +1 -1
- package/lib/Cloudflare/Bridge.js +1 -0
- package/lib/Cloudflare/Bridge.js.map +1 -1
- package/lib/Cloudflare/Fetcher.d.ts +2 -2
- package/lib/Cloudflare/Fetcher.d.ts.map +1 -1
- package/lib/Cloudflare/Fetcher.js.map +1 -1
- package/lib/Cloudflare/Hyperdrive/Hyperdrive.d.ts.map +1 -1
- package/lib/Cloudflare/Hyperdrive/Hyperdrive.js +6 -6
- package/lib/Cloudflare/Hyperdrive/Hyperdrive.js.map +1 -1
- package/lib/Cloudflare/Local.js +5 -2
- package/lib/Cloudflare/Local.js.map +1 -1
- package/lib/Cloudflare/LocalRuntime.d.ts +21 -0
- package/lib/Cloudflare/LocalRuntime.d.ts.map +1 -0
- package/lib/Cloudflare/LocalRuntime.js +40 -0
- package/lib/Cloudflare/LocalRuntime.js.map +1 -0
- package/lib/Cloudflare/Providers.d.ts +1 -1
- package/lib/Cloudflare/Providers.d.ts.map +1 -1
- package/lib/Cloudflare/Providers.js +3 -1
- package/lib/Cloudflare/Providers.js.map +1 -1
- package/lib/Cloudflare/Queue/Queue.d.ts +4 -1
- package/lib/Cloudflare/Queue/Queue.d.ts.map +1 -1
- package/lib/Cloudflare/Queue/Queue.js +61 -2
- package/lib/Cloudflare/Queue/Queue.js.map +1 -1
- package/lib/Cloudflare/Queue/QueueConsumer.d.ts +32 -26
- package/lib/Cloudflare/Queue/QueueConsumer.d.ts.map +1 -1
- package/lib/Cloudflare/Queue/QueueConsumer.js +73 -3
- package/lib/Cloudflare/Queue/QueueConsumer.js.map +1 -1
- package/lib/Cloudflare/Workers/Assets.js +2 -2
- package/lib/Cloudflare/Workers/Assets.js.map +1 -1
- package/lib/Cloudflare/Workers/LocalWorkerProvider.d.ts +3 -5
- package/lib/Cloudflare/Workers/LocalWorkerProvider.d.ts.map +1 -1
- package/lib/Cloudflare/Workers/LocalWorkerProvider.js +32 -25
- package/lib/Cloudflare/Workers/LocalWorkerProvider.js.map +1 -1
- package/lib/Cloudflare/Workers/Worker.d.ts +2 -4
- package/lib/Cloudflare/Workers/Worker.d.ts.map +1 -1
- package/lib/Cloudflare/Workers/Worker.js +5 -7
- package/lib/Cloudflare/Workers/Worker.js.map +1 -1
- package/lib/Local/ProviderLayer.d.ts +10 -0
- package/lib/Local/ProviderLayer.d.ts.map +1 -0
- package/lib/Local/ProviderLayer.js +7 -0
- package/lib/Local/ProviderLayer.js.map +1 -0
- package/lib/Local/RpcProvider.d.ts +4 -3
- package/lib/Local/RpcProvider.d.ts.map +1 -1
- package/lib/Local/RpcProvider.js +6 -2
- package/lib/Local/RpcProvider.js.map +1 -1
- package/lib/Local/RpcProviderProxy.js.map +1 -1
- package/lib/Local/RpcSerialization.js +2 -2
- package/lib/Local/RpcSerialization.js.map +1 -1
- package/lib/Planetscale/Branch.d.ts.map +1 -1
- package/lib/Planetscale/Branch.js +25 -3
- package/lib/Planetscale/Branch.js.map +1 -1
- package/lib/Planetscale/Database.d.ts +1 -1
- package/lib/Planetscale/Postgres/PostgresClusterSize.d.ts +1 -1
- package/lib/Planetscale/Postgres/PostgresClusterSize.d.ts.map +1 -1
- package/lib/Planetscale/Postgres/PostgresClusterSize.js +13 -3
- package/lib/Planetscale/Postgres/PostgresClusterSize.js.map +1 -1
- package/lib/Planetscale/Util.d.ts +1 -1
- package/lib/Planetscale/Util.d.ts.map +1 -1
- package/lib/Planetscale/Util.js +7 -5
- package/lib/Planetscale/Util.js.map +1 -1
- package/lib/tsconfig.test.tsbuildinfo +1 -1
- package/package.json +12 -12
- package/src/Cloudflare/AiGateway/AiGatewaySpendingLimit.ts +368 -0
- package/src/Cloudflare/AiGateway/index.ts +1 -0
- package/src/Cloudflare/Bridge.ts +1 -0
- package/src/Cloudflare/Fetcher.ts +8 -4
- package/src/Cloudflare/Hyperdrive/Hyperdrive.ts +6 -8
- package/src/Cloudflare/Local.ts +9 -5
- package/src/Cloudflare/LocalRuntime.ts +70 -0
- package/src/Cloudflare/Providers.ts +4 -0
- package/src/Cloudflare/Queue/Queue.ts +73 -2
- package/src/Cloudflare/Queue/QueueConsumer.ts +130 -28
- package/src/Cloudflare/Workers/Assets.ts +2 -2
- package/src/Cloudflare/Workers/LocalWorkerProvider.ts +39 -30
- package/src/Cloudflare/Workers/Worker.ts +5 -26
- package/src/Local/ProviderLayer.ts +22 -0
- package/src/Local/RpcProvider.ts +11 -5
- package/src/Local/RpcProviderProxy.ts +2 -2
- package/src/Local/RpcSerialization.ts +2 -2
- package/src/Planetscale/Branch.ts +38 -10
- package/src/Planetscale/Database.ts +1 -1
- package/src/Planetscale/Postgres/PostgresClusterSize.ts +16 -2
- package/src/Planetscale/Util.ts +7 -5
package/lib/Cloudflare/Local.js
CHANGED
|
@@ -3,7 +3,10 @@ import * as RpcServer from "../Local/RpcServer.js";
|
|
|
3
3
|
import { CloudflareAuth } from "./Auth/AuthProvider.js";
|
|
4
4
|
import * as CloudflareEnvironment from "./CloudflareEnvironment.js";
|
|
5
5
|
import * as Credentials from "./Credentials.js";
|
|
6
|
-
import {
|
|
6
|
+
import { localRuntimeServices } from "./LocalRuntime.js";
|
|
7
|
+
import { QueueProviderLocal } from "./Queue/Queue.js";
|
|
8
|
+
import { QueueConsumerProviderLocal } from "./Queue/QueueConsumer.js";
|
|
9
|
+
import { LocalWorkerProvider } from "./Workers/LocalWorkerProvider.js";
|
|
7
10
|
const cloudflareServices = Layer.provide(Layer.merge(Credentials.fromAuthProvider(), CloudflareEnvironment.fromProfile()), CloudflareAuth);
|
|
8
|
-
LocalWorkerProvider().pipe(Layer.provide(localRuntimeServices()), Layer.provide(cloudflareServices), RpcServer.launch);
|
|
11
|
+
Layer.mergeAll(LocalWorkerProvider(), QueueProviderLocal(), QueueConsumerProviderLocal()).pipe(Layer.provide(localRuntimeServices()), Layer.provide(cloudflareServices), RpcServer.launch);
|
|
9
12
|
//# sourceMappingURL=Local.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Local.js","sourceRoot":"","sources":["../../src/Cloudflare/Local.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,SAAS,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,KAAK,qBAAqB,MAAM,4BAA4B,CAAC;AACpE,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAC;AAChD,OAAO,
|
|
1
|
+
{"version":3,"file":"Local.js","sourceRoot":"","sources":["../../src/Cloudflare/Local.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,SAAS,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,KAAK,qBAAqB,MAAM,4BAA4B,CAAC;AACpE,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AACtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAEvE,MAAM,kBAAkB,GAAG,KAAK,CAAC,OAAO,CACtC,KAAK,CAAC,KAAK,CACT,WAAW,CAAC,gBAAgB,EAAE,EAC9B,qBAAqB,CAAC,WAAW,EAAE,CACpC,EACD,cAAc,CACf,CAAC;AAEF,KAAK,CAAC,QAAQ,CACZ,mBAAmB,EAAE,EACrB,kBAAkB,EAAE,EACpB,0BAA0B,EAAE,CAC7B,CAAC,IAAI,CACJ,KAAK,CAAC,OAAO,CAAC,oBAAoB,EAAE,CAAC,EACrC,KAAK,CAAC,OAAO,CAAC,kBAAkB,CAAC,EACjC,SAAS,CAAC,MAAM,CACjB,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import * as Context from "effect/Context";
|
|
2
|
+
import * as Layer from "effect/Layer";
|
|
3
|
+
import * as MutableHashMap from "effect/MutableHashMap";
|
|
4
|
+
import * as Path from "effect/Path";
|
|
5
|
+
import { AlchemyContext } from "../AlchemyContext.ts";
|
|
6
|
+
import { CloudflareEnvironment } from "./CloudflareEnvironment.ts";
|
|
7
|
+
import type { Queue } from "./Queue/Queue.ts";
|
|
8
|
+
import type { QueueConsumer } from "./Queue/QueueConsumer.ts";
|
|
9
|
+
export declare const LOCAL_ENTRY_URL: string;
|
|
10
|
+
declare const LocalRuntimeState_base: Context.ServiceClass<LocalRuntimeState, "alchemy/cloudflare/LocalRuntimeState", {
|
|
11
|
+
readonly queues: MutableHashMap.MutableHashMap<Queue["Attributes"]["queueId"], Queue["Attributes"]>;
|
|
12
|
+
readonly queueConsumers: MutableHashMap.MutableHashMap<QueueConsumer["Attributes"]["consumerId"], QueueConsumer["Attributes"]>;
|
|
13
|
+
}>;
|
|
14
|
+
export declare class LocalRuntimeState extends LocalRuntimeState_base {
|
|
15
|
+
}
|
|
16
|
+
export declare const localRuntimeServices: () => Layer.Layer<LocalRuntimeState | import("@distilled.cloud/cloudflare-runtime/remote-bindings/RemoteBindings").RemoteBindings | import("@distilled.cloud/cloudflare-runtime").Runtime | import("@distilled.cloud/cloudflare-runtime/globals/Loopback").Loopback | import("@distilled.cloud/cloudflare-runtime/bindings/analytics-engine").AnalyticsEngine | import("@distilled.cloud/cloudflare-runtime/bindings/assets/Assets").Assets | import("@distilled.cloud/cloudflare-runtime/bindings/dispatch-namespace").DispatchNamespace | import("@distilled.cloud/cloudflare-runtime/bindings/hyperdrive").Hyperdrive | import("@distilled.cloud/cloudflare-runtime/bindings/queue").Queue | import("@distilled.cloud/cloudflare-runtime/registry/RegistryProxy").RegistryProxy | import("@distilled.cloud/cloudflare-runtime/bindings/rate-limit").RateLimit | import("@distilled.cloud/cloudflare-runtime/bindings/send-email").SendEmail | import("@distilled.cloud/cloudflare-runtime/bindings/workflows").Workflows | import("@distilled.cloud/cloudflare-runtime/proxy/WorkerProxy").WorkerProxy, import("effect/PlatformError").PlatformError | import("@distilled.cloud/cloudflare-runtime").SystemError, import("effect/unstable/process/ChildProcessSpawner").ChildProcessSpawner | import("effect/FileSystem").FileSystem | Path.Path | import("effect/unstable/http/HttpClient").HttpClient | AlchemyContext | import("@distilled.cloud/cloudflare").Credentials | CloudflareEnvironment>;
|
|
17
|
+
export declare const isLocalId: (id: string | undefined) => id is string;
|
|
18
|
+
export declare const isLiveId: (id: string | undefined) => id is string;
|
|
19
|
+
export declare const generateLocalId: () => string;
|
|
20
|
+
export {};
|
|
21
|
+
//# sourceMappingURL=LocalRuntime.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LocalRuntime.d.ts","sourceRoot":"","sources":["../../src/Cloudflare/LocalRuntime.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAE1C,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,cAAc,MAAM,uBAAuB,CAAC;AACxD,OAAO,KAAK,IAAI,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAE9D,eAAO,MAAM,eAAe,QAS3B,CAAC;;qBAKmB,cAAc,CAAC,cAAc,CAC5C,KAAK,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,EAC9B,KAAK,CAAC,YAAY,CAAC,CACpB;6BACwB,cAAc,CAAC,cAAc,CACpD,aAAa,CAAC,YAAY,CAAC,CAAC,YAAY,CAAC,EACzC,aAAa,CAAC,YAAY,CAAC,CAC5B;;AAVL,qBAAa,iBAAkB,SAAQ,sBAYI;CAAG;AAU9C,eAAO,MAAM,oBAAoB,06CAkB9B,CAAC;AAEJ,eAAO,MAAM,SAAS,GAAI,IAAI,MAAM,GAAG,SAAS,KAAG,EAAE,IAAI,MACR,CAAC;AAClD,eAAO,MAAM,QAAQ,GAAI,IAAI,MAAM,GAAG,SAAS,KAAG,EAAE,IAAI,MACN,CAAC;AACnD,eAAO,MAAM,eAAe,QAAO,MAAsC,CAAC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { layerRuntime } from "@distilled.cloud/cloudflare-runtime";
|
|
2
|
+
import * as Context from "effect/Context";
|
|
3
|
+
import * as Effect from "effect/Effect";
|
|
4
|
+
import * as Layer from "effect/Layer";
|
|
5
|
+
import * as MutableHashMap from "effect/MutableHashMap";
|
|
6
|
+
import * as Path from "effect/Path";
|
|
7
|
+
import { AlchemyContext } from "../AlchemyContext.js";
|
|
8
|
+
import * as RpcProvider from "../Local/RpcProvider.js";
|
|
9
|
+
import { CloudflareEnvironment } from "./CloudflareEnvironment.js";
|
|
10
|
+
export const LOCAL_ENTRY_URL = import.meta.resolve(
|
|
11
|
+
// `import.meta.resolve(<string>)` is a runtime API — TypeScript's
|
|
12
|
+
// `rewriteRelativeImportExtensions` does NOT touch the string literal, so
|
|
13
|
+
// we have to pick the right extension ourselves. `import.meta.url` reflects
|
|
14
|
+
// the actual on-disk extension of *this* file (`.ts` when loaded from
|
|
15
|
+
// `src/` under Bun or vitest, `.js` when loaded from the compiled `lib/`
|
|
16
|
+
// under Node), which is exactly the signal we need.
|
|
17
|
+
import.meta.url.endsWith(".ts") ? "./Local.ts" : "./Local.js", import.meta.url);
|
|
18
|
+
export class LocalRuntimeState extends Context.Service()("alchemy/cloudflare/LocalRuntimeState") {
|
|
19
|
+
}
|
|
20
|
+
const LocalRuntimeStateLive = Layer.succeed(LocalRuntimeState, LocalRuntimeState.of({
|
|
21
|
+
queues: MutableHashMap.empty(),
|
|
22
|
+
queueConsumers: MutableHashMap.empty(),
|
|
23
|
+
}));
|
|
24
|
+
export const localRuntimeServices = () => RpcProvider.providerServicesEffect(Effect.gen(function* () {
|
|
25
|
+
const getEnv = yield* CloudflareEnvironment;
|
|
26
|
+
const { dotAlchemy } = yield* AlchemyContext;
|
|
27
|
+
const path = yield* Path.Path;
|
|
28
|
+
return Layer.merge(LocalRuntimeStateLive, layerRuntime({
|
|
29
|
+
api: {
|
|
30
|
+
accountId: getEnv.pipe(Effect.map((env) => env.accountId)),
|
|
31
|
+
},
|
|
32
|
+
storage: {
|
|
33
|
+
directory: path.join(dotAlchemy, "local"),
|
|
34
|
+
},
|
|
35
|
+
}));
|
|
36
|
+
}));
|
|
37
|
+
export const isLocalId = (id) => typeof id === "string" && id.startsWith("dev:");
|
|
38
|
+
export const isLiveId = (id) => typeof id === "string" && !id.startsWith("dev:");
|
|
39
|
+
export const generateLocalId = () => `dev:${crypto.randomUUID()}`;
|
|
40
|
+
//# sourceMappingURL=LocalRuntime.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LocalRuntime.js","sourceRoot":"","sources":["../../src/Cloudflare/LocalRuntime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AACnE,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,cAAc,MAAM,uBAAuB,CAAC;AACxD,OAAO,KAAK,IAAI,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,KAAK,WAAW,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAInE,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO;AAChD,kEAAkE;AAClE,0EAA0E;AAC1E,4EAA4E;AAC5E,sEAAsE;AACtE,yEAAyE;AACzE,oDAAoD;AACpD,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,YAAY,EAC7D,MAAM,CAAC,IAAI,CAAC,GAAG,CAChB,CAAC;AAEF,MAAM,OAAO,iBAAkB,SAAQ,OAAO,CAAC,OAAO,EAYnD,CAAC,sCAAsC,CAAC;CAAG;AAE9C,MAAM,qBAAqB,GAAG,KAAK,CAAC,OAAO,CACzC,iBAAiB,EACjB,iBAAiB,CAAC,EAAE,CAAC;IACnB,MAAM,EAAE,cAAc,CAAC,KAAK,EAAE;IAC9B,cAAc,EAAE,cAAc,CAAC,KAAK,EAAE;CACvC,CAAC,CACH,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAAG,EAAE,CACvC,WAAW,CAAC,sBAAsB,CAChC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,qBAAqB,CAAC;IAC5C,MAAM,EAAE,UAAU,EAAE,GAAG,KAAK,CAAC,CAAC,cAAc,CAAC;IAC7C,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;IAC9B,OAAO,KAAK,CAAC,KAAK,CAChB,qBAAqB,EACrB,YAAY,CAAC;QACX,GAAG,EAAE;YACH,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;SAC3D;QACD,OAAO,EAAE;YACP,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC;SAC1C;KACF,CAAC,CACH,CAAC;AACJ,CAAC,CAAC,CACH,CAAC;AAEJ,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,EAAsB,EAAgB,EAAE,CAChE,OAAO,EAAE,KAAK,QAAQ,IAAI,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;AAClD,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,EAAsB,EAAgB,EAAE,CAC/D,OAAO,EAAE,KAAK,QAAQ,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;AACnD,MAAM,CAAC,MAAM,eAAe,GAAG,GAAW,EAAE,CAAC,OAAO,MAAM,CAAC,UAAU,EAAE,EAAE,CAAC"}
|
|
@@ -15,5 +15,5 @@ export type ProviderRequirements = Layer.Services<ReturnType<typeof providers>>;
|
|
|
15
15
|
/**
|
|
16
16
|
* Cloudflare providers, bindings, and credentials for Worker-based stacks.
|
|
17
17
|
*/
|
|
18
|
-
export declare const providers: () => Layer.Layer<import("../Auth/Profile.ts").AlchemyProfile | import("../Auth/Credentials.ts").CredentialsStore | Provider.Provider<KeyPair> | Provider.Provider<Random> | Provider.Provider<Command> | Access.Access | Containers.Credentials | CloudflareEnvironment.CloudflareEnvironment | Providers | Retry.Retry, never, import("effect/Scope").Scope | import("effect/unstable/process/ChildProcessSpawner").ChildProcessSpawner | import("effect/FileSystem").FileSystem | import("effect/Path").Path | import("effect/unstable/http/HttpClient").HttpClient | import("../AlchemyContext.ts").AlchemyContext | import("../index.ts").AuthProviders | import("../Stage.ts").Stage | import("../Stack.ts").Stack>;
|
|
18
|
+
export declare const providers: () => Layer.Layer<import("../Auth/Profile.ts").AlchemyProfile | import("../Auth/Credentials.ts").CredentialsStore | Provider.Provider<KeyPair> | Provider.Provider<Random> | Provider.Provider<Command> | Access.Access | Containers.Credentials | CloudflareEnvironment.CloudflareEnvironment | Providers | import("./LocalRuntime.ts").LocalRuntimeState | import("@distilled.cloud/cloudflare-runtime/remote-bindings/RemoteBindings").RemoteBindings | import("@distilled.cloud/cloudflare-runtime").Runtime | import("@distilled.cloud/cloudflare-runtime/globals/Loopback").Loopback | import("@distilled.cloud/cloudflare-runtime/bindings/analytics-engine").AnalyticsEngine | import("@distilled.cloud/cloudflare-runtime/bindings/assets/Assets").Assets | import("@distilled.cloud/cloudflare-runtime/bindings/dispatch-namespace").DispatchNamespace | import("@distilled.cloud/cloudflare-runtime/bindings/hyperdrive").Hyperdrive | import("@distilled.cloud/cloudflare-runtime/bindings/queue").Queue | import("@distilled.cloud/cloudflare-runtime/registry/RegistryProxy").RegistryProxy | import("@distilled.cloud/cloudflare-runtime/bindings/rate-limit").RateLimit | import("@distilled.cloud/cloudflare-runtime/bindings/send-email").SendEmail | import("@distilled.cloud/cloudflare-runtime/bindings/workflows").Workflows | import("@distilled.cloud/cloudflare-runtime/proxy/WorkerProxy").WorkerProxy | Retry.Retry, never, import("effect/Scope").Scope | import("effect/unstable/process/ChildProcessSpawner").ChildProcessSpawner | import("effect/FileSystem").FileSystem | import("effect/Path").Path | import("effect/unstable/http/HttpClient").HttpClient | import("../AlchemyContext.ts").AlchemyContext | import("../index.ts").AuthProviders | import("../Stage.ts").Stage | import("../Stack.ts").Stack>;
|
|
19
19
|
//# sourceMappingURL=Providers.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Providers.d.ts","sourceRoot":"","sources":["../../src/Cloudflare/Providers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AAIpD,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAKtC,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAG9C,OAAO,EAAE,OAAO,EAAmB,MAAM,eAAe,CAAC;AACzD,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAkB,MAAM,cAAc,CAAC;AACtD,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AAOtC,OAAO,KAAK,qBAAqB,MAAM,4BAA4B,CAAC;AACpE,OAAO,KAAK,UAAU,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"Providers.d.ts","sourceRoot":"","sources":["../../src/Cloudflare/Providers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AAIpD,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAKtC,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAG9C,OAAO,EAAE,OAAO,EAAmB,MAAM,eAAe,CAAC;AACzD,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAkB,MAAM,cAAc,CAAC;AACtD,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AAOtC,OAAO,KAAK,qBAAqB,MAAM,4BAA4B,CAAC;AACpE,OAAO,KAAK,UAAU,MAAM,sBAAsB,CAAC;AAsBnD,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,ivDAoJnB,CAAC"}
|
|
@@ -29,6 +29,7 @@ import * as Email from "./Email/index.js";
|
|
|
29
29
|
import * as Hyperdrive from "./Hyperdrive/index.js";
|
|
30
30
|
import * as Images from "./Images/index.js";
|
|
31
31
|
import * as KV from "./KV/index.js";
|
|
32
|
+
import { localRuntimeServices } from "./LocalRuntime.js";
|
|
32
33
|
import * as Queue from "./Queue/index.js";
|
|
33
34
|
import * as R2 from "./R2/index.js";
|
|
34
35
|
import * as RateLimit from "./RateLimit/index.js";
|
|
@@ -51,6 +52,7 @@ export const providers = () => Layer.effect(Providers, Provider.collection([
|
|
|
51
52
|
ApiToken.AccountApiToken,
|
|
52
53
|
ApiToken.UserApiToken,
|
|
53
54
|
AiGateway.AiGateway,
|
|
55
|
+
AiGateway.AiGatewaySpendingLimit,
|
|
54
56
|
AiGateway.AiGatewayBindingPolicy,
|
|
55
57
|
AnalyticsEngine.AnalyticsEngineDatasetBindingPolicy,
|
|
56
58
|
Artifacts.ArtifactsBindingPolicy,
|
|
@@ -101,7 +103,7 @@ export const providers = () => Layer.effect(Providers, Provider.collection([
|
|
|
101
103
|
Workflows.WorkflowResource,
|
|
102
104
|
Zaraz.ZarazConfig,
|
|
103
105
|
Zone.Zone,
|
|
104
|
-
])).pipe(Layer.provide(Layer.mergeAll(ApiToken.AccountApiTokenProvider(), ApiToken.UserApiTokenProvider(), AiGateway.AiGatewayProvider(), AiGateway.AiGatewayBindingPolicyLive, AnalyticsEngine.AnalyticsEngineDatasetBindingPolicyLive, Artifacts.ArtifactsBindingPolicyLive, Browser.BrowserBindingPolicyLive, Containers.ContainerProvider(), D1.D1ConnectionPolicyLive, D1.DatabaseProvider(), DevServerProvider(), Dns.DnsReadPolicyLive, Dns.DnsReadWritePolicyLive, Dns.DnsWritePolicyLive, Email.EmailAddressProvider(), Email.EmailRoutingProvider(), Email.EmailRuleProvider(), Email.SendEmailBindingPolicyLive, Hyperdrive.HyperdriveBindingPolicyLive, Hyperdrive.HyperdriveProvider(), Images.ImagesBindingPolicyLive, KV.KVNamespaceBindingPolicyLive, KV.KVNamespaceProvider(), Queue.QueueBindingPolicyLive, Queue.QueueEventSourcePolicyLive, Queue.QueueProvider(), Queue.QueueConsumerProvider(), R2.R2BucketBindingPolicyLive, R2.R2BucketProvider(), RateLimit.RateLimitBindingPolicyLive, Ruleset.RulesetProvider(), SecretsStore.SecretBindingPolicyLive, SecretsStore.SecretsStoreProvider(), SecretsStore.StoreSecretProvider(), Tunnel.TunnelProvider(), Tunnel.TunnelReadPolicyLive, Tunnel.TunnelReadWritePolicyLive, Tunnel.TunnelWritePolicyLive, Vectorize.VectorizeIndexBindingPolicyLive, Vectorize.VectorizeIndexProvider(), Vectorize.VectorizeMetadataIndexProvider(), VpcService.VpcServiceProvider(), Workers.BindWorkerPolicyLive, Workers.CronEventSourcePolicyLive, Workers.FetchPolicyLive, Workers.VersionMetadataBindingPolicyLive, Workers.WorkerProvider(), Workflows.WorkflowProvider(), Zaraz.ZarazConfigProvider(), Zone.ZoneProvider())), Layer.provideMerge(Layer.mergeAll(Build.CommandProvider(), KeyPairProvider(), RandomProvider())), Layer.provideMerge(Credentials.fromAuthProvider()), Layer.provideMerge(CloudflareEnvironment.fromProfile()), Layer.provideMerge(CloudflareAuth), Layer.provideMerge(Access.AccessLive), Layer.provideMerge(ProfileLive), Layer.provideMerge(CredentialsStoreLive),
|
|
106
|
+
])).pipe(Layer.provide(Layer.mergeAll(ApiToken.AccountApiTokenProvider(), ApiToken.UserApiTokenProvider(), AiGateway.AiGatewayProvider(), AiGateway.AiGatewaySpendingLimitProvider(), AiGateway.AiGatewayBindingPolicyLive, AnalyticsEngine.AnalyticsEngineDatasetBindingPolicyLive, Artifacts.ArtifactsBindingPolicyLive, Browser.BrowserBindingPolicyLive, Containers.ContainerProvider(), D1.D1ConnectionPolicyLive, D1.DatabaseProvider(), DevServerProvider(), Dns.DnsReadPolicyLive, Dns.DnsReadWritePolicyLive, Dns.DnsWritePolicyLive, Email.EmailAddressProvider(), Email.EmailRoutingProvider(), Email.EmailRuleProvider(), Email.SendEmailBindingPolicyLive, Hyperdrive.HyperdriveBindingPolicyLive, Hyperdrive.HyperdriveProvider(), Images.ImagesBindingPolicyLive, KV.KVNamespaceBindingPolicyLive, KV.KVNamespaceProvider(), Queue.QueueBindingPolicyLive, Queue.QueueEventSourcePolicyLive, Queue.QueueProvider(), Queue.QueueConsumerProvider(), R2.R2BucketBindingPolicyLive, R2.R2BucketProvider(), RateLimit.RateLimitBindingPolicyLive, Ruleset.RulesetProvider(), SecretsStore.SecretBindingPolicyLive, SecretsStore.SecretsStoreProvider(), SecretsStore.StoreSecretProvider(), Tunnel.TunnelProvider(), Tunnel.TunnelReadPolicyLive, Tunnel.TunnelReadWritePolicyLive, Tunnel.TunnelWritePolicyLive, Vectorize.VectorizeIndexBindingPolicyLive, Vectorize.VectorizeIndexProvider(), Vectorize.VectorizeMetadataIndexProvider(), VpcService.VpcServiceProvider(), Workers.BindWorkerPolicyLive, Workers.CronEventSourcePolicyLive, Workers.FetchPolicyLive, Workers.VersionMetadataBindingPolicyLive, Workers.WorkerProvider(), Workflows.WorkflowProvider(), Zaraz.ZarazConfigProvider(), Zone.ZoneProvider())), Layer.provideMerge(Layer.mergeAll(Build.CommandProvider(), KeyPairProvider(), RandomProvider())), Layer.provideMerge(localRuntimeServices()), Layer.provideMerge(Credentials.fromAuthProvider()), Layer.provideMerge(CloudflareEnvironment.fromProfile()), Layer.provideMerge(CloudflareAuth), Layer.provideMerge(Access.AccessLive), Layer.provideMerge(ProfileLive), Layer.provideMerge(CredentialsStoreLive),
|
|
105
107
|
// Apply a blanket retry policy to every Cloudflare API call. Extends
|
|
106
108
|
// `Retry.makeDefault`'s transient detection (throttling / 5xx /
|
|
107
109
|
// network) with one Cloudflare-specific misleadingly-tagged
|
|
@@ -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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"}
|
|
@@ -2,6 +2,7 @@ import * as Effect from "effect/Effect";
|
|
|
2
2
|
import * as Provider from "../../Provider.ts";
|
|
3
3
|
import { Resource } from "../../Resource.ts";
|
|
4
4
|
import { CloudflareEnvironment } from "../CloudflareEnvironment.ts";
|
|
5
|
+
import { LocalRuntimeState } from "../LocalRuntime.ts";
|
|
5
6
|
import type { Providers } from "../Providers.ts";
|
|
6
7
|
import { QueueBinding } from "./QueueBinding.ts";
|
|
7
8
|
export declare const isQueue: (value: unknown) => value is Queue;
|
|
@@ -79,5 +80,7 @@ export type Queue = Resource<"Cloudflare.Queue", QueueProps, {
|
|
|
79
80
|
export declare const Queue: import("../../Resource.ts").ResourceClassWithMethods<Queue, {
|
|
80
81
|
readonly bind: (<Req = never>(args_0: import("../../Input.ts").Input<Queue> | Effect.Effect<Queue, never, Req>) => Effect.Effect<import("./QueueBinding.ts").QueueSender, never, QueueBinding | Req>) & ((queue: Queue) => Effect.Effect<any, any, any>);
|
|
81
82
|
}>;
|
|
82
|
-
export declare const
|
|
83
|
+
export declare const QueueProviderLive: () => import("effect/Layer").Layer<Provider.Provider<Queue>, never, import("effect/unstable/http/HttpClient").HttpClient | import("../../Stage.ts").Stage | import("../../Stack.ts").Stack | import("@distilled.cloud/cloudflare").Credentials | CloudflareEnvironment>;
|
|
84
|
+
export declare const QueueProviderLocal: () => import("effect/Layer").Layer<Provider.Provider<Queue>, never, import("../../AlchemyContext.ts").AlchemyContext | import("../../Stage.ts").Stage | import("../../Stack.ts").Stack | CloudflareEnvironment | LocalRuntimeState>;
|
|
85
|
+
export declare const QueueProvider: () => import("effect/Layer").Layer<Provider.Provider<Queue>, never, import("effect/unstable/http/HttpClient").HttpClient | import("../../AlchemyContext.ts").AlchemyContext | import("../../Stage.ts").Stage | import("../../Stack.ts").Stack | import("@distilled.cloud/cloudflare").Credentials | CloudflareEnvironment | LocalRuntimeState>;
|
|
83
86
|
//# sourceMappingURL=Queue.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Queue.d.ts","sourceRoot":"","sources":["../../../src/Cloudflare/Queue/Queue.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"Queue.d.ts","sourceRoot":"","sources":["../../../src/Cloudflare/Queue/Queue.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAQxC,OAAO,KAAK,QAAQ,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,EAIL,iBAAiB,EAClB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,eAAO,MAAM,OAAO,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,KACwB,CAAC;AAE3E,MAAM,MAAM,UAAU,GAAG;IACvB;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,KAAK,GAAG,QAAQ,CAC1B,kBAAkB,EAClB,UAAU,EACV;IACE,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB,EACD,KAAK,EACL,SAAS,CACV,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0DG;AACH,eAAO,MAAM,KAAK;;EAEhB,CAAC;AAEH,eAAO,MAAM,iBAAiB,yQAsH1B,CAAC;AAuBL,eAAO,MAAM,kBAAkB,qOA8C5B,CAAC;AAEJ,eAAO,MAAM,aAAa,gVAItB,CAAC"}
|
|
@@ -1,12 +1,16 @@
|
|
|
1
1
|
import * as queues from "@distilled.cloud/cloudflare/queues";
|
|
2
2
|
import * as Effect from "effect/Effect";
|
|
3
|
+
import * as MutableHashMap from "effect/MutableHashMap";
|
|
3
4
|
import * as Option from "effect/Option";
|
|
4
5
|
import * as Stream from "effect/Stream";
|
|
5
6
|
import { isResolved } from "../../Diff.js";
|
|
7
|
+
import * as ProviderLayer from "../../Local/ProviderLayer.js";
|
|
8
|
+
import * as RpcProvider from "../../Local/RpcProvider.js";
|
|
6
9
|
import { createPhysicalName } from "../../PhysicalName.js";
|
|
7
10
|
import * as Provider from "../../Provider.js";
|
|
8
11
|
import { Resource } from "../../Resource.js";
|
|
9
12
|
import { CloudflareEnvironment } from "../CloudflareEnvironment.js";
|
|
13
|
+
import { generateLocalId, isLiveId, LOCAL_ENTRY_URL, LocalRuntimeState, } from "../LocalRuntime.js";
|
|
10
14
|
import { QueueBinding } from "./QueueBinding.js";
|
|
11
15
|
export const isQueue = (value) => typeof value === "object" && value?.Type === "Cloudflare.Queue";
|
|
12
16
|
/**
|
|
@@ -71,12 +75,18 @@ export const isQueue = (value) => typeof value === "object" && value?.Type === "
|
|
|
71
75
|
export const Queue = Resource("Cloudflare.Queue")({
|
|
72
76
|
bind: QueueBinding.bind,
|
|
73
77
|
});
|
|
74
|
-
export const
|
|
75
|
-
|
|
78
|
+
export const QueueProviderLive = () => Provider.succeed(Queue, {
|
|
79
|
+
// The `queueId` is not marked as stable because if you start in dev mode, the ID will change on first deploy.
|
|
80
|
+
stables: ["accountId"],
|
|
76
81
|
diff: Effect.fn(function* ({ id, olds = {}, news = {}, output }) {
|
|
77
82
|
const { accountId } = yield* yield* CloudflareEnvironment;
|
|
78
83
|
if (!isResolved(news))
|
|
79
84
|
return undefined;
|
|
85
|
+
// If the queueId is a `dev:` ID, we need to update to a live one.
|
|
86
|
+
// The live resource doesn't exist yet, so there's no need to replace even if the name or accountId changed.
|
|
87
|
+
if (!isLiveId(output?.queueId)) {
|
|
88
|
+
return { action: "update" };
|
|
89
|
+
}
|
|
80
90
|
if ((output?.accountId ?? accountId) !== accountId) {
|
|
81
91
|
return { action: "replace" };
|
|
82
92
|
}
|
|
@@ -135,6 +145,9 @@ export const QueueProvider = () => Provider.succeed(Queue, {
|
|
|
135
145
|
};
|
|
136
146
|
}),
|
|
137
147
|
delete: Effect.fn(function* ({ output }) {
|
|
148
|
+
// If the queueId is a `dev:` ID, the resource only exists locally, so we don't need to delete it from Cloudflare.
|
|
149
|
+
if (!isLiveId(output.queueId))
|
|
150
|
+
return;
|
|
138
151
|
yield* queues
|
|
139
152
|
.deleteQueue({
|
|
140
153
|
accountId: output.accountId,
|
|
@@ -183,4 +196,50 @@ const findQueueByName = Effect.fnUntraced(function* (queueName) {
|
|
|
183
196
|
const { accountId } = yield* yield* CloudflareEnvironment;
|
|
184
197
|
return yield* queues.listQueues.items({ accountId }).pipe(Stream.filter((q) => q.queueName === queueName), Stream.runHead, Effect.map(Option.getOrUndefined));
|
|
185
198
|
});
|
|
199
|
+
export const QueueProviderLocal = () => RpcProvider.effect(Queue, LOCAL_ENTRY_URL, Effect.gen(function* () {
|
|
200
|
+
const localRuntimeState = yield* LocalRuntimeState;
|
|
201
|
+
return {
|
|
202
|
+
stables: ["accountId"],
|
|
203
|
+
diff: Effect.fn(function* ({ id, olds = {}, news = {}, output }) {
|
|
204
|
+
const { accountId } = yield* yield* CloudflareEnvironment;
|
|
205
|
+
if (!output?.queueId)
|
|
206
|
+
return { action: "update" };
|
|
207
|
+
if (!isResolved(news))
|
|
208
|
+
return undefined;
|
|
209
|
+
const name = yield* createQueueName(id, news.name);
|
|
210
|
+
const oldName = output?.queueName
|
|
211
|
+
? yield* createQueueName(id, olds.name)
|
|
212
|
+
: yield* createQueueName(id, olds.name);
|
|
213
|
+
if (name !== oldName || output.accountId !== accountId) {
|
|
214
|
+
return { action: "replace" };
|
|
215
|
+
}
|
|
216
|
+
// If the resource is a noop, add it to the local runtime state so it's available downstream.
|
|
217
|
+
// We do it here instead of in the reconcile function so it doesn't appear as an update.
|
|
218
|
+
MutableHashMap.set(localRuntimeState.queues, output.queueId, output);
|
|
219
|
+
return { action: "noop" };
|
|
220
|
+
}),
|
|
221
|
+
read: Effect.fn(function* ({ output }) {
|
|
222
|
+
if (!output?.queueId)
|
|
223
|
+
return undefined;
|
|
224
|
+
return MutableHashMap.get(localRuntimeState.queues, output.queueId).pipe(Option.getOrUndefined);
|
|
225
|
+
}),
|
|
226
|
+
reconcile: Effect.fn(function* ({ id, news = {}, output }) {
|
|
227
|
+
const { accountId } = yield* yield* CloudflareEnvironment;
|
|
228
|
+
const queue = {
|
|
229
|
+
queueId: output?.queueId ?? generateLocalId(),
|
|
230
|
+
queueName: yield* createQueueName(id, news.name),
|
|
231
|
+
accountId: output?.accountId ?? accountId,
|
|
232
|
+
};
|
|
233
|
+
MutableHashMap.set(localRuntimeState.queues, queue.queueId, queue);
|
|
234
|
+
return queue;
|
|
235
|
+
}),
|
|
236
|
+
delete: Effect.fn(function* ({ output }) {
|
|
237
|
+
MutableHashMap.remove(localRuntimeState.queues, output.queueId);
|
|
238
|
+
}),
|
|
239
|
+
};
|
|
240
|
+
}));
|
|
241
|
+
export const QueueProvider = () => ProviderLayer.select({
|
|
242
|
+
local: () => QueueProviderLocal(),
|
|
243
|
+
live: () => QueueProviderLive(),
|
|
244
|
+
});
|
|
186
245
|
//# sourceMappingURL=Queue.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Queue.js","sourceRoot":"","sources":["../../../src/Cloudflare/Queue/Queue.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,oCAAoC,CAAC;AAC7D,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,KAAK,QAAQ,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"Queue.js","sourceRoot":"","sources":["../../../src/Cloudflare/Queue/Queue.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import * as Provider from "../../Provider.ts";
|
|
2
2
|
import { Resource } from "../../Resource.ts";
|
|
3
3
|
import { CloudflareEnvironment } from "../CloudflareEnvironment.ts";
|
|
4
|
+
import { LocalRuntimeState } from "../LocalRuntime.ts";
|
|
4
5
|
import type { Providers } from "../Providers.ts";
|
|
5
6
|
export type QueueConsumerProps = {
|
|
6
7
|
/**
|
|
@@ -18,37 +19,40 @@ export type QueueConsumerProps = {
|
|
|
18
19
|
/**
|
|
19
20
|
* Consumer settings.
|
|
20
21
|
*/
|
|
21
|
-
settings?:
|
|
22
|
-
/**
|
|
23
|
-
* The maximum number of messages per batch.
|
|
24
|
-
* @default 10
|
|
25
|
-
*/
|
|
26
|
-
batchSize?: number;
|
|
27
|
-
/**
|
|
28
|
-
* The maximum number of concurrent consumer invocations.
|
|
29
|
-
*/
|
|
30
|
-
maxConcurrency?: number;
|
|
31
|
-
/**
|
|
32
|
-
* The maximum number of retries for a message.
|
|
33
|
-
* @default 3
|
|
34
|
-
*/
|
|
35
|
-
maxRetries?: number;
|
|
36
|
-
/**
|
|
37
|
-
* The maximum time to wait for a batch to fill, in milliseconds.
|
|
38
|
-
* @default 5000
|
|
39
|
-
*/
|
|
40
|
-
maxWaitTimeMs?: number;
|
|
41
|
-
/**
|
|
42
|
-
* The number of seconds to wait before retrying a message.
|
|
43
|
-
*/
|
|
44
|
-
retryDelay?: number;
|
|
45
|
-
};
|
|
22
|
+
settings?: QueueConsumerSettings;
|
|
46
23
|
};
|
|
24
|
+
export interface QueueConsumerSettings {
|
|
25
|
+
/**
|
|
26
|
+
* The maximum number of messages per batch.
|
|
27
|
+
* @default 10
|
|
28
|
+
*/
|
|
29
|
+
batchSize?: number;
|
|
30
|
+
/**
|
|
31
|
+
* The maximum number of concurrent consumer invocations.
|
|
32
|
+
*/
|
|
33
|
+
maxConcurrency?: number;
|
|
34
|
+
/**
|
|
35
|
+
* The maximum number of retries for a message.
|
|
36
|
+
* @default 3
|
|
37
|
+
*/
|
|
38
|
+
maxRetries?: number;
|
|
39
|
+
/**
|
|
40
|
+
* The maximum time to wait for a batch to fill, in milliseconds.
|
|
41
|
+
* @default 5000
|
|
42
|
+
*/
|
|
43
|
+
maxWaitTimeMs?: number;
|
|
44
|
+
/**
|
|
45
|
+
* The number of seconds to wait before retrying a message.
|
|
46
|
+
*/
|
|
47
|
+
retryDelay?: number;
|
|
48
|
+
}
|
|
47
49
|
export type QueueConsumer = Resource<"Cloudflare.QueueConsumer", QueueConsumerProps, {
|
|
48
50
|
consumerId: string;
|
|
49
51
|
queueId: string;
|
|
50
52
|
scriptName: string;
|
|
51
53
|
accountId: string;
|
|
54
|
+
deadLetterQueue?: string;
|
|
55
|
+
settings?: QueueConsumerSettings;
|
|
52
56
|
}, never, Providers>;
|
|
53
57
|
/**
|
|
54
58
|
* A Cloudflare Queue Consumer that processes messages from a Queue.
|
|
@@ -87,5 +91,7 @@ export type QueueConsumer = Resource<"Cloudflare.QueueConsumer", QueueConsumerPr
|
|
|
87
91
|
* ```
|
|
88
92
|
*/
|
|
89
93
|
export declare const QueueConsumer: import("../../Resource.ts").ResourceClass<QueueConsumer>;
|
|
90
|
-
export declare const
|
|
94
|
+
export declare const QueueConsumerProviderLive: () => import("effect/Layer").Layer<Provider.Provider<QueueConsumer>, never, import("effect/unstable/http/HttpClient").HttpClient | import("@distilled.cloud/cloudflare").Credentials | CloudflareEnvironment>;
|
|
95
|
+
export declare const QueueConsumerProviderLocal: () => import("effect/Layer").Layer<Provider.Provider<QueueConsumer>, never, import("../../AlchemyContext.ts").AlchemyContext | import("../../Stack.ts").Stack | CloudflareEnvironment | LocalRuntimeState>;
|
|
96
|
+
export declare const QueueConsumerProvider: () => import("effect/Layer").Layer<Provider.Provider<QueueConsumer>, never, import("effect/unstable/http/HttpClient").HttpClient | import("../../AlchemyContext.ts").AlchemyContext | import("../../Stack.ts").Stack | import("@distilled.cloud/cloudflare").Credentials | CloudflareEnvironment | LocalRuntimeState>;
|
|
91
97
|
//# sourceMappingURL=QueueConsumer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QueueConsumer.d.ts","sourceRoot":"","sources":["../../../src/Cloudflare/Queue/QueueConsumer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"QueueConsumer.d.ts","sourceRoot":"","sources":["../../../src/Cloudflare/Queue/QueueConsumer.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,QAAQ,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,EAGL,iBAAiB,EAClB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD,MAAM,MAAM,kBAAkB,GAAG;IAC/B;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAChB;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;OAEG;IACH,QAAQ,CAAC,EAAE,qBAAqB,CAAC;CAClC,CAAC;AAEF,MAAM,WAAW,qBAAqB;IACpC;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,MAAM,aAAa,GAAG,QAAQ,CAClC,0BAA0B,EAC1B,kBAAkB,EAClB;IACE,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,qBAAqB,CAAC;CAClC,EACD,KAAK,EACL,SAAS,CACV,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,eAAO,MAAM,aAAa,0DAEzB,CAAC;AAcF,eAAO,MAAM,yBAAyB,+MAuVlC,CAAC;AAsBL,eAAO,MAAM,0BAA0B,4MAkEpC,CAAC;AAEJ,eAAO,MAAM,qBAAqB,uTAI9B,CAAC"}
|
|
@@ -1,12 +1,16 @@
|
|
|
1
1
|
import * as queues from "@distilled.cloud/cloudflare/queues";
|
|
2
2
|
import * as Effect from "effect/Effect";
|
|
3
|
+
import * as MutableHashMap from "effect/MutableHashMap";
|
|
3
4
|
import * as Option from "effect/Option";
|
|
4
5
|
import * as Schedule from "effect/Schedule";
|
|
5
6
|
import * as Stream from "effect/Stream";
|
|
6
7
|
import { isResolved } from "../../Diff.js";
|
|
8
|
+
import * as ProviderLayer from "../../Local/ProviderLayer.js";
|
|
9
|
+
import * as RpcProvider from "../../Local/RpcProvider.js";
|
|
7
10
|
import * as Provider from "../../Provider.js";
|
|
8
11
|
import { Resource } from "../../Resource.js";
|
|
9
12
|
import { CloudflareEnvironment } from "../CloudflareEnvironment.js";
|
|
13
|
+
import { isLiveId, LOCAL_ENTRY_URL, LocalRuntimeState, } from "../LocalRuntime.js";
|
|
10
14
|
/**
|
|
11
15
|
* A Cloudflare Queue Consumer that processes messages from a Queue.
|
|
12
16
|
*
|
|
@@ -49,12 +53,18 @@ export const QueueConsumer = Resource("Cloudflare.QueueConsumer");
|
|
|
49
53
|
// `.items` defeats single-page lookups that would otherwise
|
|
50
54
|
// miss late-arriving consumers under eventual consistency.
|
|
51
55
|
const findWorkerConsumer = (acct, queueId) => queues.listConsumers.items({ accountId: acct, queueId }).pipe(Stream.map(toObserved), Stream.filter((c) => c !== undefined), Stream.runHead, Effect.map(Option.getOrUndefined));
|
|
52
|
-
export const
|
|
53
|
-
|
|
56
|
+
export const QueueConsumerProviderLive = () => Provider.succeed(QueueConsumer, {
|
|
57
|
+
// The `consumerId` is not marked as stable because if you start in dev mode, the ID will change on first deploy.
|
|
58
|
+
stables: ["accountId"],
|
|
54
59
|
diff: Effect.fn(function* ({ olds, news, output }) {
|
|
55
60
|
const { accountId } = yield* yield* CloudflareEnvironment;
|
|
56
61
|
if (!isResolved(news))
|
|
57
62
|
return undefined;
|
|
63
|
+
// If either contain `dev:` IDs, we need to update to live ones.
|
|
64
|
+
// The live resource doesn't exist yet, so there's no need to replace even when we otherwise would.
|
|
65
|
+
if (!isLiveId(output?.queueId) || !isLiveId(output?.consumerId)) {
|
|
66
|
+
return { action: "update" };
|
|
67
|
+
}
|
|
58
68
|
if ((output?.accountId ?? accountId) !== accountId) {
|
|
59
69
|
return { action: "replace" };
|
|
60
70
|
}
|
|
@@ -97,7 +107,7 @@ export const QueueConsumerProvider = () => Provider.succeed(QueueConsumer, {
|
|
|
97
107
|
// updating it could clobber another team's wiring.
|
|
98
108
|
let observed;
|
|
99
109
|
let owned = false;
|
|
100
|
-
if (output?.consumerId) {
|
|
110
|
+
if (isLiveId(output?.consumerId)) {
|
|
101
111
|
const fetched = yield* queues
|
|
102
112
|
.getConsumer({
|
|
103
113
|
accountId: acct,
|
|
@@ -248,9 +258,14 @@ export const QueueConsumerProvider = () => Provider.succeed(QueueConsumer, {
|
|
|
248
258
|
queueId,
|
|
249
259
|
scriptName: news.scriptName,
|
|
250
260
|
accountId: acct,
|
|
261
|
+
deadLetterQueue: news.deadLetterQueue,
|
|
262
|
+
settings: news.settings,
|
|
251
263
|
};
|
|
252
264
|
}),
|
|
253
265
|
delete: Effect.fn(function* ({ output }) {
|
|
266
|
+
// If the consumerId is a `dev:` ID, the resource only exists locally, so we don't need to delete it from Cloudflare.
|
|
267
|
+
if (!isLiveId(output.consumerId))
|
|
268
|
+
return;
|
|
254
269
|
yield* queues
|
|
255
270
|
.deleteConsumer({
|
|
256
271
|
accountId: output.accountId,
|
|
@@ -291,6 +306,8 @@ export const QueueConsumerProvider = () => Provider.succeed(QueueConsumer, {
|
|
|
291
306
|
? fetched.scriptName
|
|
292
307
|
: output.scriptName) ?? output.scriptName,
|
|
293
308
|
accountId: output.accountId,
|
|
309
|
+
deadLetterQueue: output.deadLetterQueue,
|
|
310
|
+
settings: output.settings,
|
|
294
311
|
};
|
|
295
312
|
}
|
|
296
313
|
}
|
|
@@ -306,6 +323,8 @@ export const QueueConsumerProvider = () => Provider.succeed(QueueConsumer, {
|
|
|
306
323
|
queueId: output.queueId,
|
|
307
324
|
scriptName: match.script ?? output.scriptName,
|
|
308
325
|
accountId: output.accountId,
|
|
326
|
+
deadLetterQueue: output.deadLetterQueue,
|
|
327
|
+
settings: output.settings,
|
|
309
328
|
};
|
|
310
329
|
}
|
|
311
330
|
}
|
|
@@ -318,4 +337,55 @@ const toObserved = (c) => c.consumerId && c.type === "worker"
|
|
|
318
337
|
// ~60s budget — Worker reconcile uploads typically land in 2–10s,
|
|
319
338
|
// but a fresh container/asset deploy can stretch that.
|
|
320
339
|
const queueHandlerReadinessSchedule = Schedule.spaced("2 seconds").pipe(Schedule.both(Schedule.recurs(30)));
|
|
340
|
+
export const QueueConsumerProviderLocal = () => RpcProvider.effect(QueueConsumer, LOCAL_ENTRY_URL, Effect.gen(function* () {
|
|
341
|
+
const localRuntimeState = yield* LocalRuntimeState;
|
|
342
|
+
return {
|
|
343
|
+
diff: Effect.fn(function* ({ news, output }) {
|
|
344
|
+
const { accountId } = yield* yield* CloudflareEnvironment;
|
|
345
|
+
if (!output)
|
|
346
|
+
return { action: "update" };
|
|
347
|
+
if (!isResolved(news))
|
|
348
|
+
return undefined;
|
|
349
|
+
if (output.queueId !== news.queueId ||
|
|
350
|
+
output.accountId !== accountId) {
|
|
351
|
+
return { action: "replace" };
|
|
352
|
+
}
|
|
353
|
+
if (JSON.stringify(output.settings ?? {}) !==
|
|
354
|
+
JSON.stringify(news.settings ?? {}) ||
|
|
355
|
+
output.scriptName !== news.scriptName ||
|
|
356
|
+
output.deadLetterQueue !== news.deadLetterQueue) {
|
|
357
|
+
return { action: "update" };
|
|
358
|
+
}
|
|
359
|
+
// If the resource is a noop, add it to the local runtime state so it's available downstream.
|
|
360
|
+
// We do it here instead of in the reconcile function so it doesn't appear as an update.
|
|
361
|
+
MutableHashMap.set(localRuntimeState.queueConsumers, output.consumerId, output);
|
|
362
|
+
return { action: "noop" };
|
|
363
|
+
}),
|
|
364
|
+
read: Effect.fn(function* ({ output }) {
|
|
365
|
+
if (!output?.consumerId)
|
|
366
|
+
return undefined;
|
|
367
|
+
return MutableHashMap.get(localRuntimeState.queueConsumers, output.consumerId).pipe(Option.getOrUndefined);
|
|
368
|
+
}),
|
|
369
|
+
reconcile: Effect.fn(function* ({ news, output }) {
|
|
370
|
+
const { accountId } = yield* yield* CloudflareEnvironment;
|
|
371
|
+
const consumer = {
|
|
372
|
+
consumerId: output?.consumerId ?? `dev:${crypto.randomUUID()}`,
|
|
373
|
+
queueId: news.queueId,
|
|
374
|
+
scriptName: news.scriptName,
|
|
375
|
+
deadLetterQueue: news.deadLetterQueue,
|
|
376
|
+
accountId,
|
|
377
|
+
settings: news.settings,
|
|
378
|
+
};
|
|
379
|
+
MutableHashMap.set(localRuntimeState.queueConsumers, consumer.consumerId, consumer);
|
|
380
|
+
return consumer;
|
|
381
|
+
}),
|
|
382
|
+
delete: Effect.fn(function* ({ output }) {
|
|
383
|
+
MutableHashMap.remove(localRuntimeState.queueConsumers, output.consumerId);
|
|
384
|
+
}),
|
|
385
|
+
};
|
|
386
|
+
}));
|
|
387
|
+
export const QueueConsumerProvider = () => ProviderLayer.select({
|
|
388
|
+
local: () => QueueConsumerProviderLocal(),
|
|
389
|
+
live: () => QueueConsumerProviderLive(),
|
|
390
|
+
});
|
|
321
391
|
//# sourceMappingURL=QueueConsumer.js.map
|