alchemy 2.0.0-beta.82 → 2.0.0-beta.83

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 (72) hide show
  1. package/lib/Cloudflare/Containers/Container.d.ts +128 -40
  2. package/lib/Cloudflare/Containers/Container.d.ts.map +1 -1
  3. package/lib/Cloudflare/Containers/Container.js +124 -24
  4. package/lib/Cloudflare/Containers/Container.js.map +1 -1
  5. package/lib/Cloudflare/Containers/ContainerApplication.d.ts +59 -50
  6. package/lib/Cloudflare/Containers/ContainerApplication.d.ts.map +1 -1
  7. package/lib/Cloudflare/Containers/ContainerApplication.js.map +1 -1
  8. package/lib/Cloudflare/Containers/ContainerClient.d.ts +20 -7
  9. package/lib/Cloudflare/Containers/ContainerClient.d.ts.map +1 -1
  10. package/lib/Cloudflare/Containers/ContainerClient.js +22 -5
  11. package/lib/Cloudflare/Containers/ContainerClient.js.map +1 -1
  12. package/lib/Cloudflare/Containers/ContainerConfiguration.d.ts +132 -13
  13. package/lib/Cloudflare/Containers/ContainerConfiguration.d.ts.map +1 -1
  14. package/lib/Cloudflare/Containers/ContainerConfiguration.js +219 -35
  15. package/lib/Cloudflare/Containers/ContainerConfiguration.js.map +1 -1
  16. package/lib/Cloudflare/Containers/ContainerPlatform.d.ts +1 -1
  17. package/lib/Cloudflare/Containers/ContainerPlatform.d.ts.map +1 -1
  18. package/lib/Cloudflare/Containers/ContainerPlatform.js +21 -2
  19. package/lib/Cloudflare/Containers/ContainerPlatform.js.map +1 -1
  20. package/lib/Cloudflare/Containers/ContainerProvider.d.ts.map +1 -1
  21. package/lib/Cloudflare/Containers/ContainerProvider.js +74 -177
  22. package/lib/Cloudflare/Containers/ContainerProvider.js.map +1 -1
  23. package/lib/Cloudflare/Containers/DurableObjectApplication.d.ts +84 -0
  24. package/lib/Cloudflare/Containers/DurableObjectApplication.d.ts.map +1 -0
  25. package/lib/Cloudflare/Containers/DurableObjectApplication.js +249 -0
  26. package/lib/Cloudflare/Containers/DurableObjectApplication.js.map +1 -0
  27. package/lib/Cloudflare/Containers/LocalContainerProvider.d.ts.map +1 -1
  28. package/lib/Cloudflare/Containers/LocalContainerProvider.js +20 -41
  29. package/lib/Cloudflare/Containers/LocalContainerProvider.js.map +1 -1
  30. package/lib/Cloudflare/Containers/index.d.ts +2 -1
  31. package/lib/Cloudflare/Containers/index.d.ts.map +1 -1
  32. package/lib/Cloudflare/Containers/index.js +2 -1
  33. package/lib/Cloudflare/Containers/index.js.map +1 -1
  34. package/lib/Cloudflare/Providers.d.ts.map +1 -1
  35. package/lib/Cloudflare/Providers.js +2 -1
  36. package/lib/Cloudflare/Providers.js.map +1 -1
  37. package/lib/Cloudflare/StateStore/Api.d.ts +3 -0
  38. package/lib/Cloudflare/Workers/DurableObject.d.ts +75 -1
  39. package/lib/Cloudflare/Workers/DurableObject.d.ts.map +1 -1
  40. package/lib/Cloudflare/Workers/DurableObject.js +50 -0
  41. package/lib/Cloudflare/Workers/DurableObject.js.map +1 -1
  42. package/lib/Cloudflare/Workers/LocalWorkerProvider.d.ts.map +1 -1
  43. package/lib/Cloudflare/Workers/LocalWorkerProvider.js +29 -23
  44. package/lib/Cloudflare/Workers/LocalWorkerProvider.js.map +1 -1
  45. package/lib/Cloudflare/Workers/Worker.d.ts +2 -0
  46. package/lib/Cloudflare/Workers/Worker.d.ts.map +1 -1
  47. package/lib/Cloudflare/Workers/Worker.js.map +1 -1
  48. package/lib/Cloudflare/Workers/WorkerAsyncBindings.d.ts.map +1 -1
  49. package/lib/Cloudflare/Workers/WorkerAsyncBindings.js +67 -4
  50. package/lib/Cloudflare/Workers/WorkerAsyncBindings.js.map +1 -1
  51. package/lib/Cloudflare/Workers/WorkerBinding.d.ts +6 -0
  52. package/lib/Cloudflare/Workers/WorkerBinding.d.ts.map +1 -1
  53. package/lib/Cloudflare/Workers/WorkerProvider.d.ts.map +1 -1
  54. package/lib/Cloudflare/Workers/WorkerProvider.js +54 -8
  55. package/lib/Cloudflare/Workers/WorkerProvider.js.map +1 -1
  56. package/lib/State/HttpStateApi.d.ts +13 -13
  57. package/package.json +6 -6
  58. package/src/Cloudflare/Containers/Container.ts +126 -56
  59. package/src/Cloudflare/Containers/ContainerApplication.ts +60 -53
  60. package/src/Cloudflare/Containers/ContainerClient.ts +47 -13
  61. package/src/Cloudflare/Containers/ContainerConfiguration.ts +316 -44
  62. package/src/Cloudflare/Containers/ContainerPlatform.ts +27 -3
  63. package/src/Cloudflare/Containers/ContainerProvider.ts +96 -256
  64. package/src/Cloudflare/Containers/DurableObjectApplication.ts +382 -0
  65. package/src/Cloudflare/Containers/LocalContainerProvider.ts +20 -48
  66. package/src/Cloudflare/Containers/index.ts +10 -0
  67. package/src/Cloudflare/Providers.ts +2 -0
  68. package/src/Cloudflare/Workers/DurableObject.ts +77 -1
  69. package/src/Cloudflare/Workers/LocalWorkerProvider.ts +32 -21
  70. package/src/Cloudflare/Workers/Worker.ts +2 -0
  71. package/src/Cloudflare/Workers/WorkerAsyncBindings.ts +95 -4
  72. package/src/Cloudflare/Workers/WorkerProvider.ts +78 -13
