mirror of
https://github.com/aiclientproxy/proxycast.git
synced 2026-09-24 23:10:56 +08:00
fix: 添加 vite-plugin-svgr 依赖并修复 SVG 类型声明
This commit is contained in:
Generated
+2
-21
@@ -1,12 +1,12 @@
|
||||
{
|
||||
"name": "proxycast",
|
||||
"version": "0.17.4",
|
||||
"version": "0.17.8",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "proxycast",
|
||||
"version": "0.17.4",
|
||||
"version": "0.17.8",
|
||||
"dependencies": {
|
||||
"@radix-ui/react-dialog": "^1.1.2",
|
||||
"@radix-ui/react-dropdown-menu": "^2.1.2",
|
||||
@@ -98,7 +98,6 @@
|
||||
"integrity": "sha512-e7jT4DxYvIDLk1ZHmU/m/mB19rex9sv0c2ftBtjSBv+kVM/902eh0fINUzD7UwLLNR+jU585GxUJ8/EBfAM5fw==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"@babel/code-frame": "^7.27.1",
|
||||
"@babel/generator": "^7.28.5",
|
||||
@@ -2666,7 +2665,6 @@
|
||||
"integrity": "sha512-8QqtOQT5ACVlmsvKOJNEaWmRPmcojMOzCz4Hs2BGG/toAp/K38LcsMRyLp349glq5AzJbCEeimEoxaX6v/fLrA==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"@babel/core": "^7.21.3",
|
||||
"@svgr/babel-preset": "8.1.0",
|
||||
@@ -3051,7 +3049,6 @@
|
||||
"integrity": "sha512-LPM2G3Syo1GLzXLGJAKdqoU35XvrWzGJ21/7sgZTUpbkBaOasTj8tjwn6w+hCkqaa1TfJ/w67rJSwYItlJ2mYw==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"undici-types": "~6.21.0"
|
||||
}
|
||||
@@ -3069,7 +3066,6 @@
|
||||
"integrity": "sha512-cisd7gxkzjBKU2GgdYrTdtQx1SORymWyaAFhaxQPK9bYO9ot3Y5OikQRvY0VYQtvwjeQnizCINJAenh/V7MK2w==",
|
||||
"devOptional": true,
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"@types/prop-types": "*",
|
||||
"csstype": "^3.2.2"
|
||||
@@ -3081,7 +3077,6 @@
|
||||
"integrity": "sha512-MEe3UeoENYVFXzoXEWsvcpg6ZvlrFNlOQ7EOsvhI3CfAXwzPfO8Qwuxd40nepsYKqyyVQnTdEfv68q91yLcKrQ==",
|
||||
"devOptional": true,
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"peerDependencies": {
|
||||
"@types/react": "^18.0.0"
|
||||
}
|
||||
@@ -3121,7 +3116,6 @@
|
||||
"integrity": "sha512-N9lBGA9o9aqb1hVMc9hzySbhKibHmB+N3IpoShyV6HyQYRGIhlrO5rQgttypi+yEeKsKI4idxC8Jw6gXKD4THA==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"@typescript-eslint/scope-manager": "8.49.0",
|
||||
"@typescript-eslint/types": "8.49.0",
|
||||
@@ -3444,7 +3438,6 @@
|
||||
"integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"bin": {
|
||||
"acorn": "bin/acorn"
|
||||
},
|
||||
@@ -3663,7 +3656,6 @@
|
||||
}
|
||||
],
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"baseline-browser-mapping": "^2.9.0",
|
||||
"caniuse-lite": "^1.0.30001759",
|
||||
@@ -4085,7 +4077,6 @@
|
||||
"integrity": "sha512-LEyamqS7W5HB3ujJyvi0HQK/dtVINZvd5mAAp9eT5S/ujByGjiZLCzPcHVzuXbpJDJF/cxwHlfceVUDZ2lnSTw==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"@eslint-community/eslint-utils": "^4.8.0",
|
||||
"@eslint-community/regexpp": "^4.12.1",
|
||||
@@ -4727,7 +4718,6 @@
|
||||
"integrity": "sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"bin": {
|
||||
"jiti": "bin/jiti.js"
|
||||
}
|
||||
@@ -5263,7 +5253,6 @@
|
||||
}
|
||||
],
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"nanoid": "^3.3.11",
|
||||
"picocolors": "^1.1.1",
|
||||
@@ -5486,7 +5475,6 @@
|
||||
"resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz",
|
||||
"integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==",
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"loose-envify": "^1.1.0"
|
||||
},
|
||||
@@ -5499,7 +5487,6 @@
|
||||
"resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz",
|
||||
"integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==",
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"loose-envify": "^1.1.0",
|
||||
"scheduler": "^0.23.2"
|
||||
@@ -6010,7 +5997,6 @@
|
||||
"integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
},
|
||||
@@ -6086,7 +6072,6 @@
|
||||
"integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==",
|
||||
"dev": true,
|
||||
"license": "Apache-2.0",
|
||||
"peer": true,
|
||||
"bin": {
|
||||
"tsc": "bin/tsc",
|
||||
"tsserver": "bin/tsserver"
|
||||
@@ -6199,7 +6184,6 @@
|
||||
"integrity": "sha512-o5a9xKjbtuhY6Bi5S3+HvbRERmouabWbyUcpXXUA1u+GNUKoROi9byOJ8M0nHbHYHkYICiMlqxkg1KkYmm25Sw==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"esbuild": "^0.21.3",
|
||||
"postcss": "^8.4.43",
|
||||
@@ -6275,7 +6259,6 @@
|
||||
"integrity": "sha512-E4t7DJ9pESL6E3I8nFjPa4xGUd3PmiWDLsDztS2qXSJWfHtbQnwAWylaBvSNY48I3vr8PTqIZlyK8TE3V3CA4Q==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"@vitest/expect": "4.0.16",
|
||||
"@vitest/mocker": "4.0.16",
|
||||
@@ -6832,7 +6815,6 @@
|
||||
"integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
},
|
||||
@@ -6846,7 +6828,6 @@
|
||||
"integrity": "sha512-dZwN5L1VlUBewiP6H9s2+B3e3Jg96D0vzN+Ry73sOefebhYr9f94wwkMNN/9ouoU8pV1BqA1d1zGk8928cx0rg==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"esbuild": "^0.27.0",
|
||||
"fdir": "^6.5.0",
|
||||
|
||||
+1
-1
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "proxycast",
|
||||
"private": true,
|
||||
"version": "0.17.8",
|
||||
"version": "0.17.8",
|
||||
"type": "module",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
|
||||
Generated
+1
-1
@@ -3377,7 +3377,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "proxycast"
|
||||
version = "0.17.7"
|
||||
version = "0.17.8"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"async-stream",
|
||||
|
||||
@@ -7,7 +7,7 @@ use std::path::PathBuf;
|
||||
pub fn get_app_config_path(app_type: &AppType) -> Option<PathBuf> {
|
||||
let home = dirs::home_dir()?;
|
||||
match app_type {
|
||||
AppType::Claude => Some(home.join(".claude").join("settings.json")),
|
||||
AppType::Claude => Some(home.join(".claude.json")),
|
||||
AppType::Codex => Some(home.join(".codex")),
|
||||
AppType::Gemini => Some(home.join(".gemini")),
|
||||
AppType::ProxyCast => None,
|
||||
@@ -56,16 +56,12 @@ fn clean_claude_auth_conflict(settings: &mut Value) {
|
||||
}
|
||||
}
|
||||
|
||||
/// Sync Claude settings to ~/.claude/settings.json
|
||||
/// Sync Claude settings to ~/.claude.json
|
||||
fn sync_claude_settings(
|
||||
provider: &Provider,
|
||||
) -> Result<(), Box<dyn std::error::Error + Send + Sync>> {
|
||||
let home = dirs::home_dir().ok_or("Cannot find home directory")?;
|
||||
let claude_dir = home.join(".claude");
|
||||
let config_path = claude_dir.join("settings.json");
|
||||
|
||||
// Create directory if not exists
|
||||
std::fs::create_dir_all(&claude_dir)?;
|
||||
let config_path = home.join(".claude.json");
|
||||
|
||||
// Read existing settings to preserve other fields
|
||||
let mut settings: Value = if config_path.exists() {
|
||||
@@ -201,7 +197,7 @@ pub fn read_live_settings(
|
||||
|
||||
match app_type {
|
||||
AppType::Claude => {
|
||||
let path = home.join(".claude").join("settings.json");
|
||||
let path = home.join(".claude.json");
|
||||
if !path.exists() {
|
||||
return Err("Claude settings file not found".into());
|
||||
}
|
||||
@@ -398,7 +394,7 @@ pub fn check_config_sync(
|
||||
fn get_config_last_modified(app_type: &AppType) -> Option<String> {
|
||||
let home = dirs::home_dir()?;
|
||||
let path = match app_type {
|
||||
AppType::Claude => home.join(".claude").join("settings.json"),
|
||||
AppType::Claude => home.join(".claude.json"),
|
||||
AppType::Codex => home.join(".codex").join("auth.json"),
|
||||
AppType::Gemini => home.join(".gemini").join(".env"),
|
||||
AppType::ProxyCast => return None,
|
||||
|
||||
@@ -24,7 +24,7 @@ fn escape_toml_string(s: &str) -> String {
|
||||
pub fn get_mcp_config_path(app_type: &AppType) -> Option<PathBuf> {
|
||||
let home = dirs::home_dir()?;
|
||||
match app_type {
|
||||
AppType::Claude => Some(home.join(".claude").join("settings.json")),
|
||||
AppType::Claude => Some(home.join(".claude.json")),
|
||||
AppType::Codex => Some(home.join(".codex").join("config.toml")),
|
||||
AppType::Gemini => Some(home.join(".gemini").join("settings.json")),
|
||||
AppType::ProxyCast => None,
|
||||
@@ -73,17 +73,13 @@ pub fn sync_mcp_to_app(
|
||||
}
|
||||
}
|
||||
|
||||
/// Sync MCP servers to Claude's settings.json
|
||||
/// Claude uses the mcpServers field in ~/.claude/settings.json
|
||||
/// Sync MCP servers to Claude's .claude.json
|
||||
/// Claude uses the mcpServers field in ~/.claude.json
|
||||
fn sync_mcp_to_claude(
|
||||
servers: &[&McpServer],
|
||||
) -> Result<(), Box<dyn std::error::Error + Send + Sync>> {
|
||||
let home = dirs::home_dir().ok_or("Cannot find home directory")?;
|
||||
let claude_dir = home.join(".claude");
|
||||
let config_path = claude_dir.join("settings.json");
|
||||
|
||||
// Create directory if not exists
|
||||
std::fs::create_dir_all(&claude_dir)?;
|
||||
let config_path = home.join(".claude.json");
|
||||
|
||||
// Read existing settings
|
||||
let mut settings: Value = if config_path.exists() {
|
||||
@@ -259,7 +255,7 @@ pub fn remove_mcp_from_app(
|
||||
|
||||
fn remove_mcp_from_claude(server_id: &str) -> Result<(), Box<dyn std::error::Error + Send + Sync>> {
|
||||
let home = dirs::home_dir().ok_or("Cannot find home directory")?;
|
||||
let config_path = home.join(".claude").join("settings.json");
|
||||
let config_path = home.join(".claude.json");
|
||||
|
||||
if !config_path.exists() {
|
||||
return Ok(());
|
||||
@@ -357,11 +353,11 @@ pub fn remove_mcp_from_all_apps(
|
||||
Ok(())
|
||||
}
|
||||
|
||||
/// Import MCP servers from Claude's settings.json
|
||||
/// Import MCP servers from Claude's .claude.json
|
||||
pub fn import_mcp_from_claude(
|
||||
) -> Result<Vec<crate::models::McpServer>, Box<dyn std::error::Error + Send + Sync>> {
|
||||
let home = dirs::home_dir().ok_or("Cannot find home directory")?;
|
||||
let config_path = home.join(".claude").join("settings.json");
|
||||
let config_path = home.join(".claude.json");
|
||||
|
||||
if !config_path.exists() {
|
||||
return Ok(Vec::new());
|
||||
|
||||
@@ -8,7 +8,7 @@ interface LiveConfigModalProps {
|
||||
}
|
||||
|
||||
const configPaths: Record<AppType, string> = {
|
||||
claude: "~/.claude/settings.json",
|
||||
claude: "~/.claude.json",
|
||||
codex: "~/.codex/auth.json & config.toml",
|
||||
gemini: "~/.gemini/.env & settings.json",
|
||||
proxycast: "",
|
||||
|
||||
@@ -8,7 +8,7 @@ interface LiveConfigModalProps {
|
||||
}
|
||||
|
||||
const configPaths: Record<AppType, string> = {
|
||||
claude: "~/.claude/settings.json",
|
||||
claude: "~/.claude.json",
|
||||
codex: "~/.codex/auth.json & config.toml",
|
||||
gemini: "~/.gemini/.env & settings.json",
|
||||
proxycast: "",
|
||||
|
||||
Vendored
+9
@@ -1,6 +1,15 @@
|
||||
/// <reference types="vite/client" />
|
||||
/// <reference types="vite-plugin-svgr/client" />
|
||||
|
||||
// SVG 模块声明 - 支持 ?react 后缀导入为 React 组件
|
||||
declare module "*.svg?react" {
|
||||
import * as React from "react";
|
||||
const ReactComponent: React.FunctionComponent<
|
||||
React.SVGProps<SVGSVGElement> & { title?: string }
|
||||
>;
|
||||
export default ReactComponent;
|
||||
}
|
||||
|
||||
// 全局类型声明
|
||||
declare global {
|
||||
type NotificationPermission = "default" | "denied" | "granted";
|
||||
|
||||
Reference in New Issue
Block a user