/** * Same-origin reverse proxy for the in-process BitTorrent tracker. * * HTTPS share pages cannot open mixed-content `ws://host:8000` — browser * WebTorrent only discovers peers via WebSocket trackers. Proxy: * WS /api/v1/public/bt-tracker → ws://127.0.0.1:{httpPort}/ * HTTP /api/v1/public/bt-tracker/* → http://127.0.0.1:{httpPort}/* */ import type { IncomingMessage, Server as HttpServer, ServerResponse } from 'node:http'; import type { Server as HttpsServer } from 'node:https'; import type { AppContext } from '../app-context.js'; export declare const BT_TRACKER_PUBLIC_PREFIX = "/api/v1/public/bt-tracker"; /** HTTP reverse proxy (announce / scrape / stats). */ export declare function handleBtTrackerPublicProxy(ctx: AppContext, req: IncomingMessage, res: ServerResponse, url: URL): Promise; /** * WebSocket upgrade proxy for browser WebTorrent peer discovery. * Client: wss://panel/api/v1/public/bt-tracker → ws://127.0.0.1:httpPort/ */ export declare function attachBtTrackerWebSocketProxy(server: HttpServer | HttpsServer, ctx: AppContext): void; /** * Browser-facing tracker announce URLs. * Prefer same-origin panel proxy (HTTPS-safe). Host comes from the request * (panel already reachable as hermes.ysk.hk:9287 etc.) — not a hard-coded IP. */ export declare function browserTrackerAnnounceUrls(reqHost: string, isHttps: boolean): string[]; //# sourceMappingURL=proxy.d.ts.map