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.
Files changed (46) hide show
  1. package/README.md +6 -3
  2. package/config.json +45 -0
  3. package/dist/build_command.d.ts +6 -1
  4. package/dist/build_command.d.ts.map +1 -1
  5. package/dist/build_command.js +66 -13
  6. package/dist/build_command.js.map +1 -1
  7. package/dist/config_path.d.ts +1 -0
  8. package/dist/config_path.d.ts.map +1 -1
  9. package/dist/config_path.js +60 -2
  10. package/dist/config_path.js.map +1 -1
  11. package/dist/config_reader.d.ts +2 -12
  12. package/dist/config_reader.d.ts.map +1 -1
  13. package/dist/config_reader.js +76 -92
  14. package/dist/config_reader.js.map +1 -1
  15. package/dist/display.d.ts +5 -0
  16. package/dist/display.d.ts.map +1 -1
  17. package/dist/display.js +2 -1
  18. package/dist/display.js.map +1 -1
  19. package/dist/index.js +6 -7
  20. package/dist/index.js.map +1 -1
  21. package/dist/orchestrator.d.ts.map +1 -1
  22. package/dist/orchestrator.js +18 -28
  23. package/dist/orchestrator.js.map +1 -1
  24. package/dist/run_commands.d.ts +6 -0
  25. package/dist/run_commands.d.ts.map +1 -0
  26. package/dist/{install.js → run_commands.js} +10 -7
  27. package/dist/run_commands.js.map +1 -0
  28. package/dist/types/index.d.ts +8 -2
  29. package/dist/types/index.d.ts.map +1 -1
  30. package/package.json +4 -2
  31. package/src/build_command.ts +78 -13
  32. package/src/config_path.ts +63 -2
  33. package/src/config_reader.ts +90 -110
  34. package/src/display.ts +2 -2
  35. package/src/index.ts +8 -13
  36. package/src/orchestrator.ts +21 -34
  37. package/src/{install.ts → run_commands.ts} +10 -6
  38. package/src/types/index.ts +12 -3
  39. package/tests/build_command.test.ts +240 -30
  40. package/tests/config_reader.test.ts +51 -92
  41. package/tests/display.test.ts +42 -34
  42. package/tests/{install.test.ts → run_command.test.ts} +23 -23
  43. package/dist/install.d.ts +0 -6
  44. package/dist/install.d.ts.map +0 -1
  45. package/dist/install.js.map +0 -1
  46. 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
- - `-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`
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
+ }
@@ -2,6 +2,11 @@ import type { ConfigType, CommandResult } from "./types/index.js";
2
2
  /**
3
3
  * Build commands from project configurations.
4
4
  */
5
- export declare function buildCommands(projects: ConfigType[]): CommandResult[];
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,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;;;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"}
@@ -1,7 +1,28 @@
1
1
  /**
2
2
  * Build commands from project configurations.
3
3
  */
4
- export function buildCommands(projects) {
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
- name: project.name,
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 into ONE command
76
+ // Batch all non-interactive packages
48
77
  if (nonInteractive.length > 0) {
49
- const packageNames = nonInteractive.map((pkg) => pkg.command).join(" ");
50
- result.nonInteractive.push(`${manager.install} ${packageNames}`);
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
- install: "npm uninstall",
111
+ uninstall: "npm uninstall",
63
112
  },
64
113
  pnpm: {
65
- install: "pnpm uninstall",
114
+ uninstall: "pnpm remove",
66
115
  },
67
116
  yarn: {
68
- install: "yarn remove",
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
- name: project.name,
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.map((pkg) => pkg.command).join(" ");
91
- result.nonInteractive.push(`${manager.install} ${packageNames}`);
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":"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"}
1
+ {"version":3,"file":"build_command.js","sourceRoot":"","sources":["../src/build_command.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ export declare function prependToFile(filePath: string, text: string): void;
1
2
  export declare function saveConfigPath(configPath: string): void;
2
3
  export declare function getConfigPath(): string | void;
3
4
  //# sourceMappingURL=config_path.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config_path.d.ts","sourceRoot":"","sources":["../src/config_path.ts"],"names":[],"mappings":"AAYA,wBAAgB,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAgBvD;AAED,wBAAgB,aAAa,IAAI,MAAM,GAAG,IAAI,CAiB7C"}
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"}
@@ -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}`, "success");
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");
@@ -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;AAM/D,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,sBAAsB;IACtB,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,SAAS,CAAC,CAAC;IAC9D,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"}
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"}
@@ -1,15 +1,5 @@
1
- import type { CommandResult, ConfigType } from "./types/index.js";
2
- type PackageManager = "npm" | "yarn" | "pnpm";
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":"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":"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"}
@@ -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
- if (!options.pkgJson) {
30
- const configPath = getConfigPath();
31
- //read config file content
32
- let configContent = "";
33
- try {
34
- configContent = await fs.readFile(configPath, "utf8");
35
- }
36
- catch (error) {
37
- display(`File not found ${error} Try updating the config file path`, "error");
38
- }
39
- const configObject = JSON.parse(configContent);
40
- let result = Object.values(configObject);
41
- //filter the packages the user wants to install
42
- if (packages.length > 0) {
43
- result = packages
44
- .map((pkgName) => {
45
- const found = result.find((pkg) => pkg.name === pkgName);
46
- if (!found) {
47
- display(`Package '${pkgName}' not found in config`, "warning");
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
- const continueWithInstall = await confirm({
76
- message: "Continue with installation?",
77
- initialValue: true,
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
- if (isCancel(continueWithInstall)) {
80
- cancel("Operation cancelled.");
81
- process.exit(0);
82
- }
83
- if (!continueWithInstall) {
84
- display("Installation cancelled ", "success");
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
- let keys = Object.keys(configObject);
139
- keys.forEach((key) => {
140
- if (key === packageName) {
141
- const description = !configObject[key].description
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[key].description;
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":"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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;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
- const s = spinner();
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:
@@ -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,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"}