|
@@ -0,0 +1,90 @@
|
|
|
|
|
+import { z } from 'zod';
|
|
|
|
|
+
|
|
|
|
|
+export const AllSettingSchema = z.object({
|
|
|
|
|
+ webListen: z.string().optional(),
|
|
|
|
|
+ webDomain: z.string().optional(),
|
|
|
|
|
+ webPort: z.number().optional(),
|
|
|
|
|
+ webCertFile: z.string().optional(),
|
|
|
|
|
+ webKeyFile: z.string().optional(),
|
|
|
|
|
+ webBasePath: z.string().optional(),
|
|
|
|
|
+ sessionMaxAge: z.number().optional(),
|
|
|
|
|
+ trustedProxyCIDRs: z.string().optional(),
|
|
|
|
|
+ pageSize: z.number().optional(),
|
|
|
|
|
+ expireDiff: z.number().optional(),
|
|
|
|
|
+ trafficDiff: z.number().optional(),
|
|
|
|
|
+ remarkModel: z.string().optional(),
|
|
|
|
|
+ datepicker: z.enum(['gregorian', 'jalalian']).optional(),
|
|
|
|
|
+ tgBotEnable: z.boolean().optional(),
|
|
|
|
|
+ tgBotToken: z.string().optional(),
|
|
|
|
|
+ tgBotProxy: z.string().optional(),
|
|
|
|
|
+ tgBotAPIServer: z.string().optional(),
|
|
|
|
|
+ tgBotChatId: z.string().optional(),
|
|
|
|
|
+ tgRunTime: z.string().optional(),
|
|
|
|
|
+ tgBotBackup: z.boolean().optional(),
|
|
|
|
|
+ tgBotLoginNotify: z.boolean().optional(),
|
|
|
|
|
+ tgCpu: z.number().optional(),
|
|
|
|
|
+ tgLang: z.string().optional(),
|
|
|
|
|
+ twoFactorEnable: z.boolean().optional(),
|
|
|
|
|
+ twoFactorToken: z.string().optional(),
|
|
|
|
|
+ xrayTemplateConfig: z.string().optional(),
|
|
|
|
|
+ subEnable: z.boolean().optional(),
|
|
|
|
|
+ subJsonEnable: z.boolean().optional(),
|
|
|
|
|
+ subTitle: z.string().optional(),
|
|
|
|
|
+ subSupportUrl: z.string().optional(),
|
|
|
|
|
+ subProfileUrl: z.string().optional(),
|
|
|
|
|
+ subAnnounce: z.string().optional(),
|
|
|
|
|
+ subEnableRouting: z.boolean().optional(),
|
|
|
|
|
+ subRoutingRules: z.string().optional(),
|
|
|
|
|
+ subListen: z.string().optional(),
|
|
|
|
|
+ subPort: z.number().optional(),
|
|
|
|
|
+ subPath: z.string().optional(),
|
|
|
|
|
+ subJsonPath: z.string().optional(),
|
|
|
|
|
+ subClashEnable: z.boolean().optional(),
|
|
|
|
|
+ subClashPath: z.string().optional(),
|
|
|
|
|
+ subDomain: z.string().optional(),
|
|
|
|
|
+ externalTrafficInformEnable: z.boolean().optional(),
|
|
|
|
|
+ externalTrafficInformURI: z.string().optional(),
|
|
|
|
|
+ restartXrayOnClientDisable: z.boolean().optional(),
|
|
|
|
|
+ subCertFile: z.string().optional(),
|
|
|
|
|
+ subKeyFile: z.string().optional(),
|
|
|
|
|
+ subUpdates: z.number().optional(),
|
|
|
|
|
+ subEncrypt: z.boolean().optional(),
|
|
|
|
|
+ subShowInfo: z.boolean().optional(),
|
|
|
|
|
+ subEmailInRemark: z.boolean().optional(),
|
|
|
|
|
+ subURI: z.string().optional(),
|
|
|
|
|
+ subJsonURI: z.string().optional(),
|
|
|
|
|
+ subClashURI: z.string().optional(),
|
|
|
|
|
+ subJsonFragment: z.string().optional(),
|
|
|
|
|
+ subJsonNoises: z.string().optional(),
|
|
|
|
|
+ subJsonMux: z.string().optional(),
|
|
|
|
|
+ subJsonRules: z.string().optional(),
|
|
|
|
|
+ timeLocation: z.string().optional(),
|
|
|
|
|
+ ldapEnable: z.boolean().optional(),
|
|
|
|
|
+ ldapHost: z.string().optional(),
|
|
|
|
|
+ ldapPort: z.number().optional(),
|
|
|
|
|
+ ldapUseTLS: z.boolean().optional(),
|
|
|
|
|
+ ldapBindDN: z.string().optional(),
|
|
|
|
|
+ ldapPassword: z.string().optional(),
|
|
|
|
|
+ ldapBaseDN: z.string().optional(),
|
|
|
|
|
+ ldapUserFilter: z.string().optional(),
|
|
|
|
|
+ ldapUserAttr: z.string().optional(),
|
|
|
|
|
+ ldapVlessField: z.string().optional(),
|
|
|
|
|
+ ldapSyncCron: z.string().optional(),
|
|
|
|
|
+ ldapFlagField: z.string().optional(),
|
|
|
|
|
+ ldapTruthyValues: z.string().optional(),
|
|
|
|
|
+ ldapInvertFlag: z.boolean().optional(),
|
|
|
|
|
+ ldapInboundTags: z.string().optional(),
|
|
|
|
|
+ ldapAutoCreate: z.boolean().optional(),
|
|
|
|
|
+ ldapAutoDelete: z.boolean().optional(),
|
|
|
|
|
+ ldapDefaultTotalGB: z.number().optional(),
|
|
|
|
|
+ ldapDefaultExpiryDays: z.number().optional(),
|
|
|
|
|
+ ldapDefaultLimitIP: z.number().optional(),
|
|
|
|
|
+ hasTgBotToken: z.boolean().optional(),
|
|
|
|
|
+ hasTwoFactorToken: z.boolean().optional(),
|
|
|
|
|
+ hasLdapPassword: z.boolean().optional(),
|
|
|
|
|
+ hasApiToken: z.boolean().optional(),
|
|
|
|
|
+ hasWarpSecret: z.boolean().optional(),
|
|
|
|
|
+ hasNordSecret: z.boolean().optional(),
|
|
|
|
|
+}).loose();
|
|
|
|
|
+
|
|
|
|
|
+export type AllSettingInput = z.infer<typeof AllSettingSchema>;
|