pm-auto 1.0.5 → 1.0.7
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/config.json +45 -0
- package/dist/build_command.d.ts +6 -1
- package/dist/build_command.d.ts.map +1 -1
- package/dist/build_command.js +66 -13
- package/dist/build_command.js.map +1 -1
- package/dist/config_path.d.ts +1 -0
- package/dist/config_path.d.ts.map +1 -1
- package/dist/config_path.js +60 -2
- package/dist/config_path.js.map +1 -1
- package/dist/config_reader.d.ts +2 -12
- package/dist/config_reader.d.ts.map +1 -1
- package/dist/config_reader.js +76 -92
- 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 +2 -1
- package/dist/display.js.map +1 -1
- package/dist/index.js +6 -7
- package/dist/index.js.map +1 -1
- package/dist/orchestrator.d.ts.map +1 -1
- package/dist/orchestrator.js +18 -28
- package/dist/orchestrator.js.map +1 -1
- package/dist/run_commands.d.ts +6 -0
- package/dist/run_commands.d.ts.map +1 -0
- package/dist/{install.js → run_commands.js} +10 -7
- package/dist/run_commands.js.map +1 -0
- package/dist/types/index.d.ts +8 -2
- package/dist/types/index.d.ts.map +1 -1
- package/package.json +4 -2
- package/src/build_command.ts +78 -13
- package/src/config_path.ts +63 -2
- package/src/config_reader.ts +90 -110
- package/src/display.ts +2 -2
- package/src/index.ts +8 -13
- package/src/orchestrator.ts +21 -34
- package/src/{install.ts → run_commands.ts} +10 -6
- package/src/types/index.ts +12 -3
- package/tests/build_command.test.ts +240 -30
- package/tests/config_reader.test.ts +51 -92
- package/tests/display.test.ts +42 -34
- package/tests/{install.test.ts → run_command.test.ts} +23 -23
- package/dist/install.d.ts +0 -6
- package/dist/install.d.ts.map +0 -1
- package/dist/install.js.map +0 -1
- package/test.json +0 -87
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`
|
package/config.json
ADDED
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
{
|
|
2
|
+
"example": {
|
|
3
|
+
"presetName": "example",
|
|
4
|
+
"description": "A sample configuration demonstrating all options for PM-Auto",
|
|
5
|
+
"packageManager": "bun",
|
|
6
|
+
"packages": [
|
|
7
|
+
{
|
|
8
|
+
"command": "create-next-app",
|
|
9
|
+
"interactive": true,
|
|
10
|
+
"dev": false,
|
|
11
|
+
"version": "latest",
|
|
12
|
+
"flags": ["."]
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
"command": "shadcn",
|
|
16
|
+
"interactive": true,
|
|
17
|
+
"dev": false,
|
|
18
|
+
"version": "latest",
|
|
19
|
+
"flags": ["init"]
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
"command": "gsap",
|
|
23
|
+
"interactive": false,
|
|
24
|
+
"dev": false,
|
|
25
|
+
"version": "3.11.4",
|
|
26
|
+
"flags": ["--peer-deps"]
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
"command": "@react-three/fiber",
|
|
30
|
+
"interactive": false,
|
|
31
|
+
"dev": false
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
"command": "clsx",
|
|
35
|
+
"interactive": false,
|
|
36
|
+
"dev": false
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
"command": "@types/three",
|
|
40
|
+
"interactive": false,
|
|
41
|
+
"dev": true
|
|
42
|
+
}
|
|
43
|
+
]
|
|
44
|
+
}
|
|
45
|
+
}
|
package/dist/build_command.d.ts
CHANGED
|
@@ -2,6 +2,11 @@ import type { ConfigType, CommandResult } from "./types/index.js";
|
|
|
2
2
|
/**
|
|
3
3
|
* Build commands from project configurations.
|
|
4
4
|
*/
|
|
5
|
-
|
|
5
|
+
/**
|
|
6
|
+
* Extracts the package name from a raw command string
|
|
7
|
+
* Removes version and any flags (starts with -)
|
|
8
|
+
*/
|
|
9
|
+
export declare function cleanCommand(rawCommand: string): string;
|
|
10
|
+
export declare function buildInstallCommands(projects: ConfigType[]): CommandResult[];
|
|
6
11
|
export declare function buildUninstallCommands(projects: ConfigType[]): CommandResult[];
|
|
7
12
|
//# sourceMappingURL=build_command.d.ts.map
|
|
@@ -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,
|
|
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;;;GAGG;AAEH,wBAAgB,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAgBvD;AAED,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,UAAU,EAAE,mBAmG1D;AAED,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,UAAU,EAAE,mBAqD5D"}
|
package/dist/build_command.js
CHANGED
|
@@ -1,7 +1,28 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Build commands from project configurations.
|
|
3
3
|
*/
|
|
4
|
-
|
|
4
|
+
/**
|
|
5
|
+
* Extracts the package name from a raw command string
|
|
6
|
+
* Removes version and any flags (starts with -)
|
|
7
|
+
*/
|
|
8
|
+
export function cleanCommand(rawCommand) {
|
|
9
|
+
// Split by spaces and pick first segment that doesn't start with "-"
|
|
10
|
+
const parts = rawCommand.trim().split(" ");
|
|
11
|
+
for (const part of parts) {
|
|
12
|
+
if (!part.startsWith("-")) {
|
|
13
|
+
// Remove version if exists
|
|
14
|
+
const atIndex = part.indexOf("@");
|
|
15
|
+
if (atIndex > 0) {
|
|
16
|
+
return part.slice(0, atIndex).trim();
|
|
17
|
+
}
|
|
18
|
+
else {
|
|
19
|
+
return part.trim();
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
return ""; // fallback
|
|
24
|
+
}
|
|
25
|
+
export function buildInstallCommands(projects) {
|
|
5
26
|
// Initialize arrays properly
|
|
6
27
|
const commandArray = [];
|
|
7
28
|
for (const project of projects) {
|
|
@@ -10,20 +31,28 @@ export function buildCommands(projects) {
|
|
|
10
31
|
npm: {
|
|
11
32
|
install: "npm install",
|
|
12
33
|
run: "npx",
|
|
34
|
+
dev: "-D",
|
|
13
35
|
},
|
|
14
36
|
pnpm: {
|
|
15
37
|
install: "pnpm add",
|
|
16
38
|
run: "pnpm dlx",
|
|
39
|
+
dev: "-D",
|
|
17
40
|
},
|
|
18
41
|
yarn: {
|
|
19
42
|
install: "yarn add",
|
|
20
43
|
run: "yarn dlx",
|
|
44
|
+
dev: "-D",
|
|
45
|
+
},
|
|
46
|
+
bun: {
|
|
47
|
+
install: "bun add",
|
|
48
|
+
run: "bunx",
|
|
49
|
+
dev: "-d",
|
|
21
50
|
},
|
|
22
51
|
};
|
|
23
52
|
const manager = commandPrefixes[packageManager] ||
|
|
24
53
|
commandPrefixes.npm;
|
|
25
54
|
const result = {
|
|
26
|
-
|
|
55
|
+
presetName: project.presetName,
|
|
27
56
|
interactive: [],
|
|
28
57
|
nonInteractive: [],
|
|
29
58
|
};
|
|
@@ -42,12 +71,32 @@ export function buildCommands(projects) {
|
|
|
42
71
|
}
|
|
43
72
|
// Add interactive packages as separate commands (sequential)
|
|
44
73
|
interactive.forEach((pkg) => {
|
|
45
|
-
result.interactive.push(`${manager.run} ${pkg.command}`);
|
|
74
|
+
result.interactive.push(`${manager.run} ${cleanCommand(pkg.command)}${pkg.version ? `@${pkg.version}` : ""} ${pkg.flags?.join(" ") || ""}`.trim());
|
|
46
75
|
});
|
|
47
|
-
// Batch all non-interactive packages
|
|
76
|
+
// Batch all non-interactive packages
|
|
48
77
|
if (nonInteractive.length > 0) {
|
|
49
|
-
const
|
|
50
|
-
|
|
78
|
+
const batchPackages = [];
|
|
79
|
+
nonInteractive.forEach((pkg) => {
|
|
80
|
+
const base = cleanCommand(pkg.command); // package name or full command
|
|
81
|
+
let cmd = base;
|
|
82
|
+
// Append version if present
|
|
83
|
+
if (pkg.version) {
|
|
84
|
+
cmd += `@${pkg.version}`;
|
|
85
|
+
}
|
|
86
|
+
// Append dev flag if true (mapped per manager)
|
|
87
|
+
if (pkg.dev) {
|
|
88
|
+
cmd += ` ${manager.dev}`;
|
|
89
|
+
}
|
|
90
|
+
// Append any extra flags
|
|
91
|
+
if (pkg.flags?.length) {
|
|
92
|
+
cmd += ` ${pkg.flags.join(" ")}`;
|
|
93
|
+
}
|
|
94
|
+
batchPackages.push(cmd);
|
|
95
|
+
});
|
|
96
|
+
// Push a single install command for all batchable packages
|
|
97
|
+
if (batchPackages.length > 0) {
|
|
98
|
+
result.nonInteractive.push(`${manager.install} ${batchPackages.join(" ")}`);
|
|
99
|
+
}
|
|
51
100
|
}
|
|
52
101
|
commandArray.push(result);
|
|
53
102
|
}
|
|
@@ -59,25 +108,27 @@ export function buildUninstallCommands(projects) {
|
|
|
59
108
|
const { packageManager, packages } = project;
|
|
60
109
|
const commandPrefixes = {
|
|
61
110
|
npm: {
|
|
62
|
-
|
|
111
|
+
uninstall: "npm uninstall",
|
|
63
112
|
},
|
|
64
113
|
pnpm: {
|
|
65
|
-
|
|
114
|
+
uninstall: "pnpm remove",
|
|
66
115
|
},
|
|
67
116
|
yarn: {
|
|
68
|
-
|
|
117
|
+
uninstall: "yarn remove",
|
|
118
|
+
},
|
|
119
|
+
bun: {
|
|
120
|
+
uninstall: "bun remove",
|
|
69
121
|
},
|
|
70
122
|
};
|
|
71
123
|
const manager = commandPrefixes[packageManager] ||
|
|
72
124
|
commandPrefixes.npm;
|
|
73
125
|
const result = {
|
|
74
|
-
|
|
126
|
+
presetName: project.presetName,
|
|
75
127
|
interactive: [],
|
|
76
128
|
nonInteractive: [],
|
|
77
129
|
};
|
|
78
130
|
// Separate interactive from non-interactive packages
|
|
79
131
|
const nonInteractive = [];
|
|
80
|
-
// const interactive: PackageType[] = [];
|
|
81
132
|
if (packages) {
|
|
82
133
|
packages.forEach((pkg) => {
|
|
83
134
|
if (!pkg.interactive) {
|
|
@@ -87,8 +138,10 @@ export function buildUninstallCommands(projects) {
|
|
|
87
138
|
}
|
|
88
139
|
// Batch all non-interactive packages into ONE command
|
|
89
140
|
if (nonInteractive.length > 0) {
|
|
90
|
-
const packageNames = nonInteractive
|
|
91
|
-
|
|
141
|
+
const packageNames = nonInteractive
|
|
142
|
+
.map((pkg) => cleanCommand(pkg.command))
|
|
143
|
+
.join(" ");
|
|
144
|
+
result.nonInteractive.push(`${manager.uninstall} ${packageNames}`);
|
|
92
145
|
}
|
|
93
146
|
commandArray.push(result);
|
|
94
147
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build_command.js","sourceRoot":"","sources":["../src/build_command.ts"],"names":[],"mappings":"AAEA;;GAEG;AAEH,MAAM,UAAU,
|
|
1
|
+
{"version":3,"file":"build_command.js","sourceRoot":"","sources":["../src/build_command.ts"],"names":[],"mappings":"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"}
|
package/dist/config_path.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config_path.d.ts","sourceRoot":"","sources":["../src/config_path.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"config_path.d.ts","sourceRoot":"","sources":["../src/config_path.ts"],"names":[],"mappings":"AA0DA,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,QAa3D;AAED,wBAAgB,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAgBvD;AAED,wBAAgB,aAAa,IAAI,MAAM,GAAG,IAAI,CAiB7C"}
|
package/dist/config_path.js
CHANGED
|
@@ -4,17 +4,75 @@ import * as os from "os";
|
|
|
4
4
|
import { display } from "./display.js";
|
|
5
5
|
const SETTINGS_DIR = path.join(os.homedir(), ".pm-auto");
|
|
6
6
|
const SETTINGS_FILE = path.join(SETTINGS_DIR, "settings.json");
|
|
7
|
+
const EXAMPLE_CONFIG_TEXT = `{
|
|
8
|
+
"example": {
|
|
9
|
+
"presetName": "example",
|
|
10
|
+
"description": "A sample configuration demonstrating all options for PM-Auto",
|
|
11
|
+
"packageManager": "bun",
|
|
12
|
+
"packages": [
|
|
13
|
+
{
|
|
14
|
+
"command": "create-next-app",
|
|
15
|
+
"interactive": true,
|
|
16
|
+
"dev": false,
|
|
17
|
+
"version": "latest",
|
|
18
|
+
"flags": ["."]
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
"command": "shadcn",
|
|
22
|
+
"interactive": true,
|
|
23
|
+
"dev": false,
|
|
24
|
+
"version": "latest",
|
|
25
|
+
"flags": ["init"]
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
"command": "gsap",
|
|
29
|
+
"interactive": false,
|
|
30
|
+
"dev": false,
|
|
31
|
+
"version": "3.11.4",
|
|
32
|
+
"flags": ["--peer-deps"]
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
"command": "@react-three/fiber",
|
|
36
|
+
"interactive": false,
|
|
37
|
+
"dev": false
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
"command": "clsx",
|
|
41
|
+
"interactive": false,
|
|
42
|
+
"dev": false
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
"command": "@types/three",
|
|
46
|
+
"interactive": false,
|
|
47
|
+
"dev": true
|
|
48
|
+
}
|
|
49
|
+
]
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
`;
|
|
53
|
+
export function prependToFile(filePath, text) {
|
|
54
|
+
display(`Prepending to example to file: ${filePath}`, "info");
|
|
55
|
+
// Read old content if file exists
|
|
56
|
+
const oldContent = fs.existsSync(filePath)
|
|
57
|
+
? fs.readFileSync(filePath, "utf8")
|
|
58
|
+
: "";
|
|
59
|
+
// Write new content at the top
|
|
60
|
+
if (!oldContent.includes(text)) {
|
|
61
|
+
fs.writeFileSync(filePath, text + oldContent, "utf8");
|
|
62
|
+
}
|
|
63
|
+
display(`Example prepended successfully: ${filePath}`, "success");
|
|
64
|
+
}
|
|
7
65
|
export function saveConfigPath(configPath) {
|
|
8
66
|
// Create directory if it doesn't exist
|
|
9
67
|
if (!fs.existsSync(SETTINGS_DIR)) {
|
|
10
68
|
fs.mkdirSync(SETTINGS_DIR, { recursive: true });
|
|
11
69
|
}
|
|
12
|
-
//check if file exists
|
|
13
70
|
try {
|
|
14
71
|
const real = fs.realpathSync(configPath);
|
|
15
72
|
const settings = { configPath: real };
|
|
16
73
|
fs.writeFileSync(SETTINGS_FILE, JSON.stringify(settings, null, 2));
|
|
17
|
-
display(`Config file path saved: ${configPath}`, "
|
|
74
|
+
display(`Config file path saved: ${configPath}`, "info");
|
|
75
|
+
prependToFile(real, EXAMPLE_CONFIG_TEXT);
|
|
18
76
|
}
|
|
19
77
|
catch (err) {
|
|
20
78
|
display(`Error saving config file: ${err.message}`, "error");
|
package/dist/config_path.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config_path.js","sourceRoot":"","sources":["../src/config_path.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,UAAU,CAAC,CAAC;AACzD,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,eAAe,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"config_path.js","sourceRoot":"","sources":["../src/config_path.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,UAAU,CAAC,CAAC;AACzD,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,eAAe,CAAC,CAAC;AAC/D,MAAM,mBAAmB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6C3B,CAAC;AAMF,MAAM,UAAU,aAAa,CAAC,QAAgB,EAAE,IAAY;IAC1D,OAAO,CAAC,kCAAkC,QAAQ,EAAE,EAAE,MAAM,CAAC,CAAC;IAE9D,kCAAkC;IAClC,MAAM,UAAU,GAAG,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC;QACxC,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC;QACnC,CAAC,CAAC,EAAE,CAAC;IAEP,+BAA+B;IAC/B,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QAC/B,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,IAAI,GAAG,UAAU,EAAE,MAAM,CAAC,CAAC;IACxD,CAAC;IACD,OAAO,CAAC,mCAAmC,QAAQ,EAAE,EAAE,SAAS,CAAC,CAAC;AACpE,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,UAAkB;IAC/C,uCAAuC;IACvC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QACjC,EAAE,CAAC,SAAS,CAAC,YAAY,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAClD,CAAC;IAED,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;QACzC,MAAM,QAAQ,GAAa,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;QAChD,EAAE,CAAC,aAAa,CAAC,aAAa,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAEnE,OAAO,CAAC,2BAA2B,UAAU,EAAE,EAAE,MAAM,CAAC,CAAC;QACzD,aAAa,CAAC,IAAI,EAAE,mBAAmB,CAAC,CAAC;IAC3C,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,OAAO,CAAC,6BAA6B,GAAG,CAAC,OAAO,EAAE,EAAE,OAAO,CAAC,CAAC;IAC/D,CAAC;AACH,CAAC;AAED,MAAM,UAAU,aAAa;IAC3B,0BAA0B;IAC1B,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;QAClC,OAAO,CACL,2EAA2E,EAC3E,MAAM,CACP,CAAC;QACF,OAAO,CAAC,0BAA0B,EAAE,OAAO,CAAC,CAAC;IAC/C,CAAC;IAED,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,EAAE,CAAC,YAAY,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;QACpD,MAAM,QAAQ,GAAa,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC5C,OAAO,QAAQ,CAAC,UAAU,IAAI,EAAE,CAAC;IACnC,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,OAAO,CAAC,mCAAmC,KAAK,CAAC,OAAO,EAAE,EAAE,OAAO,CAAC,CAAC;IACvE,CAAC;AACH,CAAC"}
|
package/dist/config_reader.d.ts
CHANGED
|
@@ -1,15 +1,5 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Detect the package manager used in the project.
|
|
5
|
-
*/
|
|
6
|
-
export declare function detectPackageManager(projectPath?: string): PackageManager | void;
|
|
7
|
-
/**
|
|
8
|
-
* Gets the required packages from the config file, transforms into a js object and with the options given
|
|
9
|
-
* it modifies the object and returns it
|
|
10
|
-
*/
|
|
11
|
-
export declare const getConfigObject: (packages: string[], options?: any) => Promise<ConfigType[] | CommandResult[]>;
|
|
1
|
+
import type { ConfigType } from "./types/index.js";
|
|
2
|
+
export declare const getConfigObject: (packages: string[], options?: any) => Promise<ConfigType[]>;
|
|
12
3
|
export declare const getConfigKeys: (options: any) => Promise<void>;
|
|
13
4
|
export declare const getPackageDescription: (packageName: string) => Promise<void>;
|
|
14
|
-
export {};
|
|
15
5
|
//# sourceMappingURL=config_reader.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config_reader.d.ts","sourceRoot":"","sources":["../src/config_reader.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"config_reader.d.ts","sourceRoot":"","sources":["../src/config_reader.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAiB,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAuBlE,eAAO,MAAM,eAAe,GAC1B,UAAU,MAAM,EAAE,EAClB,UAAU,GAAG,KACZ,OAAO,CAAC,UAAU,EAAE,CAgFtB,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
|
@@ -1,104 +1,88 @@
|
|
|
1
1
|
import fs from "fs/promises";
|
|
2
2
|
import { getConfigPath } from "./config_path.js";
|
|
3
|
-
import * as fsd from "fs";
|
|
4
|
-
import * as path from "path";
|
|
5
3
|
import { display } from "./display.js";
|
|
6
4
|
import { confirm, isCancel, cancel } from "@clack/prompts";
|
|
7
|
-
/**
|
|
8
|
-
* Detect the package manager used in the project.
|
|
9
|
-
*/
|
|
10
|
-
export function detectPackageManager(projectPath = process.cwd()) {
|
|
11
|
-
// Check for lock files in order of specificity
|
|
12
|
-
if (fsd.existsSync(path.join(projectPath, "pnpm-lock.yaml"))) {
|
|
13
|
-
return "pnpm";
|
|
14
|
-
}
|
|
15
|
-
if (fsd.existsSync(path.join(projectPath, "yarn.lock"))) {
|
|
16
|
-
return "yarn";
|
|
17
|
-
}
|
|
18
|
-
if (fsd.existsSync(path.join(projectPath, "package-lock.json"))) {
|
|
19
|
-
return "npm";
|
|
20
|
-
}
|
|
21
|
-
// Default to npm if no lock file found
|
|
22
|
-
display("No Lock File Found", "error");
|
|
23
|
-
}
|
|
24
5
|
/**
|
|
25
6
|
* Gets the required packages from the config file, transforms into a js object and with the options given
|
|
26
7
|
* it modifies the object and returns it
|
|
27
8
|
*/
|
|
9
|
+
//Check if the value is an array of ConfigType objects
|
|
10
|
+
function isConfigTypeArray(value) {
|
|
11
|
+
return (Array.isArray(value) &&
|
|
12
|
+
value.every((item) => typeof item === "object" &&
|
|
13
|
+
item !== null &&
|
|
14
|
+
"packages" in item &&
|
|
15
|
+
Array.isArray(item.packages)));
|
|
16
|
+
}
|
|
28
17
|
export const getConfigObject = async (packages, options) => {
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
18
|
+
const configPath = getConfigPath();
|
|
19
|
+
//read config file content
|
|
20
|
+
let configContent = "";
|
|
21
|
+
try {
|
|
22
|
+
configContent = await fs.readFile(configPath, "utf8");
|
|
23
|
+
}
|
|
24
|
+
catch (error) {
|
|
25
|
+
display(`File not found ${error} Try updating the config file path`, "error");
|
|
26
|
+
}
|
|
27
|
+
const configObject = JSON.parse(configContent);
|
|
28
|
+
let result = [];
|
|
29
|
+
if (isConfigTypeArray(Object.values(configObject))) {
|
|
30
|
+
result = Object.values(configObject);
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
display("Invalid config file format", "error");
|
|
34
|
+
}
|
|
35
|
+
//filter the packages the user wants to install
|
|
36
|
+
if (packages.length > 0 && result.length > 0) {
|
|
37
|
+
result = packages
|
|
38
|
+
.map((pkgName) => {
|
|
39
|
+
const found = result.find((pkg) => pkg.presetName === pkgName);
|
|
40
|
+
if (!found) {
|
|
41
|
+
display(`Package '${pkgName}' not found in config`, "warning");
|
|
42
|
+
}
|
|
43
|
+
return found;
|
|
44
|
+
})
|
|
45
|
+
.filter((pkg) => pkg !== undefined);
|
|
46
|
+
}
|
|
47
|
+
/*
|
|
48
|
+
* Config object modification with the options given
|
|
49
|
+
*/
|
|
50
|
+
//Add flags to previous configured flags (-A/-add-flags)
|
|
51
|
+
if (options.addFlags) {
|
|
52
|
+
result.forEach((config) => {
|
|
53
|
+
config.packages.forEach((pkg) => {
|
|
54
|
+
if (pkg.flags) {
|
|
55
|
+
pkg.flags.push(pkg.interactive ? "" : options.addFlags);
|
|
56
|
+
}
|
|
57
|
+
else {
|
|
58
|
+
pkg.flags = [pkg.interactive ? "" : options.addFlags];
|
|
48
59
|
}
|
|
49
|
-
return found;
|
|
50
|
-
})
|
|
51
|
-
.filter((pkg) => pkg !== undefined);
|
|
52
|
-
}
|
|
53
|
-
/*
|
|
54
|
-
* Config object modification with the options given
|
|
55
|
-
*/
|
|
56
|
-
//Add command to previous configured commands (-A/-add-command)
|
|
57
|
-
if (options.addCommand) {
|
|
58
|
-
result.forEach((config) => {
|
|
59
|
-
config.packages.forEach((pkg) => {
|
|
60
|
-
pkg.command = pkg.interactive
|
|
61
|
-
? pkg.command
|
|
62
|
-
: pkg.command + " " + options.addCommand;
|
|
63
|
-
});
|
|
64
|
-
});
|
|
65
|
-
}
|
|
66
|
-
//Dry run - Display commands before execution
|
|
67
|
-
if (options.dryRun) {
|
|
68
|
-
display("Dry Run:", "info");
|
|
69
|
-
result.forEach((config) => {
|
|
70
|
-
display(`Package name -> ${config.name}`, "info");
|
|
71
|
-
config.packages.forEach((pkg) => {
|
|
72
|
-
display(`add ${pkg.command}`, "info");
|
|
73
|
-
});
|
|
74
60
|
});
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
//Dry run - Display commands before execution
|
|
64
|
+
if (options.dryRun) {
|
|
65
|
+
display("Dry Run:", "info");
|
|
66
|
+
result.forEach((config) => {
|
|
67
|
+
display(`Package name -> ${config.presetName}`, "info");
|
|
68
|
+
config.packages.forEach((pkg) => {
|
|
69
|
+
display(`running ${pkg.command}`, "info");
|
|
78
70
|
});
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
71
|
+
});
|
|
72
|
+
const continuation = await confirm({
|
|
73
|
+
message: "Continue?",
|
|
74
|
+
initialValue: true,
|
|
75
|
+
});
|
|
76
|
+
if (isCancel(continuation)) {
|
|
77
|
+
cancel("Operation cancelled.");
|
|
78
|
+
process.exit(0);
|
|
79
|
+
}
|
|
80
|
+
if (!continuation) {
|
|
81
|
+
display("Operation cancelled. ", "success");
|
|
82
|
+
process.exit(0);
|
|
86
83
|
}
|
|
87
|
-
return result;
|
|
88
|
-
}
|
|
89
|
-
else {
|
|
90
|
-
//generate command for package.json
|
|
91
|
-
const pm = detectPackageManager();
|
|
92
|
-
const command = pm + " install";
|
|
93
|
-
const result = [
|
|
94
|
-
{
|
|
95
|
-
name: "package.json",
|
|
96
|
-
interactive: [],
|
|
97
|
-
nonInteractive: [command],
|
|
98
|
-
},
|
|
99
|
-
];
|
|
100
|
-
return result;
|
|
101
84
|
}
|
|
85
|
+
return result;
|
|
102
86
|
};
|
|
103
87
|
export const getConfigKeys = async (options) => {
|
|
104
88
|
const configPath = getConfigPath();
|
|
@@ -135,12 +119,12 @@ export const getPackageDescription = async (packageName) => {
|
|
|
135
119
|
display(`File not found ${error} Try updating the config file path`, "error");
|
|
136
120
|
}
|
|
137
121
|
const configObject = JSON.parse(configContent);
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
if (
|
|
141
|
-
const description = !configObject
|
|
122
|
+
const configObjectArray = Object.values(configObject);
|
|
123
|
+
configObjectArray.forEach((configObject) => {
|
|
124
|
+
if (configObject.presetName === packageName) {
|
|
125
|
+
const description = !configObject.description
|
|
142
126
|
? "No description"
|
|
143
|
-
: configObject
|
|
127
|
+
: configObject.description;
|
|
144
128
|
display(`${packageName} - ${description}`, "info");
|
|
145
129
|
}
|
|
146
130
|
});
|
|
@@ -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,
|
|
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;eA4BwnG,CAAC;cAAiC,CAAC,cAAc,CAAC;iBAAoC,CAAC;CA5BnsG,CAAC;AAC3B,eAAO,MAAM,OAAO,GAAI,MAAM,MAAM,EAAE,MAAM,WAAW;eA2B+kG,CAAC;cAAiC,CAAC,cAAc,CAAC;iBAAoC,CAAC;aAD5tG,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,7 @@ export const display = (text, type) => {
|
|
|
15
16
|
log.info(chalk.blue(text));
|
|
16
17
|
break;
|
|
17
18
|
case "loading":
|
|
18
|
-
|
|
19
|
+
log.info(chalk.blue(text));
|
|
19
20
|
s.start(text);
|
|
20
21
|
return s; // Return spinner so it can be stopped later
|
|
21
22
|
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,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YAC3B,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"}
|