Merge branch 'main' into feat/macos-permissions

This commit is contained in:
Tornike Khintibidze 2023-10-01 20:44:39 +04:00 committed by GitHub
commit bb783dcace
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
8 changed files with 86 additions and 51 deletions

View file

@ -1,33 +1,17 @@
# Based on Microsoft/DevHome Winget CI, modified for use in Vencord/Vesktop.
#
# Copyright (c) Microsoft Corporation and Contributors
# Licensed under the MIT license.
name: Submit to Winget Community Repo name: Submit to Winget Community Repo
on: on:
workflow_dispatch:
release: release:
types: [published] types: [published]
jobs: jobs:
winget: winget:
name: Publish winget package name: Publish winget package
runs-on: windows-latest runs-on: ubuntu-latest
env:
WINGET_PAT: ${{ secrets.WINGET_PAT }}
steps: steps:
- name: Submit package to Winget Community Repo - name: Submit package to Winget Community Repo
run: | uses: vedantmgoyal2009/winget-releaser@52ef3f3028ed79a9606d7678d0a88d295bc0c690 # v2
with:
$packageId = "Vencord.Vesktop" identifier: Vencord.Vesktop
token: ${{ secrets.WINGET_PAT }}
# Fetching latest release from GitHub installers-regex: '\.exe$'
$github = Invoke-RestMethod -uri "https://api.github.com/repos/vencord/vesktop/releases"
$targetRelease = $github | Select-Object -First 1
$installerUrl = $targetRelease | Select-Object -ExpandProperty assets -First 1 | Where-Object -Property name -match 'Vesktop-Setup.*?exe' | Select-Object -ExpandProperty browser_download_url
$packageVersion = $targetRelease.tag_name.Trim("v")
# Update package using wingetcreate
Invoke-WebRequest https://aka.ms/wingetcreate/latest -OutFile wingetcreate.exe
.\wingetcreate.exe update $packageId --version $packageVersion --urls "$installerUrl" --submit --token $env:WINGET_PAT

View file

