@kamaras/venpm 0.2.1 → 0.4.0

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 (47) hide show
  1. package/README.md +11 -5
  2. package/actions/publish-index/action.yml +1 -1
  3. package/dist/cli/context.d.ts.map +1 -1
  4. package/dist/cli/context.js +3 -0
  5. package/dist/cli/context.js.map +1 -1
  6. package/dist/cli/create.js +1 -1
  7. package/dist/cli/create.js.map +1 -1
  8. package/dist/cli/inject.d.ts +12 -0
  9. package/dist/cli/inject.d.ts.map +1 -0
  10. package/dist/cli/inject.js +205 -0
  11. package/dist/cli/inject.js.map +1 -0
  12. package/dist/cli/kill-discord.d.ts +3 -0
  13. package/dist/cli/kill-discord.d.ts.map +1 -0
  14. package/dist/cli/kill-discord.js +39 -0
  15. package/dist/cli/kill-discord.js.map +1 -0
  16. package/dist/core/builder.d.ts +10 -5
  17. package/dist/core/builder.d.ts.map +1 -1
  18. package/dist/core/builder.js +16 -29
  19. package/dist/core/builder.js.map +1 -1
  20. package/dist/core/discord.d.ts +36 -0
  21. package/dist/core/discord.d.ts.map +1 -0
  22. package/dist/core/discord.js +183 -0
  23. package/dist/core/discord.js.map +1 -0
  24. package/dist/core/errors.d.ts +4 -0
  25. package/dist/core/errors.d.ts.map +1 -1
  26. package/dist/core/errors.js +9 -0
  27. package/dist/core/errors.js.map +1 -1
  28. package/dist/core/fetcher.d.ts.map +1 -1
  29. package/dist/core/fetcher.js +14 -0
  30. package/dist/core/fetcher.js.map +1 -1
  31. package/dist/core/inject.d.ts +60 -0
  32. package/dist/core/inject.d.ts.map +1 -0
  33. package/dist/core/inject.js +293 -0
  34. package/dist/core/inject.js.map +1 -0
  35. package/dist/core/json.d.ts +11 -0
  36. package/dist/core/json.d.ts.map +1 -0
  37. package/dist/core/json.js +14 -0
  38. package/dist/core/json.js.map +1 -0
  39. package/dist/core/log.d.ts +14 -0
  40. package/dist/core/log.d.ts.map +1 -0
  41. package/dist/core/log.js +24 -0
  42. package/dist/core/log.js.map +1 -0
  43. package/dist/core/types.d.ts +1 -0
  44. package/dist/core/types.d.ts.map +1 -1
  45. package/dist/index.js +5 -0
  46. package/dist/index.js.map +1 -1
  47. package/package.json +5 -2
package/README.md CHANGED
@@ -27,10 +27,10 @@ Vencord's userplugin ecosystem is powerful but fragmented. Plugin authors host c
27
27
 
28
28
  ```
29
29
  venpm install minimalCallBar
30
- Resolved minimalCallBar@0.1.0 from kamaras-plugins
30
+ Found minimalCallBar@0.2.2 from kamaras
31
31
  Optional: settingsHub, channelTabs (install with venpm install <name>)
32
32
  Fetching via git (sparse checkout)...
33
- Installed minimalCallBar@0.1.0
33
+ Installed minimalCallBar@0.2.2
34
34
  Rebuilding Vencord... done
35
35
  ```
36
36
 
@@ -80,10 +80,14 @@ venpm rebuild
80
80
  | `venpm config set\|get\|path` | View or edit venpm configuration |
81
81
  | `venpm create <path>` | Scaffold a new plugin repo or plugin |
82
82
  | `venpm rebuild` | Rebuild Vencord after changes |
83
+ | `venpm inject` | Patch Discord to load Vencord natively |
84
+ | `venpm uninject` | Remove the native Vencord patch from Discord |
85
+ | `venpm kill-discord` | Stop running Discord processes |
83
86
  | `venpm doctor` | Diagnose environment issues |
84
87
  | `venpm validate [path]` | Validate a `plugins.json` index file |
88
+ | `venpm completions [shell]` | Output shell completions |
85
89
 
86
- **Global flags:** `--yes` (auto-confirm), `--verbose`, `--quiet`, `--json` (structured output)
90
+ **Global flags:** `--yes` (auto-confirm), `--verbose`, `--quiet`, `--json` (structured output), `--json-stream` (NDJSON events), `--no-color`
87
91
 
88
92
  ## How It Works
89
93
 
