pm-auto 1.0.5 → 1.0.6

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.
package/README.md CHANGED
@@ -14,6 +14,9 @@ PM-Auto is a CLI tool that lets you define your tech stack presets once and inst
14
14
  - [pm-auto install](#pm-auto-install)
15
15
  - [pm-auto uninstall](#pm-auto-uninstall)
16
16
  - [pm-auto config](#pm-auto-config)
17
+ - [pm-auto list](#pm-auto-list)
18
+ - [pm-auto describe](#pm-auto-describe)
19
+ - [pm-auto config-path](#pm-auto-config-path)
17
20
  - [Configuration](#configuration)
18
21
  - [Config Structure](#config-structure)
19
22
  - [Config Fields](#config-fields)
@@ -183,7 +186,7 @@ pm-auto uninstall|u|remove [options] <packages...>
183
186
 
184
187
  **Options:**
185
188
 
186
- - `-A, --add-command <command>` - Add custom flags to uninstall commands
189
+ - `-D, --dry-run` - Preview uninstall commands without executing them
187
190
  - `-h, --help` - Display help
188
191
 
189
192
  **Examples:**
@@ -195,8 +198,8 @@ pm-auto uninstall vite
195
198
  # Uninstall multiple packages
196
199
  pm-auto uninstall vite next
197
200
 
198
- # Force uninstall for non interactive commands
199
- pm-auto uninstall vite --add-command "--force"
201
+ # Dryrun uninstall for non interactive commands
202
+ pm-auto uninstall vite --dry-run
200
203
  ```
201
204
 
202
205
  ### `pm-auto config`
@@ -1 +1 @@
1
- {"version":3,"file":"build_command.d.ts","sourceRoot":"","sources":["../src/build_command.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAe,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAE/E;;GAEG;AAEH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,UAAU,EAAE,mBA6DnD;AAED,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,UAAU,EAAE,mBAiD5D"}
1
+ {"version":3,"file":"build_command.d.ts","sourceRoot":"","sources":["../src/build_command.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAe,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAE/E;;GAEG;AAEH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,UAAU,EAAE,mBA0EnD;AAED,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,UAAU,EAAE,mBAmD5D"}
@@ -46,7 +46,19 @@ export function buildCommands(projects) {
46
46
  });
47
47
  // Batch all non-interactive packages into ONE command
48
48
  if (nonInteractive.length > 0) {
49
- const packageNames = nonInteractive.map((pkg) => pkg.command).join(" ");
49
+ const packageNames = nonInteractive
50
+ .map((pkg) => {
51
+ if (!pkg.command.includes("-")) {
52
+ return pkg.command;
53
+ }
54
+ })
55
+ .filter((item) => item !== undefined)
56
+ .join(" ");
57
+ nonInteractive.map((pkg) => {
58
+ if (pkg.command.includes("-")) {
59
+ result.nonInteractive.push(`${manager.install} ${pkg.command}`);
60
+ }
61
+ });
50
62
  result.nonInteractive.push(`${manager.install} ${packageNames}`);
51
63
  }
52
64
  commandArray.push(result);
@@ -62,7 +74,7 @@ export function buildUninstallCommands(projects) {
62
74
  install: "npm uninstall",
63
75
  },
64
76
  pnpm: {
65
- install: "pnpm uninstall",
77
+ install: "pnpm remove",
66
78
  },
67
79
  yarn: {
68
80
  install: "yarn remove",
@@ -87,7 +99,9 @@ export function buildUninstallCommands(projects) {
87
99
  }
88
100
  // Batch all non-interactive packages into ONE command
89
101
  if (nonInteractive.length > 0) {
90
- const packageNames = nonInteractive.map((pkg) => pkg.command).join(" ");
102
+ const packageNames = nonInteractive
103
+ .map((pkg) => pkg.command.trim().split(/\s+/)[0])
104
+ .join(" ");
91
105
  result.nonInteractive.push(`${manager.install} ${packageNames}`);
92
106
  }
93
107
  commandArray.push(result);
@@ -1 +1 @@
1
- {"version":3,"file":"build_command.js","sourceRoot":"","sources":["../src/build_command.ts"],"names":[],"mappings":"AAEA;;GAEG;AAEH,MAAM,UAAU,aAAa,CAAC,QAAsB;IAClD,6BAA6B;IAE7B,MAAM,YAAY,GAAoB,EAAE,CAAC;IACzC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;QAE7C,MAAM,eAAe,GAAG;YACtB,GAAG,EAAE;gBACH,OAAO,EAAE,aAAa;gBACtB,GAAG,EAAE,KAAK;aACX;YACD,IAAI,EAAE;gBACJ,OAAO,EAAE,UAAU;gBACnB,GAAG,EAAE,UAAU;aAChB;YACD,IAAI,EAAE;gBACJ,OAAO,EAAE,UAAU;gBACnB,GAAG,EAAE,UAAU;aAChB;SACF,CAAC;QAEF,MAAM,OAAO,GACX,eAAe,CAAC,cAA8C,CAAC;YAC/D,eAAe,CAAC,GAAG,CAAC;QAEtB,MAAM,MAAM,GAAkB;YAC5B,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,WAAW,EAAE,EAAE;YACf,cAAc,EAAE,EAAE;SACnB,CAAC;QAEF,qDAAqD;QACrD,MAAM,cAAc,GAAkB,EAAE,CAAC;QACzC,MAAM,WAAW,GAAkB,EAAE,CAAC;QAEtC,IAAI,QAAQ,EAAE,CAAC;YACb,QAAQ,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;gBACvB,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC;oBACpB,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACxB,CAAC;qBAAM,CAAC;oBACN,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAC3B,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;QAED,6DAA6D;QAC7D,WAAW,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YAC1B,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QAC3D,CAAC,CAAC,CAAC;QAEH,sDAAsD;QACtD,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9B,MAAM,YAAY,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACxE,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,OAAO,IAAI,YAAY,EAAE,CAAC,CAAC;QACnE,CAAC;QAED,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC;IAED,OAAO,YAAY,CAAC;AACtB,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,QAAsB;IAC3D,MAAM,YAAY,GAAoB,EAAE,CAAC;IACzC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;QAE7C,MAAM,eAAe,GAAG;YACtB,GAAG,EAAE;gBACH,OAAO,EAAE,eAAe;aACzB;YACD,IAAI,EAAE;gBACJ,OAAO,EAAE,gBAAgB;aAC1B;YACD,IAAI,EAAE;gBACJ,OAAO,EAAE,aAAa;aACvB;SACF,CAAC;QAEF,MAAM,OAAO,GACX,eAAe,CAAC,cAA8C,CAAC;YAC/D,eAAe,CAAC,GAAG,CAAC;QAEtB,MAAM,MAAM,GAAkB;YAC5B,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,WAAW,EAAE,EAAE;YACf,cAAc,EAAE,EAAE;SACnB,CAAC;QAEF,qDAAqD;QACrD,MAAM,cAAc,GAAkB,EAAE,CAAC;QACzC,yCAAyC;QAEzC,IAAI,QAAQ,EAAE,CAAC;YACb,QAAQ,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;gBACvB,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;oBACrB,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAC3B,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;QAED,sDAAsD;QACtD,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9B,MAAM,YAAY,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACxE,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,OAAO,IAAI,YAAY,EAAE,CAAC,CAAC;QACnE,CAAC;QAED,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC;IAED,OAAO,YAAY,CAAC;AACtB,CAAC"}
1
+ {"version":3,"file":"build_command.js","sourceRoot":"","sources":["../src/build_command.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"config_reader.d.ts","sourceRoot":"","sources":["../src/config_reader.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAIlE,KAAK,cAAc,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC;AAE9C;;GAEG;AAEH,wBAAgB,oBAAoB,CAClC,WAAW,GAAE,MAAsB,GAClC,cAAc,GAAG,IAAI,CAgBvB;AAED;;;GAGG;AACH,eAAO,MAAM,eAAe,GAC1B,UAAU,MAAM,EAAE,EAClB,UAAU,GAAG,KACZ,OAAO,CAAC,UAAU,EAAE,GAAG,aAAa,EAAE,CAsFxC,CAAC;AAEF,eAAO,MAAM,aAAa,GAAU,SAAS,GAAG,kBA2B/C,CAAC;AAEF,eAAO,MAAM,qBAAqB,GAAU,aAAa,MAAM,kBAyB9D,CAAC"}
1
+ {"version":3,"file":"config_reader.d.ts","sourceRoot":"","sources":["../src/config_reader.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAIlE,KAAK,cAAc,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC;AAE9C;;GAEG;AAEH,wBAAgB,oBAAoB,CAClC,WAAW,GAAE,MAAsB,GAClC,cAAc,GAAG,IAAI,CAgBvB;AAED;;;GAGG;AACH,eAAO,MAAM,eAAe,GAC1B,UAAU,MAAM,EAAE,EAClB,UAAU,GAAG,KACZ,OAAO,CAAC,UAAU,EAAE,GAAG,aAAa,EAAE,CAuFxC,CAAC;AAEF,eAAO,MAAM,aAAa,GAAU,SAAS,GAAG,kBA2B/C,CAAC;AAEF,eAAO,MAAM,qBAAqB,GAAU,aAAa,MAAM,kBAyB9D,CAAC"}
@@ -69,19 +69,20 @@ export const getConfigObject = async (packages, options) => {
69
69
  result.forEach((config) => {
70
70
  display(`Package name -> ${config.name}`, "info");
71
71
  config.packages.forEach((pkg) => {
72
- display(`add ${pkg.command}`, "info");
72
+ display(`running ${pkg.command}`, "info");
73
73
  });
74
74
  });
75
- const continueWithInstall = await confirm({
76
- message: "Continue with installation?",
75
+ const continuation = await confirm({
76
+ message: "Continue?",
77
77
  initialValue: true,
78
78
  });
79
- if (isCancel(continueWithInstall)) {
79
+ if (isCancel(continuation)) {
80
80
  cancel("Operation cancelled.");
81
81
  process.exit(0);
82
82
  }
83
- if (!continueWithInstall) {
84
- display("Installation cancelled ", "success");
83
+ if (!continuation) {
84
+ display("Operation cancelled. ", "success");
85
+ process.exit(0);
85
86
  }
86
87
  }
87
88
  return result;
@@ -135,12 +136,12 @@ export const getPackageDescription = async (packageName) => {
135
136
  display(`File not found ${error} Try updating the config file path`, "error");
136
137
  }
137
138
  const configObject = JSON.parse(configContent);
138
- let keys = Object.keys(configObject);
139
- keys.forEach((key) => {
140
- if (key === packageName) {
141
- const description = !configObject[key].description
139
+ const configObjectArray = Object.values(configObject);
140
+ configObjectArray.forEach((configObject) => {
141
+ if (configObject.name === packageName) {
142
+ const description = !configObject.description
142
143
  ? "No description"
143
- : configObject[key].description;
144
+ : configObject.description;
144
145
  display(`${packageName} - ${description}`, "info");
145
146
  }
146
147
  });
@@ -1 +1 @@
1
- {"version":3,"file":"config_reader.js","sourceRoot":"","sources":["../src/config_reader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config_reader.js","sourceRoot":"","sources":["../src/config_reader.ts"],"names":[],"mappings":"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"}
package/dist/display.d.ts CHANGED
@@ -1,4 +1,9 @@
1
1
  type DisplayType = "error" | "success" | "warning" | "info" | "loading" | "";
2
+ export declare const s: {
3
+ start: (msg?: string) => void;
4
+ stop: (msg?: string, code?: number) => void;
5
+ message: (msg?: string) => void;
6
+ };
2
7
  export declare const display: (text: string, type: DisplayType) => {
3
8
  start: (msg?: string) => void;
4
9
  stop: (msg?: string, code?: number) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"display.d.ts","sourceRoot":"","sources":["../src/display.ts"],"names":[],"mappings":"AAGA,KAAK,WAAW,GAAG,OAAO,GAAG,SAAS,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,GAAG,EAAE,CAAC;AAE7E,eAAO,MAAM,OAAO,GAAI,MAAM,MAAM,EAAE,MAAM,WAAW;eA2BinG,CAAC;cAAiC,CAAC,cAAc,CAAC;iBAAoC,CAAC;aAD9vG,CAAC"}
1
+ {"version":3,"file":"display.d.ts","sourceRoot":"","sources":["../src/display.ts"],"names":[],"mappings":"AAGA,KAAK,WAAW,GAAG,OAAO,GAAG,SAAS,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,GAAG,EAAE,CAAC;AAC7E,eAAO,MAAM,CAAC;eA2B0pG,CAAC;cAAiC,CAAC,cAAc,CAAC;iBAAoC,CAAC;CA3BruG,CAAC;AAC3B,eAAO,MAAM,OAAO,GAAI,MAAM,MAAM,EAAE,MAAM,WAAW;eA0BinG,CAAC;cAAiC,CAAC,cAAc,CAAC;iBAAoC,CAAC;aAD9vG,CAAC"}
package/dist/display.js CHANGED
@@ -1,5 +1,6 @@
1
1
  import { log, spinner } from "@clack/prompts";
2
2
  import chalk from "chalk";
3
+ export const s = spinner();
3
4
  export const display = (text, type) => {
4
5
  switch (type) {
5
6
  case "error":
@@ -15,7 +16,6 @@ export const display = (text, type) => {
15
16
  log.info(chalk.blue(text));
16
17
  break;
17
18
  case "loading":
18
- const s = spinner();
19
19
  s.start(text);
20
20
  return s; // Return spinner so it can be stopped later
21
21
  default:
@@ -1 +1 @@
1
- {"version":3,"file":"display.js","sourceRoot":"","sources":["../src/display.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,IAAY,EAAE,IAAiB,EAAE,EAAE;IACzD,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,OAAO;YACV,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;YAC3B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAElB,KAAK,SAAS;YACZ,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,0BAA0B;YAC1D,MAAM;QAER,KAAK,SAAS;YACZ,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;YAC7B,MAAM;QAER,KAAK,MAAM;YACT,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YAC3B,MAAM;QAER,KAAK,SAAS;YACZ,MAAM,CAAC,GAAG,OAAO,EAAE,CAAC;YACpB,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACd,OAAO,CAAC,CAAC,CAAC,4CAA4C;QAExD;YACE,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACtB,CAAC;AACH,CAAC,CAAC"}
1
+ {"version":3,"file":"display.js","sourceRoot":"","sources":["../src/display.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,MAAM,CAAC,MAAM,CAAC,GAAG,OAAO,EAAE,CAAC;AAC3B,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,IAAY,EAAE,IAAiB,EAAE,EAAE;IACzD,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,OAAO;YACV,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;YAC3B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAElB,KAAK,SAAS;YACZ,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,0BAA0B;YAC1D,MAAM;QAER,KAAK,SAAS;YACZ,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;YAC7B,MAAM;QAER,KAAK,MAAM;YACT,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YAC3B,MAAM;QAER,KAAK,SAAS;YACZ,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACd,OAAO,CAAC,CAAC,CAAC,4CAA4C;QAExD;YACE,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACtB,CAAC;AACH,CAAC,CAAC"}
package/dist/index.js CHANGED
@@ -10,7 +10,7 @@ intro(chalk.inverse(" pm-auto "));
10
10
  const program = new Command();
11
11
  program
12
12
  .name("pm-auto")
13
- .version("1.0.5")
13
+ .version("1.0.6")
14
14
  .description("A CLI tool to define and install your tech stack presets with one command.");
15
15
  program
16
16
  .command("config <path>")
@@ -35,7 +35,7 @@ program
35
35
  .alias("u")
36
36
  .alias("un")
37
37
  .description("Remove packages using the detected package manager (Aliases: remove, u, un)")
38
- .option("-A, --add-command <command>", "Add a custom command to all installation commands from config file")
38
+ .option("-D, --dry-run", "Dry run - Display commands before execution")
39
39
  .action((packages, options) => {
40
40
  orchestrator("uninstall", packages, options);
41
41
  });
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACjE,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC1E,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;AAElC,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,SAAS,CAAC;KACf,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CACV,4EAA4E,CAC7E,CAAC;AAEJ,OAAO;KACJ,OAAO,CAAC,eAAe,CAAC;KACxB,WAAW,CAAC,wCAAwC,CAAC;KACrD,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;IACf,cAAc,CAAC,IAAI,CAAC,CAAC;AACvB,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,uBAAuB,CAAC;KAChC,KAAK,CAAC,KAAK,CAAC;KACZ,KAAK,CAAC,GAAG,CAAC;KACV,WAAW,CACV,uEAAuE,CACxE;KACA,MAAM,CAAC,gBAAgB,EAAE,oCAAoC,CAAC;KAC9D,MAAM,CACL,6BAA6B,EAC7B,oEAAoE,CACrE;KACA,MAAM,CAAC,eAAe,EAAE,6CAA6C,CAAC;KACtE,MAAM,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE;IAC5B,YAAY,CAAC,SAAS,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;AAC7C,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,yBAAyB,CAAC;KAClC,KAAK,CAAC,QAAQ,CAAC;KACf,KAAK,CAAC,GAAG,CAAC;KACV,KAAK,CAAC,IAAI,CAAC;KACX,WAAW,CACV,6EAA6E,CAC9E;KACA,MAAM,CACL,6BAA6B,EAC7B,oEAAoE,CACrE;KACA,MAAM,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE;IAC5B,YAAY,CAAC,WAAW,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;AAC/C,CAAC,CAAC,CAAC;AAEL,yBAAyB;AACzB,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,KAAK,CAAC,IAAI,CAAC;KACX,WAAW,CAAC,wCAAwC,CAAC;KACrD,MAAM,CAAC,YAAY,EAAE,8BAA8B,EAAE,KAAK,CAAC;KAC3D,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE;IAClB,aAAa,CAAC,OAAO,CAAC,CAAC;AACzB,CAAC,CAAC,CAAC;AAEL,2BAA2B;AAC3B,OAAO;KACJ,OAAO,CAAC,oBAAoB,CAAC;KAC7B,KAAK,CAAC,MAAM,CAAC;KACb,WAAW,CAAC,oCAAoC,CAAC;KACjD,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE;IACnB,qBAAqB,CAAC,QAAQ,CAAC,CAAC;AAClC,CAAC,CAAC,CAAC;AAEL,iBAAiB;AACjB,OAAO;KACJ,OAAO,CAAC,aAAa,CAAC;KACtB,KAAK,CAAC,IAAI,CAAC;KACX,WAAW,CAAC,4CAA4C,CAAC;KACzD,MAAM,CAAC,GAAG,EAAE;IACX,MAAM,IAAI,GAAG,aAAa,EAAE,CAAC;IAC7B,OAAO,CAAC,gBAAgB,IAAI,EAAE,EAAE,MAAM,CAAC,CAAC;AAC1C,CAAC,CAAC,CAAC;AAEL,OAAO,CAAC,KAAK,EAAE,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACjE,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC1E,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;AAElC,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,SAAS,CAAC;KACf,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CACV,4EAA4E,CAC7E,CAAC;AAEJ,OAAO;KACJ,OAAO,CAAC,eAAe,CAAC;KACxB,WAAW,CAAC,wCAAwC,CAAC;KACrD,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;IACf,cAAc,CAAC,IAAI,CAAC,CAAC;AACvB,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,uBAAuB,CAAC;KAChC,KAAK,CAAC,KAAK,CAAC;KACZ,KAAK,CAAC,GAAG,CAAC;KACV,WAAW,CACV,uEAAuE,CACxE;KACA,MAAM,CAAC,gBAAgB,EAAE,oCAAoC,CAAC;KAC9D,MAAM,CACL,6BAA6B,EAC7B,oEAAoE,CACrE;KACA,MAAM,CAAC,eAAe,EAAE,6CAA6C,CAAC;KACtE,MAAM,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE;IAC5B,YAAY,CAAC,SAAS,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;AAC7C,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,yBAAyB,CAAC;KAClC,KAAK,CAAC,QAAQ,CAAC;KACf,KAAK,CAAC,GAAG,CAAC;KACV,KAAK,CAAC,IAAI,CAAC;KACX,WAAW,CACV,6EAA6E,CAC9E;KACA,MAAM,CAAC,eAAe,EAAE,6CAA6C,CAAC;KAEtE,MAAM,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE;IAC5B,YAAY,CAAC,WAAW,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;AAC/C,CAAC,CAAC,CAAC;AAEL,yBAAyB;AACzB,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,KAAK,CAAC,IAAI,CAAC;KACX,WAAW,CAAC,wCAAwC,CAAC;KACrD,MAAM,CAAC,YAAY,EAAE,8BAA8B,EAAE,KAAK,CAAC;KAC3D,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE;IAClB,aAAa,CAAC,OAAO,CAAC,CAAC;AACzB,CAAC,CAAC,CAAC;AAEL,2BAA2B;AAC3B,OAAO;KACJ,OAAO,CAAC,oBAAoB,CAAC;KAC7B,KAAK,CAAC,MAAM,CAAC;KACb,WAAW,CAAC,oCAAoC,CAAC;KACjD,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE;IACnB,qBAAqB,CAAC,QAAQ,CAAC,CAAC;AAClC,CAAC,CAAC,CAAC;AAEL,iBAAiB;AACjB,OAAO;KACJ,OAAO,CAAC,aAAa,CAAC;KACtB,KAAK,CAAC,IAAI,CAAC;KACX,WAAW,CAAC,4CAA4C,CAAC;KACzD,MAAM,CAAC,GAAG,EAAE;IACX,MAAM,IAAI,GAAG,aAAa,EAAE,CAAC;IAC7B,OAAO,CAAC,gBAAgB,IAAI,EAAE,EAAE,MAAM,CAAC,CAAC;AAC1C,CAAC,CAAC,CAAC;AAEL,OAAO,CAAC,KAAK,EAAE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../src/install.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAwBtD;;GAEG;AACH,wBAAsB,OAAO,CAAC,QAAQ,EAAE,aAAa,EAAE,iBAqBtD"}
1
+ {"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../src/install.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AA0BtD;;GAEG;AACH,wBAAsB,OAAO,CAAC,QAAQ,EAAE,aAAa,EAAE,iBAuBtD"}
package/dist/install.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { execa } from "execa";
2
- import { display } from "./display.js";
2
+ import { display, s } from "./display.js";
3
3
  async function runCommand(command, interactive = false) {
4
4
  try {
5
5
  const [commandName, ...args] = command.split(" ");
@@ -9,6 +9,7 @@ async function runCommand(command, interactive = false) {
9
9
  });
10
10
  }
11
11
  else {
12
+ s.stop();
12
13
  await execa(commandName, args, {
13
14
  stdio: "inherit",
14
15
  });
@@ -39,8 +40,10 @@ export async function install(commands) {
39
40
  // Then run non-interactive
40
41
  if (command.nonInteractive.length > 0) {
41
42
  // For non-interactive, we show a spinner
42
- display(`Running command: ${command.nonInteractive[0]}`, "loading");
43
- await runCommand(command.nonInteractive[0], false);
43
+ for (let i = 0; i < command.nonInteractive.length; i++) {
44
+ display(`Running command: ${command.nonInteractive[i]}`, "loading");
45
+ await runCommand(command.nonInteractive[i], false);
46
+ }
44
47
  }
45
48
  }
46
49
  }
@@ -1 +1 @@
1
- {"version":3,"file":"install.js","sourceRoot":"","sources":["../src/install.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAE9B,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,KAAK,UAAU,UAAU,CAAC,OAAe,EAAE,cAAuB,KAAK;IACrE,IAAI,CAAC;QACH,MAAM,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAElD,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,KAAK,CAAC,WAAqB,EAAE,IAAI,EAAE;gBACvC,KAAK,EAAE,SAAS;aACjB,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,MAAM,KAAK,CAAC,WAAqB,EAAE,IAAI,EAAE;gBACvC,KAAK,EAAE,SAAS;aACjB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,4CAA4C;QAC5C,IAAI,KAAK,CAAC,MAAM;YAAE,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAC5C,IAAI,KAAK,CAAC,MAAM;YAAE,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACjD,OAAO,CAAC,WAAW,KAAK,CAAC,OAAO,EAAE,EAAE,OAAO,CAAC,CAAC;IAC/C,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,QAAyB;IACrD,IAAI,CAAC;QACH,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,oDAAoD;YACpD,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;gBACxB,KAAK,MAAM,kBAAkB,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;oBACrD,OAAO,CAAC,gCAAgC,kBAAkB,EAAE,EAAE,MAAM,CAAC,CAAC;oBACtE,MAAM,UAAU,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAC;gBAC7C,CAAC;YACH,CAAC;YAED,2BAA2B;YAC3B,IAAI,OAAO,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACtC,yCAAyC;gBACzC,OAAO,CAAC,oBAAoB,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;gBACpE,MAAM,UAAU,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAW,EAAE,KAAK,CAAC,CAAC;YAC/D,CAAC;QACH,CAAC;IACH,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,OAAO,CAAC,UAAU,KAAK,CAAC,OAAO,EAAE,EAAE,OAAO,CAAC,CAAC;IAC9C,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"install.js","sourceRoot":"","sources":["../src/install.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAE9B,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,cAAc,CAAC;AAE1C,KAAK,UAAU,UAAU,CAAC,OAAe,EAAE,cAAuB,KAAK;IACrE,IAAI,CAAC;QACH,MAAM,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAElD,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,KAAK,CAAC,WAAqB,EAAE,IAAI,EAAE;gBACvC,KAAK,EAAE,SAAS;aACjB,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,CAAC,CAAC,IAAI,EAAE,CAAC;YAET,MAAM,KAAK,CAAC,WAAqB,EAAE,IAAI,EAAE;gBACvC,KAAK,EAAE,SAAS;aACjB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,4CAA4C;QAC5C,IAAI,KAAK,CAAC,MAAM;YAAE,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAC5C,IAAI,KAAK,CAAC,MAAM;YAAE,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACjD,OAAO,CAAC,WAAW,KAAK,CAAC,OAAO,EAAE,EAAE,OAAO,CAAC,CAAC;IAC/C,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,QAAyB;IACrD,IAAI,CAAC;QACH,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,oDAAoD;YACpD,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;gBACxB,KAAK,MAAM,kBAAkB,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;oBACrD,OAAO,CAAC,gCAAgC,kBAAkB,EAAE,EAAE,MAAM,CAAC,CAAC;oBACtE,MAAM,UAAU,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAC;gBAC7C,CAAC;YACH,CAAC;YAED,2BAA2B;YAC3B,IAAI,OAAO,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACtC,yCAAyC;gBACzC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBACvD,OAAO,CAAC,oBAAoB,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;oBACpE,MAAM,UAAU,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAW,EAAE,KAAK,CAAC,CAAC;gBAC/D,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,OAAO,CAAC,UAAU,KAAK,CAAC,OAAO,EAAE,EAAE,OAAO,CAAC,CAAC;IAC9C,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../src/orchestrator.ts"],"names":[],"mappings":"AAqBA,eAAO,MAAM,YAAY,GACvB,SAAS,MAAM,EACf,UAAU,MAAM,EAAE,EAClB,UAAU,GAAG,SA8Cd,CAAC"}
1
+ {"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../src/orchestrator.ts"],"names":[],"mappings":"AAqBA,eAAO,MAAM,YAAY,GACvB,SAAS,MAAM,EACf,UAAU,MAAM,EAAE,EAClB,UAAU,GAAG,SAgDd,CAAC"}
@@ -22,13 +22,13 @@ export const orchestrator = (command, packages, options) => {
22
22
  if (isConfigTypeArray(config)) {
23
23
  const commands = buildCommands(config);
24
24
  await install(commands);
25
- display("Packages installed successfully", "success");
26
25
  outro("Done!");
26
+ display("Packages installed successfully", "success");
27
27
  }
28
28
  else {
29
29
  await install(config);
30
- display("Packages from package.json installed successfully", "success");
31
30
  outro("Done!");
31
+ display("Packages from package.json installed successfully", "success");
32
32
  }
33
33
  });
34
34
  }
@@ -42,8 +42,8 @@ export const orchestrator = (command, packages, options) => {
42
42
  if (isConfigTypeArray(config)) {
43
43
  const commands = buildUninstallCommands(config);
44
44
  await install(commands);
45
- display("Packages uninstalled successfully", "success");
46
45
  outro("Done!");
46
+ display("Packages uninstalled successfully", "success");
47
47
  }
48
48
  });
49
49
  }
@@ -1 +1 @@
1
- {"version":3,"file":"orchestrator.js","sourceRoot":"","sources":["../src/orchestrator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAC3E,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAEvC,sDAAsD;AACtD,SAAS,iBAAiB,CAAC,KAAc;IACvC,OAAO,CACL,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QACpB,KAAK,CAAC,KAAK,CACT,CAAC,IAAI,EAAE,EAAE,CACP,OAAO,IAAI,KAAK,QAAQ;YACxB,IAAI,KAAK,IAAI;YACb,UAAU,IAAI,IAAI;YAClB,KAAK,CAAC,OAAO,CAAE,IAAY,CAAC,QAAQ,CAAC,CACxC,CACF,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,YAAY,GAAG,CAC1B,OAAe,EACf,QAAkB,EAClB,OAAa,EACb,EAAE;IACF,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,OAAO,CACL,0BAA0B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAE,QAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EACrG,MAAM,CACP,CAAC;QAEF,eAAe,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;YACvD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACxB,OAAO,CAAC,wBAAwB,EAAE,OAAO,CAAC,CAAC;gBAC3C,OAAO;YACT,CAAC;YAED,IAAI,iBAAiB,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC9B,MAAM,QAAQ,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;gBAEvC,MAAM,OAAO,CAAC,QAAQ,CAAC,CAAC;gBACxB,OAAO,CAAC,iCAAiC,EAAE,SAAS,CAAC,CAAC;gBACtD,KAAK,CAAC,OAAO,CAAC,CAAC;YACjB,CAAC;iBAAM,CAAC;gBACN,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;gBACtB,OAAO,CAAC,mDAAmD,EAAE,SAAS,CAAC,CAAC;gBACxE,KAAK,CAAC,OAAO,CAAC,CAAC;YACjB,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;SAAM,CAAC;QACN,OAAO,CACL,4BAA6B,QAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAC/D,MAAM,CACP,CAAC;QAEF,eAAe,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;YACvD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACxB,OAAO,CAAC,wBAAwB,EAAE,OAAO,CAAC,CAAC;gBAC3C,OAAO;YACT,CAAC;YAED,IAAI,iBAAiB,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC9B,MAAM,QAAQ,GAAG,sBAAsB,CAAC,MAAM,CAAC,CAAC;gBAChD,MAAM,OAAO,CAAC,QAAQ,CAAC,CAAC;gBACxB,OAAO,CAAC,mCAAmC,EAAE,SAAS,CAAC,CAAC;gBACxD,KAAK,CAAC,OAAO,CAAC,CAAC;YACjB,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;AACH,CAAC,CAAC"}
1
+ {"version":3,"file":"orchestrator.js","sourceRoot":"","sources":["../src/orchestrator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAC3E,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAEvC,sDAAsD;AACtD,SAAS,iBAAiB,CAAC,KAAc;IACvC,OAAO,CACL,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QACpB,KAAK,CAAC,KAAK,CACT,CAAC,IAAI,EAAE,EAAE,CACP,OAAO,IAAI,KAAK,QAAQ;YACxB,IAAI,KAAK,IAAI;YACb,UAAU,IAAI,IAAI;YAClB,KAAK,CAAC,OAAO,CAAE,IAAY,CAAC,QAAQ,CAAC,CACxC,CACF,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,YAAY,GAAG,CAC1B,OAAe,EACf,QAAkB,EAClB,OAAa,EACb,EAAE;IACF,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,OAAO,CACL,0BAA0B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAE,QAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EACrG,MAAM,CACP,CAAC;QAEF,eAAe,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;YACvD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACxB,OAAO,CAAC,wBAAwB,EAAE,OAAO,CAAC,CAAC;gBAC3C,OAAO;YACT,CAAC;YAED,IAAI,iBAAiB,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC9B,MAAM,QAAQ,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;gBAEvC,MAAM,OAAO,CAAC,QAAQ,CAAC,CAAC;gBACxB,KAAK,CAAC,OAAO,CAAC,CAAC;gBAEf,OAAO,CAAC,iCAAiC,EAAE,SAAS,CAAC,CAAC;YACxD,CAAC;iBAAM,CAAC;gBACN,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;gBACtB,KAAK,CAAC,OAAO,CAAC,CAAC;gBACf,OAAO,CAAC,mDAAmD,EAAE,SAAS,CAAC,CAAC;YAC1E,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;SAAM,CAAC;QACN,OAAO,CACL,4BAA6B,QAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAC/D,MAAM,CACP,CAAC;QAEF,eAAe,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;YACvD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACxB,OAAO,CAAC,wBAAwB,EAAE,OAAO,CAAC,CAAC;gBAC3C,OAAO;YACT,CAAC;YAED,IAAI,iBAAiB,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC9B,MAAM,QAAQ,GAAG,sBAAsB,CAAC,MAAM,CAAC,CAAC;gBAChD,MAAM,OAAO,CAAC,QAAQ,CAAC,CAAC;gBACxB,KAAK,CAAC,OAAO,CAAC,CAAC;gBAEf,OAAO,CAAC,mCAAmC,EAAE,SAAS,CAAC,CAAC;YAC1D,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;AACH,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pm-auto",
3
- "version": "1.0.5",
3
+ "version": "1.0.6",
4
4
  "description": "A CLI tool to define and install your tech stack presets with one command.",
5
5
  "keywords": [
6
6
  "pm-auto",
@@ -20,7 +20,7 @@
20
20
  "dev": "nodemon --exec tsx src/index.ts",
21
21
  "start": "node dist/index.js",
22
22
  "prepublishOnly": "npm run build",
23
- "test": "vitest run"
23
+ "test": "vitest"
24
24
  },
25
25
  "dependencies": {
26
26
  "@clack/prompts": "^0.11.0",
@@ -57,7 +57,20 @@ export function buildCommands(projects: ConfigType[]) {
57
57
 
58
58
  // Batch all non-interactive packages into ONE command
59
59
  if (nonInteractive.length > 0) {
60
- const packageNames = nonInteractive.map((pkg) => pkg.command).join(" ");
60
+ const packageNames = nonInteractive
61
+ .map((pkg) => {
62
+ if (!pkg.command.includes("-")) {
63
+ return pkg.command;
64
+ }
65
+ })
66
+ .filter((item) => item !== undefined)
67
+ .join(" ");
68
+
69
+ nonInteractive.map((pkg) => {
70
+ if (pkg.command.includes("-")) {
71
+ result.nonInteractive.push(`${manager.install} ${pkg.command}`);
72
+ }
73
+ });
61
74
  result.nonInteractive.push(`${manager.install} ${packageNames}`);
62
75
  }
63
76
 
@@ -77,7 +90,7 @@ export function buildUninstallCommands(projects: ConfigType[]) {
77
90
  install: "npm uninstall",
78
91
  },
79
92
  pnpm: {
80
- install: "pnpm uninstall",
93
+ install: "pnpm remove",
81
94
  },
82
95
  yarn: {
83
96
  install: "yarn remove",
@@ -108,7 +121,9 @@ export function buildUninstallCommands(projects: ConfigType[]) {
108
121
 
109
122
  // Batch all non-interactive packages into ONE command
110
123
  if (nonInteractive.length > 0) {
111
- const packageNames = nonInteractive.map((pkg) => pkg.command).join(" ");
124
+ const packageNames = nonInteractive
125
+ .map((pkg) => pkg.command.trim().split(/\s+/)[0])
126
+ .join(" ");
112
127
  result.nonInteractive.push(`${manager.install} ${packageNames}`);
113
128
  }
114
129
 
@@ -91,21 +91,22 @@ export const getConfigObject = async (
91
91
  result.forEach((config) => {
92
92
  display(`Package name -> ${config.name}`, "info");
93
93
  config.packages.forEach((pkg) => {
94
- display(`add ${pkg.command}`, "info");
94
+ display(`running ${pkg.command}`, "info");
95
95
  });
96
96
  });
97
- const continueWithInstall = await confirm({
98
- message: "Continue with installation?",
97
+ const continuation = await confirm({
98
+ message: "Continue?",
99
99
  initialValue: true,
100
100
  });
101
101
 
102
- if (isCancel(continueWithInstall)) {
102
+ if (isCancel(continuation)) {
103
103
  cancel("Operation cancelled.");
104
104
  process.exit(0);
105
105
  }
106
106
 
107
- if (!continueWithInstall) {
108
- display("Installation cancelled ", "success");
107
+ if (!continuation) {
108
+ display("Operation cancelled. ", "success");
109
+ process.exit(0);
109
110
  }
110
111
  }
111
112
 
@@ -172,13 +173,13 @@ export const getPackageDescription = async (packageName: string) => {
172
173
  }
173
174
 
174
175
  const configObject = JSON.parse(configContent);
175
- let keys = Object.keys(configObject);
176
+ const configObjectArray: ConfigType[] = Object.values(configObject);
176
177
 
177
- keys.forEach((key) => {
178
- if (key === packageName) {
179
- const description = !configObject[key].description
178
+ configObjectArray.forEach((configObject) => {
179
+ if (configObject.name === packageName) {
180
+ const description = !configObject.description
180
181
  ? "No description"
181
- : configObject[key].description;
182
+ : configObject.description;
182
183
  display(`${packageName} - ${description}`, "info");
183
184
  }
184
185
  });
package/src/display.ts CHANGED
@@ -2,7 +2,7 @@ import { log, spinner } from "@clack/prompts";
2
2
  import chalk from "chalk";
3
3
 
4
4
  type DisplayType = "error" | "success" | "warning" | "info" | "loading" | "";
5
-
5
+ export const s = spinner();
6
6
  export const display = (text: string, type: DisplayType) => {
7
7
  switch (type) {
8
8
  case "error":
@@ -22,7 +22,6 @@ export const display = (text: string, type: DisplayType) => {
22
22
  break;
23
23
 
24
24
  case "loading":
25
- const s = spinner();
26
25
  s.start(text);
27
26
  return s; // Return spinner so it can be stopped later
28
27
 
package/src/index.ts CHANGED
@@ -14,7 +14,7 @@ const program = new Command();
14
14
 
15
15
  program
16
16
  .name("pm-auto")
17
- .version("1.0.5")
17
+ .version("1.0.6")
18
18
  .description(
19
19
  "A CLI tool to define and install your tech stack presets with one command.",
20
20
  );
@@ -51,10 +51,8 @@ program
51
51
  .description(
52
52
  "Remove packages using the detected package manager (Aliases: remove, u, un)",
53
53
  )
54
- .option(
55
- "-A, --add-command <command>",
56
- "Add a custom command to all installation commands from config file",
57
- )
54
+ .option("-D, --dry-run", "Dry run - Display commands before execution")
55
+
58
56
  .action((packages, options) => {
59
57
  orchestrator("uninstall", packages, options);
60
58
  });
package/src/install.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { execa } from "execa";
2
2
  import type { CommandResult } from "./types/index.js";
3
- import { display } from "./display.js";
3
+ import { display, s } from "./display.js";
4
4
 
5
5
  async function runCommand(command: string, interactive: boolean = false) {
6
6
  try {
@@ -11,6 +11,8 @@ async function runCommand(command: string, interactive: boolean = false) {
11
11
  stdio: "inherit",
12
12
  });
13
13
  } else {
14
+ s.stop();
15
+
14
16
  await execa(commandName as string, args, {
15
17
  stdio: "inherit",
16
18
  });
@@ -40,8 +42,10 @@ export async function install(commands: CommandResult[]) {
40
42
  // Then run non-interactive
41
43
  if (command.nonInteractive.length > 0) {
42
44
  // For non-interactive, we show a spinner
43
- display(`Running command: ${command.nonInteractive[0]}`, "loading");
44
- await runCommand(command.nonInteractive[0] as string, false);
45
+ for (let i = 0; i < command.nonInteractive.length; i++) {
46
+ display(`Running command: ${command.nonInteractive[i]}`, "loading");
47
+ await runCommand(command.nonInteractive[i] as string, false);
48
+ }
45
49
  }
46
50
  }
47
51
  } catch (error: any) {
@@ -40,12 +40,13 @@ export const orchestrator = (
40
40
  const commands = buildCommands(config);
41
41
 
42
42
  await install(commands);
43
- display("Packages installed successfully", "success");
44
43
  outro("Done!");
44
+
45
+ display("Packages installed successfully", "success");
45
46
  } else {
46
47
  await install(config);
47
- display("Packages from package.json installed successfully", "success");
48
48
  outro("Done!");
49
+ display("Packages from package.json installed successfully", "success");
49
50
  }
50
51
  });
51
52
  } else {
@@ -63,8 +64,9 @@ export const orchestrator = (
63
64
  if (isConfigTypeArray(config)) {
64
65
  const commands = buildUninstallCommands(config);
65
66
  await install(commands);
66
- display("Packages uninstalled successfully", "success");
67
67
  outro("Done!");
68
+
69
+ display("Packages uninstalled successfully", "success");
68
70
  }
69
71
  });
70
72
  }
@@ -6,10 +6,15 @@ describe("buildCommand", () => {
6
6
  const mockConfig: ConfigType[] = [
7
7
  {
8
8
  name: "vite",
9
- packageManager: "npm",
9
+ packageManager: "pnpm",
10
10
  packages: [
11
11
  { command: "vite@latest", interactive: true },
12
12
  { command: "gsap@latest", interactive: false },
13
+ { command: "react-dom@latest --save-dev", interactive: false },
14
+ { command: "lodash --save-dev", interactive: false },
15
+ { command: "typescript@latest --save-dev", interactive: false },
16
+ { command: "clsx", interactive: false },
17
+ { command: "shadcn", interactive: true },
13
18
  ],
14
19
  },
15
20
  ];
@@ -18,8 +23,13 @@ describe("buildCommand", () => {
18
23
  expect(command).toEqual([
19
24
  {
20
25
  name: "vite",
21
- interactive: ["npx vite@latest"],
22
- nonInteractive: ["npm install gsap@latest"],
26
+ interactive: ["pnpm dlx vite@latest", "pnpm dlx shadcn"],
27
+ nonInteractive: [
28
+ "pnpm add react-dom@latest --save-dev",
29
+ "pnpm add lodash --save-dev",
30
+ "pnpm add typescript@latest --save-dev",
31
+ "pnpm add gsap@latest clsx",
32
+ ],
23
33
  },
24
34
  ]);
25
35
  });
@@ -30,7 +40,9 @@ describe("buildCommand", () => {
30
40
  {
31
41
  name: "vite",
32
42
  interactive: [],
33
- nonInteractive: ["npm uninstall gsap@latest"],
43
+ nonInteractive: [
44
+ "pnpm remove gsap@latest react-dom@latest lodash typescript@latest clsx",
45
+ ],
34
46
  },
35
47
  ]);
36
48
  });
@@ -1,8 +1,9 @@
1
1
  import { describe, it, expect, vi, beforeEach, afterEach } from "vitest";
2
- import { display } from "../src/display.js";
2
+ import { display, s } from "../src/display.js";
3
3
  import { log, spinner } from "@clack/prompts";
4
+ import chalk from "chalk";
4
5
 
5
- // Mock the dependencies
6
+ // Mock dependencies
6
7
  vi.mock("@clack/prompts", () => ({
7
8
  log: {
8
9
  error: vi.fn(),
@@ -11,7 +12,10 @@ vi.mock("@clack/prompts", () => ({
11
12
  info: vi.fn(),
12
13
  message: vi.fn(),
13
14
  },
14
- spinner: vi.fn(),
15
+ spinner: vi.fn(() => ({
16
+ start: vi.fn(),
17
+ stop: vi.fn(),
18
+ })),
15
19
  }));
16
20
 
17
21
  vi.mock("chalk", () => ({
@@ -23,61 +27,65 @@ vi.mock("chalk", () => ({
23
27
  },
24
28
  }));
25
29
 
26
- describe("display", () => {
27
- let mockSpinner: any;
28
- let exitSpy: any;
30
+ describe("display function", () => {
31
+ let processExitSpy: any;
29
32
 
30
33
  beforeEach(() => {
31
- mockSpinner = {
32
- stop: vi.fn(),
33
- start: vi.fn(),
34
- };
35
- vi.mocked(spinner).mockReturnValue(mockSpinner);
36
- exitSpy = vi
34
+ vi.clearAllMocks();
35
+ processExitSpy = vi
37
36
  .spyOn(process, "exit")
38
- .mockImplementation(() => undefined as never);
37
+ .mockImplementation(() => ({}) as never);
39
38
  });
40
39
 
41
40
  afterEach(() => {
42
- vi.clearAllMocks();
43
- exitSpy.mockRestore();
41
+ processExitSpy.mockRestore();
44
42
  });
45
43
 
46
44
  it("should display error message and exit process", () => {
47
- display("Error text", "error");
48
- expect(log.error).toHaveBeenCalledWith("red:Error text");
49
- expect(exitSpy).toHaveBeenCalledWith(0);
45
+ display("Error occurred", "error");
46
+
47
+ expect(chalk.red).toHaveBeenCalledWith("Error occurred");
48
+ expect(log.error).toHaveBeenCalledWith("red:Error occurred");
49
+ expect(processExitSpy).toHaveBeenCalledWith(0);
50
50
  });
51
51
 
52
52
  it("should display success message", () => {
53
- display("Success text", "success");
54
- expect(log.success).toHaveBeenCalledWith("green:Success text");
55
- expect(exitSpy).not.toHaveBeenCalled();
53
+ display("Operation successful", "success");
54
+
55
+ expect(chalk.green).toHaveBeenCalledWith("Operation successful");
56
+ expect(log.success).toHaveBeenCalledWith("green:Operation successful");
56
57
  });
57
58
 
58
59
  it("should display warning message", () => {
59
- display("Warning text", "warning");
60
- expect(log.warn).toHaveBeenCalledWith("yellow:Warning text");
60
+ display("Warning message", "warning");
61
+
62
+ expect(chalk.yellow).toHaveBeenCalledWith("Warning message");
63
+ expect(log.warn).toHaveBeenCalledWith("yellow:Warning message");
61
64
  });
62
65
 
63
66
  it("should display info message", () => {
64
- display("Info text", "info");
65
- expect(log.info).toHaveBeenCalledWith("blue:Info text");
67
+ display("Info message", "info");
68
+
69
+ expect(chalk.blue).toHaveBeenCalledWith("Info message");
70
+ expect(log.info).toHaveBeenCalledWith("blue:Info message");
66
71
  });
67
72
 
68
73
  it("should start spinner for loading type", () => {
69
- const result = display("Loading text", "loading");
70
- expect(mockSpinner.start).toHaveBeenCalledWith("Loading text");
71
- expect(result).toBe(mockSpinner);
74
+ const result = display("Loading...", "loading");
75
+
76
+ expect(s.start).toHaveBeenCalledWith("Loading...");
77
+ expect(result).toBe(s);
72
78
  });
73
79
 
74
- it("should display plain message for default/empty type", () => {
75
- display("Plain text", "");
76
- expect(log.message).toHaveBeenCalledWith("Plain text");
80
+ it("should display default message for empty type", () => {
81
+ display("Default message", "");
82
+
83
+ expect(log.message).toHaveBeenCalledWith("Default message");
77
84
  });
78
85
 
79
- it("should display plain message when type is not recognized", () => {
80
- display("Unknown text", "unknown" as any);
81
- expect(log.message).toHaveBeenCalledWith("Unknown text");
86
+ it("should display default message for unrecognized type", () => {
87
+ display("Random message", "unknown" as any);
88
+
89
+ expect(log.message).toHaveBeenCalledWith("Random message");
82
90
  });
83
91
  });