UNPKG

@herbertgao/surgio

Version:

Generating rules for Surge, Clash, Quantumult like a PRO

103 lines (102 loc) 7.78 kB
import { EventEmitter } from 'events'; import _ from 'lodash'; import { Environment } from 'nunjucks'; import { GetNodeListParams, PossibleProviderType } from '../provider'; import { ArtifactConfig, ArtifactConfigInput, CommandConfig, PossibleNodeConfigType, RemoteSnippet } from '../types'; export interface ArtifactOptions { readonly remoteSnippetList?: ReadonlyArray<RemoteSnippet>; readonly templateEngine?: Environment; } export type ExtendableRenderContext = Record<string, string>; export declare class Artifact extends EventEmitter { surgioConfig: CommandConfig; private options; initProgress: number; artifact: ArtifactConfig; providerNameList: ReadonlyArray<string>; nodeConfigListMap: Map<string, ReadonlyArray<PossibleNodeConfigType>>; providerMap: Map<string, PossibleProviderType>; nodeList: PossibleNodeConfigType[]; private customFilters; private netflixFilter; private youtubePremiumFilter; constructor(surgioConfig: CommandConfig, artifactConfig: ArtifactConfigInput, options?: ArtifactOptions); get isReady(): boolean; getRenderContext(extendRenderContext?: ExtendableRenderContext): { readonly netflixFilter: NonNullable<((nodeConfig: PossibleNodeConfigType) => boolean) | { readonly filter: <T extends PossibleNodeConfigType>(nodeList: ReadonlyArray<T>) => ReadonlyArray<T>; readonly supportSort: true; } | undefined>; readonly youtubePremiumFilter: NonNullable<((nodeConfig: PossibleNodeConfigType) => boolean) | { readonly filter: <T extends PossibleNodeConfigType>(nodeList: ReadonlyArray<T>) => ReadonlyArray<T>; readonly supportSort: true; } | undefined>; readonly customFilters: Record<string, ((nodeConfig: PossibleNodeConfigType) => boolean) | { readonly filter: <T extends PossibleNodeConfigType>(nodeList: ReadonlyArray<T>) => ReadonlyArray<T>; readonly supportSort: true; }>; readonly customParams: Readonly<Record<string, any>>; 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 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; readonly proxyTestUrl: string | undefined; readonly proxyTestInterval: number | undefined; readonly internetTestUrl: string | undefined; readonly internetTestInterval: number | undefined; readonly downloadUrl: string; readonly snippet: (filePath: string) => RemoteSnippet; readonly remoteSnippets: _.Dictionary<RemoteSnippet>; readonly nodeList: PossibleNodeConfigType[]; readonly provider: string; readonly providerName: string; readonly artifactName: string; readonly getDownloadUrl: (name: string) => string; readonly getUrl: (p: string) => string; readonly getNodeNames: (list: ReadonlyArray<PossibleNodeConfigType>, filter?: import("../types").NodeFilterType | import("../types").SortedNodeFilterType, separator?: string) => string; readonly getClashNodes: (list: ReadonlyArray<PossibleNodeConfigType>, filter?: import("../types").NodeFilterType | import("../types").SortedNodeFilterType) => Record<string, any>[]; readonly getClashNodeNames: (list: ReadonlyArray<PossibleNodeConfigType>, filter?: import("../types").NodeFilterType | import("../types").SortedNodeFilterType, prependNodeNames?: ReadonlyArray<string>, defaultNodeNames?: ReadonlyArray<string>) => ReadonlyArray<string>; readonly getSingboxNodes: (list: ReadonlyArray<PossibleNodeConfigType>, filter?: import("../types").NodeFilterType | import("../types").SortedNodeFilterType) => Record<string, any>[]; readonly getSingboxNodeNames: (list: ReadonlyArray<PossibleNodeConfigType>, filter?: import("../types").NodeFilterType | import("../types").SortedNodeFilterType) => ReadonlyArray<string>; readonly getSurgeNodes: (nodeList: ReadonlyArray<PossibleNodeConfigType>, filter?: import("../types").NodeFilterType | import("../types").SortedNodeFilterType) => string; readonly getSurgeNodeNames: (nodeList: ReadonlyArray<PossibleNodeConfigType>, filter?: import("../types").NodeFilterType | import("../types").SortedNodeFilterType) => string; readonly getSurgeWireguardNodes: (nodeList: ReadonlyArray<PossibleNodeConfigType>) => string; readonly getSurfboardNodes: (list: ReadonlyArray<PossibleNodeConfigType>, filter?: import("../types").NodeFilterType | import("../types").SortedNodeFilterType) => string; readonly getSurfboardNodeNames: (list: ReadonlyArray<PossibleNodeConfigType>, filter?: import("../types").NodeFilterType | import("../types").SortedNodeFilterType) => string; readonly getShadowsocksNodes: (list: ReadonlyArray<import("../types").ShadowsocksNodeConfig>, groupName?: string) => string; readonly getShadowsocksNodesJSON: (list: ReadonlyArray<import("../types").ShadowsocksNodeConfig>) => string; readonly getShadowsocksrNodes: (list: ReadonlyArray<import("../types").ShadowsocksrNodeConfig>, groupName: string) => string; readonly getV2rayNNodes: (list: ReadonlyArray<import("../types").VmessNodeConfig>) => string; readonly getQuantumultXNodes: (nodeList: ReadonlyArray<PossibleNodeConfigType>, filter?: import("../types").NodeFilterType | import("../types").SortedNodeFilterType) => string; readonly getQuantumultXNodeNames: (nodeList: ReadonlyArray<PossibleNodeConfigType>, filter?: import("../types").NodeFilterType | import("../types").SortedNodeFilterType) => string; readonly getLoonNodes: (list: ReadonlyArray<PossibleNodeConfigType>, filter?: import("../types").NodeFilterType | import("../types").SortedNodeFilterType) => string; readonly getLoonNodeNames: (list: ReadonlyArray<PossibleNodeConfigType>, filter?: import("../types").NodeFilterType | import("../types").SortedNodeFilterType, separator?: string) => string; readonly toUrlSafeBase64: (str: string) => string; readonly toBase64: (str: string) => string; readonly encodeURIComponent: typeof encodeURIComponent; }; init(params?: { getNodeListParams?: GetNodeListParams; }): Promise<this>; getMergedCustomParams(extendableCustomParams?: Record<string, any>): Readonly<Record<string, any>>; render(templateEngine?: Environment, extendRenderContext?: ExtendableRenderContext): string; private providerMapper; }