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.
Files changed (94) hide show
  1. package/bin/exec.js +1 -1
  2. package/bin/exec.js.map +1 -1
  3. package/lib/Cloudflare/AiGateway/AiGatewaySpendingLimit.d.ts +165 -0
  4. package/lib/Cloudflare/AiGateway/AiGatewaySpendingLimit.d.ts.map +1 -0
  5. package/lib/Cloudflare/AiGateway/AiGatewaySpendingLimit.js +232 -0
  6. package/lib/Cloudflare/AiGateway/AiGatewaySpendingLimit.js.map +1 -0
  7. package/lib/Cloudflare/AiGateway/index.d.ts +1 -0
  8. package/lib/Cloudflare/AiGateway/index.d.ts.map +1 -1
  9. package/lib/Cloudflare/AiGateway/index.js +1 -0
  10. package/lib/Cloudflare/AiGateway/index.js.map +1 -1
  11. package/lib/Cloudflare/Bridge.d.ts +1 -0
  12. package/lib/Cloudflare/Bridge.d.ts.map +1 -1
  13. package/lib/Cloudflare/Bridge.js +1 -0
  14. package/lib/Cloudflare/Bridge.js.map +1 -1
  15. package/lib/Cloudflare/Fetcher.d.ts +2 -2
  16. package/lib/Cloudflare/Fetcher.d.ts.map +1 -1
  17. package/lib/Cloudflare/Fetcher.js.map +1 -1
  18. package/lib/Cloudflare/Hyperdrive/Hyperdrive.d.ts.map +1 -1
  19. package/lib/Cloudflare/Hyperdrive/Hyperdrive.js +6 -6
  20. package/lib/Cloudflare/Hyperdrive/Hyperdrive.js.map +1 -1
  21. package/lib/Cloudflare/Local.js +5 -2
  22. package/lib/Cloudflare/Local.js.map +1 -1
  23. package/lib/Cloudflare/LocalRuntime.d.ts +21 -0
  24. package/lib/Cloudflare/LocalRuntime.d.ts.map +1 -0
  25. package/lib/Cloudflare/LocalRuntime.js +40 -0
  26. package/lib/Cloudflare/LocalRuntime.js.map +1 -0
  27. package/lib/Cloudflare/Providers.d.ts +1 -1
  28. package/lib/Cloudflare/Providers.d.ts.map +1 -1
  29. package/lib/Cloudflare/Providers.js +3 -1
  30. package/lib/Cloudflare/Providers.js.map +1 -1
  31. package/lib/Cloudflare/Queue/Queue.d.ts +4 -1
  32. package/lib/Cloudflare/Queue/Queue.d.ts.map +1 -1
  33. package/lib/Cloudflare/Queue/Queue.js +61 -2
  34. package/lib/Cloudflare/Queue/Queue.js.map +1 -1
  35. package/lib/Cloudflare/Queue/QueueConsumer.d.ts +32 -26
  36. package/lib/Cloudflare/Queue/QueueConsumer.d.ts.map +1 -1
  37. package/lib/Cloudflare/Queue/QueueConsumer.js +73 -3
  38. package/lib/Cloudflare/Queue/QueueConsumer.js.map +1 -1
  39. package/lib/Cloudflare/Workers/Assets.js +2 -2
  40. package/lib/Cloudflare/Workers/Assets.js.map +1 -1
  41. package/lib/Cloudflare/Workers/LocalWorkerProvider.d.ts +3 -5
  42. package/lib/Cloudflare/Workers/LocalWorkerProvider.d.ts.map +1 -1
  43. package/lib/Cloudflare/Workers/LocalWorkerProvider.js +32 -25
  44. package/lib/Cloudflare/Workers/LocalWorkerProvider.js.map +1 -1
  45. package/lib/Cloudflare/Workers/Worker.d.ts +2 -4
  46. package/lib/Cloudflare/Workers/Worker.d.ts.map +1 -1
  47. package/lib/Cloudflare/Workers/Worker.js +5 -7
  48. package/lib/Cloudflare/Workers/Worker.js.map +1 -1
  49. package/lib/Local/ProviderLayer.d.ts +10 -0
  50. package/lib/Local/ProviderLayer.d.ts.map +1 -0
  51. package/lib/Local/ProviderLayer.js +7 -0
  52. package/lib/Local/ProviderLayer.js.map +1 -0
  53. package/lib/Local/RpcProvider.d.ts +4 -3
  54. package/lib/Local/RpcProvider.d.ts.map +1 -1
  55. package/lib/Local/RpcProvider.js +6 -2
  56. package/lib/Local/RpcProvider.js.map +1 -1
  57. package/lib/Local/RpcProviderProxy.js.map +1 -1
  58. package/lib/Local/RpcSerialization.js +2 -2
  59. package/lib/Local/RpcSerialization.js.map +1 -1
  60. package/lib/Planetscale/Branch.d.ts.map +1 -1
  61. package/lib/Planetscale/Branch.js +25 -3
  62. package/lib/Planetscale/Branch.js.map +1 -1
  63. package/lib/Planetscale/Database.d.ts +1 -1
  64. package/lib/Planetscale/Postgres/PostgresClusterSize.d.ts +1 -1
  65. package/lib/Planetscale/Postgres/PostgresClusterSize.d.ts.map +1 -1
  66. package/lib/Planetscale/Postgres/PostgresClusterSize.js +13 -3
  67. package/lib/Planetscale/Postgres/PostgresClusterSize.js.map +1 -1
  68. package/lib/Planetscale/Util.d.ts +1 -1
  69. package/lib/Planetscale/Util.d.ts.map +1 -1
  70. package/lib/Planetscale/Util.js +7 -5
  71. package/lib/Planetscale/Util.js.map +1 -1
  72. package/lib/tsconfig.test.tsbuildinfo +1 -1
  73. package/package.json +12 -12
  74. package/src/Cloudflare/AiGateway/AiGatewaySpendingLimit.ts +368 -0
  75. package/src/Cloudflare/AiGateway/index.ts +1 -0
  76. package/src/Cloudflare/Bridge.ts +1 -0
  77. package/src/Cloudflare/Fetcher.ts +8 -4
  78. package/src/Cloudflare/Hyperdrive/Hyperdrive.ts +6 -8
  79. package/src/Cloudflare/Local.ts +9 -5
  80. package/src/Cloudflare/LocalRuntime.ts +70 -0
  81. package/src/Cloudflare/Providers.ts +4 -0
  82. package/src/Cloudflare/Queue/Queue.ts +73 -2
  83. package/src/Cloudflare/Queue/QueueConsumer.ts +130 -28
  84. package/src/Cloudflare/Workers/Assets.ts +2 -2
  85. package/src/Cloudflare/Workers/LocalWorkerProvider.ts +39 -30
  86. package/src/Cloudflare/Workers/Worker.ts +5 -26
  87. package/src/Local/ProviderLayer.ts +22 -0
  88. package/src/Local/RpcProvider.ts +11 -5
  89. package/src/Local/RpcProviderProxy.ts +2 -2
  90. package/src/Local/RpcSerialization.ts +2 -2
  91. package/src/Planetscale/Branch.ts +38 -10
  92. package/src/Planetscale/Database.ts +1 -1
  93. package/src/Planetscale/Postgres/PostgresClusterSize.ts +16 -2
  94. package/src/Planetscale/Util.ts +7 -5
