@kamaras/venpm 0.1.1 → 0.2.1

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 (113) hide show
  1. package/README.md +13 -3
  2. package/dist/cli/completions.d.ts +3 -0
  3. package/dist/cli/completions.d.ts.map +1 -0
  4. package/dist/cli/completions.js +82 -0
  5. package/dist/cli/completions.js.map +1 -0
  6. package/dist/cli/config-cmd.d.ts.map +1 -1
  7. package/dist/cli/config-cmd.js +30 -22
  8. package/dist/cli/config-cmd.js.map +1 -1
  9. package/dist/cli/context.d.ts.map +1 -1
  10. package/dist/cli/context.js +26 -9
  11. package/dist/cli/context.js.map +1 -1
  12. package/dist/cli/create.d.ts.map +1 -1
  13. package/dist/cli/create.js +21 -22
  14. package/dist/cli/create.js.map +1 -1
  15. package/dist/cli/doctor.d.ts.map +1 -1
  16. package/dist/cli/doctor.js +37 -24
  17. package/dist/cli/doctor.js.map +1 -1
  18. package/dist/cli/first-run.d.ts +4 -0
  19. package/dist/cli/first-run.d.ts.map +1 -0
  20. package/dist/cli/first-run.js +52 -0
  21. package/dist/cli/first-run.js.map +1 -0
  22. package/dist/cli/help.d.ts +3 -0
  23. package/dist/cli/help.d.ts.map +1 -0
  24. package/dist/cli/help.js +42 -0
  25. package/dist/cli/help.js.map +1 -0
  26. package/dist/cli/info.d.ts.map +1 -1
  27. package/dist/cli/info.js +48 -53
  28. package/dist/cli/info.js.map +1 -1
  29. package/dist/cli/install.d.ts.map +1 -1
  30. package/dist/cli/install.js +54 -70
  31. package/dist/cli/install.js.map +1 -1
  32. package/dist/cli/list.d.ts.map +1 -1
  33. package/dist/cli/list.js +20 -20
  34. package/dist/cli/list.js.map +1 -1
  35. package/dist/cli/rebuild.d.ts.map +1 -1
  36. package/dist/cli/rebuild.js +20 -27
  37. package/dist/cli/rebuild.js.map +1 -1
  38. package/dist/cli/repo.d.ts.map +1 -1
  39. package/dist/cli/repo.js +22 -32
  40. package/dist/cli/repo.js.map +1 -1
  41. package/dist/cli/search.d.ts.map +1 -1
  42. package/dist/cli/search.js +19 -20
  43. package/dist/cli/search.js.map +1 -1
  44. package/dist/cli/uninstall.d.ts.map +1 -1
  45. package/dist/cli/uninstall.js +14 -16
  46. package/dist/cli/uninstall.js.map +1 -1
  47. package/dist/cli/update.d.ts.map +1 -1
  48. package/dist/cli/update.js +26 -33
  49. package/dist/cli/update.js.map +1 -1
  50. package/dist/cli/validate.d.ts.map +1 -1
  51. package/dist/cli/validate.js +14 -21
  52. package/dist/cli/validate.js.map +1 -1
  53. package/dist/core/ansi.d.ts +14 -0
  54. package/dist/core/ansi.d.ts.map +1 -0
  55. package/dist/core/ansi.js +36 -0
  56. package/dist/core/ansi.js.map +1 -0
  57. package/dist/core/config.d.ts.map +1 -1
  58. package/dist/core/config.js +8 -1
  59. package/dist/core/config.js.map +1 -1
  60. package/dist/core/errors.d.ts +36 -0
  61. package/dist/core/errors.d.ts.map +1 -0
  62. package/dist/core/errors.js +70 -0
  63. package/dist/core/errors.js.map +1 -0
  64. package/dist/core/fetcher.d.ts.map +1 -1
  65. package/dist/core/fetcher.js +6 -2
  66. package/dist/core/fetcher.js.map +1 -1
  67. package/dist/core/fuzzy.d.ts +3 -0
  68. package/dist/core/fuzzy.d.ts.map +1 -0
  69. package/dist/core/fuzzy.js +30 -0
  70. package/dist/core/fuzzy.js.map +1 -0
  71. package/dist/core/json-renderer.d.ts +5 -0
  72. package/dist/core/json-renderer.d.ts.map +1 -0
  73. package/dist/core/json-renderer.js +48 -0
  74. package/dist/core/json-renderer.js.map +1 -0
  75. package/dist/core/lockfile.d.ts.map +1 -1
  76. package/dist/core/lockfile.js +8 -2
  77. package/dist/core/lockfile.js.map +1 -1
  78. package/dist/core/progress.d.ts +11 -0
  79. package/dist/core/progress.d.ts.map +1 -0
  80. package/dist/core/progress.js +53 -0
  81. package/dist/core/progress.js.map +1 -0
  82. package/dist/core/prompt.d.ts.map +1 -1
  83. package/dist/core/prompt.js +62 -4
  84. package/dist/core/prompt.js.map +1 -1
  85. package/dist/core/registry.js +4 -4
  86. package/dist/core/registry.js.map +1 -1
  87. package/dist/core/renderer.d.ts +13 -0
  88. package/dist/core/renderer.d.ts.map +1 -0
  89. package/dist/core/renderer.js +157 -0
  90. package/dist/core/renderer.js.map +1 -0
  91. package/dist/core/resolver.d.ts.map +1 -1
  92. package/dist/core/resolver.js +2 -4
  93. package/dist/core/resolver.js.map +1 -1
  94. package/dist/core/schema.d.ts.map +1 -1
  95. package/dist/core/schema.js +14 -4
  96. package/dist/core/schema.js.map +1 -1
  97. package/dist/core/stream-renderer.d.ts +5 -0
  98. package/dist/core/stream-renderer.d.ts.map +1 -0
  99. package/dist/core/stream-renderer.js +71 -0
  100. package/dist/core/stream-renderer.js.map +1 -0
  101. package/dist/core/types.d.ts +46 -8
  102. package/dist/core/types.d.ts.map +1 -1
  103. package/dist/index.js +17 -1
  104. package/dist/index.js.map +1 -1
  105. package/package.json +1 -1
  106. package/dist/core/json.d.ts +0 -9
  107. package/dist/core/json.d.ts.map +0 -1
  108. package/dist/core/json.js +0 -10
  109. package/dist/core/json.js.map +0 -1
  110. package/dist/core/log.d.ts +0 -8
  111. package/dist/core/log.d.ts.map +0 -1
  112. package/dist/core/log.js +0 -24
  113. package/dist/core/log.js.map +0 -1
