116 lines
2.3 KiB
TypeScript
116 lines
2.3 KiB
TypeScript
export interface Package {
|
|
namespace: string;
|
|
name: string;
|
|
description: string;
|
|
loc: {
|
|
version: string;
|
|
path: string;
|
|
dependencies: string[];
|
|
status: Status;
|
|
icon: string;
|
|
} | null;
|
|
rmt: {
|
|
version: string;
|
|
package_url: string;
|
|
download_url: string;
|
|
deprecated: boolean;
|
|
nsfw: boolean;
|
|
categories: string[];
|
|
icon: string;
|
|
} | null;
|
|
js: {
|
|
busy: boolean;
|
|
};
|
|
}
|
|
|
|
export enum Feature {
|
|
Mod = 1 << 0,
|
|
Aime = 1 << 1,
|
|
AMNet = 1 << 2,
|
|
Mu3Hook = 1 << 3,
|
|
Mu3IO = 1 << 4,
|
|
ChusanHook = 1 << 5,
|
|
}
|
|
|
|
export type Status =
|
|
| 'Unchecked'
|
|
| 'Unsupported'
|
|
| {
|
|
OK: Feature;
|
|
};
|
|
|
|
export type Game = 'ongeki' | 'chunithm';
|
|
|
|
export interface ProfileMeta {
|
|
game: Game;
|
|
name: string;
|
|
}
|
|
|
|
export interface ProfileData {
|
|
mods: string[];
|
|
sgt: SegatoolsConfig;
|
|
display: DisplayConfig;
|
|
network: NetworkConfig;
|
|
bepinex: BepInExConfig;
|
|
mu3_ini: Mu3IniConfig | undefined;
|
|
}
|
|
|
|
export interface SegatoolsConfig {
|
|
target: string;
|
|
hook: string | null;
|
|
io: string | null;
|
|
amfs: string;
|
|
option: string;
|
|
appdata: string;
|
|
aime: { AMNet: string } | { Other: string } | 'BuiltIn' | 'Disabled';
|
|
intel: boolean;
|
|
amnet: {
|
|
name: string;
|
|
addr: string;
|
|
physical: boolean;
|
|
};
|
|
}
|
|
|
|
export interface DisplayConfig {
|
|
target: String;
|
|
rez: [number, number];
|
|
mode: 'Window' | 'Borderless' | 'Fullscreen';
|
|
rotation: number;
|
|
frequency: number;
|
|
borderless_fullscreen: boolean;
|
|
dont_switch_primary: boolean;
|
|
monitor_index_override: number | null;
|
|
}
|
|
|
|
export interface NetworkConfig {
|
|
network_type: 'Remote' | 'Artemis';
|
|
local_path: string;
|
|
local_console: boolean;
|
|
remote_address: string;
|
|
keychip: string;
|
|
subnet: string;
|
|
suffix: number | null;
|
|
}
|
|
|
|
export interface BepInExConfig {
|
|
console: boolean;
|
|
}
|
|
|
|
export interface Mu3IniConfig {
|
|
audio?: 'Shared' | 'Excl6Ch' | 'Excl2Ch';
|
|
// blacklist?: [number, number];
|
|
}
|
|
|
|
export interface Profile {
|
|
meta: ProfileMeta;
|
|
data: ProfileData;
|
|
}
|
|
|
|
export type Module = 'sgt' | 'display' | 'network';
|
|
|
|
export interface Dirs {
|
|
config_dir: string;
|
|
data_dir: string;
|
|
cache_dir: string;
|
|
}
|