import BaseProvider from "./baseProvider.js"; import { BlockingResponse, HttpHeaders, OnBeforeRequestDetailsType, OnHeadersReceivedDetailsType, OnRequestDetailsType, } from "../types.js"; import { validSkylink } from "libskynet"; import { downloadSkylink, isDomain, isIp, requestProxies } from "../util.js"; import browser from "@lumeweb/webextension-polyfill"; export default class ServerProvider extends BaseProvider { async shouldHandleRequest( details: OnBeforeRequestDetailsType ): Promise { const dns = await this.resolveDns(details); if (dns && (isDomain(dns) || isIp(dns))) { return true; } return false; } async handleProxy(details: OnRequestDetailsType): Promise { const dns = await this.resolveDns(details); if (isIp(dns) || isDomain(dns)) { return { type: "http", host: dns, port: 80 }; } return false; } }