/// /// import "./global"; export * from "./stream"; import Accept from "./accept/accept"; import LightAccept from "./accept/light.accept"; import Socks5Accept from "./accept/socks5.accept"; import HttpAccept from "./accept/http.accept"; import AigoAccept from "./accept/aigo.accept"; import Connect, { Callback } from "./connect/connect"; import LightConnect from "./connect/light.connect"; import Socks5Connect from "./connect/socks5.connect"; import HttpConnect from "./connect/http.connect"; import AigoConnect from "./connect/aigo.connect"; import DirectConnect from "./connect/direct/direct.connect"; import WSConnect from "./connect/ws.connect"; import ForwardHttpConnect from "./connect/forward.http.connect"; import AcceptFactor from "./accept"; import ConnectFactor, { RequestData } from "./connect"; import { Callback as ConnectCallback } from "./connect/connect"; import { Proxy, CreateCallback, Options, AcceptData, AuthData, StreamTransport, PeerOptions } from "./types"; import * as adapter from "./adapter"; import EventEmitter from "eventemitter3"; import Cipher from "./core/cipher"; import * as address from "./stream/utils/address"; import * as check from "./utils/check"; import ua from "./utils/ua"; import * as password from "./core/password"; import logger from "./core/logger"; import Peer from "./stream/peer/peer"; import WsAccept from "./accept/ws.accept"; export { logger }; import { RequestInfo, RequestInit, net, Agent, Response } from "./adapter"; import TransformSocket from "./stream/transform.socket"; export { Request, RequestInit, RequestInfo, fetch, WebSocket, Response } from "./adapter"; export { Buffer } from "buffer"; export type EventName = StreamTransport & { request: (data: RequestData) => void; auth: (data: AuthData) => void; accept: (data: AcceptData) => void; error: (err: Error) => void; open: () => void; }; export * from "./stream"; export { IPipe, password, Accept, Connect, AigoConnect, AigoAccept, LightAccept, Socks5Accept, HttpAccept, // LightConnect, Socks5Connect, HttpConnect, ForwardHttpConnect, DirectConnect, WSConnect, Cipher, check, ua, address, ConnectCallback, EventEmitter, adapter, }; /** * 本地代理服务 */ export default class IPipe extends EventEmitter { private readonly options?; static Accept: { LightAccept: typeof LightAccept; Socks5Accept: typeof Socks5Accept; HttpAccept: typeof HttpAccept; Accept: typeof Accept; AigoAccept: typeof AigoAccept; WsAccept: typeof WsAccept; }; static Connect: { LightConnect: typeof LightConnect; Socks5Connect: typeof Socks5Connect; HttpConnect: typeof HttpConnect; DirectConnect: typeof DirectConnect; Connect: typeof Connect; AigoConnect: typeof AigoConnect; }; connectFactor: ConnectFactor; acceptFactor: AcceptFactor; constructor(options?: Options | undefined); close(): void; setTimeout(timeout?: number): void; get peer(): string; /** * 创建镜像服务(只支持http/https请求镜像,需要把目标域名配置到hosts文件 指定到运行主机ip, 如: 127.0.0.1 hub.docker.io) * @param port * @param host * @param callback * @returns */ createAcceptImageServer(port?: number, host?: string, callback?: CreateCallback): Promise; /** * 创建连接接入服务 * @param port 代理端口, 默认4321 * @param host 代理ip, 默认0.0.0.0,代表所有ip都可以访问 */ createAcceptServer(port?: number, host?: string, callback?: CreateCallback): Promise; createPeerAcceptServer(peerOptions: PeerOptions, callback?: (peer: Peer) => void): Promise; /** * 注册本地接自定义接入协议, 原生支持http和socks5代理协议 * 协议继承类Accept * @param accept */ registerAccept(accept: Accept): this; /** * 注册连接远程代理服务器自定义协议, 原生支持http,socks5协议,forward.http http转发协议 * 协议继承类 Connect * @param connect */ registerConnect(connect: Connect): this; /** * 注册远程代理服务器信息 * @param proxy */ registerProxy(proxy: Proxy): boolean; /** * 获取所有代理列表 */ getProxys(): Proxy[]; /** * 注册直接连接的域名, 无需走代理 * @param domain */ registerDirectDomain(domain: string): this; websocket(url: string, agent: Agent): TransformSocket; connect({ host, port }: { host: string; port: number; }, agent: Agent, callback: Callback): void; fetch(input: RequestInfo, init?: RequestInit): Promise; private connectByAigo; }