{"version":3,"sources":["../src/config/config.logger.ts","../src/config/config.webhook.ts","../src/config/config.ts","../src/core/errors/codes.ts","../src/core/errors/sdk.error.ts","../src/core/errors/categories/auth.error.ts","../src/core/errors/categories/configuration.error.ts","../src/core/errors/categories/http.error.ts","../src/core/errors/categories/webhook.error.ts","../src/core/errors/guards/auth.guard.ts","../src/core/errors/guards/configuration.guard.ts","../src/core/errors/guards/sdk.guard.ts","../src/config/validate.ts","../src/core/http/interceptors/auth.interceptors.ts","../src/core/http/client.ts","../src/gen/schemas/forbiddenSchema.ts","../src/gen/schemas/validationErrorSchema.ts","../src/gen/schemas/HTTPValidationErrorSchema.ts","../src/gen/schemas/notFoundSchema.ts","../src/gen/schemas/unauthorizedSchema.ts","../src/gen/schemas/AdminSchema/activateAllDisabledUsersSchema.ts","../src/gen/schemas/bodyAdminTokenApiAdminTokenPostSchema.ts","../src/gen/schemas/tokenSchema.ts","../src/gen/schemas/AdminSchema/adminTokenSchema.ts","../src/gen/schemas/adminCreateSchema.ts","../src/gen/schemas/adminSchema.ts","../src/gen/schemas/conflictSchema.ts","../src/gen/schemas/AdminSchema/createAdminSchema.ts","../src/gen/schemas/AdminSchema/disableAllActiveUsersSchema.ts","../src/gen/schemas/AdminSchema/getAdminsSchema.ts","../src/gen/schemas/AdminSchema/getAdminUsageSchema.ts","../src/gen/schemas/AdminSchema/getCurrentAdminSchema.ts","../src/gen/schemas/adminModifySchema.ts","../src/gen/schemas/AdminSchema/modifyAdminSchema.ts","../src/gen/schemas/AdminSchema/removeAdminSchema.ts","../src/gen/schemas/AdminSchema/resetAdminUsageSchema.ts","../src/gen/api/AdminApi/adminApi.ts","../src/gen/schemas/CoreSchema/getCoreConfigSchema.ts","../src/gen/schemas/coreStatsSchema.ts","../src/gen/schemas/CoreSchema/getCoreStatsSchema.ts","../src/gen/schemas/CoreSchema/modifyCoreConfigSchema.ts","../src/gen/schemas/CoreSchema/restartCoreSchema.ts","../src/gen/api/CoreApi/coreApi.ts","../src/gen/schemas/nodeCreateSchema.ts","../src/gen/schemas/nodeStatusSchema.ts","../src/gen/schemas/nodeResponseSchema.ts","../src/gen/schemas/NodeSchema/addNodeSchema.ts","../src/gen/schemas/NodeSchema/getNodeSchema.ts","../src/gen/schemas/nodeSettingsSchema.ts","../src/gen/schemas/NodeSchema/getNodeSettingsSchema.ts","../src/gen/schemas/NodeSchema/getNodesSchema.ts","../src/gen/schemas/nodeUsageResponseSchema.ts","../src/gen/schemas/nodesUsageResponseSchema.ts","../src/gen/schemas/NodeSchema/getUsageSchema.ts","../src/gen/schemas/nodeModifySchema.ts","../src/gen/schemas/NodeSchema/modifyNodeSchema.ts","../src/gen/schemas/NodeSchema/reconnectNodeSchema.ts","../src/gen/schemas/NodeSchema/removeNodeSchema.ts","../src/gen/api/NodeApi/nodeApi.ts","../src/gen/schemas/SubscriptionSchema/userGetUsageSchema.ts","../src/gen/schemas/nextPlanModelSchema.ts","../src/gen/schemas/userDataLimitResetStrategySchema.ts","../src/gen/schemas/userStatusSchema.ts","../src/gen/schemas/subscriptionUserResponseSchema.ts","../src/gen/schemas/SubscriptionSchema/userSubscriptionInfoSchema.ts","../src/gen/schemas/SubscriptionSchema/userSubscriptionSchema.ts","../src/gen/schemas/SubscriptionSchema/userSubscriptionWithClientTypeSchema.ts","../src/gen/api/SubscriptionApi/subscriptionApi.ts","../src/gen/schemas/proxyHostALPNSchema.ts","../src/gen/schemas/proxyHostFingerprintSchema.ts","../src/gen/schemas/proxyHostSecuritySchema.ts","../src/gen/schemas/proxyHostSchema.ts","../src/gen/schemas/SystemSchema/getHostsSchema.ts","../src/gen/schemas/proxyTypesSchema.ts","../src/gen/schemas/proxyInboundSchema.ts","../src/gen/schemas/SystemSchema/getInboundsSchema.ts","../src/gen/schemas/systemStatsSchema.ts","../src/gen/schemas/SystemSchema/getSystemStatsSchema.ts","../src/gen/schemas/SystemSchema/modifyHostsSchema.ts","../src/gen/api/SystemApi/systemApi.ts","../src/gen/schemas/userResponseSchema.ts","../src/gen/schemas/UserSchema/activeNextPlanSchema.ts","../src/gen/schemas/HTTPExceptionSchema.ts","../src/gen/schemas/proxySettingsSchema.ts","../src/gen/schemas/userStatusCreateSchema.ts","../src/gen/schemas/userCreateSchema.ts","../src/gen/schemas/UserSchema/addUserSchema.ts","../src/gen/schemas/UserSchema/deleteExpiredUsersSchema.ts","../src/gen/schemas/UserSchema/getExpiredUsersSchema.ts","../src/gen/schemas/UserSchema/getUserSchema.ts","../src/gen/schemas/usersResponseSchema.ts","../src/gen/schemas/UserSchema/getUsersSchema.ts","../src/gen/schemas/userUsageResponseSchema.ts","../src/gen/schemas/usersUsagesResponseSchema.ts","../src/gen/schemas/UserSchema/getUsersUsageSchema.ts","../src/gen/schemas/userUsagesResponseSchema.ts","../src/gen/schemas/UserSchema/getUserUsageSchema.ts","../src/gen/schemas/userStatusModifySchema.ts","../src/gen/schemas/userModifySchema.ts","../src/gen/schemas/UserSchema/modifyUserSchema.ts","../src/gen/schemas/UserSchema/removeUserSchema.ts","../src/gen/schemas/UserSchema/resetUserDataUsageSchema.ts","../src/gen/schemas/UserSchema/resetUsersDataUsageSchema.ts","../src/gen/schemas/UserSchema/revokeUserSubscriptionSchema.ts","../src/gen/schemas/UserSchema/setOwnerSchema.ts","../src/gen/api/UserApi/userApi.ts","../src/gen/schemas/userTemplateCreateSchema.ts","../src/gen/schemas/userTemplateResponseSchema.ts","../src/gen/schemas/UserTemplateSchema/addUserTemplateSchema.ts","../src/gen/schemas/UserTemplateSchema/getUserTemplateEndpointSchema.ts","../src/gen/schemas/UserTemplateSchema/getUserTemplatesSchema.ts","../src/gen/schemas/userTemplateModifySchema.ts","../src/gen/schemas/UserTemplateSchema/modifyUserTemplateSchema.ts","../src/gen/schemas/UserTemplateSchema/removeUserTemplateSchema.ts","../src/gen/api/UserTemplateApi/userTemplateApi.ts","../src/core/auth/auth.manager.ts","../src/core/logger/default-logger.ts","../src/core/logger/logger.utils.ts","../src/core/logger/logger-factory.ts","../src/common/buffer.ts","../src/common/safe-event-emitter.ts","../src/gen/schemas/DefaultSchema/baseSchema.ts","../src/core/webhook/webhook.schema.ts","../src/core/webhook/webhook.utils.ts","../src/core/webhook/webhook.manager.ts","../src/core/ws/client/base-websocket-client.ts","../src/core/ws/client/browser-websocket-client.ts","../src/core/ws/client/node-websocket-client.ts","../src/core/ws/client/websocket-client.ts","../src/core/ws/utils/configuration-url-ws.ts","../src/core/ws/logs-stream.ts","../src/core/MarzbanSDK.ts","../src/gen/models/NodeStatus.ts","../src/gen/models/ProxyHostALPN.ts","../src/gen/models/ProxyHostFingerprint.ts","../src/gen/models/ProxyHostSecurity.ts","../src/gen/models/ProxyTypes.ts","../src/gen/models/UserDataLimitResetStrategy.ts","../src/gen/models/UserStatus.ts","../src/gen/models/UserStatusCreate.ts","../src/gen/models/UserStatusModify.ts","../src/helpers/bytes.ts","../src/helpers/datetime.ts","../src/helpers/variables.ts"],"names":["z","client","axios","axiosRetry","chalk","crypto","Variable"],"mappings":"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","file":"index.cjs","sourcesContent":["import z from 'zod/v4'\r\n\r\nconst logLevelSchema = z.enum(['debug', 'info', 'warn', 'error'])\r\n\r\nconst loggerOptionsSchema = z.object({\r\n  level: logLevelSchema.optional(),\r\n  timestamp: z.boolean().optional(),\r\n})\r\n\r\nconst loggerMethodSchema = z.custom<(message: string, context?: string) => void>(v => typeof v === 'function')\r\n\r\nconst loggerErrorMethodSchema = z.custom<(message: string, trace?: unknown, context?: string) => void>(\r\n  v => typeof v === 'function'\r\n)\r\n\r\nexport const loggerObjectSchema = z.object({\r\n  debug: loggerMethodSchema,\r\n  info: loggerMethodSchema,\r\n  warn: loggerMethodSchema,\r\n  error: loggerErrorMethodSchema,\r\n})\r\n\r\nexport const loggerConfigSchema = z.union([z.literal(false), loggerOptionsSchema, loggerObjectSchema])\r\n","import z from 'zod/v4'\r\n\r\nexport const webhookSchema = z.object({\r\n  secret: z.string().optional(),\r\n})\r\n","import { z } from 'zod/v4'\r\n\r\nimport { loggerConfigSchema } from './config.logger'\r\nimport { webhookSchema } from './config.webhook'\r\n\r\nexport const configSchema = z.object({\r\n  baseUrl: z.url(),\r\n  username: z.string(),\r\n  password: z.string(),\r\n  timeout: z.number().int().positive().default(0).optional(),\r\n  retries: z.number().int().nonnegative().default(3).optional(),\r\n  token: z.string().optional(),\r\n  authenticateOnInit: z.boolean().default(true).optional(),\r\n  logger: loggerConfigSchema.optional(),\r\n  webhook: webhookSchema.optional(),\r\n})\r\n\r\n/**\r\n * Configuration options for initializing the MarzbanSDK client.\r\n *\r\n * @property {string} baseUrl - Base URL of the Marzban API instance. Example: 'https://api.example.com'.\r\n * @property {string} username - Username for authentication.\r\n * @property {string} password - Password for authentication.\r\n * @property {string} [token] - Optional JWT token for authorization. If provided, SDK will use it instead of logging in.\r\n * @property {number} [retries=3] - Number of automatic retries for failed HTTP requests.\r\n * @property {boolean} [authenticateOnInit=true] - If false, SDK will not authenticate on instantiation (call `authorize()` manually).\r\n */\r\nexport type Config = z.infer<typeof configSchema>\r\n","export interface FormatCode {\r\n  code: string\r\n  message: string\r\n}\r\n\r\nexport const ERROR_CODES = {\r\n  CONFIG_INVALID: { code: 'CONFIG_INVALID', message: 'Invalid SDK configuration' },\r\n\r\n  NETWORK_HTTP_ERROR: { code: 'NETWORK_HTTP_ERROR', message: 'HTTP request failed' },\r\n\r\n  AUTH_TOKEN_FAILED: { code: 'AUTH_TOKEN_FAILED', message: 'Failed to retrieve access token' },\r\n  AUTH_FAILED: { code: 'AUTH_FAILED', message: 'Authentication failed' },\r\n\r\n  LOGGER_INVALID: {\r\n    code: 'LOGGER_INVALID',\r\n    message: 'Invalid logger option: must be false, LoggerOptions, or Logger instance',\r\n  },\r\n\r\n  WEBHOOK_SIGNATURE_ERROR: { code: 'WEBHOOK_SIGNATURE_ERROR', message: 'Invalid webhook signature' },\r\n  WEBHOOK_VALIDATION_ERROR: { code: 'WEBHOOK_VALIDATION_ERROR', message: 'Invalid webhook payload' },\r\n} as const satisfies Record<string, FormatCode>\r\n\r\nexport type ErrorMap = typeof ERROR_CODES\r\nexport type ErrorCode = (typeof ERROR_CODES)[keyof typeof ERROR_CODES]['code']\r\n","import { ERROR_CODES, ErrorCode, FormatCode } from './codes'\r\n\r\nexport class SdkError<T = unknown> extends Error {\r\n  public readonly code: ErrorCode\r\n  public readonly details?: T\r\n\r\n  constructor(options: FormatCode, details?: T) {\r\n    super(options.message)\r\n    this.name = new.target.name\r\n    this.code = options.code as ErrorCode\r\n    this.details = details\r\n    Object.setPrototypeOf(this, new.target.prototype)\r\n\r\n    /* istanbul ignore next */\r\n    if (Error.captureStackTrace) {\r\n      Error.captureStackTrace(this, new.target)\r\n    }\r\n  }\r\n\r\n  static fromCode<T = unknown>(code: ErrorCode, details?: T) {\r\n    const entry = Object.values(ERROR_CODES).find(e => e.code === code)\r\n    const format = entry ?? { code, message: code }\r\n    return new SdkError<T>(format, details)\r\n  }\r\n\r\n  toJSON() {\r\n    return {\r\n      name: this.name,\r\n      code: this.code,\r\n      message: this.message,\r\n      details: this.details,\r\n    }\r\n  }\r\n}\r\n","import { ERROR_CODES } from '../codes'\r\nimport { SdkError } from '../sdk.error'\r\n\r\nexport class AuthError extends SdkError {\r\n  constructor(details?: unknown) {\r\n    super(ERROR_CODES.AUTH_FAILED, details)\r\n  }\r\n}\r\n\r\nexport class AuthTokenError extends SdkError {\r\n  constructor(details?: unknown) {\r\n    super(ERROR_CODES.AUTH_TOKEN_FAILED, details)\r\n  }\r\n}\r\n","import { ERROR_CODES } from '../codes'\r\nimport { SdkError } from '../sdk.error'\r\n\r\nexport class ConfigurationError extends SdkError {\r\n  constructor(details?: unknown) {\r\n    super(ERROR_CODES.CONFIG_INVALID, details)\r\n  }\r\n}\r\n","import { ERROR_CODES } from '../codes'\nimport { SdkError } from '../sdk.error'\n\nexport class HttpError extends SdkError {\n  constructor(details?: unknown) {\n    super(ERROR_CODES.NETWORK_HTTP_ERROR, details)\n  }\n}\n","import { ERROR_CODES } from '../codes'\r\nimport { SdkError } from '../sdk.error'\r\n\r\nexport class WebhookSignatureError extends SdkError {\r\n  constructor(details?: unknown) {\r\n    super(ERROR_CODES.WEBHOOK_SIGNATURE_ERROR, details)\r\n  }\r\n}\r\n\r\nexport class WebhookValidationError extends SdkError {\r\n  constructor(details?: unknown) {\r\n    super(ERROR_CODES.WEBHOOK_VALIDATION_ERROR, details)\r\n  }\r\n}\r\n","import { AuthError } from '../categories'\r\n\r\nexport const isAuthError = (error: unknown): error is AuthError => {\r\n  return error instanceof AuthError\r\n}\r\n","import { ConfigurationError } from '../categories'\r\n\r\nexport const isConfigurationError = (error: unknown): error is ConfigurationError => {\r\n  return error instanceof ConfigurationError\r\n}\r\n","import { SdkError } from '../sdk.error'\r\n\r\nexport const isSdkError = (error: unknown): error is SdkError => {\r\n  return error instanceof SdkError\r\n}\r\n","import { ConfigurationError } from '../core/errors'\r\nimport { Config, configSchema } from './config'\r\n\r\nexport function validateConfig(config: unknown): Config {\r\n  const { data, success, error } = configSchema.safeParse(config)\r\n\r\n  if (!success) {\r\n    throw new ConfigurationError(error.issues)\r\n  }\r\n\r\n  return data\r\n}\r\n","import { AxiosInstance } from 'axios'\n\nimport { AuthManager } from '@/core/auth'\nimport { HttpError, SdkError } from '@/core/errors'\nimport { Logger } from '@/core/logger'\n\n/**\n * Sets up interceptors for the Axios client.\n *\n * @param client - The Axios instance to set up interceptors for.\n * @param authService - The authentication service instance.\n * @param config - The configuration object containing authentication details.\n * @param config.username - The username for authentication.\n * @param config.password - The password for authentication.\n * @param logger - The logger instance for logging interceptor events.\n */\nexport const setupAuthInterceptors = (\n  client: AxiosInstance,\n  authService: AuthManager,\n  config: { username: string; password: string },\n  logger: Logger\n) => {\n  logger.debug('Setting up authentication request interceptor', 'AuthInterceptor')\n  client.interceptors.request.use(\n    async requestConfig => {\n      await authService.waitForCurrentAuth()\n      const accessToken = authService.accessToken\n      if (accessToken) {\n        requestConfig.headers.authorization = `Bearer ${accessToken}`\n        logger.debug('Authorization header added to request', 'AuthInterceptor')\n      } else {\n        logger.warn('No access token available for request', 'AuthInterceptor')\n      }\n      return requestConfig\n    },\n    error => {\n      logger.error('Request interceptor error', error, 'AuthInterceptor')\n      if (error instanceof SdkError) return Promise.reject(error)\n      return Promise.reject(new HttpError(error))\n    }\n  )\n\n  logger.debug('Setting up authentication response interceptor', 'AuthInterceptor')\n  client.interceptors.response.use(\n    response => response,\n    async error => {\n      const retryConfig = error?.config\n\n      if (error?.response?.status === 401 && !retryConfig?.sent) {\n        logger.warn('Received 401 Unauthorized, attempting to re-authenticate', 'AuthInterceptor')\n        retryConfig.sent = true\n\n        try {\n          await authService.authenticate(config.username, config.password)\n          const accessToken = authService.accessToken\n\n          if (accessToken) {\n            retryConfig.headers.authorization = `Bearer ${accessToken}`\n            logger.info('Re-authentication successful, retrying request', 'AuthInterceptor')\n            return client(retryConfig)\n          }\n\n          logger.error('Re-authentication failed: No access token received', null, 'AuthInterceptor')\n          return Promise.reject(new HttpError('No access token after re-authentication'))\n        } catch (err) {\n          logger.error('Re-authentication failed', err, 'AuthInterceptor')\n          if (err instanceof SdkError) return Promise.reject(err)\n          return Promise.reject(new HttpError(err))\n        }\n      }\n\n      if (error instanceof SdkError) return Promise.reject(error)\n      return Promise.reject(new HttpError(error))\n    }\n  )\n}\n","import type { AxiosError, AxiosInstance, AxiosRequestConfig, AxiosResponse } from 'axios'\r\nimport axios from 'axios'\r\nimport axiosRetry from 'axios-retry'\r\n\r\nimport { Config } from '@/config'\r\nimport { AuthManager } from '@/core/auth'\r\nimport { Logger } from '@/core/logger'\r\n\r\nimport { setupAuthInterceptors } from './interceptors'\r\n\r\n/**\r\n * Subset of AxiosRequestConfig\r\n */\r\nexport type RequestConfig<TData = unknown> = {\r\n  baseURL?: string\r\n  url?: string\r\n  method: 'GET' | 'PUT' | 'PATCH' | 'POST' | 'DELETE'\r\n  params?: unknown\r\n  data?: TData | FormData\r\n  responseType?: 'arraybuffer' | 'blob' | 'document' | 'json' | 'text' | 'stream'\r\n  signal?: AbortSignal\r\n  headers?: AxiosRequestConfig['headers']\r\n}\r\n/**\r\n * Subset of AxiosResponse\r\n */\r\nexport type ResponseConfig<TData = unknown> = {\r\n  data: TData\r\n  status: number\r\n  statusText: string\r\n  headers?: AxiosResponse['headers']\r\n}\r\n\r\nexport type ResponseErrorConfig<TError = unknown> = TError\r\n\r\n/** Client function type used by generated API (kubb) - accepts RequestConfig and returns ResponseConfig */\r\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\r\nexport type ClientFn = <TData, _TError = unknown, TVariables = unknown>(\r\n  config: RequestConfig<TVariables>\r\n) => Promise<ResponseConfig<TData>>\r\n\r\nfunction createClientFromAxios(instance: AxiosInstance): ClientFn {\r\n  return async <TData, TError = unknown, TVariables = unknown>(\r\n    requestConfig: RequestConfig<TVariables>\r\n  ): Promise<ResponseConfig<TData>> => {\r\n    const promise = instance\r\n      .request<TVariables, ResponseConfig<TData>>(requestConfig)\r\n      .catch((e: AxiosError<TError>) => {\r\n        throw e\r\n      })\r\n    return promise\r\n  }\r\n}\r\n\r\nexport type HttpClientInstance = {\r\n  client: ClientFn\r\n  getPublicInstance: () => AxiosInstance\r\n  /** Client for unauthenticated requests (e.g. login). Use this in AuthManager. */\r\n  publicClient: ClientFn\r\n}\r\n\r\n/**\r\n * Configures HTTP client for a given base URL and auth, and returns an instance-bound client.\r\n * Also updates the global client/getPublicInstance for backward compatibility (last-created instance).\r\n * Store and use the returned instance when creating multiple MarzbanSDK instances.\r\n */\r\nexport const configureHttpClient = (\r\n  baseUrl: string,\r\n  authService: AuthManager,\r\n  config: Config,\r\n  logger: Logger\r\n): HttpClientInstance => {\r\n  logger.info(`Configuring HTTP client with base URL: ${baseUrl}`, 'HttpClient')\r\n  logger.debug(`HTTP client configuration: timeout=${config.timeout}s, retries=${config.retries}`, 'HttpClient')\r\n\r\n  const instanceAxios = axios.create({ baseURL: baseUrl })\r\n  const instancePublic = axios.create({ baseURL: baseUrl })\r\n\r\n  logger.debug('Setting up authentication interceptors', 'HttpClient')\r\n  setupAuthInterceptors(instanceAxios, authService, config, logger)\r\n\r\n  logger.debug(`Configuring retry logic: ${config?.retries ?? 3} retries with exponential backoff`, 'HttpClient')\r\n  axiosRetry(instanceAxios, {\r\n    retries: config?.retries ?? 3,\r\n    retryDelay: retryCount => {\r\n      const delay = retryCount * 1000\r\n      logger.debug(`Retry attempt ${retryCount}, delay: ${delay}ms`, 'HttpClient')\r\n      return delay\r\n    },\r\n  })\r\n\r\n  axiosRetry(instancePublic, {\r\n    retries: config?.retries ?? 3,\r\n    retryDelay: retryCount => {\r\n      const delay = retryCount * 1000\r\n      logger.debug(`Public instance retry attempt ${retryCount}, delay: ${delay}ms`, 'HttpClient')\r\n      return delay\r\n    },\r\n  })\r\n\r\n  logger.info('HTTP client configuration completed successfully', 'HttpClient')\r\n\r\n  return {\r\n    client: createClientFromAxios(instanceAxios),\r\n    getPublicInstance: () => instancePublic,\r\n    publicClient: createClientFromAxios(instancePublic),\r\n  }\r\n}\r\n\r\nexport const client: ClientFn = () => {\r\n  throw new Error('The http layer instance is not specified. You must use a pre-configured configureHttpClient layer')\r\n}\r\n\r\nexport default client\r\n","import { z } from 'zod/v4'\n\nimport type { Forbidden } from '../models/Forbidden.ts'\n\nexport const forbiddenSchema = z.object({\n  detail: z.optional(z.string().default('You are not allowed to ...')),\n}) as unknown as z.ZodType<Forbidden>\n","import { z } from 'zod/v4'\n\nimport type { ValidationError } from '../models/ValidationError.ts'\n\nexport const validationErrorSchema = z.object({\n  loc: z.array(z.union([z.int(), z.string()])),\n  msg: z.string(),\n  type: z.string(),\n}) as unknown as z.ZodType<ValidationError>\n","import { z } from 'zod/v4'\n\nimport type { HTTPValidationError } from '../models/HTTPValidationError.ts'\nimport { validationErrorSchema } from './validationErrorSchema.ts'\n\nexport const HTTPValidationErrorSchema = z.object({\n  get detail() {\n    return z.array(validationErrorSchema).optional()\n  },\n}) as unknown as z.ZodType<HTTPValidationError>\n","import { z } from 'zod/v4'\n\nimport type { NotFound } from '../models/NotFound.ts'\n\nexport const notFoundSchema = z.object({\n  detail: z.optional(z.string().default('Entity {} not found')),\n}) as unknown as z.ZodType<NotFound>\n","import { z } from 'zod/v4'\n\nimport type { Unauthorized } from '../models/Unauthorized.ts'\n\nexport const unauthorizedSchema = z.object({\n  detail: z.optional(z.string().default('Not authenticated')),\n}) as unknown as z.ZodType<Unauthorized>\n","import { z } from 'zod/v4'\n\nimport type {\n  ActivateAllDisabledUsers200,\n  ActivateAllDisabledUsers401,\n  ActivateAllDisabledUsers403,\n  ActivateAllDisabledUsers404,\n  ActivateAllDisabledUsers422,\n  ActivateAllDisabledUsersMutationResponse,\n  ActivateAllDisabledUsersPathParams,\n} from '../../models/AdminModel/ActivateAllDisabledUsers.ts'\nimport { forbiddenSchema } from '../forbiddenSchema.ts'\nimport { HTTPValidationErrorSchema } from '../HTTPValidationErrorSchema.ts'\nimport { notFoundSchema } from '../notFoundSchema.ts'\nimport { unauthorizedSchema } from '../unauthorizedSchema.ts'\n\nexport const activateAllDisabledUsersPathParamsSchema = z.object({\n  username: z.string(),\n}) as unknown as z.ZodType<ActivateAllDisabledUsersPathParams>\n\n/**\n * @description Successful Response\n */\nexport const activateAllDisabledUsers200Schema = z.any() as unknown as z.ZodType<ActivateAllDisabledUsers200>\n\n/**\n * @description Unauthorized\n */\nexport const activateAllDisabledUsers401Schema = z.lazy(\n  () => unauthorizedSchema\n) as unknown as z.ZodType<ActivateAllDisabledUsers401>\n\n/**\n * @description Forbidden\n */\nexport const activateAllDisabledUsers403Schema = z.lazy(\n  () => forbiddenSchema\n) as unknown as z.ZodType<ActivateAllDisabledUsers403>\n\n/**\n * @description Not found\n */\nexport const activateAllDisabledUsers404Schema = z.lazy(\n  () => notFoundSchema\n) as unknown as z.ZodType<ActivateAllDisabledUsers404>\n\n/**\n * @description Validation Error\n */\nexport const activateAllDisabledUsers422Schema = z.lazy(\n  () => HTTPValidationErrorSchema\n) as unknown as z.ZodType<ActivateAllDisabledUsers422>\n\nexport const activateAllDisabledUsersMutationResponseSchema = z.lazy(\n  () => activateAllDisabledUsers200Schema\n) as unknown as z.ZodType<ActivateAllDisabledUsersMutationResponse>\n","import { z } from 'zod/v4'\n\nimport type { BodyAdminTokenApiAdminTokenPost } from '../models/BodyAdminTokenApiAdminTokenPost.ts'\n\nexport const bodyAdminTokenApiAdminTokenPostSchema = z.object({\n  grant_type: z.optional(z.union([z.string().regex(/password/), z.null()])),\n  username: z.string(),\n  password: z.string(),\n  scope: z.optional(z.string().default('')),\n  client_id: z.optional(z.union([z.string(), z.null()])),\n  client_secret: z.optional(z.union([z.string(), z.null()])),\n}) as unknown as z.ZodType<BodyAdminTokenApiAdminTokenPost>\n","import { z } from 'zod/v4'\n\nimport type { Token } from '../models/Token.ts'\n\nexport const tokenSchema = z.object({\n  access_token: z.string(),\n  token_type: z.optional(z.string().default('bearer')),\n}) as unknown as z.ZodType<Token>\n","import { z } from 'zod/v4'\n\nimport type {\n  AdminToken200,\n  AdminToken401,\n  AdminToken422,\n  AdminTokenMutationRequest,\n  AdminTokenMutationResponse,\n} from '../../models/AdminModel/AdminToken.ts'\nimport { bodyAdminTokenApiAdminTokenPostSchema } from '../bodyAdminTokenApiAdminTokenPostSchema.ts'\nimport { HTTPValidationErrorSchema } from '../HTTPValidationErrorSchema.ts'\nimport { tokenSchema } from '../tokenSchema.ts'\nimport { unauthorizedSchema } from '../unauthorizedSchema.ts'\n\n/**\n * @description Successful Response\n */\nexport const adminToken200Schema = z.lazy(() => tokenSchema) as unknown as z.ZodType<AdminToken200>\n\n/**\n * @description Unauthorized\n */\nexport const adminToken401Schema = z.lazy(() => unauthorizedSchema) as unknown as z.ZodType<AdminToken401>\n\n/**\n * @description Validation Error\n */\nexport const adminToken422Schema = z.lazy(() => HTTPValidationErrorSchema) as unknown as z.ZodType<AdminToken422>\n\nexport const adminTokenMutationRequestSchema = z.lazy(\n  () => bodyAdminTokenApiAdminTokenPostSchema\n) as unknown as z.ZodType<AdminTokenMutationRequest>\n\nexport const adminTokenMutationResponseSchema = z.lazy(\n  () => adminToken200Schema\n) as unknown as z.ZodType<AdminTokenMutationResponse>\n","import { z } from 'zod/v4'\n\nimport type { AdminCreate } from '../models/AdminCreate.ts'\n\nexport const adminCreateSchema = z.object({\n  username: z.string(),\n  is_sudo: z.boolean(),\n  telegram_id: z.optional(z.union([z.int(), z.null()])),\n  discord_webhook: z.optional(z.union([z.string(), z.null()])),\n  users_usage: z.optional(z.union([z.int(), z.null()])),\n  password: z.string(),\n}) as unknown as z.ZodType<AdminCreate>\n","import { z } from 'zod/v4'\n\nimport type { Admin } from '../models/Admin.ts'\n\nexport const adminSchema = z.object({\n  username: z.string(),\n  is_sudo: z.boolean(),\n  telegram_id: z.optional(z.union([z.int(), z.null()])),\n  discord_webhook: z.optional(z.union([z.string(), z.null()])),\n  users_usage: z.optional(z.union([z.int(), z.null()])),\n}) as unknown as z.ZodType<Admin>\n","import { z } from 'zod/v4'\n\nimport type { Conflict } from '../models/Conflict.ts'\n\nexport const conflictSchema = z.object({\n  detail: z.optional(z.string().default('Entity already exists')),\n}) as unknown as z.ZodType<Conflict>\n","import { z } from 'zod/v4'\n\nimport type {\n  CreateAdmin200,\n  CreateAdmin401,\n  CreateAdmin403,\n  CreateAdmin409,\n  CreateAdmin422,\n  CreateAdminMutationRequest,\n  CreateAdminMutationResponse,\n} from '../../models/AdminModel/CreateAdmin.ts'\nimport { adminCreateSchema } from '../adminCreateSchema.ts'\nimport { adminSchema } from '../adminSchema.ts'\nimport { conflictSchema } from '../conflictSchema.ts'\nimport { forbiddenSchema } from '../forbiddenSchema.ts'\nimport { HTTPValidationErrorSchema } from '../HTTPValidationErrorSchema.ts'\nimport { unauthorizedSchema } from '../unauthorizedSchema.ts'\n\n/**\n * @description Successful Response\n */\nexport const createAdmin200Schema = z.lazy(() => adminSchema) as unknown as z.ZodType<CreateAdmin200>\n\n/**\n * @description Unauthorized\n */\nexport const createAdmin401Schema = z.lazy(() => unauthorizedSchema) as unknown as z.ZodType<CreateAdmin401>\n\n/**\n * @description Forbidden\n */\nexport const createAdmin403Schema = z.lazy(() => forbiddenSchema) as unknown as z.ZodType<CreateAdmin403>\n\n/**\n * @description Conflict\n */\nexport const createAdmin409Schema = z.lazy(() => conflictSchema) as unknown as z.ZodType<CreateAdmin409>\n\n/**\n * @description Validation Error\n */\nexport const createAdmin422Schema = z.lazy(() => HTTPValidationErrorSchema) as unknown as z.ZodType<CreateAdmin422>\n\nexport const createAdminMutationRequestSchema = z.lazy(\n  () => adminCreateSchema\n) as unknown as z.ZodType<CreateAdminMutationRequest>\n\nexport const createAdminMutationResponseSchema = z.lazy(\n  () => createAdmin200Schema\n) as unknown as z.ZodType<CreateAdminMutationResponse>\n","import { z } from 'zod/v4'\n\nimport type {\n  DisableAllActiveUsers200,\n  DisableAllActiveUsers401,\n  DisableAllActiveUsers403,\n  DisableAllActiveUsers404,\n  DisableAllActiveUsers422,\n  DisableAllActiveUsersMutationResponse,\n  DisableAllActiveUsersPathParams,\n} from '../../models/AdminModel/DisableAllActiveUsers.ts'\nimport { forbiddenSchema } from '../forbiddenSchema.ts'\nimport { HTTPValidationErrorSchema } from '../HTTPValidationErrorSchema.ts'\nimport { notFoundSchema } from '../notFoundSchema.ts'\nimport { unauthorizedSchema } from '../unauthorizedSchema.ts'\n\nexport const disableAllActiveUsersPathParamsSchema = z.object({\n  username: z.string(),\n}) as unknown as z.ZodType<DisableAllActiveUsersPathParams>\n\n/**\n * @description Successful Response\n */\nexport const disableAllActiveUsers200Schema = z.any() as unknown as z.ZodType<DisableAllActiveUsers200>\n\n/**\n * @description Unauthorized\n */\nexport const disableAllActiveUsers401Schema = z.lazy(\n  () => unauthorizedSchema\n) as unknown as z.ZodType<DisableAllActiveUsers401>\n\n/**\n * @description Forbidden\n */\nexport const disableAllActiveUsers403Schema = z.lazy(\n  () => forbiddenSchema\n) as unknown as z.ZodType<DisableAllActiveUsers403>\n\n/**\n * @description Not found\n */\nexport const disableAllActiveUsers404Schema = z.lazy(\n  () => notFoundSchema\n) as unknown as z.ZodType<DisableAllActiveUsers404>\n\n/**\n * @description Validation Error\n */\nexport const disableAllActiveUsers422Schema = z.lazy(\n  () => HTTPValidationErrorSchema\n) as unknown as z.ZodType<DisableAllActiveUsers422>\n\nexport const disableAllActiveUsersMutationResponseSchema = z.lazy(\n  () => disableAllActiveUsers200Schema\n) as unknown as z.ZodType<DisableAllActiveUsersMutationResponse>\n","import { z } from 'zod/v4'\n\nimport type {\n  GetAdmins200,\n  GetAdmins401,\n  GetAdmins403,\n  GetAdmins422,\n  GetAdminsQueryParams,\n  GetAdminsQueryResponse,\n} from '../../models/AdminModel/GetAdmins.ts'\nimport { adminSchema } from '../adminSchema.ts'\nimport { forbiddenSchema } from '../forbiddenSchema.ts'\nimport { HTTPValidationErrorSchema } from '../HTTPValidationErrorSchema.ts'\nimport { unauthorizedSchema } from '../unauthorizedSchema.ts'\n\nexport const getAdminsQueryParamsSchema = z\n  .object({\n    offset: z.optional(z.union([z.coerce.number().int(), z.null()])),\n    limit: z.optional(z.union([z.coerce.number().int(), z.null()])),\n    username: z.optional(z.union([z.string(), z.null()])),\n  })\n  .optional() as unknown as z.ZodType<GetAdminsQueryParams>\n\n/**\n * @description Successful Response\n */\nexport const getAdmins200Schema = z.array(z.lazy(() => adminSchema)) as unknown as z.ZodType<GetAdmins200>\n\n/**\n * @description Unauthorized\n */\nexport const getAdmins401Schema = z.lazy(() => unauthorizedSchema) as unknown as z.ZodType<GetAdmins401>\n\n/**\n * @description Forbidden\n */\nexport const getAdmins403Schema = z.lazy(() => forbiddenSchema) as unknown as z.ZodType<GetAdmins403>\n\n/**\n * @description Validation Error\n */\nexport const getAdmins422Schema = z.lazy(() => HTTPValidationErrorSchema) as unknown as z.ZodType<GetAdmins422>\n\nexport const getAdminsQueryResponseSchema = z.lazy(\n  () => getAdmins200Schema\n) as unknown as z.ZodType<GetAdminsQueryResponse>\n","import { z } from 'zod/v4'\n\nimport type {\n  GetAdminUsage200,\n  GetAdminUsage401,\n  GetAdminUsage403,\n  GetAdminUsage422,\n  GetAdminUsagePathParams,\n  GetAdminUsageQueryResponse,\n} from '../../models/AdminModel/GetAdminUsage.ts'\nimport { forbiddenSchema } from '../forbiddenSchema.ts'\nimport { HTTPValidationErrorSchema } from '../HTTPValidationErrorSchema.ts'\nimport { unauthorizedSchema } from '../unauthorizedSchema.ts'\n\nexport const getAdminUsagePathParamsSchema = z.object({\n  username: z.string(),\n}) as unknown as z.ZodType<GetAdminUsagePathParams>\n\n/**\n * @description Successful Response\n */\nexport const getAdminUsage200Schema = z.int() as unknown as z.ZodType<GetAdminUsage200>\n\n/**\n * @description Unauthorized\n */\nexport const getAdminUsage401Schema = z.lazy(() => unauthorizedSchema) as unknown as z.ZodType<GetAdminUsage401>\n\n/**\n * @description Forbidden\n */\nexport const getAdminUsage403Schema = z.lazy(() => forbiddenSchema) as unknown as z.ZodType<GetAdminUsage403>\n\n/**\n * @description Validation Error\n */\nexport const getAdminUsage422Schema = z.lazy(() => HTTPValidationErrorSchema) as unknown as z.ZodType<GetAdminUsage422>\n\nexport const getAdminUsageQueryResponseSchema = z.lazy(\n  () => getAdminUsage200Schema\n) as unknown as z.ZodType<GetAdminUsageQueryResponse>\n","import { z } from 'zod/v4'\n\nimport type {\n  GetCurrentAdmin200,\n  GetCurrentAdmin401,\n  GetCurrentAdminQueryResponse,\n} from '../../models/AdminModel/GetCurrentAdmin.ts'\nimport { adminSchema } from '../adminSchema.ts'\nimport { unauthorizedSchema } from '../unauthorizedSchema.ts'\n\n/**\n * @description Successful Response\n */\nexport const getCurrentAdmin200Schema = z.lazy(() => adminSchema) as unknown as z.ZodType<GetCurrentAdmin200>\n\n/**\n * @description Unauthorized\n */\nexport const getCurrentAdmin401Schema = z.lazy(() => unauthorizedSchema) as unknown as z.ZodType<GetCurrentAdmin401>\n\nexport const getCurrentAdminQueryResponseSchema = z.lazy(\n  () => getCurrentAdmin200Schema\n) as unknown as z.ZodType<GetCurrentAdminQueryResponse>\n","import { z } from 'zod/v4'\n\nimport type { AdminModify } from '../models/AdminModify.ts'\n\nexport const adminModifySchema = z.object({\n  password: z.optional(z.union([z.string(), z.null()])),\n  is_sudo: z.boolean(),\n  telegram_id: z.optional(z.union([z.int(), z.null()])),\n  discord_webhook: z.optional(z.union([z.string(), z.null()])),\n}) as unknown as z.ZodType<AdminModify>\n","import { z } from 'zod/v4'\n\nimport type {\n  ModifyAdmin200,\n  ModifyAdmin401,\n  ModifyAdmin403,\n  ModifyAdmin422,\n  ModifyAdminMutationRequest,\n  ModifyAdminMutationResponse,\n  ModifyAdminPathParams,\n} from '../../models/AdminModel/ModifyAdmin.ts'\nimport { adminModifySchema } from '../adminModifySchema.ts'\nimport { adminSchema } from '../adminSchema.ts'\nimport { forbiddenSchema } from '../forbiddenSchema.ts'\nimport { HTTPValidationErrorSchema } from '../HTTPValidationErrorSchema.ts'\nimport { unauthorizedSchema } from '../unauthorizedSchema.ts'\n\nexport const modifyAdminPathParamsSchema = z.object({\n  username: z.string(),\n}) as unknown as z.ZodType<ModifyAdminPathParams>\n\n/**\n * @description Successful Response\n */\nexport const modifyAdmin200Schema = z.lazy(() => adminSchema) as unknown as z.ZodType<ModifyAdmin200>\n\n/**\n * @description Unauthorized\n */\nexport const modifyAdmin401Schema = z.lazy(() => unauthorizedSchema) as unknown as z.ZodType<ModifyAdmin401>\n\n/**\n * @description Forbidden\n */\nexport const modifyAdmin403Schema = z.lazy(() => forbiddenSchema) as unknown as z.ZodType<ModifyAdmin403>\n\n/**\n * @description Validation Error\n */\nexport const modifyAdmin422Schema = z.lazy(() => HTTPValidationErrorSchema) as unknown as z.ZodType<ModifyAdmin422>\n\nexport const modifyAdminMutationRequestSchema = z.lazy(\n  () => adminModifySchema\n) as unknown as z.ZodType<ModifyAdminMutationRequest>\n\nexport const modifyAdminMutationResponseSchema = z.lazy(\n  () => modifyAdmin200Schema\n) as unknown as z.ZodType<ModifyAdminMutationResponse>\n","import { z } from 'zod/v4'\n\nimport type {\n  RemoveAdmin200,\n  RemoveAdmin401,\n  RemoveAdmin403,\n  RemoveAdmin422,\n  RemoveAdminMutationResponse,\n  RemoveAdminPathParams,\n} from '../../models/AdminModel/RemoveAdmin.ts'\nimport { forbiddenSchema } from '../forbiddenSchema.ts'\nimport { HTTPValidationErrorSchema } from '../HTTPValidationErrorSchema.ts'\nimport { unauthorizedSchema } from '../unauthorizedSchema.ts'\n\nexport const removeAdminPathParamsSchema = z.object({\n  username: z.string(),\n}) as unknown as z.ZodType<RemoveAdminPathParams>\n\n/**\n * @description Successful Response\n */\nexport const removeAdmin200Schema = z.any() as unknown as z.ZodType<RemoveAdmin200>\n\n/**\n * @description Unauthorized\n */\nexport const removeAdmin401Schema = z.lazy(() => unauthorizedSchema) as unknown as z.ZodType<RemoveAdmin401>\n\n/**\n * @description Forbidden\n */\nexport const removeAdmin403Schema = z.lazy(() => forbiddenSchema) as unknown as z.ZodType<RemoveAdmin403>\n\n/**\n * @description Validation Error\n */\nexport const removeAdmin422Schema = z.lazy(() => HTTPValidationErrorSchema) as unknown as z.ZodType<RemoveAdmin422>\n\nexport const removeAdminMutationResponseSchema = z.lazy(\n  () => removeAdmin200Schema\n) as unknown as z.ZodType<RemoveAdminMutationResponse>\n","import { z } from 'zod/v4'\n\nimport type {\n  ResetAdminUsage200,\n  ResetAdminUsage401,\n  ResetAdminUsage403,\n  ResetAdminUsage422,\n  ResetAdminUsageMutationResponse,\n  ResetAdminUsagePathParams,\n} from '../../models/AdminModel/ResetAdminUsage.ts'\nimport { adminSchema } from '../adminSchema.ts'\nimport { forbiddenSchema } from '../forbiddenSchema.ts'\nimport { HTTPValidationErrorSchema } from '../HTTPValidationErrorSchema.ts'\nimport { unauthorizedSchema } from '../unauthorizedSchema.ts'\n\nexport const resetAdminUsagePathParamsSchema = z.object({\n  username: z.string(),\n}) as unknown as z.ZodType<ResetAdminUsagePathParams>\n\n/**\n * @description Successful Response\n */\nexport const resetAdminUsage200Schema = z.lazy(() => adminSchema) as unknown as z.ZodType<ResetAdminUsage200>\n\n/**\n * @description Unauthorized\n */\nexport const resetAdminUsage401Schema = z.lazy(() => unauthorizedSchema) as unknown as z.ZodType<ResetAdminUsage401>\n\n/**\n * @description Forbidden\n */\nexport const resetAdminUsage403Schema = z.lazy(() => forbiddenSchema) as unknown as z.ZodType<ResetAdminUsage403>\n\n/**\n * @description Validation Error\n */\nexport const resetAdminUsage422Schema = z.lazy(\n  () => HTTPValidationErrorSchema\n) as unknown as z.ZodType<ResetAdminUsage422>\n\nexport const resetAdminUsageMutationResponseSchema = z.lazy(\n  () => resetAdminUsage200Schema\n) as unknown as z.ZodType<ResetAdminUsageMutationResponse>\n","import type { RequestConfig, ResponseErrorConfig } from '@/core/http/client.ts'\nimport fetch from '@/core/http/client.ts'\n\nimport type {\n  ActivateAllDisabledUsers401,\n  ActivateAllDisabledUsers403,\n  ActivateAllDisabledUsers404,\n  ActivateAllDisabledUsers422,\n  ActivateAllDisabledUsersMutationResponse,\n  ActivateAllDisabledUsersPathParams,\n} from '../../models/AdminModel/ActivateAllDisabledUsers.ts'\nimport type {\n  AdminToken401,\n  AdminToken422,\n  AdminTokenMutationRequest,\n  AdminTokenMutationResponse,\n} from '../../models/AdminModel/AdminToken.ts'\nimport type {\n  CreateAdmin401,\n  CreateAdmin403,\n  CreateAdmin409,\n  CreateAdmin422,\n  CreateAdminMutationRequest,\n  CreateAdminMutationResponse,\n} from '../../models/AdminModel/CreateAdmin.ts'\nimport type {\n  DisableAllActiveUsers401,\n  DisableAllActiveUsers403,\n  DisableAllActiveUsers404,\n  DisableAllActiveUsers422,\n  DisableAllActiveUsersMutationResponse,\n  DisableAllActiveUsersPathParams,\n} from '../../models/AdminModel/DisableAllActiveUsers.ts'\nimport type {\n  GetAdmins401,\n  GetAdmins403,\n  GetAdmins422,\n  GetAdminsQueryParams,\n  GetAdminsQueryResponse,\n} from '../../models/AdminModel/GetAdmins.ts'\nimport type {\n  GetAdminUsage401,\n  GetAdminUsage403,\n  GetAdminUsage422,\n  GetAdminUsagePathParams,\n  GetAdminUsageQueryResponse,\n} from '../../models/AdminModel/GetAdminUsage.ts'\nimport type { GetCurrentAdmin401, GetCurrentAdminQueryResponse } from '../../models/AdminModel/GetCurrentAdmin.ts'\nimport type {\n  ModifyAdmin401,\n  ModifyAdmin403,\n  ModifyAdmin422,\n  ModifyAdminMutationRequest,\n  ModifyAdminMutationResponse,\n  ModifyAdminPathParams,\n} from '../../models/AdminModel/ModifyAdmin.ts'\nimport type {\n  RemoveAdmin401,\n  RemoveAdmin403,\n  RemoveAdmin422,\n  RemoveAdminMutationResponse,\n  RemoveAdminPathParams,\n} from '../../models/AdminModel/RemoveAdmin.ts'\nimport type {\n  ResetAdminUsage401,\n  ResetAdminUsage403,\n  ResetAdminUsage422,\n  ResetAdminUsageMutationResponse,\n  ResetAdminUsagePathParams,\n} from '../../models/AdminModel/ResetAdminUsage.ts'\nimport { activateAllDisabledUsersMutationResponseSchema } from '../../schemas/AdminSchema/activateAllDisabledUsersSchema.ts'\nimport {\n  adminTokenMutationRequestSchema,\n  adminTokenMutationResponseSchema,\n} from '../../schemas/AdminSchema/adminTokenSchema.ts'\nimport {\n  createAdminMutationRequestSchema,\n  createAdminMutationResponseSchema,\n} from '../../schemas/AdminSchema/createAdminSchema.ts'\nimport { disableAllActiveUsersMutationResponseSchema } from '../../schemas/AdminSchema/disableAllActiveUsersSchema.ts'\nimport { getAdminsQueryResponseSchema } from '../../schemas/AdminSchema/getAdminsSchema.ts'\nimport { getAdminUsageQueryResponseSchema } from '../../schemas/AdminSchema/getAdminUsageSchema.ts'\nimport { getCurrentAdminQueryResponseSchema } from '../../schemas/AdminSchema/getCurrentAdminSchema.ts'\nimport {\n  modifyAdminMutationRequestSchema,\n  modifyAdminMutationResponseSchema,\n} from '../../schemas/AdminSchema/modifyAdminSchema.ts'\nimport { removeAdminMutationResponseSchema } from '../../schemas/AdminSchema/removeAdminSchema.ts'\nimport { resetAdminUsageMutationResponseSchema } from '../../schemas/AdminSchema/resetAdminUsageSchema.ts'\n\nexport class adminApi {\n  #client: typeof fetch\n\n  constructor(config: Partial<RequestConfig> & { client?: typeof fetch } = {}) {\n    this.#client = config.client || fetch\n  }\n\n  /**\n   * @description Authenticate an admin and issue a token.\n   * @summary Admin Token\n   * {@link /api/admin/token}\n   */\n  async adminToken(\n    data: AdminTokenMutationRequest,\n    config: Partial<RequestConfig<AdminTokenMutationRequest>> & { client?: typeof fetch } = {}\n  ) {\n    const { client: request = this.#client, ...requestConfig } = config\n    const requestData = adminTokenMutationRequestSchema.parse(data)\n    const res = await request<\n      AdminTokenMutationResponse,\n      ResponseErrorConfig<AdminToken401 | AdminToken422>,\n      AdminTokenMutationRequest\n    >({\n      method: 'POST',\n      url: `/api/admin/token`,\n      data: requestData,\n      ...requestConfig,\n      headers: { 'Content-Type': 'application/x-www-form-urlencoded', ...requestConfig.headers },\n    })\n    return adminTokenMutationResponseSchema.parse(res.data)\n  }\n\n  /**\n   * @description Retrieve the current authenticated admin.\n   * @summary Get Current Admin\n   * {@link /api/admin}\n   */\n  async getCurrentAdmin(config: Partial<RequestConfig> & { client?: typeof fetch } = {}) {\n    const { client: request = this.#client, ...requestConfig } = config\n    const res = await request<GetCurrentAdminQueryResponse, ResponseErrorConfig<GetCurrentAdmin401>, unknown>({\n      method: 'GET',\n      url: `/api/admin`,\n      ...requestConfig,\n    })\n    return getCurrentAdminQueryResponseSchema.parse(res.data)\n  }\n\n  /**\n   * @description Create a new admin if the current admin has sudo privileges.\n   * @summary Create Admin\n   * {@link /api/admin}\n   */\n  async createAdmin(\n    data: CreateAdminMutationRequest,\n    config: Partial<RequestConfig<CreateAdminMutationRequest>> & { client?: typeof fetch } = {}\n  ) {\n    const { client: request = this.#client, ...requestConfig } = config\n    const requestData = createAdminMutationRequestSchema.parse(data)\n    const res = await request<\n      CreateAdminMutationResponse,\n      ResponseErrorConfig<CreateAdmin401 | CreateAdmin403 | CreateAdmin409 | CreateAdmin422>,\n      CreateAdminMutationRequest\n    >({ method: 'POST', url: `/api/admin`, data: requestData, ...requestConfig })\n    return createAdminMutationResponseSchema.parse(res.data)\n  }\n\n  /**\n   * @description Modify an existing admin's details.\n   * @summary Modify Admin\n   * {@link /api/admin/:username}\n   */\n  async modifyAdmin(\n    username: ModifyAdminPathParams['username'],\n    data: ModifyAdminMutationRequest,\n    config: Partial<RequestConfig<ModifyAdminMutationRequest>> & { client?: typeof fetch } = {}\n  ) {\n    const { client: request = this.#client, ...requestConfig } = config\n    const requestData = modifyAdminMutationRequestSchema.parse(data)\n    const res = await request<\n      ModifyAdminMutationResponse,\n      ResponseErrorConfig<ModifyAdmin401 | ModifyAdmin403 | ModifyAdmin422>,\n      ModifyAdminMutationRequest\n    >({ method: 'PUT', url: `/api/admin/${username}`, data: requestData, ...requestConfig })\n    return modifyAdminMutationResponseSchema.parse(res.data)\n  }\n\n  /**\n   * @description Remove an admin from the database.\n   * @summary Remove Admin\n   * {@link /api/admin/:username}\n   */\n  async removeAdmin(\n    username: RemoveAdminPathParams['username'],\n    config: Partial<RequestConfig> & { client?: typeof fetch } = {}\n  ) {\n    const { client: request = this.#client, ...requestConfig } = config\n    const res = await request<\n      RemoveAdminMutationResponse,\n      ResponseErrorConfig<RemoveAdmin401 | RemoveAdmin403 | RemoveAdmin422>,\n      unknown\n    >({ method: 'DELETE', url: `/api/admin/${username}`, ...requestConfig })\n    return removeAdminMutationResponseSchema.parse(res.data)\n  }\n\n  /**\n   * @description Fetch a list of admins with optional filters for pagination and username.\n   * @summary Get Admins\n   * {@link /api/admins}\n   */\n  async getAdmins(params?: GetAdminsQueryParams, config: Partial<RequestConfig> & { client?: typeof fetch } = {}) {\n    const { client: request = this.#client, ...requestConfig } = config\n    const res = await request<\n      GetAdminsQueryResponse,\n      ResponseErrorConfig<GetAdmins401 | GetAdmins403 | GetAdmins422>,\n      unknown\n    >({ method: 'GET', url: `/api/admins`, params, ...requestConfig })\n    return getAdminsQueryResponseSchema.parse(res.data)\n  }\n\n  /**\n   * @description Disable all active users under a specific admin\n   * @summary Disable All Active Users\n   * {@link /api/admin/:username/users/disable}\n   */\n  async disableAllActiveUsers(\n    username: DisableAllActiveUsersPathParams['username'],\n    config: Partial<RequestConfig> & { client?: typeof fetch } = {}\n  ) {\n    const { client: request = this.#client, ...requestConfig } = config\n    const res = await request<\n      DisableAllActiveUsersMutationResponse,\n      ResponseErrorConfig<\n        DisableAllActiveUsers401 | DisableAllActiveUsers403 | DisableAllActiveUsers404 | DisableAllActiveUsers422\n      >,\n      unknown\n    >({ method: 'POST', url: `/api/admin/${username}/users/disable`, ...requestConfig })\n    return disableAllActiveUsersMutationResponseSchema.parse(res.data)\n  }\n\n  /**\n   * @description Activate all disabled users under a specific admin\n   * @summary Activate All Disabled Users\n   * {@link /api/admin/:username/users/activate}\n   */\n  async activateAllDisabledUsers(\n    username: ActivateAllDisabledUsersPathParams['username'],\n    config: Partial<RequestConfig> & { client?: typeof fetch } = {}\n  ) {\n    const { client: request = this.#client, ...requestConfig } = config\n    const res = await request<\n      ActivateAllDisabledUsersMutationResponse,\n      ResponseErrorConfig<\n        | ActivateAllDisabledUsers401\n        | ActivateAllDisabledUsers403\n        | ActivateAllDisabledUsers404\n        | ActivateAllDisabledUsers422\n      >,\n      unknown\n    >({ method: 'POST', url: `/api/admin/${username}/users/activate`, ...requestConfig })\n    return activateAllDisabledUsersMutationResponseSchema.parse(res.data)\n  }\n\n  /**\n   * @description Resets usage of admin.\n   * @summary Reset Admin Usage\n   * {@link /api/admin/usage/reset/:username}\n   */\n  async resetAdminUsage(\n    username: ResetAdminUsagePathParams['username'],\n    config: Partial<RequestConfig> & { client?: typeof fetch } = {}\n  ) {\n    const { client: request = this.#client, ...requestConfig } = config\n    const res = await request<\n      ResetAdminUsageMutationResponse,\n      ResponseErrorConfig<ResetAdminUsage401 | ResetAdminUsage403 | ResetAdminUsage422>,\n      unknown\n    >({ method: 'POST', url: `/api/admin/usage/reset/${username}`, ...requestConfig })\n    return resetAdminUsageMutationResponseSchema.parse(res.data)\n  }\n\n  /**\n   * @description Retrieve the usage of given admin.\n   * @summary Get Admin Usage\n   * {@link /api/admin/usage/:username}\n   */\n  async getAdminUsage(\n    username: GetAdminUsagePathParams['username'],\n    config: Partial<RequestConfig> & { client?: typeof fetch } = {}\n  ) {\n    const { client: request = this.#client, ...requestConfig } = config\n    const res = await request<\n      GetAdminUsageQueryResponse,\n      ResponseErrorConfig<GetAdminUsage401 | GetAdminUsage403 | GetAdminUsage422>,\n      unknown\n    >({ method: 'GET', url: `/api/admin/usage/${username}`, ...requestConfig })\n    return getAdminUsageQueryResponseSchema.parse(res.data)\n  }\n}\n","import { z } from 'zod/v4'\n\nimport type {\n  GetCoreConfig200,\n  GetCoreConfig401,\n  GetCoreConfig403,\n  GetCoreConfigQueryResponse,\n} from '../../models/CoreModel/GetCoreConfig.ts'\nimport { forbiddenSchema } from '../forbiddenSchema.ts'\nimport { unauthorizedSchema } from '../unauthorizedSchema.ts'\n\n/**\n * @description Successful Response\n */\nexport const getCoreConfig200Schema = z.object({}) as unknown as z.ZodType<GetCoreConfig200>\n\n/**\n * @description Unauthorized\n */\nexport const getCoreConfig401Schema = z.lazy(() => unauthorizedSchema) as unknown as z.ZodType<GetCoreConfig401>\n\n/**\n * @description Forbidden\n */\nexport const getCoreConfig403Schema = z.lazy(() => forbiddenSchema) as unknown as z.ZodType<GetCoreConfig403>\n\nexport const getCoreConfigQueryResponseSchema = z.lazy(\n  () => getCoreConfig200Schema\n) as unknown as z.ZodType<GetCoreConfigQueryResponse>\n","import { z } from 'zod/v4'\n\nimport type { CoreStats } from '../models/CoreStats.ts'\n\nexport const coreStatsSchema = z.object({\n  version: z.string(),\n  started: z.boolean(),\n  logs_websocket: z.string(),\n}) as unknown as z.ZodType<CoreStats>\n","import { z } from 'zod/v4'\n\nimport type {\n  GetCoreStats200,\n  GetCoreStats401,\n  GetCoreStatsQueryResponse,\n} from '../../models/CoreModel/GetCoreStats.ts'\nimport { coreStatsSchema } from '../coreStatsSchema.ts'\nimport { unauthorizedSchema } from '../unauthorizedSchema.ts'\n\n/**\n * @description Successful Response\n */\nexport const getCoreStats200Schema = z.lazy(() => coreStatsSchema) as unknown as z.ZodType<GetCoreStats200>\n\n/**\n * @description Unauthorized\n */\nexport const getCoreStats401Schema = z.lazy(() => unauthorizedSchema) as unknown as z.ZodType<GetCoreStats401>\n\nexport const getCoreStatsQueryResponseSchema = z.lazy(\n  () => getCoreStats200Schema\n) as unknown as z.ZodType<GetCoreStatsQueryResponse>\n","import { z } from 'zod/v4'\n\nimport type {\n  ModifyCoreConfig200,\n  ModifyCoreConfig401,\n  ModifyCoreConfig403,\n  ModifyCoreConfig422,\n  ModifyCoreConfigMutationRequest,\n  ModifyCoreConfigMutationResponse,\n} from '../../models/CoreModel/ModifyCoreConfig.ts'\nimport { forbiddenSchema } from '../forbiddenSchema.ts'\nimport { HTTPValidationErrorSchema } from '../HTTPValidationErrorSchema.ts'\nimport { unauthorizedSchema } from '../unauthorizedSchema.ts'\n\n/**\n * @description Successful Response\n */\nexport const modifyCoreConfig200Schema = z.object({}) as unknown as z.ZodType<ModifyCoreConfig200>\n\n/**\n * @description Unauthorized\n */\nexport const modifyCoreConfig401Schema = z.lazy(() => unauthorizedSchema) as unknown as z.ZodType<ModifyCoreConfig401>\n\n/**\n * @description Forbidden\n */\nexport const modifyCoreConfig403Schema = z.lazy(() => forbiddenSchema) as unknown as z.ZodType<ModifyCoreConfig403>\n\n/**\n * @description Validation Error\n */\nexport const modifyCoreConfig422Schema = z.lazy(\n  () => HTTPValidationErrorSchema\n) as unknown as z.ZodType<ModifyCoreConfig422>\n\nexport const modifyCoreConfigMutationRequestSchema = z.object(\n  {}\n) as unknown as z.ZodType<ModifyCoreConfigMutationRequest>\n\nexport const modifyCoreConfigMutationResponseSchema = z.lazy(\n  () => modifyCoreConfig200Schema\n) as unknown as z.ZodType<ModifyCoreConfigMutationResponse>\n","import { z } from 'zod/v4'\n\nimport type {\n  RestartCore200,\n  RestartCore401,\n  RestartCore403,\n  RestartCoreMutationResponse,\n} from '../../models/CoreModel/RestartCore.ts'\nimport { forbiddenSchema } from '../forbiddenSchema.ts'\nimport { unauthorizedSchema } from '../unauthorizedSchema.ts'\n\n/**\n * @description Successful Response\n */\nexport const restartCore200Schema = z.any() as unknown as z.ZodType<RestartCore200>\n\n/**\n * @description Unauthorized\n */\nexport const restartCore401Schema = z.lazy(() => unauthorizedSchema) as unknown as z.ZodType<RestartCore401>\n\n/**\n * @description Forbidden\n */\nexport const restartCore403Schema = z.lazy(() => forbiddenSchema) as unknown as z.ZodType<RestartCore403>\n\nexport const restartCoreMutationResponseSchema = z.lazy(\n  () => restartCore200Schema\n) as unknown as z.ZodType<RestartCoreMutationResponse>\n","import type { RequestConfig, ResponseErrorConfig } from '@/core/http/client.ts'\nimport fetch from '@/core/http/client.ts'\n\nimport type {\n  GetCoreConfig401,\n  GetCoreConfig403,\n  GetCoreConfigQueryResponse,\n} from '../../models/CoreModel/GetCoreConfig.ts'\nimport type { GetCoreStats401, GetCoreStatsQueryResponse } from '../../models/CoreModel/GetCoreStats.ts'\nimport type {\n  ModifyCoreConfig401,\n  ModifyCoreConfig403,\n  ModifyCoreConfig422,\n  ModifyCoreConfigMutationRequest,\n  ModifyCoreConfigMutationResponse,\n} from '../../models/CoreModel/ModifyCoreConfig.ts'\nimport type { RestartCore401, RestartCore403, RestartCoreMutationResponse } from '../../models/CoreModel/RestartCore.ts'\nimport { getCoreConfigQueryResponseSchema } from '../../schemas/CoreSchema/getCoreConfigSchema.ts'\nimport { getCoreStatsQueryResponseSchema } from '../../schemas/CoreSchema/getCoreStatsSchema.ts'\nimport {\n  modifyCoreConfigMutationRequestSchema,\n  modifyCoreConfigMutationResponseSchema,\n} from '../../schemas/CoreSchema/modifyCoreConfigSchema.ts'\nimport { restartCoreMutationResponseSchema } from '../../schemas/CoreSchema/restartCoreSchema.ts'\n\nexport class coreApi {\n  #client: typeof fetch\n\n  constructor(config: Partial<RequestConfig> & { client?: typeof fetch } = {}) {\n    this.#client = config.client || fetch\n  }\n\n  /**\n   * @description Retrieve core statistics such as version and uptime.\n   * @summary Get Core Stats\n   * {@link /api/core}\n   */\n  async getCoreStats(config: Partial<RequestConfig> & { client?: typeof fetch } = {}) {\n    const { client: request = this.#client, ...requestConfig } = config\n    const res = await request<GetCoreStatsQueryResponse, ResponseErrorConfig<GetCoreStats401>, unknown>({\n      method: 'GET',\n      url: `/api/core`,\n      ...requestConfig,\n    })\n    return getCoreStatsQueryResponseSchema.parse(res.data)\n  }\n\n  /**\n   * @description Restart the core and all connected nodes.\n   * @summary Restart Core\n   * {@link /api/core/restart}\n   */\n  async restartCore(config: Partial<RequestConfig> & { client?: typeof fetch } = {}) {\n    const { client: request = this.#client, ...requestConfig } = config\n    const res = await request<\n      RestartCoreMutationResponse,\n      ResponseErrorConfig<RestartCore401 | RestartCore403>,\n      unknown\n    >({ method: 'POST', url: `/api/core/restart`, ...requestConfig })\n    return restartCoreMutationResponseSchema.parse(res.data)\n  }\n\n  /**\n   * @description Get the current core configuration.\n   * @summary Get Core Config\n   * {@link /api/core/config}\n   */\n  async getCoreConfig(config: Partial<RequestConfig> & { client?: typeof fetch } = {}) {\n    const { client: request = this.#client, ...requestConfig } = config\n    const res = await request<\n      GetCoreConfigQueryResponse,\n      ResponseErrorConfig<GetCoreConfig401 | GetCoreConfig403>,\n      unknown\n    >({ method: 'GET', url: `/api/core/config`, ...requestConfig })\n    return getCoreConfigQueryResponseSchema.parse(res.data)\n  }\n\n  /**\n   * @description Modify the core configuration and restart the core.\n   * @summary Modify Core Config\n   * {@link /api/core/config}\n   */\n  async modifyCoreConfig(\n    data?: ModifyCoreConfigMutationRequest,\n    config: Partial<RequestConfig<ModifyCoreConfigMutationRequest>> & { client?: typeof fetch } = {}\n  ) {\n    const { client: request = this.#client, ...requestConfig } = config\n    const requestData = modifyCoreConfigMutationRequestSchema.parse(data)\n    const res = await request<\n      ModifyCoreConfigMutationResponse,\n      ResponseErrorConfig<ModifyCoreConfig401 | ModifyCoreConfig403 | ModifyCoreConfig422>,\n      ModifyCoreConfigMutationRequest\n    >({ method: 'PUT', url: `/api/core/config`, data: requestData, ...requestConfig })\n    return modifyCoreConfigMutationResponseSchema.parse(res.data)\n  }\n}\n","import { z } from 'zod/v4'\n\nimport type { NodeCreate } from '../models/NodeCreate.ts'\n\nexport const nodeCreateSchema = z.object({\n  name: z.string(),\n  address: z.string(),\n  port: z.optional(z.int().default(62050)),\n  api_port: z.optional(z.int().default(62051)),\n  usage_coefficient: z.optional(z.number().gt(0).default(1)),\n  add_as_new_host: z.optional(z.boolean().default(true)),\n}) as unknown as z.ZodType<NodeCreate>\n","import { z } from 'zod/v4'\n\nimport type { NodeStatus } from '../models/NodeStatus.ts'\n\nexport const nodeStatusSchema = z.enum([\n  'connected',\n  'connecting',\n  'error',\n  'disabled',\n]) as unknown as z.ZodType<NodeStatus>\n","import { z } from 'zod/v4'\n\nimport type { NodeResponse } from '../models/NodeResponse.ts'\nimport { nodeStatusSchema } from './nodeStatusSchema.ts'\n\nexport const nodeResponseSchema = z.object({\n  name: z.string(),\n  address: z.string(),\n  port: z.optional(z.int().default(62050)),\n  api_port: z.optional(z.int().default(62051)),\n  usage_coefficient: z.optional(z.number().gt(0).default(1)),\n  id: z.int(),\n  xray_version: z.optional(z.union([z.string(), z.null()])),\n  get status() {\n    return nodeStatusSchema\n  },\n  message: z.optional(z.union([z.string(), z.null()])),\n}) as unknown as z.ZodType<NodeResponse>\n","import { z } from 'zod/v4'\n\nimport type {\n  AddNode200,\n  AddNode401,\n  AddNode403,\n  AddNode409,\n  AddNode422,\n  AddNodeMutationRequest,\n  AddNodeMutationResponse,\n} from '../../models/NodeModel/AddNode.ts'\nimport { conflictSchema } from '../conflictSchema.ts'\nimport { forbiddenSchema } from '../forbiddenSchema.ts'\nimport { HTTPValidationErrorSchema } from '../HTTPValidationErrorSchema.ts'\nimport { nodeCreateSchema } from '../nodeCreateSchema.ts'\nimport { nodeResponseSchema } from '../nodeResponseSchema.ts'\nimport { unauthorizedSchema } from '../unauthorizedSchema.ts'\n\n/**\n * @description Successful Response\n */\nexport const addNode200Schema = z.lazy(() => nodeResponseSchema) as unknown as z.ZodType<AddNode200>\n\n/**\n * @description Unauthorized\n */\nexport const addNode401Schema = z.lazy(() => unauthorizedSchema) as unknown as z.ZodType<AddNode401>\n\n/**\n * @description Forbidden\n */\nexport const addNode403Schema = z.lazy(() => forbiddenSchema) as unknown as z.ZodType<AddNode403>\n\n/**\n * @description Conflict\n */\nexport const addNode409Schema = z.lazy(() => conflictSchema) as unknown as z.ZodType<AddNode409>\n\n/**\n * @description Validation Error\n */\nexport const addNode422Schema = z.lazy(() => HTTPValidationErrorSchema) as unknown as z.ZodType<AddNode422>\n\nexport const addNodeMutationRequestSchema = z.lazy(\n  () => nodeCreateSchema\n) as unknown as z.ZodType<AddNodeMutationRequest>\n\nexport const addNodeMutationResponseSchema = z.lazy(\n  () => addNode200Schema\n) as unknown as z.ZodType<AddNodeMutationResponse>\n","import { z } from 'zod/v4'\n\nimport type {\n  GetNode200,\n  GetNode401,\n  GetNode403,\n  GetNode422,\n  GetNodePathParams,\n  GetNodeQueryResponse,\n} from '../../models/NodeModel/GetNode.ts'\nimport { forbiddenSchema } from '../forbiddenSchema.ts'\nimport { HTTPValidationErrorSchema } from '../HTTPValidationErrorSchema.ts'\nimport { nodeResponseSchema } from '../nodeResponseSchema.ts'\nimport { unauthorizedSchema } from '../unauthorizedSchema.ts'\n\nexport const getNodePathParamsSchema = z.object({\n  node_id: z.coerce.number().int(),\n}) as unknown as z.ZodType<GetNodePathParams>\n\n/**\n * @description Successful Response\n */\nexport const getNode200Schema = z.lazy(() => nodeResponseSchema) as unknown as z.ZodType<GetNode200>\n\n/**\n * @description Unauthorized\n */\nexport const getNode401Schema = z.lazy(() => unauthorizedSchema) as unknown as z.ZodType<GetNode401>\n\n/**\n * @description Forbidden\n */\nexport const getNode403Schema = z.lazy(() => forbiddenSchema) as unknown as z.ZodType<GetNode403>\n\n/**\n * @description Validation Error\n */\nexport const getNode422Schema = z.lazy(() => HTTPValidationErrorSchema) as unknown as z.ZodType<GetNode422>\n\nexport const getNodeQueryResponseSchema = z.lazy(() => getNode200Schema) as unknown as z.ZodType<GetNodeQueryResponse>\n","import { z } from 'zod/v4'\n\nimport type { NodeSettings } from '../models/NodeSettings.ts'\n\nexport const nodeSettingsSchema = z.object({\n  min_node_version: z.optional(z.string().default('v0.2.0')),\n  certificate: z.string(),\n}) as unknown as z.ZodType<NodeSettings>\n","import { z } from 'zod/v4'\n\nimport type {\n  GetNodeSettings200,\n  GetNodeSettings401,\n  GetNodeSettings403,\n  GetNodeSettingsQueryResponse,\n} from '../../models/NodeModel/GetNodeSettings.ts'\nimport { forbiddenSchema } from '../forbiddenSchema.ts'\nimport { nodeSettingsSchema } from '../nodeSettingsSchema.ts'\nimport { unauthorizedSchema } from '../unauthorizedSchema.ts'\n\n/**\n * @description Successful Response\n */\nexport const getNodeSettings200Schema = z.lazy(() => nodeSettingsSchema) as unknown as z.ZodType<GetNodeSettings200>\n\n/**\n * @description Unauthorized\n */\nexport const getNodeSettings401Schema = z.lazy(() => unauthorizedSchema) as unknown as z.ZodType<GetNodeSettings401>\n\n/**\n * @description Forbidden\n */\nexport const getNodeSettings403Schema = z.lazy(() => forbiddenSchema) as unknown as z.ZodType<GetNodeSettings403>\n\nexport const getNodeSettingsQueryResponseSchema = z.lazy(\n  () => getNodeSettings200Schema\n) as unknown as z.ZodType<GetNodeSettingsQueryResponse>\n","import { z } from 'zod/v4'\n\nimport type { GetNodes200, GetNodes401, GetNodes403, GetNodesQueryResponse } from '../../models/NodeModel/GetNodes.ts'\nimport { forbiddenSchema } from '../forbiddenSchema.ts'\nimport { nodeResponseSchema } from '../nodeResponseSchema.ts'\nimport { unauthorizedSchema } from '../unauthorizedSchema.ts'\n\n/**\n * @description Successful Response\n */\nexport const getNodes200Schema = z.array(z.lazy(() => nodeResponseSchema)) as unknown as z.ZodType<GetNodes200>\n\n/**\n * @description Unauthorized\n */\nexport const getNodes401Schema = z.lazy(() => unauthorizedSchema) as unknown as z.ZodType<GetNodes401>\n\n/**\n * @description Forbidden\n */\nexport const getNodes403Schema = z.lazy(() => forbiddenSchema) as unknown as z.ZodType<GetNodes403>\n\nexport const getNodesQueryResponseSchema = z.lazy(\n  () => getNodes200Schema\n) as unknown as z.ZodType<GetNodesQueryResponse>\n","import { z } from 'zod/v4'\n\nimport type { NodeUsageResponse } from '../models/NodeUsageResponse.ts'\n\nexport const nodeUsageResponseSchema = z.object({\n  node_id: z.optional(z.union([z.int(), z.null()])),\n  node_name: z.string(),\n  uplink: z.int(),\n  downlink: z.int(),\n}) as unknown as z.ZodType<NodeUsageResponse>\n","import { z } from 'zod/v4'\n\nimport type { NodesUsageResponse } from '../models/NodesUsageResponse.ts'\nimport { nodeUsageResponseSchema } from './nodeUsageResponseSchema.ts'\n\nexport const nodesUsageResponseSchema = z.object({\n  get usages() {\n    return z.array(nodeUsageResponseSchema)\n  },\n}) as unknown as z.ZodType<NodesUsageResponse>\n","import { z } from 'zod/v4'\n\nimport type {\n  GetUsage200,\n  GetUsage401,\n  GetUsage403,\n  GetUsage422,\n  GetUsageQueryParams,\n  GetUsageQueryResponse,\n} from '../../models/NodeModel/GetUsage.ts'\nimport { forbiddenSchema } from '../forbiddenSchema.ts'\nimport { HTTPValidationErrorSchema } from '../HTTPValidationErrorSchema.ts'\nimport { nodesUsageResponseSchema } from '../nodesUsageResponseSchema.ts'\nimport { unauthorizedSchema } from '../unauthorizedSchema.ts'\n\nexport const getUsageQueryParamsSchema = z.object({\n  start: z.string().default(''),\n  end: z.string().default(''),\n}) as unknown as z.ZodType<GetUsageQueryParams>\n\n/**\n * @description Successful Response\n */\nexport const getUsage200Schema = z.lazy(() => nodesUsageResponseSchema) as unknown as z.ZodType<GetUsage200>\n\n/**\n * @description Unauthorized\n */\nexport const getUsage401Schema = z.lazy(() => unauthorizedSchema) as unknown as z.ZodType<GetUsage401>\n\n/**\n * @description Forbidden\n */\nexport const getUsage403Schema = z.lazy(() => forbiddenSchema) as unknown as z.ZodType<GetUsage403>\n\n/**\n * @description Validation Error\n */\nexport const getUsage422Schema = z.lazy(() => HTTPValidationErrorSchema) as unknown as z.ZodType<GetUsage422>\n\nexport const getUsageQueryResponseSchema = z.lazy(\n  () => getUsage200Schema\n) as unknown as z.ZodType<GetUsageQueryResponse>\n","import { z } from 'zod/v4'\n\nimport type { NodeModify } from '../models/NodeModify.ts'\nimport { nodeStatusSchema } from './nodeStatusSchema.ts'\n\nexport const nodeModifySchema = z.object({\n  name: z.union([z.string(), z.null()]).nullish(),\n  address: z.union([z.string(), z.null()]).nullish(),\n  port: z.union([z.int(), z.null()]).nullish(),\n  api_port: z.union([z.int(), z.null()]).nullish(),\n  usage_coefficient: z.union([z.number(), z.null()]).nullish(),\n  get status() {\n    return z.union([nodeStatusSchema, z.null()]).nullish()\n  },\n}) as unknown as z.ZodType<NodeModify>\n","import { z } from 'zod/v4'\n\nimport type {\n  ModifyNode200,\n  ModifyNode401,\n  ModifyNode403,\n  ModifyNode422,\n  ModifyNodeMutationRequest,\n  ModifyNodeMutationResponse,\n  ModifyNodePathParams,\n} from '../../models/NodeModel/ModifyNode.ts'\nimport { forbiddenSchema } from '../forbiddenSchema.ts'\nimport { HTTPValidationErrorSchema } from '../HTTPValidationErrorSchema.ts'\nimport { nodeModifySchema } from '../nodeModifySchema.ts'\nimport { nodeResponseSchema } from '../nodeResponseSchema.ts'\nimport { unauthorizedSchema } from '../unauthorizedSchema.ts'\n\nexport const modifyNodePathParamsSchema = z.object({\n  node_id: z.coerce.number().int(),\n}) as unknown as z.ZodType<ModifyNodePathParams>\n\n/**\n * @description Successful Response\n */\nexport const modifyNode200Schema = z.lazy(() => nodeResponseSchema) as unknown as z.ZodType<ModifyNode200>\n\n/**\n * @description Unauthorized\n */\nexport const modifyNode401Schema = z.lazy(() => unauthorizedSchema) as unknown as z.ZodType<ModifyNode401>\n\n/**\n * @description Forbidden\n */\nexport const modifyNode403Schema = z.lazy(() => forbiddenSchema) as unknown as z.ZodType<ModifyNode403>\n\n/**\n * @description Validation Error\n */\nexport const modifyNode422Schema = z.lazy(() => HTTPValidationErrorSchema) as unknown as z.ZodType<ModifyNode422>\n\nexport const modifyNodeMutationRequestSchema = z.lazy(\n  () => nodeModifySchema\n) as unknown as z.ZodType<ModifyNodeMutationRequest>\n\nexport const modifyNodeMutationResponseSchema = z.lazy(\n  () => modifyNode200Schema\n) as unknown as z.ZodType<ModifyNodeMutationResponse>\n","import { z } from 'zod/v4'\n\nimport type {\n  ReconnectNode200,\n  ReconnectNode401,\n  ReconnectNode403,\n  ReconnectNode422,\n  ReconnectNodeMutationResponse,\n  ReconnectNodePathParams,\n} from '../../models/NodeModel/ReconnectNode.ts'\nimport { forbiddenSchema } from '../forbiddenSchema.ts'\nimport { HTTPValidationErrorSchema } from '../HTTPValidationErrorSchema.ts'\nimport { unauthorizedSchema } from '../unauthorizedSchema.ts'\n\nexport const reconnectNodePathParamsSchema = z.object({\n  node_id: z.coerce.number().int(),\n}) as unknown as z.ZodType<ReconnectNodePathParams>\n\n/**\n * @description Successful Response\n */\nexport const reconnectNode200Schema = z.any() as unknown as z.ZodType<ReconnectNode200>\n\n/**\n * @description Unauthorized\n */\nexport const reconnectNode401Schema = z.lazy(() => unauthorizedSchema) as unknown as z.ZodType<ReconnectNode401>\n\n/**\n * @description Forbidden\n */\nexport const reconnectNode403Schema = z.lazy(() => forbiddenSchema) as unknown as z.ZodType<ReconnectNode403>\n\n/**\n * @description Validation Error\n */\nexport const reconnectNode422Schema = z.lazy(() => HTTPValidationErrorSchema) as unknown as z.ZodType<ReconnectNode422>\n\nexport const reconnectNodeMutationResponseSchema = z.lazy(\n  () => reconnectNode200Schema\n) as unknown as z.ZodType<ReconnectNodeMutationResponse>\n","import { z } from 'zod/v4'\n\nimport type {\n  RemoveNode200,\n  RemoveNode401,\n  RemoveNode403,\n  RemoveNode422,\n  RemoveNodeMutationResponse,\n  RemoveNodePathParams,\n} from '../../models/NodeModel/RemoveNode.ts'\nimport { forbiddenSchema } from '../forbiddenSchema.ts'\nimport { HTTPValidationErrorSchema } from '../HTTPValidationErrorSchema.ts'\nimport { unauthorizedSchema } from '../unauthorizedSchema.ts'\n\nexport const removeNodePathParamsSchema = z.object({\n  node_id: z.coerce.number().int(),\n}) as unknown as z.ZodType<RemoveNodePathParams>\n\n/**\n * @description Successful Response\n */\nexport const removeNode200Schema = z.any() as unknown as z.ZodType<RemoveNode200>\n\n/**\n * @description Unauthorized\n */\nexport const removeNode401Schema = z.lazy(() => unauthorizedSchema) as unknown as z.ZodType<RemoveNode401>\n\n/**\n * @description Forbidden\n */\nexport const removeNode403Schema = z.lazy(() => forbiddenSchema) as unknown as z.ZodType<RemoveNode403>\n\n/**\n * @description Validation Error\n */\nexport const removeNode422Schema = z.lazy(() => HTTPValidationErrorSchema) as unknown as z.ZodType<RemoveNode422>\n\nexport const removeNodeMutationResponseSchema = z.lazy(\n  () => removeNode200Schema\n) as unknown as z.ZodType<RemoveNodeMutationResponse>\n","import type { RequestConfig, ResponseErrorConfig } from '@/core/http/client.ts'\nimport fetch from '@/core/http/client.ts'\n\nimport type {\n  AddNode401,\n  AddNode403,\n  AddNode409,\n  AddNode422,\n  AddNodeMutationRequest,\n  AddNodeMutationResponse,\n} from '../../models/NodeModel/AddNode.ts'\nimport type {\n  GetNode401,\n  GetNode403,\n  GetNode422,\n  GetNodePathParams,\n  GetNodeQueryResponse,\n} from '../../models/NodeModel/GetNode.ts'\nimport type { GetNodes401, GetNodes403, GetNodesQueryResponse } from '../../models/NodeModel/GetNodes.ts'\nimport type {\n  GetNodeSettings401,\n  GetNodeSettings403,\n  GetNodeSettingsQueryResponse,\n} from '../../models/NodeModel/GetNodeSettings.ts'\nimport type {\n  GetUsage401,\n  GetUsage403,\n  GetUsage422,\n  GetUsageQueryParams,\n  GetUsageQueryResponse,\n} from '../../models/NodeModel/GetUsage.ts'\nimport type {\n  ModifyNode401,\n  ModifyNode403,\n  ModifyNode422,\n  ModifyNodeMutationRequest,\n  ModifyNodeMutationResponse,\n  ModifyNodePathParams,\n} from '../../models/NodeModel/ModifyNode.ts'\nimport type {\n  ReconnectNode401,\n  ReconnectNode403,\n  ReconnectNode422,\n  ReconnectNodeMutationResponse,\n  ReconnectNodePathParams,\n} from '../../models/NodeModel/ReconnectNode.ts'\nimport type {\n  RemoveNode401,\n  RemoveNode403,\n  RemoveNode422,\n  RemoveNodeMutationResponse,\n  RemoveNodePathParams,\n} from '../../models/NodeModel/RemoveNode.ts'\nimport { addNodeMutationRequestSchema, addNodeMutationResponseSchema } from '../../schemas/NodeSchema/addNodeSchema.ts'\nimport { getNodeQueryResponseSchema } from '../../schemas/NodeSchema/getNodeSchema.ts'\nimport { getNodeSettingsQueryResponseSchema } from '../../schemas/NodeSchema/getNodeSettingsSchema.ts'\nimport { getNodesQueryResponseSchema } from '../../schemas/NodeSchema/getNodesSchema.ts'\nimport { getUsageQueryResponseSchema } from '../../schemas/NodeSchema/getUsageSchema.ts'\nimport {\n  modifyNodeMutationRequestSchema,\n  modifyNodeMutationResponseSchema,\n} from '../../schemas/NodeSchema/modifyNodeSchema.ts'\nimport { reconnectNodeMutationResponseSchema } from '../../schemas/NodeSchema/reconnectNodeSchema.ts'\nimport { removeNodeMutationResponseSchema } from '../../schemas/NodeSchema/removeNodeSchema.ts'\n\nexport class nodeApi {\n  #client: typeof fetch\n\n  constructor(config: Partial<RequestConfig> & { client?: typeof fetch } = {}) {\n    this.#client = config.client || fetch\n  }\n\n  /**\n   * @description Retrieve the current node settings, including TLS certificate.\n   * @summary Get Node Settings\n   * {@link /api/node/settings}\n   */\n  async getNodeSettings(config: Partial<RequestConfig> & { client?: typeof fetch } = {}) {\n    const { client: request = this.#client, ...requestConfig } = config\n    const res = await request<\n      GetNodeSettingsQueryResponse,\n      ResponseErrorConfig<GetNodeSettings401 | GetNodeSettings403>,\n      unknown\n    >({ method: 'GET', url: `/api/node/settings`, ...requestConfig })\n    return getNodeSettingsQueryResponseSchema.parse(res.data)\n  }\n\n  /**\n   * @description Add a new node to the database and optionally add it as a host.\n   * @summary Add Node\n   * {@link /api/node}\n   */\n  async addNode(\n    data: AddNodeMutationRequest,\n    config: Partial<RequestConfig<AddNodeMutationRequest>> & { client?: typeof fetch } = {}\n  ) {\n    const { client: request = this.#client, ...requestConfig } = config\n    const requestData = addNodeMutationRequestSchema.parse(data)\n    const res = await request<\n      AddNodeMutationResponse,\n      ResponseErrorConfig<AddNode401 | AddNode403 | AddNode409 | AddNode422>,\n      AddNodeMutationRequest\n    >({ method: 'POST', url: `/api/node`, data: requestData, ...requestConfig })\n    return addNodeMutationResponseSchema.parse(res.data)\n  }\n\n  /**\n   * @description Retrieve details of a specific node by its ID.\n   * @summary Get Node\n   * {@link /api/node/:node_id}\n   */\n  async getNode(nodeId: GetNodePathParams['node_id'], config: Partial<RequestConfig> & { client?: typeof fetch } = {}) {\n    const { client: request = this.#client, ...requestConfig } = config\n    const res = await request<GetNodeQueryResponse, ResponseErrorConfig<GetNode401 | GetNode403 | GetNode422>, unknown>(\n      { method: 'GET', url: `/api/node/${nodeId}`, ...requestConfig }\n    )\n    return getNodeQueryResponseSchema.parse(res.data)\n  }\n\n  /**\n   * @description Update a node's details. Only accessible to sudo admins.\n   * @summary Modify Node\n   * {@link /api/node/:node_id}\n   */\n  async modifyNode(\n    nodeId: ModifyNodePathParams['node_id'],\n    data?: ModifyNodeMutationRequest,\n    config: Partial<RequestConfig<ModifyNodeMutationRequest>> & { client?: typeof fetch } = {}\n  ) {\n    const { client: request = this.#client, ...requestConfig } = config\n    const requestData = modifyNodeMutationRequestSchema.parse(data)\n    const res = await request<\n      ModifyNodeMutationResponse,\n      ResponseErrorConfig<ModifyNode401 | ModifyNode403 | ModifyNode422>,\n      ModifyNodeMutationRequest\n    >({ method: 'PUT', url: `/api/node/${nodeId}`, data: requestData, ...requestConfig })\n    return modifyNodeMutationResponseSchema.parse(res.data)\n  }\n\n  /**\n   * @description Delete a node and remove it from xray in the background.\n   * @summary Remove Node\n   * {@link /api/node/:node_id}\n   */\n  async removeNode(\n    nodeId: RemoveNodePathParams['node_id'],\n    config: Partial<RequestConfig> & { client?: typeof fetch } = {}\n  ) {\n    const { client: request = this.#client, ...requestConfig } = config\n    const res = await request<\n      RemoveNodeMutationResponse,\n      ResponseErrorConfig<RemoveNode401 | RemoveNode403 | RemoveNode422>,\n      unknown\n    >({ method: 'DELETE', url: `/api/node/${nodeId}`, ...requestConfig })\n    return removeNodeMutationResponseSchema.parse(res.data)\n  }\n\n  /**\n   * @description Retrieve a list of all nodes. Accessible only to sudo admins.\n   * @summary Get Nodes\n   * {@link /api/nodes}\n   */\n  async getNodes(config: Partial<RequestConfig> & { client?: typeof fetch } = {}) {\n    const { client: request = this.#client, ...requestConfig } = config\n    const res = await request<GetNodesQueryResponse, ResponseErrorConfig<GetNodes401 | GetNodes403>, unknown>({\n      method: 'GET',\n      url: `/api/nodes`,\n      ...requestConfig,\n    })\n    return getNodesQueryResponseSchema.parse(res.data)\n  }\n\n  /**\n   * @description Trigger a reconnection for the specified node. Only accessible to sudo admins.\n   * @summary Reconnect Node\n   * {@link /api/node/:node_id/reconnect}\n   */\n  async reconnectNode(\n    nodeId: ReconnectNodePathParams['node_id'],\n    config: Partial<RequestConfig> & { client?: typeof fetch } = {}\n  ) {\n    const { client: request = this.#client, ...requestConfig } = config\n    const res = await request<\n      ReconnectNodeMutationResponse,\n      ResponseErrorConfig<ReconnectNode401 | ReconnectNode403 | ReconnectNode422>,\n      unknown\n    >({ method: 'POST', url: `/api/node/${nodeId}/reconnect`, ...requestConfig })\n    return reconnectNodeMutationResponseSchema.parse(res.data)\n  }\n\n  /**\n   * @description Retrieve usage statistics for nodes within a specified date range.\n   * @summary Get Usage\n   * {@link /api/nodes/usage}\n   */\n  async getUsage(params?: GetUsageQueryParams, config: Partial<RequestConfig> & { client?: typeof fetch } = {}) {\n    const { client: request = this.#client, ...requestConfig } = config\n    const res = await request<\n      GetUsageQueryResponse,\n      ResponseErrorConfig<GetUsage401 | GetUsage403 | GetUsage422>,\n      unknown\n    >({ method: 'GET', url: `/api/nodes/usage`, params, ...requestConfig })\n    return getUsageQueryResponseSchema.parse(res.data)\n  }\n}\n","import { z } from 'zod/v4'\n\nimport type {\n  UserGetUsage200,\n  UserGetUsage422,\n  UserGetUsagePathParams,\n  UserGetUsageQueryParams,\n  UserGetUsageQueryResponse,\n} from '../../models/SubscriptionModel/UserGetUsage.ts'\nimport { HTTPValidationErrorSchema } from '../HTTPValidationErrorSchema.ts'\n\nexport const userGetUsagePathParamsSchema = z.object({\n  token: z.string(),\n}) as unknown as z.ZodType<UserGetUsagePathParams>\n\nexport const userGetUsageQueryParamsSchema = z.object({\n  start: z.string().default(''),\n  end: z.string().default(''),\n}) as unknown as z.ZodType<UserGetUsageQueryParams>\n\n/**\n * @description Successful Response\n */\nexport const userGetUsage200Schema = z.any() as unknown as z.ZodType<UserGetUsage200>\n\n/**\n * @description Validation Error\n */\nexport const userGetUsage422Schema = z.lazy(() => HTTPValidationErrorSchema) as unknown as z.ZodType<UserGetUsage422>\n\nexport const userGetUsageQueryResponseSchema = z.lazy(\n  () => userGetUsage200Schema\n) as unknown as z.ZodType<UserGetUsageQueryResponse>\n","import { z } from 'zod/v4'\n\nimport type { NextPlanModel } from '../models/NextPlanModel.ts'\n\nexport const nextPlanModelSchema = z.object({\n  data_limit: z.optional(z.union([z.int(), z.null()])),\n  expire: z.optional(z.union([z.int(), z.null()])),\n  add_remaining_traffic: z.optional(z.boolean().default(false)),\n  fire_on_either: z.optional(z.boolean().default(true)),\n}) as unknown as z.ZodType<NextPlanModel>\n","import { z } from 'zod/v4'\n\nimport type { UserDataLimitResetStrategy } from '../models/UserDataLimitResetStrategy.ts'\n\nexport const userDataLimitResetStrategySchema = z.enum([\n  'no_reset',\n  'day',\n  'week',\n  'month',\n  'year',\n]) as unknown as z.ZodType<UserDataLimitResetStrategy>\n","import { z } from 'zod/v4'\n\nimport type { UserStatus } from '../models/UserStatus.ts'\n\nexport const userStatusSchema = z.enum([\n  'active',\n  'disabled',\n  'limited',\n  'expired',\n  'on_hold',\n]) as unknown as z.ZodType<UserStatus>\n","import { z } from 'zod/v4'\n\nimport type { SubscriptionUserResponse } from '../models/SubscriptionUserResponse.ts'\nimport { nextPlanModelSchema } from './nextPlanModelSchema.ts'\nimport { userDataLimitResetStrategySchema } from './userDataLimitResetStrategySchema.ts'\nimport { userStatusSchema } from './userStatusSchema.ts'\n\nexport const subscriptionUserResponseSchema = z.object({\n  proxies: z.object({}),\n  expire: z.union([z.int(), z.null()]).nullish(),\n  data_limit: z.optional(z.union([z.int(), z.null()]).describe('data_limit can be 0 or greater')),\n  get data_limit_reset_strategy() {\n    return userDataLimitResetStrategySchema.optional()\n  },\n  sub_updated_at: z.union([z.iso.datetime({ local: true }), z.null()]).nullish(),\n  sub_last_user_agent: z.union([z.string(), z.null()]).nullish(),\n  online_at: z.union([z.iso.datetime({ local: true }), z.null()]).nullish(),\n  on_hold_expire_duration: z.union([z.int(), z.null()]).nullish(),\n  on_hold_timeout: z.union([z.iso.datetime({ local: true }), z.null()]).nullish(),\n  get next_plan() {\n    return z.union([nextPlanModelSchema, z.null()]).nullish()\n  },\n  username: z.string(),\n  get status() {\n    return userStatusSchema\n  },\n  used_traffic: z.int(),\n  lifetime_used_traffic: z.optional(z.int().default(0)),\n  created_at: z.iso.datetime({ local: true }),\n  links: z.optional(z.array(z.string())),\n  subscription_url: z.optional(z.string().default('')),\n}) as unknown as z.ZodType<SubscriptionUserResponse>\n","import { z } from 'zod/v4'\n\nimport type {\n  UserSubscriptionInfo200,\n  UserSubscriptionInfo422,\n  UserSubscriptionInfoPathParams,\n  UserSubscriptionInfoQueryResponse,\n} from '../../models/SubscriptionModel/UserSubscriptionInfo.ts'\nimport { HTTPValidationErrorSchema } from '../HTTPValidationErrorSchema.ts'\nimport { subscriptionUserResponseSchema } from '../subscriptionUserResponseSchema.ts'\n\nexport const userSubscriptionInfoPathParamsSchema = z.object({\n  token: z.string(),\n}) as unknown as z.ZodType<UserSubscriptionInfoPathParams>\n\n/**\n * @description Successful Response\n */\nexport const userSubscriptionInfo200Schema = z.lazy(\n  () => subscriptionUserResponseSchema\n) as unknown as z.ZodType<UserSubscriptionInfo200>\n\n/**\n * @description Validation Error\n */\nexport const userSubscriptionInfo422Schema = z.lazy(\n  () => HTTPValidationErrorSchema\n) as unknown as z.ZodType<UserSubscriptionInfo422>\n\nexport const userSubscriptionInfoQueryResponseSchema = z.lazy(\n  () => userSubscriptionInfo200Schema\n) as unknown as z.ZodType<UserSubscriptionInfoQueryResponse>\n","import { z } from 'zod/v4'\n\nimport type {\n  UserSubscription200,\n  UserSubscription422,\n  UserSubscriptionHeaderParams,\n  UserSubscriptionPathParams,\n  UserSubscriptionQueryResponse,\n} from '../../models/SubscriptionModel/UserSubscription.ts'\nimport { HTTPValidationErrorSchema } from '../HTTPValidationErrorSchema.ts'\n\nexport const userSubscriptionPathParamsSchema = z.object({\n  token: z.string(),\n}) as unknown as z.ZodType<UserSubscriptionPathParams>\n\nexport const userSubscriptionHeaderParamsSchema = z.object({\n  'user-agent': z.string().default(''),\n}) as unknown as z.ZodType<UserSubscriptionHeaderParams>\n\n/**\n * @description Successful Response\n */\nexport const userSubscription200Schema = z.any() as unknown as z.ZodType<UserSubscription200>\n\n/**\n * @description Validation Error\n */\nexport const userSubscription422Schema = z.lazy(\n  () => HTTPValidationErrorSchema\n) as unknown as z.ZodType<UserSubscription422>\n\nexport const userSubscriptionQueryResponseSchema = z.lazy(\n  () => userSubscription200Schema\n) as unknown as z.ZodType<UserSubscriptionQueryResponse>\n","import { z } from 'zod/v4'\n\nimport type {\n  UserSubscriptionWithClientType200,\n  UserSubscriptionWithClientType422,\n  UserSubscriptionWithClientTypeHeaderParams,\n  UserSubscriptionWithClientTypePathParams,\n  UserSubscriptionWithClientTypeQueryResponse,\n} from '../../models/SubscriptionModel/UserSubscriptionWithClientType.ts'\nimport { HTTPValidationErrorSchema } from '../HTTPValidationErrorSchema.ts'\n\nexport const userSubscriptionWithClientTypePathParamsSchema = z.object({\n  client_type: z.string().regex(/sing-box|clash-meta|clash|outline|v2ray|v2ray-json/),\n  token: z.string(),\n}) as unknown as z.ZodType<UserSubscriptionWithClientTypePathParams>\n\nexport const userSubscriptionWithClientTypeHeaderParamsSchema = z.object({\n  'user-agent': z.string().default(''),\n}) as unknown as z.ZodType<UserSubscriptionWithClientTypeHeaderParams>\n\n/**\n * @description Successful Response\n */\nexport const userSubscriptionWithClientType200Schema =\n  z.any() as unknown as z.ZodType<UserSubscriptionWithClientType200>\n\n/**\n * @description Validation Error\n */\nexport const userSubscriptionWithClientType422Schema = z.lazy(\n  () => HTTPValidationErrorSchema\n) as unknown as z.ZodType<UserSubscriptionWithClientType422>\n\nexport const userSubscriptionWithClientTypeQueryResponseSchema = z.lazy(\n  () => userSubscriptionWithClientType200Schema\n) as unknown as z.ZodType<UserSubscriptionWithClientTypeQueryResponse>\n","import type { RequestConfig, ResponseErrorConfig } from '@/core/http/client.ts'\nimport fetch from '@/core/http/client.ts'\n\nimport type {\n  UserGetUsage422,\n  UserGetUsagePathParams,\n  UserGetUsageQueryParams,\n  UserGetUsageQueryResponse,\n} from '../../models/SubscriptionModel/UserGetUsage.ts'\nimport type {\n  UserSubscription422,\n  UserSubscriptionHeaderParams,\n  UserSubscriptionPathParams,\n  UserSubscriptionQueryResponse,\n} from '../../models/SubscriptionModel/UserSubscription.ts'\nimport type {\n  UserSubscriptionInfo422,\n  UserSubscriptionInfoPathParams,\n  UserSubscriptionInfoQueryResponse,\n} from '../../models/SubscriptionModel/UserSubscriptionInfo.ts'\nimport type {\n  UserSubscriptionWithClientType422,\n  UserSubscriptionWithClientTypeHeaderParams,\n  UserSubscriptionWithClientTypePathParams,\n  UserSubscriptionWithClientTypeQueryResponse,\n} from '../../models/SubscriptionModel/UserSubscriptionWithClientType.ts'\nimport { userGetUsageQueryResponseSchema } from '../../schemas/SubscriptionSchema/userGetUsageSchema.ts'\nimport { userSubscriptionInfoQueryResponseSchema } from '../../schemas/SubscriptionSchema/userSubscriptionInfoSchema.ts'\nimport { userSubscriptionQueryResponseSchema } from '../../schemas/SubscriptionSchema/userSubscriptionSchema.ts'\nimport { userSubscriptionWithClientTypeQueryResponseSchema } from '../../schemas/SubscriptionSchema/userSubscriptionWithClientTypeSchema.ts'\n\nexport class subscriptionApi {\n  #client: typeof fetch\n\n  constructor(config: Partial<RequestConfig> & { client?: typeof fetch } = {}) {\n    this.#client = config.client || fetch\n  }\n\n  /**\n   * @description Provides a subscription link based on the user agent (Clash, V2Ray, etc.).\n   * @summary User Subscription\n   * {@link /sub/:token/}\n   */\n  async userSubscription(\n    token: UserSubscriptionPathParams['token'],\n    headers?: UserSubscriptionHeaderParams,\n    config: Partial<RequestConfig> & { client?: typeof fetch } = {}\n  ) {\n    const { client: request = this.#client, ...requestConfig } = config\n    const res = await request<UserSubscriptionQueryResponse, ResponseErrorConfig<UserSubscription422>, unknown>({\n      method: 'GET',\n      url: `/sub/${token}/`,\n      ...requestConfig,\n      headers: { ...headers, ...requestConfig.headers },\n    })\n    return userSubscriptionQueryResponseSchema.parse(res.data)\n  }\n\n  /**\n   * @description Retrieves detailed information about the user's subscription.\n   * @summary User Subscription Info\n   * {@link /sub/:token/info}\n   */\n  async userSubscriptionInfo(\n    token: UserSubscriptionInfoPathParams['token'],\n    config: Partial<RequestConfig> & { client?: typeof fetch } = {}\n  ) {\n    const { client: request = this.#client, ...requestConfig } = config\n    const res = await request<UserSubscriptionInfoQueryResponse, ResponseErrorConfig<UserSubscriptionInfo422>, unknown>(\n      { method: 'GET', url: `/sub/${token}/info`, ...requestConfig }\n    )\n    return userSubscriptionInfoQueryResponseSchema.parse(res.data)\n  }\n\n  /**\n   * @description Fetches the usage statistics for the user within a specified date range.\n   * @summary User Get Usage\n   * {@link /sub/:token/usage}\n   */\n  async userGetUsage(\n    token: UserGetUsagePathParams['token'],\n    params?: UserGetUsageQueryParams,\n    config: Partial<RequestConfig> & { client?: typeof fetch } = {}\n  ) {\n    const { client: request = this.#client, ...requestConfig } = config\n    const res = await request<UserGetUsageQueryResponse, ResponseErrorConfig<UserGetUsage422>, unknown>({\n      method: 'GET',\n      url: `/sub/${token}/usage`,\n      params,\n      ...requestConfig,\n    })\n    return userGetUsageQueryResponseSchema.parse(res.data)\n  }\n\n  /**\n   * @description Provides a subscription link based on the specified client type (e.g., Clash, V2Ray).\n   * @summary User Subscription With Client Type\n   * {@link /sub/:token/:client_type}\n   */\n  async userSubscriptionWithClientType(\n    clientType: UserSubscriptionWithClientTypePathParams['client_type'],\n    token: UserSubscriptionWithClientTypePathParams['token'],\n    headers?: UserSubscriptionWithClientTypeHeaderParams,\n    config: Partial<RequestConfig> & { client?: typeof fetch } = {}\n  ) {\n    const { client: request = this.#client, ...requestConfig } = config\n    const res = await request<\n      UserSubscriptionWithClientTypeQueryResponse,\n      ResponseErrorConfig<UserSubscriptionWithClientType422>,\n      unknown\n    >({\n      method: 'GET',\n      url: `/sub/${token}/${clientType}`,\n      ...requestConfig,\n      headers: { ...headers, ...requestConfig.headers },\n    })\n    return userSubscriptionWithClientTypeQueryResponseSchema.parse(res.data)\n  }\n}\n","import { z } from 'zod/v4'\n\nimport type { ProxyHostALPN } from '../models/ProxyHostALPN.ts'\n\nexport const proxyHostALPNSchema = z.enum([\n  '',\n  'h3',\n  'h2',\n  'http/1.1',\n  'h3,h2,http/1.1',\n  'h3,h2',\n  'h2,http/1.1',\n]) as unknown as z.ZodType<ProxyHostALPN>\n","import { z } from 'zod/v4'\n\nimport type { ProxyHostFingerprint } from '../models/ProxyHostFingerprint.ts'\n\nexport const proxyHostFingerprintSchema = z.enum([\n  '',\n  'chrome',\n  'firefox',\n  'safari',\n  'ios',\n  'android',\n  'edge',\n  '360',\n  'qq',\n  'random',\n  'randomized',\n]) as unknown as z.ZodType<ProxyHostFingerprint>\n","import { z } from 'zod/v4'\n\nimport type { ProxyHostSecurity } from '../models/ProxyHostSecurity.ts'\n\nexport const proxyHostSecuritySchema = z.enum([\n  'inbound_default',\n  'none',\n  'tls',\n]) as unknown as z.ZodType<ProxyHostSecurity>\n","import { z } from 'zod/v4'\n\nimport type { ProxyHost } from '../models/ProxyHost.ts'\nimport { proxyHostALPNSchema } from './proxyHostALPNSchema.ts'\nimport { proxyHostFingerprintSchema } from './proxyHostFingerprintSchema.ts'\nimport { proxyHostSecuritySchema } from './proxyHostSecuritySchema.ts'\n\nexport const proxyHostSchema = z.object({\n  remark: z.string(),\n  address: z.string(),\n  port: z.union([z.int(), z.null()]).nullish(),\n  sni: z.union([z.string(), z.null()]).nullish(),\n  host: z.union([z.string(), z.null()]).nullish(),\n  path: z.union([z.string(), z.null()]).nullish(),\n  get security() {\n    return proxyHostSecuritySchema.optional()\n  },\n  get alpn() {\n    return proxyHostALPNSchema.optional()\n  },\n  get fingerprint() {\n    return proxyHostFingerprintSchema.optional()\n  },\n  allowinsecure: z.optional(z.union([z.boolean(), z.null()])),\n  is_disabled: z.optional(z.union([z.boolean(), z.null()])),\n  mux_enable: z.optional(z.union([z.boolean(), z.null()])),\n  fragment_setting: z.union([z.string(), z.null()]).nullish(),\n  noise_setting: z.union([z.string(), z.null()]).nullish(),\n  random_user_agent: z.optional(z.union([z.boolean(), z.null()])),\n  use_sni_as_host: z.optional(z.union([z.boolean(), z.null()])),\n}) as unknown as z.ZodType<ProxyHost>\n","import { z } from 'zod/v4'\n\nimport type { GetHosts200, GetHosts401, GetHosts403, GetHostsQueryResponse } from '../../models/SystemModel/GetHosts.ts'\nimport { forbiddenSchema } from '../forbiddenSchema.ts'\nimport { proxyHostSchema } from '../proxyHostSchema.ts'\nimport { unauthorizedSchema } from '../unauthorizedSchema.ts'\n\n/**\n * @description Successful Response\n */\nexport const getHosts200Schema = z\n  .object({})\n  .catchall(z.array(z.lazy(() => proxyHostSchema))) as unknown as z.ZodType<GetHosts200>\n\n/**\n * @description Unauthorized\n */\nexport const getHosts401Schema = z.lazy(() => unauthorizedSchema) as unknown as z.ZodType<GetHosts401>\n\n/**\n * @description Forbidden\n */\nexport const getHosts403Schema = z.lazy(() => forbiddenSchema) as unknown as z.ZodType<GetHosts403>\n\nexport const getHostsQueryResponseSchema = z.lazy(\n  () => getHosts200Schema\n) as unknown as z.ZodType<GetHostsQueryResponse>\n","import { z } from 'zod/v4'\n\nimport type { ProxyTypes } from '../models/ProxyTypes.ts'\n\nexport const proxyTypesSchema = z.enum(['vmess', 'vless', 'trojan', 'shadowsocks']) as unknown as z.ZodType<ProxyTypes>\n","import { z } from 'zod/v4'\n\nimport type { ProxyInbound } from '../models/ProxyInbound.ts'\nimport { proxyTypesSchema } from './proxyTypesSchema.ts'\n\nexport const proxyInboundSchema = z.object({\n  tag: z.string(),\n  get protocol() {\n    return proxyTypesSchema\n  },\n  network: z.string(),\n  tls: z.string(),\n  port: z.union([z.int(), z.string()]),\n}) as unknown as z.ZodType<ProxyInbound>\n","import { z } from 'zod/v4'\n\nimport type { GetInbounds200, GetInbounds401, GetInboundsQueryResponse } from '../../models/SystemModel/GetInbounds.ts'\nimport { proxyInboundSchema } from '../proxyInboundSchema.ts'\nimport { unauthorizedSchema } from '../unauthorizedSchema.ts'\n\n/**\n * @description Successful Response\n */\nexport const getInbounds200Schema = z\n  .object({})\n  .catchall(z.array(z.lazy(() => proxyInboundSchema))) as unknown as z.ZodType<GetInbounds200>\n\n/**\n * @description Unauthorized\n */\nexport const getInbounds401Schema = z.lazy(() => unauthorizedSchema) as unknown as z.ZodType<GetInbounds401>\n\nexport const getInboundsQueryResponseSchema = z.lazy(\n  () => getInbounds200Schema\n) as unknown as z.ZodType<GetInboundsQueryResponse>\n","import { z } from 'zod/v4'\n\nimport type { SystemStats } from '../models/SystemStats.ts'\n\nexport const systemStatsSchema = z.object({\n  version: z.string(),\n  mem_total: z.int(),\n  mem_used: z.int(),\n  cpu_cores: z.int(),\n  cpu_usage: z.number(),\n  total_user: z.int(),\n  online_users: z.int(),\n  users_active: z.int(),\n  users_on_hold: z.int(),\n  users_disabled: z.int(),\n  users_expired: z.int(),\n  users_limited: z.int(),\n  incoming_bandwidth: z.int(),\n  outgoing_bandwidth: z.int(),\n  incoming_bandwidth_speed: z.int(),\n  outgoing_bandwidth_speed: z.int(),\n}) as unknown as z.ZodType<SystemStats>\n","import { z } from 'zod/v4'\n\nimport type {\n  GetSystemStats200,\n  GetSystemStats401,\n  GetSystemStatsQueryResponse,\n} from '../../models/SystemModel/GetSystemStats.ts'\nimport { systemStatsSchema } from '../systemStatsSchema.ts'\nimport { unauthorizedSchema } from '../unauthorizedSchema.ts'\n\n/**\n * @description Successful Response\n */\nexport const getSystemStats200Schema = z.lazy(() => systemStatsSchema) as unknown as z.ZodType<GetSystemStats200>\n\n/**\n * @description Unauthorized\n */\nexport const getSystemStats401Schema = z.lazy(() => unauthorizedSchema) as unknown as z.ZodType<GetSystemStats401>\n\nexport const getSystemStatsQueryResponseSchema = z.lazy(\n  () => getSystemStats200Schema\n) as unknown as z.ZodType<GetSystemStatsQueryResponse>\n","import { z } from 'zod/v4'\n\nimport type {\n  ModifyHosts200,\n  ModifyHosts401,\n  ModifyHosts403,\n  ModifyHosts422,\n  ModifyHostsMutationRequest,\n  ModifyHostsMutationResponse,\n} from '../../models/SystemModel/ModifyHosts.ts'\nimport { forbiddenSchema } from '../forbiddenSchema.ts'\nimport { HTTPValidationErrorSchema } from '../HTTPValidationErrorSchema.ts'\nimport { proxyHostSchema } from '../proxyHostSchema.ts'\nimport { unauthorizedSchema } from '../unauthorizedSchema.ts'\n\n/**\n * @description Successful Response\n */\nexport const modifyHosts200Schema = z\n  .object({})\n  .catchall(z.array(z.lazy(() => proxyHostSchema))) as unknown as z.ZodType<ModifyHosts200>\n\n/**\n * @description Unauthorized\n */\nexport const modifyHosts401Schema = z.lazy(() => unauthorizedSchema) as unknown as z.ZodType<ModifyHosts401>\n\n/**\n * @description Forbidden\n */\nexport const modifyHosts403Schema = z.lazy(() => forbiddenSchema) as unknown as z.ZodType<ModifyHosts403>\n\n/**\n * @description Validation Error\n */\nexport const modifyHosts422Schema = z.lazy(() => HTTPValidationErrorSchema) as unknown as z.ZodType<ModifyHosts422>\n\nexport const modifyHostsMutationRequestSchema = z\n  .object({})\n  .catchall(z.array(z.lazy(() => proxyHostSchema))) as unknown as z.ZodType<ModifyHostsMutationRequest>\n\nexport const modifyHostsMutationResponseSchema = z.lazy(\n  () => modifyHosts200Schema\n) as unknown as z.ZodType<ModifyHostsMutationResponse>\n","import type { RequestConfig, ResponseErrorConfig } from '@/core/http/client.ts'\nimport fetch from '@/core/http/client.ts'\n\nimport type { GetHosts401, GetHosts403, GetHostsQueryResponse } from '../../models/SystemModel/GetHosts.ts'\nimport type { GetInbounds401, GetInboundsQueryResponse } from '../../models/SystemModel/GetInbounds.ts'\nimport type { GetSystemStats401, GetSystemStatsQueryResponse } from '../../models/SystemModel/GetSystemStats.ts'\nimport type {\n  ModifyHosts401,\n  ModifyHosts403,\n  ModifyHosts422,\n  ModifyHostsMutationRequest,\n  ModifyHostsMutationResponse,\n} from '../../models/SystemModel/ModifyHosts.ts'\nimport { getHostsQueryResponseSchema } from '../../schemas/SystemSchema/getHostsSchema.ts'\nimport { getInboundsQueryResponseSchema } from '../../schemas/SystemSchema/getInboundsSchema.ts'\nimport { getSystemStatsQueryResponseSchema } from '../../schemas/SystemSchema/getSystemStatsSchema.ts'\nimport {\n  modifyHostsMutationRequestSchema,\n  modifyHostsMutationResponseSchema,\n} from '../../schemas/SystemSchema/modifyHostsSchema.ts'\n\nexport class systemApi {\n  #client: typeof fetch\n\n  constructor(config: Partial<RequestConfig> & { client?: typeof fetch } = {}) {\n    this.#client = config.client || fetch\n  }\n\n  /**\n   * @description Fetch system stats including memory, CPU, and user metrics.\n   * @summary Get System Stats\n   * {@link /api/system}\n   */\n  async getSystemStats(config: Partial<RequestConfig> & { client?: typeof fetch } = {}) {\n    const { client: request = this.#client, ...requestConfig } = config\n    const res = await request<GetSystemStatsQueryResponse, ResponseErrorConfig<GetSystemStats401>, unknown>({\n      method: 'GET',\n      url: `/api/system`,\n      ...requestConfig,\n    })\n    return getSystemStatsQueryResponseSchema.parse(res.data)\n  }\n\n  /**\n   * @description Retrieve inbound configurations grouped by protocol.\n   * @summary Get Inbounds\n   * {@link /api/inbounds}\n   */\n  async getInbounds(config: Partial<RequestConfig> & { client?: typeof fetch } = {}) {\n    const { client: request = this.#client, ...requestConfig } = config\n    const res = await request<GetInboundsQueryResponse, ResponseErrorConfig<GetInbounds401>, unknown>({\n      method: 'GET',\n      url: `/api/inbounds`,\n      ...requestConfig,\n    })\n    return getInboundsQueryResponseSchema.parse(res.data)\n  }\n\n  /**\n   * @description Get a list of proxy hosts grouped by inbound tag.\n   * @summary Get Hosts\n   * {@link /api/hosts}\n   */\n  async getHosts(config: Partial<RequestConfig> & { client?: typeof fetch } = {}) {\n    const { client: request = this.#client, ...requestConfig } = config\n    const res = await request<GetHostsQueryResponse, ResponseErrorConfig<GetHosts401 | GetHosts403>, unknown>({\n      method: 'GET',\n      url: `/api/hosts`,\n      ...requestConfig,\n    })\n    return getHostsQueryResponseSchema.parse(res.data)\n  }\n\n  /**\n   * @description Modify proxy hosts and update the configuration.\n   * @summary Modify Hosts\n   * {@link /api/hosts}\n   */\n  async modifyHosts(\n    data?: ModifyHostsMutationRequest,\n    config: Partial<RequestConfig<ModifyHostsMutationRequest>> & { client?: typeof fetch } = {}\n  ) {\n    const { client: request = this.#client, ...requestConfig } = config\n    const requestData = modifyHostsMutationRequestSchema.parse(data)\n    const res = await request<\n      ModifyHostsMutationResponse,\n      ResponseErrorConfig<ModifyHosts401 | ModifyHosts403 | ModifyHosts422>,\n      ModifyHostsMutationRequest\n    >({ method: 'PUT', url: `/api/hosts`, data: requestData, ...requestConfig })\n    return modifyHostsMutationResponseSchema.parse(res.data)\n  }\n}\n","import { z } from 'zod/v4'\n\nimport type { UserResponse } from '../models/UserResponse.ts'\nimport { adminSchema } from './adminSchema.ts'\nimport { nextPlanModelSchema } from './nextPlanModelSchema.ts'\nimport { userDataLimitResetStrategySchema } from './userDataLimitResetStrategySchema.ts'\nimport { userStatusSchema } from './userStatusSchema.ts'\n\nexport const userResponseSchema = z.object({\n  proxies: z.object({}),\n  expire: z.union([z.int(), z.null()]).nullish(),\n  data_limit: z.optional(z.union([z.int(), z.null()]).describe('data_limit can be 0 or greater')),\n  get data_limit_reset_strategy() {\n    return userDataLimitResetStrategySchema.optional()\n  },\n  inbounds: z.optional(z.object({}).catchall(z.array(z.string())).default({})),\n  note: z.union([z.string(), z.null()]).nullish(),\n  sub_updated_at: z.union([z.iso.datetime({ local: true }), z.null()]).nullish(),\n  sub_last_user_agent: z.union([z.string(), z.null()]).nullish(),\n  online_at: z.union([z.iso.datetime({ local: true }), z.null()]).nullish(),\n  on_hold_expire_duration: z.union([z.int(), z.null()]).nullish(),\n  on_hold_timeout: z.union([z.iso.datetime({ local: true }), z.null()]).nullish(),\n  auto_delete_in_days: z.union([z.int(), z.null()]).nullish(),\n  get next_plan() {\n    return z.union([nextPlanModelSchema, z.null()]).nullish()\n  },\n  username: z.string(),\n  get status() {\n    return userStatusSchema\n  },\n  used_traffic: z.int(),\n  lifetime_used_traffic: z.optional(z.int().default(0)),\n  created_at: z.iso.datetime({ local: true }),\n  links: z.optional(z.array(z.string())),\n  subscription_url: z.optional(z.string().default('')),\n  excluded_inbounds: z.optional(z.object({}).catchall(z.array(z.string())).default({})),\n  get admin() {\n    return z.union([adminSchema, z.null()]).optional()\n  },\n}) as unknown as z.ZodType<UserResponse>\n","import { z } from 'zod/v4'\n\nimport type {\n  ActiveNextPlan200,\n  ActiveNextPlan401,\n  ActiveNextPlan403,\n  ActiveNextPlan404,\n  ActiveNextPlan422,\n  ActiveNextPlanMutationResponse,\n  ActiveNextPlanPathParams,\n} from '../../models/UserModel/ActiveNextPlan.ts'\nimport { forbiddenSchema } from '../forbiddenSchema.ts'\nimport { HTTPValidationErrorSchema } from '../HTTPValidationErrorSchema.ts'\nimport { notFoundSchema } from '../notFoundSchema.ts'\nimport { unauthorizedSchema } from '../unauthorizedSchema.ts'\nimport { userResponseSchema } from '../userResponseSchema.ts'\n\nexport const activeNextPlanPathParamsSchema = z.object({\n  username: z.string(),\n}) as unknown as z.ZodType<ActiveNextPlanPathParams>\n\n/**\n * @description Successful Response\n */\nexport const activeNextPlan200Schema = z.lazy(() => userResponseSchema) as unknown as z.ZodType<ActiveNextPlan200>\n\n/**\n * @description Unauthorized\n */\nexport const activeNextPlan401Schema = z.lazy(() => unauthorizedSchema) as unknown as z.ZodType<ActiveNextPlan401>\n\n/**\n * @description Forbidden\n */\nexport const activeNextPlan403Schema = z.lazy(() => forbiddenSchema) as unknown as z.ZodType<ActiveNextPlan403>\n\n/**\n * @description Not found\n */\nexport const activeNextPlan404Schema = z.lazy(() => notFoundSchema) as unknown as z.ZodType<ActiveNextPlan404>\n\n/**\n * @description Validation Error\n */\nexport const activeNextPlan422Schema = z.lazy(\n  () => HTTPValidationErrorSchema\n) as unknown as z.ZodType<ActiveNextPlan422>\n\nexport const activeNextPlanMutationResponseSchema = z.lazy(\n  () => activeNextPlan200Schema\n) as unknown as z.ZodType<ActiveNextPlanMutationResponse>\n","import { z } from 'zod/v4'\n\nimport type { HTTPException } from '../models/HTTPException.ts'\n\nexport const HTTPExceptionSchema = z.object({\n  detail: z.string(),\n}) as unknown as z.ZodType<HTTPException>\n","import { z } from 'zod/v4'\n\nimport type { ProxySettings } from '../models/ProxySettings.ts'\n\nexport const proxySettingsSchema = z.object({}) as unknown as z.ZodType<ProxySettings>\n","import { z } from 'zod/v4'\n\nimport type { UserStatusCreate } from '../models/UserStatusCreate.ts'\n\nexport const userStatusCreateSchema = z.enum(['active', 'on_hold']) as unknown as z.ZodType<UserStatusCreate>\n","import { z } from 'zod/v4'\n\nimport type { UserCreate } from '../models/UserCreate.ts'\nimport { nextPlanModelSchema } from './nextPlanModelSchema.ts'\nimport { proxySettingsSchema } from './proxySettingsSchema.ts'\nimport { userDataLimitResetStrategySchema } from './userDataLimitResetStrategySchema.ts'\nimport { userStatusCreateSchema } from './userStatusCreateSchema.ts'\n\nexport const userCreateSchema = z.object({\n  proxies: z.optional(\n    z\n      .object({})\n      .catchall(z.lazy(() => proxySettingsSchema))\n      .default({})\n  ),\n  expire: z.union([z.int(), z.null()]).nullish(),\n  data_limit: z.optional(z.union([z.int(), z.null()]).describe('data_limit can be 0 or greater')),\n  get data_limit_reset_strategy() {\n    return userDataLimitResetStrategySchema.optional()\n  },\n  inbounds: z.optional(z.object({}).catchall(z.array(z.string())).default({})),\n  note: z.union([z.string(), z.null()]).nullish(),\n  sub_updated_at: z.union([z.iso.datetime({ local: true }), z.null()]).nullish(),\n  sub_last_user_agent: z.union([z.string(), z.null()]).nullish(),\n  online_at: z.union([z.iso.datetime({ local: true }), z.null()]).nullish(),\n  on_hold_expire_duration: z.union([z.int(), z.null()]).nullish(),\n  on_hold_timeout: z.union([z.iso.datetime({ local: true }), z.null()]).nullish(),\n  auto_delete_in_days: z.union([z.int(), z.null()]).nullish(),\n  get next_plan() {\n    return z.union([nextPlanModelSchema, z.null()]).nullish()\n  },\n  username: z.string(),\n  get status() {\n    return userStatusCreateSchema.optional()\n  },\n}) as unknown as z.ZodType<UserCreate>\n","import { z } from 'zod/v4'\n\nimport type {\n  AddUser200,\n  AddUser400,\n  AddUser401,\n  AddUser409,\n  AddUser422,\n  AddUserMutationRequest,\n  AddUserMutationResponse,\n} from '../../models/UserModel/AddUser.ts'\nimport { conflictSchema } from '../conflictSchema.ts'\nimport { HTTPExceptionSchema } from '../HTTPExceptionSchema.ts'\nimport { HTTPValidationErrorSchema } from '../HTTPValidationErrorSchema.ts'\nimport { unauthorizedSchema } from '../unauthorizedSchema.ts'\nimport { userCreateSchema } from '../userCreateSchema.ts'\nimport { userResponseSchema } from '../userResponseSchema.ts'\n\n/**\n * @description Successful Response\n */\nexport const addUser200Schema = z.lazy(() => userResponseSchema) as unknown as z.ZodType<AddUser200>\n\n/**\n * @description Bad request\n */\nexport const addUser400Schema = z.lazy(() => HTTPExceptionSchema) as unknown as z.ZodType<AddUser400>\n\n/**\n * @description Unauthorized\n */\nexport const addUser401Schema = z.lazy(() => unauthorizedSchema) as unknown as z.ZodType<AddUser401>\n\n/**\n * @description Conflict\n */\nexport const addUser409Schema = z.lazy(() => conflictSchema) as unknown as z.ZodType<AddUser409>\n\n/**\n * @description Validation Error\n */\nexport const addUser422Schema = z.lazy(() => HTTPValidationErrorSchema) as unknown as z.ZodType<AddUser422>\n\nexport const addUserMutationRequestSchema = z.lazy(\n  () => userCreateSchema\n) as unknown as z.ZodType<AddUserMutationRequest>\n\nexport const addUserMutationResponseSchema = z.lazy(\n  () => addUser200Schema\n) as unknown as z.ZodType<AddUserMutationResponse>\n","import { z } from 'zod/v4'\n\nimport type {\n  DeleteExpiredUsers200,\n  DeleteExpiredUsers401,\n  DeleteExpiredUsers422,\n  DeleteExpiredUsersMutationResponse,\n  DeleteExpiredUsersQueryParams,\n} from '../../models/UserModel/DeleteExpiredUsers.ts'\nimport { HTTPValidationErrorSchema } from '../HTTPValidationErrorSchema.ts'\nimport { unauthorizedSchema } from '../unauthorizedSchema.ts'\n\nexport const deleteExpiredUsersQueryParamsSchema = z\n  .object({\n    expired_after: z.optional(z.union([z.iso.datetime({ local: true }), z.null()])),\n    expired_before: z.optional(z.union([z.iso.datetime({ local: true }), z.null()])),\n  })\n  .optional() as unknown as z.ZodType<DeleteExpiredUsersQueryParams>\n\n/**\n * @description Successful Response\n */\nexport const deleteExpiredUsers200Schema = z.array(z.string()) as unknown as z.ZodType<DeleteExpiredUsers200>\n\n/**\n * @description Unauthorized\n */\nexport const deleteExpiredUsers401Schema = z.lazy(\n  () => unauthorizedSchema\n) as unknown as z.ZodType<DeleteExpiredUsers401>\n\n/**\n * @description Validation Error\n */\nexport const deleteExpiredUsers422Schema = z.lazy(\n  () => HTTPValidationErrorSchema\n) as unknown as z.ZodType<DeleteExpiredUsers422>\n\nexport const deleteExpiredUsersMutationResponseSchema = z.lazy(\n  () => deleteExpiredUsers200Schema\n) as unknown as z.ZodType<DeleteExpiredUsersMutationResponse>\n","import { z } from 'zod/v4'\n\nimport type {\n  GetExpiredUsers200,\n  GetExpiredUsers401,\n  GetExpiredUsers422,\n  GetExpiredUsersQueryParams,\n  GetExpiredUsersQueryResponse,\n} from '../../models/UserModel/GetExpiredUsers.ts'\nimport { HTTPValidationErrorSchema } from '../HTTPValidationErrorSchema.ts'\nimport { unauthorizedSchema } from '../unauthorizedSchema.ts'\n\nexport const getExpiredUsersQueryParamsSchema = z\n  .object({\n    expired_after: z.optional(z.union([z.iso.datetime({ local: true }), z.null()])),\n    expired_before: z.optional(z.union([z.iso.datetime({ local: true }), z.null()])),\n  })\n  .optional() as unknown as z.ZodType<GetExpiredUsersQueryParams>\n\n/**\n * @description Successful Response\n */\nexport const getExpiredUsers200Schema = z.array(z.string()) as unknown as z.ZodType<GetExpiredUsers200>\n\n/**\n * @description Unauthorized\n */\nexport const getExpiredUsers401Schema = z.lazy(() => unauthorizedSchema) as unknown as z.ZodType<GetExpiredUsers401>\n\n/**\n * @description Validation Error\n */\nexport const getExpiredUsers422Schema = z.lazy(\n  () => HTTPValidationErrorSchema\n) as unknown as z.ZodType<GetExpiredUsers422>\n\nexport const getExpiredUsersQueryResponseSchema = z.lazy(\n  () => getExpiredUsers200Schema\n) as unknown as z.ZodType<GetExpiredUsersQueryResponse>\n","import { z } from 'zod/v4'\n\nimport type {\n  GetUser200,\n  GetUser401,\n  GetUser403,\n  GetUser404,\n  GetUser422,\n  GetUserPathParams,\n  GetUserQueryResponse,\n} from '../../models/UserModel/GetUser.ts'\nimport { forbiddenSchema } from '../forbiddenSchema.ts'\nimport { HTTPValidationErrorSchema } from '../HTTPValidationErrorSchema.ts'\nimport { notFoundSchema } from '../notFoundSchema.ts'\nimport { unauthorizedSchema } from '../unauthorizedSchema.ts'\nimport { userResponseSchema } from '../userResponseSchema.ts'\n\nexport const getUserPathParamsSchema = z.object({\n  username: z.string(),\n}) as unknown as z.ZodType<GetUserPathParams>\n\n/**\n * @description Successful Response\n */\nexport const getUser200Schema = z.lazy(() => userResponseSchema) as unknown as z.ZodType<GetUser200>\n\n/**\n * @description Unauthorized\n */\nexport const getUser401Schema = z.lazy(() => unauthorizedSchema) as unknown as z.ZodType<GetUser401>\n\n/**\n * @description Forbidden\n */\nexport const getUser403Schema = z.lazy(() => forbiddenSchema) as unknown as z.ZodType<GetUser403>\n\n/**\n * @description Not found\n */\nexport const getUser404Schema = z.lazy(() => notFoundSchema) as unknown as z.ZodType<GetUser404>\n\n/**\n * @description Validation Error\n */\nexport const getUser422Schema = z.lazy(() => HTTPValidationErrorSchema) as unknown as z.ZodType<GetUser422>\n\nexport const getUserQueryResponseSchema = z.lazy(() => getUser200Schema) as unknown as z.ZodType<GetUserQueryResponse>\n","import { z } from 'zod/v4'\n\nimport type { UsersResponse } from '../models/UsersResponse.ts'\nimport { userResponseSchema } from './userResponseSchema.ts'\n\nexport const usersResponseSchema = z.object({\n  get users() {\n    return z.array(userResponseSchema)\n  },\n  total: z.int(),\n}) as unknown as z.ZodType<UsersResponse>\n","import { z } from 'zod/v4'\n\nimport type {\n  GetUsers200,\n  GetUsers400,\n  GetUsers401,\n  GetUsers403,\n  GetUsers404,\n  GetUsers422,\n  GetUsersQueryParams,\n  GetUsersQueryResponse,\n} from '../../models/UserModel/GetUsers.ts'\nimport { forbiddenSchema } from '../forbiddenSchema.ts'\nimport { HTTPExceptionSchema } from '../HTTPExceptionSchema.ts'\nimport { HTTPValidationErrorSchema } from '../HTTPValidationErrorSchema.ts'\nimport { notFoundSchema } from '../notFoundSchema.ts'\nimport { unauthorizedSchema } from '../unauthorizedSchema.ts'\nimport { usersResponseSchema } from '../usersResponseSchema.ts'\nimport { userStatusSchema } from '../userStatusSchema.ts'\n\nexport const getUsersQueryParamsSchema = z\n  .object({\n    offset: z.optional(z.coerce.number().int()),\n    limit: z.optional(z.coerce.number().int()),\n    username: z.optional(z.array(z.string())),\n    search: z.optional(z.union([z.string(), z.null()])),\n    admin: z.optional(z.union([z.array(z.string()), z.null()])),\n    get status() {\n      return userStatusSchema.optional()\n    },\n    sort: z.optional(z.string()),\n  })\n  .optional() as unknown as z.ZodType<GetUsersQueryParams>\n\n/**\n * @description Successful Response\n */\nexport const getUsers200Schema = z.lazy(() => usersResponseSchema) as unknown as z.ZodType<GetUsers200>\n\n/**\n * @description Bad request\n */\nexport const getUsers400Schema = z.lazy(() => HTTPExceptionSchema) as unknown as z.ZodType<GetUsers400>\n\n/**\n * @description Unauthorized\n */\nexport const getUsers401Schema = z.lazy(() => unauthorizedSchema) as unknown as z.ZodType<GetUsers401>\n\n/**\n * @description Forbidden\n */\nexport const getUsers403Schema = z.lazy(() => forbiddenSchema) as unknown as z.ZodType<GetUsers403>\n\n/**\n * @description Not found\n */\nexport const getUsers404Schema = z.lazy(() => notFoundSchema) as unknown as z.ZodType<GetUsers404>\n\n/**\n * @description Validation Error\n */\nexport const getUsers422Schema = z.lazy(() => HTTPValidationErrorSchema) as unknown as z.ZodType<GetUsers422>\n\nexport const getUsersQueryResponseSchema = z.lazy(\n  () => getUsers200Schema\n) as unknown as z.ZodType<GetUsersQueryResponse>\n","import { z } from 'zod/v4'\n\nimport type { UserUsageResponse } from '../models/UserUsageResponse.ts'\n\nexport const userUsageResponseSchema = z.object({\n  node_id: z.optional(z.union([z.int(), z.null()])),\n  node_name: z.string(),\n  used_traffic: z.int(),\n}) as unknown as z.ZodType<UserUsageResponse>\n","import { z } from 'zod/v4'\n\nimport type { UsersUsagesResponse } from '../models/UsersUsagesResponse.ts'\nimport { userUsageResponseSchema } from './userUsageResponseSchema.ts'\n\nexport const usersUsagesResponseSchema = z.object({\n  get usages() {\n    return z.array(userUsageResponseSchema)\n  },\n}) as unknown as z.ZodType<UsersUsagesResponse>\n","import { z } from 'zod/v4'\n\nimport type {\n  GetUsersUsage200,\n  GetUsersUsage401,\n  GetUsersUsage422,\n  GetUsersUsageQueryParams,\n  GetUsersUsageQueryResponse,\n} from '../../models/UserModel/GetUsersUsage.ts'\nimport { HTTPValidationErrorSchema } from '../HTTPValidationErrorSchema.ts'\nimport { unauthorizedSchema } from '../unauthorizedSchema.ts'\nimport { usersUsagesResponseSchema } from '../usersUsagesResponseSchema.ts'\n\nexport const getUsersUsageQueryParamsSchema = z.object({\n  start: z.string().default(''),\n  end: z.string().default(''),\n  admin: z.optional(z.union([z.array(z.string()), z.null()])),\n}) as unknown as z.ZodType<GetUsersUsageQueryParams>\n\n/**\n * @description Successful Response\n */\nexport const getUsersUsage200Schema = z.lazy(() => usersUsagesResponseSchema) as unknown as z.ZodType<GetUsersUsage200>\n\n/**\n * @description Unauthorized\n */\nexport const getUsersUsage401Schema = z.lazy(() => unauthorizedSchema) as unknown as z.ZodType<GetUsersUsage401>\n\n/**\n * @description Validation Error\n */\nexport const getUsersUsage422Schema = z.lazy(() => HTTPValidationErrorSchema) as unknown as z.ZodType<GetUsersUsage422>\n\nexport const getUsersUsageQueryResponseSchema = z.lazy(\n  () => getUsersUsage200Schema\n) as unknown as z.ZodType<GetUsersUsageQueryResponse>\n","import { z } from 'zod/v4'\n\nimport type { UserUsagesResponse } from '../models/UserUsagesResponse.ts'\nimport { userUsageResponseSchema } from './userUsageResponseSchema.ts'\n\nexport const userUsagesResponseSchema = z.object({\n  username: z.string(),\n  get usages() {\n    return z.array(userUsageResponseSchema)\n  },\n}) as unknown as z.ZodType<UserUsagesResponse>\n","import { z } from 'zod/v4'\n\nimport type {\n  GetUserUsage200,\n  GetUserUsage401,\n  GetUserUsage403,\n  GetUserUsage404,\n  GetUserUsage422,\n  GetUserUsagePathParams,\n  GetUserUsageQueryParams,\n  GetUserUsageQueryResponse,\n} from '../../models/UserModel/GetUserUsage.ts'\nimport { forbiddenSchema } from '../forbiddenSchema.ts'\nimport { HTTPValidationErrorSchema } from '../HTTPValidationErrorSchema.ts'\nimport { notFoundSchema } from '../notFoundSchema.ts'\nimport { unauthorizedSchema } from '../unauthorizedSchema.ts'\nimport { userUsagesResponseSchema } from '../userUsagesResponseSchema.ts'\n\nexport const getUserUsagePathParamsSchema = z.object({\n  username: z.string(),\n}) as unknown as z.ZodType<GetUserUsagePathParams>\n\nexport const getUserUsageQueryParamsSchema = z.object({\n  start: z.string().default(''),\n  end: z.string().default(''),\n}) as unknown as z.ZodType<GetUserUsageQueryParams>\n\n/**\n * @description Successful Response\n */\nexport const getUserUsage200Schema = z.lazy(() => userUsagesResponseSchema) as unknown as z.ZodType<GetUserUsage200>\n\n/**\n * @description Unauthorized\n */\nexport const getUserUsage401Schema = z.lazy(() => unauthorizedSchema) as unknown as z.ZodType<GetUserUsage401>\n\n/**\n * @description Forbidden\n */\nexport const getUserUsage403Schema = z.lazy(() => forbiddenSchema) as unknown as z.ZodType<GetUserUsage403>\n\n/**\n * @description Not found\n */\nexport const getUserUsage404Schema = z.lazy(() => notFoundSchema) as unknown as z.ZodType<GetUserUsage404>\n\n/**\n * @description Validation Error\n */\nexport const getUserUsage422Schema = z.lazy(() => HTTPValidationErrorSchema) as unknown as z.ZodType<GetUserUsage422>\n\nexport const getUserUsageQueryResponseSchema = z.lazy(\n  () => getUserUsage200Schema\n) as unknown as z.ZodType<GetUserUsageQueryResponse>\n","import { z } from 'zod/v4'\n\nimport type { UserStatusModify } from '../models/UserStatusModify.ts'\n\nexport const userStatusModifySchema = z.enum([\n  'active',\n  'disabled',\n  'on_hold',\n]) as unknown as z.ZodType<UserStatusModify>\n","import { z } from 'zod/v4'\n\nimport type { UserModify } from '../models/UserModify.ts'\nimport { nextPlanModelSchema } from './nextPlanModelSchema.ts'\nimport { proxySettingsSchema } from './proxySettingsSchema.ts'\nimport { userDataLimitResetStrategySchema } from './userDataLimitResetStrategySchema.ts'\nimport { userStatusModifySchema } from './userStatusModifySchema.ts'\n\nexport const userModifySchema = z.object({\n  proxies: z.optional(\n    z\n      .object({})\n      .catchall(z.lazy(() => proxySettingsSchema))\n      .default({})\n  ),\n  expire: z.union([z.int(), z.null()]).nullish(),\n  data_limit: z.optional(z.union([z.int(), z.null()]).describe('data_limit can be 0 or greater')),\n  get data_limit_reset_strategy() {\n    return userDataLimitResetStrategySchema.optional()\n  },\n  inbounds: z.optional(z.object({}).catchall(z.array(z.string())).default({})),\n  note: z.union([z.string(), z.null()]).nullish(),\n  sub_updated_at: z.union([z.iso.datetime({ local: true }), z.null()]).nullish(),\n  sub_last_user_agent: z.union([z.string(), z.null()]).nullish(),\n  online_at: z.union([z.iso.datetime({ local: true }), z.null()]).nullish(),\n  on_hold_expire_duration: z.union([z.int(), z.null()]).nullish(),\n  on_hold_timeout: z.union([z.iso.datetime({ local: true }), z.null()]).nullish(),\n  auto_delete_in_days: z.union([z.int(), z.null()]).nullish(),\n  get next_plan() {\n    return z.union([nextPlanModelSchema, z.null()]).nullish()\n  },\n  get status() {\n    return userStatusModifySchema.optional()\n  },\n}) as unknown as z.ZodType<UserModify>\n","import { z } from 'zod/v4'\n\nimport type {\n  ModifyUser200,\n  ModifyUser400,\n  ModifyUser401,\n  ModifyUser403,\n  ModifyUser404,\n  ModifyUser422,\n  ModifyUserMutationRequest,\n  ModifyUserMutationResponse,\n  ModifyUserPathParams,\n} from '../../models/UserModel/ModifyUser.ts'\nimport { forbiddenSchema } from '../forbiddenSchema.ts'\nimport { HTTPExceptionSchema } from '../HTTPExceptionSchema.ts'\nimport { HTTPValidationErrorSchema } from '../HTTPValidationErrorSchema.ts'\nimport { notFoundSchema } from '../notFoundSchema.ts'\nimport { unauthorizedSchema } from '../unauthorizedSchema.ts'\nimport { userModifySchema } from '../userModifySchema.ts'\nimport { userResponseSchema } from '../userResponseSchema.ts'\n\nexport const modifyUserPathParamsSchema = z.object({\n  username: z.string(),\n}) as unknown as z.ZodType<ModifyUserPathParams>\n\n/**\n * @description Successful Response\n */\nexport const modifyUser200Schema = z.lazy(() => userResponseSchema) as unknown as z.ZodType<ModifyUser200>\n\n/**\n * @description Bad request\n */\nexport const modifyUser400Schema = z.lazy(() => HTTPExceptionSchema) as unknown as z.ZodType<ModifyUser400>\n\n/**\n * @description Unauthorized\n */\nexport const modifyUser401Schema = z.lazy(() => unauthorizedSchema) as unknown as z.ZodType<ModifyUser401>\n\n/**\n * @description Forbidden\n */\nexport const modifyUser403Schema = z.lazy(() => forbiddenSchema) as unknown as z.ZodType<ModifyUser403>\n\n/**\n * @description Not found\n */\nexport const modifyUser404Schema = z.lazy(() => notFoundSchema) as unknown as z.ZodType<ModifyUser404>\n\n/**\n * @description Validation Error\n */\nexport const modifyUser422Schema = z.lazy(() => HTTPValidationErrorSchema) as unknown as z.ZodType<ModifyUser422>\n\nexport const modifyUserMutationRequestSchema = z.lazy(\n  () => userModifySchema\n) as unknown as z.ZodType<ModifyUserMutationRequest>\n\nexport const modifyUserMutationResponseSchema = z.lazy(\n  () => modifyUser200Schema\n) as unknown as z.ZodType<ModifyUserMutationResponse>\n","import { z } from 'zod/v4'\n\nimport type {\n  RemoveUser200,\n  RemoveUser401,\n  RemoveUser403,\n  RemoveUser404,\n  RemoveUser422,\n  RemoveUserMutationResponse,\n  RemoveUserPathParams,\n} from '../../models/UserModel/RemoveUser.ts'\nimport { forbiddenSchema } from '../forbiddenSchema.ts'\nimport { HTTPValidationErrorSchema } from '../HTTPValidationErrorSchema.ts'\nimport { notFoundSchema } from '../notFoundSchema.ts'\nimport { unauthorizedSchema } from '../unauthorizedSchema.ts'\n\nexport const removeUserPathParamsSchema = z.object({\n  username: z.string(),\n}) as unknown as z.ZodType<RemoveUserPathParams>\n\n/**\n * @description Successful Response\n */\nexport const removeUser200Schema = z.any() as unknown as z.ZodType<RemoveUser200>\n\n/**\n * @description Unauthorized\n */\nexport const removeUser401Schema = z.lazy(() => unauthorizedSchema) as unknown as z.ZodType<RemoveUser401>\n\n/**\n * @description Forbidden\n */\nexport const removeUser403Schema = z.lazy(() => forbiddenSchema) as unknown as z.ZodType<RemoveUser403>\n\n/**\n * @description Not found\n */\nexport const removeUser404Schema = z.lazy(() => notFoundSchema) as unknown as z.ZodType<RemoveUser404>\n\n/**\n * @description Validation Error\n */\nexport const removeUser422Schema = z.lazy(() => HTTPValidationErrorSchema) as unknown as z.ZodType<RemoveUser422>\n\nexport const removeUserMutationResponseSchema = z.lazy(\n  () => removeUser200Schema\n) as unknown as z.ZodType<RemoveUserMutationResponse>\n","import { z } from 'zod/v4'\n\nimport type {\n  ResetUserDataUsage200,\n  ResetUserDataUsage401,\n  ResetUserDataUsage403,\n  ResetUserDataUsage404,\n  ResetUserDataUsage422,\n  ResetUserDataUsageMutationResponse,\n  ResetUserDataUsagePathParams,\n} from '../../models/UserModel/ResetUserDataUsage.ts'\nimport { forbiddenSchema } from '../forbiddenSchema.ts'\nimport { HTTPValidationErrorSchema } from '../HTTPValidationErrorSchema.ts'\nimport { notFoundSchema } from '../notFoundSchema.ts'\nimport { unauthorizedSchema } from '../unauthorizedSchema.ts'\nimport { userResponseSchema } from '../userResponseSchema.ts'\n\nexport const resetUserDataUsagePathParamsSchema = z.object({\n  username: z.string(),\n}) as unknown as z.ZodType<ResetUserDataUsagePathParams>\n\n/**\n * @description Successful Response\n */\nexport const resetUserDataUsage200Schema = z.lazy(\n  () => userResponseSchema\n) as unknown as z.ZodType<ResetUserDataUsage200>\n\n/**\n * @description Unauthorized\n */\nexport const resetUserDataUsage401Schema = z.lazy(\n  () => unauthorizedSchema\n) as unknown as z.ZodType<ResetUserDataUsage401>\n\n/**\n * @description Forbidden\n */\nexport const resetUserDataUsage403Schema = z.lazy(() => forbiddenSchema) as unknown as z.ZodType<ResetUserDataUsage403>\n\n/**\n * @description Not found\n */\nexport const resetUserDataUsage404Schema = z.lazy(() => notFoundSchema) as unknown as z.ZodType<ResetUserDataUsage404>\n\n/**\n * @description Validation Error\n */\nexport const resetUserDataUsage422Schema = z.lazy(\n  () => HTTPValidationErrorSchema\n) as unknown as z.ZodType<ResetUserDataUsage422>\n\nexport const resetUserDataUsageMutationResponseSchema = z.lazy(\n  () => resetUserDataUsage200Schema\n) as unknown as z.ZodType<ResetUserDataUsageMutationResponse>\n","import { z } from 'zod/v4'\n\nimport type {\n  ResetUsersDataUsage200,\n  ResetUsersDataUsage401,\n  ResetUsersDataUsage403,\n  ResetUsersDataUsage404,\n  ResetUsersDataUsageMutationResponse,\n} from '../../models/UserModel/ResetUsersDataUsage.ts'\nimport { forbiddenSchema } from '../forbiddenSchema.ts'\nimport { notFoundSchema } from '../notFoundSchema.ts'\nimport { unauthorizedSchema } from '../unauthorizedSchema.ts'\n\n/**\n * @description Successful Response\n */\nexport const resetUsersDataUsage200Schema = z.any() as unknown as z.ZodType<ResetUsersDataUsage200>\n\n/**\n * @description Unauthorized\n */\nexport const resetUsersDataUsage401Schema = z.lazy(\n  () => unauthorizedSchema\n) as unknown as z.ZodType<ResetUsersDataUsage401>\n\n/**\n * @description Forbidden\n */\nexport const resetUsersDataUsage403Schema = z.lazy(\n  () => forbiddenSchema\n) as unknown as z.ZodType<ResetUsersDataUsage403>\n\n/**\n * @description Not found\n */\nexport const resetUsersDataUsage404Schema = z.lazy(() => notFoundSchema) as unknown as z.ZodType<ResetUsersDataUsage404>\n\nexport const resetUsersDataUsageMutationResponseSchema = z.lazy(\n  () => resetUsersDataUsage200Schema\n) as unknown as z.ZodType<ResetUsersDataUsageMutationResponse>\n","import { z } from 'zod/v4'\n\nimport type {\n  RevokeUserSubscription200,\n  RevokeUserSubscription401,\n  RevokeUserSubscription403,\n  RevokeUserSubscription404,\n  RevokeUserSubscription422,\n  RevokeUserSubscriptionMutationResponse,\n  RevokeUserSubscriptionPathParams,\n} from '../../models/UserModel/RevokeUserSubscription.ts'\nimport { forbiddenSchema } from '../forbiddenSchema.ts'\nimport { HTTPValidationErrorSchema } from '../HTTPValidationErrorSchema.ts'\nimport { notFoundSchema } from '../notFoundSchema.ts'\nimport { unauthorizedSchema } from '../unauthorizedSchema.ts'\nimport { userResponseSchema } from '../userResponseSchema.ts'\n\nexport const revokeUserSubscriptionPathParamsSchema = z.object({\n  username: z.string(),\n}) as unknown as z.ZodType<RevokeUserSubscriptionPathParams>\n\n/**\n * @description Successful Response\n */\nexport const revokeUserSubscription200Schema = z.lazy(\n  () => userResponseSchema\n) as unknown as z.ZodType<RevokeUserSubscription200>\n\n/**\n * @description Unauthorized\n */\nexport const revokeUserSubscription401Schema = z.lazy(\n  () => unauthorizedSchema\n) as unknown as z.ZodType<RevokeUserSubscription401>\n\n/**\n * @description Forbidden\n */\nexport const revokeUserSubscription403Schema = z.lazy(\n  () => forbiddenSchema\n) as unknown as z.ZodType<RevokeUserSubscription403>\n\n/**\n * @description Not found\n */\nexport const revokeUserSubscription404Schema = z.lazy(\n  () => notFoundSchema\n) as unknown as z.ZodType<RevokeUserSubscription404>\n\n/**\n * @description Validation Error\n */\nexport const revokeUserSubscription422Schema = z.lazy(\n  () => HTTPValidationErrorSchema\n) as unknown as z.ZodType<RevokeUserSubscription422>\n\nexport const revokeUserSubscriptionMutationResponseSchema = z.lazy(\n  () => revokeUserSubscription200Schema\n) as unknown as z.ZodType<RevokeUserSubscriptionMutationResponse>\n","import { z } from 'zod/v4'\n\nimport type {\n  SetOwner200,\n  SetOwner401,\n  SetOwner422,\n  SetOwnerMutationResponse,\n  SetOwnerPathParams,\n  SetOwnerQueryParams,\n} from '../../models/UserModel/SetOwner.ts'\nimport { HTTPValidationErrorSchema } from '../HTTPValidationErrorSchema.ts'\nimport { unauthorizedSchema } from '../unauthorizedSchema.ts'\nimport { userResponseSchema } from '../userResponseSchema.ts'\n\nexport const setOwnerPathParamsSchema = z.object({\n  username: z.string(),\n}) as unknown as z.ZodType<SetOwnerPathParams>\n\nexport const setOwnerQueryParamsSchema = z.object({\n  admin_username: z.string(),\n}) as unknown as z.ZodType<SetOwnerQueryParams>\n\n/**\n * @description Successful Response\n */\nexport const setOwner200Schema = z.lazy(() => userResponseSchema) as unknown as z.ZodType<SetOwner200>\n\n/**\n * @description Unauthorized\n */\nexport const setOwner401Schema = z.lazy(() => unauthorizedSchema) as unknown as z.ZodType<SetOwner401>\n\n/**\n * @description Validation Error\n */\nexport const setOwner422Schema = z.lazy(() => HTTPValidationErrorSchema) as unknown as z.ZodType<SetOwner422>\n\nexport const setOwnerMutationResponseSchema = z.lazy(\n  () => setOwner200Schema\n) as unknown as z.ZodType<SetOwnerMutationResponse>\n","import type { RequestConfig, ResponseErrorConfig } from '@/core/http/client.ts'\nimport fetch from '@/core/http/client.ts'\n\nimport type {\n  ActiveNextPlan401,\n  ActiveNextPlan403,\n  ActiveNextPlan404,\n  ActiveNextPlan422,\n  ActiveNextPlanMutationResponse,\n  ActiveNextPlanPathParams,\n} from '../../models/UserModel/ActiveNextPlan.ts'\nimport type {\n  AddUser400,\n  AddUser401,\n  AddUser409,\n  AddUser422,\n  AddUserMutationRequest,\n  AddUserMutationResponse,\n} from '../../models/UserModel/AddUser.ts'\nimport type {\n  DeleteExpiredUsers401,\n  DeleteExpiredUsers422,\n  DeleteExpiredUsersMutationResponse,\n  DeleteExpiredUsersQueryParams,\n} from '../../models/UserModel/DeleteExpiredUsers.ts'\nimport type {\n  GetExpiredUsers401,\n  GetExpiredUsers422,\n  GetExpiredUsersQueryParams,\n  GetExpiredUsersQueryResponse,\n} from '../../models/UserModel/GetExpiredUsers.ts'\nimport type {\n  GetUser401,\n  GetUser403,\n  GetUser404,\n  GetUser422,\n  GetUserPathParams,\n  GetUserQueryResponse,\n} from '../../models/UserModel/GetUser.ts'\nimport type {\n  GetUsers400,\n  GetUsers401,\n  GetUsers403,\n  GetUsers404,\n  GetUsers422,\n  GetUsersQueryParams,\n  GetUsersQueryResponse,\n} from '../../models/UserModel/GetUsers.ts'\nimport type {\n  GetUsersUsage401,\n  GetUsersUsage422,\n  GetUsersUsageQueryParams,\n  GetUsersUsageQueryResponse,\n} from '../../models/UserModel/GetUsersUsage.ts'\nimport type {\n  GetUserUsage401,\n  GetUserUsage403,\n  GetUserUsage404,\n  GetUserUsage422,\n  GetUserUsagePathParams,\n  GetUserUsageQueryParams,\n  GetUserUsageQueryResponse,\n} from '../../models/UserModel/GetUserUsage.ts'\nimport type {\n  ModifyUser400,\n  ModifyUser401,\n  ModifyUser403,\n  ModifyUser404,\n  ModifyUser422,\n  ModifyUserMutationRequest,\n  ModifyUserMutationResponse,\n  ModifyUserPathParams,\n} from '../../models/UserModel/ModifyUser.ts'\nimport type {\n  RemoveUser401,\n  RemoveUser403,\n  RemoveUser404,\n  RemoveUser422,\n  RemoveUserMutationResponse,\n  RemoveUserPathParams,\n} from '../../models/UserModel/RemoveUser.ts'\nimport type {\n  ResetUserDataUsage401,\n  ResetUserDataUsage403,\n  ResetUserDataUsage404,\n  ResetUserDataUsage422,\n  ResetUserDataUsageMutationResponse,\n  ResetUserDataUsagePathParams,\n} from '../../models/UserModel/ResetUserDataUsage.ts'\nimport type {\n  ResetUsersDataUsage401,\n  ResetUsersDataUsage403,\n  ResetUsersDataUsage404,\n  ResetUsersDataUsageMutationResponse,\n} from '../../models/UserModel/ResetUsersDataUsage.ts'\nimport type {\n  RevokeUserSubscription401,\n  RevokeUserSubscription403,\n  RevokeUserSubscription404,\n  RevokeUserSubscription422,\n  RevokeUserSubscriptionMutationResponse,\n  RevokeUserSubscriptionPathParams,\n} from '../../models/UserModel/RevokeUserSubscription.ts'\nimport type {\n  SetOwner401,\n  SetOwner422,\n  SetOwnerMutationResponse,\n  SetOwnerPathParams,\n  SetOwnerQueryParams,\n} from '../../models/UserModel/SetOwner.ts'\nimport { activeNextPlanMutationResponseSchema } from '../../schemas/UserSchema/activeNextPlanSchema.ts'\nimport { addUserMutationRequestSchema, addUserMutationResponseSchema } from '../../schemas/UserSchema/addUserSchema.ts'\nimport { deleteExpiredUsersMutationResponseSchema } from '../../schemas/UserSchema/deleteExpiredUsersSchema.ts'\nimport { getExpiredUsersQueryResponseSchema } from '../../schemas/UserSchema/getExpiredUsersSchema.ts'\nimport { getUserQueryResponseSchema } from '../../schemas/UserSchema/getUserSchema.ts'\nimport { getUsersQueryResponseSchema } from '../../schemas/UserSchema/getUsersSchema.ts'\nimport { getUsersUsageQueryResponseSchema } from '../../schemas/UserSchema/getUsersUsageSchema.ts'\nimport { getUserUsageQueryResponseSchema } from '../../schemas/UserSchema/getUserUsageSchema.ts'\nimport {\n  modifyUserMutationRequestSchema,\n  modifyUserMutationResponseSchema,\n} from '../../schemas/UserSchema/modifyUserSchema.ts'\nimport { removeUserMutationResponseSchema } from '../../schemas/UserSchema/removeUserSchema.ts'\nimport { resetUserDataUsageMutationResponseSchema } from '../../schemas/UserSchema/resetUserDataUsageSchema.ts'\nimport { resetUsersDataUsageMutationResponseSchema } from '../../schemas/UserSchema/resetUsersDataUsageSchema.ts'\nimport { revokeUserSubscriptionMutationResponseSchema } from '../../schemas/UserSchema/revokeUserSubscriptionSchema.ts'\nimport { setOwnerMutationResponseSchema } from '../../schemas/UserSchema/setOwnerSchema.ts'\n\nexport class userApi {\n  #client: typeof fetch\n\n  constructor(config: Partial<RequestConfig> & { client?: typeof fetch } = {}) {\n    this.#client = config.client || fetch\n  }\n\n  /**\n   * @description Add a new user- **username**: 3 to 32 characters, can include a-z, 0-9, and underscores.- **status**: User's status, defaults to `active`. Special rules if `on_hold`.- **expire**: UTC timestamp for account expiration. Use `0` for unlimited.- **data_limit**: Max data usage in bytes (e.g., `1073741824` for 1GB). `0` means unlimited.- **data_limit_reset_strategy**: Defines how/if data limit resets. `no_reset` means it never resets.- **proxies**: Dictionary of protocol settings (e.g., `vmess`, `vless`).- **inbounds**: Dictionary of protocol tags to specify inbound connections.- **note**: Optional text field for additional user information or notes.- **on_hold_timeout**: UTC timestamp when `on_hold` status should start or end.- **on_hold_expire_duration**: Duration (in seconds) for how long the user should stay in `on_hold` status.- **next_plan**: Next user plan (resets after use).\n   * @summary Add User\n   * {@link /api/user}\n   */\n  async addUser(\n    data: AddUserMutationRequest,\n    config: Partial<RequestConfig<AddUserMutationRequest>> & { client?: typeof fetch } = {}\n  ) {\n    const { client: request = this.#client, ...requestConfig } = config\n    const requestData = addUserMutationRequestSchema.parse(data)\n    const res = await request<\n      AddUserMutationResponse,\n      ResponseErrorConfig<AddUser400 | AddUser401 | AddUser409 | AddUser422>,\n      AddUserMutationRequest\n    >({ method: 'POST', url: `/api/user`, data: requestData, ...requestConfig })\n    return addUserMutationResponseSchema.parse(res.data)\n  }\n\n  /**\n   * @description Get user information\n   * @summary Get User\n   * {@link /api/user/:username}\n   */\n  async getUser(\n    username: GetUserPathParams['username'],\n    config: Partial<RequestConfig> & { client?: typeof fetch } = {}\n  ) {\n    const { client: request = this.#client, ...requestConfig } = config\n    const res = await request<\n      GetUserQueryResponse,\n      ResponseErrorConfig<GetUser401 | GetUser403 | GetUser404 | GetUser422>,\n      unknown\n    >({ method: 'GET', url: `/api/user/${username}`, ...requestConfig })\n    return getUserQueryResponseSchema.parse(res.data)\n  }\n\n  /**\n   * @description Modify an existing user- **username**: Cannot be changed. Used to identify the user.- **status**: User's new status. Can be 'active', 'disabled', 'on_hold', 'limited', or 'expired'.- **expire**: UTC timestamp for new account expiration. Set to `0` for unlimited, `null` for no change.- **data_limit**: New max data usage in bytes (e.g., `1073741824` for 1GB). Set to `0` for unlimited, `null` for no change.- **data_limit_reset_strategy**: New strategy for data limit reset. Options include 'daily', 'weekly', 'monthly', or 'no_reset'.- **proxies**: Dictionary of new protocol settings (e.g., `vmess`, `vless`). Empty dictionary means no change.- **inbounds**: Dictionary of new protocol tags to specify inbound connections. Empty dictionary means no change.- **note**: New optional text for additional user information or notes. `null` means no change.- **on_hold_timeout**: New UTC timestamp for when `on_hold` status should start or end. Only applicable if status is changed to 'on_hold'.- **on_hold_expire_duration**: New duration (in seconds) for how long the user should stay in `on_hold` status. Only applicable if status is changed to 'on_hold'.- **next_plan**: Next user plan (resets after use).Note: Fields set to `null` or omitted will not be modified.\n   * @summary Modify User\n   * {@link /api/user/:username}\n   */\n  async modifyUser(\n    username: ModifyUserPathParams['username'],\n    data?: ModifyUserMutationRequest,\n    config: Partial<RequestConfig<ModifyUserMutationRequest>> & { client?: typeof fetch } = {}\n  ) {\n    const { client: request = this.#client, ...requestConfig } = config\n    const requestData = modifyUserMutationRequestSchema.parse(data)\n    const res = await request<\n      ModifyUserMutationResponse,\n      ResponseErrorConfig<ModifyUser400 | ModifyUser401 | ModifyUser403 | ModifyUser404 | ModifyUser422>,\n      ModifyUserMutationRequest\n    >({ method: 'PUT', url: `/api/user/${username}`, data: requestData, ...requestConfig })\n    return modifyUserMutationResponseSchema.parse(res.data)\n  }\n\n  /**\n   * @description Remove a user\n   * @summary Remove User\n   * {@link /api/user/:username}\n   */\n  async removeUser(\n    username: RemoveUserPathParams['username'],\n    config: Partial<RequestConfig> & { client?: typeof fetch } = {}\n  ) {\n    const { client: request = this.#client, ...requestConfig } = config\n    const res = await request<\n      RemoveUserMutationResponse,\n      ResponseErrorConfig<RemoveUser401 | RemoveUser403 | RemoveUser404 | RemoveUser422>,\n      unknown\n    >({ method: 'DELETE', url: `/api/user/${username}`, ...requestConfig })\n    return removeUserMutationResponseSchema.parse(res.data)\n  }\n\n  /**\n   * @description Reset user data usage\n   * @summary Reset User Data Usage\n   * {@link /api/user/:username/reset}\n   */\n  async resetUserDataUsage(\n    username: ResetUserDataUsagePathParams['username'],\n    config: Partial<RequestConfig> & { client?: typeof fetch } = {}\n  ) {\n    const { client: request = this.#client, ...requestConfig } = config\n    const res = await request<\n      ResetUserDataUsageMutationResponse,\n      ResponseErrorConfig<\n        ResetUserDataUsage401 | ResetUserDataUsage403 | ResetUserDataUsage404 | ResetUserDataUsage422\n      >,\n      unknown\n    >({ method: 'POST', url: `/api/user/${username}/reset`, ...requestConfig })\n    return resetUserDataUsageMutationResponseSchema.parse(res.data)\n  }\n\n  /**\n   * @description Revoke users subscription (Subscription link and proxies)\n   * @summary Revoke User Subscription\n   * {@link /api/user/:username/revoke_sub}\n   */\n  async revokeUserSubscription(\n    username: RevokeUserSubscriptionPathParams['username'],\n    config: Partial<RequestConfig> & { client?: typeof fetch } = {}\n  ) {\n    const { client: request = this.#client, ...requestConfig } = config\n    const res = await request<\n      RevokeUserSubscriptionMutationResponse,\n      ResponseErrorConfig<\n        RevokeUserSubscription401 | RevokeUserSubscription403 | RevokeUserSubscription404 | RevokeUserSubscription422\n      >,\n      unknown\n    >({ method: 'POST', url: `/api/user/${username}/revoke_sub`, ...requestConfig })\n    return revokeUserSubscriptionMutationResponseSchema.parse(res.data)\n  }\n\n  /**\n   * @description Get all users\n   * @summary Get Users\n   * {@link /api/users}\n   */\n  async getUsers(params?: GetUsersQueryParams, config: Partial<RequestConfig> & { client?: typeof fetch } = {}) {\n    const { client: request = this.#client, ...requestConfig } = config\n    const res = await request<\n      GetUsersQueryResponse,\n      ResponseErrorConfig<GetUsers400 | GetUsers401 | GetUsers403 | GetUsers404 | GetUsers422>,\n      unknown\n    >({ method: 'GET', url: `/api/users`, params, ...requestConfig })\n    return getUsersQueryResponseSchema.parse(res.data)\n  }\n\n  /**\n   * @description Reset all users data usage\n   * @summary Reset Users Data Usage\n   * {@link /api/users/reset}\n   */\n  async resetUsersDataUsage(config: Partial<RequestConfig> & { client?: typeof fetch } = {}) {\n    const { client: request = this.#client, ...requestConfig } = config\n    const res = await request<\n      ResetUsersDataUsageMutationResponse,\n      ResponseErrorConfig<ResetUsersDataUsage401 | ResetUsersDataUsage403 | ResetUsersDataUsage404>,\n      unknown\n    >({ method: 'POST', url: `/api/users/reset`, ...requestConfig })\n    return resetUsersDataUsageMutationResponseSchema.parse(res.data)\n  }\n\n  /**\n   * @description Get users usage\n   * @summary Get User Usage\n   * {@link /api/user/:username/usage}\n   */\n  async getUserUsage(\n    username: GetUserUsagePathParams['username'],\n    params?: GetUserUsageQueryParams,\n    config: Partial<RequestConfig> & { client?: typeof fetch } = {}\n  ) {\n    const { client: request = this.#client, ...requestConfig } = config\n    const res = await request<\n      GetUserUsageQueryResponse,\n      ResponseErrorConfig<GetUserUsage401 | GetUserUsage403 | GetUserUsage404 | GetUserUsage422>,\n      unknown\n    >({ method: 'GET', url: `/api/user/${username}/usage`, params, ...requestConfig })\n    return getUserUsageQueryResponseSchema.parse(res.data)\n  }\n\n  /**\n   * @description Reset user by next plan\n   * @summary Active Next Plan\n   * {@link /api/user/:username/active-next}\n   */\n  async activeNextPlan(\n    username: ActiveNextPlanPathParams['username'],\n    config: Partial<RequestConfig> & { client?: typeof fetch } = {}\n  ) {\n    const { client: request = this.#client, ...requestConfig } = config\n    const res = await request<\n      ActiveNextPlanMutationResponse,\n      ResponseErrorConfig<ActiveNextPlan401 | ActiveNextPlan403 | ActiveNextPlan404 | ActiveNextPlan422>,\n      unknown\n    >({ method: 'POST', url: `/api/user/${username}/active-next`, ...requestConfig })\n    return activeNextPlanMutationResponseSchema.parse(res.data)\n  }\n\n  /**\n   * @description Get all users usage\n   * @summary Get Users Usage\n   * {@link /api/users/usage}\n   */\n  async getUsersUsage(\n    params?: GetUsersUsageQueryParams,\n    config: Partial<RequestConfig> & { client?: typeof fetch } = {}\n  ) {\n    const { client: request = this.#client, ...requestConfig } = config\n    const res = await request<\n      GetUsersUsageQueryResponse,\n      ResponseErrorConfig<GetUsersUsage401 | GetUsersUsage422>,\n      unknown\n    >({ method: 'GET', url: `/api/users/usage`, params, ...requestConfig })\n    return getUsersUsageQueryResponseSchema.parse(res.data)\n  }\n\n  /**\n   * @description Set a new owner (admin) for a user.\n   * @summary Set Owner\n   * {@link /api/user/:username/set-owner}\n   */\n  async setOwner(\n    username: SetOwnerPathParams['username'],\n    params: SetOwnerQueryParams,\n    config: Partial<RequestConfig> & { client?: typeof fetch } = {}\n  ) {\n    const { client: request = this.#client, ...requestConfig } = config\n    const res = await request<SetOwnerMutationResponse, ResponseErrorConfig<SetOwner401 | SetOwner422>, unknown>({\n      method: 'PUT',\n      url: `/api/user/${username}/set-owner`,\n      params,\n      ...requestConfig,\n    })\n    return setOwnerMutationResponseSchema.parse(res.data)\n  }\n\n  /**\n   * @description Get users who have expired within the specified date range.- **expired_after** UTC datetime (optional)- **expired_before** UTC datetime (optional)- At least one of expired_after or expired_before must be provided for filtering- If both are omitted, returns all expired users\n   * @summary Get Expired Users\n   * {@link /api/users/expired}\n   */\n  async getExpiredUsers(\n    params?: GetExpiredUsersQueryParams,\n    config: Partial<RequestConfig> & { client?: typeof fetch } = {}\n  ) {\n    const { client: request = this.#client, ...requestConfig } = config\n    const res = await request<\n      GetExpiredUsersQueryResponse,\n      ResponseErrorConfig<GetExpiredUsers401 | GetExpiredUsers422>,\n      unknown\n    >({ method: 'GET', url: `/api/users/expired`, params, ...requestConfig })\n    return getExpiredUsersQueryResponseSchema.parse(res.data)\n  }\n\n  /**\n   * @description Delete users who have expired within the specified date range.- **expired_after** UTC datetime (optional)- **expired_before** UTC datetime (optional)- At least one of expired_after or expired_before must be provided\n   * @summary Delete Expired Users\n   * {@link /api/users/expired}\n   */\n  async deleteExpiredUsers(\n    params?: DeleteExpiredUsersQueryParams,\n    config: Partial<RequestConfig> & { client?: typeof fetch } = {}\n  ) {\n    const { client: request = this.#client, ...requestConfig } = config\n    const res = await request<\n      DeleteExpiredUsersMutationResponse,\n      ResponseErrorConfig<DeleteExpiredUsers401 | DeleteExpiredUsers422>,\n      unknown\n    >({ method: 'DELETE', url: `/api/users/expired`, params, ...requestConfig })\n    return deleteExpiredUsersMutationResponseSchema.parse(res.data)\n  }\n}\n","import { z } from 'zod/v4'\n\nimport type { UserTemplateCreate } from '../models/UserTemplateCreate.ts'\n\nexport const userTemplateCreateSchema = z.object({\n  name: z.union([z.string(), z.null()]).nullish(),\n  data_limit: z.optional(z.union([z.int(), z.null()]).describe('data_limit can be 0 or greater')),\n  expire_duration: z.optional(z.union([z.int(), z.null()]).describe('expire_duration can be 0 or greater in seconds')),\n  username_prefix: z.optional(z.union([z.string(), z.null()])),\n  username_suffix: z.optional(z.union([z.string(), z.null()])),\n  inbounds: z.optional(z.object({}).catchall(z.array(z.string())).default({})),\n}) as unknown as z.ZodType<UserTemplateCreate>\n","import { z } from 'zod/v4'\n\nimport type { UserTemplateResponse } from '../models/UserTemplateResponse.ts'\n\nexport const userTemplateResponseSchema = z.object({\n  name: z.union([z.string(), z.null()]).nullish(),\n  data_limit: z.optional(z.union([z.int(), z.null()]).describe('data_limit can be 0 or greater')),\n  expire_duration: z.optional(z.union([z.int(), z.null()]).describe('expire_duration can be 0 or greater in seconds')),\n  username_prefix: z.optional(z.union([z.string(), z.null()])),\n  username_suffix: z.optional(z.union([z.string(), z.null()])),\n  inbounds: z.optional(z.object({}).catchall(z.array(z.string())).default({})),\n  id: z.int(),\n}) as unknown as z.ZodType<UserTemplateResponse>\n","import { z } from 'zod/v4'\n\nimport type {\n  AddUserTemplate200,\n  AddUserTemplate422,\n  AddUserTemplateMutationRequest,\n  AddUserTemplateMutationResponse,\n} from '../../models/UserTemplateModel/AddUserTemplate.ts'\nimport { HTTPValidationErrorSchema } from '../HTTPValidationErrorSchema.ts'\nimport { userTemplateCreateSchema } from '../userTemplateCreateSchema.ts'\nimport { userTemplateResponseSchema } from '../userTemplateResponseSchema.ts'\n\n/**\n * @description Successful Response\n */\nexport const addUserTemplate200Schema = z.lazy(\n  () => userTemplateResponseSchema\n) as unknown as z.ZodType<AddUserTemplate200>\n\n/**\n * @description Validation Error\n */\nexport const addUserTemplate422Schema = z.lazy(\n  () => HTTPValidationErrorSchema\n) as unknown as z.ZodType<AddUserTemplate422>\n\nexport const addUserTemplateMutationRequestSchema = z.lazy(\n  () => userTemplateCreateSchema\n) as unknown as z.ZodType<AddUserTemplateMutationRequest>\n\nexport const addUserTemplateMutationResponseSchema = z.lazy(\n  () => addUserTemplate200Schema\n) as unknown as z.ZodType<AddUserTemplateMutationResponse>\n","import { z } from 'zod/v4'\n\nimport type {\n  GetUserTemplateEndpoint200,\n  GetUserTemplateEndpoint422,\n  GetUserTemplateEndpointPathParams,\n  GetUserTemplateEndpointQueryResponse,\n} from '../../models/UserTemplateModel/GetUserTemplateEndpoint.ts'\nimport { HTTPValidationErrorSchema } from '../HTTPValidationErrorSchema.ts'\nimport { userTemplateResponseSchema } from '../userTemplateResponseSchema.ts'\n\nexport const getUserTemplateEndpointPathParamsSchema = z.object({\n  template_id: z.coerce.number().int(),\n}) as unknown as z.ZodType<GetUserTemplateEndpointPathParams>\n\n/**\n * @description Successful Response\n */\nexport const getUserTemplateEndpoint200Schema = z.lazy(\n  () => userTemplateResponseSchema\n) as unknown as z.ZodType<GetUserTemplateEndpoint200>\n\n/**\n * @description Validation Error\n */\nexport const getUserTemplateEndpoint422Schema = z.lazy(\n  () => HTTPValidationErrorSchema\n) as unknown as z.ZodType<GetUserTemplateEndpoint422>\n\nexport const getUserTemplateEndpointQueryResponseSchema = z.lazy(\n  () => getUserTemplateEndpoint200Schema\n) as unknown as z.ZodType<GetUserTemplateEndpointQueryResponse>\n","import { z } from 'zod/v4'\n\nimport type {\n  GetUserTemplates200,\n  GetUserTemplates422,\n  GetUserTemplatesQueryParams,\n  GetUserTemplatesQueryResponse,\n} from '../../models/UserTemplateModel/GetUserTemplates.ts'\nimport { HTTPValidationErrorSchema } from '../HTTPValidationErrorSchema.ts'\nimport { userTemplateResponseSchema } from '../userTemplateResponseSchema.ts'\n\nexport const getUserTemplatesQueryParamsSchema = z\n  .object({\n    offset: z.optional(z.coerce.number().int()),\n    limit: z.optional(z.coerce.number().int()),\n  })\n  .optional() as unknown as z.ZodType<GetUserTemplatesQueryParams>\n\n/**\n * @description Successful Response\n */\nexport const getUserTemplates200Schema = z.array(\n  z.lazy(() => userTemplateResponseSchema)\n) as unknown as z.ZodType<GetUserTemplates200>\n\n/**\n * @description Validation Error\n */\nexport const getUserTemplates422Schema = z.lazy(\n  () => HTTPValidationErrorSchema\n) as unknown as z.ZodType<GetUserTemplates422>\n\nexport const getUserTemplatesQueryResponseSchema = z.lazy(\n  () => getUserTemplates200Schema\n) as unknown as z.ZodType<GetUserTemplatesQueryResponse>\n","import { z } from 'zod/v4'\n\nimport type { UserTemplateModify } from '../models/UserTemplateModify.ts'\n\nexport const userTemplateModifySchema = z.object({\n  name: z.union([z.string(), z.null()]).nullish(),\n  data_limit: z.optional(z.union([z.int(), z.null()]).describe('data_limit can be 0 or greater')),\n  expire_duration: z.optional(z.union([z.int(), z.null()]).describe('expire_duration can be 0 or greater in seconds')),\n  username_prefix: z.optional(z.union([z.string(), z.null()])),\n  username_suffix: z.optional(z.union([z.string(), z.null()])),\n  inbounds: z.optional(z.object({}).catchall(z.array(z.string())).default({})),\n}) as unknown as z.ZodType<UserTemplateModify>\n","import { z } from 'zod/v4'\n\nimport type {\n  ModifyUserTemplate200,\n  ModifyUserTemplate422,\n  ModifyUserTemplateMutationRequest,\n  ModifyUserTemplateMutationResponse,\n  ModifyUserTemplatePathParams,\n} from '../../models/UserTemplateModel/ModifyUserTemplate.ts'\nimport { HTTPValidationErrorSchema } from '../HTTPValidationErrorSchema.ts'\nimport { userTemplateModifySchema } from '../userTemplateModifySchema.ts'\nimport { userTemplateResponseSchema } from '../userTemplateResponseSchema.ts'\n\nexport const modifyUserTemplatePathParamsSchema = z.object({\n  template_id: z.coerce.number().int(),\n}) as unknown as z.ZodType<ModifyUserTemplatePathParams>\n\n/**\n * @description Successful Response\n */\nexport const modifyUserTemplate200Schema = z.lazy(\n  () => userTemplateResponseSchema\n) as unknown as z.ZodType<ModifyUserTemplate200>\n\n/**\n * @description Validation Error\n */\nexport const modifyUserTemplate422Schema = z.lazy(\n  () => HTTPValidationErrorSchema\n) as unknown as z.ZodType<ModifyUserTemplate422>\n\nexport const modifyUserTemplateMutationRequestSchema = z.lazy(\n  () => userTemplateModifySchema\n) as unknown as z.ZodType<ModifyUserTemplateMutationRequest>\n\nexport const modifyUserTemplateMutationResponseSchema = z.lazy(\n  () => modifyUserTemplate200Schema\n) as unknown as z.ZodType<ModifyUserTemplateMutationResponse>\n","import { z } from 'zod/v4'\n\nimport type {\n  RemoveUserTemplate200,\n  RemoveUserTemplate422,\n  RemoveUserTemplateMutationResponse,\n  RemoveUserTemplatePathParams,\n} from '../../models/UserTemplateModel/RemoveUserTemplate.ts'\nimport { HTTPValidationErrorSchema } from '../HTTPValidationErrorSchema.ts'\n\nexport const removeUserTemplatePathParamsSchema = z.object({\n  template_id: z.coerce.number().int(),\n}) as unknown as z.ZodType<RemoveUserTemplatePathParams>\n\n/**\n * @description Successful Response\n */\nexport const removeUserTemplate200Schema = z.any() as unknown as z.ZodType<RemoveUserTemplate200>\n\n/**\n * @description Validation Error\n */\nexport const removeUserTemplate422Schema = z.lazy(\n  () => HTTPValidationErrorSchema\n) as unknown as z.ZodType<RemoveUserTemplate422>\n\nexport const removeUserTemplateMutationResponseSchema = z.lazy(\n  () => removeUserTemplate200Schema\n) as unknown as z.ZodType<RemoveUserTemplateMutationResponse>\n","import type { RequestConfig, ResponseErrorConfig } from '@/core/http/client.ts'\nimport fetch from '@/core/http/client.ts'\n\nimport type {\n  AddUserTemplate422,\n  AddUserTemplateMutationRequest,\n  AddUserTemplateMutationResponse,\n} from '../../models/UserTemplateModel/AddUserTemplate.ts'\nimport type {\n  GetUserTemplateEndpoint422,\n  GetUserTemplateEndpointPathParams,\n  GetUserTemplateEndpointQueryResponse,\n} from '../../models/UserTemplateModel/GetUserTemplateEndpoint.ts'\nimport type {\n  GetUserTemplates422,\n  GetUserTemplatesQueryParams,\n  GetUserTemplatesQueryResponse,\n} from '../../models/UserTemplateModel/GetUserTemplates.ts'\nimport type {\n  ModifyUserTemplate422,\n  ModifyUserTemplateMutationRequest,\n  ModifyUserTemplateMutationResponse,\n  ModifyUserTemplatePathParams,\n} from '../../models/UserTemplateModel/ModifyUserTemplate.ts'\nimport type {\n  RemoveUserTemplate422,\n  RemoveUserTemplateMutationResponse,\n  RemoveUserTemplatePathParams,\n} from '../../models/UserTemplateModel/RemoveUserTemplate.ts'\nimport {\n  addUserTemplateMutationRequestSchema,\n  addUserTemplateMutationResponseSchema,\n} from '../../schemas/UserTemplateSchema/addUserTemplateSchema.ts'\nimport { getUserTemplateEndpointQueryResponseSchema } from '../../schemas/UserTemplateSchema/getUserTemplateEndpointSchema.ts'\nimport { getUserTemplatesQueryResponseSchema } from '../../schemas/UserTemplateSchema/getUserTemplatesSchema.ts'\nimport {\n  modifyUserTemplateMutationRequestSchema,\n  modifyUserTemplateMutationResponseSchema,\n} from '../../schemas/UserTemplateSchema/modifyUserTemplateSchema.ts'\nimport { removeUserTemplateMutationResponseSchema } from '../../schemas/UserTemplateSchema/removeUserTemplateSchema.ts'\n\nexport class userTemplateApi {\n  #client: typeof fetch\n\n  constructor(config: Partial<RequestConfig> & { client?: typeof fetch } = {}) {\n    this.#client = config.client || fetch\n  }\n\n  /**\n   * @description Add a new user template- **name** can be up to 64 characters- **data_limit** must be in bytes and larger or equal to 0- **expire_duration** must be in seconds and larger or equat to 0- **inbounds** dictionary of protocol:inbound_tags, empty means all inbounds\n   * @summary Add User Template\n   * {@link /api/user_template}\n   */\n  async addUserTemplate(\n    data?: AddUserTemplateMutationRequest,\n    config: Partial<RequestConfig<AddUserTemplateMutationRequest>> & { client?: typeof fetch } = {}\n  ) {\n    const { client: request = this.#client, ...requestConfig } = config\n    const requestData = addUserTemplateMutationRequestSchema.parse(data)\n    const res = await request<\n      AddUserTemplateMutationResponse,\n      ResponseErrorConfig<AddUserTemplate422>,\n      AddUserTemplateMutationRequest\n    >({ method: 'POST', url: `/api/user_template`, data: requestData, ...requestConfig })\n    return addUserTemplateMutationResponseSchema.parse(res.data)\n  }\n\n  /**\n   * @description Get a list of User Templates with optional pagination\n   * @summary Get User Templates\n   * {@link /api/user_template}\n   */\n  async getUserTemplates(\n    params?: GetUserTemplatesQueryParams,\n    config: Partial<RequestConfig> & { client?: typeof fetch } = {}\n  ) {\n    const { client: request = this.#client, ...requestConfig } = config\n    const res = await request<GetUserTemplatesQueryResponse, ResponseErrorConfig<GetUserTemplates422>, unknown>({\n      method: 'GET',\n      url: `/api/user_template`,\n      params,\n      ...requestConfig,\n    })\n    return getUserTemplatesQueryResponseSchema.parse(res.data)\n  }\n\n  /**\n   * @description Get User Template information with id\n   * @summary Get User Template Endpoint\n   * {@link /api/user_template/:template_id}\n   */\n  async getUserTemplateEndpoint(\n    templateId: GetUserTemplateEndpointPathParams['template_id'],\n    config: Partial<RequestConfig> & { client?: typeof fetch } = {}\n  ) {\n    const { client: request = this.#client, ...requestConfig } = config\n    const res = await request<\n      GetUserTemplateEndpointQueryResponse,\n      ResponseErrorConfig<GetUserTemplateEndpoint422>,\n      unknown\n    >({ method: 'GET', url: `/api/user_template/${templateId}`, ...requestConfig })\n    return getUserTemplateEndpointQueryResponseSchema.parse(res.data)\n  }\n\n  /**\n   * @description Modify User Template- **name** can be up to 64 characters- **data_limit** must be in bytes and larger or equal to 0- **expire_duration** must be in seconds and larger or equat to 0- **inbounds** dictionary of protocol:inbound_tags, empty means all inbounds\n   * @summary Modify User Template\n   * {@link /api/user_template/:template_id}\n   */\n  async modifyUserTemplate(\n    templateId: ModifyUserTemplatePathParams['template_id'],\n    data?: ModifyUserTemplateMutationRequest,\n    config: Partial<RequestConfig<ModifyUserTemplateMutationRequest>> & { client?: typeof fetch } = {}\n  ) {\n    const { client: request = this.#client, ...requestConfig } = config\n    const requestData = modifyUserTemplateMutationRequestSchema.parse(data)\n    const res = await request<\n      ModifyUserTemplateMutationResponse,\n      ResponseErrorConfig<ModifyUserTemplate422>,\n      ModifyUserTemplateMutationRequest\n    >({ method: 'PUT', url: `/api/user_template/${templateId}`, data: requestData, ...requestConfig })\n    return modifyUserTemplateMutationResponseSchema.parse(res.data)\n  }\n\n  /**\n   * @description Remove a User Template by its ID\n   * @summary Remove User Template\n   * {@link /api/user_template/:template_id}\n   */\n  async removeUserTemplate(\n    templateId: RemoveUserTemplatePathParams['template_id'],\n    config: Partial<RequestConfig> & { client?: typeof fetch } = {}\n  ) {\n    const { client: request = this.#client, ...requestConfig } = config\n    const res = await request<RemoveUserTemplateMutationResponse, ResponseErrorConfig<RemoveUserTemplate422>, unknown>({\n      method: 'DELETE',\n      url: `/api/user_template/${templateId}`,\n      ...requestConfig,\n    })\n    return removeUserTemplateMutationResponseSchema.parse(res.data)\n  }\n}\n","import { AuthError, AuthTokenError } from '@/core/errors'\nimport type { ClientFn } from '@/core/http/client'\nimport { Logger } from '@/core/logger'\nimport { adminApi } from '@/gen/api'\n\nimport { Storage } from './auth.types'\n\nexport class AuthManager {\n  private readonly storage: Storage\n  private readonly logger: Logger\n  /** When set, used for login (adminToken) instead of global client. */\n  private httpClient!: ClientFn\n\n  authPromise: Promise<void> | null = null\n\n  constructor(storage: Storage, logger: Logger) {\n    this.storage = storage\n    this.logger = logger\n    this.logger.debug('AuthManager initialized', 'AuthManager')\n  }\n\n  /** Set instance-bound public HTTP client for authentication (used when multiple SDK instances exist). */\n  setPublicClient(client: ClientFn): this {\n    this.httpClient = client\n    return this\n  }\n\n  authenticate(username: string, password: string): Promise<void> {\n    if (this.authPromise) {\n      this.logger.debug('Authentication already in progress, returning existing promise', 'AuthManager')\n      return this.authPromise\n    }\n\n    this.logger.info(`Starting authentication for user: ${username}`, 'AuthManager')\n\n    this.authPromise = this.authenticateInternal(username, password)\n    return this.authPromise\n  }\n\n  async waitForCurrentAuth(): Promise<void> {\n    if (this.authPromise) {\n      this.logger.debug('Waiting for existing authentication to complete', 'AuthManager')\n    }\n    await this.authPromise\n  }\n\n  retryAuth() {\n    const { username, password } = this.storage\n\n    if (!username || !password) {\n      const err = new AuthError('No stored credentials')\n      this.logger.error('Retry auth failed: no credentials', err, 'AuthManager')\n      throw err\n    }\n\n    return this.authenticate(username, password)\n  }\n\n  get isAuthenticating() {\n    return this.authPromise !== null\n  }\n\n  get accessToken() {\n    return this.storage.accessToken?.toString() || ''\n  }\n\n  set accessToken(token: string) {\n    this.storage.accessToken = token\n    this.logger.debug('Access token updated', 'AuthManager')\n  }\n\n  private async authenticateInternal(username: string, password: string): Promise<void> {\n    try {\n      this.logger.debug('Making authentication request to admin API', 'AuthManager')\n      const requestClient = this.httpClient\n      const admin = new adminApi({ client: requestClient })\n      const data = await admin.adminToken({ username, password }, { client: requestClient })\n\n      if (data?.access_token) {\n        this.storage.accessToken = data.access_token\n        this.logger.info('Authentication successful, token stored', 'AuthManager')\n      } else {\n        this.storage.accessToken = undefined\n        this.logger.error('Authentication failed: No access token received', null, 'AuthManager')\n        throw new AuthTokenError()\n      }\n    } catch (error) {\n      this.storage.accessToken = undefined\n\n      // Re-throw AuthError subclasses (including AuthTokenError) as-is.\n      // Only wrap truly unknown errors in AuthError.\n      // Re-throw known auth errors as-is, only wrap unknown errors.\n      // We check .name instead of instanceof to avoid issues with multiple\n      // module instances in test environments.\n      const isKnownAuthError = error instanceof Error && (error.name === 'AuthError' || error.name === 'AuthTokenError')\n\n      if (isKnownAuthError) {\n        throw error\n      }\n\n      const err = new AuthError(error)\n      this.logger.error('Authentication request failed', err, 'AuthManager')\n      throw err\n    } finally {\n      this.authPromise = null\n      this.logger.debug('Authentication process completed', 'AuthManager')\n    }\n  }\n}\n","import chalk, { type ChalkInstance } from 'chalk'\r\n\r\nimport { Logger, LoggerOptions, LogLevel } from './logger.types'\r\n\r\nexport class DefaultLogger implements Logger {\r\n  private readonly levelPriority: Record<LogLevel, number> = {\r\n    debug: 0,\r\n    info: 1,\r\n    warn: 2,\r\n    error: 3,\r\n  }\r\n\r\n  private readonly levelColors: Record<LogLevel, ChalkInstance> = {\r\n    debug: chalk.magenta,\r\n    info: chalk.blue,\r\n    warn: chalk.yellow,\r\n    error: chalk.red,\r\n  }\r\n\r\n  private currentLevel: LogLevel\r\n  private timestamp: boolean\r\n\r\n  constructor(options?: LoggerOptions) {\r\n    this.currentLevel = options?.level ?? 'info'\r\n    this.timestamp = options?.timestamp ?? true\r\n  }\r\n\r\n  private shouldLog(level: LogLevel) {\r\n    return this.levelPriority[level] >= this.levelPriority[this.currentLevel]\r\n  }\r\n\r\n  private format(level: LogLevel, message: string, context?: string) {\r\n    const ts = this.timestamp ? `${new Date().toISOString()}` : ''\r\n    const ctx = context ? chalk.cyan(`[${context}]`) : ''\r\n    const paddedLevel = this.levelColors[level](level.toUpperCase().padStart(5, ' '))\r\n    const sdkPrefix = chalk.green('[MarzbanSDK]')\r\n\r\n    return `${sdkPrefix} ${ts} ${paddedLevel} ${ctx} ${message}`.trim()\r\n  }\r\n\r\n  debug(message: string, context?: string) {\r\n    if (this.shouldLog('debug')) {\r\n      console.debug(this.format('debug', message, context))\r\n    }\r\n  }\r\n\r\n  info(message: string, context?: string) {\r\n    if (this.shouldLog('info')) {\r\n      console.info(this.format('info', message, context))\r\n    }\r\n  }\r\n\r\n  warn(message: string, context?: string) {\r\n    if (this.shouldLog('warn')) {\r\n      console.warn(this.format('warn', message, context))\r\n    }\r\n  }\r\n\r\n  error(message: string, trace?: unknown, context?: string) {\r\n    if (this.shouldLog('error')) {\r\n      console.error(this.format('error', message, context), trace ?? '')\r\n    }\r\n  }\r\n}\r\n","import { AnyType } from '@/common'\r\n\r\nimport { Logger, LoggerOptions } from './logger.types'\r\n\r\nexport function isLogger(obj: unknown): obj is Logger {\r\n  return (\r\n    typeof obj === 'object' &&\r\n    obj !== null &&\r\n    ['debug', 'info', 'warn', 'error'].every(method => typeof (obj as AnyType)[method] === 'function')\r\n  )\r\n}\r\n\r\nexport function isLoggerOptions(obj: unknown): obj is LoggerOptions {\r\n  if (typeof obj !== 'object' || obj === null) return false\r\n  if (isLogger(obj)) return false\r\n  const allowedKeys: (keyof LoggerOptions)[] = ['level', 'timestamp']\r\n  return Object.keys(obj).every(k => allowedKeys.includes(k as keyof LoggerOptions))\r\n}\r\n","import { SdkError } from '@/core/errors'\r\nimport { ERROR_CODES } from '@/core/errors/codes'\r\n\r\nimport { DefaultLogger } from './default-logger'\r\nimport { Logger, LoggerConfig } from './logger.types'\r\nimport { isLogger, isLoggerOptions } from './logger.utils'\r\n\r\nexport const createLogger = (loggerConfig?: LoggerConfig): Logger => {\r\n  if (loggerConfig === false) {\r\n    return {\r\n      debug: () => {},\r\n      info: () => {},\r\n      warn: () => {},\r\n      error: () => {},\r\n    }\r\n  } else if (isLogger(loggerConfig)) {\r\n    // Custom logger\r\n    return loggerConfig\r\n  } else if (isLoggerOptions(loggerConfig) || loggerConfig === undefined) {\r\n    // Standard logger with settings\r\n    return new DefaultLogger(loggerConfig)\r\n  } else {\r\n    throw new SdkError(ERROR_CODES.LOGGER_INVALID)\r\n  }\r\n}\r\n","export function toBuffer(input: unknown): Buffer {\r\n  if (typeof input === 'string') {\r\n    return Buffer.from(input)\r\n  }\r\n  if (Buffer.isBuffer(input)) {\r\n    return input\r\n  }\r\n  return Buffer.from(JSON.stringify(input))\r\n}\r\n","import { AnyType } from './types'\r\n\r\ntype EventMap = Record<string, AnyType>\r\n\r\n// Promise<unknown> instead of Promise<void> allows listeners that return\r\n// a value (e.g. async functions returning Promise<string>) to be accepted.\r\n// We never use the resolved value — only the settled state matters.\r\ntype Listener<T = AnyType> = (payload: T) => unknown\r\n\r\n/**\r\n * A type-safe event emitter with support for asynchronous listeners.\r\n *\r\n * @template TEvents - Object defining event names and their payload types\r\n *\r\n * Features:\r\n * - Full TypeScript type safety for events and payloads\r\n * - Support for both synchronous and asynchronous listeners\r\n * - Once listeners that automatically remove themselves after execution\r\n * - Chaining support for method calls\r\n * - Error resilience (all listeners are called even if one throws)\r\n *\r\n * Notes:\r\n * - emit() is fire-and-forget — it does not return a Promise.\r\n *   Use emitAsync() if you need to await all listeners.\r\n * - Listener errors are caught and do not affect other listeners,\r\n *   but they are also silently swallowed. Add an 'error' event to your\r\n *   TEvents map and emit it from within listeners if you need error handling.\r\n */\r\nexport class SafeEventEmitter<TEvents extends EventMap> {\r\n  private events: Map<keyof TEvents, Set<Listener<AnyType>>> = new Map()\r\n\r\n  // FIX (race condition): once listeners are now removed synchronously\r\n  // at the start of emit(), before any async work begins.\r\n  // This guarantees they can never be triggered by a second emit() that\r\n  // arrives while processListenersAsync is still running.\r\n  private onceEvents: Map<keyof TEvents, Set<Listener<AnyType>>> = new Map()\r\n\r\n  on<TEventName extends keyof TEvents>(event: TEventName, listener: Listener<TEvents[TEventName]>): this {\r\n    if (!this.events.has(event)) {\r\n      this.events.set(event, new Set())\r\n    }\r\n    this.events.get(event)!.add(listener)\r\n    return this\r\n  }\r\n\r\n  once<TEventName extends keyof TEvents>(event: TEventName, listener: Listener<TEvents[TEventName]>): this {\r\n    if (!this.onceEvents.has(event)) {\r\n      this.onceEvents.set(event, new Set())\r\n    }\r\n    this.onceEvents.get(event)!.add(listener)\r\n    return this\r\n  }\r\n\r\n  off<TEventName extends keyof TEvents>(event: TEventName, listener: Listener<TEvents[TEventName]>): this {\r\n    this.events.get(event)?.delete(listener)\r\n    this.onceEvents.get(event)?.delete(listener)\r\n    return this\r\n  }\r\n\r\n  emit<TEventName extends keyof TEvents>(event: TEventName, payload: TEvents[TEventName]): boolean {\r\n    const regularListeners = this.events.get(event)\r\n    const onceListeners = this.onceEvents.get(event)\r\n\r\n    const hasRegular = (regularListeners?.size ?? 0) > 0\r\n    const hasOnce = (onceListeners?.size ?? 0) > 0\r\n\r\n    if (!hasRegular && !hasOnce) {\r\n      return false\r\n    }\r\n\r\n    // FIX (race condition): snapshot and clear once listeners synchronously\r\n    // before any async work starts, so a second emit() cannot re-trigger them.\r\n    const onceSnapshot = onceListeners ? new Set(onceListeners) : null\r\n    if (onceListeners) {\r\n      onceListeners.clear()\r\n    }\r\n\r\n    this.processListenersAsync(event, payload, onceSnapshot)\r\n\r\n    return true\r\n  }\r\n\r\n  /**\r\n   * Same as emit() but returns a Promise that resolves when all listeners\r\n   * (both regular and once) have settled. Useful when you need to ensure\r\n   * all async side effects are complete before proceeding.\r\n   */\r\n  async emitAsync<TEventName extends keyof TEvents>(event: TEventName, payload: TEvents[TEventName]): Promise<boolean> {\r\n    const regularListeners = this.events.get(event)\r\n    const onceListeners = this.onceEvents.get(event)\r\n\r\n    const hasRegular = (regularListeners?.size ?? 0) > 0\r\n    const hasOnce = (onceListeners?.size ?? 0) > 0\r\n\r\n    if (!hasRegular && !hasOnce) {\r\n      return false\r\n    }\r\n\r\n    const onceSnapshot = onceListeners ? new Set(onceListeners) : null\r\n    if (onceListeners) {\r\n      onceListeners.clear()\r\n    }\r\n\r\n    await this.processListenersAsync(event, payload, onceSnapshot)\r\n\r\n    return true\r\n  }\r\n\r\n  removeAllListeners<TEventName extends keyof TEvents>(event?: TEventName): void {\r\n    if (event) {\r\n      this.events.delete(event)\r\n      this.onceEvents.delete(event)\r\n    } else {\r\n      this.events.clear()\r\n      this.onceEvents.clear()\r\n    }\r\n  }\r\n\r\n  listenerCount<TEventName extends keyof TEvents>(event: TEventName): number {\r\n    const regularCount = this.events.get(event)?.size ?? 0\r\n    const onceCount = this.onceEvents.get(event)?.size ?? 0\r\n    return regularCount + onceCount\r\n  }\r\n\r\n  // FIX (sync throw breaks chain): each listener is now wrapped in a\r\n  // Promise.resolve().then() so that both sync throws and async rejections\r\n  // are uniformly converted to rejected Promises before being passed to\r\n  // Promise.allSettled — which guarantees every listener runs regardless\r\n  // of what the previous one did.\r\n  private async processListenersAsync<TEventName extends keyof TEvents>(\r\n    event: TEventName,\r\n    payload: TEvents[TEventName],\r\n    onceSnapshot: Set<Listener<AnyType>> | null\r\n  ): Promise<void> {\r\n    const promises: Promise<unknown>[] = []\r\n\r\n    const regularListeners = this.events.get(event)\r\n    if (regularListeners && regularListeners.size > 0) {\r\n      for (const listener of regularListeners) {\r\n        promises.push(Promise.resolve().then(() => listener(payload)))\r\n      }\r\n    }\r\n\r\n    if (onceSnapshot && onceSnapshot.size > 0) {\r\n      for (const listener of onceSnapshot) {\r\n        promises.push(Promise.resolve().then(() => listener(payload)))\r\n      }\r\n    }\r\n\r\n    await Promise.allSettled(promises)\r\n  }\r\n}\r\n","import { z } from 'zod/v4'\n\nimport type { Base200, BaseQueryResponse } from '../../models/DefaultModel/Base.ts'\n\n/**\n * @description Successful Response\n */\nexport const base200Schema = z.string() as unknown as z.ZodType<Base200>\n\nexport const baseQueryResponseSchema = z.lazy(() => base200Schema) as unknown as z.ZodType<BaseQueryResponse>\n","import { z } from 'zod/v4'\r\n\r\nimport { adminSchema, userResponseSchema } from '@/gen/schemas'\r\n\r\nexport const ACTIONS = {\r\n  user_created: 'user_created',\r\n  user_updated: 'user_updated',\r\n  user_deleted: 'user_deleted',\r\n  user_limited: 'user_limited',\r\n  user_expired: 'user_expired',\r\n  user_enabled: 'user_enabled',\r\n  user_disabled: 'user_disabled',\r\n  data_usage_reset: 'data_usage_reset',\r\n  data_reset_by_next: 'data_reset_by_next',\r\n  subscription_revoked: 'subscription_revoked',\r\n  reached_usage_percent: 'reached_usage_percent',\r\n  reached_days_left: 'reached_days_left',\r\n} as const\r\n\r\nexport type WebhookAction = keyof typeof ACTIONS\r\n\r\nexport const WebhookActionSchema = z.enum(ACTIONS)\r\n\r\nconst actionLiteral = <T extends WebhookAction>(a: T) => z.literal(a)\r\n\r\nexport const BaseWebhookSchema = z.object({\r\n  enqueued_at: z.number().default(() => Date.now() / 1000),\r\n  send_at: z.number().default(() => Date.now() / 1000),\r\n  tries: z.number().default(0),\r\n})\r\n\r\nexport const UserWebhookSchema = BaseWebhookSchema.extend({\r\n  username: z.string(),\r\n})\r\n\r\nexport const ReachedUsagePercentSchema = UserWebhookSchema.extend({\r\n  action: actionLiteral('reached_usage_percent'),\r\n  user: userResponseSchema,\r\n  used_percent: z.number(),\r\n})\r\n\r\nexport const ReachedDaysLeftSchema = UserWebhookSchema.extend({\r\n  action: actionLiteral('reached_days_left'),\r\n  user: userResponseSchema,\r\n  days_left: z.number(),\r\n})\r\n\r\nexport const UserCreatedSchema = UserWebhookSchema.extend({\r\n  action: actionLiteral('user_created'),\r\n  by: adminSchema,\r\n  user: userResponseSchema,\r\n})\r\n\r\nexport const UserUpdatedSchema = UserWebhookSchema.extend({\r\n  action: actionLiteral('user_updated'),\r\n  by: adminSchema,\r\n  user: userResponseSchema,\r\n})\r\n\r\nexport const UserDeletedSchema = UserWebhookSchema.extend({\r\n  action: actionLiteral('user_deleted'),\r\n  by: adminSchema,\r\n})\r\n\r\nexport const UserLimitedSchema = UserWebhookSchema.extend({\r\n  action: actionLiteral('user_limited'),\r\n  user: userResponseSchema,\r\n})\r\n\r\nexport const UserExpiredSchema = UserWebhookSchema.extend({\r\n  action: actionLiteral('user_expired'),\r\n  user: userResponseSchema,\r\n})\r\n\r\nexport const UserEnabledSchema = UserWebhookSchema.extend({\r\n  action: actionLiteral('user_enabled'),\r\n  by: adminSchema.nullish(),\r\n  user: userResponseSchema,\r\n})\r\n\r\nexport const UserDisabledSchema = UserWebhookSchema.extend({\r\n  action: actionLiteral('user_disabled'),\r\n  by: adminSchema,\r\n  user: userResponseSchema,\r\n  reason: z.string().nullish(),\r\n})\r\n\r\nexport const UserDataUsageResetSchema = UserWebhookSchema.extend({\r\n  action: actionLiteral('data_usage_reset'),\r\n  by: adminSchema,\r\n  user: userResponseSchema,\r\n})\r\n\r\nexport const UserDataResetByNextSchema = UserWebhookSchema.extend({\r\n  action: actionLiteral('data_reset_by_next'),\r\n  user: userResponseSchema,\r\n})\r\n\r\nexport const UserSubscriptionRevokedSchema = UserWebhookSchema.extend({\r\n  action: actionLiteral('subscription_revoked'),\r\n  by: adminSchema,\r\n  user: userResponseSchema,\r\n})\r\n\r\nexport const WebhookSchema = z.discriminatedUnion('action', [\r\n  UserCreatedSchema,\r\n  UserUpdatedSchema,\r\n  UserDeletedSchema,\r\n  UserLimitedSchema,\r\n  UserExpiredSchema,\r\n  UserEnabledSchema,\r\n  UserDisabledSchema,\r\n  UserDataUsageResetSchema,\r\n  UserDataResetByNextSchema,\r\n  UserSubscriptionRevokedSchema,\r\n  ReachedUsagePercentSchema,\r\n  ReachedDaysLeftSchema,\r\n])\r\n\r\nexport type WebhookType = z.infer<typeof WebhookSchema>\r\n\r\nexport const WebhookArraySchema = z.array(WebhookSchema)\r\n\r\nexport type WebhookArrayType = z.infer<typeof WebhookArraySchema>\r\n","import crypto from 'node:crypto'\r\n\r\nimport { WebhookValidationError } from '@/core/errors'\r\n\r\nimport { WebhookArraySchema, WebhookArrayType } from './webhook.schema'\r\n\r\nexport function validateWebhookPayload(input: unknown): WebhookArrayType {\r\n  try {\r\n    return WebhookArraySchema.parse(input)\r\n  } catch (err) {\r\n    throw new WebhookValidationError(err)\r\n  }\r\n}\r\n\r\n/**\r\n * Verify the x-webhook-secret header against HMAC-SHA256 signature.\r\n * - If secret is not configured → always returns true (no verification).\r\n * - If secret is configured → require `x-webhook-secret` with valid HMAC-SHA256.\r\n */\r\nexport function verifyWebhookSignature(\r\n  signature: string | undefined,\r\n  secret: string | undefined,\r\n  data: Buffer | string\r\n): boolean {\r\n  if (!secret) return true // secret not configured\r\n  if (!signature) return false\r\n\r\n  const hmac = crypto.createHmac('sha256', secret)\r\n  hmac.update(data)\r\n  const expected = hmac.digest() // Buffer\r\n\r\n  let actual: Buffer\r\n  try {\r\n    actual = Buffer.from(signature, 'hex')\r\n  } catch {\r\n    return false\r\n  }\r\n\r\n  if (actual.length !== expected.length) return false\r\n\r\n  return crypto.timingSafeEqual(actual, expected)\r\n}\r\n","import { SafeEventEmitter, toBuffer } from '@/common'\r\nimport { WebhookSignatureError } from '@/core/errors'\r\nimport { Logger } from '@/core/logger'\r\n\r\nimport { WebhookType } from './webhook.schema'\r\nimport { validateWebhookPayload, verifyWebhookSignature } from './webhook.utils'\r\n\r\n/**\r\n * WebhookActionMap\r\n * - Map of action name => payload. Using Record<string, WebhookPayload> keeps\r\n *   the typings flexible for providers that supply arbitrary action strings.\r\n */\r\nexport type WebhookActionMap = {\r\n  [A in WebhookType['action']]: Extract<WebhookType, { action: A }>\r\n}\r\n\r\n/**\r\n * WebhookEventMap\r\n * - Includes specific action keys (via WebhookActionMap), wildcard '*' and 'batch'.\r\n */\r\nexport type WebhookEventMap = WebhookActionMap & {\r\n  '*': WebhookType // Wildcard for any single webhook\r\n  batch: WebhookType[] // Batch of webhooks\r\n}\r\n\r\nexport interface WebhookManagerOptions {\r\n  /**\r\n   * Secret used for webhook signature verification.\r\n   *\r\n   * If provided, all incoming webhooks must include\r\n   * a valid signature.\r\n   */\r\n  secret?: string\r\n\r\n  /**\r\n   * Logger instance used for internal webhook logging.\r\n   */\r\n  logger: Logger\r\n}\r\n\r\n/**\r\n * Handles incoming webhook events from Marzban.\r\n *\r\n * Features:\r\n * - Signature verification\r\n * - Payload validation\r\n * - Typed event subscriptions\r\n * - Wildcard event listeners\r\n * - Batch webhook processing\r\n * - Manual event dispatching\r\n *\r\n * Supports subscribing to:\r\n * - Specific webhook actions\r\n * - All events via '*'\r\n * - Batch events via 'batch'\r\n *\r\n * @example\r\n * webhook.on('user.created', payload => {\r\n *   console.log(payload.username)\r\n * })\r\n *\r\n * @example\r\n * webhook.on('*', payload => {\r\n *   console.log(payload.action)\r\n * })\r\n */\r\nexport class WebhookManager {\r\n  private readonly _secret?: string\r\n  private readonly _emitter: SafeEventEmitter<WebhookEventMap>\r\n  private readonly _logger: Logger\r\n\r\n  /**\r\n   * Constructor\r\n   * @param secret Optional webhook secret for verifying signatures\r\n   * @param logger Logger instance for logging events\r\n   */\r\n  constructor({ secret, logger }: WebhookManagerOptions) {\r\n    this._secret = secret\r\n    this._logger = logger\r\n    this._emitter = new SafeEventEmitter<WebhookEventMap>()\r\n\r\n    this._logger.info('WebhookManager initialized', 'WebhookManager')\r\n  }\r\n\r\n  // --- Subscription methods ---\r\n\r\n  /**\r\n   * Subscribe to an event\r\n   * @param event Event name (specific action, '*', or 'batch')\r\n   * @param listener Function to handle the payload\r\n   */\r\n  on<E extends keyof WebhookEventMap>(event: E, listener: (payload: WebhookEventMap[E]) => void): this {\r\n    this._emitter.on(event, listener)\r\n    this._logger.debug(`Listener added for event: ${String(event)}`, 'WebhookManager')\r\n    return this\r\n  }\r\n\r\n  /**\r\n   * Subscribe to an event once (one-time listener)\r\n   */\r\n  once<E extends keyof WebhookEventMap>(event: E, listener: (payload: WebhookEventMap[E]) => void): this {\r\n    this._emitter.once(event, listener)\r\n    this._logger.debug(`One-time listener added for event: ${String(event)}`, 'WebhookManager')\r\n    return this\r\n  }\r\n\r\n  /**\r\n   * Unsubscribe a listener from an event\r\n   */\r\n  off<E extends keyof WebhookEventMap>(event: E, listener: (payload: WebhookEventMap[E]) => void): this {\r\n    this._emitter.off(event, listener)\r\n    this._logger.debug(`Listener removed for event: ${String(event)}`, 'WebhookManager')\r\n    return this\r\n  }\r\n\r\n  /**\r\n   * Validate incoming webhook payloads and verify signature when secret configured.\r\n   *\r\n   * Important:\r\n   * - If a secret is configured for the manager, the caller MUST pass the raw request body\r\n   *   (Buffer or string) so signature verification is performed against the original bytes.\r\n   *\r\n   * @param rawBody Incoming webhook raw body (Buffer|string) OR already-parsed object.\r\n   * @param signature Optional webhook signature to verify (hex string)\r\n   * @returns Array of validated webhook payloads\r\n   */\r\n  parseWebhook(rawBody: unknown, signature?: string): WebhookType[] {\r\n    this._logger.debug('Parsing incoming webhook payload', 'WebhookManager')\r\n\r\n    // If secret is configured — require signature and raw body (Buffer|string)\r\n    if (this._secret) {\r\n      if (!signature) {\r\n        this._logger.error('Webhook signature is missing but secret is configured', 'WebhookManager')\r\n        throw new WebhookSignatureError()\r\n      }\r\n\r\n      if (!(Buffer.isBuffer(rawBody) || typeof rawBody === 'string')) {\r\n        this._logger.error(\r\n          'Webhook secret is configured: parseWebhook requires raw request body (Buffer or string) for signature verification',\r\n          'WebhookManager'\r\n        )\r\n        throw new WebhookSignatureError('Raw body required for signature verification')\r\n      }\r\n\r\n      const ok = verifyWebhookSignature(signature, this._secret, toBuffer(rawBody))\r\n      if (!ok) {\r\n        this._logger.error('Webhook signature verification failed', { rawBody, signature }, 'WebhookManager')\r\n        throw new WebhookSignatureError()\r\n      } else {\r\n        this._logger.debug('Webhook signature verified successfully', 'WebhookManager')\r\n      }\r\n    }\r\n\r\n    // Parse JSON if necessary\r\n    let parsed: unknown = rawBody\r\n    if (Buffer.isBuffer(rawBody) || typeof rawBody === 'string') {\r\n      try {\r\n        parsed = JSON.parse(Buffer.isBuffer(rawBody) ? rawBody.toString() : rawBody)\r\n      } catch (err) {\r\n        this._logger.error('Failed to parse webhook JSON body', err, 'WebhookManager')\r\n        // Let validateWebhookPayload throw a structured error if necessary,\r\n        // but provide a clear message for parse errors.\r\n        throw err\r\n      }\r\n    }\r\n\r\n    // Validate payload structure (will throw WebhookValidationError on failure)\r\n    const payloads = validateWebhookPayload(parsed)\r\n    this._logger.info(`Validated ${payloads.length} webhook payload(s)`, 'WebhookManager')\r\n\r\n    return payloads\r\n  }\r\n\r\n  // --- Basic processing ---\r\n\r\n  /**\r\n   * Handle an incoming webhook:\r\n   * - Verifies signature (if secret configured)\r\n   * - Validates the payload\r\n   * - Emits 'batch' event if multiple payloads\r\n   * - Emits individual events for each payload\r\n   * - Emits wildcard '*' event for each payload\r\n   * @param rawBody Incoming webhook raw body (Buffer|string) or already-parsed object\r\n   * @param signature Optional signature for verification\r\n   * @returns true if at least one event was emitted\r\n   */\r\n  async handleWebhook(rawBody: unknown, signature?: string): Promise<boolean> {\r\n    this._logger.info('Handling incoming webhook', 'WebhookManager')\r\n    let emitted = false\r\n\r\n    try {\r\n      const payloads = this.parseWebhook(rawBody, signature)\r\n\r\n      // Emit batch event once with all payloads\r\n      if (this._emitter.emit('batch', payloads)) {\r\n        this._logger.debug('Batch event emitted', 'WebhookManager')\r\n        emitted = true\r\n      }\r\n\r\n      // Emit each individual action and '*' wildcard events\r\n      for (const payload of payloads) {\r\n        if (this._emitter.emit(payload.action, payload)) {\r\n          this._logger.debug(`Event emitted for action: ${payload.action}`, 'WebhookManager')\r\n          emitted = true\r\n        }\r\n        if (this._emitter.emit('*', payload)) {\r\n          this._logger.debug(`Wildcard '*' event emitted for action: ${payload.action}`, 'WebhookManager')\r\n          emitted = true\r\n        }\r\n      }\r\n\r\n      this._logger.info(`Webhook processing completed, emitted=${emitted}`, 'WebhookManager')\r\n    } catch (err) {\r\n      this._logger.error('Error handling webhook', err, 'WebhookManager')\r\n      throw err\r\n    }\r\n\r\n    return emitted\r\n  }\r\n\r\n  /**\r\n   * Manually dispatch an event\r\n   * @param event Event name (specific action, '*', or 'batch')\r\n   * @param payload Payload to emit\r\n   * @returns true if event had listeners\r\n   */\r\n  async dispatch<E extends keyof Omit<WebhookEventMap, '*' | 'batch'>>(\r\n    event: E,\r\n    payload: WebhookEventMap[E]\r\n  ): Promise<boolean> {\r\n    this._logger.debug(`Dispatching event: ${String(event)}`, 'WebhookManager')\r\n    const result = await this._emitter.emit(event, payload)\r\n    this._logger.info(`Event dispatched: ${String(event)}, result=${result}`, 'WebhookManager')\r\n    return result\r\n  }\r\n}\r\n","import { type AnyType } from '@/common'\n\nexport type WebSocketEventMap = {\n  open: Event\n  message: MessageEvent\n  close: CloseEvent\n  error: Event\n}\n\nexport abstract class BaseWebSocketClient {\n  protected socket: WebSocket | AnyType\n  protected url: string\n  protected protocols?: string | string[]\n\n  constructor(url: string, protocols?: string | string[]) {\n    this.url = url\n    this.protocols = protocols\n  }\n\n  protected abstract createWebSocket(): Promise<WebSocket | AnyType>\n\n  async init(): Promise<void> {\n    this.socket = await this.createWebSocket()\n  }\n\n  on<K extends keyof WebSocketEventMap>(event: K, listener: (event: WebSocketEventMap[K]) => void): void {\n    this.socket.addEventListener(event, listener as AnyType)\n  }\n\n  send(data: string | ArrayBuffer | Blob | ArrayBufferView): void {\n    this.socket.send(data)\n  }\n\n  close(code?: number, reason?: string): void {\n    this.socket.close(code, reason)\n  }\n\n  get readyState(): number {\n    return this.socket.readyState\n  }\n}\n","import { BaseWebSocketClient } from './base-websocket-client'\n\nexport class BrowserWebSocketClient extends BaseWebSocketClient {\n  protected async createWebSocket(): Promise<WebSocket> {\n    return new WebSocket(this.url, this.protocols)\n  }\n}\n","import { BaseWebSocketClient } from './base-websocket-client'\n\nexport class NodeWebSocketClient extends BaseWebSocketClient {\n  protected async createWebSocket() {\n    const { default: NodeWebSocket } = await import('ws')\n    return new NodeWebSocket(this.url, this.protocols)\n  }\n}\n","import { BaseWebSocketClient } from './base-websocket-client'\nimport { BrowserWebSocketClient } from './browser-websocket-client'\nimport { NodeWebSocketClient } from './node-websocket-client'\n\nexport class WebSocketClient {\n  static async create(url: string, protocols?: string | string[]): Promise<BaseWebSocketClient> {\n    let client: BaseWebSocketClient\n\n    if (typeof window !== 'undefined' && typeof window.WebSocket !== 'undefined') {\n      client = new BrowserWebSocketClient(url, protocols)\n    } else {\n      client = new NodeWebSocketClient(url, protocols)\n    }\n\n    await client.init()\n    return client\n  }\n}\n","interface Options {\n  basePath: string\n  endpoint: string\n  token: string\n  interval: string | number\n}\n\nexport const configurationUrlWs = ({ basePath, endpoint, interval, token }: Options) => {\n  const url = new URL(basePath)\n  const wsProtocol = url.protocol === 'https:' ? 'wss' : 'ws'\n\n  url.protocol = wsProtocol\n  url.pathname = endpoint\n  url.searchParams.set('interval', interval.toString())\n  url.searchParams.set('token', token)\n\n  return url.toString()\n}\n","import { AnyType } from '@/common'\nimport { AuthManager } from '@/core/auth'\nimport { Logger } from '@/core/logger'\n\nimport { BaseWebSocketClient, WebSocketClient } from './client'\nimport { configurationUrlWs } from './utils'\n\ntype HandleCloseConnection = () => void\n\n/**\n * Options for configuring a WebSocket log stream.\n */\nexport interface LogOptions {\n  /** Interval for sending messages (in seconds) */\n  interval?: number\n  /** Callback triggered when a message is received */\n  onMessage: (data: WebSocketEventMap['message']['data']) => void\n  /** Callback triggered when a connection error occurs */\n  onError?: (data: WebSocketEventMap['error']) => void\n}\n\n/**\n * Handles streaming logs from the Marzban API via WebSocket.\n * Supports both core logs and node-specific logs.\n */\nexport class LogsStream {\n  private basePath: string\n  private authService: AuthManager\n  private logger: Logger\n  private activeConnections: Set<BaseWebSocketClient> = new Set()\n  private maxRetries = 3\n\n  /**\n   * Creates an API instance for handling logs via WebSocket.\n   * @param basePath The base URL for WebSocket connections.\n   * @param authService Authentication service for managing tokens.\n   * @param logger Logger instance for logging WebSocket events.\n   */\n  constructor(basePath: string, authService: AuthManager, logger: Logger) {\n    this.basePath = basePath\n    this.authService = authService\n    this.logger = logger\n    this.logger.debug('LogsStream initialized', 'LogsStream')\n  }\n\n  /**\n   * Ensures that an access token is available and refreshes it if necessary.\n   * @private\n   */\n  private async ensureAuthenticated() {\n    this.logger.debug('Ensuring authentication for WebSocket connection', 'LogsStream')\n    await this.authService.waitForCurrentAuth()\n\n    if (!this.authService.accessToken) {\n      this.logger.warn('No access token available, attempting to re-authenticate', 'LogsStream')\n      await this.authService.retryAuth()\n    } else {\n      this.logger.debug('Access token available for WebSocket connection', 'LogsStream')\n    }\n  }\n\n  /**\n   * Establishes a WebSocket connection to a specified endpoint.\n   * @private\n   * @param endpoint The API endpoint for the WebSocket connection.\n   * @param options Connection options (callbacks, interval).\n   * @param retryCount The number of retry attempts in case of failure (default is 0).\n   * @returns A function to close the WebSocket connection.\n   */\n  private async connect(endpoint: string, options: LogOptions, retryCount = 0): Promise<HandleCloseConnection> {\n    this.logger.info(`Establishing WebSocket connection to: ${endpoint}`, 'LogsStream')\n    await this.ensureAuthenticated()\n\n    const wsUrl = configurationUrlWs({\n      basePath: this.basePath,\n      endpoint,\n      token: this.authService.accessToken,\n      interval: options?.interval ?? 1,\n    })\n\n    this.logger.debug(`WebSocket URL generated: ${wsUrl}`, 'LogsStream')\n    const wsClient: BaseWebSocketClient = await WebSocketClient.create(wsUrl)\n    this.activeConnections.add(wsClient)\n\n    wsClient.on('open', () => {\n      this.logger.info(`WebSocket connection established: ${endpoint}`, 'LogsStream')\n    })\n\n    wsClient.on('message', async ({ data }) => {\n      this.logger.debug(`WebSocket message received from ${endpoint}`, 'LogsStream')\n      // Forward possibly transformed payload\n      options.onMessage(data as AnyType)\n    })\n\n    wsClient.on('error', async event => {\n      const errorMessage = (event as Event & { message: string }).message || ''\n      this.logger.error(`WebSocket error (${endpoint}): ${errorMessage}`, event, 'LogsStream')\n\n      if (errorMessage.includes('403')) {\n        this.logger.warn(`Received 403 Forbidden (retry ${retryCount + 1}/${this.maxRetries})`, 'LogsStream')\n\n        // Close and remove the failing connection before attempting a retry\n        wsClient.close()\n        this.activeConnections.delete(wsClient)\n\n        if (retryCount >= this.maxRetries) {\n          this.logger.error('Maximum retry attempts reached, connection failed', null, 'LogsStream')\n          options.onError?.(event)\n          return\n        }\n\n        this.logger.info('Attempting to re-authenticate and retry connection', 'LogsStream')\n        await this.authService.retryAuth()\n        return this.connect(endpoint, options, retryCount + 1)\n      }\n\n      options.onError?.(event)\n    })\n\n    wsClient.on('close', async () => {\n      this.activeConnections.delete(wsClient)\n      this.logger.info(`WebSocket connection closed: ${endpoint}`, 'LogsStream')\n    })\n\n    return () => {\n      this.logger.debug(`Closing WebSocket connection: ${endpoint}`, 'LogsStream')\n      wsClient.close()\n      this.activeConnections.delete(wsClient)\n    }\n  }\n\n  /**\n   * Connects to the core logs (`/api/core/logs`).\n   * @param options Connection options (callbacks, interval).\n   * @returns A function to close the WebSocket connection.\n   */\n  async connectByCore(options: LogOptions) {\n    this.logger.info('Connecting to core logs WebSocket', 'LogsStream')\n    return this.connect('/api/core/logs', options)\n  }\n\n  /**\n   * Connects to logs of a specific node (`/api/node/{nodeId}/logs`).\n   * @param nodeId The ID of the node whose logs should be accessed.\n   * @param options Connection options (callbacks, interval).\n   * @returns A function to close the WebSocket connection.\n   */\n  async connectByNode(nodeId: number | string, options: LogOptions) {\n    this.logger.info(`Connecting to node logs WebSocket for node ID: ${nodeId}`, 'LogsStream')\n    return this.connect(`/api/node/${nodeId}/logs`, options)\n  }\n\n  /**\n   * Closes all active WebSocket connections.\n   */\n  closeAllConnections() {\n    const connectionCount = this.activeConnections.size\n    this.logger.info(`Closing ${connectionCount} active WebSocket connections`, 'LogsStream')\n\n    this.activeConnections.forEach(wsClient => wsClient.close())\n    this.activeConnections.clear()\n\n    this.logger.info('All WebSocket connections closed successfully', 'LogsStream')\n  }\n}\n","import { Config, validateConfig } from '@/config'\nimport { adminApi, coreApi, nodeApi, subscriptionApi, systemApi, userApi, userTemplateApi } from '@/gen/api'\n\nimport { AuthManager } from './auth'\nimport { SdkError } from './errors'\nimport { configureHttpClient } from './http'\nimport { createLogger, Logger } from './logger'\nimport { WebhookManager } from './webhook'\nimport { LogsStream } from './ws'\n\n/**\n * Main SDK class for interacting with the Marzban API.\n *\n * Provides access to API modules (AdminApi, CoreApi, etc.) and handles authentication, retries, and interceptors.\n */\nexport class MarzbanSDK {\n  private readonly _config: Config\n  private readonly _authService: AuthManager\n  private readonly _logger: Logger\n\n  /**\n   * Administrative API endpoints.\n   */\n  readonly admin: adminApi\n\n  /**\n   * Core API endpoints.\n   */\n  readonly core: coreApi\n\n  /**\n   * Node management API endpoints.\n   */\n  readonly node: nodeApi\n\n  /**\n   * User management API endpoints.\n   */\n  readonly user: userApi\n\n  /**\n   * System API endpoints.\n   */\n  readonly system: systemApi\n\n  /**\n   * Subscription management API endpoints.\n   */\n  readonly subscription: subscriptionApi\n\n  /**\n   * User template API endpoints.\n   */\n  readonly userTemplate: userTemplateApi\n\n  /**\n   * Real-time logs streaming.\n   */\n  readonly logs: LogsStream\n\n  /**\n   * Webhook manager for validating, parsing, and handling incoming webhooks.\n   *\n   * Provides:\n   * - Webhook signature verification\n   * - Payload validation\n   * - Typed event subscriptions\n   * - Wildcard and batch event handling\n   * - Manual event dispatching\n   *\n   * The webhook manager can be used to:\n   * - Handle incoming HTTP webhook requests\n   * - Subscribe to specific webhook events\n   * - Verify webhook authenticity using a secret\n   * - Process webhook batches\n   *\n   * @example\n   * sdk.webhook.on('user.created', payload => {\n   *   console.log(payload.username)\n   * })\n   *\n   * @example\n   * // Express.js integration\n   * app.post('/webhook', async (req, res) => {\n   *   await sdk.webhook.handleWebhook(\n   *     req.body,\n   *     req.headers['x-signature']\n   *   )\n   *\n   *   res.sendStatus(200)\n   * })\n   */\n  readonly webhook: WebhookManager\n\n  /**\n   * Creates an instance of MarzbanSDK.\n   *\n   * @param {Config} config - Configuration object for the SDK.\n   * @throws {Error} If required credentials (`username` or `password`) are missing.\n   *\n   * @example\n   * // Automatic authentication (default)\n   * const sdk = await createMarzbanSDK({\n   *   baseUrl: 'https://api.example.com',\n   *   username: 'admin',\n   *   password: 'secret',\n   * });\n   *\n   * @example\n   * // Manual authentication mode\n   * const sdk = await createMarzbanSDK({\n   *   baseUrl: 'https://api.example.com',\n   *   username: 'admin',\n   *   password: 'secret',\n   *   authenticateOnInit: false,\n   * });\n   * await sdk.authorize();\n   */\n  constructor(config: Config) {\n    this._config = validateConfig(config)\n    this._logger = createLogger(this._config.logger)\n\n    const storageAuth: AuthManager['storage'] = {\n      username: this._config.username,\n      password: this._config.password,\n      accessToken: this._config?.token,\n    }\n    this._authService = new AuthManager(storageAuth, this._logger)\n\n    const http = configureHttpClient(this._config.baseUrl, this._authService, this._config, this._logger)\n    this._authService.setPublicClient(http.publicClient)\n\n    this.admin = new adminApi({ client: http.client })\n    this.core = new coreApi({ client: http.client })\n    this.node = new nodeApi({ client: http.client })\n    this.user = new userApi({ client: http.client })\n    this.system = new systemApi({ client: http.client })\n    this.subscription = new subscriptionApi({ client: http.client })\n    this.userTemplate = new userTemplateApi({ client: http.client })\n    this.logs = new LogsStream(this._config.baseUrl, this._authService, this._logger)\n    this.webhook = new WebhookManager({ ...this._config.webhook, logger: this._logger })\n  }\n\n  /**\n   * Returns the current authentication token.\n   *\n   * Waits for any in-progress authentication, then returns the JWT token in use (or empty string if none).\n   *\n   * @returns {Promise<string>} The current JWT token.\n   *\n   * @example\n   * const token = await sdk.getAuthToken();\n   * console.log(`Token: ${token}`);\n   */\n  async getAuthToken(): Promise<string> {\n    await this._authService.waitForCurrentAuth()\n    return this._authService.accessToken\n  }\n\n  /**\n   * Performs user authentication with stored credentials.\n   *\n   * If a login is already in progress and `force` is false, returns the existing promise.\n   * If `force` is true or no login is in progress, starts a new authentication request.\n   *\n   * @param {boolean} [force=false] - If true, forces a new authentication request even if one is in progress.\n   * @returns {Promise<void>} Resolves on successful authentication; rejects with {@link AuthenticationError} on failure.\n   *\n   * @example\n   * try {\n   *   await sdk.authorize();\n   *   // Auth successful\n   * } catch (e) {\n   *   if (e instanceof AuthenticationError) {\n   *     // Handle auth error\n   *   }\n   * }\n   *\n   * @example\n   * // Force re-authentication (e.g., token refresh)\n   * await sdk.authorize(true);\n   */\n  authorize(force = false): Promise<void> {\n    if (this._authService.isAuthenticating && !force) {\n      return this._authService.authPromise!\n    }\n    return this._authService.authenticate(this._config.username, this._config.password)\n  }\n\n  async destroy(): Promise<void> {\n    try {\n      this.logs.closeAllConnections()\n    } catch (err) {\n      if (err instanceof SdkError) {\n        this._logger.error(err.details, err.stack, err.code)\n      }\n      if (err instanceof Error) {\n        this._logger.error(err.message, err.stack, 'MarzbanSDK')\n      }\n    }\n  }\n}\n\nexport const createMarzbanSDK = async (config: Config): Promise<MarzbanSDK> => {\n  const logger = createLogger(config.logger)\n  const sdk = new MarzbanSDK(config)\n\n  // --- Authentication ---\n  if (config.authenticateOnInit) {\n    logger.info('Performing initial authentication as configured', 'MarzbanSDK')\n    await sdk['_authService'].authenticate(config.username, config.password)\n    logger.info('Initial authentication completed successfully', 'MarzbanSDK')\n  } else {\n    logger.debug('Skipping initial authentication as configured', 'MarzbanSDK')\n  }\n\n  return sdk\n}\n","export const nodeStatusEnum = {\n  connected: 'connected',\n  connecting: 'connecting',\n  error: 'error',\n  disabled: 'disabled',\n} as const\n\nexport type NodeStatusEnumKey = (typeof nodeStatusEnum)[keyof typeof nodeStatusEnum]\n\nexport type NodeStatus = NodeStatusEnumKey\n","export const proxyHostALPNEnum = {\n  h3: 'h3',\n  h2: 'h2',\n  'http/1.1': 'http/1.1',\n  'h3,h2,http/1.1': 'h3,h2,http/1.1',\n  'h3,h2': 'h3,h2',\n  'h2,http/1.1': 'h2,http/1.1',\n} as const\n\nexport type ProxyHostALPNEnumKey = (typeof proxyHostALPNEnum)[keyof typeof proxyHostALPNEnum]\n\nexport type ProxyHostALPN = ProxyHostALPNEnumKey\n","export const proxyHostFingerprintEnum = {\n  chrome: 'chrome',\n  firefox: 'firefox',\n  safari: 'safari',\n  ios: 'ios',\n  android: 'android',\n  edge: 'edge',\n  '360': '360',\n  qq: 'qq',\n  random: 'random',\n  randomized: 'randomized',\n} as const\n\nexport type ProxyHostFingerprintEnumKey = (typeof proxyHostFingerprintEnum)[keyof typeof proxyHostFingerprintEnum]\n\nexport type ProxyHostFingerprint = ProxyHostFingerprintEnumKey\n","export const proxyHostSecurityEnum = {\n  inbound_default: 'inbound_default',\n  none: 'none',\n  tls: 'tls',\n} as const\n\nexport type ProxyHostSecurityEnumKey = (typeof proxyHostSecurityEnum)[keyof typeof proxyHostSecurityEnum]\n\nexport type ProxyHostSecurity = ProxyHostSecurityEnumKey\n","export const proxyTypesEnum = {\n  vmess: 'vmess',\n  vless: 'vless',\n  trojan: 'trojan',\n  shadowsocks: 'shadowsocks',\n} as const\n\nexport type ProxyTypesEnumKey = (typeof proxyTypesEnum)[keyof typeof proxyTypesEnum]\n\nexport type ProxyTypes = ProxyTypesEnumKey\n","export const userDataLimitResetStrategyEnum = {\n  no_reset: 'no_reset',\n  day: 'day',\n  week: 'week',\n  month: 'month',\n  year: 'year',\n} as const\n\nexport type UserDataLimitResetStrategyEnumKey =\n  (typeof userDataLimitResetStrategyEnum)[keyof typeof userDataLimitResetStrategyEnum]\n\nexport type UserDataLimitResetStrategy = UserDataLimitResetStrategyEnumKey\n","export const userStatusEnum = {\n  active: 'active',\n  disabled: 'disabled',\n  limited: 'limited',\n  expired: 'expired',\n  on_hold: 'on_hold',\n} as const\n\nexport type UserStatusEnumKey = (typeof userStatusEnum)[keyof typeof userStatusEnum]\n\nexport type UserStatus = UserStatusEnumKey\n","export const userStatusCreateEnum = {\n  active: 'active',\n  on_hold: 'on_hold',\n} as const\n\nexport type UserStatusCreateEnumKey = (typeof userStatusCreateEnum)[keyof typeof userStatusCreateEnum]\n\nexport type UserStatusCreate = UserStatusCreateEnumKey\n","export const userStatusModifyEnum = {\n  active: 'active',\n  disabled: 'disabled',\n  on_hold: 'on_hold',\n} as const\n\nexport type UserStatusModifyEnumKey = (typeof userStatusModifyEnum)[keyof typeof userStatusModifyEnum]\n\nexport type UserStatusModify = UserStatusModifyEnumKey\n","// helpers: bytes utilities\r\nexport type SizeUnit = 'B' | 'KB' | 'MB' | 'GB' | 'TB' | 'PB'\r\n\r\n/**\r\n * Parse human size like \"1.5GB\", \"1024\", \"2 mb\" into bytes (number).\r\n * Default uses binary units (KB = 1024). Pass { decimal: true } to use 1000.\r\n */\r\nexport function parseSize(size: string | number, opts?: { decimal?: boolean }): number {\r\n  if (typeof size === 'number' && Number.isFinite(size)) return Math.round(size)\r\n  if (!size || typeof size !== 'string') return 0\r\n  const s = size.trim().toUpperCase()\r\n  // FIX: added PIB/PB to the regex so petabyte strings are parsed correctly\r\n  const m = /^([+-]?\\d+(?:[.,]\\d+)?)\\s*(B|KB|KIB|MB|MIB|GB|GIB|TB|TIB|PB|PIB)?$/.exec(s)\r\n  if (!m) return 0\r\n  const raw = parseFloat(m[1].replace(',', '.'))\r\n  const rawUnit = (m[2] || 'B').toUpperCase()\r\n  // normalize variants: KIB -> KB, MIB -> MB, GIB -> GB, TIB -> TB, PIB -> PB\r\n  const unit = rawUnit.replace(/IB$/, 'B') as SizeUnit\r\n  const base = opts?.decimal ? 1000 : 1024\r\n  switch (unit) {\r\n    case 'B':\r\n      return Math.round(raw)\r\n    case 'KB':\r\n      return Math.round(raw * Math.pow(base, 1))\r\n    case 'MB':\r\n      return Math.round(raw * Math.pow(base, 2))\r\n    case 'GB':\r\n      return Math.round(raw * Math.pow(base, 3))\r\n    case 'TB':\r\n      return Math.round(raw * Math.pow(base, 4))\r\n    case 'PB':\r\n      return Math.round(raw * Math.pow(base, 5))\r\n  }\r\n}\r\n\r\n/**\r\n * Format bytes to human string like \"1.50 GB\".\r\n * - decimal=true uses 1000, otherwise 1024.\r\n */\r\nexport function formatBytes(bytes: number, opts?: { decimals?: number; decimal?: boolean }): string {\r\n  const decimals = opts?.decimals ?? 2\r\n  const decimal = !!opts?.decimal\r\n  if (!Number.isFinite(bytes)) return '0 B'\r\n  const base = decimal ? 1000 : 1024\r\n  const absBytes = Math.abs(bytes)\r\n  if (absBytes < base) return `${Math.round(bytes)} B`\r\n  // overflowing as \"1024.00 TB\"\r\n  const units = ['KB', 'MB', 'GB', 'TB', 'PB']\r\n  let i = -1\r\n  let value = absBytes\r\n  while (value >= base && i < units.length - 1) {\r\n    value /= base\r\n    i++\r\n  }\r\n  const sign = bytes < 0 ? '-' : ''\r\n  return `${sign}${value.toFixed(decimals)} ${units[i]}`\r\n}\r\n\r\n/** Convert GB -> bytes */\r\nexport function gbToBytes(gb: number, decimal = false): number {\r\n  const base = decimal ? 1000 : 1024\r\n  return Math.round(gb * Math.pow(base, 3))\r\n}\r\n\r\n/** Convert bytes -> GB (float) */\r\nexport function bytesToGb(bytes: number, decimal = false): number {\r\n  const base = decimal ? 1000 : 1024\r\n  return bytes / Math.pow(base, 3)\r\n}\r\n","export interface Remaining {\r\n  days: number\r\n  hours: number\r\n  minutes: number\r\n  seconds: number\r\n  totalMs: number\r\n}\r\n\r\n/** Add duration components to a Date (immutable) */\r\nexport function addToDate(\r\n  date: Date | string | number,\r\n  opts: { days?: number; hours?: number; minutes?: number; seconds?: number; ms?: number }\r\n): Date {\r\n  const d = new Date(date)\r\n  let ms = d.getTime()\r\n  ms += (opts.days ?? 0) * 24 * 3600 * 1000\r\n  ms += (opts.hours ?? 0) * 3600 * 1000\r\n  ms += (opts.minutes ?? 0) * 60 * 1000\r\n  ms += (opts.seconds ?? 0) * 1000\r\n  ms += opts.ms ?? 0\r\n  return new Date(ms)\r\n}\r\n\r\n/** Add days */\r\nexport function addDays(date: Date | string | number, days: number): Date {\r\n  return addToDate(date, { days })\r\n}\r\n\r\n/** Add hours */\r\nexport function addHours(date: Date | string | number, hours: number): Date {\r\n  return addToDate(date, { hours })\r\n}\r\n\r\n/** Get remaining time from `from` (default now) to `to` */\r\nexport function remainingTime(to: Date | string | number, from: Date | string | number = Date.now()): Remaining {\r\n  const t = new Date(to).getTime()\r\n  const f = new Date(from).getTime()\r\n  // totalMs preserves the raw (possibly negative) delta so callers can\r\n  // distinguish \"in the past\" from \"right now\". The breakdown uses the clamped value.\r\n  const totalMs = t - f\r\n  let ms = Math.max(0, totalMs)\r\n  const days = Math.floor(ms / (24 * 3600 * 1000))\r\n  ms -= days * 24 * 3600 * 1000\r\n  const hours = Math.floor(ms / (3600 * 1000))\r\n  ms -= hours * 3600 * 1000\r\n  const minutes = Math.floor(ms / (60 * 1000))\r\n  ms -= minutes * 60 * 1000\r\n  const seconds = Math.floor(ms / 1000)\r\n  return { days, hours, minutes, seconds, totalMs }\r\n}\r\n\r\n/** Human readable remaining: \"2d 5h 3m 10s\" */\r\nexport function humanRemaining(to: Date | string | number, from?: Date | string | number): string {\r\n  const r = remainingTime(to, from)\r\n\r\n  if (r.totalMs < 0) return 'expired'\r\n\r\n  const parts: string[] = []\r\n  if (r.days) parts.push(`${r.days}d`)\r\n  if (r.hours) parts.push(`${r.hours}h`)\r\n  if (r.minutes) parts.push(`${r.minutes}m`)\r\n  if (r.seconds) parts.push(`${r.seconds}s`)\r\n\r\n  if (parts.length === 0) return '< 1s'\r\n\r\n  return parts.join(' ')\r\n}\r\n\r\n/** Format ISO without milliseconds */\r\nexport function toIso(date: Date | string | number): string {\r\n  return new Date(date).toISOString().replace(/\\.\\d{3}Z$/, 'Z')\r\n}\r\n","/**\r\n * Helper utilities for working with Marzban host-settings template variables.\r\n *\r\n * Official reference (Host Settings -> Variables):\r\n * https://gozargah.github.io/marzban/en/docs/host-settings\r\n *\r\n * This module exports:\r\n * - Variable: enum of supported variable names (without braces)\r\n * - varAs: format a Variable as a template token (\"{NAME}\")\r\n * - VariableBraced: a frozen map of pre-wrapped tokens for quick use\r\n * - varExtract: extract variable names from a template\r\n * - varValidate: validate a template against known variables\r\n * - interpolateTemplateVariables: substitute values into a template\r\n *\r\n * Note: API is intentionally simple and does not preserve legacy/compatibility shims.\r\n */\r\n\r\n/**\r\n * Enumeration of supported Marzban template variables.\r\n *\r\n * Each entry is the variable name (without braces) used in templates like \"{USERNAME}\".\r\n *\r\n * @see https://gozargah.github.io/marzban/en/docs/host-settings\r\n */\r\nexport enum Variable {\r\n  /** Master server IPv4 address, use as \"{SERVER_IP}\". */\r\n  SERVER_IP = 'SERVER_IP',\r\n\r\n  /** User username/login, use as \"{USERNAME}\". */\r\n  USERNAME = 'USERNAME',\r\n\r\n  /** Amount of data consumed by the user, use as \"{DATA_USAGE}\". */\r\n  DATA_USAGE = 'DATA_USAGE',\r\n\r\n  /** Remaining data for the user, use as \"{DATA_LEFT}\". */\r\n  DATA_LEFT = 'DATA_LEFT',\r\n\r\n  /** Total data limit for the user, use as \"{DATA_LIMIT}\". */\r\n  DATA_LIMIT = 'DATA_LIMIT',\r\n\r\n  /** Remaining days of subscription (integer), use as \"{DAYS_LEFT}\". */\r\n  DAYS_LEFT = 'DAYS_LEFT',\r\n\r\n  /** Human-friendly remaining time (days/hours/mins/secs), use as \"{TIME_LEFT}\". */\r\n  TIME_LEFT = 'TIME_LEFT',\r\n\r\n  /** Expiration date in Gregorian calendar, use as \"{EXPIRE_DATE}\". */\r\n  EXPIRE_DATE = 'EXPIRE_DATE',\r\n\r\n  /** Expiration date in Jalali calendar, use as \"{JALALI_EXPIRE_DATE}\". */\r\n  JALALI_EXPIRE_DATE = 'JALALI_EXPIRE_DATE',\r\n\r\n  /** User status as an emoji (✅, ⌛️, 🪫, ❌, 🔌), use as \"{STATUS_EMOJI}\". */\r\n  STATUS_EMOJI = 'STATUS_EMOJI',\r\n\r\n  /** Configuration protocol (vless, vmess, trojan, shadowsocks, ...), use as \"{PROTOCOL}\". */\r\n  PROTOCOL = 'PROTOCOL',\r\n\r\n  /** Transport type (tcp, ws, grpc, ...), use as \"{TRANSPORT}\". */\r\n  TRANSPORT = 'TRANSPORT',\r\n}\r\n\r\n/**\r\n * A variable name wrapped in braces, e.g. \"{USERNAME}\".\r\n * Used as the literal token type for template strings.\r\n */\r\nexport type BracedVariable<K extends Variable = Variable> = `{${K}}`\r\n\r\n/**\r\n * Result of validating template variables.\r\n *\r\n * - isValid: true when no unknown variables were found.\r\n * - unknownVariables: list of variable names (without braces) that are not in {@link Variable}.\r\n */\r\nexport interface TemplateVariablesValidationResult {\r\n  /** True when template contains only known variables. */\r\n  isValid: boolean\r\n\r\n  /** Unknown variable names found in the template (without braces). */\r\n  unknownVariables: string[]\r\n}\r\n\r\n/**\r\n * Return a variable formatted as a template token, e.g. \"{USERNAME}\".\r\n *\r\n * @param v Variable enum member.\r\n * @returns String token ready for insertion into templates.\r\n *\r\n * @example\r\n * varAs(Variable.USERNAME) // \"{USERNAME}\"\r\n */\r\nexport function varAs<K extends Variable>(v: K): BracedVariable<K> {\r\n  return `{${v}}` as BracedVariable<K>\r\n}\r\n\r\n/**\r\n * Frozen map of pre-braced tokens for quick insertion.\r\n *\r\n * Each value has a precise literal type — e.g. VariableBraced.USERNAME has\r\n * type \"{USERNAME}\" rather than plain string, which enables exhaustive checks\r\n * and accurate autocomplete when building template strings.\r\n *\r\n * @example\r\n * VariableBraced.USERNAME // \"{USERNAME}\" (type: \"{USERNAME}\")\r\n */\r\nexport const VariableBraced = Object.freeze(\r\n  Object.fromEntries(Object.values(Variable).map(v => [v, `{${v}}`])) as { [K in Variable]: BracedVariable<K> }\r\n)\r\n\r\n/**\r\n * Extract variable names from a template string.\r\n *\r\n * Matches tokens in the form \"{NAME}\" where NAME matches \\w+ (letters, digits, underscore).\r\n * Returned names do not include braces and preserve the order of appearance.\r\n * Duplicates are preserved — one entry per occurrence, not per unique variable.\r\n *\r\n * @param template Template string to scan.\r\n * @returns Array of variable names (without braces). Empty array when none found or template falsy.\r\n *\r\n * @example\r\n * varExtract(\"hello {USERNAME}, ip: {SERVER_IP}\") // [\"USERNAME\", \"SERVER_IP\"]\r\n */\r\nexport function varExtract(template: string): string[] {\r\n  if (!template) return []\r\n  const matches = template.match(/\\{(\\w+?)\\}/g) || []\r\n  return matches.map(m => m.slice(1, -1))\r\n}\r\n\r\n/**\r\n * Validate that a template string contains only known Marzban variables.\r\n *\r\n * Unknown variables (not present in {@link Variable}) are returned in unknownVariables.\r\n * Duplicates in the template are reflected as duplicates in unknownVariables.\r\n *\r\n * @param template Template string to validate.\r\n * @returns {@link TemplateVariablesValidationResult}\r\n *\r\n * @example\r\n * varValidate(\"hi {USERNAME} and {FOO}\")\r\n * // { isValid: false, unknownVariables: [\"FOO\"] }\r\n */\r\nexport function varValidate(template: string): TemplateVariablesValidationResult {\r\n  const vars = varExtract(template)\r\n  const known = new Set(Object.values(Variable))\r\n  const unknown = vars.filter(v => !known.has(v as Variable))\r\n  return {\r\n    isValid: unknown.length === 0,\r\n    unknownVariables: unknown,\r\n  }\r\n}\r\n\r\n/**\r\n * Interpolate known Marzban template variables inside a template string.\r\n *\r\n * Replaces tokens like \"{USERNAME}\" with provided values. Only keys present\r\n * in the `values` map (keys are {@link Variable}) are substituted. Unknown or\r\n * missing values are left intact.\r\n *\r\n * @param template Template containing tokens such as \"{USERNAME}\".\r\n * @param values Partial mapping from {@link Variable} to replacement strings.\r\n * @returns New string with substitutions applied.\r\n *\r\n * @example\r\n * interpolateTemplateVariables(\"hi {USERNAME}, left: {DATA_LEFT}\", {\r\n *   [Variable.USERNAME]: \"alice\",\r\n *   [Variable.DATA_LEFT]: \"10GB\"\r\n * })\r\n * // \"hi alice, left: 10GB\"\r\n */\r\nexport function interpolateTemplateVariables(template: string, values: Partial<Record<Variable, string>>): string {\r\n  if (!template) return template\r\n  return template.replace(/\\{(\\w+?)\\}/g, (match, name: string) => {\r\n    const key = name as Variable\r\n    return values && values[key] != null ? String(values[key]) : match\r\n  })\r\n}\r\n"]}