alchemy 0.40.0 → 0.41.0

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 (71) hide show
  1. package/lib/build-date.d.ts +1 -1
  2. package/lib/build-date.js +1 -1
  3. package/lib/cloudflare/bindings.d.ts +2 -1
  4. package/lib/cloudflare/bindings.d.ts.map +1 -1
  5. package/lib/cloudflare/bindings.js.map +1 -1
  6. package/lib/cloudflare/bound.d.ts +2 -1
  7. package/lib/cloudflare/bound.d.ts.map +1 -1
  8. package/lib/cloudflare/bundle/bundle-worker-dev.d.ts.map +1 -1
  9. package/lib/cloudflare/bundle/bundle-worker-dev.js +2 -1
  10. package/lib/cloudflare/bundle/bundle-worker-dev.js.map +1 -1
  11. package/lib/cloudflare/bundle/bundle-worker.d.ts.map +1 -1
  12. package/lib/cloudflare/bundle/bundle-worker.js +2 -1
  13. package/lib/cloudflare/bundle/bundle-worker.js.map +1 -1
  14. package/lib/cloudflare/container.d.ts +509 -0
  15. package/lib/cloudflare/container.d.ts.map +1 -0
  16. package/lib/cloudflare/container.js +274 -0
  17. package/lib/cloudflare/container.js.map +1 -0
  18. package/lib/cloudflare/index.d.ts +1 -0
  19. package/lib/cloudflare/index.d.ts.map +1 -1
  20. package/lib/cloudflare/index.js +1 -0
  21. package/lib/cloudflare/index.js.map +1 -1
  22. package/lib/cloudflare/worker/miniflare-worker-options.d.ts.map +1 -1
  23. package/lib/cloudflare/worker/miniflare-worker-options.js +28 -0
  24. package/lib/cloudflare/worker/miniflare-worker-options.js.map +1 -1
  25. package/lib/cloudflare/worker-metadata.d.ts +3 -0
  26. package/lib/cloudflare/worker-metadata.d.ts.map +1 -1
  27. package/lib/cloudflare/worker-metadata.js +22 -3
  28. package/lib/cloudflare/worker-metadata.js.map +1 -1
  29. package/lib/cloudflare/worker.d.ts +2 -1
  30. package/lib/cloudflare/worker.d.ts.map +1 -1
  31. package/lib/cloudflare/worker.js +39 -3
  32. package/lib/cloudflare/worker.js.map +1 -1
  33. package/lib/cloudflare/wrangler.json.js +11 -0
  34. package/lib/cloudflare/wrangler.json.js.map +1 -1
  35. package/lib/docker/api.d.ts +15 -0
  36. package/lib/docker/api.d.ts.map +1 -1
  37. package/lib/docker/api.js +59 -0
  38. package/lib/docker/api.js.map +1 -1
  39. package/lib/docker/image.d.ts +22 -4
  40. package/lib/docker/image.d.ts.map +1 -1
  41. package/lib/docker/image.js +68 -24
  42. package/lib/docker/image.js.map +1 -1
  43. package/lib/github/index.d.ts +1 -0
  44. package/lib/github/index.d.ts.map +1 -1
  45. package/lib/github/index.js +1 -0
  46. package/lib/github/index.js.map +1 -1
  47. package/lib/github/repository-webhook.d.ts +123 -0
  48. package/lib/github/repository-webhook.d.ts.map +1 -0
  49. package/lib/github/repository-webhook.js +146 -0
  50. package/lib/github/repository-webhook.js.map +1 -0
  51. package/lib/scope.d.ts +2 -0
  52. package/lib/scope.d.ts.map +1 -1
  53. package/lib/scope.js +4 -0
  54. package/lib/scope.js.map +1 -1
  55. package/package.json +3 -2
  56. package/src/build-date.ts +1 -1
  57. package/src/cloudflare/bindings.ts +2 -0
  58. package/src/cloudflare/bound.ts +9 -1
  59. package/src/cloudflare/bundle/bundle-worker-dev.ts +2 -1
  60. package/src/cloudflare/bundle/bundle-worker.ts +2 -1
  61. package/src/cloudflare/container.ts +843 -0
  62. package/src/cloudflare/index.ts +1 -0
  63. package/src/cloudflare/worker/miniflare-worker-options.ts +28 -0
  64. package/src/cloudflare/worker-metadata.ts +28 -6
  65. package/src/cloudflare/worker.ts +67 -16
  66. package/src/cloudflare/wrangler.json.ts +12 -0
  67. package/src/docker/api.ts +74 -0
  68. package/src/docker/image.ts +99 -29
  69. package/src/github/index.ts +1 -0
  70. package/src/github/repository-webhook.ts +269 -0
  71. package/src/scope.ts +5 -0
