275 lines
17 KiB
TypeScript
275 lines
17 KiB
TypeScript
// This file has been generated by Specta. DO NOT EDIT.
|
|
|
|
import { createTauRPCProxy as createProxy, type InferCommandOutput } from 'taurpc'
|
|
type TAURI_CHANNEL<T> = (response: T) => void
|
|
|
|
|
|
export type ClusterError = { type: "InvalidVersion"; data: string } | { type: "MismatchedVersion"; data: string } | { type: "MismatchedLoader"; data: string } | { type: "MissingJavaVersion"; data: string } | { type: "ClusterDownloading"; data: string } | { type: "ClusterAlreadyRunning"; data: string }
|
|
|
|
export type ClusterModel = { id: number; folder_name: string; stage: ClusterStage; created_at: string; group_id: number | null; name: string; mc_version: string; mc_loader: GameLoader; mc_loader_version: string | null; last_played: string | null; overall_played: number | null; icon_url: Icon | null; setting_profile_name: string | null; linked_modpack_hash: string | null }
|
|
|
|
export type ClusterStage = "notready" | "downloading" | "repairing" | "ready"
|
|
|
|
export type ClusterUpdate = { name: string | null; icon_url: Icon | null }
|
|
|
|
export type CreateCluster = { name: string; mc_version: string; mc_loader: GameLoader; mc_loader_version: string | null; icon: Icon | null }
|
|
|
|
export type CryptoError = { type: "InvalidHash"; data: string } | { type: "InvalidAlgorithm"; data: string }
|
|
|
|
export type DaoError = { type: "NotFound"; data: string } | { type: "AlreadyExists"; data: string } | { type: "InvalidValue"; data: string }
|
|
|
|
export type DbVec = T[]
|
|
|
|
export type DirectoryError = { type: "BaseDir"; data: string }
|
|
|
|
export type DiscordError = { type: "MissingClientId"; data: string } | { type: "ConnectError"; data: string }
|
|
|
|
export type Filters = { game_versions: string[] | null; loaders: GameLoader[] | null; categories: PackageCategories | null; package_type: PackageType | null }
|
|
|
|
export type GameLoader = "vanilla" | "forge" | "neoforge" | "quilt" | "fabric" | "legacyfabric"
|
|
|
|
export type IOError = { type: "InvalidAbsolutePath"; data: string } | { type: "FileNotFoundInZip"; data: string } | { type: "IOErrorWrapper"; data: string } | { type: "IOError"; data: string } | { type: "DeserializeError"; data: string } | { type: "AsyncZipError"; data: string }
|
|
|
|
export type Icon = string
|
|
|
|
export type IncompatiblePackageType = { type: "McVersion"; data: string } | { type: "Loader"; data: string }
|
|
|
|
export type IngressError = { type: "NotFound"; data: string }
|
|
|
|
export type IngressPayload = { id: string; message: string; ingress_type: IngressType; percent: number | null; total: number }
|
|
|
|
export type IngressType = { Download: { file_name: string } } | "JavaPrepare" | "JavaCheck" | "JavaLocate" | "MinecraftDownload" | { PrepareCluster: { cluster_name: string } }
|
|
|
|
export type JavaError = { type: "ParseVersion"; data: string } | { type: "Execute"; data: string } | { type: "MissingJava"; data: string }
|
|
|
|
export type LauncherError = { type: "DirError"; data: DirectoryError } | { type: "IOError"; data: IOError } | { type: "IngressError"; data: IngressError } | { type: "JavaError"; data: JavaError } | { type: "CryptoError"; data: CryptoError } | { type: "DiscordError"; data: DiscordError } | { type: "MetadataError"; data: MetadataError } | { type: "ClusterError"; data: ClusterError } | { type: "MinecraftAuthError"; data: MinecraftAuthError } | { type: "ProcessError"; data: ProcessError } | { type: "PackageError"; data: PackageError } | { type: "DaoError"; data: DaoError } | { type: "SerdeError"; data: string } | { type: "AnyhowError"; data: string } | { type: "DbError"; data: string } | { type: "ReqwestError"; data: string } | { type: "InterpulseError"; data: string } | { type: "RegexError"; data: string } | { type: "SemaphoreError"; data: string } | { type: "UrlError"; data: string } | { type: "OpenerError"; data: string } | { type: "TauriError"; data: string }
|
|
|
|
export type ManagedPackage = { id: string; slug: string; provider: Provider; package_type: PackageType; name: string; short_desc: string; body: ManagedPackageBody;
|
|
/**
|
|
* Won't have all versions for some providers, like CurseForge.
|
|
* Try making a request to get the versions if needed
|
|
*/
|
|
version_ids: string[]; mc_versions: string[]; loaders: GameLoader[]; icon_url: string | null; created: string; updated: string; client: PackageSide; server: PackageSide; categories: PackageCategories; license: PackageLicense | null; author: PackageAuthor; links: PackageLinks; status: PackageStatus; downloads: number; gallery: PackageGallery[] }
|
|
|
|
export type ManagedPackageBody = { Url: string } | { Raw: string }
|
|
|
|
export type ManagedUser = { id: string; username: string; url?: string | null; avatar_url?: string | null; bio?: string | null; is_organization_user?: boolean; role?: string | null }
|
|
|
|
export type ManagedVersion = { version_id: string; project_id: string; display_name: string; display_version: string; changelog: string | null; dependencies: ManagedVersionDependency[]; mc_versions: string[]; release_type: PackageReleaseType; loaders: GameLoader[]; published: string; downloads: number; files: ManagedVersionFile[] }
|
|
|
|
export type ManagedVersionDependency = { version_id: string | null; project_id: string | null; file_name: string | null; dependency_type: PackageDependencyType }
|
|
|
|
export type ManagedVersionFile = { sha1: string; url: string; file_name: string; primary: boolean; size: number }
|
|
|
|
export type MessageLevel = "Info" | "Warn" | "Error"
|
|
|
|
export type MessagePayload = { level: MessageLevel; message: string }
|
|
|
|
export type MetadataError = { type: "FetchError"; data: string } | { type: "NotModdedManifest"; data: string } | { type: "NotVanillaManifest"; data: string } | { type: "ParseError"; data: string } | { type: "NoMatchingLoader"; data: string } | { type: "NoMatchingVersion"; data: string }
|
|
|
|
export type MinecraftAuthError = { type: "PublicKeyReading"; data: string } | { type: "PKCS8Error"; data: string } | { type: "SerializeError"; data: string } | { type: "DeserializeError"; data: string } | { type: "RequestError"; data: string } | { type: "SigningError"; data: string } | { type: "HashError"; data: string } | { type: "SessionIdError"; data: string }
|
|
|
|
/**
|
|
* A structure of all needed Minecraft credentials for logging in and account management.
|
|
*/
|
|
export type MinecraftCredentials = {
|
|
/**
|
|
* The uuid of the credentials.
|
|
*/
|
|
id: string;
|
|
/**
|
|
* The username of the Minecraft account.
|
|
*/
|
|
username: string;
|
|
/**
|
|
* The access token as a String.
|
|
*/
|
|
access_token: string;
|
|
/**
|
|
* The refresh token as a string for [`MinecraftState#refresh`].
|
|
*/
|
|
refresh_token: string;
|
|
/**
|
|
* The time that the access token expires as a [`DateTime<Utc>`].
|
|
*/
|
|
expires: string }
|
|
|
|
export type MojangPlayerProfile = { uuid: string; username: string; is_slim: boolean; skin_url: string | null; cape_url: string | null }
|
|
|
|
export type PackageAuthor = { Team: { team_id: string; org_id: string | null } } | { Users: ManagedUser[] }
|
|
|
|
export type PackageCategories = { Mod: PackageModCategory[] } | { ResourcePack: PackageResourcePackCategory[] } | { Shader: PackageShaderCategory[] } | { DataPack: PackageModCategory[] } | { ModPack: PackageModPackCategory[] }
|
|
|
|
export type PackageDependencyType = "required" | "optional" | "embedded" | "incompatible"
|
|
|
|
/**
|
|
* <https://api.modrinth.com/v2/tag/donation_platform>
|
|
*/
|
|
export type PackageDonationPlatform = "patreon" | "buymeacoffee" | "paypal" | "github" | "kofi" | "other"
|
|
|
|
export type PackageDonationUrl = { id: PackageDonationPlatform; url: string }
|
|
|
|
export type PackageError = { type: "NoPrimaryFile"; data: string } | { type: "IsNotModPack"; data: string } | { type: "Incompatible"; data: IncompatiblePackageType } | { type: "MissingApiKey"; data: string } | { type: "UnsupportedBodyType"; data: string } | { type: "UnsupportedAuthorType"; data: string } | { type: "UnsupportedModpackFormat"; data: string }
|
|
|
|
export type PackageGallery = { url: string; thumbnail_url: string; title: string | null; description: string | null; featured: boolean | null }
|
|
|
|
/**
|
|
* <https://spdx.org/licenses/>
|
|
*/
|
|
export type PackageLicense = { id: string; name: string; url: string | null }
|
|
|
|
/**
|
|
* <https://docs.curseforge.com/rest-api/#tocS_ModLinks>
|
|
*/
|
|
export type PackageLinks = { website: string | null; issues: string | null; source: string | null; wiki: string | null; donation: PackageDonationUrl[] | null; discord: string | null }
|
|
|
|
export type PackageModCategory = "Adventure" | "Library" | "Equipment" | "Patches" | "Cosmetic" | "Food" | "Magic" | "Information" | "Misc" | "Performance" | "Redstone" | "ServerUtil" | "Storage" | "Technology" | "Farming" | "Automation" | "Transport" | "Utility" | "QoL" | "WorldGen" | "Mobs" | "Economy" | "Social"
|
|
|
|
export type PackageModPackCategory = "Technology" | "Quests" | "Optimization" | "Multiplayer" | "Magic" | "LightWeight" | "Combat" | "Challenging" | "Adventure"
|
|
|
|
export type PackageModel = { hash: string; file_name: string; version_id: string; published_at: string; display_name: string; display_version: string; package_type: PackageType; provider: Provider; package_id: string; mc_versions: DbVec<string>; mc_loader: DbVec<GameLoader>; icon: Icon | null }
|
|
|
|
export type PackageReleaseType = "release" | "beta" | "alpha"
|
|
|
|
export type PackageResourcePackCategory = "X8" | "X16" | "X32" | "X48" | "X64" | "X128" | "X256" | "X512" | "VanillaLike" | "Utility" | "Tweaks" | "Themed" | "Simplistic" | "Realistic" | "Modded" | "Decoration" | "Cursed" | "Combat" | "Audio" | "Blocks" | "CoreShaders" | "Gui" | "Fonts" | "Equipment" | "Environment" | "Entities" | "Items" | "Locale" | "Models"
|
|
|
|
export type PackageShaderCategory = "VanillaLike" | "SemiRealistic" | "Realistic" | "Fantasy" | "Cursed" | "Cartoon" | "Bloom" | "Atmosphere" | "Reflections" | "Shadows" | "PBR" | "PathTracing" | "Foliage" | "ColoredLightning" | "Potato" | "Low" | "Medium" | "High" | "Ultra"
|
|
|
|
export type PackageSide = "unknown" | "required" | "optional" | "unsupported"
|
|
|
|
export type PackageStatus = "active" | "abandoned"
|
|
|
|
export type PackageType = "mod" | "resourcepack" | "shader" | "datapack" | "modpack"
|
|
|
|
export type Paginated<T> = { total: number; offset: number; limit: number; items: T[] }
|
|
|
|
export type Process = { pid: number; started_at: string; cluster_id: number; post_hook: string | null; account_id: string }
|
|
|
|
export type ProcessError = { type: "HookUnsuccessful"; data: string } | { type: "NoPid"; data: string }
|
|
|
|
export type ProcessPayload = { type: "Starting"; command: string } | { type: "Started"; process: Process } | { type: "Stopped"; pid: number; exit_code: number } | { type: "Output"; pid: number; output: string }
|
|
|
|
export type ProfileUpdate = { res: Resolution | null; force_fullscreen: boolean | null; mem_max: number | null; launch_args: string | null; launch_env: string | null; hook_pre: string | null; hook_wrapper: string | null; hook_post: string | null }
|
|
|
|
export type Provider = "Modrinth" | "CurseForge" | "SkyClient"
|
|
|
|
export type Resolution = { width: number; height: number }
|
|
|
|
export type SearchQuery = { query: string | null; offset: number | null; limit: number | null; sort: Sort | null; filters: Filters | null }
|
|
|
|
export type SearchResult = { project_id: string; package_type: PackageType; slug: string; author: string; title: string; description: string; categories: PackageCategories; loaders: GameLoader[]; mc_versions: string[]; downloads: number; icon_url: string; date_created: string; date_modified: string; latest_version: string; license: string | null; client_side: PackageSide; server_side: PackageSide;
|
|
/**
|
|
* List of URLs to images
|
|
*/
|
|
gallery: string[] }
|
|
|
|
export type SettingProfileModel = { name: string; java_id: number | null; res: Resolution | null; force_fullscreen: boolean | null; mem_max: number | null; launch_args: string | null; launch_env: string | null; hook_pre: string | null; hook_wrapper: string | null; hook_post: string | null; os_extra: SettingsOsExtra | null }
|
|
|
|
export type Settings = { global_game_settings: SettingProfileModel; allow_parallel_running_clusters: boolean; enable_gamemode: boolean; discord_enabled: boolean; max_concurrent_requests: number; settings_version: number; native_window_frame: boolean }
|
|
|
|
export type SettingsOsExtra = { enable_gamemode: boolean | null }
|
|
|
|
export type Sort = "Relevance" | "Downloads" | "Newest" | "Updated"
|
|
|
|
/**
|
|
* A game version of Minecraft
|
|
*/
|
|
export type Version = {
|
|
/**
|
|
* A unique identifier of the version
|
|
*/
|
|
id: string;
|
|
/**
|
|
* The release type of the version
|
|
*/
|
|
type: VersionType;
|
|
/**
|
|
* A link to additional information about the version
|
|
*/
|
|
url: string;
|
|
/**
|
|
* The latest time a file in this version was updated
|
|
*/
|
|
time: string;
|
|
/**
|
|
* The time this version was released
|
|
*/
|
|
releaseTime: string;
|
|
/**
|
|
* The SHA1 hash of the additional information about the version
|
|
*/
|
|
sha1: string;
|
|
/**
|
|
* Whether the version supports the latest player safety features
|
|
*/
|
|
complianceLevel: number;
|
|
/**
|
|
* The SHA1 hash of the original unmodified Minecraft version's JSON
|
|
* This is only available when using the Pulseflow mirror
|
|
*/
|
|
originalSha1?: string | null }
|
|
|
|
/**
|
|
* The version type of Minecraft
|
|
*/
|
|
export type VersionType =
|
|
/**
|
|
* A major version, which is stable for all players to use
|
|
*/
|
|
"release" |
|
|
/**
|
|
* An experimental version, which is unstable and used for feature previews and beta testing
|
|
*/
|
|
"snapshot" |
|
|
/**
|
|
* The oldest versions before the game was released
|
|
*/
|
|
"old_alpha" |
|
|
/**
|
|
* Early versions of the game
|
|
*/
|
|
"old_beta"
|
|
|
|
const ARGS_MAP = { 'folders':'{"fromCluster":["folder_name"],"openCluster":["folder_name"]}', 'events':'{"message":["event"],"ingress":["event"],"process":["event"]}', 'oneclient':'{"openDevTools":[],"getClustersGroupedByMajor":[]}', 'core':'{"getPackageVersions":["provider","slug","mc_version","loader","offset","limit"],"getProfileOrDefault":["name"],"updateClusterById":["id","request"],"createCluster":["options"],"getLogByName":["id","name"],"getGameVersions":[],"getScreenshots":["id"],"writeSettings":["setting"],"getMultiplePackages":["provider","slugs"],"getLogs":["id"],"removeUser":["uuid"],"downloadPackage":["provider","package_id","version_id","cluster_id","skip_compatibility"],"getDefaultUser":["fallback"],"getLoadersForVersion":["mc_version"],"getClusters":[],"setDefaultUser":["uuid"],"getGlobalProfile":[],"getClusterById":["id"],"updateClusterProfile":["name","profile"],"getUsers":[],"getUsersFromAuthor":["provider","author"],"openMsaLogin":[],"launchCluster":["id","uuid"],"searchPackages":["provider","query"],"getWorlds":["id"],"getUser":["uuid"],"getPackageBody":["provider","body"],"readSettings":[],"removeCluster":["id"],"getPackage":["provider","slug"],"fetchMinecraftProfile":["uuid"]}' }
|
|
export type Router = { 'oneclient': { openDevTools: () => Promise<void>,
|
|
getClustersGroupedByMajor: () => Promise<Partial<{ [key in number]: ClusterModel[] }>> },
|
|
'folders': { fromCluster: (folderName: string) => Promise<string>,
|
|
openCluster: (folderName: string) => Promise<null> },
|
|
'core': { getClusters: () => Promise<ClusterModel[]>,
|
|
getClusterById: (id: number) => Promise<ClusterModel | null>,
|
|
removeCluster: (id: number) => Promise<null>,
|
|
createCluster: (options: CreateCluster) => Promise<ClusterModel>,
|
|
launchCluster: (id: number, uuid: string | null) => Promise<null>,
|
|
updateClusterById: (id: number, request: ClusterUpdate) => Promise<null>,
|
|
getScreenshots: (id: number) => Promise<string[]>,
|
|
getWorlds: (id: number) => Promise<string[]>,
|
|
getLogs: (id: number) => Promise<string[]>,
|
|
getLogByName: (id: number, name: string) => Promise<string | null>,
|
|
getProfileOrDefault: (name: string | null) => Promise<SettingProfileModel>,
|
|
getGlobalProfile: () => Promise<SettingProfileModel>,
|
|
updateClusterProfile: (name: string, profile: ProfileUpdate) => Promise<SettingProfileModel>,
|
|
getGameVersions: () => Promise<Version[]>,
|
|
getLoadersForVersion: (mcVersion: string) => Promise<GameLoader[]>,
|
|
getUsers: () => Promise<MinecraftCredentials[]>,
|
|
getUser: (uuid: string) => Promise<MinecraftCredentials | null>,
|
|
removeUser: (uuid: string) => Promise<null>,
|
|
getDefaultUser: (fallback: boolean | null) => Promise<MinecraftCredentials | null>,
|
|
setDefaultUser: (uuid: string | null) => Promise<null>,
|
|
openMsaLogin: () => Promise<MinecraftCredentials | null>,
|
|
readSettings: () => Promise<Settings>,
|
|
writeSettings: (setting: Settings) => Promise<null>,
|
|
searchPackages: (provider: Provider, query: SearchQuery) => Promise<Paginated<SearchResult>>,
|
|
getPackage: (provider: Provider, slug: string) => Promise<ManagedPackage>,
|
|
getPackageBody: (provider: Provider, body: ManagedPackageBody) => Promise<string>,
|
|
getMultiplePackages: (provider: Provider, slugs: string[]) => Promise<ManagedPackage[]>,
|
|
getPackageVersions: (provider: Provider, slug: string, mcVersion: string | null, loader: GameLoader | null, offset: number, limit: number) => Promise<Paginated<ManagedVersion>>,
|
|
downloadPackage: (provider: Provider, packageId: string, versionId: string, clusterId: number, skipCompatibility: boolean | null) => Promise<PackageModel>,
|
|
getUsersFromAuthor: (provider: Provider, author: PackageAuthor) => Promise<ManagedUser[]>,
|
|
fetchMinecraftProfile: (uuid: string) => Promise<MojangPlayerProfile> },
|
|
'events': { ingress: (event: IngressPayload) => Promise<void>,
|
|
message: (event: MessagePayload) => Promise<void>,
|
|
process: (event: ProcessPayload) => Promise<void> } };
|
|
|
|
|
|
export type { InferCommandOutput }
|
|
export const createTauRPCProxy = () => createProxy<Router>(ARGS_MAP)
|