setting.ts 3.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. import { z } from 'zod';
  2. const port = z.number().int().min(1).max(65535);
  3. const nonNegativeInt = z.number().int().min(0);
  4. const absolutePath = z.string().regex(/^\//, 'pages.settings.validation.pathLeadingSlash');
  5. export const AllSettingSchema = z.object({
  6. webListen: z.string().optional(),
  7. webDomain: z.string().optional(),
  8. webPort: port.optional(),
  9. webCertFile: z.string().optional(),
  10. webKeyFile: z.string().optional(),
  11. webBasePath: absolutePath.optional(),
  12. sessionMaxAge: z.number().int().min(1).max(525600).optional(),
  13. trustedProxyCIDRs: z.string().optional(),
  14. panelOutbound: z.string().optional(),
  15. pageSize: z.number().int().min(0).max(1000).optional(),
  16. expireDiff: nonNegativeInt.optional(),
  17. trafficDiff: nonNegativeInt.max(100).optional(),
  18. remarkTemplate: z.string().optional(),
  19. datepicker: z.enum(['gregorian', 'jalalian']).optional(),
  20. tgBotEnable: z.boolean().optional(),
  21. tgBotToken: z.string().optional(),
  22. tgBotProxy: z.string().optional(),
  23. tgBotAPIServer: z.string().optional(),
  24. tgBotChatId: z.string().optional(),
  25. tgRunTime: z.string().optional(),
  26. tgBotBackup: z.boolean().optional(),
  27. tgCpu: z.number().int().min(0).max(100).optional(),
  28. tgLang: z.string().optional(),
  29. twoFactorEnable: z.boolean().optional(),
  30. twoFactorToken: z.string().optional(),
  31. xrayTemplateConfig: z.string().optional(),
  32. subEnable: z.boolean().optional(),
  33. subJsonEnable: z.boolean().optional(),
  34. subTitle: z.string().optional(),
  35. subSupportUrl: z.string().optional(),
  36. subProfileUrl: z.string().optional(),
  37. subAnnounce: z.string().optional(),
  38. subEnableRouting: z.boolean().optional(),
  39. subRoutingRules: z.string().optional(),
  40. subIncyEnableRouting: z.boolean().optional(),
  41. subIncyRoutingRules: z.string().optional(),
  42. subListen: z.string().optional(),
  43. subPort: port.optional(),
  44. subPath: absolutePath.optional(),
  45. subJsonPath: absolutePath.optional(),
  46. subClashEnable: z.boolean().optional(),
  47. subClashPath: absolutePath.optional(),
  48. subDomain: z.string().optional(),
  49. externalTrafficInformEnable: z.boolean().optional(),
  50. externalTrafficInformURI: z.string().optional(),
  51. restartXrayOnClientDisable: z.boolean().optional(),
  52. subCertFile: z.string().optional(),
  53. subKeyFile: z.string().optional(),
  54. subUpdates: z.number().int().min(1).max(168).optional(),
  55. subEncrypt: z.boolean().optional(),
  56. subURI: z.string().optional(),
  57. subJsonURI: z.string().optional(),
  58. subClashURI: z.string().optional(),
  59. subClashEnableRouting: z.boolean().optional(),
  60. subClashRules: z.string().optional(),
  61. subJsonMux: z.string().optional(),
  62. subJsonRules: z.string().optional(),
  63. subJsonFinalMask: z.string().optional(),
  64. subHideSettings: z.boolean().optional(),
  65. timeLocation: z.string().optional(),
  66. ldapEnable: z.boolean().optional(),
  67. ldapHost: z.string().optional(),
  68. ldapPort: port.optional(),
  69. ldapUseTLS: z.boolean().optional(),
  70. ldapInsecureSkipVerify: z.boolean().optional(),
  71. ldapBindDN: z.string().optional(),
  72. ldapPassword: z.string().optional(),
  73. ldapBaseDN: z.string().optional(),
  74. ldapUserFilter: z.string().optional(),
  75. ldapUserAttr: z.string().optional(),
  76. ldapVlessField: z.string().optional(),
  77. ldapSyncCron: z.string().optional(),
  78. ldapFlagField: z.string().optional(),
  79. ldapTruthyValues: z.string().optional(),
  80. ldapInvertFlag: z.boolean().optional(),
  81. ldapInboundTags: z.string().optional(),
  82. ldapAutoCreate: z.boolean().optional(),
  83. ldapAutoDelete: z.boolean().optional(),
  84. ldapDefaultTotalGB: nonNegativeInt.optional(),
  85. ldapDefaultExpiryDays: nonNegativeInt.optional(),
  86. ldapDefaultLimitIP: nonNegativeInt.optional(),
  87. hasTgBotToken: z.boolean().optional(),
  88. hasTwoFactorToken: z.boolean().optional(),
  89. hasLdapPassword: z.boolean().optional(),
  90. hasApiToken: z.boolean().optional(),
  91. hasWarpSecret: z.boolean().optional(),
  92. hasNordSecret: z.boolean().optional(),
  93. hasSmtpPassword: z.boolean().optional(),
  94. }).loose();
  95. export type AllSettingInput = z.infer<typeof AllSettingSchema>;