@herbertgao/surgio
Version:
Generating rules for Surge, Clash, Quantumult like a PRO
77 lines (76 loc) • 5 kB
TypeScript
export type { CommandConfigBeforeNormalize as SurgioConfig } from './types';
export * from './configurables';
export { default as httpClient } from './utils/http-client';
export { unifiedCache as cache } from './utils/cache';
export { extendOutbounds, extendEndpoints, createExtendFunction, combineExtendFunctions, } from './generator';
export declare const utils: {
readonly isHeroku: () => boolean;
readonly isNow: () => boolean;
readonly isVercel: () => boolean;
readonly isGitHubActions: () => boolean;
readonly isGitLabCI: () => boolean;
readonly isRailway: () => boolean;
readonly isNetlify: () => boolean;
readonly isAWS: () => boolean;
readonly isFlyIO: () => boolean;
readonly isAWSLambda: () => boolean;
readonly isSurgeIOS: (ua: string | undefined, version?: string) => boolean;
readonly isSurgeMac: (ua: string | undefined, version?: string) => boolean;
readonly isClash: (ua: string | undefined, version?: string) => boolean;
readonly isClashVerge: (ua: string | undefined, version?: string) => boolean;
readonly isClashMetaForAndroid: (ua: string | undefined, version?: string) => boolean;
readonly isStash: (ua: string | undefined, version?: string) => boolean;
readonly isQuantumultX: (ua: string | undefined, version?: string) => boolean;
readonly isShadowrocket: (ua: string | undefined, version?: string) => boolean;
readonly isLoon: (ua: string | undefined, version?: string) => boolean;
readonly validateFilter: (filter: unknown) => boolean;
readonly applyFilter: <T extends import("./types").PossibleNodeConfigType>(nodeList: ReadonlyArray<T>, filter?: import("./types").NodeFilterType | import("./types").SortedNodeFilterType) => ReadonlyArray<T>;
readonly mergeFilters: (filters: Array<import("./types").NodeFilterType>, isStrict?: boolean) => import("./types").NodeFilterType;
readonly useKeywords: (keywords: Array<string>, isStrict?: boolean) => import("./types").NodeFilterType;
readonly discardKeywords: (keywords: Array<string>, isStrict?: boolean) => import("./types").NodeFilterType;
readonly useRegexp: (regexp: RegExp) => import("./types").NodeFilterType;
readonly matchGlob: (str: string, glob: string) => boolean;
readonly useGlob: (glob: string) => import("./types").NodeFilterType;
readonly discardGlob: (glob: string) => import("./types").NodeFilterType;
readonly useProviders: (keywords: Array<string>, isStrict?: boolean) => import("./types").NodeFilterType;
readonly discardProviders: (keywords: Array<string>, isStrict?: boolean) => import("./types").NodeFilterType;
readonly useSortedKeywords: (keywords: Array<string>) => import("./types").SortedNodeFilterType;
readonly mergeSortedFilters: (filters: Array<import("./types").NodeFilterType>) => import("./types").SortedNodeFilterType;
readonly reverseFilter: (filter: import("./types").NodeFilterType) => import("./types").NodeFilterType;
readonly mergeReversedFilters: (filters: Array<import("./types").NodeFilterType>, isStrict?: boolean) => import("./types").NodeFilterType;
readonly netflixFilter: import("./types").NodeFilterType;
readonly usFilter: import("./types").NodeFilterType;
readonly hkFilter: import("./types").NodeFilterType;
readonly japanFilter: import("./types").NodeFilterType;
readonly koreaFilter: import("./types").NodeFilterType;
readonly singaporeFilter: import("./types").NodeFilterType;
readonly germanyFilter: import("./types").NodeFilterType;
readonly taiwanFilter: import("./types").NodeFilterType;
readonly chinaBackFilter: import("./types").NodeFilterType;
readonly chinaOutFilter: import("./types").NodeFilterType;
readonly youtubePremiumFilter: import("./types").NodeFilterType;
readonly shadowsocksFilter: import("./types").NodeFilterType;
readonly shadowsocksrFilter: import("./types").NodeFilterType;
readonly vmessFilter: import("./types").NodeFilterType;
readonly v2rayFilter: import("./types").NodeFilterType;
readonly snellFilter: import("./types").NodeFilterType;
readonly tuicFilter: import("./types").NodeFilterType;
readonly httpFilter: import("./types").NodeFilterType;
readonly httpsFilter: import("./types").NodeFilterType;
readonly trojanFilter: import("./types").NodeFilterType;
readonly socks5Filter: import("./types").NodeFilterType;
readonly wireguardFilter: import("./types").NodeFilterType;
readonly hysteria2Filter: import("./types").NodeFilterType;
readonly vlessFilter: import("./types").NodeFilterType;
};
export declare const categories: {
readonly SNIPPET: "Snippet";
readonly SURGE: "Surge";
readonly QUANTUMULT_X: "Quantumult X";
readonly QUANTUMULT_X_SERVER: "Quantumult X Server";
readonly QUANTUMULT_X_FILTER: "Quantumult X Filter";
readonly QUANTUMULT_X_REWRITE: "Quantumult X Rewrite";
readonly CLASH: "Clash";
readonly LOON: "Loon";
readonly SURFBOARD: "Surfboard";
};