feat(deeplink): 深链支持用量查询配置 (#400)

## 新增功能
- 深链导入支持用量查询配置参数:
  - `usageEnabled`: 是否启用用量查询
  - `usageScript`: Base64 编码的用量查询脚本
  - `usageApiKey`: 用量查询专用 API Key
  - `usageBaseUrl`: 用量查询专用 Base URL
  - `usageAccessToken`: 访问令牌(NewAPI 模板)
  - `usageUserId`: 用户 ID(NewAPI 模板)
  - `usageAutoInterval`: 自动查询间隔(分钟)

## 修改文件
- **mod.rs**: DeepLinkImportRequest 结构体添加用量查询字段
- **parser.rs**: 解析 URL 中的用量查询参数
- **provider.rs**: 构建 ProviderMeta 包含 UsageScript 配置
- **deeplink.ts**: 添加 TypeScript 类型定义
- **DeepLinkImportDialog.tsx**: 确认对话框显示用量查询配置

## Bug 修复
- **formatters.ts**: 修复 formatJSON() 格式化时删除 "env" 键的问题

## 深链格式示例
```
ccswitch://v1/import?resource=provider&app=claude&name=xxx&usageEnabled=true&usageScript={base64}&usageAutoInterval=30
```

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
千羽
2025-12-14 22:52:13 +09:00
committed by GitHub
parent bfe9bb6a0c
commit c49cfa5ac5
6 changed files with 222 additions and 16 deletions
+11 -2
View File
@@ -38,6 +38,15 @@ export interface DeepLinkImportRequest {
config?: string;
configFormat?: string;
configUrl?: string;
// Usage script fields (v3.9+)
usageEnabled?: boolean;
usageScript?: string;
usageApiKey?: string;
usageBaseUrl?: string;
usageAccessToken?: string;
usageUserId?: string;
usageAutoInterval?: number;
}
export interface McpImportResult {
@@ -77,7 +86,7 @@ export const deeplinkApi = {
* @returns Merged deep link request with config fields populated
*/
mergeDeeplinkConfig: async (
request: DeepLinkImportRequest,
request: DeepLinkImportRequest
): Promise<DeepLinkImportRequest> => {
return invoke("merge_deeplink_config", { request });
},
@@ -88,7 +97,7 @@ export const deeplinkApi = {
* @returns Import result based on resource type
*/
importFromDeeplink: async (
request: DeepLinkImportRequest,
request: DeepLinkImportRequest
): Promise<ImportResult> => {
return invoke("import_from_deeplink_unified", { request });
},