Tons of Solutions Engineering work done today for the rest of the CS team! Headway, Howard Hanna, Engels, Brighton, etc. Also completed Datasnippers auth flow and worked on Anthology's script. Cloned Anthology's courses (900..) and will clone Full Story on Monday.
This commit is contained in:
134
Scripts/node_modules/proxy-agent/dist/index.js
generated
vendored
Normal file
134
Scripts/node_modules/proxy-agent/dist/index.js
generated
vendored
Normal file
@ -0,0 +1,134 @@
|
||||
"use strict";
|
||||
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
var desc = Object.getOwnPropertyDescriptor(m, k);
|
||||
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
||||
desc = { enumerable: true, get: function() { return m[k]; } };
|
||||
}
|
||||
Object.defineProperty(o, k2, desc);
|
||||
}) : (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
o[k2] = m[k];
|
||||
}));
|
||||
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
||||
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
||||
}) : function(o, v) {
|
||||
o["default"] = v;
|
||||
});
|
||||
var __importStar = (this && this.__importStar) || function (mod) {
|
||||
if (mod && mod.__esModule) return mod;
|
||||
var result = {};
|
||||
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
||||
__setModuleDefault(result, mod);
|
||||
return result;
|
||||
};
|
||||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.ProxyAgent = exports.proxies = void 0;
|
||||
const http = __importStar(require("http"));
|
||||
const https = __importStar(require("https"));
|
||||
const url_1 = require("url");
|
||||
const lru_cache_1 = __importDefault(require("lru-cache"));
|
||||
const agent_base_1 = require("agent-base");
|
||||
const debug_1 = __importDefault(require("debug"));
|
||||
const proxy_from_env_1 = require("proxy-from-env");
|
||||
const pac_proxy_agent_1 = require("pac-proxy-agent");
|
||||
const http_proxy_agent_1 = require("http-proxy-agent");
|
||||
const https_proxy_agent_1 = require("https-proxy-agent");
|
||||
const socks_proxy_agent_1 = require("socks-proxy-agent");
|
||||
const debug = (0, debug_1.default)('proxy-agent');
|
||||
const PROTOCOLS = [
|
||||
...http_proxy_agent_1.HttpProxyAgent.protocols,
|
||||
...socks_proxy_agent_1.SocksProxyAgent.protocols,
|
||||
...pac_proxy_agent_1.PacProxyAgent.protocols,
|
||||
];
|
||||
/**
|
||||
* Supported proxy types.
|
||||
*/
|
||||
exports.proxies = {
|
||||
http: [http_proxy_agent_1.HttpProxyAgent, https_proxy_agent_1.HttpsProxyAgent],
|
||||
https: [http_proxy_agent_1.HttpProxyAgent, https_proxy_agent_1.HttpsProxyAgent],
|
||||
socks: [socks_proxy_agent_1.SocksProxyAgent, socks_proxy_agent_1.SocksProxyAgent],
|
||||
socks4: [socks_proxy_agent_1.SocksProxyAgent, socks_proxy_agent_1.SocksProxyAgent],
|
||||
socks4a: [socks_proxy_agent_1.SocksProxyAgent, socks_proxy_agent_1.SocksProxyAgent],
|
||||
socks5: [socks_proxy_agent_1.SocksProxyAgent, socks_proxy_agent_1.SocksProxyAgent],
|
||||
socks5h: [socks_proxy_agent_1.SocksProxyAgent, socks_proxy_agent_1.SocksProxyAgent],
|
||||
'pac+data': [pac_proxy_agent_1.PacProxyAgent, pac_proxy_agent_1.PacProxyAgent],
|
||||
'pac+file': [pac_proxy_agent_1.PacProxyAgent, pac_proxy_agent_1.PacProxyAgent],
|
||||
'pac+ftp': [pac_proxy_agent_1.PacProxyAgent, pac_proxy_agent_1.PacProxyAgent],
|
||||
'pac+http': [pac_proxy_agent_1.PacProxyAgent, pac_proxy_agent_1.PacProxyAgent],
|
||||
'pac+https': [pac_proxy_agent_1.PacProxyAgent, pac_proxy_agent_1.PacProxyAgent],
|
||||
};
|
||||
function isValidProtocol(v) {
|
||||
return PROTOCOLS.includes(v);
|
||||
}
|
||||
/**
|
||||
* Uses the appropriate `Agent` subclass based off of the "proxy"
|
||||
* environment variables that are currently set.
|
||||
*
|
||||
* An LRU cache is used, to prevent unnecessary creation of proxy
|
||||
* `http.Agent` instances.
|
||||
*/
|
||||
class ProxyAgent extends agent_base_1.Agent {
|
||||
constructor(opts) {
|
||||
super(opts);
|
||||
/**
|
||||
* Cache for `Agent` instances.
|
||||
*/
|
||||
this.cache = new lru_cache_1.default({ max: 20 });
|
||||
debug('Creating new ProxyAgent instance: %o', opts);
|
||||
this.connectOpts = opts;
|
||||
this.httpAgent = opts?.httpAgent || new http.Agent(opts);
|
||||
this.httpsAgent =
|
||||
opts?.httpsAgent || new https.Agent(opts);
|
||||
this.getProxyForUrl = opts?.getProxyForUrl || proxy_from_env_1.getProxyForUrl;
|
||||
}
|
||||
async connect(req, opts) {
|
||||
const { secureEndpoint } = opts;
|
||||
const isWebSocket = req.getHeader('upgrade') === 'websocket';
|
||||
const protocol = secureEndpoint
|
||||
? isWebSocket
|
||||
? 'wss:'
|
||||
: 'https:'
|
||||
: isWebSocket
|
||||
? 'ws:'
|
||||
: 'http:';
|
||||
const host = req.getHeader('host');
|
||||
const url = new url_1.URL(req.path, `${protocol}//${host}`).href;
|
||||
const proxy = this.getProxyForUrl(url);
|
||||
if (!proxy) {
|
||||
debug('Proxy not enabled for URL: %o', url);
|
||||
return secureEndpoint ? this.httpsAgent : this.httpAgent;
|
||||
}
|
||||
debug('Request URL: %o', url);
|
||||
debug('Proxy URL: %o', proxy);
|
||||
// attempt to get a cached `http.Agent` instance first
|
||||
const cacheKey = `${protocol}+${proxy}`;
|
||||
let agent = this.cache.get(cacheKey);
|
||||
if (!agent) {
|
||||
const proxyUrl = new url_1.URL(proxy);
|
||||
const proxyProto = proxyUrl.protocol.replace(':', '');
|
||||
if (!isValidProtocol(proxyProto)) {
|
||||
throw new Error(`Unsupported protocol for proxy URL: ${proxy}`);
|
||||
}
|
||||
const ctor = exports.proxies[proxyProto][secureEndpoint || isWebSocket ? 1 : 0];
|
||||
// @ts-expect-error meh…
|
||||
agent = new ctor(proxy, this.connectOpts);
|
||||
this.cache.set(cacheKey, agent);
|
||||
}
|
||||
else {
|
||||
debug('Cache hit for proxy URL: %o', proxy);
|
||||
}
|
||||
return agent;
|
||||
}
|
||||
destroy() {
|
||||
for (const agent of this.cache.values()) {
|
||||
agent.destroy();
|
||||
}
|
||||
super.destroy();
|
||||
}
|
||||
}
|
||||
exports.ProxyAgent = ProxyAgent;
|
||||
//# sourceMappingURL=index.js.map
|
||||
Reference in New Issue
Block a user