opennms
Version:
Client API for the OpenNMS network monitoring platform
1 lines • 22.3 kB
JSON
{"remainingRequest":"/data/node_modules/babel-loader/lib/index.js!/data/node_modules/axios/lib/adapters/http.js","dependencies":[{"path":"/data/node_modules/axios/lib/adapters/http.js","mtime":1553611387516},{"path":"/data/.babelrc","mtime":1553611371556},{"path":"/data/node_modules/cache-loader/dist/cjs.js","mtime":1553611387012},{"path":"/data/node_modules/babel-loader/lib/index.js","mtime":1553611386992}],"contextDependencies":[],"result":["'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar buildURL = require('./../helpers/buildURL');\nvar http = require('http');\nvar https = require('https');\nvar httpFollow = require('follow-redirects').http;\nvar httpsFollow = require('follow-redirects').https;\nvar url = require('url');\nvar zlib = require('zlib');\nvar pkg = require('./../../package.json');\nvar createError = require('../core/createError');\nvar enhanceError = require('../core/enhanceError');\n\n/*eslint consistent-return:0*/\nmodule.exports = function httpAdapter(config) {\n return new Promise(function dispatchHttpRequest(resolve, reject) {\n var data = config.data;\n var headers = config.headers;\n var timer;\n var aborted = false;\n\n // Set User-Agent (required by some servers)\n // Only set header if it hasn't been set in config\n // See https://github.com/mzabriskie/axios/issues/69\n if (!headers['User-Agent'] && !headers['user-agent']) {\n headers['User-Agent'] = 'axios/' + pkg.version;\n }\n\n if (data && !utils.isStream(data)) {\n if (Buffer.isBuffer(data)) {\n // Nothing to do...\n } else if (utils.isArrayBuffer(data)) {\n data = new Buffer(new Uint8Array(data));\n } else if (utils.isString(data)) {\n data = new Buffer(data, 'utf-8');\n } else {\n return reject(createError('Data after transformation must be a string, an ArrayBuffer, a Buffer, or a Stream', config));\n }\n\n // Add Content-Length header if data exists\n headers['Content-Length'] = data.length;\n }\n\n // HTTP basic authentication\n var auth = undefined;\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password || '';\n auth = username + ':' + password;\n }\n\n // Parse url\n var parsed = url.parse(config.url);\n var protocol = parsed.protocol || 'http:';\n\n if (!auth && parsed.auth) {\n var urlAuth = parsed.auth.split(':');\n var urlUsername = urlAuth[0] || '';\n var urlPassword = urlAuth[1] || '';\n auth = urlUsername + ':' + urlPassword;\n }\n\n if (auth) {\n delete headers.Authorization;\n }\n\n var isHttps = protocol === 'https:';\n var agent = isHttps ? config.httpsAgent : config.httpAgent;\n\n var options = {\n hostname: parsed.hostname,\n port: parsed.port,\n path: buildURL(parsed.path, config.params, config.paramsSerializer).replace(/^\\?/, ''),\n method: config.method,\n headers: headers,\n agent: agent,\n auth: auth\n };\n\n var proxy = config.proxy;\n if (!proxy) {\n var proxyEnv = protocol.slice(0, -1) + '_proxy';\n var proxyUrl = process.env[proxyEnv] || process.env[proxyEnv.toUpperCase()];\n if (proxyUrl) {\n var parsedProxyUrl = url.parse(proxyUrl);\n proxy = {\n host: parsedProxyUrl.hostname,\n port: parsedProxyUrl.port\n };\n\n if (parsedProxyUrl.auth) {\n var proxyUrlAuth = parsedProxyUrl.auth.split(':');\n proxy.auth = {\n username: proxyUrlAuth[0],\n password: proxyUrlAuth[1]\n };\n }\n }\n }\n\n if (proxy) {\n options.hostname = proxy.host;\n options.host = proxy.host;\n options.headers.host = parsed.hostname + (parsed.port ? ':' + parsed.port : '');\n options.port = proxy.port;\n options.path = protocol + '//' + parsed.hostname + (parsed.port ? ':' + parsed.port : '') + options.path;\n\n // Basic proxy authorization\n if (proxy.auth) {\n var base64 = new Buffer(proxy.auth.username + ':' + proxy.auth.password, 'utf8').toString('base64');\n options.headers['Proxy-Authorization'] = 'Basic ' + base64;\n }\n }\n\n var transport;\n if (config.maxRedirects === 0) {\n transport = isHttps ? https : http;\n } else {\n if (config.maxRedirects) {\n options.maxRedirects = config.maxRedirects;\n }\n transport = isHttps ? httpsFollow : httpFollow;\n }\n\n // Create the request\n var req = transport.request(options, function handleResponse(res) {\n if (aborted) return;\n\n // Response has been received so kill timer that handles request timeout\n clearTimeout(timer);\n timer = null;\n\n // uncompress the response body transparently if required\n var stream = res;\n switch (res.headers['content-encoding']) {\n /*eslint default-case:0*/\n case 'gzip':\n case 'compress':\n case 'deflate':\n // add the unzipper to the body stream processing pipeline\n stream = stream.pipe(zlib.createUnzip());\n\n // remove the content-encoding in order to not confuse downstream operations\n delete res.headers['content-encoding'];\n break;\n }\n\n // return the last request in case of redirects\n var lastRequest = res.req || req;\n\n var response = {\n status: res.statusCode,\n statusText: res.statusMessage,\n headers: res.headers,\n config: config,\n request: lastRequest\n };\n\n if (config.responseType === 'stream') {\n response.data = stream;\n settle(resolve, reject, response);\n } else {\n var responseBuffer = [];\n stream.on('data', function handleStreamData(chunk) {\n responseBuffer.push(chunk);\n\n // make sure the content length is not over the maxContentLength if specified\n if (config.maxContentLength > -1 && Buffer.concat(responseBuffer).length > config.maxContentLength) {\n reject(createError('maxContentLength size of ' + config.maxContentLength + ' exceeded', config, null, lastRequest));\n }\n });\n\n stream.on('error', function handleStreamError(err) {\n if (aborted) return;\n reject(enhanceError(err, config, null, lastRequest));\n });\n\n stream.on('end', function handleStreamEnd() {\n var responseData = Buffer.concat(responseBuffer);\n if (config.responseType !== 'arraybuffer') {\n responseData = responseData.toString('utf8');\n }\n\n response.data = responseData;\n settle(resolve, reject, response);\n });\n }\n });\n\n // Handle errors\n req.on('error', function handleRequestError(err) {\n if (aborted) return;\n reject(enhanceError(err, config, null, req));\n });\n\n // Handle request timeout\n if (config.timeout && !timer) {\n timer = setTimeout(function handleRequestTimeout() {\n req.abort();\n reject(createError('timeout of ' + config.timeout + 'ms exceeded', config, 'ECONNABORTED', req));\n aborted = true;\n }, config.timeout);\n }\n\n if (config.cancelToken) {\n // Handle cancellation\n config.cancelToken.promise.then(function onCanceled(cancel) {\n if (aborted) {\n return;\n }\n\n req.abort();\n reject(cancel);\n aborted = true;\n });\n }\n\n // Send the request\n if (utils.isStream(data)) {\n data.pipe(req);\n } else {\n req.end(data);\n }\n });\n};",{"version":3,"sources":["node_modules/axios/lib/adapters/http.js"],"names":["utils","require","settle","buildURL","http","https","httpFollow","httpsFollow","url","zlib","pkg","createError","enhanceError","module","exports","httpAdapter","config","Promise","dispatchHttpRequest","resolve","reject","data","headers","timer","aborted","version","isStream","Buffer","isBuffer","isArrayBuffer","Uint8Array","isString","length","auth","undefined","username","password","parsed","parse","protocol","urlAuth","split","urlUsername","urlPassword","Authorization","isHttps","agent","httpsAgent","httpAgent","options","hostname","port","path","params","paramsSerializer","replace","method","proxy","proxyEnv","slice","proxyUrl","process","env","toUpperCase","parsedProxyUrl","host","proxyUrlAuth","base64","toString","transport","maxRedirects","req","request","handleResponse","res","clearTimeout","stream","pipe","createUnzip","lastRequest","response","status","statusCode","statusText","statusMessage","responseType","responseBuffer","on","handleStreamData","chunk","push","maxContentLength","concat","handleStreamError","err","handleStreamEnd","responseData","handleRequestError","timeout","setTimeout","handleRequestTimeout","abort","cancelToken","promise","then","onCanceled","cancel","end"],"mappings":"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","file":"http.js","sourceRoot":"/data","sourcesContent":["'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar buildURL = require('./../helpers/buildURL');\nvar http = require('http');\nvar https = require('https');\nvar httpFollow = require('follow-redirects').http;\nvar httpsFollow = require('follow-redirects').https;\nvar url = require('url');\nvar zlib = require('zlib');\nvar pkg = require('./../../package.json');\nvar createError = require('../core/createError');\nvar enhanceError = require('../core/enhanceError');\n\n/*eslint consistent-return:0*/\nmodule.exports = function httpAdapter(config) {\n return new Promise(function dispatchHttpRequest(resolve, reject) {\n var data = config.data;\n var headers = config.headers;\n var timer;\n var aborted = false;\n\n // Set User-Agent (required by some servers)\n // Only set header if it hasn't been set in config\n // See https://github.com/mzabriskie/axios/issues/69\n if (!headers['User-Agent'] && !headers['user-agent']) {\n headers['User-Agent'] = 'axios/' + pkg.version;\n }\n\n if (data && !utils.isStream(data)) {\n if (Buffer.isBuffer(data)) {\n // Nothing to do...\n } else if (utils.isArrayBuffer(data)) {\n data = new Buffer(new Uint8Array(data));\n } else if (utils.isString(data)) {\n data = new Buffer(data, 'utf-8');\n } else {\n return reject(createError(\n 'Data after transformation must be a string, an ArrayBuffer, a Buffer, or a Stream',\n config\n ));\n }\n\n // Add Content-Length header if data exists\n headers['Content-Length'] = data.length;\n }\n\n // HTTP basic authentication\n var auth = undefined;\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password || '';\n auth = username + ':' + password;\n }\n\n // Parse url\n var parsed = url.parse(config.url);\n var protocol = parsed.protocol || 'http:';\n\n if (!auth && parsed.auth) {\n var urlAuth = parsed.auth.split(':');\n var urlUsername = urlAuth[0] || '';\n var urlPassword = urlAuth[1] || '';\n auth = urlUsername + ':' + urlPassword;\n }\n\n if (auth) {\n delete headers.Authorization;\n }\n\n var isHttps = protocol === 'https:';\n var agent = isHttps ? config.httpsAgent : config.httpAgent;\n\n var options = {\n hostname: parsed.hostname,\n port: parsed.port,\n path: buildURL(parsed.path, config.params, config.paramsSerializer).replace(/^\\?/, ''),\n method: config.method,\n headers: headers,\n agent: agent,\n auth: auth\n };\n\n var proxy = config.proxy;\n if (!proxy) {\n var proxyEnv = protocol.slice(0, -1) + '_proxy';\n var proxyUrl = process.env[proxyEnv] || process.env[proxyEnv.toUpperCase()];\n if (proxyUrl) {\n var parsedProxyUrl = url.parse(proxyUrl);\n proxy = {\n host: parsedProxyUrl.hostname,\n port: parsedProxyUrl.port\n };\n\n if (parsedProxyUrl.auth) {\n var proxyUrlAuth = parsedProxyUrl.auth.split(':');\n proxy.auth = {\n username: proxyUrlAuth[0],\n password: proxyUrlAuth[1]\n };\n }\n }\n }\n\n if (proxy) {\n options.hostname = proxy.host;\n options.host = proxy.host;\n options.headers.host = parsed.hostname + (parsed.port ? ':' + parsed.port : '');\n options.port = proxy.port;\n options.path = protocol + '//' + parsed.hostname + (parsed.port ? ':' + parsed.port : '') + options.path;\n\n // Basic proxy authorization\n if (proxy.auth) {\n var base64 = new Buffer(proxy.auth.username + ':' + proxy.auth.password, 'utf8').toString('base64');\n options.headers['Proxy-Authorization'] = 'Basic ' + base64;\n }\n }\n\n var transport;\n if (config.maxRedirects === 0) {\n transport = isHttps ? https : http;\n } else {\n if (config.maxRedirects) {\n options.maxRedirects = config.maxRedirects;\n }\n transport = isHttps ? httpsFollow : httpFollow;\n }\n\n // Create the request\n var req = transport.request(options, function handleResponse(res) {\n if (aborted) return;\n\n // Response has been received so kill timer that handles request timeout\n clearTimeout(timer);\n timer = null;\n\n // uncompress the response body transparently if required\n var stream = res;\n switch (res.headers['content-encoding']) {\n /*eslint default-case:0*/\n case 'gzip':\n case 'compress':\n case 'deflate':\n // add the unzipper to the body stream processing pipeline\n stream = stream.pipe(zlib.createUnzip());\n\n // remove the content-encoding in order to not confuse downstream operations\n delete res.headers['content-encoding'];\n break;\n }\n\n // return the last request in case of redirects\n var lastRequest = res.req || req;\n\n var response = {\n status: res.statusCode,\n statusText: res.statusMessage,\n headers: res.headers,\n config: config,\n request: lastRequest\n };\n\n if (config.responseType === 'stream') {\n response.data = stream;\n settle(resolve, reject, response);\n } else {\n var responseBuffer = [];\n stream.on('data', function handleStreamData(chunk) {\n responseBuffer.push(chunk);\n\n // make sure the content length is not over the maxContentLength if specified\n if (config.maxContentLength > -1 && Buffer.concat(responseBuffer).length > config.maxContentLength) {\n reject(createError('maxContentLength size of ' + config.maxContentLength + ' exceeded',\n config, null, lastRequest));\n }\n });\n\n stream.on('error', function handleStreamError(err) {\n if (aborted) return;\n reject(enhanceError(err, config, null, lastRequest));\n });\n\n stream.on('end', function handleStreamEnd() {\n var responseData = Buffer.concat(responseBuffer);\n if (config.responseType !== 'arraybuffer') {\n responseData = responseData.toString('utf8');\n }\n\n response.data = responseData;\n settle(resolve, reject, response);\n });\n }\n });\n\n // Handle errors\n req.on('error', function handleRequestError(err) {\n if (aborted) return;\n reject(enhanceError(err, config, null, req));\n });\n\n // Handle request timeout\n if (config.timeout && !timer) {\n timer = setTimeout(function handleRequestTimeout() {\n req.abort();\n reject(createError('timeout of ' + config.timeout + 'ms exceeded', config, 'ECONNABORTED', req));\n aborted = true;\n }, config.timeout);\n }\n\n if (config.cancelToken) {\n // Handle cancellation\n config.cancelToken.promise.then(function onCanceled(cancel) {\n if (aborted) {\n return;\n }\n\n req.abort();\n reject(cancel);\n aborted = true;\n });\n }\n\n // Send the request\n if (utils.isStream(data)) {\n data.pipe(req);\n } else {\n req.end(data);\n }\n });\n};\n"]}]}