zod.ts 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542
  1. // Code generated by tools/openapigen. DO NOT EDIT.
  2. import { z } from 'zod';
  3. export const OnlineAPISupportSchema = z.number().int();
  4. export type OnlineAPISupport = z.infer<typeof OnlineAPISupportSchema>;
  5. export const ProcessStateSchema = z.string();
  6. export type ProcessState = z.infer<typeof ProcessStateSchema>;
  7. export const ProtocolSchema = z.string();
  8. export type Protocol = z.infer<typeof ProtocolSchema>;
  9. export const SubLinkProviderSchema = z.unknown();
  10. export type SubLinkProvider = z.infer<typeof SubLinkProviderSchema>;
  11. export const staticEgressResolverSchema = z.string();
  12. export type staticEgressResolver = z.infer<typeof staticEgressResolverSchema>;
  13. export const transportBitsSchema = z.number().int();
  14. export type transportBits = z.infer<typeof transportBitsSchema>;
  15. export const AllSettingSchema = z.object({
  16. datepicker: z.string(),
  17. expireDiff: z.number().int().min(0),
  18. externalTrafficInformEnable: z.boolean(),
  19. externalTrafficInformURI: z.string(),
  20. ldapAutoCreate: z.boolean(),
  21. ldapAutoDelete: z.boolean(),
  22. ldapBaseDN: z.string(),
  23. ldapBindDN: z.string(),
  24. ldapDefaultExpiryDays: z.number().int().min(0),
  25. ldapDefaultLimitIP: z.number().int().min(0),
  26. ldapDefaultTotalGB: z.number().int().min(0),
  27. ldapEnable: z.boolean(),
  28. ldapFlagField: z.string(),
  29. ldapHost: z.string(),
  30. ldapInboundTags: z.string(),
  31. ldapInvertFlag: z.boolean(),
  32. ldapPassword: z.string(),
  33. ldapPort: z.number().int().min(0).max(65535),
  34. ldapSyncCron: z.string(),
  35. ldapTruthyValues: z.string(),
  36. ldapUseTLS: z.boolean(),
  37. ldapUserAttr: z.string(),
  38. ldapUserFilter: z.string(),
  39. ldapVlessField: z.string(),
  40. pageSize: z.number().int().min(0).max(1000),
  41. panelOutbound: z.string(),
  42. remarkTemplate: z.string(),
  43. restartXrayOnClientDisable: z.boolean(),
  44. sessionMaxAge: z.number().int().min(1).max(525600),
  45. smtpCpu: z.number().int().min(0).max(100),
  46. smtpEnable: z.boolean(),
  47. smtpEnabledEvents: z.string(),
  48. smtpEncryptionType: z.string(),
  49. smtpHost: z.string(),
  50. smtpMemory: z.number().int().min(0).max(100),
  51. smtpPassword: z.string(),
  52. smtpPort: z.number().int().min(1).max(65535),
  53. smtpTo: z.string(),
  54. smtpUsername: z.string(),
  55. subAnnounce: z.string(),
  56. subCertFile: z.string(),
  57. subClashEnable: z.boolean(),
  58. subClashEnableRouting: z.boolean(),
  59. subClashPath: z.string(),
  60. subClashRules: z.string(),
  61. subClashURI: z.string(),
  62. subDomain: z.string(),
  63. subEnable: z.boolean(),
  64. subEnableRouting: z.boolean(),
  65. subEncrypt: z.boolean(),
  66. subHideSettings: z.boolean(),
  67. subIncyEnableRouting: z.boolean(),
  68. subIncyRoutingRules: z.string(),
  69. subJsonEnable: z.boolean(),
  70. subJsonFinalMask: z.string(),
  71. subJsonMux: z.string(),
  72. subJsonPath: z.string(),
  73. subJsonRules: z.string(),
  74. subJsonURI: z.string(),
  75. subKeyFile: z.string(),
  76. subListen: z.string(),
  77. subPath: z.string(),
  78. subPort: z.number().int().min(1).max(65535),
  79. subProfileUrl: z.string(),
  80. subRoutingRules: z.string(),
  81. subSupportUrl: z.string(),
  82. subThemeDir: z.string(),
  83. subTitle: z.string(),
  84. subURI: z.string(),
  85. subUpdates: z.number().int().min(0).max(525600),
  86. tgBotAPIServer: z.string(),
  87. tgBotBackup: z.boolean(),
  88. tgBotChatId: z.string(),
  89. tgBotEnable: z.boolean(),
  90. tgBotProxy: z.string(),
  91. tgBotToken: z.string(),
  92. tgCpu: z.number().int().min(0).max(100),
  93. tgEnabledEvents: z.string(),
  94. tgLang: z.string(),
  95. tgMemory: z.number().int().min(0).max(100),
  96. tgRunTime: z.string(),
  97. timeLocation: z.string(),
  98. trafficDiff: z.number().int().min(0).max(100),
  99. trustedProxyCIDRs: z.string(),
  100. twoFactorEnable: z.boolean(),
  101. twoFactorToken: z.string(),
  102. warpUpdateInterval: z.number().int().min(0),
  103. webBasePath: z.string(),
  104. webCertFile: z.string(),
  105. webDomain: z.string(),
  106. webKeyFile: z.string(),
  107. webListen: z.string(),
  108. webPort: z.number().int().min(1).max(65535),
  109. });
  110. export type AllSetting = z.infer<typeof AllSettingSchema>;
  111. export const AllSettingViewSchema = z.object({
  112. datepicker: z.string(),
  113. expireDiff: z.number().int().min(0),
  114. externalTrafficInformEnable: z.boolean(),
  115. externalTrafficInformURI: z.string(),
  116. hasApiToken: z.boolean(),
  117. hasLdapPassword: z.boolean(),
  118. hasNordSecret: z.boolean(),
  119. hasSmtpPassword: z.boolean(),
  120. hasTgBotToken: z.boolean(),
  121. hasTwoFactorToken: z.boolean(),
  122. hasWarpSecret: z.boolean(),
  123. ldapAutoCreate: z.boolean(),
  124. ldapAutoDelete: z.boolean(),
  125. ldapBaseDN: z.string(),
  126. ldapBindDN: z.string(),
  127. ldapDefaultExpiryDays: z.number().int().min(0),
  128. ldapDefaultLimitIP: z.number().int().min(0),
  129. ldapDefaultTotalGB: z.number().int().min(0),
  130. ldapEnable: z.boolean(),
  131. ldapFlagField: z.string(),
  132. ldapHost: z.string(),
  133. ldapInboundTags: z.string(),
  134. ldapInvertFlag: z.boolean(),
  135. ldapPassword: z.string(),
  136. ldapPort: z.number().int().min(0).max(65535),
  137. ldapSyncCron: z.string(),
  138. ldapTruthyValues: z.string(),
  139. ldapUseTLS: z.boolean(),
  140. ldapUserAttr: z.string(),
  141. ldapUserFilter: z.string(),
  142. ldapVlessField: z.string(),
  143. pageSize: z.number().int().min(0).max(1000),
  144. panelOutbound: z.string(),
  145. remarkTemplate: z.string(),
  146. restartXrayOnClientDisable: z.boolean(),
  147. sessionMaxAge: z.number().int().min(1).max(525600),
  148. smtpCpu: z.number().int().min(0).max(100),
  149. smtpEnable: z.boolean(),
  150. smtpEnabledEvents: z.string(),
  151. smtpEncryptionType: z.string(),
  152. smtpHost: z.string(),
  153. smtpMemory: z.number().int().min(0).max(100),
  154. smtpPassword: z.string(),
  155. smtpPort: z.number().int().min(1).max(65535),
  156. smtpTo: z.string(),
  157. smtpUsername: z.string(),
  158. subAnnounce: z.string(),
  159. subCertFile: z.string(),
  160. subClashEnable: z.boolean(),
  161. subClashEnableRouting: z.boolean(),
  162. subClashPath: z.string(),
  163. subClashRules: z.string(),
  164. subClashURI: z.string(),
  165. subDomain: z.string(),
  166. subEnable: z.boolean(),
  167. subEnableRouting: z.boolean(),
  168. subEncrypt: z.boolean(),
  169. subHideSettings: z.boolean(),
  170. subIncyEnableRouting: z.boolean(),
  171. subIncyRoutingRules: z.string(),
  172. subJsonEnable: z.boolean(),
  173. subJsonFinalMask: z.string(),
  174. subJsonMux: z.string(),
  175. subJsonPath: z.string(),
  176. subJsonRules: z.string(),
  177. subJsonURI: z.string(),
  178. subKeyFile: z.string(),
  179. subListen: z.string(),
  180. subPath: z.string(),
  181. subPort: z.number().int().min(1).max(65535),
  182. subProfileUrl: z.string(),
  183. subRoutingRules: z.string(),
  184. subSupportUrl: z.string(),
  185. subThemeDir: z.string(),
  186. subTitle: z.string(),
  187. subURI: z.string(),
  188. subUpdates: z.number().int().min(0).max(525600),
  189. tgBotAPIServer: z.string(),
  190. tgBotBackup: z.boolean(),
  191. tgBotChatId: z.string(),
  192. tgBotEnable: z.boolean(),
  193. tgBotProxy: z.string(),
  194. tgBotToken: z.string(),
  195. tgCpu: z.number().int().min(0).max(100),
  196. tgEnabledEvents: z.string(),
  197. tgLang: z.string(),
  198. tgMemory: z.number().int().min(0).max(100),
  199. tgRunTime: z.string(),
  200. timeLocation: z.string(),
  201. trafficDiff: z.number().int().min(0).max(100),
  202. trustedProxyCIDRs: z.string(),
  203. twoFactorEnable: z.boolean(),
  204. twoFactorToken: z.string(),
  205. warpUpdateInterval: z.number().int().min(0),
  206. webBasePath: z.string(),
  207. webCertFile: z.string(),
  208. webDomain: z.string(),
  209. webKeyFile: z.string(),
  210. webListen: z.string(),
  211. webPort: z.number().int().min(1).max(65535),
  212. });
  213. export type AllSettingView = z.infer<typeof AllSettingViewSchema>;
  214. export const ApiTokenSchema = z.object({
  215. createdAt: z.number().int(),
  216. enabled: z.boolean(),
  217. id: z.number().int(),
  218. name: z.string(),
  219. token: z.string(),
  220. });
  221. export type ApiToken = z.infer<typeof ApiTokenSchema>;
  222. export const ApiTokenViewSchema = z.object({
  223. createdAt: z.number().int(),
  224. enabled: z.boolean(),
  225. id: z.number().int(),
  226. name: z.string(),
  227. token: z.string().optional(),
  228. });
  229. export type ApiTokenView = z.infer<typeof ApiTokenViewSchema>;
  230. export const ClientSchema = z.object({
  231. allowedIPs: z.array(z.string()).optional(),
  232. auth: z.string().optional(),
  233. comment: z.string(),
  234. created_at: z.number().int().optional(),
  235. email: z.string(),
  236. enable: z.boolean(),
  237. expiryTime: z.number().int(),
  238. flow: z.string().optional(),
  239. group: z.string().optional(),
  240. id: z.string().optional(),
  241. keepAlive: z.number().int().optional(),
  242. limitIp: z.number().int(),
  243. password: z.string().optional(),
  244. preSharedKey: z.string().optional(),
  245. privateKey: z.string().optional(),
  246. publicKey: z.string().optional(),
  247. reset: z.number().int(),
  248. reverse: z.lazy(() => ClientReverseSchema).nullable().optional(),
  249. security: z.string(),
  250. subId: z.string(),
  251. tgId: z.number().int(),
  252. totalGB: z.number().int(),
  253. updated_at: z.number().int().optional(),
  254. });
  255. export type Client = z.infer<typeof ClientSchema>;
  256. export const ClientInboundSchema = z.object({
  257. clientId: z.number().int(),
  258. createdAt: z.number().int(),
  259. flowOverride: z.string(),
  260. inboundId: z.number().int(),
  261. });
  262. export type ClientInbound = z.infer<typeof ClientInboundSchema>;
  263. export const ClientRecordSchema = z.object({
  264. allowedIPs: z.string(),
  265. auth: z.string(),
  266. comment: z.string(),
  267. createdAt: z.number().int(),
  268. email: z.string(),
  269. enable: z.boolean(),
  270. expiryTime: z.number().int(),
  271. flow: z.string(),
  272. group: z.string(),
  273. id: z.number().int(),
  274. keepAlive: z.number().int(),
  275. limitIp: z.number().int(),
  276. password: z.string(),
  277. preSharedKey: z.string(),
  278. privateKey: z.string(),
  279. publicKey: z.string(),
  280. reset: z.number().int(),
  281. reverse: z.unknown(),
  282. security: z.string(),
  283. subId: z.string(),
  284. tgId: z.number().int(),
  285. totalGB: z.number().int(),
  286. updatedAt: z.number().int(),
  287. uuid: z.string(),
  288. });
  289. export type ClientRecord = z.infer<typeof ClientRecordSchema>;
  290. export const ClientReverseSchema = z.object({
  291. tag: z.string(),
  292. });
  293. export type ClientReverse = z.infer<typeof ClientReverseSchema>;
  294. export const ClientTrafficSchema = z.object({
  295. down: z.number().int(),
  296. email: z.string(),
  297. enable: z.boolean(),
  298. expiryTime: z.number().int(),
  299. id: z.number().int(),
  300. inboundId: z.number().int(),
  301. lastOnline: z.number().int(),
  302. reset: z.number().int(),
  303. subId: z.string(),
  304. total: z.number().int(),
  305. up: z.number().int(),
  306. uuid: z.string(),
  307. });
  308. export type ClientTraffic = z.infer<typeof ClientTrafficSchema>;
  309. export const FallbackParentInfoSchema = z.object({
  310. masterId: z.number().int(),
  311. path: z.string().optional(),
  312. });
  313. export type FallbackParentInfo = z.infer<typeof FallbackParentInfoSchema>;
  314. export const HistoryOfSeedersSchema = z.object({
  315. id: z.number().int(),
  316. seederName: z.string(),
  317. });
  318. export type HistoryOfSeeders = z.infer<typeof HistoryOfSeedersSchema>;
  319. export const HostSchema = z.object({
  320. address: z.string(),
  321. allowInsecure: z.boolean(),
  322. alpn: z.array(z.string()),
  323. createdAt: z.number().int(),
  324. echConfigList: z.string(),
  325. excludeFromSubTypes: z.array(z.string()),
  326. finalMask: z.string(),
  327. fingerprint: z.string(),
  328. hostHeader: z.string(),
  329. id: z.number().int(),
  330. inboundId: z.number().int(),
  331. isDisabled: z.boolean(),
  332. isHidden: z.boolean(),
  333. keepSniBlank: z.boolean(),
  334. mihomoIpVersion: z.enum(['dual', 'ipv4', 'ipv6', 'ipv4-prefer', 'ipv6-prefer']),
  335. mihomoX25519: z.boolean(),
  336. muxParams: z.unknown(),
  337. nodeGuids: z.array(z.string()).optional(),
  338. overrideSniFromAddress: z.boolean(),
  339. path: z.string(),
  340. pinnedPeerCertSha256: z.array(z.string()),
  341. port: z.number().int().min(0).max(65535),
  342. remark: z.string().max(256),
  343. security: z.enum(['same', 'tls', 'none', 'reality']),
  344. serverDescription: z.string().max(64),
  345. shuffleHost: z.boolean(),
  346. sni: z.string(),
  347. sockoptParams: z.unknown(),
  348. sortOrder: z.number().int(),
  349. tags: z.array(z.string()),
  350. updatedAt: z.number().int(),
  351. verifyPeerCertByName: z.string(),
  352. vlessRoute: z.string(),
  353. });
  354. export type Host = z.infer<typeof HostSchema>;
  355. export const InboundSchema = z.object({
  356. clientStats: z.array(z.lazy(() => ClientTrafficSchema)),
  357. down: z.number().int(),
  358. enable: z.boolean(),
  359. expiryTime: z.number().int(),
  360. fallbackParent: z.lazy(() => FallbackParentInfoSchema).nullable().optional(),
  361. id: z.number().int(),
  362. lastTrafficResetTime: z.number().int(),
  363. listen: z.string(),
  364. nodeId: z.number().int().nullable().optional(),
  365. originNodeGuid: z.string().optional(),
  366. port: z.number().int().min(0).max(65535),
  367. protocol: z.enum(['vmess', 'vless', 'trojan', 'shadowsocks', 'wireguard', 'hysteria', 'http', 'mixed', 'tunnel', 'tun', 'mtproto']),
  368. remark: z.string(),
  369. settings: z.unknown(),
  370. shareAddr: z.string(),
  371. shareAddrStrategy: z.enum(['node', 'listen', 'custom']),
  372. sniffing: z.unknown(),
  373. streamSettings: z.unknown(),
  374. subSortIndex: z.number().int().min(1),
  375. tag: z.string(),
  376. total: z.number().int(),
  377. trafficReset: z.enum(['never', 'hourly', 'daily', 'weekly', 'monthly']),
  378. up: z.number().int(),
  379. });
  380. export type Inbound = z.infer<typeof InboundSchema>;
  381. export const InboundClientIpsSchema = z.object({
  382. clientEmail: z.string(),
  383. id: z.number().int(),
  384. ips: z.unknown(),
  385. });
  386. export type InboundClientIps = z.infer<typeof InboundClientIpsSchema>;
  387. export const InboundFallbackSchema = z.object({
  388. alpn: z.string(),
  389. childId: z.number().int(),
  390. dest: z.string(),
  391. id: z.number().int(),
  392. masterId: z.number().int(),
  393. name: z.string(),
  394. path: z.string(),
  395. sortOrder: z.number().int(),
  396. xver: z.number().int(),
  397. });
  398. export type InboundFallback = z.infer<typeof InboundFallbackSchema>;
  399. export const InboundOptionSchema = z.object({
  400. id: z.number().int(),
  401. nodeId: z.number().int().nullable().optional(),
  402. port: z.number().int(),
  403. protocol: z.string(),
  404. remark: z.string(),
  405. ssMethod: z.string(),
  406. tag: z.string(),
  407. tlsFlowCapable: z.boolean(),
  408. });
  409. export type InboundOption = z.infer<typeof InboundOptionSchema>;
  410. export const MsgSchema = z.object({
  411. msg: z.string(),
  412. obj: z.unknown(),
  413. success: z.boolean(),
  414. });
  415. export type Msg = z.infer<typeof MsgSchema>;
  416. export const NodeSchema = z.object({
  417. activeCount: z.number().int(),
  418. address: z.string(),
  419. allowPrivateAddress: z.boolean(),
  420. apiToken: z.string(),
  421. basePath: z.string(),
  422. clientCount: z.number().int(),
  423. configDirty: z.boolean(),
  424. configDirtyAt: z.number().int(),
  425. cpuPct: z.number(),
  426. createdAt: z.number().int(),
  427. depletedCount: z.number().int(),
  428. disabledCount: z.number().int(),
  429. enable: z.boolean(),
  430. guid: z.string(),
  431. id: z.number().int(),
  432. inboundCount: z.number().int(),
  433. inboundSyncMode: z.enum(['all', 'selected']),
  434. inboundTags: z.array(z.string()),
  435. lastError: z.string(),
  436. lastHeartbeat: z.number().int(),
  437. latencyMs: z.number().int(),
  438. memPct: z.number(),
  439. name: z.string(),
  440. netDown: z.number().int(),
  441. netUp: z.number().int(),
  442. onlineCount: z.number().int(),
  443. outboundTag: z.string(),
  444. panelVersion: z.string(),
  445. parentGuid: z.string().optional(),
  446. pinnedCertSha256: z.string(),
  447. port: z.number().int().min(1).max(65535),
  448. remark: z.string(),
  449. scheme: z.enum(['http', 'https']),
  450. status: z.string(),
  451. tlsVerifyMode: z.enum(['verify', 'skip', 'pin', 'mtls']),
  452. transitive: z.boolean().optional(),
  453. updatedAt: z.number().int(),
  454. uptimeSecs: z.number().int(),
  455. xrayError: z.string(),
  456. xrayState: z.string(),
  457. xrayVersion: z.string(),
  458. });
  459. export type Node = z.infer<typeof NodeSchema>;
  460. export const OutboundTrafficsSchema = z.object({
  461. down: z.number().int(),
  462. id: z.number().int(),
  463. tag: z.string(),
  464. total: z.number().int(),
  465. up: z.number().int(),
  466. });
  467. export type OutboundTraffics = z.infer<typeof OutboundTrafficsSchema>;
  468. export const ProbeResultUISchema = z.object({
  469. cpuPct: z.number(),
  470. error: z.string(),
  471. latencyMs: z.number().int(),
  472. memPct: z.number(),
  473. panelVersion: z.string(),
  474. status: z.string(),
  475. uptimeSecs: z.number().int(),
  476. xrayError: z.string(),
  477. xrayState: z.string(),
  478. xrayVersion: z.string(),
  479. });
  480. export type ProbeResultUI = z.infer<typeof ProbeResultUISchema>;
  481. export const RealityScanResultSchema = z.object({
  482. alpn: z.string(),
  483. certIssuer: z.string(),
  484. certSubject: z.string(),
  485. certValid: z.boolean(),
  486. curveID: z.string(),
  487. feasible: z.boolean(),
  488. h2: z.boolean(),
  489. host: z.string(),
  490. ip: z.string(),
  491. latencyMs: z.number().int(),
  492. notAfter: z.string(),
  493. port: z.number().int(),
  494. reason: z.string(),
  495. serverNames: z.array(z.string()),
  496. target: z.string(),
  497. tls13: z.boolean(),
  498. tlsVersion: z.string(),
  499. x25519: z.boolean(),
  500. });
  501. export type RealityScanResult = z.infer<typeof RealityScanResultSchema>;
  502. export const SettingSchema = z.object({
  503. id: z.number().int(),
  504. key: z.string(),
  505. value: z.string(),
  506. });
  507. export type Setting = z.infer<typeof SettingSchema>;
  508. export const UserSchema = z.object({
  509. id: z.number().int(),
  510. password: z.string(),
  511. username: z.string(),
  512. });
  513. export type User = z.infer<typeof UserSchema>;