- Shared API, i18n, stores, listenerConfig + capabilityForm + form schema - Full routes and pages for all three editions - Listeners: protocol form, Access Profile, templates, clone, versions, batch - Users: bind nodes, subscription, reset traffic feat(ui): align MUI/Mantine/shadcn editions with Ant Design - Shared API, i18n, stores, listenerConfig + capabilityForm + form schema - Full routes and pages for all three editions - Listeners: protocol form, Access Profile, templates, clone, versions, batch - Users: bind nodes, subscription, reset traffic feat(ui): align MUI/Mantine/shadcn editions with Ant Design - Shared API, i18n, stores, listenerConfig + capabilityForm + form schema - Full routes and pages for all three editions - Listeners: protocol form, Access Profile, templates, clone, versions, batch - Users: bind nodes, subscription, reset traffic feat(ui): align MUI/Mantine/shadcn editions with Ant Design - Shared API, i18n, stores, listenerConfig + capabilityForm + form schema - Full routes and pages for all three editions - Listeners: protocol form, Access Profile, templates, clone, versions, batch - Users: bind nodes, subscription, reset traffic feat(ui): align MUI/Mantine/shadcn editions with Ant Design - Shared API, i18n, stores, listenerConfig + capabilityForm + form schema - Full routes and pages for all three editions - Listeners: protocol form, Access Profile, templates, clone, versions, batch - Users: bind nodes, subscription, reset traffic feat(ui): align MUI/Mantine/shadcn editions with Ant Design - Shared API, i18n, stores, listenerConfig + capabilityForm + form schema - Full routes and pages for all three editions - Listeners: protocol form, Access Profile, templates, clone, versions, batch - Users: bind nodes, subscription, reset traffic feat(ui): align MUI/Mantine/shadcn editions with Ant Design - Shared API, i18n, stores, listenerConfig + capabilityForm + form schema - Full routes and pages for all three editions - Listeners: protocol form, Access Profile, templates, clone, versions, batch - Users: bind nodes, subscription, reset traffic feat(ui): align MUI/Mantine/shadcn editions with Ant Design - Shared API, i18n, stores, listenerConfig + capabilityForm + form schema - Full routes and pages for all three editions - Listeners: protocol form, Access Profile, templates, clone, versions, batch - Users: bind nodes, subscription, reset traffic feat(ui): align MUI/Mantine/shadcn editions with Ant Design - Shared API, i18n, stores, listenerConfig + capabilityForm + form schema - Full routes and pages for all three editions - Listeners: protocol form, Access Profile, templates, clone, versions, batch - Users: bind nodes, subscription, reset traffic feat(ui): align MUI/Mantine/shadcn editions with Ant Design - Shared API, i18n, stores, listenerConfig + capabilityForm + form schema - Full routes and pages for all three editions - Listeners: protocol form, Access Profile, templates, clone, versions, batch - Users: bind nodes, subscription, reset traffic feat(ui): align MUI/Mantine/shadcn editions with Ant Design - Shared API, i18n, stores, listenerConfig + capabilityForm + form schema - Full routes and pages for all three editions - Listeners: protocol form, Access Profile, templates, clone, versions, batch - Users: bind nodes, subscription, reset traffic feat(ui): align MUI/Mantine/shadcn editions with Ant Design - Shared API, i18n, stores, listenerConfig + capabilityForm + form schema - Full routes and pages for all three editions - Listeners: protocol form, Access Profile, templates, clone, versions, batch - Users: bind nodes, subscription, reset traffic
34 lines
1.3 KiB
TypeScript
34 lines
1.3 KiB
TypeScript
import client from './client';
|
|
|
|
export interface ProxyEntry {
|
|
name: string;
|
|
type: string;
|
|
server: string;
|
|
port: string;
|
|
password?: string;
|
|
uuid?: string;
|
|
[key: string]: any;
|
|
}
|
|
|
|
export interface VisualConfig {
|
|
proxies: ProxyEntry[];
|
|
proxyGroups?: any[];
|
|
rules?: any[];
|
|
[key: string]: any;
|
|
}
|
|
|
|
export const fetchProxies = () => client.get<ProxyEntry[]>('/config/proxies').then((r) => r.data);
|
|
export const createProxy = (payload: ProxyEntry) =>
|
|
client.post<ProxyEntry>('/config/proxies', payload).then((r) => r.data);
|
|
export const updateProxy = (index: number, payload: ProxyEntry) =>
|
|
client.put<ProxyEntry>(`/config/proxies/${index}`, payload).then((r) => r.data);
|
|
export const deleteProxy = (index: number) => client.delete(`/config/proxies/${index}`);
|
|
export const fetchVisualConfig = () =>
|
|
client.get<VisualConfig>('/config/visual').then((r) => r.data);
|
|
export const saveVisualConfig = (payload: VisualConfig) =>
|
|
client.post('/config/visual', payload).then((r) => r.data);
|
|
export const fetchConfigYAML = () => client.get<{ config: string }>('/config').then((r) => r.data);
|
|
export const generateConfig = () => client.post('/config/generate').then((r) => r.data);
|
|
export const validateConfigYAML = (config: string) =>
|
|
client.post<{ valid: boolean; error?: string }>('/config/validate', { config }).then((r) => r.data);
|