Files
portfolio/node_modules/.cache/babel-loader/cfce1d999d7aa70ff5e524e624458896.json
2021-09-20 16:54:47 -04:00

1 line
24 KiB
JSON

{"ast":null,"code":"'use strict';\n\nvar net = require('net'),\n tls = require('tls'),\n http = require('http'),\n https = require('https'),\n events = require('events'),\n assert = require('assert'),\n util = require('util'),\n Buffer = require('safe-buffer').Buffer;\n\nexports.httpOverHttp = httpOverHttp;\nexports.httpsOverHttp = httpsOverHttp;\nexports.httpOverHttps = httpOverHttps;\nexports.httpsOverHttps = httpsOverHttps;\n\nfunction httpOverHttp(options) {\n var agent = new TunnelingAgent(options);\n agent.request = http.request;\n return agent;\n}\n\nfunction httpsOverHttp(options) {\n var agent = new TunnelingAgent(options);\n agent.request = http.request;\n agent.createSocket = createSecureSocket;\n agent.defaultPort = 443;\n return agent;\n}\n\nfunction httpOverHttps(options) {\n var agent = new TunnelingAgent(options);\n agent.request = https.request;\n return agent;\n}\n\nfunction httpsOverHttps(options) {\n var agent = new TunnelingAgent(options);\n agent.request = https.request;\n agent.createSocket = createSecureSocket;\n agent.defaultPort = 443;\n return agent;\n}\n\nfunction TunnelingAgent(options) {\n var self = this;\n self.options = options || {};\n self.proxyOptions = self.options.proxy || {};\n self.maxSockets = self.options.maxSockets || http.Agent.defaultMaxSockets;\n self.requests = [];\n self.sockets = [];\n self.on('free', function onFree(socket, host, port) {\n for (var i = 0, len = self.requests.length; i < len; ++i) {\n var pending = self.requests[i];\n\n if (pending.host === host && pending.port === port) {\n // Detect the request to connect same origin server,\n // reuse the connection.\n self.requests.splice(i, 1);\n pending.request.onSocket(socket);\n return;\n }\n }\n\n socket.destroy();\n self.removeSocket(socket);\n });\n}\n\nutil.inherits(TunnelingAgent, events.EventEmitter);\n\nTunnelingAgent.prototype.addRequest = function addRequest(req, options) {\n var self = this; // Legacy API: addRequest(req, host, port, path)\n\n if (typeof options === 'string') {\n options = {\n host: options,\n port: arguments[2],\n path: arguments[3]\n };\n }\n\n if (self.sockets.length >= this.maxSockets) {\n // We are over limit so we'll add it to the queue.\n self.requests.push({\n host: options.host,\n port: options.port,\n request: req\n });\n return;\n } // If we are under maxSockets create a new one.\n\n\n self.createConnection({\n host: options.host,\n port: options.port,\n request: req\n });\n};\n\nTunnelingAgent.prototype.createConnection = function createConnection(pending) {\n var self = this;\n self.createSocket(pending, function (socket) {\n socket.on('free', onFree);\n socket.on('close', onCloseOrRemove);\n socket.on('agentRemove', onCloseOrRemove);\n pending.request.onSocket(socket);\n\n function onFree() {\n self.emit('free', socket, pending.host, pending.port);\n }\n\n function onCloseOrRemove(err) {\n self.removeSocket(socket);\n socket.removeListener('free', onFree);\n socket.removeListener('close', onCloseOrRemove);\n socket.removeListener('agentRemove', onCloseOrRemove);\n }\n });\n};\n\nTunnelingAgent.prototype.createSocket = function createSocket(options, cb) {\n var self = this;\n var placeholder = {};\n self.sockets.push(placeholder);\n var connectOptions = mergeOptions({}, self.proxyOptions, {\n method: 'CONNECT',\n path: options.host + ':' + options.port,\n agent: false\n });\n\n if (connectOptions.proxyAuth) {\n connectOptions.headers = connectOptions.headers || {};\n connectOptions.headers['Proxy-Authorization'] = 'Basic ' + Buffer.from(connectOptions.proxyAuth).toString('base64');\n }\n\n debug('making CONNECT request');\n var connectReq = self.request(connectOptions);\n connectReq.useChunkedEncodingByDefault = false; // for v0.6\n\n connectReq.once('response', onResponse); // for v0.6\n\n connectReq.once('upgrade', onUpgrade); // for v0.6\n\n connectReq.once('connect', onConnect); // for v0.7 or later\n\n connectReq.once('error', onError);\n connectReq.end();\n\n function onResponse(res) {\n // Very hacky. This is necessary to avoid http-parser leaks.\n res.upgrade = true;\n }\n\n function onUpgrade(res, socket, head) {\n // Hacky.\n process.nextTick(function () {\n onConnect(res, socket, head);\n });\n }\n\n function onConnect(res, socket, head) {\n connectReq.removeAllListeners();\n socket.removeAllListeners();\n\n if (res.statusCode === 200) {\n assert.equal(head.length, 0);\n debug('tunneling connection has established');\n self.sockets[self.sockets.indexOf(placeholder)] = socket;\n cb(socket);\n } else {\n debug('tunneling socket could not be established, statusCode=%d', res.statusCode);\n var error = new Error('tunneling socket could not be established, ' + 'statusCode=' + res.statusCode);\n error.code = 'ECONNRESET';\n options.request.emit('error', error);\n self.removeSocket(placeholder);\n }\n }\n\n function onError(cause) {\n connectReq.removeAllListeners();\n debug('tunneling socket could not be established, cause=%s\\n', cause.message, cause.stack);\n var error = new Error('tunneling socket could not be established, ' + 'cause=' + cause.message);\n error.code = 'ECONNRESET';\n options.request.emit('error', error);\n self.removeSocket(placeholder);\n }\n};\n\nTunnelingAgent.prototype.removeSocket = function removeSocket(socket) {\n var pos = this.sockets.indexOf(socket);\n if (pos === -1) return;\n this.sockets.splice(pos, 1);\n var pending = this.requests.shift();\n\n if (pending) {\n // If we have pending requests and a socket gets closed a new one\n // needs to be created to take over in the pool for the one that closed.\n this.createConnection(pending);\n }\n};\n\nfunction createSecureSocket(options, cb) {\n var self = this;\n TunnelingAgent.prototype.createSocket.call(self, options, function (socket) {\n // 0 is dummy port for v0.6\n var secureSocket = tls.connect(0, mergeOptions({}, self.options, {\n servername: options.host,\n socket: socket\n }));\n self.sockets[self.sockets.indexOf(socket)] = secureSocket;\n cb(secureSocket);\n });\n}\n\nfunction mergeOptions(target) {\n for (var i = 1, len = arguments.length; i < len; ++i) {\n var overrides = arguments[i];\n\n if (typeof overrides === 'object') {\n var keys = Object.keys(overrides);\n\n for (var j = 0, keyLen = keys.length; j < keyLen; ++j) {\n var k = keys[j];\n\n if (overrides[k] !== undefined) {\n target[k] = overrides[k];\n }\n }\n }\n }\n\n return target;\n}\n\nvar debug;\n\nif (process.env.NODE_DEBUG && /\\btunnel\\b/.test(process.env.NODE_DEBUG)) {\n debug = function () {\n var args = Array.prototype.slice.call(arguments);\n\n if (typeof args[0] === 'string') {\n args[0] = 'TUNNEL: ' + args[0];\n } else {\n args.unshift('TUNNEL:');\n }\n\n console.error.apply(console, args);\n };\n} else {\n debug = function () {};\n}\n\nexports.debug = debug; // for test","map":{"version":3,"sources":["/Users/tylerkoenig/Code/personal/react-scss2/node_modules/tunnel-agent/index.js"],"names":["net","require","tls","http","https","events","assert","util","Buffer","exports","httpOverHttp","httpsOverHttp","httpOverHttps","httpsOverHttps","options","agent","TunnelingAgent","request","createSocket","createSecureSocket","defaultPort","self","proxyOptions","proxy","maxSockets","Agent","defaultMaxSockets","requests","sockets","on","onFree","socket","host","port","i","len","length","pending","splice","onSocket","destroy","removeSocket","inherits","EventEmitter","prototype","addRequest","req","arguments","path","push","createConnection","onCloseOrRemove","emit","err","removeListener","cb","placeholder","connectOptions","mergeOptions","method","proxyAuth","headers","from","toString","debug","connectReq","useChunkedEncodingByDefault","once","onResponse","onUpgrade","onConnect","onError","end","res","upgrade","head","process","nextTick","removeAllListeners","statusCode","equal","indexOf","error","Error","code","cause","message","stack","pos","shift","call","secureSocket","connect","servername","target","overrides","keys","Object","j","keyLen","k","undefined","env","NODE_DEBUG","test","args","Array","slice","unshift","console","apply"],"mappings":"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","sourcesContent":["'use strict'\n\nvar net = require('net')\n , tls = require('tls')\n , http = require('http')\n , https = require('https')\n , events = require('events')\n , assert = require('assert')\n , util = require('util')\n , Buffer = require('safe-buffer').Buffer\n ;\n\nexports.httpOverHttp = httpOverHttp\nexports.httpsOverHttp = httpsOverHttp\nexports.httpOverHttps = httpOverHttps\nexports.httpsOverHttps = httpsOverHttps\n\n\nfunction httpOverHttp(options) {\n var agent = new TunnelingAgent(options)\n agent.request = http.request\n return agent\n}\n\nfunction httpsOverHttp(options) {\n var agent = new TunnelingAgent(options)\n agent.request = http.request\n agent.createSocket = createSecureSocket\n agent.defaultPort = 443\n return agent\n}\n\nfunction httpOverHttps(options) {\n var agent = new TunnelingAgent(options)\n agent.request = https.request\n return agent\n}\n\nfunction httpsOverHttps(options) {\n var agent = new TunnelingAgent(options)\n agent.request = https.request\n agent.createSocket = createSecureSocket\n agent.defaultPort = 443\n return agent\n}\n\n\nfunction TunnelingAgent(options) {\n var self = this\n self.options = options || {}\n self.proxyOptions = self.options.proxy || {}\n self.maxSockets = self.options.maxSockets || http.Agent.defaultMaxSockets\n self.requests = []\n self.sockets = []\n\n self.on('free', function onFree(socket, host, port) {\n for (var i = 0, len = self.requests.length; i < len; ++i) {\n var pending = self.requests[i]\n if (pending.host === host && pending.port === port) {\n // Detect the request to connect same origin server,\n // reuse the connection.\n self.requests.splice(i, 1)\n pending.request.onSocket(socket)\n return\n }\n }\n socket.destroy()\n self.removeSocket(socket)\n })\n}\nutil.inherits(TunnelingAgent, events.EventEmitter)\n\nTunnelingAgent.prototype.addRequest = function addRequest(req, options) {\n var self = this\n\n // Legacy API: addRequest(req, host, port, path)\n if (typeof options === 'string') {\n options = {\n host: options,\n port: arguments[2],\n path: arguments[3]\n };\n }\n\n if (self.sockets.length >= this.maxSockets) {\n // We are over limit so we'll add it to the queue.\n self.requests.push({host: options.host, port: options.port, request: req})\n return\n }\n\n // If we are under maxSockets create a new one.\n self.createConnection({host: options.host, port: options.port, request: req})\n}\n\nTunnelingAgent.prototype.createConnection = function createConnection(pending) {\n var self = this\n\n self.createSocket(pending, function(socket) {\n socket.on('free', onFree)\n socket.on('close', onCloseOrRemove)\n socket.on('agentRemove', onCloseOrRemove)\n pending.request.onSocket(socket)\n\n function onFree() {\n self.emit('free', socket, pending.host, pending.port)\n }\n\n function onCloseOrRemove(err) {\n self.removeSocket(socket)\n socket.removeListener('free', onFree)\n socket.removeListener('close', onCloseOrRemove)\n socket.removeListener('agentRemove', onCloseOrRemove)\n }\n })\n}\n\nTunnelingAgent.prototype.createSocket = function createSocket(options, cb) {\n var self = this\n var placeholder = {}\n self.sockets.push(placeholder)\n\n var connectOptions = mergeOptions({}, self.proxyOptions,\n { method: 'CONNECT'\n , path: options.host + ':' + options.port\n , agent: false\n }\n )\n if (connectOptions.proxyAuth) {\n connectOptions.headers = connectOptions.headers || {}\n connectOptions.headers['Proxy-Authorization'] = 'Basic ' +\n Buffer.from(connectOptions.proxyAuth).toString('base64')\n }\n\n debug('making CONNECT request')\n var connectReq = self.request(connectOptions)\n connectReq.useChunkedEncodingByDefault = false // for v0.6\n connectReq.once('response', onResponse) // for v0.6\n connectReq.once('upgrade', onUpgrade) // for v0.6\n connectReq.once('connect', onConnect) // for v0.7 or later\n connectReq.once('error', onError)\n connectReq.end()\n\n function onResponse(res) {\n // Very hacky. This is necessary to avoid http-parser leaks.\n res.upgrade = true\n }\n\n function onUpgrade(res, socket, head) {\n // Hacky.\n process.nextTick(function() {\n onConnect(res, socket, head)\n })\n }\n\n function onConnect(res, socket, head) {\n connectReq.removeAllListeners()\n socket.removeAllListeners()\n\n if (res.statusCode === 200) {\n assert.equal(head.length, 0)\n debug('tunneling connection has established')\n self.sockets[self.sockets.indexOf(placeholder)] = socket\n cb(socket)\n } else {\n debug('tunneling socket could not be established, statusCode=%d', res.statusCode)\n var error = new Error('tunneling socket could not be established, ' + 'statusCode=' + res.statusCode)\n error.code = 'ECONNRESET'\n options.request.emit('error', error)\n self.removeSocket(placeholder)\n }\n }\n\n function onError(cause) {\n connectReq.removeAllListeners()\n\n debug('tunneling socket could not be established, cause=%s\\n', cause.message, cause.stack)\n var error = new Error('tunneling socket could not be established, ' + 'cause=' + cause.message)\n error.code = 'ECONNRESET'\n options.request.emit('error', error)\n self.removeSocket(placeholder)\n }\n}\n\nTunnelingAgent.prototype.removeSocket = function removeSocket(socket) {\n var pos = this.sockets.indexOf(socket)\n if (pos === -1) return\n\n this.sockets.splice(pos, 1)\n\n var pending = this.requests.shift()\n if (pending) {\n // If we have pending requests and a socket gets closed a new one\n // needs to be created to take over in the pool for the one that closed.\n this.createConnection(pending)\n }\n}\n\nfunction createSecureSocket(options, cb) {\n var self = this\n TunnelingAgent.prototype.createSocket.call(self, options, function(socket) {\n // 0 is dummy port for v0.6\n var secureSocket = tls.connect(0, mergeOptions({}, self.options,\n { servername: options.host\n , socket: socket\n }\n ))\n self.sockets[self.sockets.indexOf(socket)] = secureSocket\n cb(secureSocket)\n })\n}\n\n\nfunction mergeOptions(target) {\n for (var i = 1, len = arguments.length; i < len; ++i) {\n var overrides = arguments[i]\n if (typeof overrides === 'object') {\n var keys = Object.keys(overrides)\n for (var j = 0, keyLen = keys.length; j < keyLen; ++j) {\n var k = keys[j]\n if (overrides[k] !== undefined) {\n target[k] = overrides[k]\n }\n }\n }\n }\n return target\n}\n\n\nvar debug\nif (process.env.NODE_DEBUG && /\\btunnel\\b/.test(process.env.NODE_DEBUG)) {\n debug = function() {\n var args = Array.prototype.slice.call(arguments)\n if (typeof args[0] === 'string') {\n args[0] = 'TUNNEL: ' + args[0]\n } else {\n args.unshift('TUNNEL:')\n }\n console.error.apply(console, args)\n }\n} else {\n debug = function() {}\n}\nexports.debug = debug // for test\n"]},"metadata":{},"sourceType":"script"}