1 line
14 KiB
JSON
1 line
14 KiB
JSON
{"ast":null,"code":"'use strict';\n\nvar url = require('url');\n\nvar tunnel = require('tunnel-agent');\n\nvar defaultProxyHeaderWhiteList = ['accept', 'accept-charset', 'accept-encoding', 'accept-language', 'accept-ranges', 'cache-control', 'content-encoding', 'content-language', 'content-location', 'content-md5', 'content-range', 'content-type', 'connection', 'date', 'expect', 'max-forwards', 'pragma', 'referer', 'te', 'user-agent', 'via'];\nvar defaultProxyHeaderExclusiveList = ['proxy-authorization'];\n\nfunction constructProxyHost(uriObject) {\n var port = uriObject.port;\n var protocol = uriObject.protocol;\n var proxyHost = uriObject.hostname + ':';\n\n if (port) {\n proxyHost += port;\n } else if (protocol === 'https:') {\n proxyHost += '443';\n } else {\n proxyHost += '80';\n }\n\n return proxyHost;\n}\n\nfunction constructProxyHeaderWhiteList(headers, proxyHeaderWhiteList) {\n var whiteList = proxyHeaderWhiteList.reduce(function (set, header) {\n set[header.toLowerCase()] = true;\n return set;\n }, {});\n return Object.keys(headers).filter(function (header) {\n return whiteList[header.toLowerCase()];\n }).reduce(function (set, header) {\n set[header] = headers[header];\n return set;\n }, {});\n}\n\nfunction constructTunnelOptions(request, proxyHeaders) {\n var proxy = request.proxy;\n var tunnelOptions = {\n proxy: {\n host: proxy.hostname,\n port: +proxy.port,\n proxyAuth: proxy.auth,\n headers: proxyHeaders\n },\n headers: request.headers,\n ca: request.ca,\n cert: request.cert,\n key: request.key,\n passphrase: request.passphrase,\n pfx: request.pfx,\n ciphers: request.ciphers,\n rejectUnauthorized: request.rejectUnauthorized,\n secureOptions: request.secureOptions,\n secureProtocol: request.secureProtocol\n };\n return tunnelOptions;\n}\n\nfunction constructTunnelFnName(uri, proxy) {\n var uriProtocol = uri.protocol === 'https:' ? 'https' : 'http';\n var proxyProtocol = proxy.protocol === 'https:' ? 'Https' : 'Http';\n return [uriProtocol, proxyProtocol].join('Over');\n}\n\nfunction getTunnelFn(request) {\n var uri = request.uri;\n var proxy = request.proxy;\n var tunnelFnName = constructTunnelFnName(uri, proxy);\n return tunnel[tunnelFnName];\n}\n\nfunction Tunnel(request) {\n this.request = request;\n this.proxyHeaderWhiteList = defaultProxyHeaderWhiteList;\n this.proxyHeaderExclusiveList = [];\n\n if (typeof request.tunnel !== 'undefined') {\n this.tunnelOverride = request.tunnel;\n }\n}\n\nTunnel.prototype.isEnabled = function () {\n var self = this;\n var request = self.request; // Tunnel HTTPS by default. Allow the user to override this setting.\n // If self.tunnelOverride is set (the user specified a value), use it.\n\n if (typeof self.tunnelOverride !== 'undefined') {\n return self.tunnelOverride;\n } // If the destination is HTTPS, tunnel.\n\n\n if (request.uri.protocol === 'https:') {\n return true;\n } // Otherwise, do not use tunnel.\n\n\n return false;\n};\n\nTunnel.prototype.setup = function (options) {\n var self = this;\n var request = self.request;\n options = options || {};\n\n if (typeof request.proxy === 'string') {\n request.proxy = url.parse(request.proxy);\n }\n\n if (!request.proxy || !request.tunnel) {\n return false;\n } // Setup Proxy Header Exclusive List and White List\n\n\n if (options.proxyHeaderWhiteList) {\n self.proxyHeaderWhiteList = options.proxyHeaderWhiteList;\n }\n\n if (options.proxyHeaderExclusiveList) {\n self.proxyHeaderExclusiveList = options.proxyHeaderExclusiveList;\n }\n\n var proxyHeaderExclusiveList = self.proxyHeaderExclusiveList.concat(defaultProxyHeaderExclusiveList);\n var proxyHeaderWhiteList = self.proxyHeaderWhiteList.concat(proxyHeaderExclusiveList); // Setup Proxy Headers and Proxy Headers Host\n // Only send the Proxy White Listed Header names\n\n var proxyHeaders = constructProxyHeaderWhiteList(request.headers, proxyHeaderWhiteList);\n proxyHeaders.host = constructProxyHost(request.uri);\n proxyHeaderExclusiveList.forEach(request.removeHeader, request); // Set Agent from Tunnel Data\n\n var tunnelFn = getTunnelFn(request);\n var tunnelOptions = constructTunnelOptions(request, proxyHeaders);\n request.agent = tunnelFn(tunnelOptions);\n return true;\n};\n\nTunnel.defaultProxyHeaderWhiteList = defaultProxyHeaderWhiteList;\nTunnel.defaultProxyHeaderExclusiveList = defaultProxyHeaderExclusiveList;\nexports.Tunnel = Tunnel;","map":{"version":3,"sources":["/Users/tylerkoenig/Code/personal/react-scss2/node_modules/request/lib/tunnel.js"],"names":["url","require","tunnel","defaultProxyHeaderWhiteList","defaultProxyHeaderExclusiveList","constructProxyHost","uriObject","port","protocol","proxyHost","hostname","constructProxyHeaderWhiteList","headers","proxyHeaderWhiteList","whiteList","reduce","set","header","toLowerCase","Object","keys","filter","constructTunnelOptions","request","proxyHeaders","proxy","tunnelOptions","host","proxyAuth","auth","ca","cert","key","passphrase","pfx","ciphers","rejectUnauthorized","secureOptions","secureProtocol","constructTunnelFnName","uri","uriProtocol","proxyProtocol","join","getTunnelFn","tunnelFnName","Tunnel","proxyHeaderExclusiveList","tunnelOverride","prototype","isEnabled","self","setup","options","parse","concat","forEach","removeHeader","tunnelFn","agent","exports"],"mappings":"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","sourcesContent":["'use strict'\n\nvar url = require('url')\nvar tunnel = require('tunnel-agent')\n\nvar defaultProxyHeaderWhiteList = [\n 'accept',\n 'accept-charset',\n 'accept-encoding',\n 'accept-language',\n 'accept-ranges',\n 'cache-control',\n 'content-encoding',\n 'content-language',\n 'content-location',\n 'content-md5',\n 'content-range',\n 'content-type',\n 'connection',\n 'date',\n 'expect',\n 'max-forwards',\n 'pragma',\n 'referer',\n 'te',\n 'user-agent',\n 'via'\n]\n\nvar defaultProxyHeaderExclusiveList = [\n 'proxy-authorization'\n]\n\nfunction constructProxyHost (uriObject) {\n var port = uriObject.port\n var protocol = uriObject.protocol\n var proxyHost = uriObject.hostname + ':'\n\n if (port) {\n proxyHost += port\n } else if (protocol === 'https:') {\n proxyHost += '443'\n } else {\n proxyHost += '80'\n }\n\n return proxyHost\n}\n\nfunction constructProxyHeaderWhiteList (headers, proxyHeaderWhiteList) {\n var whiteList = proxyHeaderWhiteList\n .reduce(function (set, header) {\n set[header.toLowerCase()] = true\n return set\n }, {})\n\n return Object.keys(headers)\n .filter(function (header) {\n return whiteList[header.toLowerCase()]\n })\n .reduce(function (set, header) {\n set[header] = headers[header]\n return set\n }, {})\n}\n\nfunction constructTunnelOptions (request, proxyHeaders) {\n var proxy = request.proxy\n\n var tunnelOptions = {\n proxy: {\n host: proxy.hostname,\n port: +proxy.port,\n proxyAuth: proxy.auth,\n headers: proxyHeaders\n },\n headers: request.headers,\n ca: request.ca,\n cert: request.cert,\n key: request.key,\n passphrase: request.passphrase,\n pfx: request.pfx,\n ciphers: request.ciphers,\n rejectUnauthorized: request.rejectUnauthorized,\n secureOptions: request.secureOptions,\n secureProtocol: request.secureProtocol\n }\n\n return tunnelOptions\n}\n\nfunction constructTunnelFnName (uri, proxy) {\n var uriProtocol = (uri.protocol === 'https:' ? 'https' : 'http')\n var proxyProtocol = (proxy.protocol === 'https:' ? 'Https' : 'Http')\n return [uriProtocol, proxyProtocol].join('Over')\n}\n\nfunction getTunnelFn (request) {\n var uri = request.uri\n var proxy = request.proxy\n var tunnelFnName = constructTunnelFnName(uri, proxy)\n return tunnel[tunnelFnName]\n}\n\nfunction Tunnel (request) {\n this.request = request\n this.proxyHeaderWhiteList = defaultProxyHeaderWhiteList\n this.proxyHeaderExclusiveList = []\n if (typeof request.tunnel !== 'undefined') {\n this.tunnelOverride = request.tunnel\n }\n}\n\nTunnel.prototype.isEnabled = function () {\n var self = this\n var request = self.request\n // Tunnel HTTPS by default. Allow the user to override this setting.\n\n // If self.tunnelOverride is set (the user specified a value), use it.\n if (typeof self.tunnelOverride !== 'undefined') {\n return self.tunnelOverride\n }\n\n // If the destination is HTTPS, tunnel.\n if (request.uri.protocol === 'https:') {\n return true\n }\n\n // Otherwise, do not use tunnel.\n return false\n}\n\nTunnel.prototype.setup = function (options) {\n var self = this\n var request = self.request\n\n options = options || {}\n\n if (typeof request.proxy === 'string') {\n request.proxy = url.parse(request.proxy)\n }\n\n if (!request.proxy || !request.tunnel) {\n return false\n }\n\n // Setup Proxy Header Exclusive List and White List\n if (options.proxyHeaderWhiteList) {\n self.proxyHeaderWhiteList = options.proxyHeaderWhiteList\n }\n if (options.proxyHeaderExclusiveList) {\n self.proxyHeaderExclusiveList = options.proxyHeaderExclusiveList\n }\n\n var proxyHeaderExclusiveList = self.proxyHeaderExclusiveList.concat(defaultProxyHeaderExclusiveList)\n var proxyHeaderWhiteList = self.proxyHeaderWhiteList.concat(proxyHeaderExclusiveList)\n\n // Setup Proxy Headers and Proxy Headers Host\n // Only send the Proxy White Listed Header names\n var proxyHeaders = constructProxyHeaderWhiteList(request.headers, proxyHeaderWhiteList)\n proxyHeaders.host = constructProxyHost(request.uri)\n\n proxyHeaderExclusiveList.forEach(request.removeHeader, request)\n\n // Set Agent from Tunnel Data\n var tunnelFn = getTunnelFn(request)\n var tunnelOptions = constructTunnelOptions(request, proxyHeaders)\n request.agent = tunnelFn(tunnelOptions)\n\n return true\n}\n\nTunnel.defaultProxyHeaderWhiteList = defaultProxyHeaderWhiteList\nTunnel.defaultProxyHeaderExclusiveList = defaultProxyHeaderExclusiveList\nexports.Tunnel = Tunnel\n"]},"metadata":{},"sourceType":"script"} |