@@ -146,10 +150,12 @@ src/
146
150
  registry.ts Fetch + parse + cache plugin indexes
147
151
  fetcher.ts Git clone (sparse checkout), tarball extract, local symlink
148
152
  builder.ts Vencord pnpm build, deploy, Discord restart
149
- ... config, lockfile, schema, detect, cache, paths, prompt, log
153
+ inject.ts Native Discord app.asar shim install/removal
154
+ discord.ts Discord process discovery and termination
155
+ ... config, lockfile, schema, detect, cache, paths, prompt, renderer
150
156
  cli/ Command handlers (compose core modules)
151
157
  context.ts createRealIOContext() — wires real Node.js I/O
152
- install.ts uninstall.ts update.ts list.ts search.ts ...
158
+ install.ts uninstall.ts update.ts inject.ts kill-discord.ts ...
153
159
  index.ts CLI entry point (commander)
154
160
  schemas/v1/ JSON Schemas — the primary deliverable
155
161
  actions/ GitHub Action for plugin repo authors
@@ -26,7 +26,7 @@ runs:
26
26
  if [ "${{ inputs.strict }}" = "true" ]; then
27
27
  STRICT_FLAG="--strict"
28
28
  fi
29
- npx venpm validate "${{ inputs.index-path }}" $STRICT_FLAG
29
+ npx @kamaras/venpm validate "${{ inputs.index-path }}" $STRICT_FLAG
30
30
 
31
31
  - name: Create plugin tarballs
32
32
  shell: bash
