mirror of
https://github.com/MrUnknownDE/VRCX.git
synced 2026-04-24 01:03:50 +02:00
refactor: app.js (#1291)
* refactor: frontend * Fix avatar gallery sort * Update .NET dependencies * Update npm dependencies electron v37.1.0 * bulkRefreshFriends * fix dark theme * Remove crowdin * Fix config.json dialog not updating * VRCX log file fixes & add Cef log * Remove SharedVariable, fix startup * Revert init theme change * Logging date not working? Fix WinformThemer designer error * Add Cef request hander, no more escaping main page * clean * fix * fix * clean * uh * Apply thememode at startup, fixes random user colours * Split database into files * Instance info remove empty lines * Open external VRC links with VRCX * Electron fixes * fix userdialog style * ohhhh * fix store * fix store * fix: load all group members after kicking a user * fix: world dialog favorite button style * fix: Clear VRCX Cache Timer input value * clean * Fix VR overlay * Fix VR overlay 2 * Fix Discord discord rich presence for RPC worlds * Clean up age verified user tags * Fix playerList being occupied after program reload * no `this` * Fix login stuck loading * writable: false * Hide dialogs on logout * add flush sync option * rm LOGIN event * rm LOGOUT event * remove duplicate event listeners * remove duplicate event listeners * clean * remove duplicate event listeners * clean * fix theme style * fix t * clearable * clean * fix ipcEvent * Small changes * Popcorn Palace support * Remove checkActiveFriends * Clean up * Fix dragEnterCef * Block API requests when not logged in * Clear state on login & logout * Fix worldDialog instances not updating * use <script setup> * Fix avatar change event, CheckGameRunning at startup * Fix image dragging * fix * Remove PWI * fix updateLoop * add webpack-dev-server to dev environment * rm unnecessary chunks * use <script setup> * webpack-dev-server changes * use <script setup> * use <script setup> * Fix UGC text size * Split login event * t * use <script setup> * fix * Update .gitignore and enable checkJs in jsconfig * fix i18n t * use <script setup> * use <script setup> * clean * global types * fix * use checkJs for debugging * Add watchState for login watchers * fix .vue template * type fixes * rm Vue.filter * Cef v138.0.170, VC++ 2022 * Settings fixes * Remove 'USER:CURRENT' * clean up 2FA callbacks * remove userApply * rm i18n import * notification handling to use notification store methods * refactor favorite handling to use favorite store methods and clean up event emissions * refactor moderation handling to use dedicated functions for player moderation events * refactor friend handling to use dedicated functions for friend events * Fix program startup, move lang init * Fix friend state * Fix status change error * Fix user notes diff * fix * rm group event * rm auth event * rm avatar event * clean * clean * getUser * getFriends * getFavoriteWorlds, getFavoriteAvatars * AvatarGalleryUpload btn style & package.json update * Fix friend requests * Apply user * Apply world * Fix note diff * Fix VR overlay * Fixes * Update build scripts * Apply avatar * Apply instance * Apply group * update hidden VRC+ badge * Fix sameInstance "private" * fix 502/504 API errors * fix 502/504 API errors * clean * Fix friend in same instance on orange showing twice in friends list * Add back in broken friend state repair methods * add types --------- Co-authored-by: Natsumi <cmcooper123@hotmail.com>
This commit is contained in:
415
src/types/globals.d.ts
vendored
Normal file
415
src/types/globals.d.ts
vendored
Normal file
@@ -0,0 +1,415 @@
|
||||
/// <reference types="node" />
|
||||
|
||||
declare global {
|
||||
const WINDOWS: boolean;
|
||||
const LINUX: boolean;
|
||||
|
||||
interface Window {
|
||||
$app: any;
|
||||
API: API;
|
||||
AppApi: AppApi;
|
||||
WebApi: WebApi;
|
||||
VRCXStorage: VRCXStorage;
|
||||
SQLite: SQLite;
|
||||
LogWatcher: LogWatcher;
|
||||
Discord: Discord;
|
||||
AssetBundleManager: AssetBundleManager;
|
||||
webApiService: webApiService;
|
||||
request: {};
|
||||
configRepository: any;
|
||||
datebase: any;
|
||||
gameLogService: any;
|
||||
crypto: any;
|
||||
sqliteService: any;
|
||||
interopApi: {
|
||||
callDotNetMethod: (
|
||||
className: any,
|
||||
methodName: any,
|
||||
args: any
|
||||
) => Promise<any>;
|
||||
};
|
||||
electron: {
|
||||
openFileDialog: () => Promise<string>;
|
||||
openDirectoryDialog: () => Promise<string>;
|
||||
desktopNotification: (
|
||||
displayName: string,
|
||||
body?: string,
|
||||
image?: string
|
||||
) => Promise<void>;
|
||||
onWindowPositionChanged: (
|
||||
Function: (
|
||||
event: any,
|
||||
position: { x: number; y: number }
|
||||
) => void
|
||||
) => void;
|
||||
onWindowSizeChanged: (
|
||||
Function: (
|
||||
event: any,
|
||||
size: { width: number; height: number }
|
||||
) => void
|
||||
) => void;
|
||||
onWindowStateChange: (
|
||||
Function: (event: any, state: { windowState: any }) => void
|
||||
) => void;
|
||||
restartApp: () => Promise<void>;
|
||||
};
|
||||
__APP_GLOBALS__: {
|
||||
debug: boolean;
|
||||
debugWebSocket: boolean;
|
||||
debugUserDiff: boolean;
|
||||
debugPhotonLogging: boolean;
|
||||
debugGameLog: boolean;
|
||||
debugWebRequests: boolean;
|
||||
debugFriendState: boolean;
|
||||
errorNoty: any;
|
||||
dontLogMeOut: boolean;
|
||||
endpointDomain: string;
|
||||
endpointDomainVrchat: string;
|
||||
websocketDomain: string;
|
||||
websocketDomainVrchat: string;
|
||||
};
|
||||
}
|
||||
|
||||
declare const API: {
|
||||
// HTTP request methods
|
||||
$bulk: (options: any, args?: any) => Promise<any>;
|
||||
bulk: (options: any) => Promise<any>;
|
||||
|
||||
// Event system
|
||||
$emit: (event: string, ...args: any[]) => void;
|
||||
$off: (event: string, handler?: Function) => void;
|
||||
$on: (event: string, handler: Function) => void;
|
||||
|
||||
// Debug functions
|
||||
debug: boolean | ((message: any) => void);
|
||||
debugCurrentUserDiff: boolean | ((data: any) => void);
|
||||
debugFriendState: boolean | ((data: any) => void);
|
||||
debugGameLog: boolean | ((data: any) => void);
|
||||
debugPhotonLogging: boolean | ((data: any) => void);
|
||||
debugUserDiff: boolean | ((data: any) => void);
|
||||
debugWebRequests: boolean | ((data: any) => void);
|
||||
debugWebSocket: boolean | ((data: any) => void);
|
||||
|
||||
// Configuration
|
||||
dontLogMeOut: boolean;
|
||||
endpointDomain: string;
|
||||
endpointDomainVrchat: string;
|
||||
websocketDomain: string;
|
||||
websocketDomainVrchat: string;
|
||||
|
||||
// Error handling
|
||||
errorNoty: (error: any) => void;
|
||||
};
|
||||
|
||||
const CefSharp: {
|
||||
PostMessage: (message: any) => void;
|
||||
BindObjectAsync: (...args: string[]) => Promise<any>;
|
||||
BindObject: (name: string) => any;
|
||||
ExecuteScriptAsync: (script: string) => Promise<any>;
|
||||
ExecuteScript: (script: string) => any;
|
||||
RemoveObjectFromCache?: (name: string) => void;
|
||||
DeleteBoundObject?: (name: string) => void;
|
||||
};
|
||||
|
||||
const VRCXStorage: {
|
||||
Get(key: string): Promise<string>;
|
||||
Set(key: string, value: string): Promise<void>;
|
||||
Remove(key: string): Promise<void>;
|
||||
GetAll(): Promise<string>;
|
||||
Flush(): Promise<void>;
|
||||
Save(): Promise<void>;
|
||||
Load(): Promise<void>;
|
||||
GetArray(key: string): Promise<any[]>;
|
||||
SetArray(key: string, value: any[]): Promise<void>;
|
||||
GetObject(key: string): Promise<object>;
|
||||
SetObject(key: string, value: object): Promise<void>;
|
||||
};
|
||||
|
||||
const SQLite: {
|
||||
Execute: (
|
||||
sql: string,
|
||||
args: string
|
||||
) => Promise<{ Item1: any; Item2: any[] }>;
|
||||
ExecuteJson: (sql: string, args: string) => Promise<string>;
|
||||
ExecuteNonQuery: (sql: string, args: string) => Promise<void>;
|
||||
};
|
||||
|
||||
const LogWatcher: {
|
||||
Get(): Promise<Array<[string, string, string, ...any[]]>>;
|
||||
SetDateTill(date: string): Promise<void>;
|
||||
GetLogLines(): Array<any>;
|
||||
Reset(): Promise<void>;
|
||||
};
|
||||
|
||||
const Discord: {
|
||||
SetTimestamps(startTimestamp: number, endTimestamp: number): void;
|
||||
SetAssets(
|
||||
bigIcon: string,
|
||||
bigIconText: string,
|
||||
smallIcon: string,
|
||||
smallIconText: string,
|
||||
partyId: string,
|
||||
partySize: number,
|
||||
partyMaxSize: number,
|
||||
buttonText: string,
|
||||
buttonUrl: string,
|
||||
appId: string,
|
||||
activityType: number
|
||||
): void;
|
||||
SetText(details: string, state: string): void;
|
||||
SetActive(active: boolean): Promise<boolean>;
|
||||
};
|
||||
|
||||
const AppApi: {
|
||||
// Basic App Functions
|
||||
ShowDevTools(): Promise<void>;
|
||||
SetVR(
|
||||
active: boolean,
|
||||
hmdOverlay: boolean,
|
||||
wristOverlay: boolean,
|
||||
menuButton: boolean,
|
||||
overlayHand: number
|
||||
): Promise<void>;
|
||||
RefreshVR(): Promise<void>;
|
||||
RestartVR(): Promise<void>;
|
||||
SetZoom(zoomLevel: number): Promise<void>;
|
||||
GetZoom(): Promise<number>;
|
||||
DesktopNotification(
|
||||
boldText: string,
|
||||
text?: string,
|
||||
image?: string
|
||||
): Promise<void>;
|
||||
RestartApplication(isUpgrade: boolean): Promise<void>;
|
||||
CheckForUpdateExe(): Promise<boolean>;
|
||||
ExecuteAppFunction(key: string, json: string): Promise<void>;
|
||||
ExecuteVrFeedFunction(key: string, json: string): Promise<void>;
|
||||
ExecuteVrOverlayFunction(key: string, json: string): Promise<void>;
|
||||
FocusWindow(): Promise<void>;
|
||||
ChangeTheme(value: number): Promise<void>;
|
||||
DoFunny(): Promise<void>;
|
||||
GetClipboard(): Promise<string>;
|
||||
SetStartup(enabled: boolean): Promise<void>;
|
||||
CopyImageToClipboard(path: string): Promise<void>;
|
||||
FlashWindow(): Promise<void>;
|
||||
SetUserAgent(): Promise<void>;
|
||||
IsRunningUnderWine(): Promise<boolean>;
|
||||
|
||||
// Common Functions
|
||||
MD5File(blob: string): Promise<string>;
|
||||
GetColourFromUserID(userId: string): Promise<number>;
|
||||
SignFile(blob: string): Promise<string>;
|
||||
FileLength(blob: string): Promise<string>;
|
||||
OpenLink(url: string): Promise<void>;
|
||||
GetLaunchCommand(): Promise<string>;
|
||||
IPCAnnounceStart(): Promise<void>;
|
||||
SendIpc(type: string, data: string): Promise<void>;
|
||||
CustomCssPath(): Promise<string>;
|
||||
CustomScriptPath(): Promise<string>;
|
||||
CurrentCulture(): Promise<string>;
|
||||
CurrentLanguage(): Promise<string>;
|
||||
GetVersion(): Promise<string>;
|
||||
VrcClosedGracefully(): Promise<boolean>;
|
||||
GetColourBulk(userIds: string[]): Promise<Record<string, number>>;
|
||||
SetAppLauncherSettings(
|
||||
enabled: boolean,
|
||||
killOnExit: boolean
|
||||
): Promise<void>;
|
||||
GetFileBase64(path: string): Promise<string | null>;
|
||||
|
||||
// Folders
|
||||
GetVRChatAppDataLocation(): Promise<string>;
|
||||
GetVRChatPhotosLocation(): Promise<string>;
|
||||
GetUGCPhotoLocation(path?: string): Promise<string>;
|
||||
GetVRChatScreenshotsLocation(): Promise<string>;
|
||||
GetVRChatCacheLocation(): Promise<string>;
|
||||
OpenVrcxAppDataFolder(): Promise<boolean>;
|
||||
OpenVrcAppDataFolder(): Promise<boolean>;
|
||||
OpenVrcPhotosFolder(): Promise<boolean>;
|
||||
OpenUGCPhotosFolder(ugcPath?: string): Promise<boolean>;
|
||||
OpenVrcScreenshotsFolder(): Promise<boolean>;
|
||||
OpenCrashVrcCrashDumps(): Promise<boolean>;
|
||||
OpenShortcutFolder(): Promise<void>;
|
||||
OpenFolderAndSelectItem(
|
||||
path: string,
|
||||
isFolder?: boolean
|
||||
): Promise<void>;
|
||||
OpenFolderSelectorDialog(defaultPath?: string): Promise<string>;
|
||||
OpenFileSelectorDialog(
|
||||
defaultPath?: string,
|
||||
defaultExt?: string,
|
||||
defaultFilter?: string
|
||||
): Promise<string>;
|
||||
|
||||
// Game Handler
|
||||
OnProcessStateChanged(monitoredProcess: any): Promise<void>;
|
||||
CheckGameRunning(): Promise<void>;
|
||||
IsGameRunning(): Promise<boolean>;
|
||||
IsSteamVRRunning(): Promise<boolean>;
|
||||
QuitGame(): Promise<number>;
|
||||
StartGame(arguments: string): Promise<boolean>;
|
||||
StartGameFromPath(path: string, arguments: string): Promise<boolean>;
|
||||
|
||||
// Registry
|
||||
GetVRChatRegistryKey(key: string): Promise<any>;
|
||||
GetVRChatRegistryKeyString(key: string): Promise<string>;
|
||||
SetVRChatRegistryKey(
|
||||
key: string,
|
||||
value: any,
|
||||
typeInt: number
|
||||
): Promise<boolean>;
|
||||
GetVRChatRegistry(): Promise<Record<string, Record<string, any>>>;
|
||||
SetVRChatRegistry(json: string): Promise<void>;
|
||||
HasVRChatRegistryFolder(): Promise<boolean>;
|
||||
DeleteVRChatRegistryFolder(): Promise<void>;
|
||||
ReadVrcRegJsonFile(filepath: string): Promise<string>;
|
||||
GetVRChatRegistryJson: () => Promise<string>;
|
||||
|
||||
// Image Functions
|
||||
PopulateImageHosts(json: string): Promise<void>;
|
||||
GetImage(url: string, fileId: string, version: string): Promise<string>;
|
||||
ResizeImageToFitLimits(base64data: string): Promise<string>;
|
||||
CropAllPrints(ugcFolderPath: string): Promise<void>;
|
||||
CropPrintImage(path: string): Promise<boolean>;
|
||||
SavePrintToFile(
|
||||
url: string,
|
||||
ugcFolderPath: string,
|
||||
monthFolder: string,
|
||||
fileName: string
|
||||
): Promise<string>;
|
||||
SaveStickerToFile(
|
||||
url: string,
|
||||
ugcFolderPath: string,
|
||||
monthFolder: string,
|
||||
fileName: string
|
||||
): Promise<string>;
|
||||
SaveEmojiToFile(
|
||||
url: string,
|
||||
ugcFolderPath: string,
|
||||
monthFolder: string,
|
||||
fileName: string
|
||||
): Promise<string>;
|
||||
|
||||
// Screenshot
|
||||
AddScreenshotMetadata(
|
||||
path: string,
|
||||
metadataString: string,
|
||||
worldId: string,
|
||||
changeFilename?: boolean
|
||||
): Promise<string>;
|
||||
GetExtraScreenshotData(
|
||||
path: string,
|
||||
carouselCache: boolean
|
||||
): Promise<string>;
|
||||
GetScreenshotMetadata(path: string): Promise<string>;
|
||||
FindScreenshotsBySearch(
|
||||
searchQuery: string,
|
||||
searchType?: number
|
||||
): Promise<string>;
|
||||
GetLastScreenshot(): Promise<string>;
|
||||
|
||||
// Moderations
|
||||
GetVRChatModerations(
|
||||
currentUserId: string
|
||||
): Promise<Record<string, number> | null>;
|
||||
GetVRChatUserModeration(
|
||||
currentUserId: string,
|
||||
userId: string
|
||||
): Promise<number>;
|
||||
SetVRChatUserModeration(
|
||||
currentUserId: string,
|
||||
userId: string,
|
||||
type: number
|
||||
): Promise<boolean>;
|
||||
|
||||
// VRC Config
|
||||
ReadConfigFile(): Promise<string>;
|
||||
ReadConfigFileSafe(): Promise<string>;
|
||||
WriteConfigFile(json: string): Promise<void>;
|
||||
|
||||
// Update
|
||||
DownloadUpdate(
|
||||
fileUrl: string,
|
||||
fileName: string,
|
||||
hashUrl: string,
|
||||
downloadSize: number
|
||||
): Promise<void>;
|
||||
CancelUpdate(): Promise<void>;
|
||||
CheckUpdateProgress(): Promise<number>;
|
||||
|
||||
// Notifications
|
||||
XSNotification(
|
||||
title: string,
|
||||
content: string,
|
||||
timeout: number,
|
||||
opacity: number,
|
||||
image?: string
|
||||
): Promise<void>;
|
||||
OVRTNotification(
|
||||
hudNotification: boolean,
|
||||
wristNotification: boolean,
|
||||
title: string,
|
||||
body: string,
|
||||
timeout: number,
|
||||
opacity: number,
|
||||
image?: string
|
||||
): Promise<void>;
|
||||
};
|
||||
|
||||
const AppApiVr: {
|
||||
Init(): void;
|
||||
VrInit(): void;
|
||||
ToggleSystemMonitor(enabled: boolean): void;
|
||||
CpuUsage(): number;
|
||||
GetVRDevices(): string[][];
|
||||
GetUptime(): number;
|
||||
CurrentCulture(): string;
|
||||
CustomVrScriptPath(): string;
|
||||
IsRunningUnderWine(): boolean;
|
||||
};
|
||||
|
||||
const WebApi: {
|
||||
ClearCookies(): void;
|
||||
GetCookies(): string;
|
||||
SetCookies(cookie: string): void;
|
||||
Execute(options: any): Promise<{ Item1: number; Item2: string }>;
|
||||
ExecuteJson(requestJson: string): Promise<string>;
|
||||
};
|
||||
|
||||
const AssetBundleManager: {
|
||||
SweepCache(): Promise<string>;
|
||||
GetCacheSize(): Promise<number>;
|
||||
GetVRChatCacheFullLocation(
|
||||
fileId: string,
|
||||
fileVersion: number,
|
||||
variant: string,
|
||||
variantVersion: number
|
||||
): Promise<string>;
|
||||
CheckVRChatCache(
|
||||
fileId: string,
|
||||
fileVersion: number,
|
||||
variant: string,
|
||||
variantVersion: number
|
||||
): Promise<{ Item1: number; Item2: boolean; Item3: string }>;
|
||||
DeleteCache(
|
||||
fileId: string,
|
||||
fileVersion: number,
|
||||
variant: string,
|
||||
variantVersion: number
|
||||
): Promise<void>;
|
||||
DeleteAllCache: () => Promise<void>;
|
||||
};
|
||||
|
||||
const webApiService: {
|
||||
clearCookies(): void;
|
||||
getCookies(): string;
|
||||
setCookies(cookie: string): void;
|
||||
execute(options: {
|
||||
url: string;
|
||||
method: string;
|
||||
headers?: Record<string, string>;
|
||||
data?: any;
|
||||
}): Promise<{ status: number; data: string }>;
|
||||
};
|
||||
}
|
||||
|
||||
export {};
|
||||
Reference in New Issue
Block a user