@ -1,6 +1,6 @@
{ {
"name": "VencordDesktop", "name": "VencordDesktop",
"version": "0.3.0", "version": "0.3.3",
"private": true, "private": true,
"description": "", "description": "",
"keywords": [], "keywords": [],
@ -23,7 +23,7 @@
"watch": "pnpm build --watch" "watch": "pnpm build --watch"
}, },
"dependencies": { "dependencies": {
"arrpc": "github:OpenAsar/arrpc#b47fd7d498e248955c843a7857dd26478b82190a" "arrpc": "github:OpenAsar/arrpc#89f4da610ccfac93f461826a446a17cd3b23953d"
}, },
"devDependencies": { "devDependencies": {
"@fal-works/esbuild-plugin-global-externals": "^2.1.2", "@fal-works/esbuild-plugin-global-externals": "^2.1.2",
@ -33,7 +33,7 @@
"@typescript-eslint/parser": "^6.2.1", "@typescript-eslint/parser": "^6.2.1",
"@vencord/types": "^0.1.2", "@vencord/types": "^0.1.2",
"dotenv": "^16.3.1", "dotenv": "^16.3.1",
"electron": "^25.4.0", "electron": "^25.8.4",
"electron-builder": "^24.6.3", "electron-builder": "^24.6.3",
"esbuild": "^0.18.17", "esbuild": "^0.18.17",
"eslint": "^8.46.0", "eslint": "^8.46.0",
@ -66,6 +66,7 @@
"LICENSE" "LICENSE"
], ],
"linux": { "linux": {
"icon": "build/icon.icns",
"category": "Network", "category": "Network",
"maintainer": "vendicated+vesktop@riseup.net", "maintainer": "vendicated+vesktop@riseup.net",
"target": [ "target": [

View file

@ -6,8 +6,8 @@ settings:
dependencies: dependencies:
arrpc: arrpc:
specifier: github:OpenAsar/arrpc#b47fd7d498e248955c843a7857dd26478b82190a specifier: github:OpenAsar/arrpc#89f4da610ccfac93f461826a446a17cd3b23953d
version: github.com/OpenAsar/arrpc/b47fd7d498e248955c843a7857dd26478b82190a version: github.com/OpenAsar/arrpc/89f4da610ccfac93f461826a446a17cd3b23953d
devDependencies: devDependencies:
'@fal-works/esbuild-plugin-global-externals': '@fal-works/esbuild-plugin-global-externals':
@ -32,8 +32,8 @@ devDependencies:
specifier: ^16.3.1 specifier: ^16.3.1
version: 16.3.1 version: 16.3.1
electron: electron:
specifier: ^25.4.0 specifier: ^25.8.4
version: 25.4.0 version: 25.8.4
electron-builder: electron-builder:
specifier: ^24.6.3 specifier: ^24.6.3
version: 24.6.3 version: 24.6.3
@ -1245,6 +1245,7 @@ packages:
/boolean@3.2.0: /boolean@3.2.0:
resolution: {integrity: sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==} resolution: {integrity: sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==}
requiresBuild: true
dev: true dev: true
optional: true optional: true
@ -1637,6 +1638,7 @@ packages:
/detect-node@2.1.0: /detect-node@2.1.0:
resolution: {integrity: sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==} resolution: {integrity: sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==}
requiresBuild: true
dev: true dev: true
optional: true optional: true
@ -1764,8 +1766,8 @@ packages:
- supports-color - supports-color
dev: true dev: true
/electron@25.4.0: /electron@25.8.4:
resolution: {integrity: sha512-VLTRxDhL4UvQbqM7pTNENnJo62cdAPZT92N+B7BZQ5Xfok1wuVPEewIjBot4K7U3EpLUuHn1veeLzho3ihiP+Q==} resolution: {integrity: sha512-hUYS3RGdaa6E1UWnzeGnsdsBYOggwMMg4WGxNGvAoWtmRrr6J1BsjFW/yRq4WsJHJce2HdzQXtz4OGXV6yUCLg==}
engines: {node: '>= 12.20.55'} engines: {node: '>= 12.20.55'}
hasBin: true hasBin: true
requiresBuild: true requiresBuild: true
@ -1863,6 +1865,7 @@ packages:
/es6-error@4.1.1: /es6-error@4.1.1:
resolution: {integrity: sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==} resolution: {integrity: sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==}
requiresBuild: true
dev: true dev: true
optional: true optional: true
@ -3058,6 +3061,7 @@ packages:
/json-stringify-safe@5.0.1: /json-stringify-safe@5.0.1:
resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==} resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==}
requiresBuild: true
dev: true dev: true
optional: true optional: true
@ -3172,6 +3176,7 @@ packages:
/matcher@3.0.0: /matcher@3.0.0:
resolution: {integrity: sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==} resolution: {integrity: sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==}
engines: {node: '>=10'} engines: {node: '>=10'}
requiresBuild: true
dependencies: dependencies:
escape-string-regexp: 4.0.0 escape-string-regexp: 4.0.0
dev: true dev: true
@ -3680,6 +3685,7 @@ packages:
/roarr@2.15.4: /roarr@2.15.4:
resolution: {integrity: sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A==} resolution: {integrity: sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A==}
engines: {node: '>=8.0'} engines: {node: '>=8.0'}
requiresBuild: true
dependencies: dependencies:
boolean: 3.2.0 boolean: 3.2.0
detect-node: 2.1.0 detect-node: 2.1.0
@ -3743,6 +3749,7 @@ packages:
/semver-compare@1.0.0: /semver-compare@1.0.0:
resolution: {integrity: sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==} resolution: {integrity: sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==}
requiresBuild: true
dev: true dev: true
optional: true optional: true
@ -3762,6 +3769,7 @@ packages:
/serialize-error@7.0.1: /serialize-error@7.0.1:
resolution: {integrity: sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==} resolution: {integrity: sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==}
engines: {node: '>=10'} engines: {node: '>=10'}
requiresBuild: true
dependencies: dependencies:
type-fest: 0.13.1 type-fest: 0.13.1
dev: true dev: true
@ -3889,6 +3897,7 @@ packages:
/sprintf-js@1.1.2: /sprintf-js@1.1.2:
resolution: {integrity: sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==} resolution: {integrity: sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==}
requiresBuild: true
dev: true dev: true
optional: true optional: true
@ -4115,6 +4124,7 @@ packages:
/type-fest@0.13.1: /type-fest@0.13.1:
resolution: {integrity: sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==} resolution: {integrity: sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==}
engines: {node: '>=10'} engines: {node: '>=10'}
requiresBuild: true
dev: true dev: true
optional: true optional: true
@ -4356,10 +4366,11 @@ packages:
engines: {node: '>=10'} engines: {node: '>=10'}
dev: true dev: true
github.com/OpenAsar/arrpc/b47fd7d498e248955c843a7857dd26478b82190a: github.com/OpenAsar/arrpc/89f4da610ccfac93f461826a446a17cd3b23953d:
resolution: {tarball: https://codeload.github.com/OpenAsar/arrpc/tar.gz/b47fd7d498e248955c843a7857dd26478b82190a} resolution: {tarball: https://codeload.github.com/OpenAsar/arrpc/tar.gz/89f4da610ccfac93f461826a446a17cd3b23953d}
name: arrpc name: arrpc
version: 3.1.0 version: 3.2.0
hasBin: true
dependencies: dependencies:
ws: 8.13.0 ws: 8.13.0
transitivePeerDependencies: transitivePeerDependencies:

View file

@ -9,7 +9,7 @@ import { BrowserWindow } from "electron/main";
import { copyFileSync, mkdirSync, readdirSync } from "fs"; import { copyFileSync, mkdirSync, readdirSync } from "fs";
import { join } from "path"; import { join } from "path";
import { SplashProps } from "shared/browserWinProperties"; import { SplashProps } from "shared/browserWinProperties";
import { VIEW_DIR } from "shared/paths"; import { ICON_PATH, VIEW_DIR } from "shared/paths";
import { autoStart } from "./autoStart"; import { autoStart } from "./autoStart";
import { DATA_DIR } from "./constants"; import { DATA_DIR } from "./constants";
@ -31,7 +31,8 @@ export function createFirstLaunchTour() {
frame: true, frame: true,
autoHideMenuBar: true, autoHideMenuBar: true,
height: 470, height: 470,
width: 550 width: 550,
icon: ICON_PATH
}); });
makeLinksOpenExternally(win); makeLinksOpenExternally(win);