@@ -0,0 +1,84 @@
1
+ import * as Containers from "@distilled.cloud/cloudflare/containers";
2
+ import * as Effect from "effect/Effect";
3
+ import * as Provider from "../../Provider.ts";
4
+ import { Resource } from "../../Resource.ts";
5
+ import { CloudflareEnvironment } from "../CloudflareEnvironment.ts";
6
+ import type { Providers } from "../Providers.ts";
7
+ import type { DurableObjectApplicationSettings } from "./ContainerApplication.ts";
8
+ export declare const DurableObjectApplicationTypeId = "Cloudflare.Containers.DurableObjectApplication";
9
+ export interface DurableObjectApplicationProps {
10
+ /** The Durable Object class whose namespace the application serves. */
11
+ className: string;
12
+ }
13
+ /** What each bound Container contributes to its class's application. */
14
+ export interface DurableObjectApplicationBinding {
15
+ /** The Durable Object namespace the application is attached to. */
16
+ durableObjects?: {
17
+ namespaceId: string;
18
+ };
19
+ /** The bound Container and the application-wide settings it declares. */
20
+ container?: {
21
+ id: string;
22
+ settings: DurableObjectApplicationSettings;
23
+ };
24
+ }
25
+ /**
26
+ * INTERNAL — the one container application of a Durable Object class.
27
+ *
28
+ * Cloudflare allows exactly one container application per Durable Object
29
+ * namespace. Every `schedulingPolicy: "durable_object"` Container bound to a
30
+ * class declares this resource under the same logical id, so the engine
31
+ * registers it once; each Container then binds its application-wide settings
32
+ * onto it. The images themselves are Worker upload metadata, merged by the
33
+ * Worker.
34
+ *
35
+ * @internal
36
+ */
37
+ export interface DurableObjectApplication extends Resource<typeof DurableObjectApplicationTypeId, DurableObjectApplicationProps, {
38
+ /** The application id, which equals the Durable Object namespace id. Empty before creation. */
39
+ applicationId: string;
40
+ /** The generated application name. */
41
+ applicationName: string;
42
+ /** The Cloudflare account that owns the application. */
43
+ accountId: string;
44
+ /** The Durable Object class the application serves. */
45
+ className: string;
46
+ /** The Durable Object namespace attached to the application. */
47
+ durableObjects: {
48
+ namespaceId: string;
49
+ } | undefined;
50
+ /** ISO-8601 creation time. Empty before creation. */
51
+ createdAt: string;
52
+ /** Application-wide container configuration (SSH and authorized keys). */
53
+ configuration: Containers.DurableObjectContainerConfiguration;
54
+ /** Application-wide logging. */
55
+ observability: Containers.ContainerApplicationObservability | undefined;
56
+ /** The merged settings last applied, used to reset settings a Container stops declaring. */
57
+ settings: DurableObjectApplicationSettings;
58
+ }, DurableObjectApplicationBinding, Providers> {
59
+ }
60
+ export declare const DurableObjectApplication: import("../../Resource.ts").ResourceClass<DurableObjectApplication>;
61
+ /**
62
+ * Declare the container application of `className`, hosted by `worker`. Every
63
+ * Container bound to the class calls this; the engine dedupes the declaration
64
+ * by its fully qualified id, so all of them share one resource.
65
+ */
66
+ export declare const declareDurableObjectApplication: (worker: {
67
+ LogicalId: string;
68
+ }, className: string) => Effect.Effect<DurableObjectApplication, never, Providers>;
69
+ /**
70
+ * Right after a Worker upload creates a Durable Object namespace, the
71
+ * containers API can report the namespace missing for a few seconds before it
72
+ * sees it. Retry creates that attach to it, bounded at ~30s.
73
+ */
74
+ export declare const retryNamespacePropagation: <A, E extends {
75
+ readonly _tag: string;
76
+ }, R>(effect: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>;
77
+ export declare const LiveDurableObjectApplicationProvider: () => import("effect/Layer").Layer<Provider.Provider<DurableObjectApplication>, never, CloudflareEnvironment | import("../../Stack.ts").Stack | import("../../Stage.ts").Stage | Containers.CloudflareOpContext>;
78
+ /**
79
+ * Local (dev) provider: `alchemy dev` runs every image through workerd and
80
+ * Docker, so the application is a placeholder carrying a `dev:` id.
81
+ */
82
+ export declare const LocalDurableObjectApplicationProvider: () => import("effect/Layer").Layer<Provider.Provider<DurableObjectApplication>, never, import("../../Stack.ts").Stack | import("../../Stage.ts").Stage>;
83
+ export declare const DurableObjectApplicationProvider: () => import("effect/Layer").Layer<Provider.Provider<DurableObjectApplication>, never, import("../../AlchemyContext.ts").AlchemyContext | CloudflareEnvironment | import("../../Stack.ts").Stack | import("../../Stage.ts").Stage | Containers.CloudflareOpContext>;
84
+ //# sourceMappingURL=DurableObjectApplication.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DurableObjectApplication.d.ts","sourceRoot":"","sources":["../../../src/Cloudflare/Containers/DurableObjectApplication.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,UAAU,MAAM,wCAAwC,CAAC;AACrE,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAKxC,OAAO,KAAK,QAAQ,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAwB,MAAM,mBAAmB,CAAC;AAEnE,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAGpE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,2BAA2B,CAAC;AAQlF,eAAO,MAAM,8BAA8B,mDAAmD,CAAC;AAE/F,MAAM,WAAW,6BAA6B;IAC5C,uEAAuE;IACvE,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,wEAAwE;AACxE,MAAM,WAAW,+BAA+B;IAC9C,mEAAmE;IACnE,cAAc,CAAC,EAAE;QAAE,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC;IACzC,yEAAyE;IACzE,SAAS,CAAC,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,gCAAgC,CAAA;KAAE,CAAC;CACxE;AAED;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,wBAAyB,SAAQ,QAAQ,CACxD,OAAO,8BAA8B,EACrC,6BAA6B,EAC7B;IACE,+FAA+F;IAC/F,aAAa,EAAE,MAAM,CAAC;IACtB,sCAAsC;IACtC,eAAe,EAAE,MAAM,CAAC;IACxB,wDAAwD;IACxD,SAAS,EAAE,MAAM,CAAC;IAClB,uDAAuD;IACvD,SAAS,EAAE,MAAM,CAAC;IAClB,gEAAgE;IAChE,cAAc,EAAE;QAAE,WAAW,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAC;IACpD,qDAAqD;IACrD,SAAS,EAAE,MAAM,CAAC;IAClB,0EAA0E;IAC1E,aAAa,EAAE,UAAU,CAAC,mCAAmC,CAAC;IAC9D,gCAAgC;IAChC,aAAa,EAAE,UAAU,CAAC,iCAAiC,GAAG,SAAS,CAAC;IACxE,4FAA4F;IAC5F,QAAQ,EAAE,gCAAgC,CAAC;CAC5C,EACD,+BAA+B,EAC/B,SAAS,CACV;CAAG;AAEJ,eAAO,MAAM,wBAAwB,qEAEpC,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,+BAA+B,WAAY;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,aAAa,MAAM,8DAI7F,CAAC;AAEJ;;;;GAIG;AACH,eAAO,MAAM,yBAAyB,GAAI,CAAC,EAAE,CAAC,SAAS;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAAE,CAAC,UACzE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,2BAa7B,CAAC;AAiFJ,eAAO,MAAM,oCAAoC,kNAkJ7C,CAAC;AAEL;;;GAGG;AACH,eAAO,MAAM,qCAAqC,yJAiC9C,CAAC;AAEL,eAAO,MAAM,gCAAgC,qQAIzC,CAAC"}
@@ -0,0 +1,249 @@
1
+ import * as Containers from "@distilled.cloud/cloudflare/containers";
2
+ import * as Effect from "effect/Effect";
3
+ import * as Schedule from "effect/Schedule";
4
+ import { isResolved } from "../../Diff.js";
5
+ import * as ProviderLayer from "../../Local/ProviderLayer.js";
6
+ import * as Namespace from "../../Namespace.js";
7
+ import * as Provider from "../../Provider.js";
8
+ import { Resource } from "../../Resource.js";
9
+ import { normalizeNulls } from "../../Util/stable.js";
10
+ import { CloudflareEnvironment } from "../CloudflareEnvironment.js";
11
+ import { localAccountId } from "../LocalAccount.js";
12
+ import { generateLocalId, isLiveId } from "../LocalRuntime.js";
13
+ import { createContainerApplicationName } from "./ContainerBundle.js";
14
+ import { ContainerConfigurationError, durableObjectSettingsPatch, mergeApplicationSettings, } from "./ContainerConfiguration.js";
15
+ export const DurableObjectApplicationTypeId = "Cloudflare.Containers.DurableObjectApplication";
16
+ export const DurableObjectApplication = Resource(DurableObjectApplicationTypeId);
17
+ /**
18
+ * Declare the container application of `className`, hosted by `worker`. Every
19
+ * Container bound to the class calls this; the engine dedupes the declaration
20
+ * by its fully qualified id, so all of them share one resource.
21
+ */
22
+ export const declareDurableObjectApplication = (worker, className) => Namespace.push(worker.LogicalId, DurableObjectApplication(`${className}-Containers`, { className }));
23
+ /**
24
+ * Right after a Worker upload creates a Durable Object namespace, the
25
+ * containers API can report the namespace missing for a few seconds before it
26
+ * sees it. Retry creates that attach to it, bounded at ~30s.
27
+ */
28
+ export const retryNamespacePropagation = (effect) => effect.pipe(Effect.tapError((error) => error._tag === "DurableObjectNamespaceNotFound"
29
+ ? Effect.logDebug("Cloudflare Container create: namespace not visible yet, retrying")
30
+ : Effect.void), Effect.retry({
31
+ while: (error) => error._tag === "DurableObjectNamespaceNotFound",
32
+ schedule: Schedule.spaced("2 seconds"),
33
+ times: 15,
34
+ }));
35
+ /** Whether an application id names a created, live application (not a placeholder). */
36
+ const isLiveApplication = (id) => !!id && isLiveId(id);
37
+ /** The one namespace every bound Container attaches the application to. */
38
+ const boundNamespace = (className, bindings) => {
39
+ // A stale Worker namespace map can resolve a binding without an id; it
40
+ // does not request removing the live attachment.
41
+ const ids = [
42
+ ...new Set(bindings.flatMap((b) => b.data.durableObjects?.namespaceId ? [b.data.durableObjects.namespaceId] : [])),
43
+ ];
44
+ if (ids.length > 1) {
45
+ return Effect.fail(new ContainerConfigurationError({
46
+ message: `The container application of Durable Object class '${className}' is bound to ${ids.length} namespaces (${ids.join(", ")}). A class has one namespace.`,
47
+ }));
48
+ }
49
+ return Effect.succeed(ids[0] === undefined ? undefined : { namespaceId: ids[0] });
50
+ };
51
+ const boundSettings = (className, bindings) => mergeApplicationSettings(className, bindings.flatMap((b) => (b.data.container ? [b.data.container] : [])));
52
+ /**
53
+ * Check the bound settings for conflicts at plan time. The namespace id in
54
+ * the same bindings resolves only after the Worker uploads, so check the
55
+ * settings contributions on their own once they are resolved.
56
+ */
57
+ const planSettings = (className, newBindings) => {
58
+ const contributions = (Array.isArray(newBindings) ? newBindings : []).flatMap((binding) => binding?.data?.container ? [binding.data.container] : []);
59
+ return isResolved(contributions)
60
+ ? Effect.asVoid(mergeApplicationSettings(className, contributions))
61
+ : Effect.void;
62
+ };
63
+ const placeholder = (identity) => ({
64
+ durableObjects: undefined,
65
+ configuration: {},
66
+ observability: undefined,
67
+ settings: {},
68
+ ...identity,
69
+ });
70
+ const toAttributes = (application, className, settings) => ({
71
+ applicationId: application.id,
72
+ applicationName: application.name,
73
+ accountId: application.accountId,
74
+ className,
75
+ durableObjects: normalizeNulls(application.durableObjects),
76
+ createdAt: application.createdAt,
77
+ configuration: normalizeNulls(application.configuration),
78
+ observability: normalizeNulls(application.observability ?? undefined),
79
+ settings,
80
+ });
81
+ export const LiveDurableObjectApplicationProvider = () => Provider.succeed(DurableObjectApplication, {
82
+ stables: ["accountId", "className"],
83
+ diff: Effect.fn(function* ({ news, output, newBindings }) {
84
+ if (!isResolved(news))
85
+ return undefined;
86
+ // Conflicting settings fail the plan, before anything is published.
87
+ yield* planSettings(news.className, newBindings);
88
+ if (!isResolved(newBindings))
89
+ return undefined;
90
+ const namespace = yield* boundNamespace(news.className, newBindings);
91
+ const deployed = output?.durableObjects?.namespaceId;
92
+ if (deployed !== undefined && namespace !== undefined && deployed !== namespace.namespaceId) {
93
+ return yield* new ContainerConfigurationError({
94
+ message: `The container application of Durable Object class '${news.className}' cannot move to another Durable Object namespace.`,
95
+ });
96
+ }
97
+ const { accountId } = yield* yield* CloudflareEnvironment;
98
+ if (output !== undefined &&
99
+ isLiveApplication(output.applicationId) &&
100
+ output.accountId !== accountId) {
101
+ return yield* new ContainerConfigurationError({
102
+ message: `The container application of Durable Object class '${news.className}' cannot move to another account in place.`,
103
+ });
104
+ }
105
+ // Precreate only reserves a name; reconcile creates the application
106
+ // once the Worker has created its namespace.
107
+ if (!isLiveApplication(output?.applicationId)) {
108
+ return { action: "update", stables: ["accountId", "className"] };
109
+ }
110
+ return undefined;
111
+ }),
112
+ precreate: Effect.fn(function* ({ id, news, bindings }) {
113
+ // A new application is never diffed; fail conflicting settings here,
114
+ // before the Worker is uploaded.
115
+ yield* planSettings(news.className, bindings);
116
+ const { accountId } = yield* yield* CloudflareEnvironment;
117
+ // The application needs the Worker's namespace id, which does not exist
118
+ // yet. Reserve the name so the Worker's upload can reference it.
119
+ return placeholder({
120
+ applicationId: "",
121
+ applicationName: yield* createContainerApplicationName(id, undefined),
122
+ accountId,
123
+ className: news.className,
124
+ createdAt: "",
125
+ });
126
+ }),
127
+ reconcile: Effect.fn(function* ({ id, news, bindings, output, session }) {
128
+ const { accountId } = yield* yield* CloudflareEnvironment;
129
+ const className = news.className;
130
+ // Prefer the deployed name: regenerating would target a different
131
+ // application if the generator's output for this id ever drifts.
132
+ const name = output?.applicationName || (yield* createContainerApplicationName(id, undefined));
133
+ const durableObjects = (yield* boundNamespace(className, bindings)) ??
134
+ (output?.durableObjects?.namespaceId ? output.durableObjects : undefined);
135
+ if (!durableObjects) {
136
+ return yield* new ContainerConfigurationError({
137
+ message: `The container application of Durable Object class '${className}' requires a resolved Durable Object namespace. Reconcile its Worker first.`,
138
+ });
139
+ }
140
+ const settings = yield* boundSettings(className, bindings);
141
+ // The application's id is the id of the namespace it serves.
142
+ const applicationId = durableObjects.namespaceId;
143
+ const getApplication = Containers.getContainerApplication({ accountId, applicationId });
144
+ const assertServesNamespace = (application) => application.schedulingPolicy === "durable_object" &&
145
+ application.durableObjects?.namespaceId === applicationId
146
+ ? Effect.void
147
+ : Effect.fail(new ContainerConfigurationError({
148
+ message: `The container application '${application.name}' of Durable Object namespace '${applicationId}' is not Durable Object-managed. Declare a new Durable Object class for Durable Object-managed Containers.`,
149
+ }));
150
+ // 1. Observe. The namespace belongs to this stack's Worker, so an
151
+ // application already attached to it is this class's application.
152
+ let application = yield* getApplication.pipe(Effect.catchTag("ContainerApplicationNotFound", () => Effect.succeed(undefined)));
153
+ // 2. Ensure
154
+ if (!application) {
155
+ yield* session.note(`Creating container application ${name}...`);
156
+ application = yield* retryNamespacePropagation(Containers.createDurableObjectContainerApplication({
157
+ accountId,
158
+ name,
159
+ schedulingPolicy: "durable_object",
160
+ durableObjects,
161
+ configuration: {
162
+ ...(settings.ssh !== undefined ? { wranglerSsh: settings.ssh } : {}),
163
+ ...(settings.authorizedKeys !== undefined
164
+ ? { authorizedKeys: settings.authorizedKeys }
165
+ : {}),
166
+ },
167
+ observability: settings.observability,
168
+ })).pipe(Effect.catchTag("DurableObjectAlreadyHasApplication", () => getApplication));
169
+ }
170
+ yield* assertServesNamespace(application);
171
+ // 3. Sync declared settings and reset settings no Container declares anymore.
172
+ const patch = durableObjectSettingsPatch(settings, output?.settings, application);
173
+ if (patch.configuration !== undefined || patch.observability !== undefined) {
174
+ application = yield* Containers.updateContainerApplication({
175
+ accountId,
176
+ applicationId,
177
+ ...patch,
178
+ });
179
+ }
180
+ return toAttributes(application, className, settings);
181
+ }),
182
+ delete: Effect.fn(function* ({ output }) {
183
+ if (!isLiveApplication(output.applicationId))
184
+ return;
185
+ yield* Containers.deleteContainerApplication({
186
+ accountId: output.accountId,
187
+ applicationId: output.applicationId,
188
+ }).pipe(Effect.catchTag("ContainerApplicationNotFound", () => Effect.void));
189
+ }),
190
+ read: Effect.fn(function* ({ id, olds, output }) {
191
+ const { accountId } = yield* yield* CloudflareEnvironment;
192
+ const className = olds?.className ?? output?.className ?? "";
193
+ if (output !== undefined && isLiveApplication(output.applicationId)) {
194
+ return yield* Containers.getContainerApplication({
195
+ accountId: output.accountId,
196
+ applicationId: output.applicationId,
197
+ }).pipe(Effect.map((application) => toAttributes(application, className, output.settings)), Effect.catchTag("ContainerApplicationNotFound", () => Effect.succeed(undefined)));
198
+ }
199
+ // Generated names identify this instance, so a match is ours.
200
+ const name = output?.applicationName || (yield* createContainerApplicationName(id, undefined));
201
+ const found = yield* Containers.listContainerApplications({ accountId }).pipe(Effect.map((apps) => apps.find((app) => app.name === name && app.schedulingPolicy === "durable_object")));
202
+ return found === undefined
203
+ ? undefined
204
+ : toAttributes(found, className, output?.settings ?? {});
205
+ }),
206
+ });
207
+ /**
208
+ * Local (dev) provider: `alchemy dev` runs every image through workerd and
209
+ * Docker, so the application is a placeholder carrying a `dev:` id.
210
+ */
211
+ export const LocalDurableObjectApplicationProvider = () => Provider.succeed(DurableObjectApplication, {
212
+ stables: ["accountId", "className"],
213
+ diff: Effect.fn(function* ({ news, newBindings }) {
214
+ if (!isResolved(news))
215
+ return undefined;
216
+ yield* planSettings(news.className, newBindings);
217
+ return undefined;
218
+ }),
219
+ precreate: Effect.fn(function* ({ id, news, bindings }) {
220
+ yield* planSettings(news.className, bindings);
221
+ return placeholder({
222
+ applicationId: generateLocalId(),
223
+ applicationName: yield* createContainerApplicationName(id, undefined),
224
+ accountId: yield* localAccountId,
225
+ className: news.className,
226
+ createdAt: new Date().toISOString(),
227
+ });
228
+ }),
229
+ reconcile: Effect.fn(function* ({ id, news, bindings, output }) {
230
+ return placeholder({
231
+ applicationId: output?.applicationId || generateLocalId(),
232
+ applicationName: yield* createContainerApplicationName(id, undefined),
233
+ accountId: yield* localAccountId,
234
+ className: news.className,
235
+ createdAt: output?.createdAt || new Date().toISOString(),
236
+ durableObjects: yield* boundNamespace(news.className, bindings),
237
+ settings: yield* boundSettings(news.className, bindings),
238
+ });
239
+ }),
240
+ delete: () => Effect.void,
241
+ read: Effect.fn(function* ({ output }) {
242
+ return output;
243
+ }),
244
+ });
245
+ export const DurableObjectApplicationProvider = () => ProviderLayer.dual(DurableObjectApplication, {
246
+ live: () => LiveDurableObjectApplicationProvider(),
247
+ local: () => LocalDurableObjectApplicationProvider(),
248
+ });
249
+ //# sourceMappingURL=DurableObjectApplication.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DurableObjectApplication.js","sourceRoot":"","sources":["../../../src/Cloudflare/Containers/DurableObjectApplication.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"LocalContainerProvider.d.ts","sourceRoot":"","sources":["../../../src/Cloudflare/Containers/LocalContainerProvider.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,UAAU,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,IAAI,MAAM,aAAa,CAAC;AAEpC,OAAO,KAAK,SAAS,MAAM,oBAAoB,CAAC;AAUhD,OAAO,KAAK,EAEV,oBAAoB,EAGrB,MAAM,2BAA2B,CAAC;AAgBnC;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,sBAAsB,4UAsShC,CAAC"}
1
+ {"version":3,"file":"LocalContainerProvider.d.ts","sourceRoot":"","sources":["../../../src/Cloudflare/Containers/LocalContainerProvider.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,UAAU,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,IAAI,MAAM,aAAa,CAAC;AAEpC,OAAO,KAAK,SAAS,MAAM,oBAAoB,CAAC;AAUhD,OAAO,KAAK,EAEV,oBAAoB,EAErB,MAAM,2BAA2B,CAAC;AAgBnC;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,sBAAsB,4UA2QhC,CAAC"}
@@ -4,7 +4,7 @@ import * as Path from "effect/Path";
4
4
  import * as Redacted from "effect/Redacted";
5
5
  import * as Artifacts from "../../Artifacts.js";
6
6
  import { hashDirectory } from "../../Command/Memo.js";
7
- import { deepEqual, isResolved } from "../../Diff.js";
7
+ import { isResolved } from "../../Diff.js";
8
8
  import { isInlineDockerfile } from "../../Docker/Dockerfile.js";
9
9
  import * as RpcProvider from "../../Local/RpcProvider.js";
10
10
  import { sha256Object } from "../../Util/sha256.js";
@@ -12,7 +12,7 @@ import { normalizeNulls } from "../../Util/stable.js";
12
12
  import { localAccountId } from "../LocalAccount.js";
13
13
  import { generateLocalId, LOCAL_PROVIDERS_URL } from "../LocalRuntime.js";
14
14
  import { createContainerApplicationName, makeContainerEnv, materializeInlineDockerfileContext, prepareContainerBuildContext, validateContainerImageProps, } from "./ContainerBundle.js";
15
- import { isDurableObjectContainer, durableObjectPlaceholder, namedImageHash, validateContainerConfiguration, } from "./ContainerConfiguration.js";
15
+ import { durableObjectPlaceholder, hasImageSource, isDurableObjectContainer, validateContainerConfiguration, } from "./ContainerConfiguration.js";
16
16
  import { ContainerPlatform } from "./ContainerPlatform.js";
17
17
  /**
18
18
  * Local (dev) provider for Cloudflare Container applications.
@@ -119,7 +119,6 @@ export const LocalContainerProvider = () => RpcProvider.effect(ContainerPlatform
119
119
  const news = input;
120
120
  const picked = {
121
121
  schedulingPolicy: news.schedulingPolicy,
122
- images: news.images,
123
122
  main: news.main,
124
123
  image: news.image,
125
124
  dockerfile: news.dockerfile,
@@ -142,23 +141,6 @@ export const LocalContainerProvider = () => RpcProvider.effect(ContainerPlatform
142
141
  }
143
142
  return picked;
144
143
  };
145
- /**
146
- * Prepare every named image of a Durable Object-managed container.
147
- * Each image is cached under its own `${id}-${name}` artifact key.
148
- */
149
- const prepareNamedImages = Effect.fn(function* (id, props) {
150
- const devImages = {};
151
- const hashes = {};
152
- for (const [name, source] of Object.entries(props.images ?? {})) {
153
- const image = yield* prepareImage(`${id}-${name}`, source);
154
- devImages[name] = image.dev;
155
- hashes[name] = image.hash;
156
- }
157
- return {
158
- devImages,
159
- hash: yield* namedImageHash(hashes),
160
- };
161
- });
162
144
  const placeholderConfiguration = (props, env) => normalizeNulls({
163
145
  image: "local",
164
146
  instanceType: props.instanceType,
@@ -185,19 +167,23 @@ export const LocalContainerProvider = () => RpcProvider.effect(ContainerPlatform
185
167
  yield* validateContainerConfiguration(news, output?.schedulingPolicy);
186
168
  const accountId = yield* localAccountId;
187
169
  if (isDurableObjectContainer(news)) {
188
- // workerd resolves each image by its declared name, so locally the
189
- // runtime image reference is just the name.
190
- const imageNames = Object.keys(news.images ?? {});
170
+ const attributes = durableObjectPlaceholder({
171
+ applicationId: output?.applicationId ?? generateLocalId(),
172
+ applicationName: yield* createContainerApplicationName(id, undefined),
173
+ accountId,
174
+ createdAt: output?.createdAt ?? new Date().toISOString(),
175
+ observability: news.observability,
176
+ });
177
+ if (!hasImageSource(news))
178
+ return attributes;
179
+ const { dev, hash } = yield* prepareImage(id, news);
191
180
  return {
192
- ...durableObjectPlaceholder({
193
- applicationId: output?.applicationId ?? generateLocalId(),
194
- applicationName: yield* createContainerApplicationName(id, news.name),
195
- accountId,
196
- createdAt: output?.createdAt ?? new Date().toISOString(),
197
- observability: news.observability,
198
- }),
199
- images: Object.fromEntries(imageNames.map((name) => [name, name])),
200
- ...(yield* prepareNamedImages(id, news)),
181
+ ...attributes,
182
+ // workerd resolves each image by its key in the class's image
183
+ // map, so locally the image reference is the Container's id.
184
+ image: id,
185
+ dev,
186
+ hash: { image: hash },
201
187
  };
202
188
  }
203
189
  const env = makeContainerEnv(news, accountId, bindings);
@@ -237,15 +223,8 @@ export const LocalContainerProvider = () => RpcProvider.effect(ContainerPlatform
237
223
  // disabled this check for every effectful container.
238
224
  const imageInputs = resolvedImageInputs(news);
239
225
  if (imageInputs !== undefined) {
240
- if (isDurableObjectContainer(imageInputs)) {
241
- const artifacts = yield* Artifacts.Artifacts;
242
- for (const name of Object.keys(imageInputs.images ?? {})) {
243
- yield* artifacts.delete(`container-image:${id}-${name}`);
244
- }
245
- const prepared = yield* prepareNamedImages(id, imageInputs);
246
- const changed = output.devImages === undefined ||
247
- !deepEqual(prepared.hash.images, output.hash?.images);
248
- return changed ? { action: "update" } : undefined;
226
+ if (isDurableObjectContainer(imageInputs) && !hasImageSource(imageInputs)) {
227
+ return output.image !== undefined ? { action: "update" } : undefined;
249
228
  }
250
229
  // Recompute fresh on every plan. `prepareImage` is memoized so
251
230
  // a plan's diff→precreate→reconcile chain bundles once — but
@@ -1 +1 @@
1
- {"version":3,"file":"LocalContainerProvider.js","sourceRoot":"","sources":["../../../src/Cloudflare/Containers/LocalContainerProvider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"LocalContainerProvider.js","sourceRoot":"","sources":["../../../src/Cloudflare/Containers/LocalContainerProvider.ts"],"names":[],"mappings":"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"}
@@ -2,8 +2,9 @@ export * from "./Container.ts";
2
2
  export * from "./ContainerApplication.ts";
3
3
  export * from "./ContainerBundle.ts";
4
4
  export type { ContainerClient, ContainerExecOptions, ContainerExecOutput, ContainerInfo, ContainerPort, ContainerPortError, ContainerProcess, ContainerSnapshot, ContainerSnapshotOptions, ContainerStartError, ReservedContainerKey, } from "./ContainerClient.ts";
5
- export { ContainerConfigurationError, ContainerImagePreparationError, } from "./ContainerConfiguration.ts";
5
+ export { ContainerApplicationSettingsConflict, ContainerConfigurationError, ContainerImagePreparationError, DurableObjectContainerBindingError, DurableObjectContainerConflict, DurableObjectContainersOnEffectNativeClass, } from "./ContainerConfiguration.ts";
6
6
  export { ContainerPlatform } from "./ContainerPlatform.ts";
7
7
  export * from "./ContainerProvider.ts";
8
+ export { DurableObjectApplication, DurableObjectApplicationProvider, type DurableObjectApplicationBinding, type DurableObjectApplicationProps, } from "./DurableObjectApplication.ts";
8
9
  export * from "./LocalContainerProvider.ts";
9
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Cloudflare/Containers/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,sBAAsB,CAAC;AACrC,YAAY,EACV,eAAe,EACf,oBAAoB,EACpB,mBAAmB,EACnB,aAAa,EACb,aAAa,EACb,kBAAkB,EAClB,gBAAgB,EAChB,iBAAiB,EACjB,wBAAwB,EACxB,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,2BAA2B,EAC3B,8BAA8B,GAC/B,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,cAAc,wBAAwB,CAAC;AACvC,cAAc,6BAA6B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Cloudflare/Containers/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,sBAAsB,CAAC;AACrC,YAAY,EACV,eAAe,EACf,oBAAoB,EACpB,mBAAmB,EACnB,aAAa,EACb,aAAa,EACb,kBAAkB,EAClB,gBAAgB,EAChB,iBAAiB,EACjB,wBAAwB,EACxB,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,oCAAoC,EACpC,2BAA2B,EAC3B,8BAA8B,EAC9B,kCAAkC,EAClC,8BAA8B,EAC9B,0CAA0C,GAC3C,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,cAAc,wBAAwB,CAAC;AACvC,OAAO,EACL,wBAAwB,EACxB,gCAAgC,EAChC,KAAK,+BAA+B,EACpC,KAAK,6BAA6B,GACnC,MAAM,+BAA+B,CAAC;AACvC,cAAc,6BAA6B,CAAC"}
@@ -1,8 +1,9 @@
1
1
  export * from "./Container.js";
2
2
  export * from "./ContainerApplication.js";
3
3
  export * from "./ContainerBundle.js";
4
- export { ContainerConfigurationError, ContainerImagePreparationError, } from "./ContainerConfiguration.js";
4
+ export { ContainerApplicationSettingsConflict, ContainerConfigurationError, ContainerImagePreparationError, DurableObjectContainerBindingError, DurableObjectContainerConflict, DurableObjectContainersOnEffectNativeClass, } from "./ContainerConfiguration.js";
5
5
  export { ContainerPlatform } from "./ContainerPlatform.js";
6
6
  export * from "./ContainerProvider.js";
7
+ export { DurableObjectApplication, DurableObjectApplicationProvider, } from "./DurableObjectApplication.js";
7
8
  export * from "./LocalContainerProvider.js";
8
9
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/Cloudflare/Containers/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,sBAAsB,CAAC;AAcrC,OAAO,EACL,2BAA2B,EAC3B,8BAA8B,GAC/B,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,cAAc,wBAAwB,CAAC;AACvC,cAAc,6BAA6B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/Cloudflare/Containers/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,sBAAsB,CAAC;AAcrC,OAAO,EACL,oCAAoC,EACpC,2BAA2B,EAC3B,8BAA8B,EAC9B,kCAAkC,EAClC,8BAA8B,EAC9B,0CAA0C,GAC3C,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,cAAc,wBAAwB,CAAC;AACvC,OAAO,EACL,wBAAwB,EACxB,gCAAgC,GAGjC,MAAM,+BAA+B,CAAC;AACvC,cAAc,6BAA6B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"Providers.d.ts","sourceRoot":"","sources":["../../src/Cloudflare/Providers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAGtC,OAAO,KAAK,OAAO,MAAM,qBAAqB,CAAC;AAE/C,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;AAgCtC,OAAO,KAAK,qBAAqB,MAAM,4BAA4B,CAAC;AAGpE,OAAO,KAAK,UAAU,MAAM,uBAAuB,CAAC;AAkCpD,OAAO,KAAK,YAAY,MAAM,yBAAyB,CAAC;AAmDxD,OAAO,EAAE,WAAW,EAAE,MAAM,yCAAyC,CAAC;;AAEtE,qBAAa,SAAU,SAAQ,cAAsD;CAAG;AAExF,MAAM,MAAM,oBAAoB,GAAG,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAO,SAAS,CAAC,CAAC,CAAC;AAEhF;;GAEG;AACH,eAAO,MAAM,SAAS,8kCA0hBnB,CAAC;AAEJ;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,iBAAiB,scAO3B,CAAC"}
1
+ {"version":3,"file":"Providers.d.ts","sourceRoot":"","sources":["../../src/Cloudflare/Providers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAGtC,OAAO,KAAK,OAAO,MAAM,qBAAqB,CAAC;AAE/C,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;AAgCtC,OAAO,KAAK,qBAAqB,MAAM,4BAA4B,CAAC;AAGpE,OAAO,KAAK,UAAU,MAAM,uBAAuB,CAAC;AAkCpD,OAAO,KAAK,YAAY,MAAM,yBAAyB,CAAC;AAmDxD,OAAO,EAAE,WAAW,EAAE,MAAM,yCAAyC,CAAC;;AAEtE,qBAAa,SAAU,SAAQ,cAAsD;CAAG;AAExF,MAAM,MAAM,oBAAoB,GAAG,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAO,SAAS,CAAC,CAAC,CAAC;AAEhF;;GAEG;AACH,eAAO,MAAM,SAAS,8kCA4hBnB,CAAC;AAEJ;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,iBAAiB,scAO3B,CAAC"}
@@ -189,6 +189,7 @@ export const providers = () => Layer.effect(Providers, Provider.collection([
189
189
  Configuration.Configuration,
190
190
  Connectivity.DirectoryService,
191
191
  Containers.ContainerPlatform,
192
+ Containers.DurableObjectApplication,
192
193
  ContentScanning.ContentScanning,
193
194
  ContentScanning.Expression,
194
195
  CustomCertificates.CustomCertificate,
@@ -383,7 +384,7 @@ export const providers = () => Layer.effect(Providers, Provider.collection([
383
384
  Zone.Hold,
384
385
  Zone.Setting,
385
386
  Zone.Zone,
386
- ])).pipe(Layer.provide(Layer.mergeAll(AccessApp.ApplicationProvider(), AccessCert.CertificateProvider(), AccessIdp.IdentityProviderProvider(), AccessInfraTarget.InfrastructureTargetProvider(), AccessKeyConfig.KeyConfigurationProvider(), AccessOrg.OrganizationProvider(), AccessPol.PolicyProvider(), AccessSvcToken.ServiceTokenProvider(), Account.AccountProvider(), Account.MemberProvider(), Acm.CustomTrustStoreProvider(), Acm.TotalTlsProvider(), Addressing.AddressMapProvider(), Addressing.BgpPrefixProvider(), Addressing.PrefixDelegationProvider(), Addressing.PrefixProvider(), Addressing.ServiceBindingProvider(), AI.CustomTopicsProvider(), AI.DatasetProvider(), AI.ModelProvider(), AI.DynamicRoutingProvider(), AI.EvaluationProvider(), AI.GatewayProviderProvider(), AI.GatewayResourceProvider(), AI.SearchInstanceProvider(), AI.SearchNamespaceProvider(), AI.SearchTokenProvider(), AI.SecuritySettingsProvider(), Alerting.NotificationPolicyProvider(), Alerting.NotificationWebhookProvider(), Alerting.SilenceProvider(), ApiShield.ConfigurationProvider(), ApiShield.LabelProvider(), ApiShield.OperationProvider(), ApiShield.UserSchemaProvider(), ApiToken.AccountApiTokenProvider(), ApiToken.UserApiTokenProvider(), Argo.SmartRoutingProvider(), Argo.TieredCachingProvider(), Bookmark.BookmarkProvider(), BotManagement.BotManagementProvider(), Cache.OriginCloudRegionProvider(), Cache.RegionalTieredCacheProvider(), Cache.ReserveProvider(), Cache.SmartTieredCacheProvider(), Cache.VariantsProvider(), Calls.AppProvider(), Calls.TurnKeyProvider(), Certificate.CertificateProvider(), CertificateAuthorities.HostnameAssociationProvider(), ClientCertificate.ClientCertificateProvider(), CloudConnector.RulesProvider(), CloudforceOne.ScanConfigProvider(), Configuration.ConfigurationProvider(), Connectivity.DirectoryServiceProvider(), Containers.ContainerProvider(), ContentScanning.ContentScanningProvider(), ContentScanning.ExpressionProvider(), CustomCertificates.CustomCertificateProvider(), CustomHostnames.CustomHostnameProvider(), CustomHostnames.FallbackOriginProvider(), CustomNameservers.CustomNameserverProvider(), CustomPage.CustomPageProvider(), D1.DatabaseProvider(), DdosProtection.DdosAllowlistEntryProvider(), DdosProtection.SynProtectionFilterProvider(), DdosProtection.SynProtectionRuleProvider(), DdosProtection.TcpFlowProtectionFilterProvider(), DdosProtection.TcpFlowProtectionRuleProvider(), Devices.DeviceCustomProfileProvider(), Devices.DeviceDefaultProfileProvider(), Devices.DeviceDexTestProvider(), Devices.DeviceManagedNetworkProvider(), Devices.DevicePostureIntegrationProvider(), Devices.DevicePostureRuleProvider(), Devices.DeviceSettingsProvider(),
387
+ ])).pipe(Layer.provide(Layer.mergeAll(AccessApp.ApplicationProvider(), AccessCert.CertificateProvider(), AccessIdp.IdentityProviderProvider(), AccessInfraTarget.InfrastructureTargetProvider(), AccessKeyConfig.KeyConfigurationProvider(), AccessOrg.OrganizationProvider(), AccessPol.PolicyProvider(), AccessSvcToken.ServiceTokenProvider(), Account.AccountProvider(), Account.MemberProvider(), Acm.CustomTrustStoreProvider(), Acm.TotalTlsProvider(), Addressing.AddressMapProvider(), Addressing.BgpPrefixProvider(), Addressing.PrefixDelegationProvider(), Addressing.PrefixProvider(), Addressing.ServiceBindingProvider(), AI.CustomTopicsProvider(), AI.DatasetProvider(), AI.ModelProvider(), AI.DynamicRoutingProvider(), AI.EvaluationProvider(), AI.GatewayProviderProvider(), AI.GatewayResourceProvider(), AI.SearchInstanceProvider(), AI.SearchNamespaceProvider(), AI.SearchTokenProvider(), AI.SecuritySettingsProvider(), Alerting.NotificationPolicyProvider(), Alerting.NotificationWebhookProvider(), Alerting.SilenceProvider(), ApiShield.ConfigurationProvider(), ApiShield.LabelProvider(), ApiShield.OperationProvider(), ApiShield.UserSchemaProvider(), ApiToken.AccountApiTokenProvider(), ApiToken.UserApiTokenProvider(), Argo.SmartRoutingProvider(), Argo.TieredCachingProvider(), Bookmark.BookmarkProvider(), BotManagement.BotManagementProvider(), Cache.OriginCloudRegionProvider(), Cache.RegionalTieredCacheProvider(), Cache.ReserveProvider(), Cache.SmartTieredCacheProvider(), Cache.VariantsProvider(), Calls.AppProvider(), Calls.TurnKeyProvider(), Certificate.CertificateProvider(), CertificateAuthorities.HostnameAssociationProvider(), ClientCertificate.ClientCertificateProvider(), CloudConnector.RulesProvider(), CloudforceOne.ScanConfigProvider(), Configuration.ConfigurationProvider(), Connectivity.DirectoryServiceProvider(), Containers.ContainerProvider(), Containers.DurableObjectApplicationProvider(), ContentScanning.ContentScanningProvider(), ContentScanning.ExpressionProvider(), CustomCertificates.CustomCertificateProvider(), CustomHostnames.CustomHostnameProvider(), CustomHostnames.FallbackOriginProvider(), CustomNameservers.CustomNameserverProvider(), CustomPage.CustomPageProvider(), D1.DatabaseProvider(), DdosProtection.DdosAllowlistEntryProvider(), DdosProtection.SynProtectionFilterProvider(), DdosProtection.SynProtectionRuleProvider(), DdosProtection.TcpFlowProtectionFilterProvider(), DdosProtection.TcpFlowProtectionRuleProvider(), Devices.DeviceCustomProfileProvider(), Devices.DeviceDefaultProfileProvider(), Devices.DeviceDexTestProvider(), Devices.DeviceManagedNetworkProvider(), Devices.DevicePostureIntegrationProvider(), Devices.DevicePostureRuleProvider(), Devices.DeviceSettingsProvider(),
387
388
  // Split into nested groups: a single flat mergeAll with ~200
388
389
  // arguments exceeds tsc's variadic inference ceiling and
389
390
  // silently drops the tail layers from the inferred union.