@@ -0,0 +1,509 @@
1
+ import type { Context } from "../context.ts";
2
+ import { Image, type ImageProps } from "../docker/image.ts";
3
+ import { Resource } from "../resource.ts";
4
+ import { type CloudflareApi, type CloudflareApiOptions } from "./api.ts";
5
+ export interface ContainerProps extends Omit<ImageProps, "registry" | "skipPush">, Partial<CloudflareApiOptions> {
6
+ className: string;
7
+ maxInstances?: number;
8
+ scriptName?: string;
9
+ instanceType?: InstanceType;
10
+ observability?: DeploymentObservability;
11
+ schedulingPolicy?: SchedulingPolicy;
12
+ }
13
+ /**
14
+ * @see https://developers.cloudflare.com/containers/pricing/
15
+ */
16
+ export type InstanceType = "dev" | "basic" | "standard" | (string & {});
17
+ export declare function isContainer(binding: any): binding is Container;
18
+ export type Container<T = any> = {
19
+ type: "container";
20
+ id: string;
21
+ name?: string;
22
+ className: string;
23
+ image: Image;
24
+ maxInstances?: number;
25
+ scriptName?: string;
26
+ sqlite?: true;
27
+ instanceType?: InstanceType;
28
+ observability?: DeploymentObservability;
29
+ schedulingPolicy?: SchedulingPolicy;
30
+ /**
31
+ * @internal
32
+ */
33
+ __phantom?: T;
34
+ };
35
+ export declare function Container<T>(id: string, props: ContainerProps): Promise<Container<T>>;
36
+ export interface ContainerApplicationRollout {
37
+ strategy: "rolling";
38
+ kind?: "full_auto";
39
+ stepPercentage: number;
40
+ targetConfiguration: {
41
+ image: string;
42
+ instance_type?: InstanceType;
43
+ observability: {
44
+ logs: {
45
+ enabled: boolean;
46
+ };
47
+ };
48
+ };
49
+ }
50
+ export interface ContainerApplicationProps extends CloudflareApiOptions {
51
+ name: string;
52
+ schedulingPolicy?: SchedulingPolicy;
53
+ instances?: number;
54
+ /**
55
+ * The instance type to be used for the deployment.
56
+ *
57
+ * @default "dev"
58
+ */
59
+ instanceType?: InstanceType;
60
+ /**
61
+ * The observability configuration for the deployment.
62
+ */
63
+ observability?: DeploymentObservability;
64
+ /**
65
+ * The maximum number of instances to be used for the deployment.
66
+ */
67
+ maxInstances?: number;
68
+ image: Image;
69
+ registryId?: string;
70
+ durableObjects?: {
71
+ namespaceId: string;
72
+ };
73
+ rollout?: ContainerApplicationRollout;
74
+ }
75
+ export type SchedulingPolicy = "moon" | "gpu" | "regional" | "fill_metals" | "default";
76
+ export interface ContainerApplication extends Resource<"cloudflare::ContainerApplication"> {
77
+ id: string;
78
+ name: string;
79
+ }
80
+ /**
81
+ * Deploy and manage container applications on Cloudflare's global network.
82
+ *
83
+ * ContainerApplication creates a managed container deployment that runs your Docker images
84
+ * with automatic scaling, scheduling, and integration with Cloudflare's services.
85
+ *
86
+ * @example
87
+ * // Deploy a simple web application container
88
+ * const webApp = await ContainerApplication("my-web-app", {
89
+ * name: "my-web-app",
90
+ * image: await Image("web-app", {
91
+ * name: "web-app",
92
+ * build: {
93
+ * context: "./docker/web-app"
94
+ * }
95
+ * }),
96
+ * instances: 1,
97
+ * maxInstances: 3
98
+ * });
99
+ *
100
+ * @example
101
+ * // Deploy a container with GPU support for AI workloads
102
+ * const aiApp = await ContainerApplication("ai-inference", {
103
+ * name: "ai-inference",
104
+ * image: await Image("ai-model", {
105
+ * name: "ai-model",
106
+ * build: {
107
+ * context: "./docker/ai"
108
+ * }
109
+ * }),
110
+ * schedulingPolicy: "gpu",
111
+ * instances: 2,
112
+ * maxInstances: 5
113
+ * });
114
+ *
115
+ * @example
116
+ * // Deploy a container integrated with Durable Objects
117
+ * const doApp = await ContainerApplication("stateful-app", {
118
+ * name: "stateful-app",
119
+ * image: await Image("do-app", {
120
+ * name: "do-app",
121
+ * build: {
122
+ * context: "./container"
123
+ * }
124
+ * }),
125
+ * durableObjects: {
126
+ * namespaceId: myDurableObjectNamespace.id
127
+ * },
128
+ * instances: 1,
129
+ * maxInstances: 10
130
+ * });
131
+ *
132
+ * @example
133
+ * // Create a Container binding for use in a Worker
134
+ * const worker = await Worker("my-worker", {
135
+ * name: "my-worker",
136
+ * entrypoint: "./src/worker.ts",
137
+ * bindings: {
138
+ * MY_CONTAINER: new Container("my-container", {
139
+ * className: "MyContainerClass",
140
+ * image: await Image("container-do", {
141
+ * name: "container-do",
142
+ * context: "./docker/durable-object"
143
+ * }),
144
+ * maxInstances: 100,
145
+ * name: "my-container-do"
146
+ * })
147
+ * }
148
+ * });
149
+ */
150
+ export declare const ContainerApplication: (((this: any, id: string, props?: {}) => never) & (new (_: never) => never)) | ((this: Context<ContainerApplication, ContainerApplicationProps>, _id: string, props: ContainerApplicationProps) => Promise<ContainerApplication>);
151
+ export interface ContainerApplicationData {
152
+ name: string;
153
+ scheduling_policy: string;
154
+ instances: number;
155
+ max_instances: number;
156
+ constraints: {
157
+ tier: number;
158
+ [key: string]: any;
159
+ };
160
+ configuration: {
161
+ image: string;
162
+ location: string;
163
+ vcpu: number;
164
+ memory_mib: number;
165
+ disk: any;
166
+ network: any;
167
+ command: string[];
168
+ entrypoint: string[];
169
+ runtime: string;
170
+ deployment_type: string;
171
+ observability: any;
172
+ memory: string;
173
+ [key: string]: any;
174
+ };
175
+ durable_objects: {
176
+ namespace_id: string;
177
+ [key: string]: any;
178
+ };
179
+ id: string;
180
+ account_id: string;
181
+ created_at: string;
182
+ version: number;
183
+ durable_object_namespace_id: string;
184
+ health: {
185
+ instances: any;
186
+ [key: string]: any;
187
+ };
188
+ [key: string]: any;
189
+ }
190
+ export declare function listContainerApplications(api: CloudflareApi): Promise<ContainerApplicationData[]>;
191
+ export interface CreateContainerApplicationBody {
192
+ name: string;
193
+ max_instances: number;
194
+ configuration: DeploymentConfiguration;
195
+ durable_objects?: {
196
+ namespace_id: string;
197
+ };
198
+ instances?: number;
199
+ scheduling_policy?: string;
200
+ constraints?: {
201
+ tier: number;
202
+ };
203
+ [key: string]: any;
204
+ }
205
+ export declare function createContainerApplication(api: CloudflareApi, body: CreateContainerApplicationBody): Promise<ContainerApplicationData>;
206
+ type Region = "AFR" | "APAC" | "EEUR" | "ENAM" | "WNAM" | "ME" | "OC" | "SAM" | "WEUR" | (string & {});
207
+ type City = "AFR" | "APAC" | "EEUR" | "ENAM" | "WNAM" | "ME" | "OC" | "SAM" | "WEUR" | (string & {});
208
+ export type UpdateApplicationRequestBody = {
209
+ /**
210
+ * Number of deployments to maintain within this applicaiton. This can be used to scale the appliation up/down.
211
+ */
212
+ instances?: number;
213
+ max_instances?: number;
214
+ affinities?: {
215
+ colocation?: "datacenter";
216
+ };
217
+ scheduling_policy?: SchedulingPolicy;
218
+ constraints?: {
219
+ region?: Region;
220
+ tier?: number;
221
+ regions?: Array<Region>;
222
+ cities?: Array<City>;
223
+ };
224
+ /**
225
+ * The deployment configuration of all deployments created by this application.
226
+ * Right now, if you modify the application configuration, only new deployments
227
+ * created will have the new configuration. You can delete old deployments to
228
+ * release new instances.
229
+ *
230
+ * TODO(sam): should this trigger a replacement?
231
+ */
232
+ configuration?: DeploymentConfiguration;
233
+ };
234
+ export declare function updateContainerApplication(api: CloudflareApi, applicationId: string, body: UpdateApplicationRequestBody): Promise<ContainerApplicationData>;
235
+ export declare function deleteContainerApplication(api: CloudflareApi, applicationId: string): Promise<any>;
236
+ interface CreateRolloutApplicationRequest {
237
+ description: string;
238
+ strategy: "rolling";
239
+ kind?: "full_auto";
240
+ step_percentage: number;
241
+ target_configuration: DeploymentConfiguration;
242
+ }
243
+ interface CreateRolloutApplicationResponse {
244
+ id: string;
245
+ created_at: string;
246
+ last_updated_at: string;
247
+ description: string;
248
+ status: "progressing" | "completed" | "failed" | (string & {});
249
+ health: {
250
+ instances: {
251
+ healthy: number;
252
+ failed: number;
253
+ starting: number;
254
+ scheduling: number;
255
+ };
256
+ };
257
+ kind: "full_auto" | (string & {});
258
+ strategy: "rolling" | (string & {});
259
+ current_configuration: {
260
+ image: string;
261
+ observability?: {
262
+ logs?: {
263
+ enabled: boolean;
264
+ };
265
+ logging?: {
266
+ enabled: boolean;
267
+ };
268
+ };
269
+ };
270
+ target_configuration: DeploymentConfiguration;
271
+ current_version: number;
272
+ target_version: number;
273
+ steps: Array<{
274
+ id: number;
275
+ status: "progressing" | "pending" | "completed" | "failed" | (string & {});
276
+ step_size: {
277
+ percentage: number;
278
+ };
279
+ description: string;
280
+ started_at?: string;
281
+ }>;
282
+ progress: {
283
+ total_steps: number;
284
+ current_step: number;
285
+ updated_instances: number;
286
+ total_instances: number;
287
+ };
288
+ }
289
+ export declare function createContainerApplicationRollout(api: CloudflareApi, applicationId: string, body: CreateRolloutApplicationRequest): Promise<CreateRolloutApplicationResponse>;
290
+ export type ImageRegistryCredentialsConfiguration = {
291
+ permissions: Array<"pull" | "push">;
292
+ expiration_minutes: number;
293
+ };
294
+ export declare function getContainerCredentials(api: CloudflareApi, registryId?: string): Promise<{
295
+ user?: string;
296
+ username?: string;
297
+ password: string;
298
+ }>;
299
+ export declare const getCloudflareRegistryWithAccountNamespace: (accountID: string, tag: string) => string;
300
+ export declare const getCloudflareContainerRegistry: () => string;
301
+ /**
302
+ * Given a container image that is a registry link, this function
303
+ * returns true if the link points the Cloudflare container registry
304
+ * (defined as per `getCloudflareContainerRegistry` above)
305
+ */
306
+ export declare function isCloudflareRegistryLink(image: string): boolean;
307
+ /** Prefixes with the cloudflare-dev namespace. The name should be the container's DO classname, and the tag a build uuid. */
308
+ export declare const getDevContainerImageName: (name: string, tag: string) => string;
309
+ export declare const MF_DEV_CONTAINER_PREFIX = "cloudflare-dev";
310
+ export interface ContainerIdentity {
311
+ account_id: string;
312
+ external_account_id: string;
313
+ legacy_identity: string;
314
+ capabilities: string[];
315
+ limits: {
316
+ account_id: string;
317
+ vcpu_per_deployment: number;
318
+ memory_mib_per_deployment: number;
319
+ memory_per_deployment: string;
320
+ disk_per_deployment: string;
321
+ disk_mb_per_deployment: number;
322
+ total_vcpu: number;
323
+ total_memory_mib: number;
324
+ node_group: string;
325
+ ipv4s: number;
326
+ network_modes: string[];
327
+ total_disk_mb: number;
328
+ total_memory: string;
329
+ };
330
+ locations: any[];
331
+ defaults: {
332
+ vcpus: number;
333
+ memory_mib: number;
334
+ memory: string;
335
+ disk_mb: number;
336
+ };
337
+ }
338
+ export declare function getContainerIdentity(api: CloudflareApi): Promise<ContainerIdentity>;
339
+ /**
340
+ * Duration string. From Go documentation:
341
+ * A string representing the duration in the form "3d1h3m". Leading zero units are omitted.
342
+ * As a special case, durations less than one second format use a smaller unit (milli-, micro-, or nanoseconds)
343
+ * to ensure that the leading digit is non-zero.
344
+ */
345
+ export type Duration = string;
346
+ interface DeploymentObservability {
347
+ logs?: {
348
+ enabled: boolean;
349
+ };
350
+ }
351
+ export type DeploymentConfiguration = {
352
+ /**
353
+ * The image to be used for the deployment.
354
+ */
355
+ image: string;
356
+ /**
357
+ * The instance type to be used for the deployment.
358
+ */
359
+ instance_type?: InstanceType;
360
+ /**
361
+ * The observability configuration for the deployment.
362
+ */
363
+ observability?: DeploymentObservability;
364
+ /**
365
+ * A list of SSH public key IDs from the account
366
+ */
367
+ ssh_public_key_ids?: Array<string>;
368
+ /**
369
+ * A list of objects with secret names and the their access types from the account
370
+ */
371
+ secrets?: Array<{
372
+ /**
373
+ * The name of the secret within the container
374
+ */
375
+ name: string;
376
+ type: "env";
377
+ /**
378
+ * Corresponding secret name from the account
379
+ */
380
+ secret: string;
381
+ }>;
382
+ /**
383
+ * Specify the vcpu to be used for the deployment. The default will be the one configured for the account.
384
+ */
385
+ vcpu?: number;
386
+ /**
387
+ * Specify the memory to be used for the deployment. The default will be the one configured for the account.
388
+ */
389
+ memory?: string;
390
+ /**
391
+ * The disk configuration for this deployment
392
+ */
393
+ disk?: {
394
+ size: string;
395
+ };
396
+ /**
397
+ * Container environment variables
398
+ */
399
+ environment_variables?: Array<{
400
+ name: string;
401
+ value: string;
402
+ }>;
403
+ /**
404
+ * Deployment labels
405
+ */
406
+ labels?: Array<{
407
+ name: string;
408
+ value: string;
409
+ }>;
410
+ network?: {
411
+ /**
412
+ * Assign an IPv4 address to the deployment. One of 'none' (default), 'predefined' (allocate one from a set of IPv4 addresses in the global pool), 'account' (allocate one from a set of IPv4 addresses preassigned in the account pool). Only applicable to "public" mode.
413
+ *
414
+ */
415
+ assign_ipv4?: "none" | "predefined" | "account";
416
+ /**
417
+ * Assign an IPv6 address to the deployment. One of 'predefined' (allocate one from a set of IPv6 addresses in the global pool), 'account' (allocate one from a set of IPv6 addresses preassigned in the account pool). The container will always be assigned to an IPv6 if the networking mode is "public".
418
+ *
419
+ */
420
+ assign_ipv6?: "none" | "predefined" | "account";
421
+ mode?: "public" | "private";
422
+ };
423
+ command?: string[];
424
+ entrypoint?: string[];
425
+ dns?: {
426
+ /**
427
+ * List of DNS servers that the deployment will use to resolve domain names. You can only specify a maximum of 3.
428
+ */
429
+ servers?: Array<string>;
430
+ /**
431
+ * The container resolver will append these domains to every resolve query. For example, if you have 'google.com',
432
+ * and your deployment queries 'web', it will append 'google.com' to 'web' in the search query before trying 'web'.
433
+ * Limited to 6 domains.
434
+ */
435
+ searches?: Array<string>;
436
+ };
437
+ ports?: Array<{
438
+ /**
439
+ * The name of the port. The port name should be unique for each deployment. Minimum length of 1 and maximum length of 15. No consecutive dashes. If the name is 'web-ui', the container will receive an environment variable as follows:
440
+ * - CLOUDFLARE_PORT_WEB_UI: Port inside the container
441
+ * - CLOUDFLARE_HOST_PORT_WEB_UI: Port outside the container
442
+ * - CLOUDFLARE_HOST_IP_WEB_UI: Address of the external network interface the port is allocated on
443
+ * - CLOUDFLARE_HOST_ADDR_WEB_UI: CLOUDFLARE_HOST_ADDR_WEB_UI ':' CLOUDFLARE_HOST_PORT_WEB_UI
444
+ *
445
+ */
446
+ name: string;
447
+ /**
448
+ * Optional port number, it's assigned only if the user specified it. If it's not specified, the datacenter scheduler will decide it.
449
+ */
450
+ port?: number;
451
+ }>;
452
+ /**
453
+ * Health and readiness checks for this deployment.
454
+ */
455
+ checks?: Array<{
456
+ /**
457
+ * Optional name for the check. If omitted, a name will be generated automatically.
458
+ */
459
+ name?: string;
460
+ /**
461
+ * The type of check to perform. A TCP check succeeds if it can connect to the provided port. An HTTP check succeeds if it receives a successful HTTP response (2XX)
462
+ */
463
+ type: "http" | "tcp";
464
+ /**
465
+ * Connect to the port using TLS
466
+ */
467
+ tls?: boolean;
468
+ /**
469
+ * The name of the port defined in the "ports" property of the deployment
470
+ */
471
+ port: string;
472
+ /**
473
+ * Configuration for HTTP checks. Only valid when "type" is "http"
474
+ */
475
+ http?: {
476
+ method?: "GET" | "POST" | "PUT" | "PATCH" | "DELETE" | "OPTIONS" | "HEAD";
477
+ /**
478
+ * If the method is one of POST, PATCH or PUT, this is required. It's the body that will be passed to the HTTP healthcheck request.
479
+ */
480
+ body?: string;
481
+ /**
482
+ * Path that will be used to perform the healthcheck.
483
+ */
484
+ path?: string;
485
+ /**
486
+ * HTTP headers to include in the request.
487
+ */
488
+ headers?: Record<string, any>;
489
+ };
490
+ /**
491
+ * How often the check should be performed
492
+ */
493
+ interval: Duration;
494
+ /**
495
+ * The amount of time to wait for the check to complete before considering the check to have failed
496
+ */
497
+ timeout: Duration;
498
+ /**
499
+ * Number of times to attempt the check before considering it to have failed
500
+ */
501
+ retries?: number;
502
+ /**
503
+ * The kind of check. A failed "healthy" check affects a deployment's "healthy" status, while a failed "ready" check affects a deployment's "ready" status.
504
+ */
505
+ kind: "health" | "ready";
506
+ }>;
507
+ };
508
+ export {};
509
+ //# sourceMappingURL=container.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"container.d.ts","sourceRoot":"","sources":["../../src/cloudflare/container.ts"],"names":[],"mappings":"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"}