@@ -8,11 +8,12 @@ import { fetchPlugin, fetchViaLocal } from "../core/fetcher.js";
8
8
  import { buildAndDeploy } from "../core/builder.js";
9
9
  import { detectVencordPath, detectDiscordBinary } from "../core/detect.js";
10
10
  import { getConfigPath, getLockfilePath } from "../core/paths.js";
11
- import { jsonSuccess, jsonError, writeJson } from "../core/json.js";
11
+ import { ErrorCode, makeError, exitCodeForError } from "../core/errors.js";
12
+ import { findCandidates } from "../core/fuzzy.js";
12
13
  import { createRealIOContext } from "./context.js";
13
14
  // ─── Public API ───────────────────────────────────────────────────────────────
14
15
  export async function executeInstall(ctx, pluginName, options) {
15
- const { fs, http, git, shell, prompter, logger } = ctx;
16
+ const { fs, http, git, shell, prompter, renderer } = ctx;
16
17
  // 1. Load config and lockfile
17
18
  const configPath = options.config ?? getConfigPath();
18
19
  const lockfilePath = getLockfilePath();
@@ -21,13 +22,9 @@ export async function executeInstall(ctx, pluginName, options) {
21
22
  // 2. Resolve Vencord path
22
23
  const vencordPath = config.vencord.path ?? await detectVencordPath(fs);
23
24
  if (!vencordPath) {
24
- if (options.json) {
25
- process.exitCode = 1;
26
- writeJson(jsonError("Could not find Vencord source path. Set vencord.path in config or VENPM_VENCORD_PATH env var."));
27
- return;
28
- }
29
- logger.error("Could not find Vencord source path. Set vencord.path in config or VENPM_VENCORD_PATH env var.");
30
- process.exitCode = 1;
25
+ renderer.error(makeError(ErrorCode.VENCORD_NOT_FOUND, "Could not find Vencord source path. Set vencord.path in config or VENPM_VENCORD_PATH env var."));
26
+ renderer.finish(false);
27
+ process.exitCode = exitCodeForError(ErrorCode.VENCORD_NOT_FOUND);
31
28
  return;
32
29
  }
33
30
  const userpluginDir = join(vencordPath, "src", "userplugins");
@@ -35,7 +32,7 @@ export async function executeInstall(ctx, pluginName, options) {
35
32
  if (options.local) {
36
33
  const localPath = options.local;
37
34
  const dest = join(userpluginDir, pluginName);
38
- logger.info(`Symlinking ${localPath} → ${dest}`);
35
+ renderer.text(`Symlinking ${localPath} → ${dest}`);
39
36
  await fetchViaLocal(fs, localPath, dest);
40
37
  lockfile = addInstalled(lockfile, pluginName, {
41
38
  version: "local",
@@ -45,43 +42,39 @@ export async function executeInstall(ctx, pluginName, options) {
45
42
  installed_at: new Date().toISOString(),
46
43
  });
47
44
  await saveLockfile(fs, lockfilePath, lockfile);
48
- if (options.json) {
49
- writeJson(jsonSuccess({ installed: [{ name: pluginName, version: "local", method: "local" }], warnings: [] }));
50
- return;
51
- }
52
- logger.success(`Installed ${pluginName} from local path`);
45
+ renderer.success(`Installed ${pluginName} from local path`);
46
+ renderer.finish(true, { installed: [{ name: pluginName, version: "local", method: "local" }], warnings: [] });
53
47
  return;
54
48
  }
55
49
  // 4. Fetch all indexes (with cache)
50
+ const p = renderer.progress("fetch-indexes", "Fetching indexes...");
56
51
  const cache = await loadCache(fs);
57
52
  const { results: fetchedIndexes, updatedCache } = await fetchAllIndexes(http, config.repos, { cache });
58
53
  await saveCache(fs, updatedCache);
59
54
  const validIndexes = fetchedIndexes.filter(fi => fi.index !== undefined);
60
- for (const fi of fetchedIndexes) {
61
- if (fi.error) {
62
- logger.warn(`Failed to fetch index from repo "${fi.repoName}": ${fi.error}`);
63
- }
55
+ const fetchErrors = fetchedIndexes.filter(fi => fi.error);
56
+ p.succeed(`${validIndexes.length} repo(s) fetched`);
57
+ for (const fi of fetchErrors) {
58
+ renderer.warn(`Failed to fetch index from repo "${fi.repoName}": ${fi.error}`);
64
59
  }
65
60
  // 5. Resolve plugin
66
61
  const match = resolvePlugin(fetchedIndexes, pluginName, options.from);
67
62
  if (!match) {
63
+ const allPluginNames = fetchedIndexes.flatMap(fi => Object.keys(fi.index?.plugins ?? {}));
64
+ const candidates = findCandidates(pluginName, allPluginNames);
68
65
  const msg = options.from
69
66
  ? `Plugin "${pluginName}" not found in repo "${options.from}"`
70
67
  : `Plugin "${pluginName}" not found in any configured repo`;
71
- if (options.json) {
72
- process.exitCode = 1;
73
- writeJson(jsonError(msg));
74
- return;
75
- }
76
- logger.error(msg);
77
- process.exitCode = 1;
68
+ renderer.error(makeError(ErrorCode.PLUGIN_NOT_FOUND, msg, { candidates }));
69
+ renderer.finish(false);
70
+ process.exitCode = exitCodeForError(ErrorCode.PLUGIN_NOT_FOUND);
78
71
  return;
79
72
  }
80
73
  // Check for multiple matches (without --from, warn if plugin appears in multiple repos)
81
74
  if (!options.from) {
82
75
  const allMatches = fetchedIndexes.filter(fi => fi.index?.plugins[pluginName]);
83
76
  if (allMatches.length > 1) {
84
- logger.warn(`Plugin "${pluginName}" found in multiple repos: ${allMatches.map(fi => fi.repoName).join(", ")}. ` +
77
+ renderer.warn(`Plugin "${pluginName}" found in multiple repos: ${allMatches.map(fi => fi.repoName).join(", ")}. ` +
85
78
  `Using "${match.repoName}". Use --from <repo> to specify.`);
86
79
  }
87
80
  }
@@ -93,8 +86,7 @@ export async function executeInstall(ctx, pluginName, options) {
93
86
  else if (options.tarball)
94
87
  forceMethod = "tarball";
95
88
  const pluginIndexes = validIndexes
96
- .map(fi => fi.index)
97
- .filter(idx => idx !== undefined);
89
+ .map(fi => fi.index);
98
90
  let plan;
99
91
  try {
100
92
  plan = generateInstallPlan(pluginIndexes, pluginName, lockfile, {
@@ -106,41 +98,44 @@ export async function executeInstall(ctx, pluginName, options) {
106
98
  }
107
99
  catch (err) {
108
100
  if (err instanceof ResolverError) {
109
- if (options.json) {
110
- process.exitCode = 1;
111
- writeJson(jsonError(err.message));
112
- return;
113
- }
114
- logger.error(err.message);
115
- process.exitCode = 1;
101
+ renderer.error(makeError(ErrorCode.CIRCULAR_DEPENDENCY, err.message));
102
+ renderer.finish(false);
103
+ process.exitCode = exitCodeForError(ErrorCode.CIRCULAR_DEPENDENCY);
116
104
  return;
117
105
  }
118
106
  throw err;
119
107
  }
120
108
  if (plan.entries.length === 0) {
121
- logger.info(`Plugin "${pluginName}" is already installed.`);
109
+ renderer.text(`Plugin "${pluginName}" is already installed.`);
110
+ renderer.finish(true, { installed: [], warnings: [] });
122
111
  return;
123
112
  }
124
113
  // 7. Show plan and confirm
125
- logger.info(`Install plan:`);
126
- for (const entry of plan.entries) {
127
- const depLabel = entry.isDependency ? " (dependency)" : "";
128
- logger.info(` ${entry.name}@${entry.version} via ${entry.method}${depLabel}`);
129
- }
114
+ renderer.heading("Install plan");
115
+ renderer.table(["Plugin", "Version", "Method", "Type"], plan.entries.map(entry => [
116
+ entry.name,
117
+ entry.version,
118
+ entry.method,
119
+ entry.isDependency ? "dependency" : "direct",
120
+ ]));
130
121
  // Warn about missing optional dependencies
122
+ const warnings = [];
131
123
  if (plan.missingOptional?.length) {
132
- logger.warn(`Recommended plugins not installed: ${plan.missingOptional.join(", ")}`);
133
- logger.info(` Install with: venpm install ${plan.missingOptional.join(" ")}`);
124
+ const warnMsg = `Recommended plugins not installed: ${plan.missingOptional.join(", ")}`;
125
+ renderer.warn(warnMsg);
126
+ renderer.text(` Install with: venpm install ${plan.missingOptional.join(" ")}`);
127
+ warnings.push(warnMsg);
134
128
  }
135
129
  const confirmed = await prompter.confirm(`Proceed with installation?`, true);
136
130
  if (!confirmed) {
137
- logger.info("Installation cancelled.");
131
+ renderer.text("Installation cancelled.");
132
+ renderer.finish(false);
138
133
  return;
139
134
  }
140
135
  // 8. Fetch each entry and update lockfile
141
136
  const installedEntries = [];
142
137
  for (const entry of plan.entries) {
143
- logger.info(`Installing ${entry.name}@${entry.version} via ${entry.method}...`);
138
+ const ep = renderer.progress(`install-${entry.name}`, `Installing ${entry.name}@${entry.version} via ${entry.method}...`);
144
139
  try {
145
140
  const result = await fetchPlugin(entry, userpluginDir, { fs, git, http });
146
141
  lockfile = addInstalled(lockfile, entry.name, {
@@ -153,34 +148,23 @@ export async function executeInstall(ctx, pluginName, options) {
153
148
  path: result.path,
154
149
  });
155
150
  installedEntries.push({ name: entry.name, version: entry.version, method: result.method });
151
+ ep.succeed(`${entry.name}@${entry.version}`);
156
152
  }
157
153
  catch (err) {
158
- const msg = `Failed to install ${entry.name}: ${err instanceof Error ? err.message : err}`;
159
- if (options.json) {
160
- process.exitCode = 1;
161
- writeJson(jsonError(msg));
162
- return;
163
- }
164
- logger.error(msg);
165
- process.exitCode = 1;
154
+ ep.fail(`${entry.name}: ${err instanceof Error ? err.message : err}`);
155
+ renderer.error(makeError(ErrorCode.REPO_FETCH_FAILED, `Failed to install ${entry.name}: ${err instanceof Error ? err.message : err}`));
156
+ renderer.finish(false);
157
+ process.exitCode = exitCodeForError(ErrorCode.REPO_FETCH_FAILED);
166
158
  return;
167
159
  }
168
160
  }
169
161
  // 9. Save lockfile
170
162
  await saveLockfile(fs, lockfilePath, lockfile);
171
- if (options.json) {
172
- writeJson(jsonSuccess({
173
- installed: installedEntries,
174
- warnings: plan.missingOptional?.length
175
- ? [`Recommended plugins not installed: ${plan.missingOptional.join(", ")}`]
176
- : [],
177
- }));
178
- return;
179
- }
180
- logger.success(`Successfully installed ${pluginName}`);
163
+ renderer.success(`Successfully installed ${pluginName}`);
164
+ renderer.finish(true, { installed: installedEntries, warnings });
181
165
  // 10. Handle rebuild
182
166
  const effectiveRebuildMode = resolveRebuildMode(options, config.rebuild);
183
- if (effectiveRebuildMode === "always" || options.rebuild) {
167
+ if (effectiveRebuildMode === "always") {
184
168
  if (!options.noBuild) {
185
169
  await runRebuild(ctx, vencordPath);
186
170
  }
@@ -202,8 +186,8 @@ function resolveRebuildMode(options, configMode) {
202
186
  return configMode;
203
187
  }
204
188
  async function runRebuild(ctx, vencordPath) {
205
- const { fs, shell, logger } = ctx;
206
- logger.info("Rebuilding Vencord...");
189
+ const { fs, shell, renderer } = ctx;
190
+ const p = renderer.progress("rebuild", "Rebuilding Vencord...");
207
191
  const discordBinary = await detectDiscordBinary(fs);
208
192
  try {
209
193
  const result = await buildAndDeploy(fs, shell, vencordPath, {
@@ -211,14 +195,14 @@ async function runRebuild(ctx, vencordPath) {
211
195
  discordBinary: discordBinary ?? undefined,
212
196
  });
213
197
  if (result.deployed) {
214
- logger.success(`Deployed to ${result.deployPath}`);
198
+ p.succeed(`Deployed to ${result.deployPath}`);
215
199
  }
216
200
  else {
217
- logger.info("Build complete (deploy path not found, skipped deploy)");
201
+ p.succeed("Build complete (deploy path not found, skipped deploy)");
218
202
  }
219
203
  }
220
204
  catch (err) {
221
- logger.error(`Rebuild failed: ${err instanceof Error ? err.message : String(err)}`);
205
+ p.fail(`Rebuild failed: ${err instanceof Error ? err.message : String(err)}`);
222
206
  }
223
207
  }
224
208
  // ─── CLI Registration ─────────────────────────────────────────────────────────
@@ -1 +1 @@
1
- {"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/cli/install.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAGjC,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAC/E,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACrE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzE,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAClE,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAEnD,iFAAiF;AAEjF,MAAM,CAAC,KAAK,UAAU,cAAc,CAChC,GAAc,EACd,UAAkB,EAClB,OAAuB;IAEvB,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC;IAEvD,8BAA8B;IAC9B,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,IAAI,aAAa,EAAE,CAAC;IACrD,MAAM,YAAY,GAAG,eAAe,EAAE,CAAC;IAEvC,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;IAChD,IAAI,QAAQ,GAAG,MAAM,YAAY,CAAC,EAAE,EAAE,YAAY,CAAC,CAAC;IAEpD,0BAA0B;IAC1B,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI,MAAM,iBAAiB,CAAC,EAAE,CAAC,CAAC;IACvE,IAAI,CAAC,WAAW,EAAE,CAAC;QACf,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACf,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,SAAS,CAAC,SAAS,CAAC,+FAA+F,CAAC,CAAC,CAAC;YACtH,OAAO;QACX,CAAC;QACD,MAAM,CAAC,KAAK,CAAC,+FAA+F,CAAC,CAAC;QAC9G,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrB,OAAO;IACX,CAAC;IAED,MAAM,aAAa,GAAG,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC;IAE9D,iEAAiE;IACjE,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QAChB,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC;QAChC,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;QAC7C,MAAM,CAAC,IAAI,CAAC,cAAc,SAAS,MAAM,IAAI,EAAE,CAAC,CAAC;QACjD,MAAM,aAAa,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;QACzC,QAAQ,GAAG,YAAY,CAAC,QAAQ,EAAE,UAAU,EAAE;YAC1C,OAAO,EAAE,OAAO;YAChB,IAAI,EAAE,OAAO;YACb,MAAM,EAAE,OAAO;YACf,MAAM,EAAE,KAAK;YACb,YAAY,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACzC,CAAC,CAAC;QACH,MAAM,YAAY,CAAC,EAAE,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC;QAC/C,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACf,SAAS,CAAC,WAAW,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;YAC/G,OAAO;QACX,CAAC;QACD,MAAM,CAAC,OAAO,CAAC,aAAa,UAAU,kBAAkB,CAAC,CAAC;QAC1D,OAAO;IACX,CAAC;IAED,oCAAoC;IACpC,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,EAAE,CAAC,CAAC;IAClC,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,GAAG,MAAM,eAAe,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;IACvG,MAAM,SAAS,CAAC,EAAE,EAAE,YAAY,CAAC,CAAC;IAClC,MAAM,YAAY,GAAG,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC;IAEzE,KAAK,MAAM,EAAE,IAAI,cAAc,EAAE,CAAC;QAC9B,IAAI,EAAE,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,CAAC,IAAI,CAAC,oCAAoC,EAAE,CAAC,QAAQ,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC;QACjF,CAAC;IACL,CAAC;IAED,oBAAoB;IACpB,MAAM,KAAK,GAAG,aAAa,CAAC,cAAc,EAAE,UAAU,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IACtE,IAAI,CAAC,KAAK,EAAE,CAAC;QACT,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI;YACpB,CAAC,CAAC,WAAW,UAAU,wBAAwB,OAAO,CAAC,IAAI,GAAG;YAC9D,CAAC,CAAC,WAAW,UAAU,oCAAoC,CAAC;QAChE,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACf,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;YAC1B,OAAO;QACX,CAAC;QACD,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAClB,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrB,OAAO;IACX,CAAC;IAED,wFAAwF;IACxF,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QAChB,MAAM,UAAU,GAAG,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;QAC9E,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,MAAM,CAAC,IAAI,CACP,WAAW,UAAU,8BAA8B,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;gBACnG,UAAU,KAAK,CAAC,QAAQ,kCAAkC,CAC7D,CAAC;QACN,CAAC;IACL,CAAC;IAED,2BAA2B;IAC3B,MAAM,YAAY,GAAG,MAAM,GAAG,CAAC,SAAS,EAAE,CAAC;IAE3C,IAAI,WAA0C,CAAC;IAC/C,IAAI,OAAO,CAAC,GAAG;QAAE,WAAW,GAAG,KAAK,CAAC;SAChC,IAAI,OAAO,CAAC,OAAO;QAAE,WAAW,GAAG,SAAS,CAAC;IAElD,MAAM,aAAa,GAAG,YAAY;SAC7B,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAM,CAAC;SACpB,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC;IAEtC,IAAI,IAAI,CAAC;IACT,IAAI,CAAC;QACD,IAAI,GAAG,mBAAmB,CAAC,aAAa,EAAE,UAAU,EAAE,QAAQ,EAAE;YAC5D,YAAY;YACZ,WAAW;YACX,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,QAAQ,EAAE,OAAO,CAAC,IAAI;SACzB,CAAC,CAAC;IACP,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACX,IAAI,GAAG,YAAY,aAAa,EAAE,CAAC;YAC/B,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;gBACf,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;gBACrB,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;gBAClC,OAAO;YACX,CAAC;YACD,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAC1B,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,OAAO;QACX,CAAC;QACD,MAAM,GAAG,CAAC;IACd,CAAC;IAED,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,MAAM,CAAC,IAAI,CAAC,WAAW,UAAU,yBAAyB,CAAC,CAAC;QAC5D,OAAO;IACX,CAAC;IAED,2BAA2B;IAC3B,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAC7B,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QAC/B,MAAM,QAAQ,GAAG,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3D,MAAM,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,OAAO,QAAQ,KAAK,CAAC,MAAM,GAAG,QAAQ,EAAE,CAAC,CAAC;IACnF,CAAC;IAED,2CAA2C;IAC3C,IAAI,IAAI,CAAC,eAAe,EAAE,MAAM,EAAE,CAAC;QAC/B,MAAM,CAAC,IAAI,CAAC,sCAAsC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACrF,MAAM,CAAC,IAAI,CAAC,iCAAiC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACnF,CAAC;IAED,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,4BAA4B,EAAE,IAAI,CAAC,CAAC;IAC7E,IAAI,CAAC,SAAS,EAAE,CAAC;QACb,MAAM,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;QACvC,OAAO;IACX,CAAC;IAED,0CAA0C;IAC1C,MAAM,gBAAgB,GAAwD,EAAE,CAAC;IACjF,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QAC/B,MAAM,CAAC,IAAI,CAAC,cAAc,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,OAAO,QAAQ,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC;QAChF,IAAI,CAAC;YACD,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,KAAK,EAAE,aAAa,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;YAE1E,QAAQ,GAAG,YAAY,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,EAAE;gBAC1C,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,MAAM,EAAE,OAAO,CAAC,OAAO,KAAK,SAAS;gBACrC,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,YAAY,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBACtC,IAAI,EAAE,MAAM,CAAC,IAAI;aACpB,CAAC,CAAC;YACH,gBAAgB,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;QAC/F,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,MAAM,GAAG,GAAG,qBAAqB,KAAK,CAAC,IAAI,KAAK,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;YAC3F,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;gBACf,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;gBACrB,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC1B,OAAO;YACX,CAAC;YACD,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAClB,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,OAAO;QACX,CAAC;IACL,CAAC;IAED,mBAAmB;IACnB,MAAM,YAAY,CAAC,EAAE,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC;IAE/C,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACf,SAAS,CAAC,WAAW,CAAC;YAClB,SAAS,EAAE,gBAAgB;YAC3B,QAAQ,EAAE,IAAI,CAAC,eAAe,EAAE,MAAM;gBAClC,CAAC,CAAC,CAAC,sCAAsC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC3E,CAAC,CAAC,EAAE;SACX,CAAC,CAAC,CAAC;QACJ,OAAO;IACX,CAAC;IAED,MAAM,CAAC,OAAO,CAAC,0BAA0B,UAAU,EAAE,CAAC,CAAC;IAEvD,qBAAqB;IACrB,MAAM,oBAAoB,GAAG,kBAAkB,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IAEzE,IAAI,oBAAoB,KAAK,QAAQ,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QACvD,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YACnB,MAAM,UAAU,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;QACvC,CAAC;IACL,CAAC;SAAM,IAAI,oBAAoB,KAAK,KAAK,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;QAC5D,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,sBAAsB,EAAE,IAAI,CAAC,CAAC;QACvE,IAAI,SAAS,EAAE,CAAC;YACZ,MAAM,UAAU,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;QACvC,CAAC;IACL,CAAC;IACD,4CAA4C;AAChD,CAAC;AAED,iFAAiF;AAEjF,SAAS,kBAAkB,CAAC,OAAuB,EAAE,UAAuB;IACxE,IAAI,OAAO,CAAC,OAAO;QAAE,OAAO,OAAO,CAAC;IACpC,IAAI,OAAO,CAAC,OAAO;QAAE,OAAO,QAAQ,CAAC;IACrC,OAAO,UAAU,CAAC;AACtB,CAAC;AAED,KAAK,UAAU,UAAU,CAAC,GAAc,EAAE,WAAmB;IACzD,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC;IAClC,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;IACrC,MAAM,aAAa,GAAG,MAAM,mBAAmB,CAAC,EAAE,CAAC,CAAC;IACpD,IAAI,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE;YACxD,OAAO,EAAE,aAAa,KAAK,IAAI;YAC/B,aAAa,EAAE,aAAa,IAAI,SAAS;SAC5C,CAAC,CAAC;QACH,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YAClB,MAAM,CAAC,OAAO,CAAC,eAAe,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;QACvD,CAAC;aAAM,CAAC;YACJ,MAAM,CAAC,IAAI,CAAC,wDAAwD,CAAC,CAAC;QAC1E,CAAC;IACL,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACX,MAAM,CAAC,KAAK,CAAC,mBAAmB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACxF,CAAC;AACL,CAAC;AAED,iFAAiF;AAEjF,MAAM,UAAU,sBAAsB,CAAC,OAAgB;IACnD,OAAO;SACF,OAAO,CAAC,kBAAkB,CAAC;SAC3B,WAAW,CAAC,uCAAuC,CAAC;SACpD,MAAM,CAAC,oBAAoB,EAAE,0BAA0B,CAAC;SACxD,MAAM,CAAC,eAAe,EAAE,8BAA8B,CAAC;SACvD,MAAM,CAAC,gBAAgB,EAAE,2BAA2B,CAAC;SACrD,MAAM,CAAC,OAAO,EAAE,iBAAiB,CAAC;SAClC,MAAM,CAAC,WAAW,EAAE,wBAAwB,CAAC;SAC7C,MAAM,CAAC,YAAY,EAAE,sBAAsB,CAAC;SAC5C,MAAM,CAAC,WAAW,EAAE,uBAAuB,CAAC;SAC5C,MAAM,CAAC,KAAK,EAAE,UAAkB,EAAE,IAA6B,EAAE,EAAE;QAChE,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,EAAiB,CAAC;QACjD,MAAM,GAAG,GAAG,mBAAmB,CAAC,UAAU,CAAC,CAAC;QAC5C,MAAM,OAAO,GAAmB;YAC5B,GAAG,UAAU;YACb,OAAO,EAAE,IAAI,CAAC,SAAS,CAAuB;YAC9C,IAAI,EAAE,IAAI,CAAC,MAAM,CAAuB;YACxC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAuB;YAC1C,GAAG,EAAE,IAAI,CAAC,KAAK,CAAwB;YACvC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAwB;YAC/C,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,KAAK,EAAE,0CAA0C;YAC5E,OAAO,EAAE,IAAI,CAAC,SAAS,CAAwB;SAClD,CAAC;QACF,MAAM,cAAc,CAAC,GAAG,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;AACX,CAAC"}
1
+ {"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/cli/install.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../src/cli/list.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAMjE,wBAAsB,WAAW,CAAC,GAAG,EAAE,SAAS,EAAE,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CA2B5F;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAS1D"}
1
+ {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../src/cli/list.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAKjE,wBAAsB,WAAW,CAAC,GAAG,EAAE,SAAS,EAAE,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAgC5F;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAS1D"}
package/dist/cli/list.js CHANGED
@@ -1,32 +1,32 @@
1
1
  import { loadLockfile } from "../core/lockfile.js";
2
2
  import { getLockfilePath } from "../core/paths.js";
3
- import { jsonSuccess, writeJson } from "../core/json.js";
4
3
  import { createRealIOContext } from "./context.js";
5
4
  export async function executeList(ctx, options = {}) {
5
+ const { renderer } = ctx;
6
6
  const lockfile = await loadLockfile(ctx.fs, getLockfilePath());
7
7
  const installed = Object.entries(lockfile.installed);
8
- if (options.json) {
9
- writeJson(jsonSuccess({
10
- plugins: installed.map(([name, info]) => ({
11
- name,
12
- version: info.version,
13
- repo: info.repo,
14
- method: info.method,
15
- pinned: info.pinned,
16
- })),
17
- }));
18
- return;
19
- }
20
8
  if (installed.length === 0) {
21
- ctx.logger.info("No plugins installed");
9
+ renderer.text("No plugins installed");
10
+ renderer.finish(true, { plugins: [] });
22
11
  return;
23
12
  }
24
- ctx.logger.info(`Installed plugins (${installed.length}):\n`);
25
- for (const [name, info] of installed) {
26
- const pin = info.pinned ? " (pinned)" : "";
27
- const method = info.method === "local" ? " [local]" : "";
28
- ctx.logger.info(` ${name}@${info.version}${pin}${method} — from ${info.repo}`);
29
- }
13
+ renderer.heading(`Installed plugins (${installed.length})`);
14
+ renderer.table(["Name", "Version", "Repo", "Method", "Pinned"], installed.map(([name, info]) => [
15
+ name,
16
+ info.version,
17
+ info.repo,
18
+ info.method,
19
+ info.pinned ? "yes" : "no",
20
+ ]));
21
+ renderer.finish(true, {
22
+ plugins: installed.map(([name, info]) => ({
23
+ name,
24
+ version: info.version,
25
+ repo: info.repo,
26
+ method: info.method,
27
+ pinned: info.pinned,
28
+ })),
29
+ });
30
30
  }
31
31
  export function registerListCommand(program) {
32
32
  program
@@ -1 +1 @@
1
- {"version":3,"file":"list.js","sourceRoot":"","sources":["../../src/cli/list.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAEnD,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,GAAc,EAAE,UAAyB,EAAE;IACzE,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,GAAG,CAAC,EAAE,EAAE,eAAe,EAAE,CAAC,CAAC;IAC/D,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IAErD,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACf,SAAS,CAAC,WAAW,CAAC;YAClB,OAAO,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;gBACtC,IAAI;gBACJ,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,MAAM,EAAE,IAAI,CAAC,MAAM;aACtB,CAAC,CAAC;SACN,CAAC,CAAC,CAAC;QACJ,OAAO;IACX,CAAC;IAED,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QACxC,OAAO;IACX,CAAC;IACD,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,sBAAsB,SAAS,CAAC,MAAM,MAAM,CAAC,CAAC;IAC9D,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,SAAS,EAAE,CAAC;QACnC,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3C,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;QACzD,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,IAAI,CAAC,OAAO,GAAG,GAAG,GAAG,MAAM,WAAW,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IACpF,CAAC;AACL,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,OAAgB;IAChD,OAAO;SACF,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,wBAAwB,CAAC;SACrC,MAAM,CAAC,KAAK,IAAI,EAAE;QACf,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,EAAiB,CAAC;QACjD,MAAM,GAAG,GAAG,mBAAmB,CAAC,UAAU,CAAC,CAAC;QAC5C,MAAM,WAAW,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;AACX,CAAC"}
1
+ {"version":3,"file":"list.js","sourceRoot":"","sources":["../../src/cli/list.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAEnD,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,GAAc,EAAE,UAAyB,EAAE;IACzE,MAAM,EAAE,QAAQ,EAAE,GAAG,GAAG,CAAC;IACzB,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,GAAG,CAAC,EAAE,EAAE,eAAe,EAAE,CAAC,CAAC;IAC/D,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IAErD,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,QAAQ,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QACtC,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC;QACvC,OAAO;IACX,CAAC;IAED,QAAQ,CAAC,OAAO,CAAC,sBAAsB,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;IAC5D,QAAQ,CAAC,KAAK,CACV,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAC/C,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC;QAC5B,IAAI;QACJ,IAAI,CAAC,OAAO;QACZ,IAAI,CAAC,IAAI;QACT,IAAI,CAAC,MAAM;QACX,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI;KAC7B,CAAC,CACL,CAAC;IAEF,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE;QAClB,OAAO,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;YACtC,IAAI;YACJ,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,MAAM,EAAE,IAAI,CAAC,MAAM;SACtB,CAAC,CAAC;KACN,CAAC,CAAC;AACP,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,OAAgB;IAChD,OAAO;SACF,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,wBAAwB,CAAC;SACrC,MAAM,CAAC,KAAK,IAAI,EAAE;QACf,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,EAAiB,CAAC;QACjD,MAAM,GAAG,GAAG,mBAAmB,CAAC,UAAU,CAAC,CAAC;QAC5C,MAAM,WAAW,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;AACX,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"rebuild.d.ts","sourceRoot":"","sources":["../../src/cli/rebuild.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AASzC,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAgF7D"}
1
+ {"version":3,"file":"rebuild.d.ts","sourceRoot":"","sources":["../../src/cli/rebuild.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AASzC,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAyE7D"}
@@ -2,7 +2,7 @@ import { loadConfig } from "../core/config.js";
2
2
  import { getConfigPath } from "../core/paths.js";
3
3
  import { detectVencordPath, detectDiscordBinary } from "../core/detect.js";
4
4
  import { buildAndDeploy } from "../core/builder.js";
5
- import { jsonSuccess, jsonError, writeJson } from "../core/json.js";
5
+ import { ErrorCode, makeError, exitCodeForError } from "../core/errors.js";
6
6
  import { createRealIOContext } from "./context.js";
7
7
  export function registerRebuildCommand(program) {
8
8
  program
@@ -13,24 +13,22 @@ export function registerRebuildCommand(program) {
13
13
  .action(async (cmdOptions) => {
14
14
  const globalOpts = program.opts();
15
15
  const ctx = createRealIOContext(globalOpts);
16
+ const { renderer } = ctx;
16
17
  const configPath = globalOpts.config ?? getConfigPath();
17
18
  const config = await loadConfig(ctx.fs, configPath);
18
19
  // Resolve Vencord path
19
20
  const vencordPath = config.vencord.path ?? await detectVencordPath(ctx.fs);
20
21
  if (!vencordPath) {
21
- if (globalOpts.json) {
22
- writeJson(jsonError("Vencord path not found. Set vencord.path in config or $VENPM_VENCORD_PATH."));
23
- return;
24
- }
25
- ctx.logger.error("Vencord path not found. Set vencord.path in config or $VENPM_VENCORD_PATH.");
26
- process.exitCode = 1;
22
+ renderer.error(makeError(ErrorCode.VENCORD_NOT_FOUND, "Vencord path not found. Set vencord.path in config or $VENPM_VENCORD_PATH."));
23
+ renderer.finish(false);
24
+ process.exitCode = exitCodeForError(ErrorCode.VENCORD_NOT_FOUND);
27
25
  return;
28
26
  }
29
27
  // Resolve Discord binary for optional restart
30
28
  const discordBinary = config.discord.binary ?? await detectDiscordBinary(ctx.fs);
31
29
  // Determine restart behaviour — explicit flags override config
32
30
  let shouldRestart = false;
33
- if (cmdOptions.noRestart) {
31
+ if (cmdOptions.restart === false) {
34
32
  shouldRestart = false;
35
33
  }
36
34
  else if (cmdOptions.restart) {
@@ -45,38 +43,33 @@ export function registerRebuildCommand(program) {
45
43
  shouldRestart = await ctx.prompter.confirm("Restart Discord after rebuild?", false);
46
44
  }
47
45
  }
48
- ctx.logger.info(`Building Vencord at ${vencordPath}...`);
46
+ const p = renderer.progress("rebuild", `Building Vencord at ${vencordPath}...`);
49
47
  try {
50
48
  const result = await buildAndDeploy(ctx.fs, ctx.shell, vencordPath, {
51
49
  restart: shouldRestart,
52
50
  discordBinary: discordBinary ?? undefined,
53
51
  });
54
- if (globalOpts.json) {
55
- writeJson(jsonSuccess({
56
- built: true,
57
- deployed: result.deployed,
58
- restarted: result.restarted,
59
- }));
60
- return;
61
- }
62
- ctx.logger.success("Build complete");
52
+ p.succeed("Build complete");
63
53
  if (result.deployed && result.deployPath) {
64
- ctx.logger.info(`Deployed to ${result.deployPath}`);
54
+ renderer.text(`Deployed to ${result.deployPath}`);
65
55
  }
66
56
  else if (!result.deployed) {
67
- ctx.logger.warn("Deploy target not found — skipped copy step");
57
+ renderer.warn("Deploy target not found — skipped copy step");
68
58
  }
69
59
  if (result.restarted) {
70
- ctx.logger.info("Discord restarted");
60
+ renderer.text("Discord restarted");
71
61
  }
62
+ renderer.finish(true, {
63
+ built: true,
64
+ deployed: result.deployed,
65
+ restarted: result.restarted,
66
+ });
72
67
  }
73
68
  catch (err) {
74
- if (globalOpts.json) {
75
- writeJson(jsonError(`Build failed: ${err.message}`));
76
- return;
77
- }
78
- ctx.logger.error(`Build failed: ${err.message}`);
79
- process.exitCode = 1;
69
+ p.fail("Build failed");
70
+ renderer.error(makeError(ErrorCode.BUILD_FAILED, `Build failed: ${err.message}`));
71
+ renderer.finish(false);
72
+ process.exitCode = exitCodeForError(ErrorCode.BUILD_FAILED);
80
73
  return;
81
74
  }
82
75
  });
@@ -1 +1 @@
1
- {"version":3,"file":"rebuild.js","sourceRoot":"","sources":["../../src/cli/rebuild.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rebuild.js","sourceRoot":"","sources":["../../src/cli/rebuild.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"repo.d.ts","sourceRoot":"","sources":["../../src/cli/repo.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOzC,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAmG1D"}
1
+ {"version":3,"file":"repo.d.ts","sourceRoot":"","sources":["../../src/cli/repo.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOzC,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA4F1D"}
package/dist/cli/repo.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { loadConfig, saveConfig } from "../core/config.js";
2
2
  import { getConfigPath } from "../core/paths.js";
3
- import { jsonSuccess, jsonError, writeJson } from "../core/json.js";
3
+ import { ErrorCode, makeError, exitCodeForError } from "../core/errors.js";
4
4
  import { createRealIOContext } from "./context.js";
5
5
  export function registerRepoCommand(program) {
6
6
  const repo = program
@@ -13,6 +13,7 @@ export function registerRepoCommand(program) {
13
13
  .action(async (url, options) => {
14
14
  const parentOpts = program.opts();
15
15
  const ctx = createRealIOContext(parentOpts);
16
+ const { renderer } = ctx;
16
17
  const configPath = parentOpts.config ?? getConfigPath();
17
18
  const config = await loadConfig(ctx.fs, configPath);
18
19
  let name = options.name;
@@ -26,21 +27,15 @@ export function registerRepoCommand(program) {
26
27
  }
27
28
  const existing = config.repos.find(r => r.name === name);
28
29
  if (existing) {
29
- if (parentOpts.json) {
30
- writeJson(jsonError(`Repository with name "${name}" already exists (${existing.url})`));
31
- return;
32
- }
33
- ctx.logger.error(`Repository with name "${name}" already exists (${existing.url})`);
34
- process.exitCode = 1;
30
+ renderer.error(makeError(ErrorCode.REPO_FETCH_FAILED, `Repository with name "${name}" already exists (${existing.url})`));
31
+ renderer.finish(false);
32
+ process.exitCode = exitCodeForError(ErrorCode.REPO_FETCH_FAILED);
35
33
  return;
36
34
  }
37
35
  config.repos.push({ name, url });
38
36
  await saveConfig(ctx.fs, configPath, config);
39
- if (parentOpts.json) {
40
- writeJson(jsonSuccess({ name, url }));
41
- return;
42
- }
43
- ctx.logger.success(`Added repository "${name}" → ${url}`);
37
+ renderer.success(`Added repository "${name}" → ${url}`);
38
+ renderer.finish(true, { name, url });
44
39
  });
45
40
  repo
46
41
  .command("remove <name>")
@@ -48,25 +43,23 @@ export function registerRepoCommand(program) {
48
43
  .action(async (name) => {
49
44
  const parentOpts = program.opts();
50
45
  const ctx = createRealIOContext(parentOpts);
46
+ const { renderer } = ctx;
51
47
  const configPath = parentOpts.config ?? getConfigPath();
52
48
  const config = await loadConfig(ctx.fs, configPath);
53
49
  const index = config.repos.findIndex(r => r.name === name);
54
50
  if (index === -1) {
55
- if (parentOpts.json) {
56
- writeJson(jsonError(`Repository "${name}" not found`));
57
- return;
58
- }
59
- ctx.logger.error(`Repository "${name}" not found`);
60
- process.exitCode = 1;
51
+ const repoNames = config.repos.map(r => r.name);
52
+ renderer.error(makeError(ErrorCode.REPO_FETCH_FAILED, `Repository "${name}" not found`, {
53
+ candidates: repoNames.length > 0 ? repoNames : undefined,
54
+ }));
55
+ renderer.finish(false);
56
+ process.exitCode = exitCodeForError(ErrorCode.REPO_FETCH_FAILED);
61
57
  return;
62
58
  }
63
59
  config.repos.splice(index, 1);
64
60
  await saveConfig(ctx.fs, configPath, config);
65
- if (parentOpts.json) {
66
- writeJson(jsonSuccess({ removed: name }));
67
- return;
68
- }
69
- ctx.logger.success(`Removed repository "${name}"`);
61
+ renderer.success(`Removed repository "${name}"`);
62
+ renderer.finish(true, { removed: name });
70
63
  });
71
64
  repo
72
65
  .command("list")
@@ -74,20 +67,17 @@ export function registerRepoCommand(program) {
74
67
  .action(async () => {
75
68
  const parentOpts = program.opts();
76
69
  const ctx = createRealIOContext(parentOpts);
70
+ const { renderer } = ctx;
77
71
  const configPath = parentOpts.config ?? getConfigPath();
78
72
  const config = await loadConfig(ctx.fs, configPath);
79
- if (parentOpts.json) {
80
- writeJson(jsonSuccess({ repos: config.repos.map(r => ({ name: r.name, url: r.url })) }));
81
- return;
82
- }
83
73
  if (config.repos.length === 0) {
84
- ctx.logger.info("No repositories configured");
74
+ renderer.text("No repositories configured");
75
+ renderer.finish(true, { repos: [] });
85
76
  return;
86
77
  }
87
- ctx.logger.info(`Configured repositories (${config.repos.length}):\n`);
88
- for (const r of config.repos) {
89
- ctx.logger.info(` ${r.name} ${r.url}`);
90
- }
78
+ renderer.heading(`Configured repositories (${config.repos.length})`);
79
+ renderer.table(["Name", "URL"], config.repos.map(r => [r.name, r.url]));
80
+ renderer.finish(true, { repos: config.repos.map(r => ({ name: r.name, url: r.url })) });
91
81
  });
92
82
  }
93
83
  //# sourceMappingURL=repo.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"repo.js","sourceRoot":"","sources":["../../src/cli/repo.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"repo.js","sourceRoot":"","sources":["../../src/cli/repo.ts"],"names":[],"mappings":"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"}