v2.2.3-alpha begin
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "clash-verge",
|
"name": "clash-verge",
|
||||||
"version": "2.2.2",
|
"version": "v2.2.3-alpha",
|
||||||
"license": "GPL-3.0-only",
|
"license": "GPL-3.0-only",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "cross-env RUST_BACKTRACE=1 tauri dev -f verge-dev -- --profile fast-dev",
|
"dev": "cross-env RUST_BACKTRACE=1 tauri dev -f verge-dev -- --profile fast-dev",
|
||||||
@@ -17,6 +17,7 @@
|
|||||||
"portable": "node scripts/portable.mjs",
|
"portable": "node scripts/portable.mjs",
|
||||||
"portable-fixed-webview2": "node scripts/portable-fixed-webview2.mjs",
|
"portable-fixed-webview2": "node scripts/portable-fixed-webview2.mjs",
|
||||||
"fix-alpha-version": "node scripts/fix-alpha_version.mjs",
|
"fix-alpha-version": "node scripts/fix-alpha_version.mjs",
|
||||||
|
"release-version": "node scripts/release_version.mjs",
|
||||||
"release-alpha-version": "node scripts/release-alpha_version.mjs",
|
"release-alpha-version": "node scripts/release-alpha_version.mjs",
|
||||||
"prepare": "husky",
|
"prepare": "husky",
|
||||||
"clean": "cd ./src-tauri && cargo clean && cd -"
|
"clean": "cd ./src-tauri && cargo clean && cd -"
|
||||||
|
|||||||
@@ -1,38 +1,48 @@
|
|||||||
import fs from "fs/promises";
|
import fs from "fs/promises";
|
||||||
import path from "path";
|
import path from "path";
|
||||||
|
import { program } from "commander";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 更新 package.json 文件中的版本号
|
* 更新 package.json 文件中的版本号
|
||||||
|
* @param {string} versionTag 版本标签 (如 "alpha", "beta", "rc")
|
||||||
*/
|
*/
|
||||||
async function updatePackageVersion() {
|
async function updatePackageVersion(versionTag) {
|
||||||
const _dirname = process.cwd();
|
const _dirname = process.cwd();
|
||||||
const packageJsonPath = path.join(_dirname, "package.json");
|
const packageJsonPath = path.join(_dirname, "package.json");
|
||||||
try {
|
try {
|
||||||
const data = await fs.readFile(packageJsonPath, "utf8");
|
const data = await fs.readFile(packageJsonPath, "utf8");
|
||||||
const packageJson = JSON.parse(data);
|
const packageJson = JSON.parse(data);
|
||||||
|
|
||||||
let result = packageJson.version;
|
// 获取当前版本并清理可能存在的旧标签
|
||||||
if (!result.includes("alpha")) {
|
let currentVersion = packageJson.version.replace(
|
||||||
result = `${result}-alpha`;
|
/-(alpha|beta|rc)\.?\d*$/i,
|
||||||
}
|
"",
|
||||||
|
);
|
||||||
|
let newVersion = `${currentVersion}-${versionTag}`;
|
||||||
|
|
||||||
console.log("[INFO]: Current package.json version is: ", result);
|
console.log(
|
||||||
packageJson.version = result;
|
"[INFO]: Current package.json version is: ",
|
||||||
|
packageJson.version,
|
||||||
|
);
|
||||||
|
packageJson.version = newVersion;
|
||||||
await fs.writeFile(
|
await fs.writeFile(
|
||||||
packageJsonPath,
|
packageJsonPath,
|
||||||
JSON.stringify(packageJson, null, 2),
|
JSON.stringify(packageJson, null, 2),
|
||||||
"utf8",
|
"utf8",
|
||||||
);
|
);
|
||||||
console.log(`[INFO]: package.json version updated to: ${result}`);
|
console.log(`[INFO]: package.json version updated to: ${newVersion}`);
|
||||||
|
return newVersion;
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error("Error updating package.json version:", error);
|
console.error("Error updating package.json version:", error);
|
||||||
|
throw error;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 更新 Cargo.toml 文件中的版本号
|
* 更新 Cargo.toml 文件中的版本号
|
||||||
|
* @param {string} versionTag 版本标签
|
||||||
*/
|
*/
|
||||||
async function updateCargoVersion() {
|
async function updateCargoVersion(versionTag) {
|
||||||
const _dirname = process.cwd();
|
const _dirname = process.cwd();
|
||||||
const cargoTomlPath = path.join(_dirname, "src-tauri", "Cargo.toml");
|
const cargoTomlPath = path.join(_dirname, "src-tauri", "Cargo.toml");
|
||||||
try {
|
try {
|
||||||
@@ -40,10 +50,12 @@ async function updateCargoVersion() {
|
|||||||
const lines = data.split("\n");
|
const lines = data.split("\n");
|
||||||
|
|
||||||
const updatedLines = lines.map((line) => {
|
const updatedLines = lines.map((line) => {
|
||||||
if (line.startsWith("version =")) {
|
if (line.trim().startsWith("version =")) {
|
||||||
const versionMatch = line.match(/version\s*=\s*"([^"]+)"/);
|
// 清理可能存在的旧标签
|
||||||
if (versionMatch && !versionMatch[1].includes("alpha")) {
|
const cleanedVersion = line.replace(/-(alpha|beta|rc)\.?\d*"/i, '"');
|
||||||
const newVersion = `${versionMatch[1]}-alpha`;
|
const versionMatch = cleanedVersion.match(/version\s*=\s*"([^"]+)"/);
|
||||||
|
if (versionMatch) {
|
||||||
|
const newVersion = `${versionMatch[1]}-${versionTag}`;
|
||||||
return line.replace(versionMatch[1], newVersion);
|
return line.replace(versionMatch[1], newVersion);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -51,46 +63,83 @@ async function updateCargoVersion() {
|
|||||||
});
|
});
|
||||||
|
|
||||||
await fs.writeFile(cargoTomlPath, updatedLines.join("\n"), "utf8");
|
await fs.writeFile(cargoTomlPath, updatedLines.join("\n"), "utf8");
|
||||||
|
console.log(`[INFO]: Cargo.toml version updated with ${versionTag} tag`);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error("Error updating Cargo.toml version:", error);
|
console.error("Error updating Cargo.toml version:", error);
|
||||||
|
throw error;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 更新 tauri.conf.json 文件中的版本号
|
* 更新 tauri.conf.json 文件中的版本号
|
||||||
|
* @param {string} versionTag 版本标签
|
||||||
*/
|
*/
|
||||||
async function updateTauriConfigVersion() {
|
async function updateTauriConfigVersion(versionTag) {
|
||||||
const _dirname = process.cwd();
|
const _dirname = process.cwd();
|
||||||
const tauriConfigPath = path.join(_dirname, "src-tauri", "tauri.conf.json");
|
const tauriConfigPath = path.join(_dirname, "src-tauri", "tauri.conf.json");
|
||||||
try {
|
try {
|
||||||
const data = await fs.readFile(tauriConfigPath, "utf8");
|
const data = await fs.readFile(tauriConfigPath, "utf8");
|
||||||
const tauriConfig = JSON.parse(data);
|
const tauriConfig = JSON.parse(data);
|
||||||
|
|
||||||
let version = tauriConfig.version;
|
// 清理可能存在的旧标签
|
||||||
if (!version.includes("alpha")) {
|
let currentVersion = tauriConfig.version.replace(
|
||||||
version = `${version}-alpha`;
|
/-(alpha|beta|rc)\.?\d*$/i,
|
||||||
}
|
"",
|
||||||
|
);
|
||||||
|
let newVersion = `${currentVersion}-${versionTag}`;
|
||||||
|
|
||||||
console.log("[INFO]: Current tauri.conf.json version is: ", version);
|
console.log(
|
||||||
tauriConfig.version = version;
|
"[INFO]: Current tauri.conf.json version is: ",
|
||||||
|
tauriConfig.version,
|
||||||
|
);
|
||||||
|
tauriConfig.version = newVersion;
|
||||||
await fs.writeFile(
|
await fs.writeFile(
|
||||||
tauriConfigPath,
|
tauriConfigPath,
|
||||||
JSON.stringify(tauriConfig, null, 2),
|
JSON.stringify(tauriConfig, null, 2),
|
||||||
"utf8",
|
"utf8",
|
||||||
);
|
);
|
||||||
console.log(`[INFO]: tauri.conf.json version updated to: ${version}`);
|
console.log(`[INFO]: tauri.conf.json version updated to: ${newVersion}`);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error("Error updating tauri.conf.json version:", error);
|
console.error("Error updating tauri.conf.json version:", error);
|
||||||
|
throw error;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 主函数,依次更新所有文件的版本号
|
* 主函数,依次更新所有文件的版本号
|
||||||
|
* @param {string} versionTag 版本标签
|
||||||
*/
|
*/
|
||||||
async function main() {
|
async function main(versionTag) {
|
||||||
await updatePackageVersion();
|
if (!versionTag) {
|
||||||
await updateCargoVersion();
|
console.error("Error: Version tag is required");
|
||||||
await updateTauriConfigVersion();
|
process.exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 验证版本标签是否有效
|
||||||
|
const validTags = ["alpha", "beta", "rc"];
|
||||||
|
if (!validTags.includes(versionTag.toLowerCase())) {
|
||||||
|
console.error(
|
||||||
|
`Error: Invalid version tag. Must be one of: ${validTags.join(", ")}`,
|
||||||
|
);
|
||||||
|
process.exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
console.log(`[INFO]: Updating versions with ${versionTag} tag...`);
|
||||||
|
await updatePackageVersion(versionTag);
|
||||||
|
await updateCargoVersion(versionTag);
|
||||||
|
await updateTauriConfigVersion(versionTag);
|
||||||
|
console.log("[SUCCESS]: All version updates completed successfully!");
|
||||||
|
} catch (error) {
|
||||||
|
console.error("[ERROR]: Failed to update versions:", error);
|
||||||
|
process.exit(1);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
main().catch(console.error);
|
// 设置命令行界面
|
||||||
|
program
|
||||||
|
.name("pnpm release-version")
|
||||||
|
.description("Add version tag (alpha/beta/rc) to project version numbers")
|
||||||
|
.argument("<version-tag>", "version tag to add (alpha, beta, or rc)")
|
||||||
|
.action(main)
|
||||||
|
.parse(process.argv);
|
||||||
|
|||||||
195
scripts/release_version.mjs
Normal file
195
scripts/release_version.mjs
Normal file
@@ -0,0 +1,195 @@
|
|||||||
|
import fs from "fs/promises";
|
||||||
|
import path from "path";
|
||||||
|
import { program } from "commander";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 验证版本号格式
|
||||||
|
* @param {string} version
|
||||||
|
* @returns {boolean}
|
||||||
|
*/
|
||||||
|
function isValidVersion(version) {
|
||||||
|
return /^v?\d+\.\d+\.\d+(-(alpha|beta|rc)(\.\d+)?)?$/i.test(version);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 标准化版本号(确保v前缀可选)
|
||||||
|
* @param {string} version
|
||||||
|
* @returns {string}
|
||||||
|
*/
|
||||||
|
function normalizeVersion(version) {
|
||||||
|
return version.startsWith("v") ? version : `v${version}`;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 更新 package.json 文件中的版本号
|
||||||
|
* @param {string} newVersion 新版本号
|
||||||
|
*/
|
||||||
|
async function updatePackageVersion(newVersion) {
|
||||||
|
const _dirname = process.cwd();
|
||||||
|
const packageJsonPath = path.join(_dirname, "package.json");
|
||||||
|
try {
|
||||||
|
const data = await fs.readFile(packageJsonPath, "utf8");
|
||||||
|
const packageJson = JSON.parse(data);
|
||||||
|
|
||||||
|
console.log(
|
||||||
|
"[INFO]: Current package.json version is: ",
|
||||||
|
packageJson.version,
|
||||||
|
);
|
||||||
|
packageJson.version = newVersion.startsWith("v")
|
||||||
|
? newVersion.slice(1)
|
||||||
|
: newVersion;
|
||||||
|
await fs.writeFile(
|
||||||
|
packageJsonPath,
|
||||||
|
JSON.stringify(packageJson, null, 2),
|
||||||
|
"utf8",
|
||||||
|
);
|
||||||
|
console.log(
|
||||||
|
`[INFO]: package.json version updated to: ${packageJson.version}`,
|
||||||
|
);
|
||||||
|
return packageJson.version;
|
||||||
|
} catch (error) {
|
||||||
|
console.error("Error updating package.json version:", error);
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 更新 Cargo.toml 文件中的版本号
|
||||||
|
* @param {string} newVersion 新版本号
|
||||||
|
*/
|
||||||
|
async function updateCargoVersion(newVersion) {
|
||||||
|
const _dirname = process.cwd();
|
||||||
|
const cargoTomlPath = path.join(_dirname, "src-tauri", "Cargo.toml");
|
||||||
|
try {
|
||||||
|
const data = await fs.readFile(cargoTomlPath, "utf8");
|
||||||
|
const lines = data.split("\n");
|
||||||
|
|
||||||
|
const versionWithoutV = newVersion.startsWith("v")
|
||||||
|
? newVersion.slice(1)
|
||||||
|
: newVersion;
|
||||||
|
|
||||||
|
const updatedLines = lines.map((line) => {
|
||||||
|
if (line.trim().startsWith("version =")) {
|
||||||
|
return line.replace(
|
||||||
|
/version\s*=\s*"[^"]+"/,
|
||||||
|
`version = "${versionWithoutV}"`,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
return line;
|
||||||
|
});
|
||||||
|
|
||||||
|
await fs.writeFile(cargoTomlPath, updatedLines.join("\n"), "utf8");
|
||||||
|
console.log(`[INFO]: Cargo.toml version updated to: ${versionWithoutV}`);
|
||||||
|
} catch (error) {
|
||||||
|
console.error("Error updating Cargo.toml version:", error);
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 更新 tauri.conf.json 文件中的版本号
|
||||||
|
* @param {string} newVersion 新版本号
|
||||||
|
*/
|
||||||
|
async function updateTauriConfigVersion(newVersion) {
|
||||||
|
const _dirname = process.cwd();
|
||||||
|
const tauriConfigPath = path.join(_dirname, "src-tauri", "tauri.conf.json");
|
||||||
|
try {
|
||||||
|
const data = await fs.readFile(tauriConfigPath, "utf8");
|
||||||
|
const tauriConfig = JSON.parse(data);
|
||||||
|
|
||||||
|
const versionWithoutV = newVersion.startsWith("v")
|
||||||
|
? newVersion.slice(1)
|
||||||
|
: newVersion;
|
||||||
|
|
||||||
|
console.log(
|
||||||
|
"[INFO]: Current tauri.conf.json version is: ",
|
||||||
|
tauriConfig.version,
|
||||||
|
);
|
||||||
|
tauriConfig.version = versionWithoutV;
|
||||||
|
await fs.writeFile(
|
||||||
|
tauriConfigPath,
|
||||||
|
JSON.stringify(tauriConfig, null, 2),
|
||||||
|
"utf8",
|
||||||
|
);
|
||||||
|
console.log(
|
||||||
|
`[INFO]: tauri.conf.json version updated to: ${versionWithoutV}`,
|
||||||
|
);
|
||||||
|
} catch (error) {
|
||||||
|
console.error("Error updating tauri.conf.json version:", error);
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取当前版本号(从package.json)
|
||||||
|
*/
|
||||||
|
async function getCurrentVersion() {
|
||||||
|
const _dirname = process.cwd();
|
||||||
|
const packageJsonPath = path.join(_dirname, "package.json");
|
||||||
|
try {
|
||||||
|
const data = await fs.readFile(packageJsonPath, "utf8");
|
||||||
|
const packageJson = JSON.parse(data);
|
||||||
|
return packageJson.version;
|
||||||
|
} catch (error) {
|
||||||
|
console.error("Error getting current version:", error);
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 主函数,更新所有文件的版本号
|
||||||
|
* @param {string} versionArg 版本参数(可以是标签或完整版本号)
|
||||||
|
*/
|
||||||
|
async function main(versionArg) {
|
||||||
|
if (!versionArg) {
|
||||||
|
console.error("Error: Version argument is required");
|
||||||
|
process.exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
let newVersion;
|
||||||
|
const validTags = ["alpha", "beta", "rc"];
|
||||||
|
|
||||||
|
// 判断参数是标签还是完整版本号
|
||||||
|
if (validTags.includes(versionArg.toLowerCase())) {
|
||||||
|
// 标签模式:在当前版本基础上添加标签
|
||||||
|
const currentVersion = await getCurrentVersion();
|
||||||
|
const baseVersion = currentVersion.replace(
|
||||||
|
/-(alpha|beta|rc)(\.\d+)?$/i,
|
||||||
|
"",
|
||||||
|
);
|
||||||
|
newVersion = `${baseVersion}-${versionArg.toLowerCase()}`;
|
||||||
|
} else {
|
||||||
|
// 完整版本号模式
|
||||||
|
if (!isValidVersion(versionArg)) {
|
||||||
|
console.error(
|
||||||
|
"Error: Invalid version format. Expected format: vX.X.X or vX.X.X-tag (e.g. v2.2.3 or v2.2.3-alpha)",
|
||||||
|
);
|
||||||
|
process.exit(1);
|
||||||
|
}
|
||||||
|
newVersion = normalizeVersion(versionArg);
|
||||||
|
}
|
||||||
|
|
||||||
|
console.log(`[INFO]: Updating versions to: ${newVersion}`);
|
||||||
|
await updatePackageVersion("v" + newVersion);
|
||||||
|
await updateCargoVersion(newVersion);
|
||||||
|
await updateTauriConfigVersion(newVersion);
|
||||||
|
console.log("[SUCCESS]: All version updates completed successfully!");
|
||||||
|
} catch (error) {
|
||||||
|
console.error("[ERROR]: Failed to update versions:", error);
|
||||||
|
process.exit(1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 设置命令行界面
|
||||||
|
program
|
||||||
|
.name("pnpm release-version")
|
||||||
|
.description(
|
||||||
|
"Update project version numbers. Can add tag (alpha/beta/rc) or set full version (e.g. v2.2.3 or v2.2.3-alpha)",
|
||||||
|
)
|
||||||
|
.argument(
|
||||||
|
"<version>",
|
||||||
|
"version tag (alpha/beta/rc) or full version (e.g. v2.2.3 or v2.2.3-alpha)",
|
||||||
|
)
|
||||||
|
.action(main)
|
||||||
|
.parse(process.argv);
|
||||||
2
src-tauri/Cargo.lock
generated
2
src-tauri/Cargo.lock
generated
@@ -1132,7 +1132,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "clash-verge"
|
name = "clash-verge"
|
||||||
version = "2.2.2"
|
version = "2.2.3-alpha"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"ab_glyph",
|
"ab_glyph",
|
||||||
"aes-gcm",
|
"aes-gcm",
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "clash-verge"
|
name = "clash-verge"
|
||||||
version = "2.2.2"
|
version = "2.2.3-alpha"
|
||||||
description = "clash verge"
|
description = "clash verge"
|
||||||
authors = ["zzzgydi", "wonfen", "MystiPanda"]
|
authors = ["zzzgydi", "wonfen", "MystiPanda"]
|
||||||
license = "GPL-3.0-only"
|
license = "GPL-3.0-only"
|
||||||
|
|||||||
@@ -1,8 +1,9 @@
|
|||||||
use super::CmdResult;
|
use super::CmdResult;
|
||||||
use crate::module::mihomo::MihomoManager;
|
use crate::{logging, module::mihomo::MihomoManager};
|
||||||
|
|
||||||
#[tauri::command]
|
#[tauri::command]
|
||||||
pub async fn get_proxies() -> CmdResult<serde_json::Value> {
|
pub async fn get_proxies() -> CmdResult<serde_json::Value> {
|
||||||
|
println!("get_proxies");
|
||||||
let mannager = MihomoManager::global();
|
let mannager = MihomoManager::global();
|
||||||
let proxies = mannager
|
let proxies = mannager
|
||||||
.refresh_proxies()
|
.refresh_proxies()
|
||||||
@@ -14,7 +15,8 @@ pub async fn get_proxies() -> CmdResult<serde_json::Value> {
|
|||||||
|
|
||||||
#[tauri::command]
|
#[tauri::command]
|
||||||
pub async fn get_providers_proxies() -> CmdResult<serde_json::Value> {
|
pub async fn get_providers_proxies() -> CmdResult<serde_json::Value> {
|
||||||
let mannager = MihomoManager::global();
|
println!("get_providers_proxies");
|
||||||
|
let manager = MihomoManager::global();
|
||||||
let providers = mannager
|
let providers = mannager
|
||||||
.refresh_providers_proxies()
|
.refresh_providers_proxies()
|
||||||
.await
|
.await
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"version": "2.2.2",
|
"version": "2.2.3-alpha",
|
||||||
"$schema": "../node_modules/@tauri-apps/cli/config.schema.json",
|
"$schema": "../node_modules/@tauri-apps/cli/config.schema.json",
|
||||||
"bundle": {
|
"bundle": {
|
||||||
"active": true,
|
"active": true,
|
||||||
@@ -11,9 +11,15 @@
|
|||||||
"icons/icon.icns",
|
"icons/icon.icns",
|
||||||
"icons/icon.ico"
|
"icons/icon.ico"
|
||||||
],
|
],
|
||||||
"resources": ["resources", "resources/locales/*"],
|
"resources": [
|
||||||
|
"resources",
|
||||||
|
"resources/locales/*"
|
||||||
|
],
|
||||||
"publisher": "Clash Verge Rev",
|
"publisher": "Clash Verge Rev",
|
||||||
"externalBin": ["sidecar/verge-mihomo", "sidecar/verge-mihomo-alpha"],
|
"externalBin": [
|
||||||
|
"sidecar/verge-mihomo",
|
||||||
|
"sidecar/verge-mihomo-alpha"
|
||||||
|
],
|
||||||
"copyright": "GNU General Public License v3.0",
|
"copyright": "GNU General Public License v3.0",
|
||||||
"category": "DeveloperTool",
|
"category": "DeveloperTool",
|
||||||
"shortDescription": "Clash Verge Rev",
|
"shortDescription": "Clash Verge Rev",
|
||||||
@@ -44,15 +50,25 @@
|
|||||||
},
|
},
|
||||||
"deep-link": {
|
"deep-link": {
|
||||||
"desktop": {
|
"desktop": {
|
||||||
"schemes": ["clash", "clash-verge"]
|
"schemes": [
|
||||||
|
"clash",
|
||||||
|
"clash-verge"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"app": {
|
"app": {
|
||||||
"security": {
|
"security": {
|
||||||
"capabilities": ["desktop-capability", "migrated"],
|
"capabilities": [
|
||||||
|
"desktop-capability",
|
||||||
|
"migrated"
|
||||||
|
],
|
||||||
"assetProtocol": {
|
"assetProtocol": {
|
||||||
"scope": ["$APPDATA/**", "$RESOURCE/../**", "**"],
|
"scope": [
|
||||||
|
"$APPDATA/**",
|
||||||
|
"$RESOURCE/../**",
|
||||||
|
"**"
|
||||||
|
],
|
||||||
"enable": true
|
"enable": true
|
||||||
},
|
},
|
||||||
"csp": null
|
"csp": null
|
||||||
|
|||||||
Reference in New Issue
Block a user