@herbertgao/surgio
Version:
Generating rules for Surge, Clash, Quantumult like a PRO
388 lines (387 loc) • 15.7 kB
TypeScript
import { z } from 'zod';
export declare const ClashCoreValidator: z.ZodUnion<[z.ZodLiteral<"clash">, z.ZodLiteral<"clash.meta">, z.ZodLiteral<"stash">]>;
export declare const RemoteSnippetValidator: z.ZodObject<{
name: z.ZodString;
url: z.ZodString;
surgioSnippet: z.ZodOptional<z.ZodBoolean>;
}, "strip", z.ZodTypeAny, {
name: string;
url: string;
surgioSnippet?: boolean | undefined;
}, {
name: string;
url: string;
surgioSnippet?: boolean | undefined;
}>;
export declare const ClashConfigValidator: z.ZodObject<{
enableTuic: z.ZodOptional<z.ZodBoolean>;
enableShadowTls: z.ZodOptional<z.ZodBoolean>;
enableHysteria2: z.ZodOptional<z.ZodBoolean>;
enableVless: z.ZodOptional<z.ZodBoolean>;
clashCore: z.ZodOptional<z.ZodUnion<[z.ZodLiteral<"clash">, z.ZodLiteral<"clash.meta">, z.ZodLiteral<"stash">]>>;
}, "strip", z.ZodTypeAny, {
enableTuic?: boolean | undefined;
enableShadowTls?: boolean | undefined;
enableHysteria2?: boolean | undefined;
enableVless?: boolean | undefined;
clashCore?: "clash" | "clash.meta" | "stash" | undefined;
}, {
enableTuic?: boolean | undefined;
enableShadowTls?: boolean | undefined;
enableHysteria2?: boolean | undefined;
enableVless?: boolean | undefined;
clashCore?: "clash" | "clash.meta" | "stash" | undefined;
}>;
export declare const SurgeConfigValidator: z.ZodObject<{
resolveHostname: z.ZodOptional<z.ZodBoolean>;
vmessAEAD: z.ZodOptional<z.ZodBoolean>;
}, "strip", z.ZodTypeAny, {
resolveHostname?: boolean | undefined;
vmessAEAD?: boolean | undefined;
}, {
resolveHostname?: boolean | undefined;
vmessAEAD?: boolean | undefined;
}>;
export declare const SurfboardConfigValidator: z.ZodObject<{
vmessAEAD: z.ZodOptional<z.ZodBoolean>;
}, "strip", z.ZodTypeAny, {
vmessAEAD?: boolean | undefined;
}, {
vmessAEAD?: boolean | undefined;
}>;
export declare const QuantumultXConfigValidator: z.ZodObject<{
vmessAEAD: z.ZodOptional<z.ZodBoolean>;
}, "strip", z.ZodTypeAny, {
vmessAEAD?: boolean | undefined;
}, {
vmessAEAD?: boolean | undefined;
}>;
export declare const SurgioConfigValidator: z.ZodObject<{
artifacts: z.ZodArray<z.ZodObject<{
name: z.ZodString;
template: z.ZodString;
templateType: z.ZodDefault<z.ZodUnion<[z.ZodLiteral<"default">, z.ZodLiteral<"json">]>>;
extendTemplate: z.ZodOptional<z.ZodFunction<z.ZodTuple<[z.ZodUnknown], z.ZodUnknown>, z.ZodUnknown>>;
provider: z.ZodString;
categories: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
combineProviders: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
customParams: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
customFilters: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodFunction<z.ZodTuple<[], z.ZodUnknown>, z.ZodUnknown>>>;
destDir: z.ZodOptional<z.ZodString>;
downloadUrl: z.ZodOptional<z.ZodString>;
templateString: z.ZodOptional<z.ZodString>;
subscriptionUserInfoProvider: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
name: string;
template: string;
templateType: "default" | "json";
provider: string;
extendTemplate?: ((args_0: unknown, ...args: unknown[]) => unknown) | undefined;
categories?: string[] | undefined;
combineProviders?: string[] | undefined;
customParams?: Record<string, any> | undefined;
customFilters?: Record<string, (...args: unknown[]) => unknown> | undefined;
destDir?: string | undefined;
downloadUrl?: string | undefined;
templateString?: string | undefined;
subscriptionUserInfoProvider?: string | undefined;
}, {
name: string;
template: string;
provider: string;
templateType?: "default" | "json" | undefined;
extendTemplate?: ((args_0: unknown, ...args: unknown[]) => unknown) | undefined;
categories?: string[] | undefined;
combineProviders?: string[] | undefined;
customParams?: Record<string, any> | undefined;
customFilters?: Record<string, (...args: unknown[]) => unknown> | undefined;
destDir?: string | undefined;
downloadUrl?: string | undefined;
templateString?: string | undefined;
subscriptionUserInfoProvider?: string | undefined;
}>, "many">;
remoteSnippets: z.ZodOptional<z.ZodArray<z.ZodObject<{
name: z.ZodString;
url: z.ZodString;
surgioSnippet: z.ZodOptional<z.ZodBoolean>;
}, "strip", z.ZodTypeAny, {
name: string;
url: string;
surgioSnippet?: boolean | undefined;
}, {
name: string;
url: string;
surgioSnippet?: boolean | undefined;
}>, "many">>;
urlBase: z.ZodOptional<z.ZodString>;
upload: z.ZodOptional<z.ZodObject<{
prefix: z.ZodOptional<z.ZodString>;
region: z.ZodOptional<z.ZodString>;
endpoint: z.ZodOptional<z.ZodString>;
bucket: z.ZodString;
accessKeyId: z.ZodString;
accessKeySecret: z.ZodString;
}, "strip", z.ZodTypeAny, {
bucket: string;
accessKeyId: string;
accessKeySecret: string;
endpoint?: string | undefined;
prefix?: string | undefined;
region?: string | undefined;
}, {
bucket: string;
accessKeyId: string;
accessKeySecret: string;
endpoint?: string | undefined;
prefix?: string | undefined;
region?: string | undefined;
}>>;
binPath: z.ZodOptional<z.ZodObject<{
shadowsocksr: z.ZodString;
}, "strip", z.ZodTypeAny, {
shadowsocksr: string;
}, {
shadowsocksr: string;
}>>;
flags: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodString, z.ZodType<RegExp, z.ZodTypeDef, RegExp>, z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodType<RegExp, z.ZodTypeDef, RegExp>]>, "many">]>>>;
surgeConfig: z.ZodOptional<z.ZodObject<{
resolveHostname: z.ZodOptional<z.ZodBoolean>;
vmessAEAD: z.ZodOptional<z.ZodBoolean>;
}, "strip", z.ZodTypeAny, {
resolveHostname?: boolean | undefined;
vmessAEAD?: boolean | undefined;
}, {
resolveHostname?: boolean | undefined;
vmessAEAD?: boolean | undefined;
}>>;
surfboardConfig: z.ZodOptional<z.ZodObject<{
vmessAEAD: z.ZodOptional<z.ZodBoolean>;
}, "strip", z.ZodTypeAny, {
vmessAEAD?: boolean | undefined;
}, {
vmessAEAD?: boolean | undefined;
}>>;
quantumultXConfig: z.ZodOptional<z.ZodObject<{
vmessAEAD: z.ZodOptional<z.ZodBoolean>;
}, "strip", z.ZodTypeAny, {
vmessAEAD?: boolean | undefined;
}, {
vmessAEAD?: boolean | undefined;
}>>;
clashConfig: z.ZodOptional<z.ZodObject<{
enableTuic: z.ZodOptional<z.ZodBoolean>;
enableShadowTls: z.ZodOptional<z.ZodBoolean>;
enableHysteria2: z.ZodOptional<z.ZodBoolean>;
enableVless: z.ZodOptional<z.ZodBoolean>;
clashCore: z.ZodOptional<z.ZodUnion<[z.ZodLiteral<"clash">, z.ZodLiteral<"clash.meta">, z.ZodLiteral<"stash">]>>;
}, "strip", z.ZodTypeAny, {
enableTuic?: boolean | undefined;
enableShadowTls?: boolean | undefined;
enableHysteria2?: boolean | undefined;
enableVless?: boolean | undefined;
clashCore?: "clash" | "clash.meta" | "stash" | undefined;
}, {
enableTuic?: boolean | undefined;
enableShadowTls?: boolean | undefined;
enableHysteria2?: boolean | undefined;
enableVless?: boolean | undefined;
clashCore?: "clash" | "clash.meta" | "stash" | undefined;
}>>;
gateway: z.ZodOptional<z.ZodObject<{
accessToken: z.ZodOptional<z.ZodString>;
viewerToken: z.ZodOptional<z.ZodString>;
auth: z.ZodOptional<z.ZodBoolean>;
cookieMaxAge: z.ZodOptional<z.ZodNumber>;
useCacheOnError: z.ZodOptional<z.ZodBoolean>;
passRequestUserAgent: z.ZodOptional<z.ZodBoolean>;
}, "strip", z.ZodTypeAny, {
accessToken?: string | undefined;
viewerToken?: string | undefined;
auth?: boolean | undefined;
cookieMaxAge?: number | undefined;
useCacheOnError?: boolean | undefined;
passRequestUserAgent?: boolean | undefined;
}, {
accessToken?: string | undefined;
viewerToken?: string | undefined;
auth?: boolean | undefined;
cookieMaxAge?: number | undefined;
useCacheOnError?: boolean | undefined;
passRequestUserAgent?: boolean | undefined;
}>>;
checkHostname: z.ZodOptional<z.ZodBoolean>;
resolveHostname: z.ZodOptional<z.ZodBoolean>;
proxyTestUrl: z.ZodOptional<z.ZodString>;
proxyTestInterval: z.ZodOptional<z.ZodNumber>;
internetTestUrl: z.ZodOptional<z.ZodString>;
internetTestInterval: z.ZodOptional<z.ZodNumber>;
customFilters: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodType<(nodeConfig: import("../types").PossibleNodeConfigType) => boolean, z.ZodTypeDef, (nodeConfig: import("../types").PossibleNodeConfigType) => boolean>, z.ZodType<{
readonly filter: <T extends import("../types").PossibleNodeConfigType>(nodeList: ReadonlyArray<T>) => ReadonlyArray<T>;
readonly supportSort: true;
}, z.ZodTypeDef, {
readonly filter: <T extends import("../types").PossibleNodeConfigType>(nodeList: ReadonlyArray<T>) => ReadonlyArray<T>;
readonly supportSort: true;
}>]>>>;
customParams: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
analytics: z.ZodOptional<z.ZodBoolean>;
cache: z.ZodOptional<z.ZodObject<{
type: z.ZodOptional<z.ZodUnion<[z.ZodLiteral<"redis">, z.ZodLiteral<"default">]>>;
redisUrl: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
type?: "default" | "redis" | undefined;
redisUrl?: string | undefined;
}, {
type?: "default" | "redis" | undefined;
redisUrl?: string | undefined;
}>>;
}, "strip", z.ZodTypeAny, {
artifacts: {
name: string;
template: string;
templateType: "default" | "json";
provider: string;
extendTemplate?: ((args_0: unknown, ...args: unknown[]) => unknown) | undefined;
categories?: string[] | undefined;
combineProviders?: string[] | undefined;
customParams?: Record<string, any> | undefined;
customFilters?: Record<string, (...args: unknown[]) => unknown> | undefined;
destDir?: string | undefined;
downloadUrl?: string | undefined;
templateString?: string | undefined;
subscriptionUserInfoProvider?: string | undefined;
}[];
customParams?: Record<string, any> | undefined;
customFilters?: Record<string, ((nodeConfig: import("../types").PossibleNodeConfigType) => boolean) | {
readonly filter: <T extends import("../types").PossibleNodeConfigType>(nodeList: ReadonlyArray<T>) => ReadonlyArray<T>;
readonly supportSort: true;
}> | undefined;
resolveHostname?: boolean | undefined;
surgeConfig?: {
resolveHostname?: boolean | undefined;
vmessAEAD?: boolean | undefined;
} | undefined;
surfboardConfig?: {
vmessAEAD?: boolean | undefined;
} | undefined;
quantumultXConfig?: {
vmessAEAD?: boolean | undefined;
} | undefined;
clashConfig?: {
enableTuic?: boolean | undefined;
enableShadowTls?: boolean | undefined;
enableHysteria2?: boolean | undefined;
enableVless?: boolean | undefined;
clashCore?: "clash" | "clash.meta" | "stash" | undefined;
} | undefined;
binPath?: {
shadowsocksr: string;
} | undefined;
remoteSnippets?: {
name: string;
url: string;
surgioSnippet?: boolean | undefined;
}[] | undefined;
urlBase?: string | undefined;
upload?: {
bucket: string;
accessKeyId: string;
accessKeySecret: string;
endpoint?: string | undefined;
prefix?: string | undefined;
region?: string | undefined;
} | undefined;
flags?: Record<string, string | RegExp | (string | RegExp)[]> | undefined;
gateway?: {
accessToken?: string | undefined;
viewerToken?: string | undefined;
auth?: boolean | undefined;
cookieMaxAge?: number | undefined;
useCacheOnError?: boolean | undefined;
passRequestUserAgent?: boolean | undefined;
} | undefined;
checkHostname?: boolean | undefined;
proxyTestUrl?: string | undefined;
proxyTestInterval?: number | undefined;
internetTestUrl?: string | undefined;
internetTestInterval?: number | undefined;
analytics?: boolean | undefined;
cache?: {
type?: "default" | "redis" | undefined;
redisUrl?: string | undefined;
} | undefined;
}, {
artifacts: {
name: string;
template: string;
provider: string;
templateType?: "default" | "json" | undefined;
extendTemplate?: ((args_0: unknown, ...args: unknown[]) => unknown) | undefined;
categories?: string[] | undefined;
combineProviders?: string[] | undefined;
customParams?: Record<string, any> | undefined;
customFilters?: Record<string, (...args: unknown[]) => unknown> | undefined;
destDir?: string | undefined;
downloadUrl?: string | undefined;
templateString?: string | undefined;
subscriptionUserInfoProvider?: string | undefined;
}[];
customParams?: Record<string, any> | undefined;
customFilters?: Record<string, ((nodeConfig: import("../types").PossibleNodeConfigType) => boolean) | {
readonly filter: <T extends import("../types").PossibleNodeConfigType>(nodeList: ReadonlyArray<T>) => ReadonlyArray<T>;
readonly supportSort: true;
}> | undefined;
resolveHostname?: boolean | undefined;
surgeConfig?: {
resolveHostname?: boolean | undefined;
vmessAEAD?: boolean | undefined;
} | undefined;
surfboardConfig?: {
vmessAEAD?: boolean | undefined;
} | undefined;
quantumultXConfig?: {
vmessAEAD?: boolean | undefined;
} | undefined;
clashConfig?: {
enableTuic?: boolean | undefined;
enableShadowTls?: boolean | undefined;
enableHysteria2?: boolean | undefined;
enableVless?: boolean | undefined;
clashCore?: "clash" | "clash.meta" | "stash" | undefined;
} | undefined;
binPath?: {
shadowsocksr: string;
} | undefined;
remoteSnippets?: {
name: string;
url: string;
surgioSnippet?: boolean | undefined;
}[] | undefined;
urlBase?: string | undefined;
upload?: {
bucket: string;
accessKeyId: string;
accessKeySecret: string;
endpoint?: string | undefined;
prefix?: string | undefined;
region?: string | undefined;
} | undefined;
flags?: Record<string, string | RegExp | (string | RegExp)[]> | undefined;
gateway?: {
accessToken?: string | undefined;
viewerToken?: string | undefined;
auth?: boolean | undefined;
cookieMaxAge?: number | undefined;
useCacheOnError?: boolean | undefined;
passRequestUserAgent?: boolean | undefined;
} | undefined;
checkHostname?: boolean | undefined;
proxyTestUrl?: string | undefined;
proxyTestInterval?: number | undefined;
internetTestUrl?: string | undefined;
internetTestInterval?: number | undefined;
analytics?: boolean | undefined;
cache?: {
type?: "default" | "redis" | undefined;
redisUrl?: string | undefined;
} | undefined;
}>;