@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.
- package/README.md +11 -5
- package/actions/publish-index/action.yml +1 -1
- package/dist/cli/context.d.ts.map +1 -1
- package/dist/cli/context.js +3 -0
- package/dist/cli/context.js.map +1 -1
- package/dist/cli/create.js +1 -1
- package/dist/cli/create.js.map +1 -1
- package/dist/cli/inject.d.ts +12 -0
- package/dist/cli/inject.d.ts.map +1 -0
- package/dist/cli/inject.js +205 -0
- package/dist/cli/inject.js.map +1 -0
- package/dist/cli/kill-discord.d.ts +3 -0
- package/dist/cli/kill-discord.d.ts.map +1 -0
- package/dist/cli/kill-discord.js +39 -0
- package/dist/cli/kill-discord.js.map +1 -0
- package/dist/core/builder.d.ts +10 -5
- package/dist/core/builder.d.ts.map +1 -1
- package/dist/core/builder.js +16 -29
- package/dist/core/builder.js.map +1 -1
- package/dist/core/discord.d.ts +36 -0
- package/dist/core/discord.d.ts.map +1 -0
- package/dist/core/discord.js +183 -0
- package/dist/core/discord.js.map +1 -0
- package/dist/core/errors.d.ts +4 -0
- package/dist/core/errors.d.ts.map +1 -1
- package/dist/core/errors.js +9 -0
- 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 +60 -0
- package/dist/core/inject.d.ts.map +1 -0
- package/dist/core/inject.js +293 -0
- package/dist/core/inject.js.map +1 -0
- 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/dist/core/types.d.ts +1 -0
- package/dist/core/types.d.ts.map +1 -1
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -1
- 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
|
-
|
|
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
|
|
@@ -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,
|
|
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"}
|
package/dist/cli/context.js
CHANGED
|
@@ -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) {
|
package/dist/cli/context.js.map
CHANGED
|
@@ -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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"}
|
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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"}
|
|
@@ -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 @@
|
|
|
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"}
|
package/dist/core/builder.d.ts
CHANGED
|
@@ -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
|
-
*
|
|
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
|
|
20
|
-
*
|
|
21
|
-
*
|
|
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;
|
|
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"}
|
package/dist/core/builder.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { homedir } from "node:os";
|
|
2
|
-
import {
|
|
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
|
-
*
|
|
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
|
-
|
|
29
|
-
|
|
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
|
|
39
|
-
*
|
|
40
|
-
*
|
|
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
|
-
|
|
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;
|
package/dist/core/builder.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
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,
|
|
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"}
|