alchemy 0.35.1 → 0.36.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 (51) hide show
  1. package/bin/alchemy.mjs +45102 -45100
  2. package/bin/alchemy.ts +1 -1
  3. package/bin/create-alchemy.ts +10 -4
  4. package/lib/cloudflare/bundle/bundle-worker.js +1 -1
  5. package/lib/cloudflare/bundle/bundle-worker.js.map +1 -1
  6. package/lib/docker/api.d.ts +185 -0
  7. package/lib/docker/api.d.ts.map +1 -0
  8. package/lib/docker/api.js +288 -0
  9. package/lib/docker/api.js.map +1 -0
  10. package/lib/docker/container.d.ts +147 -0
  11. package/lib/docker/container.d.ts.map +1 -0
  12. package/lib/docker/container.js +109 -0
  13. package/lib/docker/container.js.map +1 -0
  14. package/lib/docker/image.d.ts +92 -0
  15. package/lib/docker/image.d.ts.map +1 -0
  16. package/lib/docker/image.js +92 -0
  17. package/lib/docker/image.js.map +1 -0
  18. package/lib/docker/index.d.ts +7 -0
  19. package/lib/docker/index.d.ts.map +1 -0
  20. package/lib/docker/index.js +7 -0
  21. package/lib/docker/index.js.map +1 -0
  22. package/lib/docker/network.d.ts +62 -0
  23. package/lib/docker/network.d.ts.map +1 -0
  24. package/lib/docker/network.js +49 -0
  25. package/lib/docker/network.js.map +1 -0
  26. package/lib/docker/remote-image.d.ts +45 -0
  27. package/lib/docker/remote-image.d.ts.map +1 -0
  28. package/lib/docker/remote-image.js +36 -0
  29. package/lib/docker/remote-image.js.map +1 -0
  30. package/lib/docker/volume.d.ts +83 -0
  31. package/lib/docker/volume.d.ts.map +1 -0
  32. package/lib/docker/volume.js +76 -0
  33. package/lib/docker/volume.js.map +1 -0
  34. package/lib/os/exec.d.ts +19 -1
  35. package/lib/os/exec.d.ts.map +1 -1
  36. package/lib/os/exec.js +28 -4
  37. package/lib/os/exec.js.map +1 -1
  38. package/lib/util/cli.d.ts.map +1 -1
  39. package/lib/util/cli.js +1 -1
  40. package/lib/util/cli.js.map +1 -1
  41. package/package.json +5 -1
  42. package/src/cloudflare/bundle/bundle-worker.ts +1 -1
  43. package/src/docker/api.ts +365 -0
  44. package/src/docker/container.ts +267 -0
  45. package/src/docker/image.ts +200 -0
  46. package/src/docker/index.ts +6 -0
  47. package/src/docker/network.ts +101 -0
  48. package/src/docker/remote-image.ts +83 -0
  49. package/src/docker/volume.ts +154 -0
  50. package/src/os/exec.ts +48 -6
  51. package/src/util/cli.ts +1 -3
