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 +6 -3
- package/dist/build_command.d.ts.map +1 -1
- package/dist/build_command.js +17 -3
- package/dist/build_command.js.map +1 -1
- package/dist/config_reader.d.ts.map +1 -1
- package/dist/config_reader.js +12 -11
- package/dist/config_reader.js.map +1 -1
- package/dist/display.d.ts +5 -0
- package/dist/display.d.ts.map +1 -1
- package/dist/display.js +1 -1
- package/dist/display.js.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/install.d.ts.map +1 -1
- package/dist/install.js +6 -3
- package/dist/install.js.map +1 -1
- package/dist/orchestrator.d.ts.map +1 -1
- package/dist/orchestrator.js +3 -3
- package/dist/orchestrator.js.map +1 -1
- package/package.json +2 -2
- package/src/build_command.ts +18 -3
- package/src/config_reader.ts +12 -11
- package/src/display.ts +1 -2
- package/src/index.ts +3 -5
- package/src/install.ts +7 -3
- package/src/orchestrator.ts +5 -3
- package/tests/build_command.test.ts +16 -4
- package/tests/display.test.ts +42 -34
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
|
-
- `-
|
|
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
|
-
#
|
|
199
|
-
pm-auto uninstall vite --
|
|
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,
|
|
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"}
|
package/dist/build_command.js
CHANGED
|
@@ -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
|
|
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
|
|
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
|
|
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;
|
|
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,
|
|
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"}
|
package/dist/config_reader.js
CHANGED
|
@@ -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(`
|
|
72
|
+
display(`running ${pkg.command}`, "info");
|
|
73
73
|
});
|
|
74
74
|
});
|
|
75
|
-
const
|
|
76
|
-
message: "Continue
|
|
75
|
+
const continuation = await confirm({
|
|
76
|
+
message: "Continue?",
|
|
77
77
|
initialValue: true,
|
|
78
78
|
});
|
|
79
|
-
if (isCancel(
|
|
79
|
+
if (isCancel(continuation)) {
|
|
80
80
|
cancel("Operation cancelled.");
|
|
81
81
|
process.exit(0);
|
|
82
82
|
}
|
|
83
|
-
if (!
|
|
84
|
-
display("
|
|
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
|
-
|
|
139
|
-
|
|
140
|
-
if (
|
|
141
|
-
const description = !configObject
|
|
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
|
|
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":"AAAA,OAAO,EAAE,MAAM,aAAa,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,OAAO,KAAK,GAAG,MAAM,IAAI,CAAC;AAC1B,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAE7B,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAI3D;;GAEG;AAEH,MAAM,UAAU,oBAAoB,CAClC,cAAsB,OAAO,CAAC,GAAG,EAAE;IAEnC,+CAA+C;IAC/C,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC,EAAE,CAAC;QAC7D,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC;QACxD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,mBAAmB,CAAC,CAAC,EAAE,CAAC;QAChE,OAAO,KAAK,CAAC;IACf,CAAC;IAED,uCAAuC;IACvC,OAAO,CAAC,oBAAoB,EAAE,OAAO,CAAC,CAAC;AACzC,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,EAClC,QAAkB,EAClB,OAAa,EAC4B,EAAE;IAC3C,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;QACrB,MAAM,UAAU,GAAG,aAAa,EAAE,CAAC;QAEnC,0BAA0B;QAC1B,IAAI,aAAa,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC;YACH,aAAa,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,UAAoB,EAAE,MAAM,CAAC,CAAC;QAClE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CACL,kBAAkB,KAAK,oCAAoC,EAC3D,OAAO,CACR,CAAC;QACJ,CAAC;QAED,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QAC/C,IAAI,MAAM,GAAiB,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAEvD,+CAA+C;QAC/C,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,MAAM,GAAG,QAAQ;iBACd,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;gBACf,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC;gBACzD,IAAI,CAAC,KAAK,EAAE,CAAC;oBACX,OAAO,CAAC,YAAY,OAAO,uBAAuB,EAAE,SAAS,CAAC,CAAC;gBACjE,CAAC;gBACD,OAAO,KAAK,CAAC;YACf,CAAC,CAAC;iBACD,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC;QACxC,CAAC;QAED;;WAEG;QACH,+DAA+D;QAC/D,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;YACvB,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;gBACxB,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;oBAC9B,GAAG,CAAC,OAAO,GAAG,GAAG,CAAC,WAAW;wBAC3B,CAAC,CAAC,GAAG,CAAC,OAAO;wBACb,CAAC,CAAC,GAAG,CAAC,OAAO,GAAG,GAAG,GAAG,OAAO,CAAC,UAAU,CAAC;gBAC7C,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC;QAED,6CAA6C;QAC7C,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACnB,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;YAC5B,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;gBACxB,OAAO,CAAC,mBAAmB,MAAM,CAAC,IAAI,EAAE,EAAE,MAAM,CAAC,CAAC;gBAClD,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;oBAC9B,OAAO,CAAC,
|
|
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;
|
package/dist/display.d.ts.map
CHANGED
|
@@ -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;
|
|
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:
|
package/dist/display.js.map
CHANGED
|
@@ -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;
|
|
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.
|
|
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("-
|
|
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,
|
|
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"}
|
package/dist/install.d.ts.map
CHANGED
|
@@ -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;
|
|
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
|
-
|
|
43
|
-
|
|
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
|
}
|
package/dist/install.js.map
CHANGED
|
@@ -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;
|
|
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,
|
|
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"}
|
package/dist/orchestrator.js
CHANGED
|
@@ -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
|
}
|
package/dist/orchestrator.js.map
CHANGED
|
@@ -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,
|
|
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.
|
|
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
|
|
23
|
+
"test": "vitest"
|
|
24
24
|
},
|
|
25
25
|
"dependencies": {
|
|
26
26
|
"@clack/prompts": "^0.11.0",
|
package/src/build_command.ts
CHANGED
|
@@ -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
|
|
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
|
|
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
|
|
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
|
|
package/src/config_reader.ts
CHANGED
|
@@ -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(`
|
|
94
|
+
display(`running ${pkg.command}`, "info");
|
|
95
95
|
});
|
|
96
96
|
});
|
|
97
|
-
const
|
|
98
|
-
message: "Continue
|
|
97
|
+
const continuation = await confirm({
|
|
98
|
+
message: "Continue?",
|
|
99
99
|
initialValue: true,
|
|
100
100
|
});
|
|
101
101
|
|
|
102
|
-
if (isCancel(
|
|
102
|
+
if (isCancel(continuation)) {
|
|
103
103
|
cancel("Operation cancelled.");
|
|
104
104
|
process.exit(0);
|
|
105
105
|
}
|
|
106
106
|
|
|
107
|
-
if (!
|
|
108
|
-
display("
|
|
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
|
-
|
|
176
|
+
const configObjectArray: ConfigType[] = Object.values(configObject);
|
|
176
177
|
|
|
177
|
-
|
|
178
|
-
if (
|
|
179
|
-
const description = !configObject
|
|
178
|
+
configObjectArray.forEach((configObject) => {
|
|
179
|
+
if (configObject.name === packageName) {
|
|
180
|
+
const description = !configObject.description
|
|
180
181
|
? "No description"
|
|
181
|
-
: configObject
|
|
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.
|
|
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
|
-
|
|
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
|
-
|
|
44
|
-
|
|
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) {
|
package/src/orchestrator.ts
CHANGED
|
@@ -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: "
|
|
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: ["
|
|
22
|
-
nonInteractive: [
|
|
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: [
|
|
43
|
+
nonInteractive: [
|
|
44
|
+
"pnpm remove gsap@latest react-dom@latest lodash typescript@latest clsx",
|
|
45
|
+
],
|
|
34
46
|
},
|
|
35
47
|
]);
|
|
36
48
|
});
|
package/tests/display.test.ts
CHANGED
|
@@ -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
|
|
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
|
|
28
|
-
let exitSpy: any;
|
|
30
|
+
describe("display function", () => {
|
|
31
|
+
let processExitSpy: any;
|
|
29
32
|
|
|
30
33
|
beforeEach(() => {
|
|
31
|
-
|
|
32
|
-
|
|
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(() =>
|
|
37
|
+
.mockImplementation(() => ({}) as never);
|
|
39
38
|
});
|
|
40
39
|
|
|
41
40
|
afterEach(() => {
|
|
42
|
-
|
|
43
|
-
exitSpy.mockRestore();
|
|
41
|
+
processExitSpy.mockRestore();
|
|
44
42
|
});
|
|
45
43
|
|
|
46
44
|
it("should display error message and exit process", () => {
|
|
47
|
-
display("Error
|
|
48
|
-
|
|
49
|
-
expect(
|
|
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("
|
|
54
|
-
|
|
55
|
-
expect(
|
|
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
|
|
60
|
-
|
|
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
|
|
65
|
-
|
|
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
|
|
70
|
-
|
|
71
|
-
expect(
|
|
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
|
|
75
|
-
display("
|
|
76
|
-
|
|
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
|
|
80
|
-
display("
|
|
81
|
-
|
|
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
|
});
|