UNPKG

6.04 kBSource Map (JSON)View Raw
1{"version":3,"sources":["../../src/utils/parseProxyParam.js"],"names":["isProxyList","proxy","pathname","isProxyHub","isProxyTxt","test","getProxyType","parseProxyParam","proxyStr","proxyType","path","startsWith","process","cwd","substr","proxies","require","error","fs","readFileSync","encoding","flag","map","p","provider","urlObj","options","Object","fromEntries","searchParams","search","baseURL","toString","client","split","params","args","host","port","username","password","proxyUrl","disabled"],"mappings":"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","sourcesContent":["import fs from 'fs';\n\nimport { parseProxies } from './parseProxies';\nimport { tryURLparse } from './tryURLparse';\n\nexport const isProxyList = (proxy) => (tryURLparse(proxy) || {}).pathname !== '/';\nexport const isProxyHub = isProxyList; // TODO: Добавлено для поддержки старых версий. Удалить, если не используется\n\nexport const isProxyTxt = (proxy) =>\n /^([^:/@]+)?(:[0-9]{0,4})?(:[^:/@]+)?(:[^:/@]+)?(\\?[^:/=?@]+=[^:/=?@]+)*$/gm.test(proxy);\n\nexport const getProxyType = (proxy) => {\n if (!proxy) return null;\n if (proxy[0] === '.' || proxy[0] === '/') return 'file';\n if (isProxyTxt(proxy)) return 'txt';\n if (isProxyList(proxy)) return 'list';\n // TODO: добавить проверку на type: proxy\n // Если тип не распознан, возвращать null\n return 'proxy';\n};\n\nexport const parseProxyParam = (proxyStr) => {\n const proxyType = getProxyType(proxyStr);\n if (proxyType === 'file') {\n const path = proxyStr.startsWith('.') ? `${process.cwd()}${proxyStr.substr(1)}` : proxyStr;\n let proxies = '';\n\n try {\n // eslint-disable-next-line import/no-dynamic-require\n proxies = require(path).default;\n } catch (error) {\n proxies = fs.readFileSync(path, { encoding: 'utf8', flag: 'r' });\n }\n\n return { proxies };\n }\n if (proxyType === 'proxy') {\n const proxies = parseProxies(proxyStr).map((p) => ({\n provider: 'env',\n ...p,\n }));\n return { proxies };\n }\n if (proxyType === 'list') {\n const urlObj = tryURLparse(proxyStr);\n const options = Object.fromEntries(urlObj.searchParams);\n urlObj.search = '';\n const baseURL = urlObj.toString();\n\n return {\n client: {\n baseURL,\n options,\n },\n };\n }\n if (proxyType === 'txt') {\n const [params, args] = proxyStr.split('?');\n const [host = '', port = '', username = '', password = ''] = params.split(':');\n\n let proxyUrl = `http://${username}:${password}@${host}:${port}`;\n if (!port) proxyUrl = `http://${username}:${password}@${host}/`;\n if (!password) proxyUrl = `http://${username}@${host}:${port}/`;\n if (!username && !password) proxyUrl = `http://${host}:${port}/`;\n if (!password && !port) proxyUrl = `http://${username}@${host}/`;\n if (!username && !password && !port) proxyUrl = `http://${host}/`;\n\n if (args) proxyUrl += `?${args}`;\n\n const proxies = parseProxies(proxyUrl).map((p) => ({\n provider: 'env',\n ...p,\n }));\n return { proxies };\n }\n return {\n disabled: true,\n };\n};\n\nexport default parseProxyParam;\n"],"file":"parseProxyParam.js"}
\No newline at end of file