@kamaras/venpm 0.3.0 → 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.
- package/README.md +11 -5
- package/actions/publish-index/action.yml +1 -1
- package/dist/cli/create.js +1 -1
- package/dist/cli/create.js.map +1 -1
- package/dist/cli/inject.d.ts +8 -0
- package/dist/cli/inject.d.ts.map +1 -1
- package/dist/cli/inject.js +78 -11
- package/dist/cli/inject.js.map +1 -1
- package/dist/core/errors.js +1 -1
- package/dist/core/errors.js.map +1 -1
- package/dist/core/fetcher.d.ts.map +1 -1
- package/dist/core/fetcher.js +14 -0
- package/dist/core/fetcher.js.map +1 -1
- package/dist/core/inject.d.ts +2 -2
- package/dist/core/inject.d.ts.map +1 -1
- package/dist/core/inject.js +106 -37
- package/dist/core/inject.js.map +1 -1
- package/dist/core/json.d.ts +11 -0
- package/dist/core/json.d.ts.map +1 -0
- package/dist/core/json.js +14 -0
- package/dist/core/json.js.map +1 -0
- package/dist/core/log.d.ts +14 -0
- package/dist/core/log.d.ts.map +1 -0
- package/dist/core/log.js +24 -0
- package/dist/core/log.js.map +1 -0
- package/package.json +1 -1
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
|
-
|
|
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.
|
|
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
|
-
|
|
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
|
|
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
|
package/dist/cli/create.js
CHANGED
|
@@ -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);
|
package/dist/cli/create.js.map
CHANGED
|
@@ -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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"}
|
package/dist/cli/inject.d.ts
CHANGED
|
@@ -1,4 +1,12 @@
|
|
|
1
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>;
|
|
2
9
|
export declare function registerInjectCommand(program: Command): void;
|
|
3
10
|
export declare function registerUninjectCommand(program: Command): void;
|
|
11
|
+
export {};
|
|
4
12
|
//# sourceMappingURL=inject.d.ts.map
|
package/dist/cli/inject.d.ts.map
CHANGED
|
@@ -1 +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;
|
|
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"}
|
package/dist/cli/inject.js
CHANGED
|
@@ -1,6 +1,13 @@
|
|
|
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";
|
|
1
5
|
import { DISCORD_BRANCHES, detectDiscordApps, getInjectStatus, injectVencord, uninjectVencord, InjectError, } from "../core/inject.js";
|
|
2
6
|
import { ErrorCode, makeError, exitCodeForError } from "../core/errors.js";
|
|
3
7
|
import { createRealIOContext } from "./context.js";
|
|
8
|
+
function supportsNativeInject(platform) {
|
|
9
|
+
return platform === "darwin" || platform === "linux";
|
|
10
|
+
}
|
|
4
11
|
function mapInjectErrorCode(code) {
|
|
5
12
|
switch (code) {
|
|
6
13
|
case "PLATFORM_UNSUPPORTED": return ErrorCode.PLATFORM_UNSUPPORTED;
|
|
@@ -10,18 +17,31 @@ function mapInjectErrorCode(code) {
|
|
|
10
17
|
case "INJECT_FAILED": return ErrorCode.INJECT_FAILED;
|
|
11
18
|
}
|
|
12
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
|
+
}
|
|
13
31
|
async function resolveTarget(fs, branch) {
|
|
14
32
|
const apps = await detectDiscordApps(fs);
|
|
15
33
|
if (apps.length === 0) {
|
|
16
|
-
if (process.platform
|
|
34
|
+
if (!supportsNativeInject(process.platform)) {
|
|
17
35
|
return {
|
|
18
36
|
error: ErrorCode.PLATFORM_UNSUPPORTED,
|
|
19
|
-
message: `Native inject is
|
|
37
|
+
message: `Native inject is not supported on ${process.platform}`,
|
|
20
38
|
};
|
|
21
39
|
}
|
|
22
40
|
return {
|
|
23
41
|
error: ErrorCode.DISCORD_NOT_FOUND,
|
|
24
|
-
message:
|
|
42
|
+
message: process.platform === "darwin"
|
|
43
|
+
? "No Discord.app found in /Applications"
|
|
44
|
+
: "No Discord install found in standard Linux paths",
|
|
25
45
|
};
|
|
26
46
|
}
|
|
27
47
|
if (!branch) {
|
|
@@ -40,20 +60,40 @@ async function resolveTarget(fs, branch) {
|
|
|
40
60
|
if (!match) {
|
|
41
61
|
return {
|
|
42
62
|
error: ErrorCode.DISCORD_NOT_FOUND,
|
|
43
|
-
message:
|
|
63
|
+
message: process.platform === "darwin"
|
|
64
|
+
? `Discord ${requested} not found in /Applications`
|
|
65
|
+
: `Discord ${requested} not found in standard Linux paths`,
|
|
44
66
|
};
|
|
45
67
|
}
|
|
46
68
|
return match;
|
|
47
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
|
+
}
|
|
48
84
|
export function registerInjectCommand(program) {
|
|
49
85
|
program
|
|
50
86
|
.command("inject")
|
|
51
|
-
.description("Patch Discord
|
|
87
|
+
.description("Patch Discord to load Vencord (native, no external installer)")
|
|
52
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")
|
|
53
91
|
.action(async (cmdOptions) => {
|
|
54
92
|
const globalOpts = program.opts();
|
|
55
93
|
const ctx = createRealIOContext(globalOpts);
|
|
56
94
|
const { renderer } = ctx;
|
|
95
|
+
const configPath = globalOpts.config ?? getConfigPath();
|
|
96
|
+
const config = await loadConfig(ctx.fs, configPath);
|
|
57
97
|
const target = await resolveTarget(ctx.fs, cmdOptions.branch);
|
|
58
98
|
if ("error" in target) {
|
|
59
99
|
renderer.error(makeError(target.error, target.message));
|
|
@@ -61,29 +101,52 @@ export function registerInjectCommand(program) {
|
|
|
61
101
|
process.exitCode = exitCodeForError(target.error);
|
|
62
102
|
return;
|
|
63
103
|
}
|
|
104
|
+
const discordBinary = config.discord.binary ?? await detectDiscordBinary(ctx.fs);
|
|
105
|
+
const shouldRestart = await shouldRestartAfterInject(cmdOptions, config.discord.restart, discordBinary, ctx.prompter.confirm);
|
|
64
106
|
const p = renderer.progress("inject", `Injecting Vencord into ${target.branch} (${target.appPath})...`);
|
|
65
107
|
try {
|
|
66
108
|
const result = await injectVencord(ctx.fs, target);
|
|
67
109
|
p.succeed(`Patched ${result.branch} — shim at ${result.shimAsar}`);
|
|
68
110
|
renderer.text(`Original asar backed up to ${result.backupPath}`);
|
|
69
|
-
|
|
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
|
+
}
|
|
70
128
|
renderer.finish(true, {
|
|
71
129
|
branch: result.branch,
|
|
72
130
|
appPath: result.appPath,
|
|
73
131
|
shimAsar: result.shimAsar,
|
|
74
132
|
backupPath: result.backupPath,
|
|
133
|
+
restarted,
|
|
75
134
|
});
|
|
76
135
|
}
|
|
77
136
|
catch (err) {
|
|
78
137
|
p.fail("Inject failed");
|
|
79
138
|
if (err instanceof InjectError) {
|
|
80
139
|
const mapped = mapInjectErrorCode(err.code);
|
|
81
|
-
renderer.error(makeError(mapped, err.message
|
|
140
|
+
renderer.error(makeError(mapped, err.message, {
|
|
141
|
+
suggestion: appManagementSuggestionForInjectError(err),
|
|
142
|
+
}));
|
|
82
143
|
renderer.finish(false);
|
|
83
144
|
process.exitCode = exitCodeForError(mapped);
|
|
84
145
|
return;
|
|
85
146
|
}
|
|
86
|
-
renderer.error(makeError(ErrorCode.INJECT_FAILED, err.message
|
|
147
|
+
renderer.error(makeError(ErrorCode.INJECT_FAILED, err.message, {
|
|
148
|
+
suggestion: appManagementSuggestionForInjectError(err),
|
|
149
|
+
}));
|
|
87
150
|
renderer.finish(false);
|
|
88
151
|
process.exitCode = exitCodeForError(ErrorCode.INJECT_FAILED);
|
|
89
152
|
}
|
|
@@ -92,7 +155,7 @@ export function registerInjectCommand(program) {
|
|
|
92
155
|
export function registerUninjectCommand(program) {
|
|
93
156
|
program
|
|
94
157
|
.command("uninject")
|
|
95
|
-
.description("Remove the Vencord patch from Discord
|
|
158
|
+
.description("Remove the Vencord patch from Discord")
|
|
96
159
|
.option("-b, --branch <branch>", "Discord branch: stable (default), canary, ptb")
|
|
97
160
|
.action(async (cmdOptions) => {
|
|
98
161
|
const globalOpts = program.opts();
|
|
@@ -124,12 +187,16 @@ export function registerUninjectCommand(program) {
|
|
|
124
187
|
p.fail("Uninject failed");
|
|
125
188
|
if (err instanceof InjectError) {
|
|
126
189
|
const mapped = mapInjectErrorCode(err.code);
|
|
127
|
-
renderer.error(makeError(mapped, err.message
|
|
190
|
+
renderer.error(makeError(mapped, err.message, {
|
|
191
|
+
suggestion: appManagementSuggestionForInjectError(err),
|
|
192
|
+
}));
|
|
128
193
|
renderer.finish(false);
|
|
129
194
|
process.exitCode = exitCodeForError(mapped);
|
|
130
195
|
return;
|
|
131
196
|
}
|
|
132
|
-
renderer.error(makeError(ErrorCode.INJECT_FAILED, err.message
|
|
197
|
+
renderer.error(makeError(ErrorCode.INJECT_FAILED, err.message, {
|
|
198
|
+
suggestion: appManagementSuggestionForInjectError(err),
|
|
199
|
+
}));
|
|
133
200
|
renderer.finish(false);
|
|
134
201
|
process.exitCode = exitCodeForError(ErrorCode.INJECT_FAILED);
|
|
135
202
|
}
|
package/dist/cli/inject.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inject.js","sourceRoot":"","sources":["../../src/cli/inject.ts"],"names":[],"mappings":"AAEA,OAAO,EACH,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,EACf,aAAa,EACb,eAAe,EACf,WAAW,GAGd,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,gBAAgB,EAAuB,MAAM,mBAAmB,CAAC;AAChG,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"inject.js","sourceRoot":"","sources":["../../src/cli/inject.ts"],"names":[],"mappings":"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"}
|
package/dist/core/errors.js
CHANGED
|
@@ -34,7 +34,7 @@ const DEFAULT_SUGGESTIONS = {
|
|
|
34
34
|
INJECT_FAILED: "Run: venpm inject --verbose to see details",
|
|
35
35
|
ALREADY_INJECTED: "Run: venpm uninject to remove the existing patch",
|
|
36
36
|
NOT_INJECTED: "Run: venpm inject to patch Discord",
|
|
37
|
-
PLATFORM_UNSUPPORTED: "Native inject
|
|
37
|
+
PLATFORM_UNSUPPORTED: "Native inject supports macOS and standard Linux Discord installs; fall back to Vencord's pnpm inject on other platforms",
|
|
38
38
|
};
|
|
39
39
|
export const ExitCode = {
|
|
40
40
|
SUCCESS: 0,
|
package/dist/core/errors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/core/errors.ts"],"names":[],"mappings":"AAQA,MAAM,CAAC,MAAM,SAAS,GAAG;IACrB,iBAAiB,EAAE,mBAAmB;IACtC,gBAAgB,EAAE,kBAAkB;IACpC,gBAAgB,EAAE,kBAAkB;IACpC,oBAAoB,EAAE,sBAAsB;IAC5C,iBAAiB,EAAE,mBAAmB;IACtC,iBAAiB,EAAE,mBAAmB;IACtC,kBAAkB,EAAE,oBAAoB;IACxC,mBAAmB,EAAE,qBAAqB;IAC1C,iBAAiB,EAAE,mBAAmB;IACtC,cAAc,EAAE,gBAAgB;IAChC,YAAY,EAAE,cAAc;IAC5B,iBAAiB,EAAE,mBAAmB;IACtC,eAAe,EAAE,iBAAiB;IAClC,aAAa,EAAE,eAAe;IAC9B,gBAAgB,EAAE,kBAAkB;IACpC,YAAY,EAAE,cAAc;IAC5B,oBAAoB,EAAE,sBAAsB;CACtC,CAAC;AAIX,MAAM,mBAAmB,GAA2B;IAChD,iBAAiB,EAAE,qDAAqD;IACxE,gBAAgB,EAAE,qDAAqD;IACvE,gBAAgB,EAAE,+CAA+C;IACjE,oBAAoB,EAAE,0CAA0C;IAChE,iBAAiB,EAAE,iCAAiC;IACpD,iBAAiB,EAAE,+BAA+B;IAClD,kBAAkB,EAAE,6BAA6B;IACjD,mBAAmB,EAAE,mCAAmC;IACxD,iBAAiB,EAAE,oDAAoD;IACvE,cAAc,EAAE,kDAAkD;IAClE,YAAY,EAAE,6CAA6C;IAC3D,iBAAiB,EAAE,uDAAuD;IAC1E,eAAe,EAAE,qDAAqD;IACtE,aAAa,EAAE,4CAA4C;IAC3D,gBAAgB,EAAE,kDAAkD;IACpE,YAAY,EAAE,oCAAoC;IAClD,oBAAoB,EAAE,
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/core/errors.ts"],"names":[],"mappings":"AAQA,MAAM,CAAC,MAAM,SAAS,GAAG;IACrB,iBAAiB,EAAE,mBAAmB;IACtC,gBAAgB,EAAE,kBAAkB;IACpC,gBAAgB,EAAE,kBAAkB;IACpC,oBAAoB,EAAE,sBAAsB;IAC5C,iBAAiB,EAAE,mBAAmB;IACtC,iBAAiB,EAAE,mBAAmB;IACtC,kBAAkB,EAAE,oBAAoB;IACxC,mBAAmB,EAAE,qBAAqB;IAC1C,iBAAiB,EAAE,mBAAmB;IACtC,cAAc,EAAE,gBAAgB;IAChC,YAAY,EAAE,cAAc;IAC5B,iBAAiB,EAAE,mBAAmB;IACtC,eAAe,EAAE,iBAAiB;IAClC,aAAa,EAAE,eAAe;IAC9B,gBAAgB,EAAE,kBAAkB;IACpC,YAAY,EAAE,cAAc;IAC5B,oBAAoB,EAAE,sBAAsB;CACtC,CAAC;AAIX,MAAM,mBAAmB,GAA2B;IAChD,iBAAiB,EAAE,qDAAqD;IACxE,gBAAgB,EAAE,qDAAqD;IACvE,gBAAgB,EAAE,+CAA+C;IACjE,oBAAoB,EAAE,0CAA0C;IAChE,iBAAiB,EAAE,iCAAiC;IACpD,iBAAiB,EAAE,+BAA+B;IAClD,kBAAkB,EAAE,6BAA6B;IACjD,mBAAmB,EAAE,mCAAmC;IACxD,iBAAiB,EAAE,oDAAoD;IACvE,cAAc,EAAE,kDAAkD;IAClE,YAAY,EAAE,6CAA6C;IAC3D,iBAAiB,EAAE,uDAAuD;IAC1E,eAAe,EAAE,qDAAqD;IACtE,aAAa,EAAE,4CAA4C;IAC3D,gBAAgB,EAAE,kDAAkD;IACpE,YAAY,EAAE,oCAAoC;IAClD,oBAAoB,EAAE,yHAAyH;CAClJ,CAAC;AAEF,MAAM,CAAC,MAAM,QAAQ,GAAG;IACpB,OAAO,EAAE,CAAC;IACV,aAAa,EAAE,CAAC;IAChB,WAAW,EAAE,CAAC;IACd,SAAS,EAAE,CAAC;CACN,CAAC;AAEX,MAAM,UAAU,gBAAgB,CAAC,IAAoB;IACjD,QAAQ,IAAI,EAAE,CAAC;QACX,KAAK,SAAS,CAAC,iBAAiB,CAAC;QACjC,KAAK,SAAS,CAAC,iBAAiB,CAAC;QACjC,KAAK,SAAS,CAAC,kBAAkB,CAAC;QAClC,KAAK,SAAS,CAAC,YAAY,CAAC;QAC5B,KAAK,SAAS,CAAC,iBAAiB,CAAC;QACjC,KAAK,SAAS,CAAC,oBAAoB;YAC/B,OAAO,QAAQ,CAAC,SAAS,CAAC;QAC9B;YACI,OAAO,QAAQ,CAAC,aAAa,CAAC;IACtC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,SAAS,CACrB,IAAoB,EACpB,OAAe,EACf,OAA0E;IAE1E,IAAI,UAAU,GAAG,OAAO,EAAE,UAAU,CAAC;IAErC,IAAI,CAAC,UAAU,IAAI,OAAO,EAAE,UAAU,IAAI,OAAO,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtE,IAAI,OAAO,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAClC,UAAU,GAAG,iBAAiB,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1D,CAAC;aAAM,CAAC;YACJ,UAAU,GAAG,wBAAwB,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACzE,CAAC;IACL,CAAC;IAED,IAAI,CAAC,UAAU,EAAE,CAAC;QACd,UAAU,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;IAC3C,CAAC;IAED,OAAO;QACH,IAAI;QACJ,OAAO;QACP,UAAU;QACV,UAAU,EAAE,OAAO,EAAE,UAAU;QAC/B,OAAO,EAAE,OAAO,EAAE,OAAO;KAC5B,CAAC;AACN,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetcher.d.ts","sourceRoot":"","sources":["../../src/core/fetcher.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACtF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAI9C,MAAM,WAAW,WAAW;IACxB,MAAM,EAAE,WAAW,CAAC;IACpB,uDAAuD;IACvD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,4EAA4E;IAC5E,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB;AAID,wBAAsB,WAAW,CAC7B,GAAG,EAAE,SAAS,EACd,EAAE,EAAE,UAAU,EACd,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAO,GAC9C,OAAO,CAAC,WAAW,CAAC,CAoCtB;AAID,wBAAsB,eAAe,CACjC,IAAI,EAAE,UAAU,EAChB,EAAE,EAAE,UAAU,EACd,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,MAAM,GACb,OAAO,CAAC,WAAW,CAAC,CAqBtB;AAID,wBAAsB,aAAa,CAC/B,EAAE,EAAE,UAAU,EACd,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,GACb,OAAO,CAAC,WAAW,CAAC,
|
|
1
|
+
{"version":3,"file":"fetcher.d.ts","sourceRoot":"","sources":["../../src/core/fetcher.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACtF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAI9C,MAAM,WAAW,WAAW;IACxB,MAAM,EAAE,WAAW,CAAC;IACpB,uDAAuD;IACvD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,4EAA4E;IAC5E,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB;AAID,wBAAsB,WAAW,CAC7B,GAAG,EAAE,SAAS,EACd,EAAE,EAAE,UAAU,EACd,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAO,GAC9C,OAAO,CAAC,WAAW,CAAC,CAoCtB;AAID,wBAAsB,eAAe,CACjC,IAAI,EAAE,UAAU,EAChB,EAAE,EAAE,UAAU,EACd,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,MAAM,GACb,OAAO,CAAC,WAAW,CAAC,CAqBtB;AAID,wBAAsB,aAAa,CAC/B,EAAE,EAAE,UAAU,EACd,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,GACb,OAAO,CAAC,WAAW,CAAC,CAuBtB;AAID,wBAAsB,WAAW,CAC7B,KAAK,EAAE,gBAAgB,EACvB,aAAa,EAAE,MAAM,EACrB,GAAG,EAAE;IAAE,EAAE,EAAE,UAAU,CAAC;IAAC,GAAG,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,UAAU,CAAA;CAAE,GAC1D,OAAO,CAAC,WAAW,CAAC,CAqCtB"}
|
package/dist/core/fetcher.js
CHANGED
|
@@ -55,6 +55,20 @@ export async function fetchViaLocal(fs, localPath, dest) {
|
|
|
55
55
|
if (!found) {
|
|
56
56
|
throw new Error(`Local path not found: ${localPath}`);
|
|
57
57
|
}
|
|
58
|
+
try {
|
|
59
|
+
const destStat = await fs.lstat(dest);
|
|
60
|
+
if (destStat.isSymbolicLink()) {
|
|
61
|
+
await fs.rm(dest, { force: true });
|
|
62
|
+
}
|
|
63
|
+
else {
|
|
64
|
+
throw new Error(`Destination already exists and is not a symlink: ${dest}`);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
catch (err) {
|
|
68
|
+
if (err.code !== "ENOENT") {
|
|
69
|
+
throw err;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
58
72
|
await fs.symlink(localPath, dest);
|
|
59
73
|
return { method: "local" };
|
|
60
74
|
}
|
package/dist/core/fetcher.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetcher.js","sourceRoot":"","sources":["../../src/core/fetcher.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"fetcher.js","sourceRoot":"","sources":["../../src/core/fetcher.ts"],"names":[],"mappings":"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"}
|
package/dist/core/inject.d.ts
CHANGED
|
@@ -34,13 +34,13 @@ export type InjectErrorCode = "PLATFORM_UNSUPPORTED" | "DISCORD_NOT_FOUND" | "AL
|
|
|
34
34
|
*/
|
|
35
35
|
export declare function detectDiscordApps(fs: FileSystem, platform?: NodeJS.Platform): Promise<InjectTarget[]>;
|
|
36
36
|
/**
|
|
37
|
-
* Inspect an on-disk Discord
|
|
37
|
+
* Inspect an on-disk Discord install and report injection status. Does not
|
|
38
38
|
* modify anything. Returns a detailed breakdown so callers can decide
|
|
39
39
|
* whether to re-inject, warn, or abort.
|
|
40
40
|
*/
|
|
41
41
|
export declare function getInjectStatus(fs: FileSystem, target: InjectTarget): Promise<InjectStatus>;
|
|
42
42
|
/**
|
|
43
|
-
* Patch a Discord
|
|
43
|
+
* Patch a Discord install so Electron loads Vencord's patcher before the
|
|
44
44
|
* original asar. Uses the asar-shim layout:
|
|
45
45
|
*
|
|
46
46
|
* 1. Rename Discord's app.asar → _app.asar
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inject.d.ts","sourceRoot":"","sources":["../../src/core/inject.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAI7C,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,QAAQ,GAAG,KAAK,CAAC;AAExD,eAAO,MAAM,gBAAgB,EAAE,aAAa,EAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"inject.d.ts","sourceRoot":"","sources":["../../src/core/inject.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAI7C,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,QAAQ,GAAG,KAAK,CAAC;AAExD,eAAO,MAAM,gBAAgB,EAAE,aAAa,EAAgC,CAAC;AAsB7E,MAAM,WAAW,YAAY;IACzB,MAAM,EAAE,aAAa,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC;CAC7B;AAED,MAAM,WAAW,YAAY;IACzB,QAAQ,EAAE,OAAO,CAAC;IAClB,yEAAyE;IACzE,WAAW,EAAE,OAAO,CAAC;IACrB,yEAAyE;IACzE,aAAa,EAAE,OAAO,CAAC;IACvB,+DAA+D;IAC/D,oBAAoB,EAAE,OAAO,CAAC;CACjC;AAED,MAAM,WAAW,YAAY;IACzB,MAAM,EAAE,aAAa,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;CACtB;AAED,qBAAa,WAAY,SAAQ,KAAK;IACf,IAAI,EAAE,eAAe;gBAArB,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM;CAI5D;AAED,MAAM,MAAM,eAAe,GACrB,sBAAsB,GACtB,mBAAmB,GACnB,kBAAkB,GAClB,cAAc,GACd,eAAe,CAAC;AA0CtB;;;;;GAKG;AACH,wBAAsB,iBAAiB,CACnC,EAAE,EAAE,UAAU,EACd,QAAQ,GAAE,MAAM,CAAC,QAA2B,GAC7C,OAAO,CAAC,YAAY,EAAE,CAAC,CA8BzB;AA2CD;;;;GAIG;AACH,wBAAsB,eAAe,CACjC,EAAE,EAAE,UAAU,EACd,MAAM,EAAE,YAAY,GACrB,OAAO,CAAC,YAAY,CAAC,CAqBvB;AAiDD;;;;;;;;;;;GAWG;AACH,wBAAsB,aAAa,CAC/B,EAAE,EAAE,UAAU,EACd,MAAM,EAAE,YAAY,GACrB,OAAO,CAAC,YAAY,CAAC,CAoEvB;AAED;;;GAGG;AACH,wBAAsB,eAAe,CACjC,EAAE,EAAE,UAAU,EACd,MAAM,EAAE,YAAY,GACrB,OAAO,CAAC,YAAY,CAAC,CA8CvB"}
|
package/dist/core/inject.js
CHANGED
|
@@ -1,18 +1,23 @@
|
|
|
1
1
|
import { join } from "node:path";
|
|
2
2
|
import { mkdtemp, writeFile, rm } from "node:fs/promises";
|
|
3
|
-
import { tmpdir } from "node:os";
|
|
4
|
-
import { createPackage } from "@electron/asar";
|
|
3
|
+
import { homedir, tmpdir } from "node:os";
|
|
4
|
+
import { createPackage, extractFile } from "@electron/asar";
|
|
5
5
|
export const DISCORD_BRANCHES = ["stable", "canary", "ptb"];
|
|
6
|
-
/**
|
|
7
|
-
* Platform-specific Discord.app paths, keyed by branch. Only macOS is
|
|
8
|
-
* currently supported by the native inject; Linux and Windows should continue
|
|
9
|
-
* to use Vencord's bundled `pnpm inject`.
|
|
10
|
-
*/
|
|
11
6
|
const MACOS_BRANCH_PATHS = {
|
|
12
7
|
stable: "/Applications/Discord.app",
|
|
13
8
|
canary: "/Applications/Discord Canary.app",
|
|
14
9
|
ptb: "/Applications/Discord PTB.app",
|
|
15
10
|
};
|
|
11
|
+
const LINUX_BRANCH_PATHS = {
|
|
12
|
+
stable: ["/opt/discord", "/usr/lib/discord", "/usr/share/discord"],
|
|
13
|
+
canary: ["/opt/discord-canary", "/usr/lib/discord-canary", "/usr/share/discord-canary"],
|
|
14
|
+
ptb: ["/opt/discord-ptb", "/usr/lib/discord-ptb", "/usr/share/discord-ptb"],
|
|
15
|
+
};
|
|
16
|
+
const LINUX_USER_BRANCH_DIRS = {
|
|
17
|
+
stable: [join(homedir(), ".config", "discord")],
|
|
18
|
+
canary: [join(homedir(), ".config", "discordcanary")],
|
|
19
|
+
ptb: [join(homedir(), ".config", "discordptb")],
|
|
20
|
+
};
|
|
16
21
|
export class InjectError extends Error {
|
|
17
22
|
code;
|
|
18
23
|
constructor(code, message) {
|
|
@@ -23,9 +28,9 @@ export class InjectError extends Error {
|
|
|
23
28
|
}
|
|
24
29
|
// ─── Path helpers ────────────────────────────────────────────────────────────
|
|
25
30
|
/**
|
|
26
|
-
* Filesystem layout inside Discord
|
|
27
|
-
*
|
|
28
|
-
*
|
|
31
|
+
* Filesystem layout inside Discord (asar-shim mode):
|
|
32
|
+
* app.asar — OUR shim, packed as an asar
|
|
33
|
+
* _app.asar — Discord's original, renamed
|
|
29
34
|
*
|
|
30
35
|
* Electron prefers app.asar over app/, so the shim must be packed as an asar
|
|
31
36
|
* file for Electron to load it. When the shim runs, `require.main.path` ends
|
|
@@ -38,8 +43,13 @@ export class InjectError extends Error {
|
|
|
38
43
|
* took precedence, so Vencord never actually loaded. Confirmed empirically:
|
|
39
44
|
* moving app.asar aside made the directory-shim load.
|
|
40
45
|
*/
|
|
41
|
-
function
|
|
42
|
-
|
|
46
|
+
function isSupportedPlatform(platform) {
|
|
47
|
+
return platform === "darwin" || platform === "linux";
|
|
48
|
+
}
|
|
49
|
+
function discordPaths(target) {
|
|
50
|
+
const resources = target.platform === "darwin"
|
|
51
|
+
? join(target.appPath, "Contents", "Resources")
|
|
52
|
+
: join(target.appPath, "resources");
|
|
43
53
|
return {
|
|
44
54
|
resources,
|
|
45
55
|
/** Post-inject: OUR shim asar (pre-inject: Discord's original). */
|
|
@@ -58,35 +68,88 @@ function macosPaths(appPath) {
|
|
|
58
68
|
* that as "not supported" rather than "none installed".
|
|
59
69
|
*/
|
|
60
70
|
export async function detectDiscordApps(fs, platform = process.platform) {
|
|
61
|
-
if (platform
|
|
71
|
+
if (!isSupportedPlatform(platform))
|
|
62
72
|
return [];
|
|
63
73
|
const found = [];
|
|
74
|
+
if (platform === "darwin") {
|
|
75
|
+
for (const branch of DISCORD_BRANCHES) {
|
|
76
|
+
const appPath = MACOS_BRANCH_PATHS[branch];
|
|
77
|
+
if (await fs.exists(appPath)) {
|
|
78
|
+
found.push({ branch, appPath, platform });
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
return found;
|
|
82
|
+
}
|
|
64
83
|
for (const branch of DISCORD_BRANCHES) {
|
|
65
|
-
const appPath
|
|
66
|
-
|
|
67
|
-
|
|
84
|
+
for (const appPath of LINUX_BRANCH_PATHS[branch]) {
|
|
85
|
+
if (await fs.exists(join(appPath, "resources", "app.asar"))) {
|
|
86
|
+
found.push({ branch, appPath, platform });
|
|
87
|
+
break;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
if (!found.some(app => app.branch === branch)) {
|
|
91
|
+
const userAppPath = await detectLinuxUserAppPath(fs, branch);
|
|
92
|
+
if (userAppPath) {
|
|
93
|
+
found.push({ branch, appPath: userAppPath, platform });
|
|
94
|
+
}
|
|
68
95
|
}
|
|
69
96
|
}
|
|
70
97
|
return found;
|
|
71
98
|
}
|
|
99
|
+
async function detectLinuxUserAppPath(fs, branch) {
|
|
100
|
+
for (const baseDir of LINUX_USER_BRANCH_DIRS[branch]) {
|
|
101
|
+
if (!(await fs.exists(baseDir)))
|
|
102
|
+
continue;
|
|
103
|
+
let entries;
|
|
104
|
+
try {
|
|
105
|
+
entries = await fs.readdir(baseDir);
|
|
106
|
+
}
|
|
107
|
+
catch {
|
|
108
|
+
continue;
|
|
109
|
+
}
|
|
110
|
+
const appDirs = entries
|
|
111
|
+
.filter(entry => entry.startsWith("app-"))
|
|
112
|
+
.sort((a, b) => a.localeCompare(b, undefined, { numeric: true }));
|
|
113
|
+
for (const entry of appDirs.reverse()) {
|
|
114
|
+
const appPath = join(baseDir, entry);
|
|
115
|
+
if (await fs.exists(join(appPath, "resources", "app.asar"))) {
|
|
116
|
+
return appPath;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
return null;
|
|
121
|
+
}
|
|
122
|
+
function isVenpmShimAsar(asarPath) {
|
|
123
|
+
try {
|
|
124
|
+
const pkg = JSON.parse(extractFile(asarPath, "package.json").toString());
|
|
125
|
+
if (pkg.main !== "index.js")
|
|
126
|
+
return false;
|
|
127
|
+
const indexJs = extractFile(asarPath, "index.js").toString();
|
|
128
|
+
return indexJs.includes("Generated by venpm inject") && indexJs.includes("patcher.js");
|
|
129
|
+
}
|
|
130
|
+
catch {
|
|
131
|
+
return false;
|
|
132
|
+
}
|
|
133
|
+
}
|
|
72
134
|
/**
|
|
73
|
-
* Inspect an on-disk Discord
|
|
135
|
+
* Inspect an on-disk Discord install and report injection status. Does not
|
|
74
136
|
* modify anything. Returns a detailed breakdown so callers can decide
|
|
75
137
|
* whether to re-inject, warn, or abort.
|
|
76
138
|
*/
|
|
77
139
|
export async function getInjectStatus(fs, target) {
|
|
78
|
-
if (target.platform
|
|
140
|
+
if (!isSupportedPlatform(target.platform)) {
|
|
79
141
|
throw new InjectError("PLATFORM_UNSUPPORTED", `Native inject is not supported on ${target.platform}`);
|
|
80
142
|
}
|
|
81
|
-
const p =
|
|
143
|
+
const p = discordPaths(target);
|
|
82
144
|
const [asarPresent, backupPresent, legacyShimDirPresent] = await Promise.all([
|
|
83
145
|
fs.exists(p.asar),
|
|
84
146
|
fs.exists(p.backup),
|
|
85
147
|
fs.exists(p.legacyShimDir),
|
|
86
148
|
]);
|
|
87
|
-
// Injected iff
|
|
88
|
-
//
|
|
89
|
-
|
|
149
|
+
// Injected iff the current app.asar is our shim and the original backup
|
|
150
|
+
// exists. Some broken/stale states have both files while app.asar is still
|
|
151
|
+
// stock Discord, so mere file presence is not enough.
|
|
152
|
+
const injected = asarPresent && backupPresent && isVenpmShimAsar(p.asar);
|
|
90
153
|
return { injected, asarPresent, backupPresent, legacyShimDirPresent };
|
|
91
154
|
}
|
|
92
155
|
// ─── Inject / uninject ───────────────────────────────────────────────────────
|
|
@@ -102,11 +165,14 @@ function shimPackageJson() {
|
|
|
102
165
|
* asarName = "_app.asar" and loads Discord's renamed original itself. This
|
|
103
166
|
* file does not need to chain to _app.asar manually.
|
|
104
167
|
*/
|
|
105
|
-
function shimIndexJs() {
|
|
168
|
+
function shimIndexJs(platform) {
|
|
169
|
+
const distParts = platform === "darwin"
|
|
170
|
+
? '"Library", "Application Support", "Vencord", "dist", "patcher.js"'
|
|
171
|
+
: '".config", "Vencord", "dist", "patcher.js"';
|
|
106
172
|
return `// Generated by venpm inject — do not edit.
|
|
107
173
|
const { join } = require("path");
|
|
108
174
|
const { homedir } = require("os");
|
|
109
|
-
const vencordDist = join(homedir(),
|
|
175
|
+
const vencordDist = join(homedir(), ${distParts});
|
|
110
176
|
require(vencordDist);
|
|
111
177
|
`;
|
|
112
178
|
}
|
|
@@ -118,11 +184,11 @@ require(vencordDist);
|
|
|
118
184
|
* materialise the two shim files to a temp dir first rather than using
|
|
119
185
|
* the stream API (simpler, no byte-counting gymnastics).
|
|
120
186
|
*/
|
|
121
|
-
async function packShimAsar(destAsar) {
|
|
187
|
+
async function packShimAsar(destAsar, platform) {
|
|
122
188
|
const tmp = await mkdtemp(join(tmpdir(), "venpm-inject-"));
|
|
123
189
|
try {
|
|
124
190
|
await writeFile(join(tmp, "package.json"), shimPackageJson(), "utf8");
|
|
125
|
-
await writeFile(join(tmp, "index.js"), shimIndexJs(), "utf8");
|
|
191
|
+
await writeFile(join(tmp, "index.js"), shimIndexJs(platform), "utf8");
|
|
126
192
|
await createPackage(tmp, destAsar);
|
|
127
193
|
}
|
|
128
194
|
finally {
|
|
@@ -130,7 +196,7 @@ async function packShimAsar(destAsar) {
|
|
|
130
196
|
}
|
|
131
197
|
}
|
|
132
198
|
/**
|
|
133
|
-
* Patch a Discord
|
|
199
|
+
* Patch a Discord install so Electron loads Vencord's patcher before the
|
|
134
200
|
* original asar. Uses the asar-shim layout:
|
|
135
201
|
*
|
|
136
202
|
* 1. Rename Discord's app.asar → _app.asar
|
|
@@ -142,12 +208,12 @@ async function packShimAsar(destAsar) {
|
|
|
142
208
|
* Discord launch reverts cleanly to stock behaviour.
|
|
143
209
|
*/
|
|
144
210
|
export async function injectVencord(fs, target) {
|
|
145
|
-
if (target.platform
|
|
211
|
+
if (!isSupportedPlatform(target.platform)) {
|
|
146
212
|
throw new InjectError("PLATFORM_UNSUPPORTED", `Native inject is not supported on ${target.platform}`);
|
|
147
213
|
}
|
|
148
|
-
const p =
|
|
214
|
+
const p = discordPaths(target);
|
|
149
215
|
if (!(await fs.exists(target.appPath))) {
|
|
150
|
-
throw new InjectError("DISCORD_NOT_FOUND", `Discord
|
|
216
|
+
throw new InjectError("DISCORD_NOT_FOUND", `Discord install not found at ${target.appPath}`);
|
|
151
217
|
}
|
|
152
218
|
const status = await getInjectStatus(fs, target);
|
|
153
219
|
if (status.injected) {
|
|
@@ -168,7 +234,7 @@ export async function injectVencord(fs, target) {
|
|
|
168
234
|
}
|
|
169
235
|
await fs.rename(p.asar, p.backup);
|
|
170
236
|
try {
|
|
171
|
-
await packShimAsar(p.asar);
|
|
237
|
+
await packShimAsar(p.asar, target.platform);
|
|
172
238
|
}
|
|
173
239
|
catch (err) {
|
|
174
240
|
// Roll back rename so Discord still launches stock.
|
|
@@ -194,10 +260,10 @@ export async function injectVencord(fs, target) {
|
|
|
194
260
|
* Also cleans up any legacy plain-directory shim.
|
|
195
261
|
*/
|
|
196
262
|
export async function uninjectVencord(fs, target) {
|
|
197
|
-
if (target.platform
|
|
263
|
+
if (!isSupportedPlatform(target.platform)) {
|
|
198
264
|
throw new InjectError("PLATFORM_UNSUPPORTED", `Native uninject is not supported on ${target.platform}`);
|
|
199
265
|
}
|
|
200
|
-
const p =
|
|
266
|
+
const p = discordPaths(target);
|
|
201
267
|
const status = await getInjectStatus(fs, target);
|
|
202
268
|
if (!status.injected && !status.legacyShimDirPresent && !status.backupPresent) {
|
|
203
269
|
throw new InjectError("NOT_INJECTED", `Discord at ${target.appPath} is not injected`);
|
|
@@ -206,12 +272,15 @@ export async function uninjectVencord(fs, target) {
|
|
|
206
272
|
if (status.legacyShimDirPresent) {
|
|
207
273
|
await fs.rm(p.legacyShimDir, { recursive: true, force: true });
|
|
208
274
|
}
|
|
209
|
-
|
|
210
|
-
|
|
275
|
+
if (!status.injected && status.backupPresent && status.asarPresent) {
|
|
276
|
+
throw new InjectError("NOT_INJECTED", `Discord at ${target.appPath} is not injected`);
|
|
277
|
+
}
|
|
278
|
+
// Remove our shim asar.
|
|
279
|
+
if (status.injected) {
|
|
211
280
|
await fs.rm(p.asar, { force: true });
|
|
212
281
|
}
|
|
213
|
-
// Restore the original.
|
|
214
|
-
if (status.backupPresent) {
|
|
282
|
+
// Restore the original when the shim is active or app.asar is missing.
|
|
283
|
+
if (status.backupPresent && (status.injected || !status.asarPresent)) {
|
|
215
284
|
await fs.rename(p.backup, p.asar);
|
|
216
285
|
}
|
|
217
286
|
return {
|
package/dist/core/inject.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inject.js","sourceRoot":"","sources":["../../src/core/inject.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"inject.js","sourceRoot":"","sources":["../../src/core/inject.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { ErrorInfo } from "./errors.js";
|
|
2
|
+
export interface JsonEnvelope<T = unknown> {
|
|
3
|
+
success: boolean;
|
|
4
|
+
error?: ErrorInfo;
|
|
5
|
+
data?: T;
|
|
6
|
+
warnings?: string[];
|
|
7
|
+
}
|
|
8
|
+
export declare function jsonSuccess<T>(data: T, warnings?: string[]): JsonEnvelope<T>;
|
|
9
|
+
export declare function jsonError(error: ErrorInfo): JsonEnvelope<never>;
|
|
10
|
+
export declare function writeJson(envelope: JsonEnvelope, write?: (s: string) => void): void;
|
|
11
|
+
//# sourceMappingURL=json.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"json.d.ts","sourceRoot":"","sources":["../../src/core/json.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,MAAM,WAAW,YAAY,CAAC,CAAC,GAAG,OAAO;IACrC,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,IAAI,CAAC,EAAE,CAAC,CAAC;IACT,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,wBAAgB,WAAW,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,GAAG,YAAY,CAAC,CAAC,CAAC,CAM5E;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC,CAE/D;AAED,wBAAgB,SAAS,CAAC,QAAQ,EAAE,YAAY,EAAE,KAAK,GAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAmC,GAAG,IAAI,CAEjH"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export function jsonSuccess(data, warnings) {
|
|
2
|
+
const envelope = { success: true, data };
|
|
3
|
+
if (warnings && warnings.length > 0) {
|
|
4
|
+
envelope.warnings = warnings;
|
|
5
|
+
}
|
|
6
|
+
return envelope;
|
|
7
|
+
}
|
|
8
|
+
export function jsonError(error) {
|
|
9
|
+
return { success: false, error };
|
|
10
|
+
}
|
|
11
|
+
export function writeJson(envelope, write = s => process.stdout.write(s)) {
|
|
12
|
+
write(JSON.stringify(envelope) + "\n");
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=json.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"json.js","sourceRoot":"","sources":["../../src/core/json.ts"],"names":[],"mappings":"AASA,MAAM,UAAU,WAAW,CAAI,IAAO,EAAE,QAAmB;IACvD,MAAM,QAAQ,GAAoB,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAC1D,IAAI,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAClC,QAAQ,CAAC,QAAQ,GAAG,QAAQ,CAAC;IACjC,CAAC;IACD,OAAO,QAAQ,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,KAAgB;IACtC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,QAAsB,EAAE,QAA6B,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IACvG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAC;AAC3C,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
type WriteFn = (message: string) => void;
|
|
2
|
+
interface Logger {
|
|
3
|
+
info(message: string): void;
|
|
4
|
+
warn(message: string): void;
|
|
5
|
+
error(message: string): void;
|
|
6
|
+
verbose(message: string): void;
|
|
7
|
+
success(message: string): void;
|
|
8
|
+
}
|
|
9
|
+
export declare function createLogger(options: {
|
|
10
|
+
verbose: boolean;
|
|
11
|
+
quiet: boolean;
|
|
12
|
+
}, write?: WriteFn): Logger;
|
|
13
|
+
export {};
|
|
14
|
+
//# sourceMappingURL=log.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"log.d.ts","sourceRoot":"","sources":["../../src/core/log.ts"],"names":[],"mappings":"AAAA,KAAK,OAAO,GAAG,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;AAEzC,UAAU,MAAM;IACZ,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CAClC;AAED,wBAAgB,YAAY,CACxB,OAAO,EAAE;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,EAC7C,KAAK,GAAE,OAAqB,GAC7B,MAAM,CAwBR"}
|
package/dist/core/log.js
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export function createLogger(options, write = console.log) {
|
|
2
|
+
const { verbose, quiet } = options;
|
|
3
|
+
return {
|
|
4
|
+
info(message) {
|
|
5
|
+
if (!quiet)
|
|
6
|
+
write(message);
|
|
7
|
+
},
|
|
8
|
+
warn(message) {
|
|
9
|
+
write(`⚠ ${message}`);
|
|
10
|
+
},
|
|
11
|
+
error(message) {
|
|
12
|
+
write(`✖ ${message}`);
|
|
13
|
+
},
|
|
14
|
+
verbose(message) {
|
|
15
|
+
if (verbose)
|
|
16
|
+
write(message);
|
|
17
|
+
},
|
|
18
|
+
success(message) {
|
|
19
|
+
if (!quiet)
|
|
20
|
+
write(`✔ ${message}`);
|
|
21
|
+
},
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=log.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"log.js","sourceRoot":"","sources":["../../src/core/log.ts"],"names":[],"mappings":"AAUA,MAAM,UAAU,YAAY,CACxB,OAA6C,EAC7C,QAAiB,OAAO,CAAC,GAAG;IAE5B,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC;IAEnC,OAAO;QACH,IAAI,CAAC,OAAe;YAChB,IAAI,CAAC,KAAK;gBAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QAC/B,CAAC;QAED,IAAI,CAAC,OAAe;YAChB,KAAK,CAAC,KAAK,OAAO,EAAE,CAAC,CAAC;QAC1B,CAAC;QAED,KAAK,CAAC,OAAe;YACjB,KAAK,CAAC,KAAK,OAAO,EAAE,CAAC,CAAC;QAC1B,CAAC;QAED,OAAO,CAAC,OAAe;YACnB,IAAI,OAAO;gBAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QAChC,CAAC;QAED,OAAO,CAAC,OAAe;YACnB,IAAI,CAAC,KAAK;gBAAE,KAAK,CAAC,KAAK,OAAO,EAAE,CAAC,CAAC;QACtC,CAAC;KACJ,CAAC;AACN,CAAC"}
|