Put inject.js into the same folder as main.js

This is important as without this. Avia client will not load 

Signed-off-by: AvaLilac <amyshimplays@gmail.com>
This commit is contained in:
AvaLilac 2026-02-24 10:57:40 -05:00 committed by GitHub
parent fa3bdc7019
commit d32fd3b7df
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -10,8 +10,6 @@ import { PublisherGithub } from "@electron-forge/publisher-github";
import type { ForgeConfig } from "@electron-forge/shared-types"; import type { ForgeConfig } from "@electron-forge/shared-types";
import { FuseV1Options, FuseVersion } from "@electron/fuses"; import { FuseV1Options, FuseVersion } from "@electron/fuses";
// import { globSync } from "node:fs";
const STRINGS = { const STRINGS = {
author: "Revolt Platforms LTD", author: "Revolt Platforms LTD",
name: "Stoat", name: "Stoat",
@ -21,16 +19,11 @@ const STRINGS = {
const ASSET_DIR = "assets/desktop"; const ASSET_DIR = "assets/desktop";
/**
* Build targets for the desktop app
*/
const makers: ForgeConfig["makers"] = [ const makers: ForgeConfig["makers"] = [
new MakerSquirrel({ new MakerSquirrel({
name: STRINGS.name, name: STRINGS.name,
authors: STRINGS.author, authors: STRINGS.author,
// todo: hoist this
iconUrl: `https://stoat.chat/app/assets/icon-DUSNE-Pb.ico`, iconUrl: `https://stoat.chat/app/assets/icon-DUSNE-Pb.ico`,
// todo: loadingGif
setupIcon: `${ASSET_DIR}/icon.ico`, setupIcon: `${ASSET_DIR}/icon.ico`,
description: STRINGS.description, description: STRINGS.description,
exe: `${STRINGS.execName}.exe`, exe: `${STRINGS.execName}.exe`,
@ -40,18 +33,13 @@ const makers: ForgeConfig["makers"] = [
new MakerZIP({}), new MakerZIP({}),
]; ];
// skip these makers in CI/CD
if (!process.env.PLATFORM) { if (!process.env.PLATFORM) {
makers.push( makers.push(
// must be manually built (freezes CI process)
// not much use in being published anyhow
new MakerAppX({ new MakerAppX({
certPass: "", certPass: "",
packageExecutable: `app\\${STRINGS.execName}.exe`, packageExecutable: `app\\${STRINGS.execName}.exe`,
publisher: "CN=B040CC7E-0016-4AF5-957F-F8977A6CFA3B", publisher: "CN=B040CC7E-0016-4AF5-957F-F8977A6CFA3B",
}), }),
// flatpak publishing should occur through flathub repos.
// this is just for testing purposes
new MakerFlatpak({ new MakerFlatpak({
options: { options: {
id: "chat.stoat.stoat-desktop", id: "chat.stoat.stoat-desktop",
@ -69,7 +57,6 @@ if (!process.env.PLATFORM) {
} as unknown, } as unknown,
categories: ["Network"], categories: ["Network"],
modules: [ modules: [
// use the latest zypak -- Electron sandboxing for Flatpak
{ {
name: "zypak", name: "zypak",
sources: [ sources: [
@ -82,8 +69,6 @@ if (!process.env.PLATFORM) {
}, },
], ],
finishArgs: [ finishArgs: [
// default arguments found by running
// DEBUG=electron-installer-flatpak* pnpm make
"--socket=fallback-x11", "--socket=fallback-x11",
"--share=ipc", "--share=ipc",
"--device=dri", "--device=dri",
@ -92,32 +77,11 @@ if (!process.env.PLATFORM) {
"--env=TMPDIR=/var/tmp", "--env=TMPDIR=/var/tmp",
"--share=network", "--share=network",
"--talk-name=org.freedesktop.Notifications", "--talk-name=org.freedesktop.Notifications",
// add Unity talk name for badges
"--talk-name=com.canonical.Unity", "--talk-name=com.canonical.Unity",
], ],
// files: [
// // is this necessary?
// // https://stackoverflow.com/q/79745700
// ...[16, 32, 64, 128, 256, 512].map(
// (size) =>
// [
// `assets/desktop/hicolor/${size}x${size}.png`,
// `/app/share/icons/hicolor/${size}x${size}/apps/chat.stoat.stoat-desktop.png`,
// ] as [string, string],
// ),
// [
// `assets/desktop/icon.svg`,
// `/app/share/icons/hicolor/scalable/apps/chat.stoat.stoat-desktop.svg`,
// ] as [string, string],
// ],
files: [], files: [],
} as MakerFlatpakOptionsConfig, } as MakerFlatpakOptionsConfig,
/* as Omit<
MakerFlatpakOptionsConfig,
"files"
> */
}), }),
// testing purposes
new MakerDeb({ new MakerDeb({
options: { options: {
productName: STRINGS.name, productName: STRINGS.name,
@ -135,20 +99,13 @@ const config: ForgeConfig = {
name: STRINGS.name, name: STRINGS.name,
executableName: STRINGS.execName, executableName: STRINGS.execName,
icon: `${ASSET_DIR}/icon`, icon: `${ASSET_DIR}/icon`,
// extraResource: [
// // include all the asset files
// ...globSync(ASSET_DIR + "/**/*"),
// ],
}, },
rebuildConfig: {}, rebuildConfig: {},
makers, makers,
plugins: [ plugins: [
new VitePlugin({ new VitePlugin({
// `build` can specify multiple entry builds, which can be Main process, Preload scripts, Worker process, etc.
// If you are familiar with Vite configuration, it will look really familiar.
build: [ build: [
{ {
// `entry` is just an alias for `build.lib.entry` in the corresponding file of `config`.
entry: "src/main.ts", entry: "src/main.ts",
config: "vite.main.config.ts", config: "vite.main.config.ts",
target: "main", target: "main",
@ -158,11 +115,14 @@ const config: ForgeConfig = {
config: "vite.preload.config.ts", config: "vite.preload.config.ts",
target: "preload", target: "preload",
}, },
{
entry: "src/inject.js",
config: "vite.main.config.ts",
target: "main",
},
], ],
renderer: [], renderer: [],
}), }),
// Fuses are used to enable/disable various Electron functionality
// at package time, before code signing the application
new FusesPlugin({ new FusesPlugin({
version: FuseVersion.V1, version: FuseVersion.V1,
[FuseV1Options.RunAsNode]: false, [FuseV1Options.RunAsNode]: false,