View file

@ -4,7 +4,8 @@
* Copyright (c) 2023 Vendicated and Vencord contributors * Copyright (c) 2023 Vendicated and Vencord contributors
*/ */
import { app, dialog, session, shell } from "electron"; import { execFile } from "child_process";
import { app, dialog, RelaunchOptions, session, shell } from "electron";
import { mkdirSync, readFileSync, watch } from "fs"; import { mkdirSync, readFileSync, watch } from "fs";
import { open, readFile } from "fs/promises"; import { open, readFile } from "fs/promises";
import { release } from "os"; import { release } from "os";
@ -45,7 +46,14 @@ handle(IpcEvents.SET_SETTINGS, (_, settings: typeof Settings.store, path?: strin
}); });
handle(IpcEvents.RELAUNCH, () => { handle(IpcEvents.RELAUNCH, () => {
app.relaunch(); const options: RelaunchOptions = {
args: process.argv.slice(1).concat(["--relaunch"])
};
if (app.isPackaged && process.env.APPIMAGE) {
execFile(process.env.APPIMAGE, options.args);
} else {
app.relaunch(options);
}
app.exit(); app.exit();
}); });

View file

@ -147,6 +147,8 @@ async function clearData(win: BrowserWindow) {
app.quit(); app.quit();
} }
type MenuItemList = Array<MenuItemConstructorOptions | false>;
function initMenuBar(win: BrowserWindow) { function initMenuBar(win: BrowserWindow) {
const isWindows = process.platform === "win32"; const isWindows = process.platform === "win32";
const isDarwin = process.platform === "darwin"; const isDarwin = process.platform === "darwin";
@ -181,14 +183,38 @@ function initMenuBar(win: BrowserWindow) {
app.quit(); app.quit();
} }
}, },
isDarwin && { ...(!isDarwin
label: "Hide", ? []
role: "hide" : ([
}, {
isDarwin && { type: "separator"
label: "Hide others", },
role: "hideOthers" {
}, label: "Settings",
accelerator: "CmdOrCtrl+,",
async click() {
mainWin.webContents.executeJavaScript(
"Vencord.Webpack.Common.SettingsRouter.open('My Account')"
);
}
},
{
type: "separator"
},
{
label: "Hide Vesktop", // Should probably remove the label, but it says "Hide VencordDesktop" instead of "Hide Vesktop"
role: "hide"
},
{
role: "hideOthers"
},
{
role: "unhide"
},
{
type: "separator"
}
] satisfies MenuItemList)),
{ {
label: "Quit", label: "Quit",
accelerator: wantCtrlQ ? "CmdOrCtrl+Q" : void 0, accelerator: wantCtrlQ ? "CmdOrCtrl+Q" : void 0,
@ -213,7 +239,7 @@ function initMenuBar(win: BrowserWindow) {
role: "zoomIn", role: "zoomIn",
visible: false visible: false
} }
] satisfies Array<MenuItemConstructorOptions | false>; ] satisfies MenuItemList;
const menu = Menu.buildFromTemplate([ const menu = Menu.buildFromTemplate([
{ {

View file

@ -7,10 +7,13 @@
import { BrowserWindow } from "electron"; import { BrowserWindow } from "electron";
import { join } from "path"; import { join } from "path";
import { SplashProps } from "shared/browserWinProperties"; import { SplashProps } from "shared/browserWinProperties";
import { VIEW_DIR } from "shared/paths"; import { ICON_PATH, VIEW_DIR } from "shared/paths";
export function createSplashWindow() { export function createSplashWindow() {
const splash = new BrowserWindow(SplashProps); const splash = new BrowserWindow({
...SplashProps,
icon: ICON_PATH
});
splash.loadFile(join(VIEW_DIR, "splash.html")); splash.loadFile(join(VIEW_DIR, "splash.html"));

View file

@ -11,7 +11,7 @@ import { makeLinksOpenExternally } from "main/utils/makeLinksOpenExternally";
import { githubGet, ReleaseData } from "main/utils/vencordLoader"; import { githubGet, ReleaseData } from "main/utils/vencordLoader";
import { join } from "path"; import { join } from "path";
import { IpcEvents } from "shared/IpcEvents"; import { IpcEvents } from "shared/IpcEvents";
import { VIEW_DIR } from "shared/paths"; import { ICON_PATH, VIEW_DIR } from "shared/paths";
export interface UpdateData { export interface UpdateData {
currentVersion: string; currentVersion: string;
@ -108,7 +108,8 @@ function openNewUpdateWindow() {
nodeIntegration: false, nodeIntegration: false,
contextIsolation: true, contextIsolation: true,
sandbox: true sandbox: true
} },
icon: ICON_PATH
}); });
makeLinksOpenExternally(win); makeLinksOpenExternally(win);