@@ -0,0 +1,36 @@
1
+ import { Resource } from "../resource.js";
2
+ import { DockerApi } from "./api.js";
3
+ /**
4
+ * Create or reference a Docker Remote Image
5
+ *
6
+ * @example
7
+ * // Pull the nginx image
8
+ * const nginxImage = await RemoteImage("nginx", {
9
+ * name: "nginx",
10
+ * tag: "latest"
11
+ * });
12
+ *
13
+ */
14
+ export const RemoteImage = Resource("docker::RemoteImage", async function (_id, props) {
15
+ // Initialize Docker API client
16
+ const api = new DockerApi();
17
+ if (this.phase === "delete") {
18
+ // No action needed for delete as Docker images aren't automatically removed
19
+ // This is intentional as other resources might depend on the same image
20
+ return this.destroy();
21
+ }
22
+ else {
23
+ // Normalize properties
24
+ const tag = props.tag || "latest";
25
+ const imageRef = `${props.name}:${tag}`;
26
+ // Pull image
27
+ await api.pullImage(imageRef);
28
+ // Return the resource using this() to construct output
29
+ return this({
30
+ ...props,
31
+ imageRef,
32
+ createdAt: Date.now(),
33
+ });
34
+ }
35
+ });
36
+ //# sourceMappingURL=remote-image.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remote-image.js","sourceRoot":"","sources":["../../src/docker/remote-image.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAuCrC;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,QAAQ,CACjC,qBAAqB,EACrB,KAAK,WAEH,GAAW,EACX,KAAuB;IAEvB,+BAA+B;IAC/B,MAAM,GAAG,GAAG,IAAI,SAAS,EAAE,CAAC;IAE5B,IAAI,IAAI,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC5B,4EAA4E;QAC5E,wEAAwE;QACxE,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC;IACxB,CAAC;SAAM,CAAC;QACN,uBAAuB;QACvB,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,IAAI,QAAQ,CAAC;QAClC,MAAM,QAAQ,GAAG,GAAG,KAAK,CAAC,IAAI,IAAI,GAAG,EAAE,CAAC;QAExC,aAAa;QACb,MAAM,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QAE9B,uDAAuD;QACvD,OAAO,IAAI,CAAC;YACV,GAAG,KAAK;YACR,QAAQ;YACR,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;SACtB,CAAC,CAAC;IACL,CAAC;AACH,CAAC,CACF,CAAC"}
@@ -0,0 +1,83 @@
1
+ import type { Context } from "../context.ts";
2
+ import { Resource } from "../resource.ts";
3
+ /**
4
+ * Interface for volume label
5
+ */
6
+ export interface VolumeLabel {
7
+ /**
8
+ * Label name
9
+ */
10
+ name: string;
11
+ /**
12
+ * Label value
13
+ */
14
+ value: string;
15
+ }
16
+ /**
17
+ * Properties for creating a Docker volume
18
+ */
19
+ export interface VolumeProps {
20
+ /**
21
+ * Volume name
22
+ */
23
+ name: string;
24
+ /**
25
+ * Volume driver to use
26
+ * @default "local"
27
+ */
28
+ driver?: string;
29
+ /**
30
+ * Driver-specific options
31
+ */
32
+ driverOpts?: Record<string, string>;
33
+ /**
34
+ * Custom metadata labels for the volume
35
+ */
36
+ labels?: VolumeLabel[] | Record<string, string>;
37
+ }
38
+ /**
39
+ * Docker Volume resource
40
+ */
41
+ export interface Volume extends Resource<"docker::Volume">, VolumeProps {
42
+ /**
43
+ * Volume ID (same as name for Docker volumes)
44
+ */
45
+ id: string;
46
+ /**
47
+ * Volume mountpoint path on the host
48
+ */
49
+ mountpoint?: string;
50
+ /**
51
+ * Time when the volume was created
52
+ */
53
+ createdAt: number;
54
+ }
55
+ /**
56
+ * Create and manage a Docker Volume
57
+ *
58
+ * @see https://docs.docker.com/engine/reference/commandline/volume/
59
+ *
60
+ * @example
61
+ * // Create a simple Docker volume
62
+ * const dataVolume = await Volume("data-volume", {
63
+ * name: "data-volume"
64
+ * });
65
+ *
66
+ * @example
67
+ * // Create a Docker volume with custom driver and options
68
+ * const dbVolume = await Volume("db-data", {
69
+ * name: "db-data",
70
+ * driver: "local",
71
+ * driverOpts: {
72
+ * "type": "nfs",
73
+ * "o": "addr=10.0.0.1,rw",
74
+ * "device": ":/path/to/dir"
75
+ * },
76
+ * labels: [
77
+ * { name: "com.example.usage", value: "database-storage" },
78
+ * { name: "com.example.backup", value: "weekly" }
79
+ * ]
80
+ * });
81
+ */
82
+ export declare const Volume: (((this: any, id: string, props?: {}) => never) & (new (_: never) => never)) | ((this: Context<Volume>, _id: string, props: VolumeProps) => Promise<Volume>);
83
+ //# sourceMappingURL=volume.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"volume.d.ts","sourceRoot":"","sources":["../../src/docker/volume.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAG1C;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEpC;;OAEG;IACH,MAAM,CAAC,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACjD;AAED;;GAEG;AACH,MAAM,WAAW,MAAO,SAAQ,QAAQ,CAAC,gBAAgB,CAAC,EAAE,WAAW;IACrE;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IAEX;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,eAAO,MAAM,MAAM,yFAGT,OAAO,CAAC,MAAM,CAAC,OAChB,MAAM,SACJ,WAAW,KACjB,OAAO,CAAC,MAAM,CAAC,CAuDnB,CAAC"}
@@ -0,0 +1,76 @@
1
+ import { Resource } from "../resource.js";
2
+ import { DockerApi } from "./api.js";
3
+ /**
4
+ * Create and manage a Docker Volume
5
+ *
6
+ * @see https://docs.docker.com/engine/reference/commandline/volume/
7
+ *
8
+ * @example
9
+ * // Create a simple Docker volume
10
+ * const dataVolume = await Volume("data-volume", {
11
+ * name: "data-volume"
12
+ * });
13
+ *
14
+ * @example
15
+ * // Create a Docker volume with custom driver and options
16
+ * const dbVolume = await Volume("db-data", {
17
+ * name: "db-data",
18
+ * driver: "local",
19
+ * driverOpts: {
20
+ * "type": "nfs",
21
+ * "o": "addr=10.0.0.1,rw",
22
+ * "device": ":/path/to/dir"
23
+ * },
24
+ * labels: [
25
+ * { name: "com.example.usage", value: "database-storage" },
26
+ * { name: "com.example.backup", value: "weekly" }
27
+ * ]
28
+ * });
29
+ */
30
+ export const Volume = Resource("docker::Volume", async function (_id, props) {
31
+ // Initialize Docker API client
32
+ const api = new DockerApi();
33
+ // Process labels to ensure consistent format
34
+ const processedLabels = {};
35
+ if (props.labels) {
36
+ if (Array.isArray(props.labels)) {
37
+ // Convert array of label objects to Record
38
+ for (const label of props.labels) {
39
+ processedLabels[label.name] = label.value;
40
+ }
41
+ }
42
+ else {
43
+ // Use Record directly
44
+ Object.assign(processedLabels, props.labels);
45
+ }
46
+ }
47
+ // Handle delete phase
48
+ if (this.phase === "delete") {
49
+ if (this.output?.name) {
50
+ // Remove volume
51
+ await api.removeVolume(this.output.name);
52
+ }
53
+ // Return destroyed state
54
+ return this.destroy();
55
+ }
56
+ else {
57
+ // Set default driver if not provided
58
+ props.driver = props.driver || "local";
59
+ const driverOpts = props.driverOpts || {};
60
+ // Create the volume
61
+ const volumeName = await api.createVolume(props.name, props.driver, driverOpts, processedLabels);
62
+ // Get volume details to retrieve mountpoint
63
+ const volumeInfos = await api.inspectVolume(volumeName);
64
+ const mountpoint = volumeInfos[0].Mountpoint;
65
+ // Return the resource using this() to construct output
66
+ return this({
67
+ ...props,
68
+ id: volumeName,
69
+ mountpoint,
70
+ createdAt: Date.now(),
71
+ labels: Array.isArray(props.labels) ? props.labels : undefined,
72
+ driverOpts: props.driverOpts,
73
+ });
74
+ }
75
+ });
76
+ //# sourceMappingURL=volume.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"volume.js","sourceRoot":"","sources":["../../src/docker/volume.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AA+DrC;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,QAAQ,CAC5B,gBAAgB,EAChB,KAAK,WAEH,GAAW,EACX,KAAkB;IAElB,+BAA+B;IAC/B,MAAM,GAAG,GAAG,IAAI,SAAS,EAAE,CAAC;IAE5B,6CAA6C;IAC7C,MAAM,eAAe,GAA2B,EAAE,CAAC;IACnD,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;QACjB,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;YAChC,2CAA2C;YAC3C,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;gBACjC,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC;YAC5C,CAAC;QACH,CAAC;aAAM,CAAC;YACN,sBAAsB;YACtB,MAAM,CAAC,MAAM,CAAC,eAAe,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;IAED,sBAAsB;IACtB,IAAI,IAAI,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC5B,IAAI,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC;YACtB,gBAAgB;YAChB,MAAM,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC3C,CAAC;QAED,yBAAyB;QACzB,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC;IACxB,CAAC;SAAM,CAAC;QACN,qCAAqC;QACrC,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,IAAI,OAAO,CAAC;QACvC,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,IAAI,EAAE,CAAC;QAE1C,oBAAoB;QACpB,MAAM,UAAU,GAAG,MAAM,GAAG,CAAC,YAAY,CACvC,KAAK,CAAC,IAAI,EACV,KAAK,CAAC,MAAM,EACZ,UAAU,EACV,eAAe,CAChB,CAAC;QAEF,4CAA4C;QAC5C,MAAM,WAAW,GAAG,MAAM,GAAG,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;QACxD,MAAM,UAAU,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;QAE7C,uDAAuD;QACvD,OAAO,IAAI,CAAC;YACV,GAAG,KAAK;YACR,EAAE,EAAE,UAAU;YACd,UAAU;YACV,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;YACrB,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;YAC9D,UAAU,EAAE,KAAK,CAAC,UAAU;SAC7B,CAAC,CAAC;IACL,CAAC;AACH,CAAC,CACF,CAAC"}
package/lib/os/exec.d.ts CHANGED
@@ -143,8 +143,26 @@ export interface Exec extends Resource<"os::Exec">, ExecProps {
143
143
  * });
