UNPKG

@maniwrld/marzjs

Version:

A powerful and easy-to-use Node.js client for interacting with Marzban's VPN management API. It supports popular protocols like Xray, V2Ray, and more.

31 lines (27 loc) 1.15 kB
const ConfigSchema = require('./schemas/ConfigSchemas'); const MarzbanAPI = require('./classes/MarzbanAPI'); const Admin = require('./classes/Admin'); const Core = require('./classes/Core'); const Node = require("./classes/Node"); const User = require('./classes/User'); const Template = require('./classes/Template'); const WebSocketClient = require('./classes/WebSocketClient'); const System = require('./classes/System'); module.exports = (config) => { const { error } = ConfigSchema.validate(config); if (error) { throw new Error(`Invalid configuration: ${error.details.map((d) => d.message).join(', ')}`); } const api = new MarzbanAPI(config); const userInstance = new User(api); // Instantiate User separately return { api, // Raw API client system: new System(api), // System operations admin: new Admin(api), // Admin functionalities core: new Core(api), // Core functionalities node: new Node(api), // Node functionalities user: userInstance, // User management template: new Template(api), // Template functionalities wsClient: new WebSocketClient(api), // WebSocket client }; };