summaryrefslogtreecommitdiff
path: root/cmd/client/frontend/wailsjs/go
diff options
context:
space:
mode:
authorsergei <sergei@em-sysadmin.xyz>2026-04-14 06:23:55 +0400
committersergei <sergei@em-sysadmin.xyz>2026-04-14 06:23:55 +0400
commit3d51aa455006903345f554a2dd90034993796114 (patch)
tree62a7be2faf047f5eb7886feebc3b815556f03d7f /cmd/client/frontend/wailsjs/go
downloadvpnem-3d51aa455006903345f554a2dd90034993796114.tar.gz
vpnem-3d51aa455006903345f554a2dd90034993796114.tar.bz2
vpnem-3d51aa455006903345f554a2dd90034993796114.zip
vpnem: VPN infrastructure with load-balanced multi-protocol nodesHEADmain
- Multi-protocol VPS nodes (VLESS-REALITY + Hysteria2 + SOCKS5) - Smart load balancing via recommendation API - Windows/Linux client (Go + Wails + sing-box) - Server API with RealIP detection and connection tracking - Auto-deployment via vpnui control plane - Silent Windows installer with UAC elevation - Load-based server recommendation (no sticky sessions) - Best Server one-click connection workflow
Diffstat (limited to 'cmd/client/frontend/wailsjs/go')
-rwxr-xr-xcmd/client/frontend/wailsjs/go/main/App.d.ts60
-rwxr-xr-xcmd/client/frontend/wailsjs/go/main/App.js115
-rwxr-xr-xcmd/client/frontend/wailsjs/go/models.ts319
3 files changed, 494 insertions, 0 deletions
diff --git a/cmd/client/frontend/wailsjs/go/main/App.d.ts b/cmd/client/frontend/wailsjs/go/main/App.d.ts
new file mode 100755
index 0000000..9f3f061
--- /dev/null
+++ b/cmd/client/frontend/wailsjs/go/main/App.d.ts
@@ -0,0 +1,60 @@
+// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL
+// This file is automatically generated. DO NOT EDIT
+import {sync} from '../models';
+import {models} from '../models';
+
+export function AddBypassProcess(arg1:string):Promise<void>;
+
+export function ApplyProfile(arg1:string,arg2:string):Promise<void>;
+
+export function CheckUpdate():Promise<sync.UpdateInfo>;
+
+export function Connect(arg1:string,arg2:string):Promise<void>;
+
+export function Disconnect():Promise<void>;
+
+export function DownloadUpdate():Promise<string>;
+
+export function GetBypassProcesses():Promise<Record<string, any>>;
+
+export function GetCatalog():Promise<models.CatalogV2>;
+
+export function GetExitIP():Promise<string>;
+
+export function GetGeneratedConfig():Promise<string>;
+
+export function GetLogs():Promise<Array<string>>;
+
+export function GetModes():Promise<Array<string>>;
+
+export function GetRecommendation():Promise<Record<string, any>>;
+
+export function GetRecommendationReason():Promise<string>;
+
+export function GetRecommendedServerTag():Promise<string>;
+
+export function GetRuleSets():Promise<Array<Record<string, any>>>;
+
+export function GetServers():Promise<Array<models.Server>>;
+
+export function GetStatus():Promise<Record<string, any>>;
+
+export function IsServerRecommended(arg1:string):Promise<boolean>;
+
+export function MeasureLatency():Promise<Array<sync.LatencyResult>>;
+
+export function RandomNLServer():Promise<string>;
+
+export function RemoveBypassProcess(arg1:string):Promise<void>;
+
+export function ReportConnection(arg1:string,arg2:string,arg3:string):Promise<void>;
+
+export function ReportDisconnect(arg1:string,arg2:string):Promise<void>;
+
+export function SetAutoConnect(arg1:boolean):Promise<void>;
+
+export function SetRuleSetEnabled(arg1:string,arg2:boolean):Promise<void>;
+
+export function SetSystemProxy(arg1:string):Promise<void>;
+
+export function Sync():Promise<void>;
diff --git a/cmd/client/frontend/wailsjs/go/main/App.js b/cmd/client/frontend/wailsjs/go/main/App.js
new file mode 100755
index 0000000..e85beea
--- /dev/null
+++ b/cmd/client/frontend/wailsjs/go/main/App.js
@@ -0,0 +1,115 @@
+// @ts-check
+// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL
+// This file is automatically generated. DO NOT EDIT
+
+export function AddBypassProcess(arg1) {
+ return window['go']['main']['App']['AddBypassProcess'](arg1);
+}
+
+export function ApplyProfile(arg1, arg2) {
+ return window['go']['main']['App']['ApplyProfile'](arg1, arg2);
+}
+
+export function CheckUpdate() {
+ return window['go']['main']['App']['CheckUpdate']();
+}
+
+export function Connect(arg1, arg2) {
+ return window['go']['main']['App']['Connect'](arg1, arg2);
+}
+
+export function Disconnect() {
+ return window['go']['main']['App']['Disconnect']();
+}
+
+export function DownloadUpdate() {
+ return window['go']['main']['App']['DownloadUpdate']();
+}
+
+export function GetBypassProcesses() {
+ return window['go']['main']['App']['GetBypassProcesses']();
+}
+
+export function GetCatalog() {
+ return window['go']['main']['App']['GetCatalog']();
+}
+
+export function GetExitIP() {
+ return window['go']['main']['App']['GetExitIP']();
+}
+
+export function GetGeneratedConfig() {
+ return window['go']['main']['App']['GetGeneratedConfig']();
+}
+
+export function GetLogs() {
+ return window['go']['main']['App']['GetLogs']();
+}
+
+export function GetModes() {
+ return window['go']['main']['App']['GetModes']();
+}
+
+export function GetRecommendation() {
+ return window['go']['main']['App']['GetRecommendation']();
+}
+
+export function GetRecommendationReason() {
+ return window['go']['main']['App']['GetRecommendationReason']();
+}
+
+export function GetRecommendedServerTag() {
+ return window['go']['main']['App']['GetRecommendedServerTag']();
+}
+
+export function GetRuleSets() {
+ return window['go']['main']['App']['GetRuleSets']();
+}
+
+export function GetServers() {
+ return window['go']['main']['App']['GetServers']();
+}
+
+export function GetStatus() {
+ return window['go']['main']['App']['GetStatus']();
+}
+
+export function IsServerRecommended(arg1) {
+ return window['go']['main']['App']['IsServerRecommended'](arg1);
+}
+
+export function MeasureLatency() {
+ return window['go']['main']['App']['MeasureLatency']();
+}
+
+export function RandomNLServer() {
+ return window['go']['main']['App']['RandomNLServer']();
+}
+
+export function RemoveBypassProcess(arg1) {
+ return window['go']['main']['App']['RemoveBypassProcess'](arg1);
+}
+
+export function ReportConnection(arg1, arg2, arg3) {
+ return window['go']['main']['App']['ReportConnection'](arg1, arg2, arg3);
+}
+
+export function ReportDisconnect(arg1, arg2) {
+ return window['go']['main']['App']['ReportDisconnect'](arg1, arg2);
+}
+
+export function SetAutoConnect(arg1) {
+ return window['go']['main']['App']['SetAutoConnect'](arg1);
+}
+
+export function SetRuleSetEnabled(arg1, arg2) {
+ return window['go']['main']['App']['SetRuleSetEnabled'](arg1, arg2);
+}
+
+export function SetSystemProxy(arg1) {
+ return window['go']['main']['App']['SetSystemProxy'](arg1);
+}
+
+export function Sync() {
+ return window['go']['main']['App']['Sync']();
+}
diff --git a/cmd/client/frontend/wailsjs/go/models.ts b/cmd/client/frontend/wailsjs/go/models.ts
new file mode 100755
index 0000000..0f8dc72
--- /dev/null
+++ b/cmd/client/frontend/wailsjs/go/models.ts
@@ -0,0 +1,319 @@
+export namespace models {
+
+ export class CatalogAuth {
+ uuid?: string;
+ method?: string;
+ password?: string;
+
+ static createFrom(source: any = {}) {
+ return new CatalogAuth(source);
+ }
+
+ constructor(source: any = {}) {
+ if ('string' === typeof source) source = JSON.parse(source);
+ this.uuid = source["uuid"];
+ this.method = source["method"];
+ this.password = source["password"];
+ }
+ }
+ export class Reality {
+ enabled?: boolean;
+ public_key?: string;
+ private_key?: string;
+ short_id?: string;
+ fingerprint?: string;
+
+ static createFrom(source: any = {}) {
+ return new Reality(source);
+ }
+
+ constructor(source: any = {}) {
+ if ('string' === typeof source) source = JSON.parse(source);
+ this.enabled = source["enabled"];
+ this.public_key = source["public_key"];
+ this.private_key = source["private_key"];
+ this.short_id = source["short_id"];
+ this.fingerprint = source["fingerprint"];
+ }
+ }
+ export class TLS {
+ enabled: boolean;
+ server_name?: string;
+ insecure?: boolean;
+ alpn?: string[];
+ min_version?: string;
+ max_version?: string;
+ reality?: Reality;
+
+ static createFrom(source: any = {}) {
+ return new TLS(source);
+ }
+
+ constructor(source: any = {}) {
+ if ('string' === typeof source) source = JSON.parse(source);
+ this.enabled = source["enabled"];
+ this.server_name = source["server_name"];
+ this.insecure = source["insecure"];
+ this.alpn = source["alpn"];
+ this.min_version = source["min_version"];
+ this.max_version = source["max_version"];
+ this.reality = this.convertValues(source["reality"], Reality);
+ }
+
+ convertValues(a: any, classs: any, asMap: boolean = false): any {
+ if (!a) {
+ return a;
+ }
+ if (a.slice && a.map) {
+ return (a as any[]).map(elem => this.convertValues(elem, classs));
+ } else if ("object" === typeof a) {
+ if (asMap) {
+ for (const key of Object.keys(a)) {
+ a[key] = new classs(a[key]);
+ }
+ return a;
+ }
+ return new classs(a);
+ }
+ return a;
+ }
+ }
+ export class CatalogProtocol {
+ type: string;
+ enabled: boolean;
+ port: number;
+ tls?: TLS;
+ auth?: CatalogAuth;
+ extra?: Record<string, any>;
+
+ static createFrom(source: any = {}) {
+ return new CatalogProtocol(source);
+ }
+
+ constructor(source: any = {}) {
+ if ('string' === typeof source) source = JSON.parse(source);
+ this.type = source["type"];
+ this.enabled = source["enabled"];
+ this.port = source["port"];
+ this.tls = this.convertValues(source["tls"], TLS);
+ this.auth = this.convertValues(source["auth"], CatalogAuth);
+ this.extra = source["extra"];
+ }
+
+ convertValues(a: any, classs: any, asMap: boolean = false): any {
+ if (!a) {
+ return a;
+ }
+ if (a.slice && a.map) {
+ return (a as any[]).map(elem => this.convertValues(elem, classs));
+ } else if ("object" === typeof a) {
+ if (asMap) {
+ for (const key of Object.keys(a)) {
+ a[key] = new classs(a[key]);
+ }
+ return a;
+ }
+ return new classs(a);
+ }
+ return a;
+ }
+ }
+ export class CatalogNode {
+ id: string;
+ name: string;
+ provider?: string;
+ region: string;
+ host: string;
+ domain?: string;
+ public_host: string;
+ protocols: CatalogProtocol[];
+ status?: string;
+ tags?: string[];
+ metadata?: Record<string, any>;
+
+ static createFrom(source: any = {}) {
+ return new CatalogNode(source);
+ }
+
+ constructor(source: any = {}) {
+ if ('string' === typeof source) source = JSON.parse(source);
+ this.id = source["id"];
+ this.name = source["name"];
+ this.provider = source["provider"];
+ this.region = source["region"];
+ this.host = source["host"];
+ this.domain = source["domain"];
+ this.public_host = source["public_host"];
+ this.protocols = this.convertValues(source["protocols"], CatalogProtocol);
+ this.status = source["status"];
+ this.tags = source["tags"];
+ this.metadata = source["metadata"];
+ }
+
+ convertValues(a: any, classs: any, asMap: boolean = false): any {
+ if (!a) {
+ return a;
+ }
+ if (a.slice && a.map) {
+ return (a as any[]).map(elem => this.convertValues(elem, classs));
+ } else if ("object" === typeof a) {
+ if (asMap) {
+ for (const key of Object.keys(a)) {
+ a[key] = new classs(a[key]);
+ }
+ return a;
+ }
+ return new classs(a);
+ }
+ return a;
+ }
+ }
+
+ export class CatalogV2 {
+ version: string;
+ nodes: CatalogNode[];
+
+ static createFrom(source: any = {}) {
+ return new CatalogV2(source);
+ }
+
+ constructor(source: any = {}) {
+ if ('string' === typeof source) source = JSON.parse(source);
+ this.version = source["version"];
+ this.nodes = this.convertValues(source["nodes"], CatalogNode);
+ }
+
+ convertValues(a: any, classs: any, asMap: boolean = false): any {
+ if (!a) {
+ return a;
+ }
+ if (a.slice && a.map) {
+ return (a as any[]).map(elem => this.convertValues(elem, classs));
+ } else if ("object" === typeof a) {
+ if (asMap) {
+ for (const key of Object.keys(a)) {
+ a[key] = new classs(a[key]);
+ }
+ return a;
+ }
+ return new classs(a);
+ }
+ return a;
+ }
+ }
+
+ export class Transport {
+ type?: string;
+ path?: string;
+
+ static createFrom(source: any = {}) {
+ return new Transport(source);
+ }
+
+ constructor(source: any = {}) {
+ if ('string' === typeof source) source = JSON.parse(source);
+ this.type = source["type"];
+ this.path = source["path"];
+ }
+ }
+ export class Server {
+ tag: string;
+ region: string;
+ type: string;
+ server: string;
+ server_port: number;
+ udp_over_tcp?: boolean;
+ uuid?: string;
+ method?: string;
+ password?: string;
+ obfs_password?: string;
+ up_mbps?: number;
+ down_mbps?: number;
+ tls?: TLS;
+ transport?: Transport;
+ companions?: Server[];
+
+ static createFrom(source: any = {}) {
+ return new Server(source);
+ }
+
+ constructor(source: any = {}) {
+ if ('string' === typeof source) source = JSON.parse(source);
+ this.tag = source["tag"];
+ this.region = source["region"];
+ this.type = source["type"];
+ this.server = source["server"];
+ this.server_port = source["server_port"];
+ this.udp_over_tcp = source["udp_over_tcp"];
+ this.uuid = source["uuid"];
+ this.method = source["method"];
+ this.password = source["password"];
+ this.obfs_password = source["obfs_password"];
+ this.up_mbps = source["up_mbps"];
+ this.down_mbps = source["down_mbps"];
+ this.tls = this.convertValues(source["tls"], TLS);
+ this.transport = this.convertValues(source["transport"], Transport);
+ this.companions = this.convertValues(source["companions"], Server);
+ }
+
+ convertValues(a: any, classs: any, asMap: boolean = false): any {
+ if (!a) {
+ return a;
+ }
+ if (a.slice && a.map) {
+ return (a as any[]).map(elem => this.convertValues(elem, classs));
+ } else if ("object" === typeof a) {
+ if (asMap) {
+ for (const key of Object.keys(a)) {
+ a[key] = new classs(a[key]);
+ }
+ return a;
+ }
+ return new classs(a);
+ }
+ return a;
+ }
+ }
+
+
+}
+
+export namespace sync {
+
+ export class LatencyResult {
+ tag: string;
+ region: string;
+ latency_ms: number;
+
+ static createFrom(source: any = {}) {
+ return new LatencyResult(source);
+ }
+
+ constructor(source: any = {}) {
+ if ('string' === typeof source) source = JSON.parse(source);
+ this.tag = source["tag"];
+ this.region = source["region"];
+ this.latency_ms = source["latency_ms"];
+ }
+ }
+ export class UpdateInfo {
+ available: boolean;
+ version: string;
+ changelog: string;
+ current_version: string;
+
+ static createFrom(source: any = {}) {
+ return new UpdateInfo(source);
+ }
+
+ constructor(source: any = {}) {
+ if ('string' === typeof source) source = JSON.parse(source);
+ this.available = source["available"];
+ this.version = source["version"];
+ this.changelog = source["changelog"];
+ this.current_version = source["current_version"];
+ }
+ }
+
+}
+