@localzet/xtls-sdk
Version:
TypeScript SDK for XRAY/AURA Core
109 lines • 6.11 kB
TypeScript
import { Channel } from 'nice-grpc';
import { ISdkResponse } from '../common/types/sdk-response';
import { AddUserResponseModel, GetInboundUsersResponseModel } from './models';
import { IAddHttpUser, IAddShadowsocks2022User, IAddShadowsocksUser, IAddSocksUser, IAddTrojanUser, IAddVlessUser } from './interfaces';
import { RemoveUserResponseModel } from './models/remove-user/remove-user.response.model';
/**
* Service for managing Xray inbound handlers and their users
*/
export declare class HandlerService {
private readonly channel;
private readonly client;
constructor(channel: Channel);
/**
* Retrieves all users from a specified inbound handler.
* This method fetches user information including their credentials and metadata from the Xray server.
*
* @param {string} tag - The tag identifying the inbound handler to query
* @returns {Promise<ISdkResponse<GetInboundUsersResponseModel>>} A promise that resolves to:
* - On success: An object with `isOk: true` and `data` containing an array of decoded user information
* - On failure: An object with `isOk: false` and error details from HANDLER_ERRORS
*
* @example
* ```typescript
* const handler = new HandlerService(channel);
* const response = await handler.getInboundUsers('Personal');
*
* if (response.isOk) {
* console.log(response.data.users); // Array of DecodedUser objects
* } else {
* console.error(response.message); // Error message
* }
* ```
*/
getInboundUsers(tag: string): Promise<ISdkResponse<GetInboundUsersResponseModel>>;
/**
* Adds a new Trojan user to a specified inbound handler.
*
* @param {IAddTrojanUser} data - The user data containing tag, username, password and level
* @returns {Promise<ISdkResponse<AddUserResponseModel>>} A promise that resolves to:
* - On success: An object with `isOk: true` and `data.success` indicating if user was added
* - On failure: An object with `isOk: false` and error details from HANDLER_ERRORS
*/
addTrojanUser(data: IAddTrojanUser): Promise<ISdkResponse<AddUserResponseModel>>;
/**
* Adds a new VLESS user to a specified inbound handler.
*
* @param {IAddVlessUser} data - The user data containing tag, username, UUID, flow and level
* @returns {Promise<ISdkResponse<AddUserResponseModel>>} A promise that resolves to:
* - On success: An object with `isOk: true` and `data.success` indicating if user was added
* - On failure: An object with `isOk: false` and error details from HANDLER_ERRORS
*/
addVlessUser(data: IAddVlessUser): Promise<ISdkResponse<AddUserResponseModel>>;
/**
* Adds a new Shadowsocks user to a specified inbound handler.
*
* @param {IAddShadowsocksUser} data - The user data containing tag, username, password, cipher type, IV check and level
* @returns {Promise<ISdkResponse<AddUserResponseModel>>} A promise that resolves to:
* - On success: An object with `isOk: true` and `data.success` indicating if user was added
* - On failure: An object with `isOk: false` and error details from HANDLER_ERRORS
*/
addShadowsocksUser(data: IAddShadowsocksUser): Promise<ISdkResponse<AddUserResponseModel>>;
/**
* Adds a new Shadowsocks 2022 user to a specified inbound handler.
*
* @param {IAddShadowsocks2022User} data - The user data containing tag, username, key and level
* @returns {Promise<ISdkResponse<AddUserResponseModel>>} A promise that resolves to:
* - On success: An object with `isOk: true` and `data.success` indicating if user was added
* - On failure: An object with `isOk: false` and error details from HANDLER_ERRORS
*/
addShadowsocks2022User(data: IAddShadowsocks2022User): Promise<ISdkResponse<AddUserResponseModel>>;
/**
* Adds a new SOCKS user to a specified inbound handler.
*
* @param {IAddSocksUser} data - The user data containing tag, username, SOCKS username, SOCKS password and level
* @returns {Promise<ISdkResponse<AddUserResponseModel>>} A promise that resolves to:
* - On success: An object with `isOk: true` and `data.success` indicating if user was added
* - On failure: An object with `isOk: false` and error details from HANDLER_ERRORS
*/
addSocksUser(data: IAddSocksUser): Promise<ISdkResponse<AddUserResponseModel>>;
/**
* Adds a new HTTP user to a specified inbound handler.
*
* @param {IAddHttpUser} data - The user data containing tag, username, HTTP username, HTTP password and level
* @returns {Promise<ISdkResponse<AddUserResponseModel>>} A promise that resolves to:
* - On success: An object with `isOk: true` and `data.success` indicating if user was added
* - On failure: An object with `isOk: false` and error details from HANDLER_ERRORS
*/
addHttpUser(data: IAddHttpUser): Promise<ISdkResponse<AddUserResponseModel>>;
/**
* Removes a user from a specified inbound handler.
*
* @param {string} tag - The tag identifying the inbound handler
* @param {string} username - The username/email of the user to remove
* @returns {Promise<ISdkResponse<RemoveUserResponseModel>>} A promise that resolves to:
* - On success: An object with `isOk: true` and `data.success` indicating if user was removed
* - On failure: An object with `isOk: false` and error details from HANDLER_ERRORS
*/
removeUser(tag: string, username: string): Promise<ISdkResponse<RemoveUserResponseModel>>;
/**
* Gets the count of users in a specified inbound handler.
*
* @param {string} tag - The tag identifying the inbound handler
* @returns {Promise<ISdkResponse<number>>} A promise that resolves to:
* - On success: An object with `isOk: true` and `data` containing the user count
* - On failure: An object with `isOk: false` and error details from HANDLER_ERRORS
*/
getInboundUsersCount(tag: string): Promise<ISdkResponse<number>>;
}
//# sourceMappingURL=handler.service.d.ts.map