releases/v2.4.0 (#1145)
Some checks failed
EasyTier Core / pre_job (push) Has been cancelled
EasyTier Core / build_web (push) Has been cancelled
EasyTier Core / build (freebsd-13.2-x86_64, 13.2, ubuntu-22.04, x86_64-unknown-freebsd) (push) Has been cancelled
EasyTier Core / build (linux-aarch64, ubuntu-22.04, aarch64-unknown-linux-musl) (push) Has been cancelled
EasyTier Core / build (linux-arm, ubuntu-22.04, arm-unknown-linux-musleabi) (push) Has been cancelled
EasyTier Core / build (linux-armhf, ubuntu-22.04, arm-unknown-linux-musleabihf) (push) Has been cancelled
EasyTier Core / build (linux-armv7, ubuntu-22.04, armv7-unknown-linux-musleabi) (push) Has been cancelled
EasyTier Core / build (linux-armv7hf, ubuntu-22.04, armv7-unknown-linux-musleabihf) (push) Has been cancelled
EasyTier Core / build (linux-mips, ubuntu-22.04, mips-unknown-linux-musl) (push) Has been cancelled
EasyTier Core / build (linux-mipsel, ubuntu-22.04, mipsel-unknown-linux-musl) (push) Has been cancelled
EasyTier Core / build (linux-x86_64, ubuntu-22.04, x86_64-unknown-linux-musl) (push) Has been cancelled
EasyTier Core / build (macos-aarch64, macos-latest, aarch64-apple-darwin) (push) Has been cancelled
EasyTier Core / build (macos-x86_64, macos-latest, x86_64-apple-darwin) (push) Has been cancelled
EasyTier Core / build (windows-arm64, windows-latest, aarch64-pc-windows-msvc) (push) Has been cancelled
EasyTier Core / build (windows-i686, windows-latest, i686-pc-windows-msvc) (push) Has been cancelled
EasyTier Core / build (windows-x86_64, windows-latest, x86_64-pc-windows-msvc) (push) Has been cancelled
EasyTier Core / core-result (push) Has been cancelled
EasyTier Core / magisk_build (push) Has been cancelled
EasyTier GUI / pre_job (push) Has been cancelled
EasyTier GUI / build-gui (linux-aarch64, aarch64-unknown-linux-gnu, ubuntu-22.04, aarch64-unknown-linux-musl) (push) Has been cancelled
EasyTier GUI / build-gui (linux-x86_64, x86_64-unknown-linux-gnu, ubuntu-22.04, x86_64-unknown-linux-musl) (push) Has been cancelled
EasyTier GUI / build-gui (macos-aarch64, aarch64-apple-darwin, macos-latest, aarch64-apple-darwin) (push) Has been cancelled
EasyTier GUI / build-gui (macos-x86_64, x86_64-apple-darwin, macos-latest, x86_64-apple-darwin) (push) Has been cancelled
EasyTier GUI / build-gui (windows-arm64, aarch64-pc-windows-msvc, windows-latest, aarch64-pc-windows-msvc) (push) Has been cancelled
EasyTier GUI / build-gui (windows-i686, i686-pc-windows-msvc, windows-latest, i686-pc-windows-msvc) (push) Has been cancelled
EasyTier GUI / build-gui (windows-x86_64, x86_64-pc-windows-msvc, windows-latest, x86_64-pc-windows-msvc) (push) Has been cancelled
EasyTier GUI / gui-result (push) Has been cancelled
EasyTier Mobile / pre_job (push) Has been cancelled
EasyTier Mobile / build-mobile (android, ubuntu-22.04, android) (push) Has been cancelled
EasyTier Mobile / mobile-result (push) Has been cancelled
EasyTier OHOS / pre_job (push) Has been cancelled
EasyTier OHOS / build-ohos (push) Has been cancelled
EasyTier Test / pre_job (push) Has been cancelled
EasyTier Test / test (push) Has been cancelled

* bump version to v2.4.0
* update tauri.
* allow try direct connect to public server
This commit is contained in:
Sijie.Sun
2025-07-25 00:16:15 +08:00
committed by GitHub
parent 8e7a8de5e5
commit 1f6a715939
20 changed files with 1006 additions and 539 deletions

View File

@@ -11,7 +11,7 @@ on:
image_tag: image_tag:
description: 'Tag for this image build' description: 'Tag for this image build'
type: string type: string
default: 'v2.3.2' default: 'v2.4.0'
required: true required: true
mark_latest: mark_latest:
description: 'Mark this image as latest' description: 'Mark this image as latest'

View File

@@ -21,7 +21,7 @@ on:
version: version:
description: 'Version for this release' description: 'Version for this release'
type: string type: string
default: 'v2.3.2' default: 'v2.4.0'
required: true required: true
make_latest: make_latest:
description: 'Mark this release as latest' description: 'Mark this release as latest'

1207
Cargo.lock generated

File diff suppressed because it is too large Load Diff

View File

@@ -105,9 +105,9 @@ After successful execution, you can check the network status using `easytier-cli
```text ```text
| ipv4 | hostname | cost | lat_ms | loss_rate | rx_bytes | tx_bytes | tunnel_proto | nat_type | id | version | | ipv4 | hostname | cost | lat_ms | loss_rate | rx_bytes | tx_bytes | tunnel_proto | nat_type | id | version |
| ------------ | -------------- | ----- | ------ | --------- | -------- | -------- | ------------ | -------- | ---------- | --------------- | | ------------ | -------------- | ----- | ------ | --------- | -------- | -------- | ------------ | -------- | ---------- | --------------- |
| 10.126.126.1 | abc-1 | Local | * | * | * | * | udp | FullCone | 439804259 | 2.3.2-70e69a38~ | | 10.126.126.1 | abc-1 | Local | * | * | * | * | udp | FullCone | 439804259 | 2.4.0-70e69a38~ |
| 10.126.126.2 | abc-2 | p2p | 3.452 | 0 | 17.33 kB | 20.42 kB | udp | FullCone | 390879727 | 2.3.2-70e69a38~ | | 10.126.126.2 | abc-2 | p2p | 3.452 | 0 | 17.33 kB | 20.42 kB | udp | FullCone | 390879727 | 2.4.0-70e69a38~ |
| | PublicServer_a | p2p | 27.796 | 0.000 | 50.01 kB | 67.46 kB | tcp | Unknown | 3771642457 | 2.3.2-70e69a38~ | | | PublicServer_a | p2p | 27.796 | 0.000 | 50.01 kB | 67.46 kB | tcp | Unknown | 3771642457 | 2.4.0-70e69a38~ |
``` ```
You can test connectivity between nodes: You can test connectivity between nodes:

View File

@@ -106,9 +106,9 @@ sudo easytier-core -d --network-name abc --network-secret abc -p tcp://public.ea
```text ```text
| ipv4 | hostname | cost | lat_ms | loss_rate | rx_bytes | tx_bytes | tunnel_proto | nat_type | id | version | | ipv4 | hostname | cost | lat_ms | loss_rate | rx_bytes | tx_bytes | tunnel_proto | nat_type | id | version |
| ------------ | -------------- | ----- | ------ | --------- | -------- | -------- | ------------ | -------- | ---------- | --------------- | | ------------ | -------------- | ----- | ------ | --------- | -------- | -------- | ------------ | -------- | ---------- | --------------- |
| 10.126.126.1 | abc-1 | Local | * | * | * | * | udp | FullCone | 439804259 | 2.3.2-70e69a38~ | | 10.126.126.1 | abc-1 | Local | * | * | * | * | udp | FullCone | 439804259 | 2.4.0-70e69a38~ |
| 10.126.126.2 | abc-2 | p2p | 3.452 | 0 | 17.33 kB | 20.42 kB | udp | FullCone | 390879727 | 2.3.2-70e69a38~ | | 10.126.126.2 | abc-2 | p2p | 3.452 | 0 | 17.33 kB | 20.42 kB | udp | FullCone | 390879727 | 2.4.0-70e69a38~ |
| | PublicServer_a | p2p | 27.796 | 0.000 | 50.01 kB | 67.46 kB | tcp | Unknown | 3771642457 | 2.3.2-70e69a38~ | | | PublicServer_a | p2p | 27.796 | 0.000 | 50.01 kB | 67.46 kB | tcp | Unknown | 3771642457 | 2.4.0-70e69a38~ |
``` ```
您可以测试节点之间的连通性: 您可以测试节点之间的连通性:

View File

@@ -1,6 +1,6 @@
id=easytier_magisk id=easytier_magisk
name=EasyTier_Magisk name=EasyTier_Magisk
version=v2.3.2 version=v2.4.0
versionCode=1 versionCode=1
author=EasyTier author=EasyTier
description=easytier magisk module @EasyTier(https://github.com/EasyTier/EasyTier) description=easytier magisk module @EasyTier(https://github.com/EasyTier/EasyTier)

View File

@@ -1010,7 +1010,7 @@ dependencies = [
[[package]] [[package]]
name = "easytier" name = "easytier"
version = "2.3.2" version = "2.4.0"
source = "git+https://github.com/EasyTier/EasyTier.git#a4bb555fac1046d0099c44676fa9d0d8cca55c99" source = "git+https://github.com/EasyTier/EasyTier.git#a4bb555fac1046d0099c44676fa9d0d8cca55c99"
dependencies = [ dependencies = [
"anyhow", "anyhow",

View File

@@ -1,7 +1,7 @@
{ {
"name": "easytier-gui", "name": "easytier-gui",
"type": "module", "type": "module",
"version": "2.3.2", "version": "2.4.0",
"private": true, "private": true,
"packageManager": "pnpm@9.12.1+sha512.e5a7e52a4183a02d5931057f7a0dbff9d5e9ce3161e33fa68ae392125b79282a8a8a470a51dfc8a0ed86221442eb2fb57019b0990ed24fab519bf0e1bc5ccfc4", "packageManager": "pnpm@9.12.1+sha512.e5a7e52a4183a02d5931057f7a0dbff9d5e9ce3161e33fa68ae392125b79282a8a8a470a51dfc8a0ed86221442eb2fb57019b0990ed24fab519bf0e1bc5ccfc4",
"scripts": { "scripts": {
@@ -15,10 +15,10 @@
"dependencies": { "dependencies": {
"@primevue/themes": "4.3.3", "@primevue/themes": "4.3.3",
"@tauri-apps/plugin-autostart": "2.0.0", "@tauri-apps/plugin-autostart": "2.0.0",
"@tauri-apps/plugin-clipboard-manager": "2.0.0", "@tauri-apps/plugin-clipboard-manager": "2.3.0",
"@tauri-apps/plugin-os": "2.0.0", "@tauri-apps/plugin-os": "2.3.0",
"@tauri-apps/plugin-process": "2.0.0", "@tauri-apps/plugin-process": "2.3.0",
"@tauri-apps/plugin-shell": "2.0.1", "@tauri-apps/plugin-shell": "2.3.0",
"@vueuse/core": "^11.2.0", "@vueuse/core": "^11.2.0",
"aura": "link:@primevue\\themes\\aura", "aura": "link:@primevue\\themes\\aura",
"easytier-frontend-lib": "workspace:*", "easytier-frontend-lib": "workspace:*",
@@ -33,8 +33,8 @@
"@antfu/eslint-config": "^3.7.3", "@antfu/eslint-config": "^3.7.3",
"@intlify/unplugin-vue-i18n": "^5.2.0", "@intlify/unplugin-vue-i18n": "^5.2.0",
"@primevue/auto-import-resolver": "4.3.3", "@primevue/auto-import-resolver": "4.3.3",
"@tauri-apps/api": "2.1.0", "@tauri-apps/api": "2.7.0",
"@tauri-apps/cli": "2.1.0", "@tauri-apps/cli": "2.7.1",
"@types/default-gateway": "^7.2.2", "@types/default-gateway": "^7.2.2",
"@types/node": "^22.7.4", "@types/node": "^22.7.4",
"@types/uuid": "^10.0.0", "@types/uuid": "^10.0.0",

View File

@@ -1,6 +1,6 @@
[package] [package]
name = "easytier-gui" name = "easytier-gui"
version = "2.3.2" version = "2.4.0"
description = "EasyTier GUI" description = "EasyTier GUI"
authors = ["you"] authors = ["you"]
edition = "2021" edition = "2021"
@@ -23,7 +23,7 @@ thunk-rs = { git = "https://github.com/easytier/thunk.git", default-features = f
[dependencies] [dependencies]
# wry 0.47 may crash on android, see https://github.com/EasyTier/EasyTier/issues/527 # wry 0.47 may crash on android, see https://github.com/EasyTier/EasyTier/issues/527
tauri = { version = "=2.0.6", features = [ tauri = { version = "2.7.0", features = [
"tray-icon", "tray-icon",
"image-png", "image-png",
"image-ico", "image-ico",
@@ -41,17 +41,17 @@ chrono = { version = "0.4.37", features = ["serde"] }
once_cell = "1.18.0" once_cell = "1.18.0"
dashmap = "6.0" dashmap = "6.0"
elevated-command = "1.1.2" elevated-command = "1.1.2"
gethostname = "0.5" gethostname = "1.0.2"
dunce = "1.0.4" dunce = "1.0.4"
tauri-plugin-shell = "2.0" tauri-plugin-shell = "2.3.0"
tauri-plugin-process = "2.0" tauri-plugin-process = "2.3.0"
tauri-plugin-clipboard-manager = "2.0" tauri-plugin-clipboard-manager = "2.3.0"
tauri-plugin-positioner = { version = "2.0", features = ["tray-icon"] } tauri-plugin-positioner = { version = "2.3.0", features = ["tray-icon"] }
tauri-plugin-vpnservice = { path = "../../tauri-plugin-vpnservice" } tauri-plugin-vpnservice = { path = "../../tauri-plugin-vpnservice" }
tauri-plugin-os = "2.0" tauri-plugin-os = "2.3.0"
tauri-plugin-autostart = "2.0" tauri-plugin-autostart = "2.5.0"
uuid = "1.17.0" uuid = "1.17.0"
@@ -60,4 +60,4 @@ uuid = "1.17.0"
custom-protocol = ["tauri/custom-protocol"] custom-protocol = ["tauri/custom-protocol"]
[target.'cfg(not(any(target_os = "android", target_os = "ios")))'.dependencies] [target.'cfg(not(any(target_os = "android", target_os = "ios")))'.dependencies]
tauri-plugin-single-instance = "2.2.3" tauri-plugin-single-instance = "2.3.2"

View File

@@ -211,7 +211,7 @@ pub fn run() {
// for tray icon, menu need to be built in js // for tray icon, menu need to be built in js
#[cfg(not(target_os = "android"))] #[cfg(not(target_os = "android"))]
let _tray_menu = TrayIconBuilder::with_id("main") let _tray_menu = TrayIconBuilder::with_id("main")
.menu_on_left_click(false) .show_menu_on_left_click(false)
.on_tray_icon_event(|tray, event| { .on_tray_icon_event(|tray, event| {
if let TrayIconEvent::Click { if let TrayIconEvent::Click {
button: MouseButton::Left, button: MouseButton::Left,

View File

@@ -17,7 +17,7 @@
"createUpdaterArtifacts": false "createUpdaterArtifacts": false
}, },
"productName": "easytier-gui", "productName": "easytier-gui",
"version": "2.3.2", "version": "2.4.0",
"identifier": "com.kkrainbow.easytier", "identifier": "com.kkrainbow.easytier",
"plugins": {}, "plugins": {},
"app": { "app": {

View File

@@ -1,6 +1,6 @@
[package] [package]
name = "easytier-web" name = "easytier-web"
version = "2.3.2" version = "2.4.0"
edition = "2021" edition = "2021"
description = "Config server for easytier. easytier-core gets config from this and web frontend use it as restful api server." description = "Config server for easytier. easytier-core gets config from this and web frontend use it as restful api server."

View File

@@ -3,7 +3,7 @@ name = "easytier"
description = "A full meshed p2p VPN, connecting all your devices in one network with one command." description = "A full meshed p2p VPN, connecting all your devices in one network with one command."
homepage = "https://github.com/EasyTier/EasyTier" homepage = "https://github.com/EasyTier/EasyTier"
repository = "https://github.com/EasyTier/EasyTier" repository = "https://github.com/EasyTier/EasyTier"
version = "2.3.2" version = "2.4.0"
edition = "2021" edition = "2021"
authors = ["kkrainbow"] authors = ["kkrainbow"]
keywords = ["vpn", "p2p", "network", "easytier"] keywords = ["vpn", "p2p", "network", "easytier"]

View File

@@ -27,6 +27,8 @@ define_global_var!(MACHINE_UID, Option<String>, None);
define_global_var!(MAX_DIRECT_CONNS_PER_PEER_IN_FOREIGN_NETWORK, u32, 3); define_global_var!(MAX_DIRECT_CONNS_PER_PEER_IN_FOREIGN_NETWORK, u32, 3);
define_global_var!(DIRECT_CONNECT_TO_PUBLIC_SERVER, bool, true);
pub const UDP_HOLE_PUNCH_CONNECTOR_SERVICE_ID: u32 = 2; pub const UDP_HOLE_PUNCH_CONNECTOR_SERVICE_ID: u32 = 2;
pub const WIN_SERVICE_WORK_DIR_REG_KEY: &str = "SOFTWARE\\EasyTier\\Service\\WorkDir"; pub const WIN_SERVICE_WORK_DIR_REG_KEY: &str = "SOFTWARE\\EasyTier\\Service\\WorkDir";

View File

@@ -31,6 +31,7 @@ use crate::{
rpc_types::controller::BaseController, rpc_types::controller::BaseController,
}, },
tunnel::{udp::UdpTunnelConnector, IpVersion}, tunnel::{udp::UdpTunnelConnector, IpVersion},
use_global_var,
}; };
use crate::proto::cli::PeerConnInfo; use crate::proto::cli::PeerConnInfo;
@@ -57,12 +58,14 @@ pub trait PeerManagerForDirectConnector {
impl PeerManagerForDirectConnector for PeerManager { impl PeerManagerForDirectConnector for PeerManager {
async fn list_peers(&self) -> Vec<PeerId> { async fn list_peers(&self) -> Vec<PeerId> {
let mut ret = vec![]; let mut ret = vec![];
let allow_public_server = use_global_var!(DIRECT_CONNECT_TO_PUBLIC_SERVER);
let routes = self.list_routes().await; let routes = self.list_routes().await;
for r in routes for r in routes.iter().filter(|r| {
.iter() r.feature_flag
.filter(|r| r.feature_flag.map(|r| !r.is_public_server).unwrap_or(true)) .map(|r| allow_public_server || !r.is_public_server)
{ .unwrap_or(true)
}) {
ret.push(r.peer_id); ret.push(r.peer_id);
} }
@@ -483,10 +486,17 @@ impl DirectConnectorManagerData {
self.global_ctx.get_network_name(), self.global_ctx.get_network_name(),
); );
let ip_list = rpc_stub let ip_list = match rpc_stub
.get_ip_list(BaseController::default(), GetIpListRequest {}) .get_ip_list(BaseController::default(), GetIpListRequest {})
.await .await
.with_context(|| format!("get ip list from peer {}", dst_peer_id))?; .with_context(|| format!("get ip list from peer {}", dst_peer_id))
{
Ok(ip_list) => ip_list,
Err(e) => {
tracing::error!(?e, "failed to get ip list from peer");
continue;
}
};
tracing::info!(ip_list = ?ip_list, dst_peer_id = ?dst_peer_id, "got ip list"); tracing::info!(ip_list = ?ip_list, dst_peer_id = ?dst_peer_id, "got ip list");

View File

@@ -25,7 +25,6 @@ use crate::{
error::Error, error::Error,
global_ctx::{ArcGlobalCtx, GlobalCtx, GlobalCtxEvent, NetworkIdentity}, global_ctx::{ArcGlobalCtx, GlobalCtx, GlobalCtxEvent, NetworkIdentity},
join_joinset_background, join_joinset_background,
stun::MockStunInfoCollector,
token_bucket::TokenBucket, token_bucket::TokenBucket,
PeerId, PeerId,
}, },
@@ -33,7 +32,7 @@ use crate::{
peers::route_trait::{Route, RouteInterface}, peers::route_trait::{Route, RouteInterface},
proto::{ proto::{
cli::{ForeignNetworkEntryPb, ListForeignNetworkResponse, PeerInfo}, cli::{ForeignNetworkEntryPb, ListForeignNetworkResponse, PeerInfo},
common::{LimiterConfig, NatType}, common::LimiterConfig,
peer_rpc::DirectConnectorRpcServer, peer_rpc::DirectConnectorRpcServer,
}, },
tunnel::packet_def::{PacketType, ZCPacket}, tunnel::packet_def::{PacketType, ZCPacket},
@@ -159,9 +158,8 @@ impl ForeignNetworkEntry {
config.set_hostname(Some(format!("PublicServer_{}", global_ctx.get_hostname()))); config.set_hostname(Some(format!("PublicServer_{}", global_ctx.get_hostname())));
let foreign_global_ctx = Arc::new(GlobalCtx::new(config)); let foreign_global_ctx = Arc::new(GlobalCtx::new(config));
foreign_global_ctx.replace_stun_info_collector(Box::new(MockStunInfoCollector { foreign_global_ctx
udp_nat_type: NatType::Unknown, .replace_stun_info_collector(Box::new(global_ctx.get_stun_info_collector().clone()));
}));
let mut feature_flag = global_ctx.get_feature_flags(); let mut feature_flag = global_ctx.get_feature_flags();
feature_flag.is_public_server = true; feature_flag.is_public_server = true;

View File

@@ -81,12 +81,13 @@ impl PeerRpcManagerTransport for RpcTransport {
async fn send(&self, mut msg: ZCPacket, dst_peer_id: PeerId) -> Result<(), Error> { async fn send(&self, mut msg: ZCPacket, dst_peer_id: PeerId) -> Result<(), Error> {
let peers = self.peers.upgrade().ok_or(Error::Unknown)?; let peers = self.peers.upgrade().ok_or(Error::Unknown)?;
// NOTE: if route info is not exchanged, this will return error. treat it as need relay // NOTE: if route info is not exchanged, this will return None. treat it as public server.
if !peers let is_dst_peer_public_server = peers
.need_relay_by_foreign_network(dst_peer_id) .get_route_peer_info(dst_peer_id)
.await .await
.unwrap_or(true) .and_then(|x| x.feature_flag.map(|x| x.is_public_server))
{ .unwrap_or(true);
if !is_dst_peer_public_server {
self.encryptor self.encryptor
.encrypt(&mut msg) .encrypt(&mut msg)
.with_context(|| "encrypt failed")?; .with_context(|| "encrypt failed")?;

186
pnpm-lock.yaml generated
View File

@@ -15,17 +15,17 @@ importers:
specifier: 2.0.0 specifier: 2.0.0
version: 2.0.0 version: 2.0.0
'@tauri-apps/plugin-clipboard-manager': '@tauri-apps/plugin-clipboard-manager':
specifier: 2.0.0 specifier: 2.3.0
version: 2.0.0 version: 2.3.0
'@tauri-apps/plugin-os': '@tauri-apps/plugin-os':
specifier: 2.0.0 specifier: 2.3.0
version: 2.0.0 version: 2.3.0
'@tauri-apps/plugin-process': '@tauri-apps/plugin-process':
specifier: 2.0.0 specifier: 2.3.0
version: 2.0.0 version: 2.3.0
'@tauri-apps/plugin-shell': '@tauri-apps/plugin-shell':
specifier: 2.0.1 specifier: 2.3.0
version: 2.0.1 version: 2.3.0
'@vueuse/core': '@vueuse/core':
specifier: ^11.2.0 specifier: ^11.2.0
version: 11.2.0(vue@3.5.12(typescript@5.6.3)) version: 11.2.0(vue@3.5.12(typescript@5.6.3))
@@ -64,11 +64,11 @@ importers:
specifier: 4.3.3 specifier: 4.3.3
version: 4.3.3 version: 4.3.3
'@tauri-apps/api': '@tauri-apps/api':
specifier: 2.1.0 specifier: 2.7.0
version: 2.1.0 version: 2.7.0
'@tauri-apps/cli': '@tauri-apps/cli':
specifier: 2.1.0 specifier: 2.7.1
version: 2.1.0 version: 2.7.1
'@types/default-gateway': '@types/default-gateway':
specifier: ^7.2.2 specifier: ^7.2.2
version: 7.2.2 version: 7.2.2
@@ -921,8 +921,8 @@ packages:
resolution: {integrity: sha512-AFbhEo10DP095/45EauinQJ5hJ3rJUmuuqltGguvc3WsvezZN+g8qNHLGWKu60FHQVizMrQY7VJ+zVlBXlQQkQ==} resolution: {integrity: sha512-AFbhEo10DP095/45EauinQJ5hJ3rJUmuuqltGguvc3WsvezZN+g8qNHLGWKu60FHQVizMrQY7VJ+zVlBXlQQkQ==}
engines: {node: '>= 16'} engines: {node: '>= 16'}
'@intlify/message-compiler@12.0.0-alpha.2': '@intlify/message-compiler@12.0.0-alpha.3':
resolution: {integrity: sha512-PD9C+oQbb7BF52hec0+vLnScaFkvnfX+R7zSbODYuRo/E2niAtGmHd0wPvEMsDhf9Z9b8f/qyDsVeZnD/ya9Ug==} resolution: {integrity: sha512-mDDTN3gfYOHhBnpnlby19UHyvMaOnzdlpsIrxUfs44R/vCATfn8pMOkE8PXD2t410xkocEj3FpDcC9XC/0v4Dg==}
engines: {node: '>= 16'} engines: {node: '>= 16'}
'@intlify/message-compiler@9.14.4': '@intlify/message-compiler@9.14.4':
@@ -933,8 +933,8 @@ packages:
resolution: {integrity: sha512-ukFn0I01HsSgr3VYhYcvkTCLS7rGa0gw4A4AMpcy/A9xx/zRJy7PS2BElMXLwUazVFMAr5zuiTk3MQeoeGXaJg==} resolution: {integrity: sha512-ukFn0I01HsSgr3VYhYcvkTCLS7rGa0gw4A4AMpcy/A9xx/zRJy7PS2BElMXLwUazVFMAr5zuiTk3MQeoeGXaJg==}
engines: {node: '>= 16'} engines: {node: '>= 16'}
'@intlify/shared@12.0.0-alpha.2': '@intlify/shared@12.0.0-alpha.3':
resolution: {integrity: sha512-P2DULVX9nz3y8zKNqLw9Es1aAgQ1JGC+kgpx5q7yLmrnAKkPR5MybQWoEhxanefNJgUY5ehsgo+GKif59SrncA==} resolution: {integrity: sha512-ryaNYBvxQjyJUmVuBBg+HHUsmGnfxcEUPR0NCeG4/K9N2qtyFE35C80S15IN6iYFE2MGWLN7HfOSyg0MXZIc9w==}
engines: {node: '>= 16'} engines: {node: '>= 16'}
'@intlify/shared@9.14.4': '@intlify/shared@9.14.4':
@@ -1291,88 +1291,94 @@ packages:
resolution: {integrity: sha512-v454Qs3REHc3Za59U+/eSmBsdmF+3NE5+76+lFDaitVqN4ZglDHENDaMARYKGJVZuxiSkzyqG0SeG7lLQjVkPA==} resolution: {integrity: sha512-v454Qs3REHc3Za59U+/eSmBsdmF+3NE5+76+lFDaitVqN4ZglDHENDaMARYKGJVZuxiSkzyqG0SeG7lLQjVkPA==}
engines: {node: '>= 18.18', npm: '>= 6.6.0', yarn: '>= 1.19.1'} engines: {node: '>= 18.18', npm: '>= 6.6.0', yarn: '>= 1.19.1'}
'@tauri-apps/api@2.1.0': '@tauri-apps/api@2.7.0':
resolution: {integrity: sha512-1w/JygZOiUtdOU7qart78MaB4/qayZ2heB793KhbZRS7I9q4sxXcXaB7He6uFlprD8w5TI9P8HCuEByCvWRtfw==} resolution: {integrity: sha512-v7fVE8jqBl8xJFOcBafDzXFc8FnicoH3j8o8DNNs0tHuEBmXUDqrCOAzMRX0UkfpwqZLqvrvK0GNQ45DfnoVDg==}
'@tauri-apps/cli-darwin-arm64@2.1.0': '@tauri-apps/cli-darwin-arm64@2.7.1':
resolution: {integrity: sha512-ESc6J6CE8hl1yKH2vJ+ALF+thq4Be+DM1mvmTyUCQObvezNCNhzfS6abIUd3ou4x5RGH51ouiANeT3wekU6dCw==} resolution: {integrity: sha512-j2NXQN6+08G03xYiyKDKqbCV2Txt+hUKg0a8hYr92AmoCU8fgCjHyva/p16lGFGUG3P2Yu0xiNe1hXL9ZuRMzA==}
engines: {node: '>= 10'} engines: {node: '>= 10'}
cpu: [arm64] cpu: [arm64]
os: [darwin] os: [darwin]
'@tauri-apps/cli-darwin-x64@2.1.0': '@tauri-apps/cli-darwin-x64@2.7.1':
resolution: {integrity: sha512-TasHS442DFs8cSH2eUQzuDBXUST4ECjCd0yyP+zZzvAruiB0Bg+c8A+I/EnqCvBQ2G2yvWLYG8q/LI7c87A5UA==} resolution: {integrity: sha512-CdYAefeM35zKsc91qIyKzbaO7FhzTyWKsE8hj7tEJ1INYpoh1NeNNyL/NSEA3Nebi5ilugioJ5tRK8ZXG8y3gw==}
engines: {node: '>= 10'} engines: {node: '>= 10'}
cpu: [x64] cpu: [x64]
os: [darwin] os: [darwin]
'@tauri-apps/cli-linux-arm-gnueabihf@2.1.0': '@tauri-apps/cli-linux-arm-gnueabihf@2.7.1':
resolution: {integrity: sha512-aP7ZBGNL4ny07Cbb6kKpUOSrmhcIK2KhjviTzYlh+pPhAptxnC78xQGD3zKQkTi2WliJLPmBYbOHWWQa57lQ9w==} resolution: {integrity: sha512-dnvyJrTA1UJxJjQ8q1N/gWomjP8Twij1BUQu2fdcT3OPpqlrbOk5R1yT0oD/721xoKNjroB5BXCsmmlykllxNg==}
engines: {node: '>= 10'} engines: {node: '>= 10'}
cpu: [arm] cpu: [arm]
os: [linux] os: [linux]
'@tauri-apps/cli-linux-arm64-gnu@2.1.0': '@tauri-apps/cli-linux-arm64-gnu@2.7.1':
resolution: {integrity: sha512-ZTdgD5gLeMCzndMT2f358EkoYkZ5T+Qy6zPzU+l5vv5M7dHVN9ZmblNAYYXmoOuw7y+BY4X/rZvHV9pcGrcanQ==} resolution: {integrity: sha512-FtBW6LJPNRTws3qyUc294AqCWU91l/H0SsFKq6q4Q45MSS4x6wxLxou8zB53tLDGEPx3JSoPLcDaSfPlSbyujQ==}
engines: {node: '>= 10'} engines: {node: '>= 10'}
cpu: [arm64] cpu: [arm64]
os: [linux] os: [linux]
'@tauri-apps/cli-linux-arm64-musl@2.1.0': '@tauri-apps/cli-linux-arm64-musl@2.7.1':
resolution: {integrity: sha512-NzwqjUCilhnhJzusz3d/0i0F1GFrwCQbkwR6yAHUxItESbsGYkZRJk0yMEWkg3PzFnyK4cWTlQJMEU52TjhEzA==} resolution: {integrity: sha512-/HXY0t4FHkpFzjeYS5c16mlA6z0kzn5uKLWptTLTdFSnYpr8FCnOP4Sdkvm2TDQPF2ERxXtNCd+WR/jQugbGnA==}
engines: {node: '>= 10'} engines: {node: '>= 10'}
cpu: [arm64] cpu: [arm64]
os: [linux] os: [linux]
'@tauri-apps/cli-linux-x64-gnu@2.1.0': '@tauri-apps/cli-linux-riscv64-gnu@2.7.1':
resolution: {integrity: sha512-TyiIpMEtZxNOQmuFyfJwaaYbg3movSthpBJLIdPlKxSAB2BW0VWLY3/ZfIxm/G2YGHyREkjJvimzYE0i37PnMA==} resolution: {integrity: sha512-GeW5lVI2GhhnaYckiDzstG2j2Jwlud5d2XefRGwlOK+C/bVGLT1le8MNPYK8wgRlpeK8fG1WnJJYD6Ke7YQ8bg==}
engines: {node: '>= 10'}
cpu: [riscv64]
os: [linux]
'@tauri-apps/cli-linux-x64-gnu@2.7.1':
resolution: {integrity: sha512-DprxKQkPxIPYwUgg+cscpv2lcIUhn2nxEPlk0UeaiV9vATxCXyytxr1gLcj3xgjGyNPlM0MlJyYaPy1JmRg1cA==}
engines: {node: '>= 10'} engines: {node: '>= 10'}
cpu: [x64] cpu: [x64]
os: [linux] os: [linux]
'@tauri-apps/cli-linux-x64-musl@2.1.0': '@tauri-apps/cli-linux-x64-musl@2.7.1':
resolution: {integrity: sha512-/dQd0TlaxBdJACrR72DhynWftzHDaX32eBtS5WBrNJ+nnNb+znM3gON6nJ9tSE9jgDa6n1v2BkI/oIDtypfUXw==} resolution: {integrity: sha512-KLlq3kOK7OUyDR757c0zQjPULpGZpLhNB0lZmZpHXvoOUcqZoCXJHh4dT/mryWZJp5ilrem5l8o9ngrDo0X1AA==}
engines: {node: '>= 10'} engines: {node: '>= 10'}
cpu: [x64] cpu: [x64]
os: [linux] os: [linux]
'@tauri-apps/cli-win32-arm64-msvc@2.1.0': '@tauri-apps/cli-win32-arm64-msvc@2.7.1':
resolution: {integrity: sha512-NdQJO7SmdYqOcE+JPU7bwg7+odfZMWO6g8xF9SXYCMdUzvM2Gv/AQfikNXz5yS7ralRhNFuW32i5dcHlxh4pDg==} resolution: {integrity: sha512-dH7KUjKkSypCeWPiainHyXoES3obS+JIZVoSwSZfKq2gWgs48FY3oT0hQNYrWveE+VR4VoR3b/F3CPGbgFvksA==}
engines: {node: '>= 10'} engines: {node: '>= 10'}
cpu: [arm64] cpu: [arm64]
os: [win32] os: [win32]
'@tauri-apps/cli-win32-ia32-msvc@2.1.0': '@tauri-apps/cli-win32-ia32-msvc@2.7.1':
resolution: {integrity: sha512-f5h8gKT/cB8s1ticFRUpNmHqkmaLutT62oFDB7N//2YTXnxst7EpMIn1w+QimxTvTk2gcx6EcW6bEk/y2hZGzg==} resolution: {integrity: sha512-1oeibfyWQPVcijOrTg709qhbXArjX3x1MPjrmA5anlygwrbByxLBcLXvotcOeULFcnH2FYUMMLLant8kgvwE5A==}
engines: {node: '>= 10'} engines: {node: '>= 10'}
cpu: [ia32] cpu: [ia32]
os: [win32] os: [win32]
'@tauri-apps/cli-win32-x64-msvc@2.1.0': '@tauri-apps/cli-win32-x64-msvc@2.7.1':
resolution: {integrity: sha512-P/+LrdSSb5Xbho1LRP4haBjFHdyPdjWvGgeopL96OVtrFpYnfC+RctB45z2V2XxqFk3HweDDxk266btjttfjGw==} resolution: {integrity: sha512-D7Q9kDObutuirCNLxYQ7KAg2Xxg99AjcdYz/KuMw5HvyEPbkC9Q7JL0vOrQOrHEHxIQ2lYzFOZvKKoC2yyqXcg==}
engines: {node: '>= 10'} engines: {node: '>= 10'}
cpu: [x64] cpu: [x64]
os: [win32] os: [win32]
'@tauri-apps/cli@2.1.0': '@tauri-apps/cli@2.7.1':
resolution: {integrity: sha512-K2VhcKqBhAeS5pNOVdnR/xQRU6jwpgmkSL2ejHXcl0m+kaTggT0WRDQnFtPq6NljA7aE03cvwsbCAoFG7vtkJw==} resolution: {integrity: sha512-RcGWR4jOUEl92w3uvI0h61Llkfj9lwGD1iwvDRD2isMrDhOzjeeeVn9aGzeW1jubQ/kAbMYfydcA4BA0Cy733Q==}
engines: {node: '>= 10'} engines: {node: '>= 10'}
hasBin: true hasBin: true
'@tauri-apps/plugin-autostart@2.0.0': '@tauri-apps/plugin-autostart@2.0.0':
resolution: {integrity: sha512-NEwOQWVasZ8RczXkMLNJokRDujneuMH/UFA5t84DLkbNZUmiD3G7HZWhgSd1YQ0BFU9h9w+h2B/py3y6bzWg4Q==} resolution: {integrity: sha512-NEwOQWVasZ8RczXkMLNJokRDujneuMH/UFA5t84DLkbNZUmiD3G7HZWhgSd1YQ0BFU9h9w+h2B/py3y6bzWg4Q==}
'@tauri-apps/plugin-clipboard-manager@2.0.0': '@tauri-apps/plugin-clipboard-manager@2.3.0':
resolution: {integrity: sha512-V1sXmbjnwfXt/r48RJMwfUmDMSaP/8/YbH4CLNxt+/sf1eHlIP8PRFdFDQwLN0cNQKu2rqQVbG/Wc/Ps6cDUhw==} resolution: {integrity: sha512-81NOBA2P+OTY8RLkBwyl9ZR/0CeggLub4F6zxcxUIfFOAqtky7J61+K/MkH2SC1FMxNBxrX0swDuKvkjkHadlA==}
'@tauri-apps/plugin-os@2.0.0': '@tauri-apps/plugin-os@2.3.0':
resolution: {integrity: sha512-M7hG/nNyQYTJxVG/UhTKhp9mpXriwWzrs9mqDreB8mIgqA3ek5nHLdwRZJWhkKjZrnDT4v9CpA9BhYeplTlAiA==} resolution: {integrity: sha512-dm3bDsMuUngpIQdJ1jaMkMfyQpHyDcaTIKTFaAMHoKeUd+Is3UHO2uzhElr6ZZkfytIIyQtSVnCWdW2Kc58f3g==}
'@tauri-apps/plugin-process@2.0.0': '@tauri-apps/plugin-process@2.3.0':
resolution: {integrity: sha512-OYzi0GnkrF4NAnsHZU7U3tjSoP0PbeAlO7T1Z+vJoBUH9sFQ1NSLqWYWQyf8hcb3gVWe7P1JggjiskO+LST1ug==} resolution: {integrity: sha512-0DNj6u+9csODiV4seSxxRbnLpeGYdojlcctCuLOCgpH9X3+ckVZIEj6H7tRQ7zqWr7kSTEWnrxtAdBb0FbtrmQ==}
'@tauri-apps/plugin-shell@2.0.1': '@tauri-apps/plugin-shell@2.3.0':
resolution: {integrity: sha512-akU1b77sw3qHiynrK0s930y8zKmcdrSD60htjH+mFZqv5WaakZA/XxHR3/sF1nNv9Mgmt/Shls37HwnOr00aSw==} resolution: {integrity: sha512-6GIRxO2z64uxPX4CCTuhQzefvCC0ew7HjdBhMALiGw74vFBDY95VWueAHOHgNOMV4UOUAFupyidN9YulTe5xlA==}
'@tybys/wasm-util@0.9.0': '@tybys/wasm-util@0.9.0':
resolution: {integrity: sha512-6+7nlbMVX/PVDCwaIQ8nTOPveOcFLSt8GcXdx8hD0bt39uWxYT88uXzqTd4fTvqta7oeUJqudepapKNt2DYJFw==} resolution: {integrity: sha512-6+7nlbMVX/PVDCwaIQ8nTOPveOcFLSt8GcXdx8hD0bt39uWxYT88uXzqTd4fTvqta7oeUJqudepapKNt2DYJFw==}
@@ -4404,8 +4410,8 @@ snapshots:
'@intlify/bundle-utils@9.0.0(vue-i18n@10.0.4(vue@3.5.12(typescript@5.6.3)))': '@intlify/bundle-utils@9.0.0(vue-i18n@10.0.4(vue@3.5.12(typescript@5.6.3)))':
dependencies: dependencies:
'@intlify/message-compiler': 12.0.0-alpha.2 '@intlify/message-compiler': 12.0.0-alpha.3
'@intlify/shared': 12.0.0-alpha.2 '@intlify/shared': 12.0.0-alpha.3
acorn: 8.14.0 acorn: 8.14.0
escodegen: 2.1.0 escodegen: 2.1.0
estree-walker: 2.0.2 estree-walker: 2.0.2
@@ -4431,9 +4437,9 @@ snapshots:
'@intlify/shared': 10.0.4 '@intlify/shared': 10.0.4
source-map-js: 1.2.1 source-map-js: 1.2.1
'@intlify/message-compiler@12.0.0-alpha.2': '@intlify/message-compiler@12.0.0-alpha.3':
dependencies: dependencies:
'@intlify/shared': 12.0.0-alpha.2 '@intlify/shared': 12.0.0-alpha.3
source-map-js: 1.2.1 source-map-js: 1.2.1
'@intlify/message-compiler@9.14.4': '@intlify/message-compiler@9.14.4':
@@ -4443,7 +4449,7 @@ snapshots:
'@intlify/shared@10.0.4': {} '@intlify/shared@10.0.4': {}
'@intlify/shared@12.0.0-alpha.2': {} '@intlify/shared@12.0.0-alpha.3': {}
'@intlify/shared@9.14.4': {} '@intlify/shared@9.14.4': {}
@@ -4451,8 +4457,8 @@ snapshots:
dependencies: dependencies:
'@eslint-community/eslint-utils': 4.4.1(eslint@9.14.0(jiti@2.4.0)) '@eslint-community/eslint-utils': 4.4.1(eslint@9.14.0(jiti@2.4.0))
'@intlify/bundle-utils': 9.0.0(vue-i18n@10.0.4(vue@3.5.12(typescript@5.6.3))) '@intlify/bundle-utils': 9.0.0(vue-i18n@10.0.4(vue@3.5.12(typescript@5.6.3)))
'@intlify/shared': 12.0.0-alpha.2 '@intlify/shared': 12.0.0-alpha.3
'@intlify/vue-i18n-extensions': 7.0.0(@intlify/shared@12.0.0-alpha.2)(@vue/compiler-dom@3.5.12)(vue-i18n@10.0.4(vue@3.5.12(typescript@5.6.3)))(vue@3.5.12(typescript@5.6.3)) '@intlify/vue-i18n-extensions': 7.0.0(@intlify/shared@12.0.0-alpha.3)(@vue/compiler-dom@3.5.12)(vue-i18n@10.0.4(vue@3.5.12(typescript@5.6.3)))(vue@3.5.12(typescript@5.6.3))
'@rollup/pluginutils': 5.1.3(rollup@4.24.3) '@rollup/pluginutils': 5.1.3(rollup@4.24.3)
'@typescript-eslint/scope-manager': 7.18.0 '@typescript-eslint/scope-manager': 7.18.0
'@typescript-eslint/typescript-estree': 7.18.0(typescript@5.6.3) '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.6.3)
@@ -4475,11 +4481,11 @@ snapshots:
- typescript - typescript
- webpack-sources - webpack-sources
'@intlify/vue-i18n-extensions@7.0.0(@intlify/shared@12.0.0-alpha.2)(@vue/compiler-dom@3.5.12)(vue-i18n@10.0.4(vue@3.5.12(typescript@5.6.3)))(vue@3.5.12(typescript@5.6.3))': '@intlify/vue-i18n-extensions@7.0.0(@intlify/shared@12.0.0-alpha.3)(@vue/compiler-dom@3.5.12)(vue-i18n@10.0.4(vue@3.5.12(typescript@5.6.3)))(vue@3.5.12(typescript@5.6.3))':
dependencies: dependencies:
'@babel/parser': 7.26.2 '@babel/parser': 7.26.2
optionalDependencies: optionalDependencies:
'@intlify/shared': 12.0.0-alpha.2 '@intlify/shared': 12.0.0-alpha.3
'@vue/compiler-dom': 3.5.12 '@vue/compiler-dom': 3.5.12
vue: 3.5.12(typescript@5.6.3) vue: 3.5.12(typescript@5.6.3)
vue-i18n: 10.0.4(vue@3.5.12(typescript@5.6.3)) vue-i18n: 10.0.4(vue@3.5.12(typescript@5.6.3))
@@ -4794,70 +4800,74 @@ snapshots:
'@tauri-apps/api@2.0.0-rc.0': {} '@tauri-apps/api@2.0.0-rc.0': {}
'@tauri-apps/api@2.1.0': {} '@tauri-apps/api@2.7.0': {}
'@tauri-apps/cli-darwin-arm64@2.1.0': '@tauri-apps/cli-darwin-arm64@2.7.1':
optional: true optional: true
'@tauri-apps/cli-darwin-x64@2.1.0': '@tauri-apps/cli-darwin-x64@2.7.1':
optional: true optional: true
'@tauri-apps/cli-linux-arm-gnueabihf@2.1.0': '@tauri-apps/cli-linux-arm-gnueabihf@2.7.1':
optional: true optional: true
'@tauri-apps/cli-linux-arm64-gnu@2.1.0': '@tauri-apps/cli-linux-arm64-gnu@2.7.1':
optional: true optional: true
'@tauri-apps/cli-linux-arm64-musl@2.1.0': '@tauri-apps/cli-linux-arm64-musl@2.7.1':
optional: true optional: true
'@tauri-apps/cli-linux-x64-gnu@2.1.0': '@tauri-apps/cli-linux-riscv64-gnu@2.7.1':
optional: true optional: true
'@tauri-apps/cli-linux-x64-musl@2.1.0': '@tauri-apps/cli-linux-x64-gnu@2.7.1':
optional: true optional: true
'@tauri-apps/cli-win32-arm64-msvc@2.1.0': '@tauri-apps/cli-linux-x64-musl@2.7.1':
optional: true optional: true
'@tauri-apps/cli-win32-ia32-msvc@2.1.0': '@tauri-apps/cli-win32-arm64-msvc@2.7.1':
optional: true optional: true
'@tauri-apps/cli-win32-x64-msvc@2.1.0': '@tauri-apps/cli-win32-ia32-msvc@2.7.1':
optional: true optional: true
'@tauri-apps/cli@2.1.0': '@tauri-apps/cli-win32-x64-msvc@2.7.1':
optional: true
'@tauri-apps/cli@2.7.1':
optionalDependencies: optionalDependencies:
'@tauri-apps/cli-darwin-arm64': 2.1.0 '@tauri-apps/cli-darwin-arm64': 2.7.1
'@tauri-apps/cli-darwin-x64': 2.1.0 '@tauri-apps/cli-darwin-x64': 2.7.1
'@tauri-apps/cli-linux-arm-gnueabihf': 2.1.0 '@tauri-apps/cli-linux-arm-gnueabihf': 2.7.1
'@tauri-apps/cli-linux-arm64-gnu': 2.1.0 '@tauri-apps/cli-linux-arm64-gnu': 2.7.1
'@tauri-apps/cli-linux-arm64-musl': 2.1.0 '@tauri-apps/cli-linux-arm64-musl': 2.7.1
'@tauri-apps/cli-linux-x64-gnu': 2.1.0 '@tauri-apps/cli-linux-riscv64-gnu': 2.7.1
'@tauri-apps/cli-linux-x64-musl': 2.1.0 '@tauri-apps/cli-linux-x64-gnu': 2.7.1
'@tauri-apps/cli-win32-arm64-msvc': 2.1.0 '@tauri-apps/cli-linux-x64-musl': 2.7.1
'@tauri-apps/cli-win32-ia32-msvc': 2.1.0 '@tauri-apps/cli-win32-arm64-msvc': 2.7.1
'@tauri-apps/cli-win32-x64-msvc': 2.1.0 '@tauri-apps/cli-win32-ia32-msvc': 2.7.1
'@tauri-apps/cli-win32-x64-msvc': 2.7.1
'@tauri-apps/plugin-autostart@2.0.0': '@tauri-apps/plugin-autostart@2.0.0':
dependencies: dependencies:
'@tauri-apps/api': 2.1.0 '@tauri-apps/api': 2.7.0
'@tauri-apps/plugin-clipboard-manager@2.0.0': '@tauri-apps/plugin-clipboard-manager@2.3.0':
dependencies: dependencies:
'@tauri-apps/api': 2.1.0 '@tauri-apps/api': 2.7.0
'@tauri-apps/plugin-os@2.0.0': '@tauri-apps/plugin-os@2.3.0':
dependencies: dependencies:
'@tauri-apps/api': 2.1.0 '@tauri-apps/api': 2.7.0
'@tauri-apps/plugin-process@2.0.0': '@tauri-apps/plugin-process@2.3.0':
dependencies: dependencies:
'@tauri-apps/api': 2.1.0 '@tauri-apps/api': 2.7.0
'@tauri-apps/plugin-shell@2.0.1': '@tauri-apps/plugin-shell@2.3.0':
dependencies: dependencies:
'@tauri-apps/api': 2.1.0 '@tauri-apps/api': 2.7.0
'@tybys/wasm-util@0.9.0': '@tybys/wasm-util@0.9.0':
dependencies: dependencies:

View File

@@ -2,6 +2,8 @@
Default permissions for the plugin Default permissions for the plugin
#### This default permission set includes the following:
- `allow-ping` - `allow-ping`
- `allow-start-vpn` - `allow-start-vpn`

View File

@@ -49,7 +49,7 @@
"minimum": 1.0 "minimum": 1.0
}, },
"description": { "description": {
"description": "Human-readable description of what the permission does. Tauri convention is to use <h4> headings in markdown content for Tauri documentation generation purposes.", "description": "Human-readable description of what the permission does. Tauri convention is to use `<h4>` headings in markdown content for Tauri documentation generation purposes.",
"type": [ "type": [
"string", "string",
"null" "null"
@@ -111,7 +111,7 @@
"type": "string" "type": "string"
}, },
"description": { "description": {
"description": "Human-readable description of what the permission does. Tauri internal convention is to use <h4> headings in markdown content for Tauri documentation generation purposes.", "description": "Human-readable description of what the permission does. Tauri internal convention is to use `<h4>` headings in markdown content for Tauri documentation generation purposes.",
"type": [ "type": [
"string", "string",
"null" "null"
@@ -297,67 +297,80 @@
{ {
"description": "Enables the ping command without any pre-configured scope.", "description": "Enables the ping command without any pre-configured scope.",
"type": "string", "type": "string",
"const": "allow-ping" "const": "allow-ping",
"markdownDescription": "Enables the ping command without any pre-configured scope."
}, },
{ {
"description": "Denies the ping command without any pre-configured scope.", "description": "Denies the ping command without any pre-configured scope.",
"type": "string", "type": "string",
"const": "deny-ping" "const": "deny-ping",
"markdownDescription": "Denies the ping command without any pre-configured scope."
}, },
{ {
"description": "Enables the prepare_vpn command without any pre-configured scope.", "description": "Enables the prepare_vpn command without any pre-configured scope.",
"type": "string", "type": "string",
"const": "allow-prepare-vpn" "const": "allow-prepare-vpn",
"markdownDescription": "Enables the prepare_vpn command without any pre-configured scope."
}, },
{ {
"description": "Denies the prepare_vpn command without any pre-configured scope.", "description": "Denies the prepare_vpn command without any pre-configured scope.",
"type": "string", "type": "string",
"const": "deny-prepare-vpn" "const": "deny-prepare-vpn",
"markdownDescription": "Denies the prepare_vpn command without any pre-configured scope."
}, },
{ {
"description": "Enables the registerListener command without any pre-configured scope.", "description": "Enables the registerListener command without any pre-configured scope.",
"type": "string", "type": "string",
"const": "allow-registerListener" "const": "allow-registerListener",
"markdownDescription": "Enables the registerListener command without any pre-configured scope."
}, },
{ {
"description": "Denies the registerListener command without any pre-configured scope.", "description": "Denies the registerListener command without any pre-configured scope.",
"type": "string", "type": "string",
"const": "deny-registerListener" "const": "deny-registerListener",
"markdownDescription": "Denies the registerListener command without any pre-configured scope."
}, },
{ {
"description": "Enables the register_listener command without any pre-configured scope.", "description": "Enables the register_listener command without any pre-configured scope.",
"type": "string", "type": "string",
"const": "allow-register-listener" "const": "allow-register-listener",
"markdownDescription": "Enables the register_listener command without any pre-configured scope."
}, },
{ {
"description": "Denies the register_listener command without any pre-configured scope.", "description": "Denies the register_listener command without any pre-configured scope.",
"type": "string", "type": "string",
"const": "deny-register-listener" "const": "deny-register-listener",
"markdownDescription": "Denies the register_listener command without any pre-configured scope."
}, },
{ {
"description": "Enables the start_vpn command without any pre-configured scope.", "description": "Enables the start_vpn command without any pre-configured scope.",
"type": "string", "type": "string",
"const": "allow-start-vpn" "const": "allow-start-vpn",
"markdownDescription": "Enables the start_vpn command without any pre-configured scope."
}, },
{ {
"description": "Denies the start_vpn command without any pre-configured scope.", "description": "Denies the start_vpn command without any pre-configured scope.",
"type": "string", "type": "string",
"const": "deny-start-vpn" "const": "deny-start-vpn",
"markdownDescription": "Denies the start_vpn command without any pre-configured scope."
}, },
{ {
"description": "Enables the stop_vpn command without any pre-configured scope.", "description": "Enables the stop_vpn command without any pre-configured scope.",
"type": "string", "type": "string",
"const": "allow-stop-vpn" "const": "allow-stop-vpn",
"markdownDescription": "Enables the stop_vpn command without any pre-configured scope."
}, },
{ {
"description": "Denies the stop_vpn command without any pre-configured scope.", "description": "Denies the stop_vpn command without any pre-configured scope.",
"type": "string", "type": "string",
"const": "deny-stop-vpn" "const": "deny-stop-vpn",
"markdownDescription": "Denies the stop_vpn command without any pre-configured scope."
}, },
{ {
"description": "Default permissions for the plugin", "description": "Default permissions for the plugin\n#### This default permission set includes:\n\n- `allow-ping`\n- `allow-start-vpn`",
"type": "string", "type": "string",
"const": "default" "const": "default",
"markdownDescription": "Default permissions for the plugin\n#### This default permission set includes:\n\n- `allow-ping`\n- `allow-start-vpn`"
} }
] ]
} }