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
@@ -19,7 +19,7 @@ import { DockerApi } from "./api.js";
19
19
  * }
20
20
  * });
21
21
  */
22
- export const Image = Resource("docker::Image", async function (_id, props) {
22
+ export const Image = Resource("docker::Image", async function (id, props) {
23
23
  // Initialize Docker API client
24
24
  const api = new DockerApi();
25
25
  if (this.phase === "delete") {
@@ -30,27 +30,41 @@ export const Image = Resource("docker::Image", async function (_id, props) {
30
30
  else {
31
31
  // Normalize properties
32
32
  const tag = props.tag || "latest";
33
- const imageRef = `${props.name}:${tag}`;
34
- // Validate build context
35
- const { context } = props.build;
33
+ const name = props.name || id;
34
+ const imageRef = `${name}:${tag}`;
35
+ let context;
36
+ let dockerfile;
37
+ if (props.build?.dockerfile && props.build?.context) {
38
+ context = path.resolve(props.build.context);
39
+ dockerfile = path.resolve(context, props.build.dockerfile);
40
+ }
41
+ else if (props.build?.dockerfile) {
42
+ context = process.cwd();
43
+ dockerfile = path.resolve(context, props.build.dockerfile);
44
+ }
45
+ else if (props.build?.context) {
46
+ context = path.resolve(props.build.context);
47
+ dockerfile = path.resolve(context, "Dockerfile");
48
+ }
49
+ else {
50
+ context = process.cwd();
51
+ dockerfile = path.resolve(context, "Dockerfile");
52
+ }
36
53
  await fs.access(context);
37
- // Determine Dockerfile path
38
- const dockerfile = props.build.dockerfile || "Dockerfile";
39
- const dockerfilePath = path.join(context, dockerfile);
40
- await fs.access(dockerfilePath);
54
+ await fs.access(dockerfile);
41
55
  // Prepare build options
42
- const buildOptions = props.build.buildArgs || {};
56
+ const buildOptions = props.build?.buildArgs || {};
43
57
  // Add platform if specified
44
58
  let buildArgs = ["build", "-t", imageRef];
45
- if (props.build.platform) {
59
+ if (props.build?.platform) {
46
60
  buildArgs.push("--platform", props.build.platform);
47
61
  }
48
62
  // Add target if specified
49
- if (props.build.target) {
63
+ if (props.build?.target) {
50
64
  buildArgs.push("--target", props.build.target);
51
65
  }
52
66
  // Add cache sources if specified
53
- if (props.build.cacheFrom && props.build.cacheFrom.length > 0) {
67
+ if (props.build?.cacheFrom && props.build.cacheFrom.length > 0) {
54
68
  for (const cacheSource of props.build.cacheFrom) {
55
69
  buildArgs.push("--cache-from", cacheSource);
56
70
  }
@@ -59,30 +73,60 @@ export const Image = Resource("docker::Image", async function (_id, props) {
59
73
  for (const [key, value] of Object.entries(buildOptions)) {
60
74
  buildArgs.push("--build-arg", `${key}="${value}"`);
61
75
  }
62
- // Add dockerfile if not the default
63
- if (props.build.dockerfile && props.build.dockerfile !== "Dockerfile") {
64
- buildArgs.push("-f", props.build.dockerfile);
65
- }
76
+ buildArgs.push("-f", dockerfile);
66
77
  // Add context path
67
- buildArgs.push(props.build.context);
78
+ buildArgs.push(context);
68
79
  // Execute build command
69
- console.log(`Building Docker image: ${imageRef}`);
70
80
  const { stdout } = await api.exec(buildArgs);
71
81
  // Extract image ID from build output if available
72
82
  const imageIdMatch = /Successfully built ([a-f0-9]+)/.exec(stdout);
73
83
  const imageId = imageIdMatch ? imageIdMatch[1] : undefined;
74
- console.log(`Successfully built Docker image: ${imageRef}`);
75
84
  // Handle push if required
76
85
  let repoDigest;
77
- if (!props.skipPush) {
78
- console.log(`Pushing Docker image: ${imageRef}`);
79
- // TODO: Implement push once API supports it
80
- console.warn("Image pushing is not yet implemented");
86
+ let finalImageRef = imageRef;
87
+ if (props.registry && !props.skipPush) {
88
+ const { server, username, password } = props.registry;
89
+ // Ensure the registry server does not have trailing slash
90
+ const registryHost = server.replace(/\/$/, "");
91
+ // Determine if the built image already includes a registry host (e.g. ghcr.io/user/repo)
92
+ const firstSegment = imageRef.split("/")[0];
93
+ const hasRegistryPrefix = firstSegment.includes(".");
94
+ // Compose the target image reference that will be pushed
95
+ const targetImage = hasRegistryPrefix
96
+ ? imageRef // already fully-qualified
97
+ : `${registryHost}/${imageRef}`;
98
+ try {
99
+ // Authenticate to registry
100
+ await api.login(registryHost, username, password.unencrypted);
101
+ // Tag local image with fully qualified name if necessary
102
+ if (targetImage !== imageRef) {
103
+ await api.exec(["tag", imageRef, targetImage]);
104
+ }
105
+ // Push the image
106
+ const { stdout: pushOut } = await api.exec(["push", targetImage]);
107
+ // Attempt to extract the repo digest from push output
108
+ const digestMatch = /digest:\s+([a-z0-9]+:[a-f0-9]{64})/.exec(pushOut);
109
+ if (digestMatch) {
110
+ const digestHash = digestMatch[1];
111
+ // Strip tag (anything after last :) to build image@digest reference
112
+ const [repoWithoutTag] = targetImage.split(":").length > 2
113
+ ? [targetImage] // unlikely but safety
114
+ : [targetImage.substring(0, targetImage.lastIndexOf(":"))];
115
+ repoDigest = `${repoWithoutTag}@${digestHash}`;
116
+ }
117
+ // Update the final image reference to point at the pushed image
118
+ finalImageRef = targetImage;
119
+ }
120
+ finally {
121
+ // Always try to logout – failures are non-fatal
122
+ await api.logout(registryHost);
123
+ }
81
124
  }
82
125
  // Return the resource using this() to construct output
83
126
  return this({
84
127
  ...props,
85
- imageRef,
128
+ name,
129
+ imageRef: finalImageRef,
86
130
  imageId,
87
131
  repoDigest,
88
132
  builtAt: Date.now(),
@@ -1 +1 @@
1
- {"version":3,"file":"image.js","sourceRoot":"","sources":["../../src/docker/image.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"image.js","sourceRoot":"","sources":["../../src/docker/image.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  export * from "./comment.ts";
2
2
  export * from "./repository-environment.ts";
3
+ export * from "./repository-webhook.ts";
3
4
  export * from "./secret.ts";
4
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/github/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,6BAA6B,CAAC;AAC5C,cAAc,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/github/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yBAAyB,CAAC;AACxC,cAAc,aAAa,CAAC"}
@@ -1,4 +1,5 @@
1
1
  export * from "./comment.js";
2
2
  export * from "./repository-environment.js";
3
+ export * from "./repository-webhook.js";
3
4
  export * from "./secret.js";
4
5
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/github/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,6BAA6B,CAAC;AAC5C,cAAc,aAAa,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/github/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yBAAyB,CAAC;AACxC,cAAc,aAAa,CAAC"}
@@ -0,0 +1,123 @@
1
+ import type { Context } from "../context.ts";
2
+ import { Resource } from "../resource.ts";
3
+ /**
4
+ * Properties for creating or updating a GitHub Repository Webhook
5
+ */
6
+ export interface RepositoryWebhookProps {
7
+ /**
8
+ * Repository owner (user or organization)
9
+ */
10
+ owner: string;
11
+ /**
12
+ * Repository name
13
+ */
14
+ repository: string;
15
+ /**
16
+ * The URL to which the payloads will be delivered
17
+ */
18
+ url: string;
19
+ /**
20
+ * Webhook secret for payload validation
21
+ * @default undefined
22
+ */
23
+ secret?: string;
24
+ /**
25
+ * The media type used to serialize the payloads
26
+ * @default "application/json"
27
+ */
28
+ contentType?: "application/json" | "application/x-www-form-urlencoded";
29
+ /**
30
+ * Determines whether the SSL certificate of the host for url will be verified
31
+ * @default false
32
+ */
33
+ insecureSsl?: boolean;
34
+ /**
35
+ * Determines if notifications are sent when the webhook is triggered
36
+ * @default true
37
+ */
38
+ active?: boolean;
39
+ /**
40
+ * Determines what events the hook is triggered for
41
+ * @default ["push"]
42
+ */
43
+ events?: string[];
44
+ /**
45
+ * Optional GitHub API token (overrides environment variable)
46
+ * If not provided, will use GITHUB_TOKEN environment variable
47
+ * @default process.env.GITHUB_TOKEN
48
+ */
49
+ token?: string;
50
+ }
51
+ /**
52
+ * Output returned after Repository Webhook creation/update
53
+ */
54
+ export interface RepositoryWebhook extends Resource<"github::RepositoryWebhook">, RepositoryWebhookProps {
55
+ /**
56
+ * The ID of the resource
57
+ */
58
+ id: string;
59
+ /**
60
+ * The numeric ID of the webhook in GitHub
61
+ */
62
+ webhookId: number;
63
+ /**
64
+ * The webhook URL that was configured
65
+ */
66
+ url: string;
67
+ /**
68
+ * Time at which the object was created
69
+ */
70
+ createdAt: string;
71
+ /**
72
+ * Time at which the object was last updated
73
+ */
74
+ updatedAt: string;
75
+ /**
76
+ * The ping URL for the webhook
77
+ */
78
+ pingUrl: string;
79
+ /**
80
+ * The test URL for the webhook
81
+ */
82
+ testUrl: string;
83
+ }
84
+ /**
85
+ * Resource for managing GitHub repository webhooks
86
+ *
87
+ * Webhooks allow external services to be notified when certain events happen in a repository.
88
+ * This resource manages the full lifecycle of repository webhooks including creation, updates, and deletion.
89
+ *
90
+ * @example
91
+ * // Create a basic webhook for push events
92
+ * const pushWebhook = await RepositoryWebhook("push-webhook", {
93
+ * owner: "my-org",
94
+ * repository: "my-repo",
95
+ * url: "https://my-service.com/github-webhook",
96
+ * events: ["push"]
97
+ * });
98
+ *
99
+ * @example
100
+ * // Create a webhook with secret validation for multiple events
101
+ * const ciWebhook = await RepositoryWebhook("ci-webhook", {
102
+ * owner: "my-org",
103
+ * repository: "my-repo",
104
+ * url: "https://ci.example.com/webhook",
105
+ * secret: "my-webhook-secret",
106
+ * events: ["push", "pull_request", "release"],
107
+ * contentType: "application/json"
108
+ * });
109
+ *
110
+ * @example
111
+ * // Create a webhook for all events with custom SSL settings
112
+ * const monitoringWebhook = await RepositoryWebhook("monitoring-webhook", {
113
+ * owner: "my-org",
114
+ * repository: "my-repo",
115
+ * url: "https://monitoring.internal.com/github",
116
+ * secret: "super-secret-key",
117
+ * events: ["*"], // All events
118
+ * insecureSsl: true, // For internal services with self-signed certs
119
+ * contentType: "application/x-www-form-urlencoded"
120
+ * });
121
+ */
122
+ export declare const RepositoryWebhook: (((this: any, id: string, props?: {}) => never) & (new (_: never) => never)) | ((this: Context<RepositoryWebhook>, _id: string, props: RepositoryWebhookProps) => Promise<RepositoryWebhook>);
123
+ //# sourceMappingURL=repository-webhook.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"repository-webhook.d.ts","sourceRoot":"","sources":["../../src/github/repository-webhook.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAI1C;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,GAAG,EAAE,MAAM,CAAC;IAEZ;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;OAGG;IACH,WAAW,CAAC,EAAE,kBAAkB,GAAG,mCAAmC,CAAC;IAEvE;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAElB;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,iBACf,SAAQ,QAAQ,CAAC,2BAA2B,CAAC,EAC3C,sBAAsB;IACxB;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IAEX;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,GAAG,EAAE,MAAM,CAAC;IAEZ;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,eAAO,MAAM,iBAAiB,yFAGpB,OAAO,CAAC,iBAAiB,CAAC,OAC3B,MAAM,SACJ,sBAAsB,KAC5B,OAAO,CAAC,iBAAiB,CAAC,CAwH9B,CAAC"}
@@ -0,0 +1,146 @@
1
+ import { Resource } from "../resource.js";
2
+ import { logger } from "../util/logger.js";
3
+ import { createGitHubClient, verifyGitHubAuth } from "./client.js";
4
+ /**
5
+ * Resource for managing GitHub repository webhooks
6
+ *
7
+ * Webhooks allow external services to be notified when certain events happen in a repository.
8
+ * This resource manages the full lifecycle of repository webhooks including creation, updates, and deletion.
9
+ *
10
+ * @example
11
+ * // Create a basic webhook for push events
12
+ * const pushWebhook = await RepositoryWebhook("push-webhook", {
13
+ * owner: "my-org",
14
+ * repository: "my-repo",
15
+ * url: "https://my-service.com/github-webhook",
16
+ * events: ["push"]
17
+ * });
18
+ *
19
+ * @example
20
+ * // Create a webhook with secret validation for multiple events
21
+ * const ciWebhook = await RepositoryWebhook("ci-webhook", {
22
+ * owner: "my-org",
23
+ * repository: "my-repo",
24
+ * url: "https://ci.example.com/webhook",
25
+ * secret: "my-webhook-secret",
26
+ * events: ["push", "pull_request", "release"],
27
+ * contentType: "application/json"
28
+ * });
29
+ *
30
+ * @example
31
+ * // Create a webhook for all events with custom SSL settings
32
+ * const monitoringWebhook = await RepositoryWebhook("monitoring-webhook", {
33
+ * owner: "my-org",
34
+ * repository: "my-repo",
35
+ * url: "https://monitoring.internal.com/github",
36
+ * secret: "super-secret-key",
37
+ * events: ["*"], // All events
38
+ * insecureSsl: true, // For internal services with self-signed certs
39
+ * contentType: "application/x-www-form-urlencoded"
40
+ * });
41
+ */
42
+ export const RepositoryWebhook = Resource("github::RepositoryWebhook", async function (_id, props) {
43
+ // Create authenticated Octokit client
44
+ const octokit = await createGitHubClient({
45
+ token: props.token,
46
+ });
47
+ // Verify authentication and permissions
48
+ if (!this.quiet) {
49
+ await verifyGitHubAuth(octokit, props.owner, props.repository);
50
+ }
51
+ if (this.phase === "delete") {
52
+ if (this.output?.webhookId) {
53
+ try {
54
+ // Delete the webhook
55
+ await octokit.rest.repos.deleteWebhook({
56
+ owner: props.owner,
57
+ repo: props.repository,
58
+ hook_id: this.output.webhookId,
59
+ });
60
+ }
61
+ catch (error) {
62
+ // Ignore 404 errors (webhook already deleted)
63
+ if (error.status === 404) {
64
+ logger.log("Webhook doesn't exist, ignoring");
65
+ }
66
+ else {
67
+ throw error;
68
+ }
69
+ }
70
+ }
71
+ // Return void (a deleted resource has no content)
72
+ return this.destroy();
73
+ }
74
+ try {
75
+ const webhookConfig = {
76
+ url: props.url,
77
+ content_type: props.contentType || "application/json",
78
+ insecure_ssl: props.insecureSsl ? "1" : "0",
79
+ ...(props.secret && { secret: props.secret }),
80
+ };
81
+ const events = props.events || ["push"];
82
+ const active = props.active !== false; // Default to true
83
+ let webhookData;
84
+ let webhookId;
85
+ if (this.phase === "update" && this.output?.webhookId) {
86
+ // Update existing webhook
87
+ const { data: updatedWebhook } = await octokit.rest.repos.updateWebhook({
88
+ owner: props.owner,
89
+ repo: props.repository,
90
+ hook_id: this.output.webhookId,
91
+ config: webhookConfig,
92
+ events,
93
+ active,
94
+ });
95
+ webhookData = updatedWebhook;
96
+ webhookId = this.output.webhookId;
97
+ }
98
+ else {
99
+ // Create new webhook
100
+ const { data: createdWebhook } = await octokit.rest.repos.createWebhook({
101
+ owner: props.owner,
102
+ repo: props.repository,
103
+ name: "web", // GitHub webhook type
104
+ config: webhookConfig,
105
+ events,
106
+ active,
107
+ });
108
+ webhookData = createdWebhook;
109
+ webhookId = createdWebhook.id;
110
+ }
111
+ // Return webhook details
112
+ return this({
113
+ id: `${props.owner}/${props.repository}/webhook/${webhookId}`,
114
+ webhookId,
115
+ owner: props.owner,
116
+ repository: props.repository,
117
+ url: props.url,
118
+ secret: props.secret,
119
+ contentType: props.contentType || "application/json",
120
+ insecureSsl: props.insecureSsl,
121
+ active: props.active,
122
+ events: props.events || ["push"],
123
+ token: props.token,
124
+ createdAt: webhookData.created_at,
125
+ updatedAt: webhookData.updated_at,
126
+ pingUrl: webhookData.ping_url,
127
+ testUrl: webhookData.test_url,
128
+ });
129
+ }
130
+ catch (error) {
131
+ if (error.status === 403 &&
132
+ error.message?.includes("Must have admin rights")) {
133
+ logger.error("\n⚠️ Error creating/updating GitHub webhook: You must have admin rights to the repository.");
134
+ logger.error("Make sure your GitHub token has the required permissions (repo scope for private repos).\n");
135
+ }
136
+ else if (error.status === 422) {
137
+ logger.error("\n⚠️ Error creating/updating GitHub webhook: Invalid webhook configuration.");
138
+ logger.error("Check your webhook URL and event configuration.\n");
139
+ }
140
+ else {
141
+ logger.error("Error creating/updating GitHub webhook:", error.message);
142
+ }
143
+ throw error;
144
+ }
145
+ });
146
+ //# sourceMappingURL=repository-webhook.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"repository-webhook.js","sourceRoot":"","sources":["../../src/github/repository-webhook.ts"],"names":[],"mappings":"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"}
package/lib/scope.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  import { AsyncLocalStorage } from "node:async_hooks";
2
+ import util from "node:util";
2
3
  import type { Phase } from "./alchemy.ts";
3
4
  import { ResourceID, type PendingResource, type Resource, type ResourceProps } from "./resource.ts";
4
5
  import type { StateStore, StateStoreType } from "./state.ts";
@@ -81,6 +82,7 @@ export declare class Scope {
81
82
  get<T>(key: string): Promise<T>;
82
83
  delete(key: string): Promise<void>;
83
84
  run<T>(fn: (scope: Scope) => Promise<T>): Promise<T>;
85
+ [util.inspect.custom](): string;
84
86
  [Symbol.asyncDispose](): Promise<void>;
85
87
  /**
86
88
  * The telemetry client for the root scope.
@@ -1 +1 @@
1
- {"version":3,"file":"scope.d.ts","sourceRoot":"","sources":["../src/scope.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scope.d.ts","sourceRoot":"","sources":["../src/scope.ts"],"names":[],"mappings":"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"}
package/lib/scope.js CHANGED
@@ -1,4 +1,5 @@
1
1
  import { AsyncLocalStorage } from "node:async_hooks";
2
+ import util from "node:util";
2
3
  import { destroy, destroyAll } from "./destroy.js";
3
4
  import { FileSystemStateStore } from "./fs/file-system-state-store.js";
4
5
  import { ResourceFQN, ResourceID, ResourceKind, ResourceScope, ResourceSeq, } from "./resource.js";
@@ -197,6 +198,9 @@ export class Scope {
197
198
  async run(fn) {
198
199
  return Scope.storage.run(this, () => fn(this));
199
200
  }
201
+ [util.inspect.custom]() {
202
+ return `Scope(${this.chain.join("/")})`;
203
+ }
200
204
  [Symbol.asyncDispose]() {
201
205
  return this.finalize();
202
206
  }
package/lib/scope.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"scope.js","sourceRoot":"","sources":["../src/scope.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scope.js","sourceRoot":"","sources":["../src/scope.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "alchemy",
3
- "version": "0.40.0",
3
+ "version": "0.41.0",
4
4
  "type": "module",
5
5
  "module": "./lib/index.js",
6
6
  "license": "Apache-2.0",
@@ -169,6 +169,7 @@
169
169
  "@aws-sdk/client-s3": "3.726.1",
170
170
  "@biomejs/biome": "^1.9.4",
171
171
  "@clack/prompts": "^0.11.0",
172
+ "@cloudflare/containers": "^0.0.13",
172
173
  "@cloudflare/puppeteer": "^1.0.2",
173
174
  "@cloudflare/workers-types": "^4.20250620.0",
174
175
  "@iarna/toml": "^2.2.5",
@@ -191,7 +192,7 @@
191
192
  "fs-extra": "^11.3.0",
192
193
  "globby": "^14.1.0",
193
194
  "libsodium-wrappers": "^0.7.15",
194
- "miniflare": "^4.20250617.3",
195
+ "miniflare": "^4.20250617.4",
195
196
  "nitro-cloudflare-dev": "^0.2.2",
196
197
  "openpgp": "^6.1.0",
197
198
  "picocolors": "^1.1.1",
package/src/build-date.ts CHANGED
@@ -5,4 +5,4 @@
5
5
  * The build date used as the default worker compatibility date.
6
6
  * This is set to the date when the package was built.
7
7
  */
8
- export const BUILD_DATE = "2025-06-25";
8
+ export const BUILD_DATE = "2025-06-26";
@@ -11,6 +11,7 @@ import type { Assets } from "./assets.ts";
11
11
  import type { Bound } from "./bound.ts";
12
12
  import type { BrowserRendering } from "./browser-rendering.ts";
13
13
  import type { R2BucketResource } from "./bucket.ts";
14
+ import type { Container } from "./container.ts";
14
15
  import type { D1DatabaseResource } from "./d1-database.ts";
15
16
  import type { DispatchNamespaceResource } from "./dispatch-namespace.ts";
16
17
  import type { DurableObjectNamespace } from "./durable-object-namespace.ts";
@@ -44,6 +45,7 @@ export type Binding =
44
45
  | Ai
45
46
  | AiGatewayResource
46
47
  | Assets
48
+ | Container
47
49
  | CloudflareSecret
48
50
  | D1DatabaseResource
49
51
  | DispatchNamespaceResource
@@ -7,6 +7,7 @@ import type { Assets } from "./assets.ts";
7
7
  import type { Binding, Json, Self } from "./bindings.ts";
8
8
  import type { BrowserRendering } from "./browser-rendering.ts";
9
9
  import type { R2BucketResource as _R2Bucket } from "./bucket.ts";
10
+ import type { Container as _Container } from "./container.ts";
10
11
  import type { D1DatabaseResource } from "./d1-database.ts";
11
12
  import type { DispatchNamespaceResource } from "./dispatch-namespace.ts";
12
13
  import type { DurableObjectNamespace as _DurableObjectNamespace } from "./durable-object-namespace.ts";
@@ -87,4 +88,11 @@ export type Bound<T extends Binding> = T extends _DurableObjectNamespace<
87
88
  ? Service
88
89
  : T extends Json<infer T>
89
90
  ? T
90
- : Service;
91
+ : T extends _Container<
92
+ infer Obj
93
+ >
94
+ ? DurableObjectNamespace<
95
+ Obj &
96
+ Rpc.DurableObjectBranded
97
+ >
98
+ : Service;