@@ -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 { LocalWorkerProvider, localRuntimeServices, } from "./Workers/LocalWorkerProvider.js";
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,EACL,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,kCAAkC,CAAC;AAE1C,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,mBAAmB,EAAE,CAAC,IAAI,CACxB,KAAK,CAAC,OAAO,CAAC,oBAAoB,EAAE,CAAC,EACrC,KAAK,CAAC,OAAO,CAAC,kBAAkB,CAAC,EACjC,SAAS,CAAC,MAAM,CACjB,CAAC"}
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;AAqBnD,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,2rBAiJnB,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 QueueProvider: () => 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>;
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;AAKxC,OAAO,KAAK,QAAQ,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;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,aAAa,yQA8GtB,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 QueueProvider = () => Provider.succeed(Queue, {
75
- stables: ["queueId", "accountId"],
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;AAEpE,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,KAAc,EAAkB,EAAE,CACxD,OAAO,KAAK,KAAK,QAAQ,IAAK,KAAa,EAAE,IAAI,KAAK,kBAAkB,CAAC;AAsB3E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0DG;AACH,MAAM,CAAC,MAAM,KAAK,GAAG,QAAQ,CAAQ,kBAAkB,CAAC,CAAC;IACvD,IAAI,EAAE,YAAY,CAAC,IAAI;CACxB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,aAAa,GAAG,GAAG,EAAE,CAChC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE;IACtB,OAAO,EAAE,CAAC,SAAS,EAAE,WAAW,CAAC;IACjC,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI,GAAG,EAAE,EAAE,IAAI,GAAG,EAAE,EAAE,MAAM,EAAE;QAC7D,MAAM,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,qBAAqB,CAAC;QAC1D,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;YAAE,OAAO,SAAS,CAAC;QACxC,IAAI,CAAC,MAAM,EAAE,SAAS,IAAI,SAAS,CAAC,KAAK,SAAS,EAAE,CAAC;YACnD,OAAO,EAAE,MAAM,EAAE,SAAS,EAAW,CAAC;QACxC,CAAC;QACD,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,eAAe,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QACnD,MAAM,OAAO,GAAG,MAAM,EAAE,SAAS;YAC/B,CAAC,CAAC,MAAM,CAAC,SAAS;YAClB,CAAC,CAAC,KAAK,CAAC,CAAC,eAAe,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1C,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;YACrB,OAAO,EAAE,MAAM,EAAE,SAAS,EAAW,CAAC;QACxC,CAAC;IACH,CAAC,CAAC;IACF,SAAS,EAAE,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI,GAAG,EAAE,EAAE,MAAM,EAAE;QACvD,MAAM,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,qBAAqB,CAAC;QAC1D,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,eAAe,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QACxD,MAAM,IAAI,GAAG,MAAM,EAAE,SAAS,IAAI,SAAS,CAAC;QAE5C,gEAAgE;QAChE,4DAA4D;QAC5D,8BAA8B;QAC9B,IAAI,QAES,CAAC;QACd,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;YACpB,QAAQ,GAAG,KAAK,CAAC,CAAC,MAAM;iBACrB,QAAQ,CAAC;gBACR,SAAS,EAAE,IAAI;gBACf,OAAO,EAAE,MAAM,CAAC,OAAO;aACxB,CAAC;iBACD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QACzD,CAAC;QACD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,QAAQ,GAAG,KAAK,CAAC,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;QAC/C,CAAC;QAED,2DAA2D;QAC3D,6DAA6D;QAC7D,8DAA8D;QAC9D,gBAAgB;QAChB,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,QAAQ,GAAG,KAAK,CAAC,CAAC,MAAM;iBACrB,WAAW,CAAC;gBACX,SAAS,EAAE,IAAI;gBACf,SAAS;aACV,CAAC;iBACD,IAAI,CACH,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAChB,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;gBAClB,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;gBAChD,IAAI,KAAK,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;oBAC9C,OAAO,KAAK,CAAC;gBACf,CAAC;gBACD,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,CACtB,UAAU,SAAS,yCAAyC,CAC7D,CAAC;YACJ,CAAC,CAAC,CACH,CACF,CAAC;QACN,CAAC;QAED,8DAA8D;QAC9D,gEAAgE;QAChE,mCAAmC;QACnC,OAAO;YACL,OAAO,EAAE,QAAQ,CAAC,OAAQ;YAC1B,SAAS,EAAE,QAAQ,CAAC,SAAU;YAC9B,SAAS,EAAE,IAAI;SAChB,CAAC;IACJ,CAAC,CAAC;IACF,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE;QACrC,KAAK,CAAC,CAAC,MAAM;aACV,WAAW,CAAC;YACX,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,OAAO,EAAE,MAAM,CAAC,OAAO;SACxB,CAAC;aACD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3C,CAAC,CAAC;IACF,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;QAC7C,MAAM,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,qBAAqB,CAAC;QAC1D,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;YACpB,OAAO,KAAK,CAAC,CAAC,MAAM;iBACjB,QAAQ,CAAC;gBACR,SAAS,EAAE,MAAM,CAAC,SAAS;gBAC3B,OAAO,EAAE,MAAM,CAAC,OAAO;aACxB,CAAC;iBACD,IAAI,CACH,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;gBACrB,OAAO,EAAE,KAAK,CAAC,OAAQ;gBACvB,SAAS,EAAE,KAAK,CAAC,SAAU;gBAC3B,SAAS,EAAE,MAAM,CAAC,SAAS;aAC5B,CAAC,CAAC,EACH,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAC9C,CAAC;QACN,CAAC;QACD,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,eAAe,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QACzD,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;QAChD,IAAI,KAAK,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;YAC9C,OAAO;gBACL,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,SAAS;aACV,CAAC;QACJ,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC,CAAC;CACH,CAAC,CAAC;AAEL,MAAM,eAAe,GAAG,CAAC,EAAU,EAAE,IAAwB,EAAE,EAAE,CAC/D,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,IAAI,IAAI;QAAE,OAAO,IAAI,CAAC;IACtB,OAAO,CAAC,KAAK,CAAC,CAAC,kBAAkB,CAAC;QAChC,EAAE;QACF,SAAS,EAAE,EAAE;KACd,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;AACpB,CAAC,CAAC,CAAC;AAEL,8DAA8D;AAC9D,6DAA6D;AAC7D,uDAAuD;AACvD,MAAM,eAAe,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,SAAiB;IACpE,MAAM,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,qBAAqB,CAAC;IAC1D,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,IAAI,CACvD,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,EAC/C,MAAM,CAAC,OAAO,EACd,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,cAAc,CAAC,CAClC,CAAC;AACJ,CAAC,CAAC,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 QueueConsumerProvider: () => import("effect/Layer").Layer<Provider.Provider<QueueConsumer>, never, import("effect/unstable/http/HttpClient").HttpClient | import("@distilled.cloud/cloudflare").Credentials | CloudflareEnvironment>;
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":"AAMA,OAAO,KAAK,QAAQ,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD,MAAM,MAAM,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;QACT;;;WAGG;QACH,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB;;WAEG;QACH,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB;;;WAGG;QACH,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB;;;WAGG;QACH,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB;;WAEG;QACH,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;CACH,CAAC;AAEF,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;CACnB,EACD,KAAK,EACL,SAAS,CACV,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,eAAO,MAAM,aAAa,0DAEzB,CAAC;AAaF,eAAO,MAAM,qBAAqB,+MAwU9B,CAAC"}
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 QueueConsumerProvider = () => Provider.succeed(QueueConsumer, {
53
- stables: ["consumerId", "accountId"],
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