144
144
  */
145
145
  export declare const Exec: (((this: any, id: string, props?: {}) => never) & (new (_: never) => never)) | ((this: Context<Exec>, id: string, props: ExecProps) => Promise<Exec>);
146
+ /**
147
+ * Options for exec function
148
+ */
149
+ export interface ExecOptions extends Partial<SpawnOptions> {
150
+ /**
151
+ * Whether to capture stdout and stderr
152
+ * @default false
153
+ */
154
+ captureOutput?: boolean;
155
+ }
146
156
  /**
147
157
  * Execute a shell command.
158
+ *
159
+ * @param command The command to execute
160
+ * @param options Options for the command execution
161
+ * @returns Promise that resolves when the command completes.
162
+ * If captureOutput is true, resolves with { stdout, stderr } strings.
148
163
  */
149
- export declare function exec(command: string, options?: Partial<SpawnOptions>): Promise<void>;
164
+ export declare function exec(command: string, options?: ExecOptions): Promise<{
165
+ stdout: string;
166
+ stderr: string;
167
+ } | undefined>;
150
168
  //# sourceMappingURL=exec.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"exec.d.ts","sourceRoot":"","sources":["../../src/os/exec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAG9D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,OAAO,CAAC,EAAE,OAAO,GAAG;QAAE,QAAQ,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAE3C;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAE7B;;;OAGG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,IAAK,SAAQ,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS;IAC3D;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IAEX;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,SAAS,EAAE,OAAO,CAAC;IAEnB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0DG;AACH,eAAO,MAAM,IAAI,yFAMP,OAAO,CAAC,IAAI,CAAC,MACf,MAAM,SACH,SAAS,KACf,OAAO,CAAC,IAAI,CAAC,CA4FjB,CAAC;AAUF;;GAEG;AACH,wBAAsB,IAAI,CACxB,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,GAC9B,OAAO,CAAC,IAAI,CAAC,CAyBf"}
