mirror of
https://github.com/Equicord/Equicord.git
synced 2025-06-07 21:53:04 -04:00
Updates
This commit is contained in:
commit
a64eae919a
20 changed files with 251 additions and 441 deletions
|
@ -17,8 +17,10 @@
|
|||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
import { createPackage } from "@electron/asar";
|
||||
import esbuild from "esbuild";
|
||||
import { readdir } from "fs/promises";
|
||||
import { existsSync, readdirSync } from "fs";
|
||||
import { readdir, rm, writeFile } from "fs/promises";
|
||||
import { join } from "path";
|
||||
|
||||
import { BUILD_TIMESTAMP, commonOpts, exists, globPlugins, IS_DEV, IS_REPORTER, IS_STANDALONE, IS_UPDATER_DISABLED, resolvePluginName, VERSION, watch } from "./common.mjs";
|
||||
|
@ -107,7 +109,7 @@ await Promise.all([
|
|||
esbuild.build({
|
||||
...nodeCommonOpts,
|
||||
entryPoints: ["src/main/index.ts"],
|
||||
outfile: "dist/patcher.js",
|
||||
outfile: "dist/desktop/patcher.js",
|
||||
footer: { js: "//# sourceURL=VencordPatcher\n" + sourceMapFooter("patcher") },
|
||||
sourcemap,
|
||||
define: {
|
||||
|
@ -124,7 +126,7 @@ await Promise.all([
|
|||
esbuild.build({
|
||||
...commonOpts,
|
||||
entryPoints: ["src/Vencord.ts"],
|
||||
outfile: "dist/renderer.js",
|
||||
outfile: "dist/desktop/renderer.js",
|
||||
format: "iife",
|
||||
target: ["esnext"],
|
||||
footer: { js: "//# sourceURL=VencordRenderer\n" + sourceMapFooter("renderer") },
|
||||
|
@ -144,7 +146,7 @@ await Promise.all([
|
|||
esbuild.build({
|
||||
...nodeCommonOpts,
|
||||
entryPoints: ["src/preload.ts"],
|
||||
outfile: "dist/preload.js",
|
||||
outfile: "dist/desktop/preload.js",
|
||||
footer: { js: "//# sourceURL=VencordPreload\n" + sourceMapFooter("preload") },
|
||||
sourcemap,
|
||||
define: {
|
||||
|
@ -159,8 +161,8 @@ await Promise.all([
|
|||
esbuild.build({
|
||||
...nodeCommonOpts,
|
||||
entryPoints: ["src/main/index.ts"],
|
||||
outfile: "dist/vencordDesktopMain.js",
|
||||
footer: { js: "//# sourceURL=VencordDesktopMain\n" + sourceMapFooter("vencordDesktopMain") },
|
||||
outfile: "dist/vesktop/main.js",
|
||||
footer: { js: "//# sourceURL=VencordMain\n" + sourceMapFooter("main") },
|
||||
sourcemap,
|
||||
define: {
|
||||
...defines,
|
||||
|
@ -176,10 +178,10 @@ await Promise.all([
|
|||
esbuild.build({
|
||||
...commonOpts,
|
||||
entryPoints: ["src/Vencord.ts"],
|
||||
outfile: "dist/vencordDesktopRenderer.js",
|
||||
outfile: "dist/vesktop/renderer.js",
|
||||
format: "iife",
|
||||
target: ["esnext"],
|
||||
footer: { js: "//# sourceURL=VencordDesktopRenderer\n" + sourceMapFooter("vencordDesktopRenderer") },
|
||||
footer: { js: "//# sourceURL=VencordRenderer\n" + sourceMapFooter("renderer") },
|
||||
globalName: "Vencord",
|
||||
sourcemap,
|
||||
plugins: [
|
||||
|
@ -196,8 +198,8 @@ await Promise.all([
|
|||
esbuild.build({
|
||||
...nodeCommonOpts,
|
||||
entryPoints: ["src/preload.ts"],
|
||||
outfile: "dist/vencordDesktopPreload.js",
|
||||
footer: { js: "//# sourceURL=VencordPreload\n" + sourceMapFooter("vencordDesktopPreload") },
|
||||
outfile: "dist/vesktop/preload.js",
|
||||
footer: { js: "//# sourceURL=VencordPreload\n" + sourceMapFooter("preload") },
|
||||
sourcemap,
|
||||
define: {
|
||||
...defines,
|
||||
|
@ -213,3 +215,38 @@ await Promise.all([
|
|||
if (!commonOpts.watch)
|
||||
process.exitCode = 1;
|
||||
});
|
||||
|
||||
await Promise.all([
|
||||
writeFile("dist/desktop/package.json", JSON.stringify({
|
||||
name: "vencord",
|
||||
main: "patcher.js"
|
||||
})),
|
||||
writeFile("dist/vesktop/package.json", JSON.stringify({
|
||||
name: "vencord",
|
||||
main: "main.js"
|
||||
}))
|
||||
]);
|
||||
|
||||
await Promise.all([
|
||||
createPackage("dist/desktop", "dist/desktop.asar"),
|
||||
createPackage("dist/vesktop", "dist/vesktop.asar")
|
||||
]);
|
||||
|
||||
if (existsSync("dist/renderer.js")) {
|
||||
console.warn("Legacy dist folder. Cleaning up and adding shims.");
|
||||
|
||||
await Promise.all(
|
||||
readdirSync("dist")
|
||||
.filter(f =>
|
||||
f.endsWith(".map") ||
|
||||
f.endsWith(".LEGAL.txt") ||
|
||||
["patcher", "preload", "renderer"].some(name => f.startsWith(name))
|
||||
)
|
||||
.map(file => rm(join("dist", file)))
|
||||
);
|
||||
|
||||
await Promise.all([
|
||||
writeFile("dist/patcher.js", 'require("./desktop.asar")'),
|
||||
writeFile("dist/vencordDesktopMain.js", 'require("./vesktop.asar")')
|
||||
]);
|
||||
}
|
||||
|
|
|
@ -74,26 +74,26 @@ await Promise.all(
|
|||
minify: true,
|
||||
format: "iife",
|
||||
outbase: "node_modules/monaco-editor/esm/",
|
||||
outdir: "dist/monaco"
|
||||
outdir: "dist/browser/monaco"
|
||||
}),
|
||||
esbuild.build({
|
||||
entryPoints: ["browser/monaco.ts"],
|
||||
bundle: true,
|
||||
minify: true,
|
||||
format: "iife",
|
||||
outfile: "dist/monaco/index.js",
|
||||
outfile: "dist/browser/monaco/index.js",
|
||||
loader: {
|
||||
".ttf": "file"
|
||||
}
|
||||
}),
|
||||
esbuild.build({
|
||||
...commonOptions,
|
||||
outfile: "dist/browser.js",
|
||||
outfile: "dist/browser/browser.js",
|
||||
footer: { js: "//# sourceURL=VencordWeb" }
|
||||
}),
|
||||
esbuild.build({
|
||||
...commonOptions,
|
||||
outfile: "dist/extension.js",
|
||||
outfile: "dist/browser/extension.js",
|
||||
define: {
|
||||
...commonOptions?.define,
|
||||
IS_EXTENSION: true,
|
||||
|
@ -149,9 +149,9 @@ async function loadDir(dir, basePath = "") {
|
|||
*/
|
||||
async function buildExtension(target, files) {
|
||||
const entries = {
|
||||
"dist/Vencord.js": await readFile("dist/extension.js"),
|
||||
"dist/Vencord.css": await readFile("dist/extension.css"),
|
||||
...await loadDir("dist/monaco"),
|
||||
"dist/Vencord.js": await readFile("dist/browser/extension.js"),
|
||||
"dist/Vencord.css": await readFile("dist/browser/extension.css"),
|
||||
...await loadDir("dist/browser/monaco"),
|
||||
...Object.fromEntries(await Promise.all(RnNoiseFiles.map(async file =>
|
||||
[`third-party/rnnoise/${file.replace(/^dist\//, "")}`, await readFile(`node_modules/@sapphi-red/web-noise-suppressor/${file}`)]
|
||||
))),
|
||||
|
@ -172,13 +172,13 @@ async function buildExtension(target, files) {
|
|||
|
||||
await rm(target, { recursive: true, force: true });
|
||||
await Promise.all(Object.entries(entries).map(async ([file, content]) => {
|
||||
const dest = join("dist", target, file);
|
||||
const dest = join("dist/browser", target, file);
|
||||
const parentDirectory = join(dest, "..");
|
||||
await mkdir(parentDirectory, { recursive: true });
|
||||
await writeFile(dest, content);
|
||||
}));
|
||||
|
||||
console.info("Unpacked Extension written to dist/" + target);
|
||||
console.info("Unpacked Extension written to dist/browser/" + target);
|
||||
}
|
||||
|
||||
const appendCssRuntime = readFile("dist/Vencord.user.css", "utf-8").then(content => {
|
||||
|
@ -201,12 +201,14 @@ if (!process.argv.includes("--skip-extension")) {
|
|||
buildExtension("firefox-unpacked", ["background.js", "content.js", "manifestv2.json", "icon.png"]),
|
||||
]);
|
||||
|
||||
Zip.sync.zip("dist/chromium-unpacked").compress().save("dist/extension-chrome.zip");
|
||||
console.info("Packed Chromium Extension written to dist/extension-chrome.zip");
|
||||
|
||||
Zip.sync.zip("dist/firefox-unpacked").compress().save("dist/extension-firefox.zip");
|
||||
console.info("Packed Firefox Extension written to dist/extension-firefox.zip");
|
||||
|
||||
Zip.zip("dist/browser/chromium-unpacked", (_err, zip) => {
|
||||
zip.compress().save("dist/extension-chrome.zip");
|
||||
console.info("Packed Chromium Extension written to dist/extension-chrome.zip");
|
||||
});
|
||||
Zip.zip("dist/browser/firefox-unpacked", (_err, zip) => {
|
||||
zip.compress().save("dist/extension-firefox.zip");
|
||||
console.info("Packed Firefox Extension written to dist/extension-firefox.zip");
|
||||
});
|
||||
} else {
|
||||
await appendCssRuntime;
|
||||
}
|
||||
|
|
|
@ -25,8 +25,8 @@ import { Readable } from "stream";
|
|||
import { finished } from "stream/promises";
|
||||
import { fileURLToPath } from "url";
|
||||
|
||||
const BASE_URL = "https://github.com/Equicord/Installer/releases/latest/download/";
|
||||
const INSTALLER_PATH_DARWIN = "EquicordInstaller.app/Contents/MacOS/EquicordInstaller";
|
||||
const BASE_URL = "https://github.com/Equicord/Equilotl/releases/latest/download/";
|
||||
const INSTALLER_PATH_DARWIN = "Equilotl.app/Contents/MacOS/Equilotl";
|
||||
|
||||
const BASE_DIR = join(dirname(fileURLToPath(import.meta.url)), "..");
|
||||
const FILE_DIR = join(BASE_DIR, "dist", "Installer");
|
||||
|
@ -35,11 +35,11 @@ const ETAG_FILE = join(FILE_DIR, "etag.txt");
|
|||
function getFilename() {
|
||||
switch (process.platform) {
|
||||
case "win32":
|
||||
return "EquicordInstallerCli.exe";
|
||||
return "EquilotlCli.exe";
|
||||
case "darwin":
|
||||
return "EquicordInstaller.MacOS.zip";
|
||||
return "Equilotl.MacOS.zip";
|
||||
case "linux":
|
||||
return "EquicordInstallerCli-linux";
|
||||
return "EquilotlCli-linux";
|
||||
default:
|
||||
throw new Error("Unsupported platform: " + process.platform);
|
||||
}
|
||||
|
@ -53,7 +53,7 @@ async function ensureBinary() {
|
|||
|
||||
const downloadName = join(FILE_DIR, filename);
|
||||
const outputFile = process.platform === "darwin"
|
||||
? join(FILE_DIR, "EquicordInstaller")
|
||||
? join(FILE_DIR, "Equilotl")
|
||||
: downloadName;
|
||||
|
||||
const etag = existsSync(outputFile) && existsSync(ETAG_FILE)
|
||||
|
@ -96,7 +96,7 @@ async function ensureBinary() {
|
|||
execSync(cmd);
|
||||
} catch { }
|
||||
};
|
||||
logAndRun(`sudo spctl --add '${outputFile}' --label "Equicord Installer"`);
|
||||
logAndRun(`sudo spctl --add '${outputFile}' --label "Equilotl"`);
|
||||
logAndRun(`sudo xattr -d com.apple.quarantine '${outputFile}'`);
|
||||
} else {
|
||||
// WHY DOES NODE FETCH RETURN A WEB STREAM OH MY GOD
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue