aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/src-tauri/src/core
diff options
context:
space:
mode:
Diffstat (limited to 'src-tauri/src/core')
-rw-r--r--src-tauri/src/core/account_storage.rs20
-rw-r--r--src-tauri/src/core/assistant.rs30
-rw-r--r--src-tauri/src/core/auth.rs16
-rw-r--r--src-tauri/src/core/config.rs15
-rw-r--r--src-tauri/src/core/downloader.rs37
-rw-r--r--src-tauri/src/core/fabric.rs54
-rw-r--r--src-tauri/src/core/forge.rs10
-rw-r--r--src-tauri/src/core/game_version.rs50
-rw-r--r--src-tauri/src/core/instance.rs15
-rw-r--r--src-tauri/src/core/java/mod.rs20
-rw-r--r--src-tauri/src/core/java/persistence.rs5
-rw-r--r--src-tauri/src/core/java/priority.rs2
-rw-r--r--src-tauri/src/core/java/providers/adoptium.rs25
-rw-r--r--src-tauri/src/core/manifest.rs15
14 files changed, 75 insertions, 239 deletions
diff --git a/src-tauri/src/core/account_storage.rs b/src-tauri/src/core/account_storage.rs
index a18b5fc..df202cd 100644
--- a/src-tauri/src/core/account_storage.rs
+++ b/src-tauri/src/core/account_storage.rs
@@ -6,10 +6,7 @@ use ts_rs::TS;
/// Stored account data for persistence
#[derive(Debug, Clone, Serialize, Deserialize, Default, TS)]
-#[ts(
- export,
- export_to = "../../packages/ui-new/src/types/bindings/account_storage.ts"
-)]
+#[ts(export, export_to = "account.ts")]
pub struct AccountStore {
pub accounts: Vec<StoredAccount>,
pub active_account_id: Option<String>,
@@ -17,10 +14,7 @@ pub struct AccountStore {
#[derive(Debug, Clone, Serialize, Deserialize, TS)]
#[serde(tag = "type")]
-#[ts(
- export,
- export_to = "../../packages/ui-new/src/types/bindings/account_storage.ts"
-)]
+#[ts(export, export_to = "account.ts")]
pub enum StoredAccount {
Offline(OfflineAccount),
Microsoft(StoredMicrosoftAccount),
@@ -28,10 +22,7 @@ pub enum StoredAccount {
/// Microsoft account with refresh token for persistence
#[derive(Debug, Clone, Serialize, Deserialize, TS)]
-#[ts(
- export,
- export_to = "../../packages/ui-new/src/types/bindings/account_storage.ts"
-)]
+#[ts(export, export_to = "account.ts")]
pub struct StoredMicrosoftAccount {
pub username: String,
pub uuid: String,
@@ -78,10 +69,7 @@ impl StoredAccount {
}
#[derive(Debug, Clone, TS)]
-#[ts(
- export,
- export_to = "../../packages/ui-new/src/types/bindings/account_storage.ts"
-)]
+#[ts(export, export_to = "account.ts")]
pub struct AccountStorage {
file_path: PathBuf,
}
diff --git a/src-tauri/src/core/assistant.rs b/src-tauri/src/core/assistant.rs
index 6e656dc..5663007 100644
--- a/src-tauri/src/core/assistant.rs
+++ b/src-tauri/src/core/assistant.rs
@@ -8,10 +8,7 @@ use ts_rs::TS;
#[derive(Debug, Clone, Serialize, Deserialize, TS)]
#[serde(rename_all = "camelCase")]
-#[ts(
- export,
- export_to = "../../packages/ui-new/src/types/bindings/assistant.ts"
-)]
+#[ts(export, export_to = "assistant.ts")]
pub struct Message {
pub role: String,
pub content: String,
@@ -59,10 +56,7 @@ pub struct OllamaTagsResponse {
// Simplified model info for frontend
#[derive(Debug, Clone, Serialize, Deserialize, TS)]
#[serde(rename_all = "camelCase")]
-#[ts(
- export,
- export_to = "../../packages/ui-new/src/types/bindings/assistant.ts"
-)]
+#[ts(export, export_to = "assistant.ts")]
pub struct ModelInfo {
pub id: String,
pub name: String,
@@ -115,10 +109,7 @@ pub struct OpenAIModelsResponse {
// Streaming response structures
#[derive(Debug, Clone, Serialize, Deserialize, TS)]
#[serde(rename_all = "camelCase")]
-#[ts(
- export,
- export_to = "../../packages/ui-new/src/types/bindings/assistant.ts"
-)]
+#[ts(export, export_to = "assistant.ts")]
pub struct GenerationStats {
pub total_duration: u64,
pub load_duration: u64,
@@ -130,10 +121,7 @@ pub struct GenerationStats {
#[derive(Debug, Clone, Serialize, Deserialize, TS)]
#[serde(rename_all = "camelCase")]
-#[ts(
- export,
- export_to = "../../packages/ui-new/src/types/bindings/assistant.ts"
-)]
+#[ts(export, export_to = "assistant.ts")]
pub struct StreamChunk {
pub content: String,
pub done: bool,
@@ -244,7 +232,10 @@ impl GameAssistant {
// Add language instruction if not auto
if config.response_language != "auto" {
- system_content = format!("{}\n\nIMPORTANT: Respond in {}. Do not include Pinyin or English translations unless explicitly requested.", system_content, config.response_language);
+ system_content = format!(
+ "{}\n\nIMPORTANT: Respond in {}. Do not include Pinyin or English translations unless explicitly requested.",
+ system_content, config.response_language
+ );
}
// Add log context if available
@@ -456,7 +447,10 @@ impl GameAssistant {
let mut system_content = config.system_prompt.clone();
if config.response_language != "auto" {
- system_content = format!("{}\n\nIMPORTANT: Respond in {}. Do not include Pinyin or English translations unless explicitly requested.", system_content, config.response_language);
+ system_content = format!(
+ "{}\n\nIMPORTANT: Respond in {}. Do not include Pinyin or English translations unless explicitly requested.",
+ system_content, config.response_language
+ );
}
if !context.is_empty() {
diff --git a/src-tauri/src/core/auth.rs b/src-tauri/src/core/auth.rs
index 0e873e3..b137957 100644
--- a/src-tauri/src/core/auth.rs
+++ b/src-tauri/src/core/auth.rs
@@ -15,11 +15,7 @@ fn get_client() -> reqwest::Client {
#[derive(Debug, Clone, Serialize, Deserialize, TS)]
#[serde(tag = "type")]
#[serde(rename_all = "camelCase")]
-#[ts(
- export,
- tag = "type",
- export_to = "../../packages/ui-new/src/types/bindings/auth.ts"
-)]
+#[ts(export, tag = "type", export_to = "auth.ts")]
pub enum Account {
Offline(OfflineAccount),
Microsoft(MicrosoftAccount),
@@ -50,7 +46,7 @@ impl Account {
#[derive(Debug, Clone, Serialize, Deserialize, TS)]
#[serde(rename_all = "camelCase")]
-#[ts(export, export_to = "../../packages/ui-new/src/types/bindings/auth.ts")]
+#[ts(export, export_to = "auth.ts")]
pub struct OfflineAccount {
pub username: String,
pub uuid: String,
@@ -58,7 +54,7 @@ pub struct OfflineAccount {
#[derive(Debug, Clone, Serialize, Deserialize, TS)]
#[serde(rename_all = "camelCase")]
-#[ts(export, export_to = "../../packages/ui-new/src/types/bindings/auth.ts")]
+#[ts(export, export_to = "auth.ts")]
pub struct MicrosoftAccount {
pub username: String,
pub uuid: String,
@@ -89,7 +85,7 @@ const SCOPE: &str = "XboxLive.SignIn XboxLive.offline_access";
#[derive(Debug, Serialize, Deserialize, TS)]
#[serde(rename_all = "camelCase")]
-#[ts(export, export_to = "../../packages/ui-new/src/types/bindings/auth.ts")]
+#[ts(export, export_to = "auth.ts")]
pub struct DeviceCodeResponse {
pub user_code: String,
pub device_code: String,
@@ -101,7 +97,7 @@ pub struct DeviceCodeResponse {
#[derive(Debug, Serialize, Deserialize, TS)]
#[serde(rename_all = "camelCase")]
-#[ts(export, export_to = "../../packages/ui-new/src/types/bindings/auth.ts")]
+#[ts(export, export_to = "auth.ts")]
pub struct TokenResponse {
pub access_token: String,
pub refresh_token: Option<String>,
@@ -225,7 +221,7 @@ pub struct MinecraftAuthResponse {
#[derive(Debug, Serialize, Deserialize, TS)]
#[serde(rename_all = "camelCase")]
-#[ts(export, export_to = "../../packages/ui-new/src/types/bindings/auth.ts")]
+#[ts(export, export_to = "auth.ts")]
pub struct MinecraftProfile {
pub id: String,
pub name: String,
diff --git a/src-tauri/src/core/config.rs b/src-tauri/src/core/config.rs
index 0d0e8ff..d1f306a 100644
--- a/src-tauri/src/core/config.rs
+++ b/src-tauri/src/core/config.rs
@@ -7,10 +7,7 @@ use ts_rs::TS;
#[derive(Debug, Clone, Serialize, Deserialize, TS)]
#[serde(rename_all = "camelCase")]
-#[ts(
- export,
- export_to = "../../packages/ui-new/src/types/bindings/config.ts"
-)]
+#[ts(export, export_to = "config.ts")]
#[serde(default)]
pub struct AssistantConfig {
pub enabled: bool,
@@ -51,10 +48,7 @@ impl Default for AssistantConfig {
/// Feature-gated arguments configuration
#[derive(Debug, Clone, Serialize, Deserialize, TS)]
#[serde(rename_all = "camelCase")]
-#[ts(
- export,
- export_to = "../../packages/ui-new/src/types/bindings/config.ts"
-)]
+#[ts(export, export_to = "config.ts")]
#[serde(default)]
pub struct FeatureFlags {
/// Demo user: enables demo-related arguments when rules require it
@@ -83,10 +77,7 @@ impl Default for FeatureFlags {
#[derive(Debug, Clone, Serialize, Deserialize, TS)]
#[serde(rename_all = "camelCase")]
-#[ts(
- export,
- export_to = "../../packages/ui-new/src/types/bindings/config.ts"
-)]
+#[ts(export, export_to = "config.ts")]
#[serde(default)]
pub struct LauncherConfig {
pub min_memory: u32, // in MB
diff --git a/src-tauri/src/core/downloader.rs b/src-tauri/src/core/downloader.rs
index d4fc782..a6b11c5 100644
--- a/src-tauri/src/core/downloader.rs
+++ b/src-tauri/src/core/downloader.rs
@@ -2,8 +2,8 @@ use futures::StreamExt;
use serde::{Deserialize, Serialize};
use sha1::Digest as Sha1Digest;
use std::path::PathBuf;
-use std::sync::atomic::{AtomicBool, AtomicU64, AtomicUsize, Ordering};
use std::sync::Arc;
+use std::sync::atomic::{AtomicBool, AtomicU64, AtomicUsize, Ordering};
use tauri::{AppHandle, Emitter, Manager, Window};
use tokio::io::{AsyncSeekExt, AsyncWriteExt};
use tokio::sync::Semaphore;
@@ -11,10 +11,7 @@ use ts_rs::TS;
#[derive(Debug, Clone, Serialize, Deserialize, TS)]
#[serde(rename_all = "camelCase")]
-#[ts(
- export,
- export_to = "../../packages/ui-new/src/types/bindings/downloader.ts"
-)]
+#[ts(export, export_to = "downloader.ts")]
pub struct DownloadTask {
pub url: String,
pub path: PathBuf,
@@ -27,10 +24,7 @@ pub struct DownloadTask {
/// Metadata for resumable downloads stored in .part.meta file
#[derive(Debug, Clone, Serialize, Deserialize, TS)]
#[serde(rename_all = "camelCase")]
-#[ts(
- export,
- export_to = "../../packages/ui-new/src/types/bindings/downloader.ts"
-)]
+#[ts(export, export_to = "downloader.ts")]
pub struct DownloadMetadata {
pub url: String,
pub file_name: String,
@@ -44,10 +38,7 @@ pub struct DownloadMetadata {
/// A download segment for multi-segment parallel downloading
#[derive(Debug, Clone, Serialize, Deserialize, TS)]
#[serde(rename_all = "camelCase")]
-#[ts(
- export,
- export_to = "../../packages/ui-new/src/types/bindings/downloader.ts"
-)]
+#[ts(export, export_to = "downloader.ts")]
pub struct DownloadSegment {
pub start: u64,
pub end: u64,
@@ -58,10 +49,7 @@ pub struct DownloadSegment {
/// Progress event for Java download
#[derive(Debug, Clone, Serialize, Deserialize, TS)]
#[serde(rename_all = "camelCase")]
-#[ts(
- export,
- export_to = "../../packages/ui-new/src/types/bindings/downloader.ts"
-)]
+#[ts(export, export_to = "downloader.ts")]
pub struct JavaDownloadProgress {
pub file_name: String,
pub downloaded_bytes: u64,
@@ -75,10 +63,7 @@ pub struct JavaDownloadProgress {
/// Pending download task for queue persistence
#[derive(Debug, Clone, Serialize, Deserialize, TS)]
#[serde(rename_all = "camelCase")]
-#[ts(
- export,
- export_to = "../../packages/ui-new/src/types/bindings/downloader.ts"
-)]
+#[ts(export, export_to = "downloader.ts")]
pub struct PendingJavaDownload {
pub major_version: u32,
pub image_type: String,
@@ -93,10 +78,7 @@ pub struct PendingJavaDownload {
/// Download queue for persistence
#[derive(Debug, Clone, Serialize, Deserialize, Default, TS)]
#[serde(rename_all = "camelCase")]
-#[ts(
- export,
- export_to = "../../packages/ui-new/src/types/bindings/downloader.ts"
-)]
+#[ts(export, export_to = "downloader.ts")]
pub struct DownloadQueue {
pub pending_downloads: Vec<PendingJavaDownload>,
}
@@ -452,10 +434,7 @@ fn create_new_metadata(
#[derive(Debug, Clone, Serialize, Deserialize, TS)]
#[serde(rename_all = "camelCase")]
-#[ts(
- export,
- export_to = "../../packages/ui/src/types/generated/downloader.ts"
-)]
+#[ts(export, export_to = "downloader.ts")]
pub struct ProgressEvent {
pub file: String,
pub downloaded: u64,
diff --git a/src-tauri/src/core/fabric.rs b/src-tauri/src/core/fabric.rs
index 7385850..a6ef236 100644
--- a/src-tauri/src/core/fabric.rs
+++ b/src-tauri/src/core/fabric.rs
@@ -15,10 +15,7 @@ const FABRIC_META_URL: &str = "https://meta.fabricmc.net/v2";
/// Represents a Fabric loader version from the Meta API.
#[derive(Debug, Deserialize, Serialize, Clone, TS)]
#[serde(rename_all = "camelCase")]
-#[ts(
- export,
- export_to = "../../packages/ui-new/src/types/bindings/fabric.ts"
-)]
+#[ts(export, export_to = "fabric.ts")]
pub struct FabricLoaderVersion {
pub separator: String,
pub build: i32,
@@ -30,10 +27,7 @@ pub struct FabricLoaderVersion {
/// Represents a Fabric intermediary mapping version.
#[derive(Debug, Deserialize, Serialize, Clone, TS)]
#[serde(rename_all = "camelCase")]
-#[ts(
- export,
- export_to = "../../packages/ui-new/src/types/bindings/fabric.ts"
-)]
+#[ts(export, export_to = "fabric.ts")]
pub struct FabricIntermediaryVersion {
pub maven: String,
pub version: String,
@@ -43,10 +37,7 @@ pub struct FabricIntermediaryVersion {
/// Represents a combined loader + intermediary version entry.
#[derive(Debug, Deserialize, Serialize, Clone, TS)]
#[serde(rename_all = "camelCase")]
-#[ts(
- export,
- export_to = "../../packages/ui-new/src/types/bindings/fabric.ts"
-)]
+#[ts(export, export_to = "fabric.ts")]
pub struct FabricLoaderEntry {
pub loader: FabricLoaderVersion,
pub intermediary: FabricIntermediaryVersion,
@@ -57,10 +48,7 @@ pub struct FabricLoaderEntry {
/// Launcher metadata from Fabric Meta API.
#[derive(Debug, Deserialize, Serialize, Clone, TS)]
#[serde(rename_all = "camelCase")]
-#[ts(
- export,
- export_to = "../../packages/ui-new/src/types/bindings/fabric.ts"
-)]
+#[ts(export, export_to = "fabric.ts")]
pub struct FabricLauncherMeta {
pub version: i32,
pub libraries: FabricLibraries,
@@ -71,10 +59,7 @@ pub struct FabricLauncherMeta {
/// Libraries required by Fabric loader.
#[derive(Debug, Deserialize, Serialize, Clone, TS)]
#[serde(rename_all = "camelCase")]
-#[ts(
- export,
- export_to = "../../packages/ui-new/src/types/bindings/fabric.ts"
-)]
+#[ts(export, export_to = "fabric.ts")]
pub struct FabricLibraries {
pub client: Vec<FabricLibrary>,
pub common: Vec<FabricLibrary>,
@@ -84,10 +69,7 @@ pub struct FabricLibraries {
/// A single Fabric library dependency.
#[derive(Debug, Deserialize, Serialize, Clone, TS)]
#[serde(rename_all = "camelCase")]
-#[ts(
- export,
- export_to = "../../packages/ui-new/src/types/bindings/fabric.ts"
-)]
+#[ts(export, export_to = "fabric.ts")]
pub struct FabricLibrary {
pub name: String,
pub url: Option<String>,
@@ -97,11 +79,7 @@ pub struct FabricLibrary {
/// Can be either a struct with client/server fields or a simple string.
#[derive(Debug, Deserialize, Serialize, Clone, TS)]
#[serde(rename_all = "camelCase")]
-#[ts(
- export,
- export_to = "../../packages/ui-new/src/types/bindings/fabric.ts",
- untagged
-)]
+#[ts(export, export_to = "fabric.ts", untagged)]
#[serde(untagged)]
pub enum FabricMainClass {
Structured { client: String, server: String },
@@ -128,10 +106,7 @@ impl FabricMainClass {
/// Represents a Minecraft version supported by Fabric.
#[derive(Debug, Deserialize, Serialize, Clone, TS)]
#[serde(rename_all = "camelCase")]
-#[ts(
- export,
- export_to = "../../packages/ui-new/src/types/bindings/fabric.ts"
-)]
+#[ts(export, export_to = "fabric.ts")]
pub struct FabricGameVersion {
pub version: String,
pub stable: bool,
@@ -140,10 +115,7 @@ pub struct FabricGameVersion {
/// Information about an installed Fabric version.
#[derive(Debug, Serialize, Clone, TS)]
#[serde(rename_all = "camelCase")]
-#[ts(
- export,
- export_to = "../../packages/ui-new/src/types/bindings/fabric.ts"
-)]
+#[ts(export, export_to = "fabric.ts")]
pub struct InstalledFabricVersion {
pub id: String,
pub minecraft_version: String,
@@ -155,8 +127,8 @@ pub struct InstalledFabricVersion {
///
/// # Returns
/// A list of game versions that have Fabric intermediary mappings available.
-pub async fn fetch_supported_game_versions(
-) -> Result<Vec<FabricGameVersion>, Box<dyn Error + Send + Sync>> {
+pub async fn fetch_supported_game_versions()
+-> Result<Vec<FabricGameVersion>, Box<dyn Error + Send + Sync>> {
let url = format!("{}/versions/game", FABRIC_META_URL);
let resp = reqwest::get(&url)
.await?
@@ -169,8 +141,8 @@ pub async fn fetch_supported_game_versions(
///
/// # Returns
/// A list of all Fabric loader versions, ordered by build number (newest first).
-pub async fn fetch_loader_versions(
-) -> Result<Vec<FabricLoaderVersion>, Box<dyn Error + Send + Sync>> {
+pub async fn fetch_loader_versions()
+-> Result<Vec<FabricLoaderVersion>, Box<dyn Error + Send + Sync>> {
let url = format!("{}/versions/loader", FABRIC_META_URL);
let resp = reqwest::get(&url)
.await?
diff --git a/src-tauri/src/core/forge.rs b/src-tauri/src/core/forge.rs
index 1d4ae1d..4452f8e 100644
--- a/src-tauri/src/core/forge.rs
+++ b/src-tauri/src/core/forge.rs
@@ -22,10 +22,7 @@ const FORGE_FILES_URL: &str = "https://files.minecraftforge.net/";
/// Represents a Forge version entry.
#[derive(Debug, Deserialize, Serialize, Clone, TS)]
#[serde(rename_all = "camelCase")]
-#[ts(
- export,
- export_to = "../../packages/ui-new/src/types/bindings/forge.ts"
-)]
+#[ts(export, export_to = "forge.ts")]
pub struct ForgeVersion {
pub version: String,
pub minecraft_version: String,
@@ -44,10 +41,7 @@ struct ForgePromotions {
/// Information about an installed Forge version.
#[derive(Debug, Serialize, Clone, TS)]
#[serde(rename_all = "camelCase")]
-#[ts(
- export,
- export_to = "../../packages/ui-new/src/types/bindings/forge.ts"
-)]
+#[ts(export, export_to = "forge.ts")]
pub struct InstalledForgeVersion {
pub id: String,
pub minecraft_version: String,
diff --git a/src-tauri/src/core/game_version.rs b/src-tauri/src/core/game_version.rs
index 7df631a..82196bd 100644
--- a/src-tauri/src/core/game_version.rs
+++ b/src-tauri/src/core/game_version.rs
@@ -4,10 +4,7 @@ use ts_rs::TS;
/// Represents a Minecraft version JSON, supporting both vanilla and modded (Fabric/Forge) formats.
/// Modded versions use `inheritsFrom` to reference a parent vanilla version.
#[derive(Debug, Deserialize, Serialize, Clone, TS)]
-#[ts(
- export,
- export_to = "../../packages/ui-new/src/types/bindings/game_version.ts"
-)]
+#[ts(export, export_to = "game-version.ts")]
pub struct GameVersion {
pub id: String,
/// Optional for mod loaders that inherit from vanilla
@@ -34,20 +31,14 @@ pub struct GameVersion {
}
#[derive(Debug, Deserialize, Serialize, Clone, TS)]
-#[ts(
- export,
- export_to = "../../packages/ui-new/src/types/bindings/game_version.ts"
-)]
+#[ts(export, export_to = "game-version.ts")]
pub struct Downloads {
pub client: DownloadArtifact,
pub server: Option<DownloadArtifact>,
}
#[derive(Debug, Deserialize, Serialize, Clone, TS)]
-#[ts(
- export,
- export_to = "../../packages/ui-new/src/types/bindings/game_version.ts"
-)]
+#[ts(export, export_to = "game-version.ts")]
pub struct DownloadArtifact {
pub sha1: Option<String>,
pub size: Option<u64>,
@@ -56,10 +47,7 @@ pub struct DownloadArtifact {
}
#[derive(Debug, Deserialize, Serialize, Clone, TS)]
-#[ts(
- export,
- export_to = "../../packages/ui-new/src/types/bindings/game_version.ts"
-)]
+#[ts(export, export_to = "game-version.ts")]
pub struct AssetIndex {
pub id: String,
pub sha1: String,
@@ -70,10 +58,7 @@ pub struct AssetIndex {
}
#[derive(Debug, Deserialize, Serialize, Clone, TS)]
-#[ts(
- export,
- export_to = "../../packages/ui-new/src/types/bindings/game_version.ts"
-)]
+#[ts(export, export_to = "game-version.ts")]
pub struct Library {
pub downloads: Option<LibraryDownloads>,
pub name: String,
@@ -85,10 +70,7 @@ pub struct Library {
}
#[derive(Debug, Deserialize, Serialize, Clone, TS)]
-#[ts(
- export,
- export_to = "../../packages/ui-new/src/types/bindings/game_version.ts"
-)]
+#[ts(export, export_to = "game-version.ts")]
pub struct Rule {
pub action: String, // "allow" or "disallow"
pub os: Option<OsRule>,
@@ -97,10 +79,7 @@ pub struct Rule {
}
#[derive(Debug, Deserialize, Serialize, Clone, TS)]
-#[ts(
- export,
- export_to = "../../packages/ui-new/src/types/bindings/game_version.ts"
-)]
+#[ts(export, export_to = "game-version.ts")]
pub struct OsRule {
pub name: Option<String>, // "linux", "osx", "windows"
pub version: Option<String>, // Regex
@@ -108,10 +87,7 @@ pub struct OsRule {
}
#[derive(Debug, Deserialize, Serialize, Clone, TS)]
-#[ts(
- export,
- export_to = "../../packages/ui-new/src/types/bindings/game_version.ts"
-)]
+#[ts(export, export_to = "game-version.ts")]
pub struct LibraryDownloads {
pub artifact: Option<DownloadArtifact>,
#[ts(type = "Record<string, unknown>")]
@@ -119,10 +95,7 @@ pub struct LibraryDownloads {
}
#[derive(Debug, Deserialize, Serialize, Clone, TS)]
-#[ts(
- export,
- export_to = "../../packages/ui-new/src/types/bindings/game_version.ts"
-)]
+#[ts(export, export_to = "game-version.ts")]
pub struct Arguments {
#[ts(type = "Record<string, unknown>")]
pub game: Option<serde_json::Value>,
@@ -131,10 +104,7 @@ pub struct Arguments {
}
#[derive(Debug, Deserialize, Serialize, Clone, TS)]
-#[ts(
- export,
- export_to = "../../packages/ui-new/src/types/bindings/game_version.ts"
-)]
+#[ts(export, export_to = "game-version.ts")]
pub struct JavaVersion {
pub component: String,
#[serde(rename = "majorVersion")]
diff --git a/src-tauri/src/core/instance.rs b/src-tauri/src/core/instance.rs
index e842ec9..0237270 100644
--- a/src-tauri/src/core/instance.rs
+++ b/src-tauri/src/core/instance.rs
@@ -16,10 +16,7 @@ use ts_rs::TS;
/// Represents a game instance/profile
#[derive(Debug, Clone, Serialize, Deserialize, TS)]
#[serde(rename_all = "camelCase")]
-#[ts(
- export,
- export_to = "../../packages/ui-new/src/types/bindings/instance.ts"
-)]
+#[ts(export, export_to = "instance.ts")]
pub struct Instance {
pub id: String, // 唯一标识符(UUID)
pub name: String, // 显示名称
@@ -40,10 +37,7 @@ pub struct Instance {
/// Memory settings override for an instance
#[derive(Debug, Clone, Serialize, Deserialize, TS)]
#[serde(rename_all = "camelCase")]
-#[ts(
- export,
- export_to = "../../packages/ui-new/src/types/bindings/instance.ts"
-)]
+#[ts(export, export_to = "instance.ts")]
pub struct MemoryOverride {
pub min: u32, // MB
pub max: u32, // MB
@@ -52,10 +46,7 @@ pub struct MemoryOverride {
/// Configuration for all instances
#[derive(Debug, Clone, Serialize, Deserialize, Default, TS)]
#[serde(rename_all = "camelCase")]
-#[ts(
- export,
- export_to = "../../packages/ui-new/src/types/bindings/instance.ts"
-)]
+#[ts(export, export_to = "instance.ts")]
pub struct InstanceConfig {
pub instances: Vec<Instance>,
pub active_instance_id: Option<String>, // 当前活动的实例ID
diff --git a/src-tauri/src/core/java/mod.rs b/src-tauri/src/core/java/mod.rs
index 2215872..c8d936d 100644
--- a/src-tauri/src/core/java/mod.rs
+++ b/src-tauri/src/core/java/mod.rs
@@ -33,10 +33,7 @@ use providers::AdoptiumProvider;
const CACHE_DURATION_SECS: u64 = 24 * 60 * 60;
#[derive(Debug, Clone, Serialize, Deserialize, TS)]
-#[ts(
- export,
- export_to = "../../packages/ui-new/src/types/bindings/java/index.ts"
-)]
+#[ts(export, export_to = "java/core.ts")]
pub struct JavaInstallation {
pub path: String,
pub version: String,
@@ -69,10 +66,7 @@ impl std::fmt::Display for ImageType {
}
#[derive(Debug, Clone, Serialize, Deserialize, TS)]
-#[ts(
- export,
- export_to = "../../packages/ui-new/src/types/bindings/java/index.ts"
-)]
+#[ts(export, export_to = "java/core.ts")]
pub struct JavaReleaseInfo {
pub major_version: u32,
pub image_type: String,
@@ -88,10 +82,7 @@ pub struct JavaReleaseInfo {
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, TS)]
-#[ts(
- export,
- export_to = "../../packages/ui-new/src/types/bindings/java/index.ts"
-)]
+#[ts(export, export_to = "java/core.ts")]
pub struct JavaCatalog {
pub releases: Vec<JavaReleaseInfo>,
pub available_major_versions: Vec<u32>,
@@ -100,10 +91,7 @@ pub struct JavaCatalog {
}
#[derive(Debug, Clone, Serialize, TS)]
-#[ts(
- export,
- export_to = "../../packages/ui-new/src/types/bindings/java/index.ts"
-)]
+#[ts(export, export_to = "java/core.ts")]
pub struct JavaDownloadInfo {
pub version: String, // e.g., "17.0.2+8"
pub release_name: String, // e.g., "jdk-17.0.2+8"
diff --git a/src-tauri/src/core/java/persistence.rs b/src-tauri/src/core/java/persistence.rs
index 6720696..a6727d7 100644
--- a/src-tauri/src/core/java/persistence.rs
+++ b/src-tauri/src/core/java/persistence.rs
@@ -5,10 +5,7 @@ use tauri::{AppHandle, Manager};
use ts_rs::TS;
#[derive(Debug, Clone, Serialize, Deserialize, TS)]
-#[ts(
- export,
- export_to = "../../packages/ui-new/src/types/bindings/java/persistence.ts"
-)]
+#[ts(export, export_to = "java/persistence.ts")]
pub struct JavaConfig {
pub user_defined_paths: Vec<String>,
pub preferred_java_path: Option<String>,
diff --git a/src-tauri/src/core/java/priority.rs b/src-tauri/src/core/java/priority.rs
index b2e9fb4..f991eb7 100644
--- a/src-tauri/src/core/java/priority.rs
+++ b/src-tauri/src/core/java/priority.rs
@@ -1,8 +1,8 @@
use tauri::AppHandle;
+use crate::core::java::JavaInstallation;
use crate::core::java::persistence;
use crate::core::java::validation;
-use crate::core::java::JavaInstallation;
pub async fn resolve_java_for_launch(
app_handle: &AppHandle,
diff --git a/src-tauri/src/core/java/providers/adoptium.rs b/src-tauri/src/core/java/providers/adoptium.rs
index 20fb2d5..1765a99 100644
--- a/src-tauri/src/core/java/providers/adoptium.rs
+++ b/src-tauri/src/core/java/providers/adoptium.rs
@@ -9,10 +9,7 @@ use ts_rs::TS;
const ADOPTIUM_API_BASE: &str = "https://api.adoptium.net/v3";
#[derive(Debug, Clone, Deserialize, TS)]
-#[ts(
- export,
- export_to = "../../packages/ui-new/src/types/bindings/java/providers/adoptium.ts"
-)]
+#[ts(export, export_to = "java/providers/adoptium.ts")]
pub struct AdoptiumAsset {
pub binary: AdoptiumBinary,
pub release_name: String,
@@ -21,10 +18,7 @@ pub struct AdoptiumAsset {
#[derive(Debug, Clone, Deserialize, TS)]
#[allow(dead_code)]
-#[ts(
- export,
- export_to = "../../packages/ui-new/src/types/bindings/java/providers/adoptium.ts"
-)]
+#[ts(export, export_to = "java/providers/adoptium.ts")]
pub struct AdoptiumBinary {
pub os: String,
pub architecture: String,
@@ -35,10 +29,7 @@ pub struct AdoptiumBinary {
}
#[derive(Debug, Clone, Deserialize, TS)]
-#[ts(
- export,
- export_to = "../../packages/ui-new/src/types/bindings/java/providers/adoptium.ts"
-)]
+#[ts(export, export_to = "java/providers/adoptium.ts")]
pub struct AdoptiumPackage {
pub name: String,
pub link: String,
@@ -48,10 +39,7 @@ pub struct AdoptiumPackage {
#[derive(Debug, Clone, Deserialize, TS)]
#[allow(dead_code)]
-#[ts(
- export,
- export_to = "../../packages/ui-new/src/types/bindings/java/providers/adoptium.ts"
-)]
+#[ts(export, export_to = "java/providers/adoptium.ts")]
pub struct AdoptiumVersionData {
pub major: u32,
pub minor: u32,
@@ -62,10 +50,7 @@ pub struct AdoptiumVersionData {
#[derive(Debug, Clone, Deserialize, TS)]
#[allow(dead_code)]
-#[ts(
- export,
- export_to = "../../packages/ui-new/src/types/bindings/java/providers/adoptium.ts"
-)]
+#[ts(export, export_to = "java/providers/adoptium.ts")]
pub struct AvailableReleases {
pub available_releases: Vec<u32>,
pub available_lts_releases: Vec<u32>,
diff --git a/src-tauri/src/core/manifest.rs b/src-tauri/src/core/manifest.rs
index 9e4cb4e..d40d958 100644
--- a/src-tauri/src/core/manifest.rs
+++ b/src-tauri/src/core/manifest.rs
@@ -7,10 +7,7 @@ use ts_rs::TS;
#[derive(Debug, Deserialize, Serialize, TS)]
#[serde(rename_all = "camelCase")]
-#[ts(
- export,
- export_to = "../../packages/ui-new/src/types/bindings/manifest.ts"
-)]
+#[ts(export, export_to = "manifest.ts")]
pub struct VersionManifest {
pub latest: Latest,
pub versions: Vec<Version>,
@@ -18,10 +15,7 @@ pub struct VersionManifest {
#[derive(Debug, Deserialize, Serialize, TS)]
#[serde(rename_all = "camelCase")]
-#[ts(
- export,
- export_to = "../../packages/ui-new/src/types/bindings/manifest.ts"
-)]
+#[ts(export, export_to = "manifest.ts")]
pub struct Latest {
pub release: String,
pub snapshot: String,
@@ -29,10 +23,7 @@ pub struct Latest {
#[derive(Debug, Deserialize, Serialize, TS)]
#[serde(rename_all = "camelCase")]
-#[ts(
- export,
- export_to = "../../packages/ui-new/src/types/bindings/manifest.ts"
-)]
+#[ts(export, export_to = "manifest.ts")]
pub struct Version {
pub id: String,
#[serde(rename = "type")]