1
+ {"version":3,"file":"exec.d.ts","sourceRoot":"","sources":["../../src/os/exec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAG9D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,OAAO,CAAC,EAAE,OAAO,GAAG;QAAE,QAAQ,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAE3C;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAE7B;;;OAGG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,IAAK,SAAQ,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS;IAC3D;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IAEX;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,SAAS,EAAE,OAAO,CAAC;IAEnB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0DG;AACH,eAAO,MAAM,IAAI,yFAMP,OAAO,CAAC,IAAI,CAAC,MACf,MAAM,SACH,SAAS,KACf,OAAO,CAAC,IAAI,CAAC,CA4FjB,CAAC;AAUF;;GAEG;AACH,MAAM,WAAW,WAAY,SAAQ,OAAO,CAAC,YAAY,CAAC;IACxD;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED;;;;;;;GAOG;AACH,wBAAsB,IAAI,CACxB,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,WAAW,GACpB,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAAC,CAmDzD"}
package/lib/os/exec.js CHANGED
@@ -148,24 +148,48 @@ const defaultOptions = {
148
148
  };
149
149
  /**
150
150
  * Execute a shell command.
151
+ *
152
+ * @param command The command to execute
153
+ * @param options Options for the command execution
154
+ * @returns Promise that resolves when the command completes.
155
+ * If captureOutput is true, resolves with { stdout, stderr } strings.
151
156
  */
152
157
  export async function exec(command, options) {
153
158
  const [cmd, ...args] = command.split(/\s+/);
159
+ const captureOutput = options?.captureOutput === true;
154
160
  return new Promise((resolve, reject) => {
155
- const child = spawn(cmd, args, {
161
+ // Set stdio to pipe only if we're capturing output
162
+ const spawnOptions = {
156
163
  ...defaultOptions,
157
164
  ...options,
158
165
  env: {
159
166
  ...defaultOptions.env,
160
167
  ...options?.env,
161
168
  },
162
- });
169
+ stdio: captureOutput ? "pipe" : defaultOptions.stdio,
170
+ };
171
+ const child = spawn(cmd, args, spawnOptions);
172
+ let stdout = "";
173
+ let stderr = "";
174
+ if (captureOutput) {
175
+ child.stdout?.on("data", (data) => {
176
+ stdout += data.toString();
177
+ });
178
+ child.stderr?.on("data", (data) => {
179
+ stderr += data.toString();
180
+ });
181
+ }
163
182
  child.on("close", (code) => {
164
183
  if (code === 0) {
165
- resolve();
184
+ if (captureOutput) {
185
+ resolve({ stdout, stderr });
186
+ }
187
+ else {
188
+ resolve(undefined);
189
+ }
166
190
  }
167
191
  else {
168
- reject(new Error(`Command failed with exit code ${code}`));
192
+ reject(new Error(`Command failed with exit code ${code}${stderr ? `: ${stderr}` : ""}`));
169
193
  }
170
194
  });
171
195
  child.on("error", (err) => {
@@ -1 +1 @@
1
- {"version":3,"file":"exec.js","sourceRoot":"","sources":["../../src/os/exec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAqB,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AA8F1C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0DG;AACH,MAAM,CAAC,MAAM,IAAI,GAAG,QAAQ,CAC1B,UAAU,EACV;IACE,YAAY,EAAE,IAAI;CACnB,EACD,KAAK,WAEH,EAAU,EACV,KAAgB;IAEhB,IAAI,IAAI,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC5B,iDAAiD;QACjD,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC;IACxB,CAAC;IAED,MAAM,IAAI,GACR,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ;QAC/B,CAAC,CAAC,MAAM,UAAU,CAAC,KAAK,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,EAAE,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC;QACtE,CAAC,CAAC,SAAS,CAAC;IAEhB,IACE,IAAI,CAAC,KAAK,KAAK,QAAQ;QACvB,KAAK,CAAC,OAAO;QACb,IAAI,CAAC,MAAM,EAAE,OAAO,KAAK,KAAK,CAAC,OAAO;QACtC,CAAC,OAAO,KAAK,CAAC,OAAO,KAAK,SAAS;YACjC,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,EAAE,IAAI,KAAK,IAAI,CAAC,CAAC,EACvC,CAAC;QACD,mFAAmF;QACnF,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,iBAAiB;IACjB,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,IAAI,QAAQ,GAAG,CAAC,CAAC;IAEjB,6DAA6D;IAC7D,MAAM,YAAY,GAAG,KAAK,CAAC,YAAY,KAAK,KAAK,CAAC;IAElD,IAAI,CAAC;QACH,0CAA0C;QAC1C,MAAM,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAElD,qCAAqC;QACrC,MAAM,YAAY,GAAG,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE;YACpC,GAAG,EAAE,KAAK,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE;YAC/B,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,GAAG,EAAE;YACrC,KAAK,EAAE,IAAI,EAAE,uCAAuC;YACpD,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,EAAE,+BAA+B;SAC1E,CAAC,CAAC;QAEH,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,mDAAmD;YACnD,YAAY,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;gBACvC,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC5B,CAAC,CAAC,CAAC;YAEH,YAAY,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;gBACvC,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC5B,CAAC,CAAC,CAAC;QACL,CAAC;QAED,mCAAmC;QACnC,QAAQ,GAAG,MAAM,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE;YACxD,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;gBAChC,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;YACrB,CAAC,CAAC,CAAC;YAEH,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;gBAC/B,MAAM,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;gBACzB,OAAO,CAAC,CAAC,CAAC,CAAC;YACb,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,iDAAiD;QACjD,QAAQ,GAAG,CAAC,CAAC;QACb,MAAM,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC;IAED,IAAI,QAAQ,KAAK,CAAC,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CACb,iCAAiC,QAAQ,KAAK,KAAK,CAAC,OAAO,KAAK,MAAM,EAAE,CACzE,CAAC;IACJ,CAAC;IAED,8BAA8B;IAC9B,OAAO,IAAI,CAAC;QACV,EAAE;QACF,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,GAAG,EAAE,KAAK,CAAC,GAAG;QACd,GAAG,EAAE,KAAK,CAAC,GAAG;QACd,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,YAAY;QACZ,QAAQ;QACR,MAAM;QACN,MAAM;QACN,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE;QACtB,SAAS,EAAE,IAAI;QACf,IAAI;KACL,CAAC,CAAC;AACL,CAAC,CACF,CAAC;AAEF,MAAM,cAAc,GAAiB;IACnC,KAAK,EAAE,SAAS;IAChB,GAAG,EAAE;QACH,GAAG,OAAO,CAAC,GAAG;KACf;IACD,KAAK,EAAE,IAAI;CACZ,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,IAAI,CACxB,OAAe,EACf,OAA+B;IAE/B,MAAM,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAE5C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE;YAC7B,GAAG,cAAc;YACjB,GAAG,OAAO;YACV,GAAG,EAAE;gBACH,GAAG,cAAc,CAAC,GAAG;gBACrB,GAAG,OAAO,EAAE,GAAG;aAChB;SACF,CAAC,CAAC;QAEH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;YACzB,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;gBACf,OAAO,EAAE,CAAC;YACZ,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,IAAI,KAAK,CAAC,iCAAiC,IAAI,EAAE,CAAC,CAAC,CAAC;YAC7D,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;YACxB,MAAM,CAAC,GAAG,CAAC,CAAC;QACd,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,UAAU,CAAC,GAAW,EAAE,QAAkB;IACvD,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,CAAC;IAE5D,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAC;IAEzC,MAAM,OAAO,CAAC,GAAG,CACf,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QACjC,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;QAC5D,OAAO,OAAO,CAAC,GAAG,CAChB,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,IAAY,EAAE,EAAE;YAC/B,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YAC7B,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,CAAC;YACrC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACvE,CAAC,CAAC,CACH,CAAC;IACJ,CAAC,CAAC,CACH,CAAC;IAEF,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAC9D,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CACzB,CAAC;IAEF,MAAM,SAAS,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;IACvC,KAAK,MAAM,CAAC,EAAE,IAAI,CAAC,IAAI,YAAY,EAAE,CAAC;QACpC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC;IACD,OAAO,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACjC,CAAC"}
1
+ {"version":3,"file":"exec.js","sourceRoot":"","sources":["../../src/os/exec.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/util/cli.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AA+B3C,MAAM,MAAM,IAAI,GAAG;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;CAC5C,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACtB,GAAG,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;IAClC,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;IACnC,KAAK,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;IACpC,IAAI,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;IACvC,IAAI,EAAE,MAAM,IAAI,CAAC;CAClB,CAAC;AAEF,KAAK,WAAW,GAAG;IACjB,KAAK,EAAE,KAAK,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAGF,eAAO,MAAM,oBAAoB,GAC/B,aAAa,WAAW,EACxB,eAAe,SAAS,cAOzB,CAAC;AAEF,eAAO,MAAM,iBAAiB,QAAO,SAQpC,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAAI,aAAa,WAAW,KAAG,SAsC/D,CAAC;AAEF,eAAO,MAAM,SAAS,GAAI,KAAK,MAAM,WAAwC,CAAC"}
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/util/cli.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AA6B3C,MAAM,MAAM,IAAI,GAAG;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;CAC5C,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACtB,GAAG,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;IAClC,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;IACnC,KAAK,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;IACpC,IAAI,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;IACvC,IAAI,EAAE,MAAM,IAAI,CAAC;CAClB,CAAC;AAEF,KAAK,WAAW,GAAG;IACjB,KAAK,EAAE,KAAK,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAGF,eAAO,MAAM,oBAAoB,GAC/B,aAAa,WAAW,EACxB,eAAe,SAAS,cAOzB,CAAC;AAEF,eAAO,MAAM,iBAAiB,QAAO,SAQpC,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAAI,aAAa,WAAW,KAAG,SAsC/D,CAAC;AAEF,eAAO,MAAM,SAAS,GAAI,KAAK,MAAM,WAAwC,CAAC"}
package/lib/util/cli.js CHANGED
@@ -12,7 +12,7 @@ const colors = {
12
12
  };
13
13
  // Check if colors should be disabled
14
14
  const shouldDisableColors = () => {
15
- return Boolean(process.env.CI || process.env.NO_COLOR || !process.stdout.isTTY);
15
+ return Boolean(process.env.NO_COLOR);
16
16
  };
17
17
  // Apply color if colors are enabled
18
18
  const colorize = (text, color) => {
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/util/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/util/cli.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,oBAAoB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAEnE,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,mBAAmB;AACnB,MAAM,MAAM,GAAG;IACb,KAAK,EAAE,SAAS;IAChB,UAAU,EAAE,UAAU;IACtB,YAAY,EAAE,UAAU;IACxB,OAAO,EAAE,UAAU;IACnB,WAAW,EAAE,UAAU;IACvB,SAAS,EAAE,UAAU;IACrB,IAAI,EAAE,UAAU;CACR,CAAC;AAIX,qCAAqC;AACrC,MAAM,mBAAmB,GAAG,GAAY,EAAE;IACxC,OAAO,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AACvC,CAAC,CAAC;AAEF,oCAAoC;AACpC,MAAM,QAAQ,GAAG,CAAC,IAAY,EAAE,KAAgB,EAAU,EAAE;IAC1D,IAAI,mBAAmB,EAAE,EAAE,CAAC;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;AAClD,CAAC,CAAC;AAwBF,IAAI,SAAS,GAAqB,IAAI,CAAC;AACvC,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAClC,WAAwB,EACxB,YAAwB,EACxB,EAAE;IACF,IAAI,SAAS;QAAE,OAAO,SAAS,CAAC;IAEhC,yEAAyE;IACzE,SAAS,GAAG,YAAY,IAAI,oBAAoB,CAAC,WAAW,CAAC,CAAC;IAC9D,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAc,EAAE;IAC/C,OAAO;QACL,GAAG,EAAE,GAAG,EAAE,GAAE,CAAC;QACb,KAAK,EAAE,GAAG,EAAE,GAAE,CAAC;QACf,IAAI,EAAE,GAAG,EAAE,GAAE,CAAC;QACd,IAAI,EAAE,GAAG,EAAE,GAAE,CAAC;QACd,IAAI,EAAE,GAAG,EAAE,GAAE,CAAC;KACf,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,WAAwB,EAAa,EAAE;IAC1E,OAAO,CAAC,GAAG,CAAC,MAAM,CAAA;MACd,QAAQ,CAAC,SAAS,EAAE,YAAY,CAAC,MAAM,WAAW,CAAC,OAAO;WACrD,WAAW,CAAC,OAAO;aACjB,WAAW,CAAC,KAAK;aACjB,WAAW,CAAC,KAAK;;GAE3B,CAAC,CAAC;IAEH,OAAO;QACL,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,KAAK,EAAE,CAAC,GAAG,IAAe,EAAE,EAAE,CAC5B,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,EAAE,GAAG,IAAI,CAAC;QACxD,IAAI,EAAE,CAAC,GAAG,IAAe,EAAE,EAAE,CAC3B,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC,EAAE,GAAG,IAAI,CAAC;QACzD,IAAI,EAAE,CAAC,GAAW,EAAE,IAAU,EAAE,EAAE;YAChC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YAErD,yFAAyF;YACzF,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACvC,MAAM,eAAe,GACnB,IAAI,CAAC,WAAW,IAAI,MAAM;gBACxB,CAAC,CAAC,QAAQ,CAAC,YAAY,EAAE,IAAI,CAAC,WAAwB,CAAC;gBACvD,CAAC,CAAC,YAAY,CAAC;YAEnB,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACtE,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;YAE7B,IAAI,eAAe,IAAI,QAAQ,EAAE,CAAC;gBAChC,OAAO,CAAC,GAAG,CAAC,GAAG,eAAe,GAAG,QAAQ,IAAI,OAAO,EAAE,CAAC,CAAC;YAC1D,CAAC;iBAAM,IAAI,eAAe,EAAE,CAAC;gBAC3B,OAAO,CAAC,GAAG,CAAC,GAAG,eAAe,GAAG,OAAO,EAAE,CAAC,CAAC;YAC9C,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,GAAG,OAAO,EAAE,CAAC,CAAC;YAC5B,CAAC;QACH,CAAC;QACD,IAAI,EAAE,GAAG,EAAE,GAAE,CAAC;KACf,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "alchemy",
3
- "version": "0.35.1",
3
+ "version": "0.36.0",
4
4
  "type": "module",
5
5
  "module": "./lib/index.js",
6
6
  "license": "Apache-2.0",
@@ -55,6 +55,10 @@
55
55
  "bun": "./src/dns/index.ts",
56
56
  "import": "./lib/dns/index.js"
57
57
  },
58
+ "./docker": {
59
+ "bun": "./src/docker/index.ts",
60
+ "import": "./lib/docker/index.js"
61
+ },
58
62
  "./esbuild": {
59
63
  "bun": "./src/esbuild/index.ts",
60
64
  "import": "./lib/esbuild/index.js"
@@ -71,7 +71,7 @@ export async function bundleWorkerScript<B extends Bindings>(
71
71
  ).flat(),
72
72
  ),
73
73
  );
74
- const useColor = !(process.env.CI || process.env.NO_COLOR);
74
+ const useColor = !process.env.NO_COLOR;
75
75
  logger.log(
76
76
  `${useColor ? kleur.gray("worker:") : "worker:"} ${useColor ? kleur.blue(props.name) : props.name}`,
77
77
  );