hysteria.ts 1.0 KB

1234567891011121314151617181920212223242526
  1. import { z } from 'zod';
  2. // Hysteria v1 inbound (legacy — upstream xray-core kept v1 support but the
  3. // panel defaults to v2). Each client supplies an `auth` token instead of a
  4. // UUID/password.
  5. export const HysteriaClientSchema = z.object({
  6. auth: z.string().min(1),
  7. email: z.string().min(1),
  8. limitIp: z.number().int().min(0).default(0),
  9. totalGB: z.number().int().min(0).default(0),
  10. expiryTime: z.number().int().default(0),
  11. enable: z.boolean().default(true),
  12. tgId: z.number().int().default(0),
  13. subId: z.string().default(''),
  14. comment: z.string().default(''),
  15. reset: z.number().int().min(0).default(0),
  16. created_at: z.number().int().optional(),
  17. updated_at: z.number().int().optional(),
  18. });
  19. export type HysteriaClient = z.infer<typeof HysteriaClientSchema>;
  20. export const HysteriaInboundSettingsSchema = z.object({
  21. version: z.number().int().min(1).default(2),
  22. clients: z.array(HysteriaClientSchema).default([]),
  23. });
  24. export type HysteriaInboundSettings = z.infer<typeof HysteriaInboundSettingsSchema>;