@@ -1 +1 @@
1
- {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/cli/context.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,SAAS,EAAkD,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAIjH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,aAAa,GAAG,SAAS,CA4KrE"}
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/cli/context.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,SAAS,EAAkD,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAIjH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,aAAa,GAAG,SAAS,CAgLrE"}
@@ -48,6 +48,9 @@ export function createRealIOContext(options) {
48
48
  async copyDir(src, dest) {
49
49
  await fsPromises.cp(src, dest, { recursive: true });
50
50
  },
51
+ async rename(src, dest) {
52
+ await fsPromises.rename(src, dest);
53
+ },
51
54
  };
52
55
  const http = {
53
56
  async fetch(url, fetchOptions) {
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/cli/context.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/cli/context.ts"],"names":[],"mappings":"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"}
@@ -76,7 +76,7 @@ async function scaffoldRepo(ctx, targetPath) {
76
76
  " with:",
77
77
  " node-version: '20'",
78
78
  " - name: Validate plugins.json",
79
- " run: npx venpm validate plugins.json",
79
+ " run: npx @kamaras/venpm validate plugins.json",
80
80
  "",
81
81
  ].join("\n");
82
82
  await ctx.fs.writeFile(join(targetPath, ".github", "workflows", "publish.yml"), publishYml);
@@ -1 +1 @@
1
- {"version":3,"file":"create.js","sourceRoot":"","sources":["../../src/cli/create.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"create.js","sourceRoot":"","sources":["../../src/cli/create.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import type { Command } from "commander";
2
+ import type { RestartMode } from "../core/types.js";
3
+ interface InjectCmdOptions {
4
+ branch?: string;
5
+ restart?: boolean;
6
+ }
7
+ export declare function appManagementSuggestionForInjectError(err: Error): string | undefined;
8
+ export declare function shouldRestartAfterInject(options: Pick<InjectCmdOptions, "restart">, restartMode: RestartMode, discordBinary: string | null, confirm: (message: string, defaultValue?: boolean) => Promise<boolean>): Promise<boolean>;
9
+ export declare function registerInjectCommand(program: Command): void;
10
+ export declare function registerUninjectCommand(program: Command): void;
11
+ export {};
12
+ //# sourceMappingURL=inject.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inject.d.ts","sourceRoot":"","sources":["../../src/cli/inject.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,KAAK,EAAiB,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAkBnE,UAAU,gBAAgB;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;CACrB;AAmBD,wBAAgB,qCAAqC,CAAC,GAAG,EAAE,KAAK,GAAG,MAAM,GAAG,SAAS,CAQpF;AAiDD,wBAAsB,wBAAwB,CAC1C,OAAO,EAAE,IAAI,CAAC,gBAAgB,EAAE,SAAS,CAAC,EAC1C,WAAW,EAAE,WAAW,EACxB,aAAa,EAAE,MAAM,GAAG,IAAI,EAC5B,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,GACvE,OAAO,CAAC,OAAO,CAAC,CASlB;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA6E5D;AAED,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAoD9D"}
@@ -0,0 +1,205 @@
1
+ import { loadConfig } from "../core/config.js";
2
+ import { getConfigPath } from "../core/paths.js";
3
+ import { detectDiscordBinary } from "../core/detect.js";
4
+ import { restartDiscord } from "../core/builder.js";
5
+ import { DISCORD_BRANCHES, detectDiscordApps, getInjectStatus, injectVencord, uninjectVencord, InjectError, } from "../core/inject.js";
6
+ import { ErrorCode, makeError, exitCodeForError } from "../core/errors.js";
7
+ import { createRealIOContext } from "./context.js";
8
+ function supportsNativeInject(platform) {
9
+ return platform === "darwin" || platform === "linux";
10
+ }
11
+ function mapInjectErrorCode(code) {
12
+ switch (code) {
13
+ case "PLATFORM_UNSUPPORTED": return ErrorCode.PLATFORM_UNSUPPORTED;
14
+ case "DISCORD_NOT_FOUND": return ErrorCode.DISCORD_NOT_FOUND;
15
+ case "ALREADY_INJECTED": return ErrorCode.ALREADY_INJECTED;
16
+ case "NOT_INJECTED": return ErrorCode.NOT_INJECTED;
17
+ case "INJECT_FAILED": return ErrorCode.INJECT_FAILED;
18
+ }
19
+ }
20
+ const MACOS_APP_MANAGEMENT_SUGGESTION = "Grant App Management permission to your terminal in System Settings > Privacy & Security > App Management, then run venpm inject again.";
21
+ export function appManagementSuggestionForInjectError(err) {
22
+ if (process.platform !== "darwin")
23
+ return undefined;
24
+ if (!("code" in err) || err.code !== "EPERM")
25
+ return undefined;
26
+ if (!err.message.includes("/Applications/") || !err.message.includes(".app/Contents/Resources/")) {
27
+ return undefined;
28
+ }
29
+ return MACOS_APP_MANAGEMENT_SUGGESTION;
30
+ }
31
+ async function resolveTarget(fs, branch) {
32
+ const apps = await detectDiscordApps(fs);
33
+ if (apps.length === 0) {
34
+ if (!supportsNativeInject(process.platform)) {
35
+ return {
36
+ error: ErrorCode.PLATFORM_UNSUPPORTED,
37
+ message: `Native inject is not supported on ${process.platform}`,
38
+ };
39
+ }
40
+ return {
41
+ error: ErrorCode.DISCORD_NOT_FOUND,
42
+ message: process.platform === "darwin"
43
+ ? "No Discord.app found in /Applications"
44
+ : "No Discord install found in standard Linux paths",
45
+ };
46
+ }
47
+ if (!branch) {
48
+ // Default: stable if present, otherwise first detected
49
+ const stable = apps.find(a => a.branch === "stable");
50
+ return stable ?? apps[0];
51
+ }
52
+ const requested = branch.toLowerCase();
53
+ if (!DISCORD_BRANCHES.includes(requested)) {
54
+ return {
55
+ error: ErrorCode.DISCORD_NOT_FOUND,
56
+ message: `Unknown branch '${branch}'. Expected one of: ${DISCORD_BRANCHES.join(", ")}`,
57
+ };
58
+ }
59
+ const match = apps.find(a => a.branch === requested);
60
+ if (!match) {
61
+ return {
62
+ error: ErrorCode.DISCORD_NOT_FOUND,
63
+ message: process.platform === "darwin"
64
+ ? `Discord ${requested} not found in /Applications`
65
+ : `Discord ${requested} not found in standard Linux paths`,
66
+ };
67
+ }
68
+ return match;
69
+ }
70
+ export async function shouldRestartAfterInject(options, restartMode, discordBinary, confirm) {
71
+ if (!discordBinary)
72
+ return false;
73
+ if (options.restart === false)
74
+ return false;
75
+ if (options.restart === true)
76
+ return true;
77
+ if (restartMode === "always")
78
+ return true;
79
+ if (restartMode === "ask") {
80
+ return confirm("Restart Discord now?", true);
81
+ }
82
+ return false;
83
+ }
84
+ export function registerInjectCommand(program) {
85
+ program
86
+ .command("inject")
87
+ .description("Patch Discord to load Vencord (native, no external installer)")
88
+ .option("-b, --branch <branch>", "Discord branch: stable (default), canary, ptb")
89
+ .option("--restart", "Restart Discord after patching")
90
+ .option("--no-restart", "Skip Discord restart after patching")
91
+ .action(async (cmdOptions) => {
92
+ const globalOpts = program.opts();
93
+ const ctx = createRealIOContext(globalOpts);
94
+ const { renderer } = ctx;
95
+ const configPath = globalOpts.config ?? getConfigPath();
96
+ const config = await loadConfig(ctx.fs, configPath);
97
+ const target = await resolveTarget(ctx.fs, cmdOptions.branch);
98
+ if ("error" in target) {
99
+ renderer.error(makeError(target.error, target.message));
100
+ renderer.finish(false);
101
+ process.exitCode = exitCodeForError(target.error);
102
+ return;
103
+ }
104
+ const discordBinary = config.discord.binary ?? await detectDiscordBinary(ctx.fs);
105
+ const shouldRestart = await shouldRestartAfterInject(cmdOptions, config.discord.restart, discordBinary, ctx.prompter.confirm);
106
+ const p = renderer.progress("inject", `Injecting Vencord into ${target.branch} (${target.appPath})...`);
107
+ try {
108
+ const result = await injectVencord(ctx.fs, target);
109
+ p.succeed(`Patched ${result.branch} — shim at ${result.shimAsar}`);
110
+ renderer.text(`Original asar backed up to ${result.backupPath}`);
111
+ let restarted = false;
112
+ if (shouldRestart && discordBinary) {
113
+ const restartProgress = renderer.progress("restart", "Restarting Discord...");
114
+ try {
115
+ await restartDiscord(ctx.fs, ctx.shell, discordBinary);
116
+ restartProgress.succeed("Discord restarted");
117
+ restarted = true;
118
+ }
119
+ catch (err) {
120
+ restartProgress.fail("Discord restart failed");
121
+ renderer.warn(`Patch is installed, but Discord restart failed: ${err.message}`);
122
+ renderer.text("Restart Discord manually for changes to take effect.");
123
+ }
124
+ }
125
+ else {
126
+ renderer.text("Restart Discord for changes to take effect.");
127
+ }
128
+ renderer.finish(true, {
129
+ branch: result.branch,
130
+ appPath: result.appPath,
131
+ shimAsar: result.shimAsar,
132
+ backupPath: result.backupPath,
133
+ restarted,
134
+ });
135
+ }
136
+ catch (err) {
137
+ p.fail("Inject failed");
138
+ if (err instanceof InjectError) {
139
+ const mapped = mapInjectErrorCode(err.code);
140
+ renderer.error(makeError(mapped, err.message, {
141
+ suggestion: appManagementSuggestionForInjectError(err),
142
+ }));
143
+ renderer.finish(false);
144
+ process.exitCode = exitCodeForError(mapped);
145
+ return;
146
+ }
147
+ renderer.error(makeError(ErrorCode.INJECT_FAILED, err.message, {
148
+ suggestion: appManagementSuggestionForInjectError(err),
149
+ }));
150
+ renderer.finish(false);
151
+ process.exitCode = exitCodeForError(ErrorCode.INJECT_FAILED);
152
+ }
153
+ });
154
+ }
155
+ export function registerUninjectCommand(program) {
156
+ program
157
+ .command("uninject")
158
+ .description("Remove the Vencord patch from Discord")
159
+ .option("-b, --branch <branch>", "Discord branch: stable (default), canary, ptb")
160
+ .action(async (cmdOptions) => {
161
+ const globalOpts = program.opts();
162
+ const ctx = createRealIOContext(globalOpts);
163
+ const { renderer } = ctx;
164
+ const target = await resolveTarget(ctx.fs, cmdOptions.branch);
165
+ if ("error" in target) {
166
+ renderer.error(makeError(target.error, target.message));
167
+ renderer.finish(false);
168
+ process.exitCode = exitCodeForError(target.error);
169
+ return;
170
+ }
171
+ const status = await getInjectStatus(ctx.fs, target);
172
+ if (!status.injected) {
173
+ renderer.warn(`Discord ${target.branch} is not injected — nothing to do`);
174
+ renderer.finish(true, { branch: target.branch, injected: false });
175
+ return;
176
+ }
177
+ const p = renderer.progress("uninject", `Removing Vencord patch from ${target.branch}...`);
178
+ try {
179
+ const result = await uninjectVencord(ctx.fs, target);
180
+ p.succeed(`Un-patched ${result.branch}`);
181
+ renderer.finish(true, {
182
+ branch: result.branch,
183
+ appPath: result.appPath,
184
+ });
185
+ }
186
+ catch (err) {
187
+ p.fail("Uninject failed");
188
+ if (err instanceof InjectError) {
189
+ const mapped = mapInjectErrorCode(err.code);
190
+ renderer.error(makeError(mapped, err.message, {
191
+ suggestion: appManagementSuggestionForInjectError(err),
192
+ }));
193
+ renderer.finish(false);
194
+ process.exitCode = exitCodeForError(mapped);
195
+ return;
196
+ }
197
+ renderer.error(makeError(ErrorCode.INJECT_FAILED, err.message, {
198
+ suggestion: appManagementSuggestionForInjectError(err),
199
+ }));
200
+ renderer.finish(false);
201
+ process.exitCode = exitCodeForError(ErrorCode.INJECT_FAILED);
202
+ }
203
+ });
204
+ }
205
+ //# sourceMappingURL=inject.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inject.js","sourceRoot":"","sources":["../../src/cli/inject.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { Command } from "commander";
2
+ export declare function registerKillDiscordCommand(program: Command): void;
3
+ //# sourceMappingURL=kill-discord.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kill-discord.d.ts","sourceRoot":"","sources":["../../src/cli/kill-discord.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOzC,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA2CjE"}
@@ -0,0 +1,39 @@
1
+ import { loadConfig } from "../core/config.js";
2
+ import { getConfigPath } from "../core/paths.js";
3
+ import { killDiscordProcesses } from "../core/discord.js";
4
+ import { createRealIOContext } from "./context.js";
5
+ export function registerKillDiscordCommand(program) {
6
+ program
7
+ .command("kill-discord")
8
+ .description("Kill all running Discord instances")
9
+ .action(async () => {
10
+ const globalOpts = program.opts();
11
+ const ctx = createRealIOContext(globalOpts);
12
+ const { renderer } = ctx;
13
+ const configPath = globalOpts.config ?? getConfigPath();
14
+ const config = await loadConfig(ctx.fs, configPath);
15
+ const p = renderer.progress("kill", "Scanning for Discord processes...");
16
+ const result = await killDiscordProcesses(ctx.fs, ctx.shell, config.discord.binary);
17
+ if (result.found.length === 0) {
18
+ p.succeed("No Discord processes found");
19
+ renderer.finish(true, { found: [], killed: 0, forced: 0 });
20
+ return;
21
+ }
22
+ for (const proc of result.found) {
23
+ renderer.dim(` PID ${proc.pid} → ${proc.exe}`);
24
+ }
25
+ const totalKilled = result.killed.length + result.forced.length;
26
+ if (result.forced.length > 0) {
27
+ p.succeed(`Killed ${totalKilled} Discord process(es) (${result.forced.length} required SIGKILL)`);
28
+ }
29
+ else {
30
+ p.succeed(`Killed ${totalKilled} Discord process(es)`);
31
+ }
32
+ renderer.finish(true, {
33
+ found: result.found,
34
+ killed: totalKilled,
35
+ forced: result.forced.length,
36
+ });
37
+ });
38
+ }
39
+ //# sourceMappingURL=kill-discord.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kill-discord.js","sourceRoot":"","sources":["../../src/cli/kill-discord.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAEnD,MAAM,UAAU,0BAA0B,CAAC,OAAgB;IACvD,OAAO;SACF,OAAO,CAAC,cAAc,CAAC;SACvB,WAAW,CAAC,oCAAoC,CAAC;SACjD,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,EAAE,QAAQ,EAAE,GAAG,GAAG,CAAC;QACzB,MAAM,UAAU,GAAG,UAAU,CAAC,MAAM,IAAI,aAAa,EAAE,CAAC;QACxD,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,GAAG,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;QAEpD,MAAM,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,mCAAmC,CAAC,CAAC;QAEzE,MAAM,MAAM,GAAG,MAAM,oBAAoB,CACrC,GAAG,CAAC,EAAE,EACN,GAAG,CAAC,KAAK,EACT,MAAM,CAAC,OAAO,CAAC,MAAM,CACxB,CAAC;QAEF,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,CAAC,CAAC,OAAO,CAAC,4BAA4B,CAAC,CAAC;YACxC,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;YAC3D,OAAO;QACX,CAAC;QAED,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YAC9B,QAAQ,CAAC,GAAG,CAAC,SAAS,IAAI,CAAC,GAAG,MAAM,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;QACpD,CAAC;QAED,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;QAEhE,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3B,CAAC,CAAC,OAAO,CAAC,UAAU,WAAW,yBAAyB,MAAM,CAAC,MAAM,CAAC,MAAM,oBAAoB,CAAC,CAAC;QACtG,CAAC;aAAM,CAAC;YACJ,CAAC,CAAC,OAAO,CAAC,UAAU,WAAW,sBAAsB,CAAC,CAAC;QAC3D,CAAC;QAED,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE;YAClB,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,MAAM,EAAE,WAAW;YACnB,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM;SAC/B,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACX,CAAC"}
@@ -12,15 +12,20 @@ export interface DeployResult {
12
12
  export declare function buildVencord(shell: ShellRunner, vencordPath: string): Promise<void>;
13
13
  /**
14
14
  * Copy `<vencordPath>/dist/` to the platform-specific deployed location.
15
- * Skips silently when the deployed directory does not exist on disk.
15
+ *
16
+ * Creates the deploy directory if it doesn't exist. Previous behaviour was to
17
+ * skip silently when the directory was missing, which required users to run
18
+ * Vencord's own installer first to bootstrap it. On macOS Apple Silicon that
19
+ * installer is x86-only and often fails, so we make `rebuild` self-sufficient.
16
20
  */
17
21
  export declare function deployDist(fs: FileSystem, vencordPath: string): Promise<DeployResult>;
18
22
  /**
19
- * Kill Discord via `pkill`, wait briefly, then spawn the binary detached.
20
- * If pkill reports the process is not running (exit code 1) the kill step is
21
- * skipped Discord is still spawned so the caller can open it fresh.
23
+ * Kill all running Discord processes, wait for confirmed exit, then spawn
24
+ * the binary detached. Uses `/proc/<pid>/exe`-based discovery so only
25
+ * verified Discord binaries are killed (no stray processes). SIGTERM is
26
+ * tried first; survivors are escalated to SIGKILL.
22
27
  */
23
- export declare function restartDiscord(shell: ShellRunner, discordBinary: string): Promise<void>;
28
+ export declare function restartDiscord(fs: FileSystem, shell: ShellRunner, discordBinary: string): Promise<void>;
24
29
  export interface BuildAndDeployOptions {
25
30
  restart?: boolean;
26
31
  discordBinary?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../../src/core/builder.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAI1D,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,OAAO,GAAG,QAAQ,GAAG,OAAO,EAAE,MAAM,CAIrE,CAAC;AAIF,MAAM,WAAW,YAAY;IACzB,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;CACtB;AAID;;;GAGG;AACH,wBAAsB,YAAY,CAAC,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAOzF;AAID;;;GAGG;AACH,wBAAsB,UAAU,CAAC,EAAE,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAa3F;AAID;;;;GAIG;AACH,wBAAsB,cAAc,CAAC,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA2B7F;AAID,MAAM,WAAW,qBAAqB;IAClC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;GAEG;AACH,wBAAsB,cAAc,CAChC,EAAE,EAAE,UAAU,EACd,KAAK,EAAE,WAAW,EAClB,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE,qBAA0B,GACpC,OAAO,CAAC,YAAY,CAAC,CAWvB"}
1
+ {"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../../src/core/builder.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAK1D,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,OAAO,GAAG,QAAQ,GAAG,OAAO,EAAE,MAAM,CAIrE,CAAC;AAIF,MAAM,WAAW,YAAY;IACzB,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;CACtB;AAID;;;GAGG;AACH,wBAAsB,YAAY,CAAC,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAOzF;AAID;;;;;;;GAOG;AACH,wBAAsB,UAAU,CAAC,EAAE,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAY3F;AAID;;;;;GAKG;AACH,wBAAsB,cAAc,CAAC,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAG7G;AAID,MAAM,WAAW,qBAAqB;IAClC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;GAEG;AACH,wBAAsB,cAAc,CAChC,EAAE,EAAE,UAAU,EACd,KAAK,EAAE,WAAW,EAClB,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE,qBAA0B,GACpC,OAAO,CAAC,YAAY,CAAC,CAWvB"}
@@ -1,5 +1,6 @@
1
1
  import { homedir } from "node:os";
2
- import { basename, join } from "node:path";
2
+ import { join } from "node:path";
3
+ import { killDiscordProcesses } from "./discord.js";
3
4
  // ─── Deploy Paths ─────────────────────────────────────────────────────────────
4
5
  export const DEPLOY_PATHS = {
5
6
  linux: join(homedir(), ".config", "Vencord", "dist"),
@@ -20,14 +21,17 @@ export async function buildVencord(shell, vencordPath) {
20
21
  // ─── Deploy ───────────────────────────────────────────────────────────────────
21
22
  /**
22
23
  * Copy `<vencordPath>/dist/` to the platform-specific deployed location.
23
- * Skips silently when the deployed directory does not exist on disk.
24
+ *
25
+ * Creates the deploy directory if it doesn't exist. Previous behaviour was to
26
+ * skip silently when the directory was missing, which required users to run
27
+ * Vencord's own installer first to bootstrap it. On macOS Apple Silicon that
28
+ * installer is x86-only and often fails, so we make `rebuild` self-sufficient.
24
29
  */
25
30
  export async function deployDist(fs, vencordPath) {
26
31
  const platform = process.platform;
27
32
  const deployPath = DEPLOY_PATHS[platform] ?? DEPLOY_PATHS.linux;
28
- const deployedDirExists = await fs.exists(deployPath);
29
- if (!deployedDirExists) {
30
- return { deployed: false, restarted: false };
33
+ if (!(await fs.exists(deployPath))) {
34
+ await fs.mkdir(deployPath, { recursive: true });
31
35
  }
32
36
  const srcDist = join(vencordPath, "dist");
33
37
  await fs.copyDir(srcDist, deployPath);
@@ -35,30 +39,13 @@ export async function deployDist(fs, vencordPath) {
35
39
  }
36
40
  // ─── Restart ──────────────────────────────────────────────────────────────────
37
41
  /**
38
- * Kill Discord via `pkill`, wait briefly, then spawn the binary detached.
39
- * If pkill reports the process is not running (exit code 1) the kill step is
40
- * skipped Discord is still spawned so the caller can open it fresh.
42
+ * Kill all running Discord processes, wait for confirmed exit, then spawn
43
+ * the binary detached. Uses `/proc/<pid>/exe`-based discovery so only
44
+ * verified Discord binaries are killed (no stray processes). SIGTERM is
45
+ * tried first; survivors are escalated to SIGKILL.
41
46
  */
42
- export async function restartDiscord(shell, discordBinary) {
43
- const processName = basename(discordBinary);
44
- if (process.platform === "win32") {
45
- // taskkill /IM matches image name; /F forces termination.
46
- // Exit code 128 = process not found (not an error for us).
47
- const killResult = await shell.exec("taskkill", ["/IM", `${processName}.exe`, "/F"]);
48
- if (killResult.exitCode !== 0 && killResult.exitCode !== 128) {
49
- throw new Error(`taskkill failed (exit ${killResult.exitCode}): ${killResult.stderr}`);
50
- }
51
- }
52
- else {
53
- // pkill returns 0 if at least one process was signalled, 1 if none found.
54
- // -x = exact name match, -i = case-insensitive (binary is "discord", comm is "Discord").
55
- const killResult = await shell.exec("pkill", ["-xi", processName]);
56
- if (killResult.exitCode !== 0 && killResult.exitCode !== 1) {
57
- throw new Error(`pkill failed (exit ${killResult.exitCode}): ${killResult.stderr}`);
58
- }
59
- }
60
- // Give the process a moment to fully exit before relaunching.
61
- await new Promise(resolve => setTimeout(resolve, 500));
47
+ export async function restartDiscord(fs, shell, discordBinary) {
48
+ await killDiscordProcesses(fs, shell, discordBinary);
62
49
  await shell.spawn(discordBinary, [], { detached: true });
63
50
  }
64
51
  /**
@@ -68,7 +55,7 @@ export async function buildAndDeploy(fs, shell, vencordPath, options = {}) {
68
55
  await buildVencord(shell, vencordPath);
69
56
  const result = await deployDist(fs, vencordPath);
70
57
  if (options.restart && options.discordBinary) {
71
- await restartDiscord(shell, options.discordBinary);
58
+ await restartDiscord(fs, shell, options.discordBinary);
72
59
  result.restarted = true;
73
60
  }
74
61
  return result;
@@ -1 +1 @@
1
- {"version":3,"file":"builder.js","sourceRoot":"","sources":["../../src/core/builder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"builder.js","sourceRoot":"","sources":["../../src/core/builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAEpD,iFAAiF;AAEjF,MAAM,CAAC,MAAM,YAAY,GAAiD;IACtE,KAAK,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,CAAC;IACpD,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,qBAAqB,EAAE,SAAS,EAAE,MAAM,CAAC;IAC5E,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,SAAS,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC;CAC/F,CAAC;AAUF,iFAAiF;AAEjF;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,KAAkB,EAAE,WAAmB;IACtE,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC,CAAC;IACzE,IAAI,MAAM,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CACX,2BAA2B,MAAM,CAAC,QAAQ,OAAO,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,CACpF,CAAC;IACN,CAAC;AACL,CAAC;AAED,iFAAiF;AAEjF;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,EAAc,EAAE,WAAmB;IAChE,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAwC,CAAC;IAClE,MAAM,UAAU,GAAG,YAAY,CAAC,QAAQ,CAAC,IAAI,YAAY,CAAC,KAAK,CAAC;IAEhE,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;QACjC,MAAM,EAAE,CAAC,KAAK,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACpD,CAAC;IAED,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IAC1C,MAAM,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IAEtC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;AAC5D,CAAC;AAED,iFAAiF;AAEjF;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,EAAc,EAAE,KAAkB,EAAE,aAAqB;IAC1F,MAAM,oBAAoB,CAAC,EAAE,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC;IACrD,MAAM,KAAK,CAAC,KAAK,CAAC,aAAa,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;AAC7D,CAAC;AASD;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAChC,EAAc,EACd,KAAkB,EAClB,WAAmB,EACnB,UAAiC,EAAE;IAEnC,MAAM,YAAY,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;IAEvC,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC;IAEjD,IAAI,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;QAC3C,MAAM,cAAc,CAAC,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;QACvD,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC;IAC5B,CAAC;IAED,OAAO,MAAM,CAAC;AAClB,CAAC"}
@@ -0,0 +1,36 @@
1
+ import type { FileSystem, ShellRunner } from "./types.js";
2
+ export interface DiscordProcess {
3
+ pid: number;
4
+ exe: string;
5
+ }
6
+ export interface KillResult {
7
+ found: DiscordProcess[];
8
+ killed: number[];
9
+ forced: number[];
10
+ }
11
+ /**
12
+ * Check whether a resolved binary path belongs to a Discord installation.
13
+ * Matches against known install locations + the user's configured binary.
14
+ */
15
+ export declare function isDiscordBinary(resolvedPath: string, configuredBinary?: string | null): boolean;
16
+ /**
17
+ * Find running Discord processes on Linux by inspecting `/proc/<pid>/exe`.
18
+ * Only returns processes whose binary resolves to a known Discord path.
19
+ *
20
+ * On non-Linux platforms, falls back to `ps` output parsing (macOS) or
21
+ * returns an empty array (Windows — handled separately by the caller).
22
+ */
23
+ export declare function findDiscordProcesses(fs: FileSystem, shell: ShellRunner, configuredBinary?: string | null): Promise<DiscordProcess[]>;
24
+ /**
25
+ * Kill all running Discord processes with SIGTERM → wait → SIGKILL escalation.
26
+ *
27
+ * 1. Discovers processes via `/proc/<pid>/exe` (Linux) or `ps` (macOS)
28
+ * 2. Sends SIGTERM to all matching PIDs
29
+ * 3. Waits up to 5 s for graceful exit (polling every 250 ms)
30
+ * 4. Sends SIGKILL to any survivors
31
+ * 5. Waits up to 2 s for forced exit
32
+ *
33
+ * On Windows, falls back to `taskkill /F` against the configured binary name.
34
+ */
35
+ export declare function killDiscordProcesses(fs: FileSystem, shell: ShellRunner, configuredBinary?: string | null): Promise<KillResult>;
36
+ //# sourceMappingURL=discord.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"discord.d.ts","sourceRoot":"","sources":["../../src/core/discord.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAI1D,MAAM,WAAW,cAAc;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,UAAU;IACvB,KAAK,EAAE,cAAc,EAAE,CAAC;IACxB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,MAAM,EAAE,MAAM,EAAE,CAAC;CACpB;AAgCD;;;GAGG;AACH,wBAAgB,eAAe,CAAC,YAAY,EAAE,MAAM,EAAE,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAG/F;AAID;;;;;;GAMG;AACH,wBAAsB,oBAAoB,CACtC,EAAE,EAAE,UAAU,EACd,KAAK,EAAE,WAAW,EAClB,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,GACjC,OAAO,CAAC,cAAc,EAAE,CAAC,CAQ3B;AAkGD;;;;;;;;;;GAUG;AACH,wBAAsB,oBAAoB,CACtC,EAAE,EAAE,UAAU,EACd,KAAK,EAAE,WAAW,EAClB,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,GACjC,OAAO,CAAC,UAAU,CAAC,CA8BrB"}