Socket
Socket
Sign inDemoInstall

postman-request

Package Overview
Dependencies
Maintainers
3
Versions
67
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

postman-request - npm Package Compare versions

Comparing version 2.80.1-postman.1 to 2.81.1-postman.1

27

index.js

@@ -17,11 +17,10 @@ // Copyright 2010-2012 Mikeal Rogers

var extend = require('extend')
, cookies = require('./lib/cookies')
, helpers = require('./lib/helpers')
var extend = require('extend')
var cookies = require('./lib/cookies')
var helpers = require('./lib/helpers')
var paramsHaveRequestBody = helpers.paramsHaveRequestBody
// organize params for patch, post, put, head, del
function initParams(uri, options, callback) {
function initParams (uri, options, callback) {
if (typeof options === 'function') {

@@ -70,2 +69,3 @@ callback = options

request.head = verbFunc('head')
request.options = verbFunc('options')
request.post = verbFunc('post')

@@ -86,3 +86,2 @@ request.put = verbFunc('put')

function wrapRequestMethod (method, options, requester, verb) {
return function (uri, opts, callback) {

@@ -118,11 +117,11 @@ var params = initParams(uri, opts, callback)

var defaults = wrapRequestMethod(self, options, requester)
var defaults = wrapRequestMethod(self, options, requester)
var verbs = ['get', 'head', 'post', 'put', 'patch', 'del', 'delete']
verbs.forEach(function(verb) {
defaults[verb] = wrapRequestMethod(self[verb], options, requester, verb)
verbs.forEach(function (verb) {
defaults[verb] = wrapRequestMethod(self[verb], options, requester, verb)
})
defaults.cookie = wrapRequestMethod(self.cookie, options, requester)
defaults.jar = self.jar
defaults.cookie = wrapRequestMethod(self.cookie, options, requester)
defaults.jar = self.jar
defaults.defaults = self.defaults

@@ -153,9 +152,9 @@ return defaults

Object.defineProperty(request, 'debug', {
enumerable : true,
get : function() {
enumerable: true,
get: function () {
return request.Request.debug
},
set : function(debug) {
set: function (debug) {
request.Request.debug = debug
}
})
'use strict'
var caseless = require('caseless')
, uuid = require('uuid')
, helpers = require('./helpers')
var uuid = require('uuid')
var helpers = require('./helpers')
var md5 = helpers.md5
, toBase64 = helpers.toBase64
var toBase64 = helpers.toBase64
function Auth (request) {

@@ -129,3 +128,3 @@ // define all public properties here

var self = this
, request = self.request
var request = self.request

@@ -147,3 +146,3 @@ var authHeader

var self = this
, request = self.request
var request = self.request

@@ -150,0 +149,0 @@ if (!self.hasAuth || self.sentAuth) { return null }

@@ -6,6 +6,5 @@ 'use strict'

var Cookie = tough.Cookie
, CookieJar = tough.CookieJar
var CookieJar = tough.CookieJar
exports.parse = function(str) {
exports.parse = function (str) {
if (str && str.uri) {

@@ -21,15 +20,15 @@ str = str.uri

// Adapt the sometimes-Async api of tough.CookieJar to our requirements
function RequestJar(store) {
function RequestJar (store) {
var self = this
self._jar = new CookieJar(store, {looseMode: true})
}
RequestJar.prototype.setCookie = function(cookieOrStr, uri, options) {
RequestJar.prototype.setCookie = function (cookieOrStr, uri, options) {
var self = this
return self._jar.setCookieSync(cookieOrStr, uri, options || {})
}
RequestJar.prototype.getCookieString = function(uri) {
RequestJar.prototype.getCookieString = function (uri) {
var self = this
return self._jar.getCookieStringSync(uri)
}
RequestJar.prototype.getCookies = function(uri) {
RequestJar.prototype.getCookies = function (uri) {
var self = this

@@ -39,4 +38,4 @@ return self._jar.getCookiesSync(uri)

exports.jar = function(store) {
exports.jar = function (store) {
return new RequestJar(store)
}
'use strict'
function formatHostname(hostname) {
function formatHostname (hostname) {
// canonicalize the hostname, so that 'oogle.com' won't match 'google.com'

@@ -8,9 +8,9 @@ return hostname.replace(/^\.*/, '.').toLowerCase()

function parseNoProxyZone(zone) {
function parseNoProxyZone (zone) {
zone = zone.trim().toLowerCase()
var zoneParts = zone.split(':', 2)
, zoneHost = formatHostname(zoneParts[0])
, zonePort = zoneParts[1]
, hasPort = zone.indexOf(':') > -1
var zoneHost = formatHostname(zoneParts[0])
var zonePort = zoneParts[1]
var hasPort = zone.indexOf(':') > -1

@@ -20,14 +20,14 @@ return {hostname: zoneHost, port: zonePort, hasPort: hasPort}

function uriInNoProxy(uri, noProxy) {
function uriInNoProxy (uri, noProxy) {
var port = uri.port || (uri.protocol === 'https:' ? '443' : '80')
, hostname = formatHostname(uri.hostname)
, noProxyList = noProxy.split(',')
var hostname = formatHostname(uri.hostname)
var noProxyList = noProxy.split(',')
// iterate through the noProxyList until it finds a match.
return noProxyList.map(parseNoProxyZone).some(function(noProxyZone) {
return noProxyList.map(parseNoProxyZone).some(function (noProxyZone) {
var isMatchedAt = hostname.indexOf(noProxyZone.hostname)
, hostnameMatched = (
isMatchedAt > -1 &&
(isMatchedAt === hostname.length - noProxyZone.hostname.length)
)
var hostnameMatched = (
isMatchedAt > -1 &&
(isMatchedAt === hostname.length - noProxyZone.hostname.length)
)

@@ -42,3 +42,3 @@ if (noProxyZone.hasPort) {

function getProxyFromURI(uri) {
function getProxyFromURI (uri) {
// Decide the proper request proxy to use based on the request URI object and the

@@ -66,3 +66,3 @@ // environmental variables (NO_PROXY, HTTP_PROXY, etc.)

return process.env.HTTP_PROXY ||
process.env.http_proxy || null
process.env.http_proxy || null
}

@@ -72,5 +72,5 @@

return process.env.HTTPS_PROXY ||
process.env.https_proxy ||
process.env.HTTP_PROXY ||
process.env.http_proxy || null
process.env.https_proxy ||
process.env.HTTP_PROXY ||
process.env.http_proxy || null
}

@@ -77,0 +77,0 @@

@@ -74,10 +74,6 @@ 'use strict'

'multipart/alternative'])) {
// reset values
data.postData.mimeType = 'multipart/form-data'
}
else if (some([
} else if (some([
'application/x-www-form-urlencoded'])) {
if (!data.postData.params) {

@@ -91,5 +87,3 @@ data.postData.text = ''

}
}
else if (some([
} else if (some([
'text/json',

@@ -99,3 +93,2 @@ 'text/x-json',

'application/x-json'])) {
data.postData.mimeType = 'application/json'

@@ -174,4 +167,3 @@

options.form = req.postData.paramsObj
}
else if (test('application/json')) {
} else if (test('application/json')) {
if (req.postData.jsonObj) {

@@ -181,4 +173,3 @@ options.body = req.postData.jsonObj

}
}
else if (test('multipart/form-data')) {
} else if (test('multipart/form-data')) {
options.formData = {}

@@ -210,4 +201,3 @@

})
}
else {
} else {
if (req.postData.text) {

@@ -214,0 +204,0 @@ options.body = req.postData.text

'use strict'
var jsonSafeStringify = require('json-stringify-safe')
, crypto = require('crypto')
, Buffer = require('safe-buffer').Buffer
var crypto = require('crypto')
var Buffer = require('safe-buffer').Buffer

@@ -11,3 +11,3 @@ var defer = typeof setImmediate === 'undefined'

function paramsHaveRequestBody(params) {
function paramsHaveRequestBody (params) {
return (

@@ -61,8 +61,8 @@ params.body ||

exports.paramsHaveRequestBody = paramsHaveRequestBody
exports.safeStringify = safeStringify
exports.md5 = md5
exports.isReadStream = isReadStream
exports.toBase64 = toBase64
exports.copy = copy
exports.version = version
exports.defer = defer
exports.safeStringify = safeStringify
exports.md5 = md5
exports.isReadStream = isReadStream
exports.toBase64 = toBase64
exports.copy = copy
exports.version = version
exports.defer = defer
'use strict'
var zlib = require('zlib')
, stream = require('stream')
, inherit = require('util').inherits
, Inflate
var stream = require('stream')
var inherit = require('util').inherits
var Inflate

@@ -8,0 +8,0 @@ Inflate = function (options) {

'use strict'
var uuid = require('uuid')
, CombinedStream = require('combined-stream')
, isstream = require('isstream')
, Buffer = require('safe-buffer').Buffer
var CombinedStream = require('combined-stream')
var isstream = require('isstream')
var Buffer = require('safe-buffer').Buffer
function Multipart (request) {

@@ -18,4 +17,4 @@ this.request = request

var self = this
, chunked = false
, parts = options.data || options
var chunked = false
var parts = options.data || options

@@ -107,3 +106,3 @@ if (!parts.forEach) {

var chunked = self.isChunked(options)
, parts = options.data || options
var parts = options.data || options

@@ -110,0 +109,0 @@ self.setHeaders(chunked)

'use strict'
var url = require('url')
, qs = require('qs')
, caseless = require('caseless')
, uuid = require('uuid')
, oauth = require('oauth-sign')
, crypto = require('crypto')
, Buffer = require('safe-buffer').Buffer
var qs = require('qs')
var caseless = require('caseless')
var uuid = require('uuid')
var oauth = require('oauth-sign')
var crypto = require('crypto')
var Buffer = require('safe-buffer').Buffer
function OAuth (request) {

@@ -26,3 +25,3 @@ this.request = request

if (!oa.oauth_timestamp) {
oa.oauth_timestamp = Math.floor( Date.now() / 1000 ).toString()
oa.oauth_timestamp = Math.floor(Date.now() / 1000).toString()
}

@@ -36,7 +35,7 @@ if (!oa.oauth_nonce) {

var consumer_secret_or_private_key = oa.oauth_consumer_secret || oa.oauth_private_key
var consumer_secret_or_private_key = oa.oauth_consumer_secret || oa.oauth_private_key // eslint-disable-line camelcase
delete oa.oauth_consumer_secret
delete oa.oauth_private_key
var token_secret = oa.oauth_token_secret
var token_secret = oa.oauth_token_secret // eslint-disable-line camelcase
delete oa.oauth_token_secret

@@ -56,4 +55,5 @@

params,
consumer_secret_or_private_key,
token_secret)
consumer_secret_or_private_key, // eslint-disable-line camelcase
token_secret // eslint-disable-line camelcase
)

@@ -67,3 +67,3 @@ if (realm) {

OAuth.prototype.buildBodyHash = function(_oauth, body) {
OAuth.prototype.buildBodyHash = function (_oauth, body) {
if (['HMAC-SHA1', 'RSA-SHA1'].indexOf(_oauth.signature_method || 'HMAC-SHA1') < 0) {

@@ -103,12 +103,12 @@ this.request.emit('error', new Error('oauth: ' + _oauth.signature_method +

var uri = self.request.uri || {}
, method = self.request.method || ''
, headers = caseless(self.request.headers)
, body = self.request.body || ''
, qsLib = self.request.qsLib || qs
var method = self.request.method || ''
var headers = caseless(self.request.headers)
var body = self.request.body || ''
var qsLib = self.request.qsLib || qs
var form
, query
, contentType = headers.get('content-type') || ''
, formContentType = 'application/x-www-form-urlencoded'
, transport = _oauth.transport_method || 'header'
var query
var contentType = headers.get('content-type') || ''
var formContentType = 'application/x-www-form-urlencoded'
var transport = _oauth.transport_method || 'header'

@@ -115,0 +115,0 @@ if (contentType.slice(0, formContentType.length) === formContentType) {

'use strict'
var qs = require('qs')
, querystring = require('querystring')
var querystring = require('querystring')
function Querystring (request) {

@@ -16,3 +15,3 @@ this.request = request

Querystring.prototype.init = function (options) {
if (this.lib) {return}
if (this.lib) { return }

@@ -19,0 +18,0 @@ this.useQuerystring = options.useQuerystring

@@ -12,3 +12,3 @@ 'use strict'

this.followOriginalHttpMethod = false
this.allowRedirect = function () {return true}
this.allowRedirect = function () { return true }
this.maxRedirects = 10

@@ -48,3 +48,3 @@ this.redirects = []

var self = this
, request = self.request
var request = self.request

@@ -83,3 +83,3 @@ var redirectTo = null

var self = this
, request = self.request
var request = self.request

@@ -118,9 +118,13 @@ var redirectTo = self.redirectTo(response)

self.redirects.push(
{ statusCode : response.statusCode
, redirectUri: redirectTo
}
)
if (self.followAllRedirects && request.method !== 'HEAD'
&& response.statusCode !== 401 && response.statusCode !== 307) {
// remove the host header if the response is a 307 & the host has changed.
// (the new host will be populated auto-magically).
// For other types of redirects, it's removed automatically (see code below)
if (self.followAllRedirects && response.statusCode === 307 && request.headers && uriPrev.host !== request.uri.host) {
request.removeHeader('host')
}
self.redirects.push({ statusCode: response.statusCode, redirectUri: redirectTo })
if (self.followAllRedirects && request.method !== 'HEAD' &&
response.statusCode !== 401 && response.statusCode !== 307) {
request.method = self.followOriginalHttpMethod ? request.method : 'GET'

@@ -127,0 +131,0 @@ }

'use strict'
var url = require('url')
, tunnel = require('tunnel-agent')
var tunnel = require('tunnel-agent')

@@ -34,6 +34,6 @@ var defaultProxyHeaderWhiteList = [

function constructProxyHost(uriObject) {
function constructProxyHost (uriObject) {
var port = uriObject.port
, protocol = uriObject.protocol
, proxyHost = uriObject.hostname + ':'
var protocol = uriObject.protocol
var proxyHost = uriObject.hostname + ':'

@@ -51,3 +51,3 @@ if (port) {

function constructProxyHeaderWhiteList(headers, proxyHeaderWhiteList) {
function constructProxyHeaderWhiteList (headers, proxyHeaderWhiteList) {
var whiteList = proxyHeaderWhiteList

@@ -73,18 +73,18 @@ .reduce(function (set, header) {

var tunnelOptions = {
proxy : {
host : proxy.hostname,
port : +proxy.port,
proxyAuth : proxy.auth,
headers : proxyHeaders
proxy: {
host: proxy.hostname,
port: +proxy.port,
proxyAuth: proxy.auth,
headers: proxyHeaders
},
headers : request.headers,
ca : request.ca,
cert : request.cert,
key : request.key,
passphrase : request.passphrase,
pfx : request.pfx,
ciphers : request.ciphers,
rejectUnauthorized : request.rejectUnauthorized,
secureOptions : request.secureOptions,
secureProtocol : request.secureProtocol
headers: request.headers,
ca: request.ca,
cert: request.cert,
key: request.key,
passphrase: request.passphrase,
pfx: request.pfx,
ciphers: request.ciphers,
rejectUnauthorized: request.rejectUnauthorized,
secureOptions: request.secureOptions,
secureProtocol: request.secureProtocol
}

@@ -95,3 +95,3 @@

function constructTunnelFnName(uri, proxy) {
function constructTunnelFnName (uri, proxy) {
var uriProtocol = (uri.protocol === 'https:' ? 'https' : 'http')

@@ -102,3 +102,3 @@ var proxyProtocol = (proxy.protocol === 'https:' ? 'Https' : 'Http')

function getTunnelFn(request) {
function getTunnelFn (request) {
var uri = request.uri

@@ -110,3 +110,2 @@ var proxy = request.proxy

function Tunnel (request) {

@@ -123,4 +122,4 @@ this.request = request

var self = this
, request = self.request
// Tunnel HTTPS by default. Allow the user to override this setting.
var request = self.request
// Tunnel HTTPS by default. Allow the user to override this setting.

@@ -143,3 +142,3 @@ // If self.tunnelOverride is set (the user specified a value), use it.

var self = this
, request = self.request
var request = self.request

@@ -146,0 +145,0 @@ options = options || {}

var url = require('url')
, urlEncoder = require('postman-url-encoder')
, EMPTY = ''
, STRING = 'string'
, AMPERSAND = '&'
, EQUALS = '='
, QUESTION_MARK = '?'
, stringify
, parse
var urlEncoder = require('postman-url-encoder')
var EMPTY = ''
var STRING = 'string'
var AMPERSAND = '&'
var EQUALS = '='
var QUESTION_MARK = '?'
var stringify
var parse

@@ -19,3 +19,3 @@ /**

var parts
if (typeof string === STRING) {
if (typeof string === STRING) { // eslint-disable-line valid-typeof
parts = string.split(AMPERSAND)

@@ -27,4 +27,4 @@ return parts.map(function (param, idx) {

var index = (typeof param === STRING) ? param.indexOf(EQUALS) : -1,
paramObj = {}
var index = (typeof param === STRING) ? param.indexOf(EQUALS) : -1 // eslint-disable-line valid-typeof
var paramObj = {}

@@ -36,4 +36,3 @@ // this means that there was no value for this key (not even blank, so we store this info) and the value is set

paramObj.value = null
}
else {
} else {
paramObj.key = param.substr(0, index)

@@ -57,4 +56,4 @@ paramObj.value = param.substr(index + 1)

return parameters ? parameters.map(function (param) {
var key = param.key
, value = param.value
var key = param.key
var value = param.value

@@ -83,7 +82,7 @@ if (value === undefined) {

module.exports = function (str) {
var parsed = url.parse(str),
rawQs,
search,
path,
qs
var parsed = url.parse(str)
var rawQs
var search
var path
var qs

@@ -90,0 +89,0 @@ rawQs = parsed.query

@@ -10,6 +10,6 @@ {

],
"version": "2.80.1-postman.1",
"version": "2.81.1-postman.1",
"repository": {
"type": "git",
"url": "https://github.com/postmanlabs/postman-request.git"
"url": "https://github.com/request/request.git"
},

@@ -27,3 +27,3 @@ "license": "Apache-2.0",

"dependencies": {
"aws-sign2": "~0.6.0",
"aws-sign2": "~0.7.0",
"aws4": "^1.2.1",

@@ -35,3 +35,3 @@ "caseless": "~0.12.0",

"form-data": "~2.1.1",
"har-validator": "~4.2.1",
"har-validator": "~5.0.2",
"hawk": "~3.1.3",

@@ -44,5 +44,5 @@ "http-signature": "~1.1.0",

"oauth-sign": "~0.8.1",
"postman-url-encoder": "^1.0.0",
"performance-now": "^0.2.0",
"qs": "~6.3.0",
"postman-url-encoder": "1.0.1",
"qs": "~6.4.0",
"safe-buffer": "^5.0.1",

@@ -59,3 +59,3 @@ "stringstream": "~0.0.4",

"test-browser": "node tests/browser/start.js",
"lint": "eslint lib/ *.js tests/ && echo Lint passed."
"lint": "standard"
},

@@ -67,5 +67,4 @@ "devDependencies": {

"buffer-equal": "^1.0.0",
"codecov": "^1.0.1",
"codecov": "^2.0.2",
"coveralls": "^2.11.4",
"eslint": "^2.5.3",
"function-bind": "^1.0.2",

@@ -82,2 +81,3 @@ "istanbul": "^0.4.0",

"server-destroy": "^1.0.1",
"standard": "^9.0.0",
"tape": "^4.6.0",

@@ -88,3 +88,2 @@ "taper": "^0.5.0"

"ignore": [
"eslint",
"hawk",

@@ -91,0 +90,0 @@ "har-validator"

# Request - Simplified HTTP client
This is a fork of the excellent `request` module, which is used inside Postman Runtime.
This is a fork of the excellent `request` module, which is used inside Postman Runtime. It contains a few bugfixes that are not fixed in `request`:
- Handling of old-style deflate responses: https://github.com/request/request/issues/2197
- Correct encoding of URL Parameters: https://github.com/nodejs/node/issues/8321
- Redirect behavior for 307 responses when Host header is set: https://github.com/request/request/issues/2666
## Super simple to use

@@ -23,2 +27,3 @@

- [Streaming](#streaming)
- [Promises & Async/Await](#promises--asyncawait)
- [Forms](#forms)

@@ -138,2 +143,18 @@ - [HTTP Authentication](#http-authentication)

## Promises & Async/Await
`request` supports both streaming and callback interfaces natively. If you'd like `request` to return a Promise instead, you can use an alternative interface wrapper for `request`. These wrappers can be useful if you prefer to work with Promises, or if you'd like to use `async`/`await` in ES2017.
Several alternative interfaces are provided by the request team, including:
- [`request-promise`](https://github.com/request/request-promise) (uses [Bluebird](https://github.com/petkaantonov/bluebird) Promises)
- [`request-promise-native`](https://github.com/request/request-promise-native) (uses native Promises)
- [`request-promise-any`](https://github.com/request/request-promise-any) (uses [any-promise](https://www.npmjs.com/package/any-promise) Promises)
[back to top](#table-of-contents)
---
## Forms

@@ -871,52 +892,16 @@

### request.put
### request.METHOD()
Same as `request()`, but defaults to `method: "PUT"`.
These HTTP method convenience functions act just like `request()` but with a default method already set for you:
```js
request.put(url)
```
- *request.get()*: Defaults to `method: "GET"`.
- *request.post()*: Defaults to `method: "POST"`.
- *request.put()*: Defaults to `method: "PUT"`.
- *request.patch()*: Defaults to `method: "PATCH"`.
- *request.del() / request.delete()*: Defaults to `method: "DELETE"`.
- *request.head()*: Defaults to `method: "HEAD"`.
- *request.options()*: Defaults to `method: "OPTIONS"`.
### request.patch
### request.cookie()
Same as `request()`, but defaults to `method: "PATCH"`.
```js
request.patch(url)
```
### request.post
Same as `request()`, but defaults to `method: "POST"`.
```js
request.post(url)
```
### request.head
Same as `request()`, but defaults to `method: "HEAD"`.
```js
request.head(url)
```
### request.del / request.delete
Same as `request()`, but defaults to `method: "DELETE"`.
```js
request.del(url)
request.delete(url)
```
### request.get
Same as `request()` (for uniformity).
```js
request.get(url)
```
### request.cookie
Function that creates a new cookie.

@@ -1034,3 +1019,4 @@

}
).on('data', function(data) {
)
.on('data', function(data) {
// decompressed data as it is received

@@ -1037,0 +1023,0 @@ console.log('decoded chunk: ' + data)

'use strict'
var http = require('http')
, https = require('https')
, url = require('url')
, util = require('util')
, stream = require('stream')
, zlib = require('zlib')
, hawk = require('hawk')
, aws2 = require('aws-sign2')
, aws4 = require('aws4')
, httpSignature = require('http-signature')
, mime = require('mime-types')
, stringstream = require('stringstream')
, caseless = require('caseless')
, ForeverAgent = require('forever-agent')
, FormData = require('form-data')
, extend = require('extend')
, isstream = require('isstream')
, isTypedArray = require('is-typedarray').strict
, helpers = require('./lib/helpers')
, cookies = require('./lib/cookies')
, inflate = require('./lib/inflate')
, urlParse = require('./lib/url-parse')
, getProxyFromURI = require('./lib/getProxyFromURI')
, Querystring = require('./lib/querystring').Querystring
, Har = require('./lib/har').Har
, Auth = require('./lib/auth').Auth
, OAuth = require('./lib/oauth').OAuth
, Multipart = require('./lib/multipart').Multipart
, Redirect = require('./lib/redirect').Redirect
, Tunnel = require('./lib/tunnel').Tunnel
, now = require('performance-now')
, Buffer = require('safe-buffer').Buffer
var https = require('https')
var url = require('url')
var util = require('util')
var stream = require('stream')
var zlib = require('zlib')
var hawk = require('hawk')
var aws2 = require('aws-sign2')
var aws4 = require('aws4')
var httpSignature = require('http-signature')
var mime = require('mime-types')
var stringstream = require('stringstream')
var caseless = require('caseless')
var ForeverAgent = require('forever-agent')
var FormData = require('form-data')
var extend = require('extend')
var isstream = require('isstream')
var isTypedArray = require('is-typedarray').strict
var helpers = require('./lib/helpers')
var cookies = require('./lib/cookies')
var getProxyFromURI = require('./lib/getProxyFromURI')
var Querystring = require('./lib/querystring').Querystring
var Har = require('./lib/har').Har
var Auth = require('./lib/auth').Auth
var OAuth = require('./lib/oauth').OAuth
var Multipart = require('./lib/multipart').Multipart
var Redirect = require('./lib/redirect').Redirect
var Tunnel = require('./lib/tunnel').Tunnel
var now = require('performance-now')
var Buffer = require('safe-buffer').Buffer
var inflate = require('./lib/inflate')
var urlParse = require('./lib/url-parse')
var safeStringify = helpers.safeStringify
, isReadStream = helpers.isReadStream
, toBase64 = helpers.toBase64
, defer = helpers.defer
, copy = helpers.copy
, version = helpers.version
, globalCookieJar = cookies.jar()
var isReadStream = helpers.isReadStream
var toBase64 = helpers.toBase64
var defer = helpers.defer
var copy = helpers.copy
var version = helpers.version
var globalCookieJar = cookies.jar()
var globalPool = {}
function filterForNonReserved(reserved, options) {
function filterForNonReserved (reserved, options) {
// Filter out properties that are not reserved.

@@ -61,3 +59,3 @@ // Reserved values are passed in at call site.

function filterOutReservedFunctions(reserved, options) {
function filterOutReservedFunctions (reserved, options) {
// Filter out properties that are functions and are reserved.

@@ -75,7 +73,6 @@ // Reserved values are passed in at call site.

return object
}
// Return a simpler request object to allow serialization
function requestToJSON() {
function requestToJSON () {
var self = this

@@ -90,3 +87,3 @@ return {

// Return a simpler response object to allow serialization
function responseToJSON() {
function responseToJSON () {
var self = this

@@ -142,3 +139,3 @@ return {

Request.debug = process.env.NODE_DEBUG && /\brequest\b/.test(process.env.NODE_DEBUG)
function debug() {
function debug () {
if (Request.debug) {

@@ -267,3 +264,3 @@ console.error('REQUEST %s', util.format.apply(util, arguments))

if (!self.uri.pathname) {self.uri.pathname = '/'}
if (!self.uri.pathname) { self.uri.pathname = '/' }

@@ -310,4 +307,3 @@ if (!(self.uri.host || (self.uri.hostname && self.uri.port)) && !self.uri.isUnix) {

if (!self.uri.port) {
if (self.uri.protocol === 'http:') {self.uri.port = 80}
else if (self.uri.protocol === 'https:') {self.uri.port = 443}
if (self.uri.protocol === 'http:') { self.uri.port = 80 } else if (self.uri.protocol === 'https:') { self.uri.port = 443 }
}

@@ -399,3 +395,3 @@

if (self.uri.auth && !self.hasHeader('authorization')) {
var uriAuthPieces = self.uri.auth.split(':').map(function(item) {return self._qs.unescape(item)})
var uriAuthPieces = self.uri.auth.split(':').map(function (item) { return self._qs.unescape(item) })
self.auth(uriAuthPieces[0], uriAuthPieces.slice(1).join(':'), true)

@@ -405,3 +401,3 @@ }

if (!self.tunnel && self.proxy && self.proxy.auth && !self.hasHeader('proxy-authorization')) {
var proxyAuthPieces = self.proxy.auth.split(':').map(function(item) {return self._qs.unescape(item)})
var proxyAuthPieces = self.proxy.auth.split(':').map(function (item) { return self._qs.unescape(item) })
var authHeader = 'Basic ' + toBase64(proxyAuthPieces.join(':'))

@@ -438,7 +434,5 @@ self.setHeader('proxy-authorization', authHeader)

length = Buffer.byteLength(self.body)
}
else if (Array.isArray(self.body)) {
length = self.body.reduce(function (a, b) {return a + b.length}, 0)
}
else {
} else if (Array.isArray(self.body)) {
length = self.body.reduce(function (a, b) { return a + b.length }, 0)
} else {
length = self.body.length

@@ -465,4 +459,4 @@ }

var protocol = self.proxy && !self.tunnel ? self.proxy.protocol : self.uri.protocol
, defaultModules = {'http:':http, 'https:':https}
, httpModules = self.httpModules || {}
var defaultModules = {'http:': http, 'https:': https}
var httpModules = self.httpModules || {}

@@ -532,5 +526,5 @@ self.httpModule = httpModules[protocol] || defaultModules[protocol]

// self.on('pipe', function () {
// console.error('You have already piped to this stream. Pipeing twice is likely to break the request.')
// })
// self.on('pipe', function () {
// console.error('You have already piped to this stream. Pipeing twice is likely to break the request.')
// })
})

@@ -547,4 +541,3 @@

self._form.pipe(self)
}
else if (self._auth.hasAuth && self._auth.sentAuth) {
} else if (self._auth.hasAuth && self._auth.sentAuth) {
self._form.pipe(self)

@@ -600,3 +593,2 @@ }

})
}

@@ -764,4 +756,5 @@

if (!self.proxy && !(self.uri.isUnix)) {
try { extend(reqOptions, urlParse(self.uri.href)) }
catch (e) { } // nothing to do if urlParse fails, "extend" never throws an error.
try {
extend(reqOptions, urlParse(self.uri.href))
} catch (e) { } // nothing to do if urlParse fails, "extend" never throws an error.
}

@@ -803,6 +796,7 @@

self.req.on('error', self.onRequestError.bind(self))
self.req.on('drain', function() {
self.req.on('drain', function () {
self.emit('drain')
})
self.req.on('socket', function(socket) {
self.req.on('socket', function (socket) {
// `._connecting` was the old property which was made public in node v6.1.0

@@ -814,7 +808,7 @@ var isConnecting = socket._connecting || socket.connecting

if (isConnecting) {
var onLookupTiming = function() {
var onLookupTiming = function () {
self.timings.lookup = now() - self.startTimeNow
}
var onConnectTiming = function() {
var onConnectTiming = function () {
self.timings.connect = now() - self.startTimeNow

@@ -827,3 +821,3 @@ }

// clean up timing event listeners if needed on error
self.req.once('error', function() {
self.req.once('error', function () {
socket.removeListener('lookup', onLookupTiming)

@@ -835,3 +829,3 @@ socket.removeListener('connect', onConnectTiming)

var setReqTimeout = function() {
var setReqTimeout = function () {
// This timeout sets the amount of time to wait *between* bytes sent

@@ -858,3 +852,3 @@ // from the server once connected.

if (isConnecting) {
var onReqSockConnect = function() {
var onReqSockConnect = function () {
socket.removeListener('connect', onReqSockConnect)

@@ -868,3 +862,3 @@ clearTimeout(self.timeoutTimer)

self.req.on('error', function(err) {
self.req.on('error', function (err) { // eslint-disable-line handle-callback-err
socket.removeListener('connect', onReqSockConnect)

@@ -901,4 +895,4 @@ })

}
if (self.req && self.req._reusedSocket && error.code === 'ECONNRESET'
&& self.agent.addRequestNoreuse) {
if (self.req && self.req._reusedSocket && error.code === 'ECONNRESET' &&
self.agent.addRequestNoreuse) {
self.agent = { addRequest: self.agent.addRequestNoreuse.bind(self.agent) }

@@ -924,3 +918,3 @@ self.start()

debug('onRequestResponse', self.uri.href, response.statusCode, response.headers)
response.on('end', function() {
response.on('end', function () {
if (self.timing) {

@@ -981,4 +975,4 @@ self.timings.end = now() - self.startTimeNow

if (self.httpModule === https &&
self.strictSSL && (!response.hasOwnProperty('socket') ||
!response.socket.authorized)) {
self.strictSSL && (!response.hasOwnProperty('socket') ||
!response.socket.authorized)) {
debug('strict ssl error', self.uri.href)

@@ -1008,3 +1002,3 @@ var sslErr = response.hasOwnProperty('socket') ? response.socket.authorizationError : self.uri.href + ' does not support SSL'

var addCookie = function (cookie) {
//set the cookie if it's domain in the href's domain.
// set the cookie if it's domain in the href's domain.
try {

@@ -1045,9 +1039,9 @@ targetCookieJar.setCookie(cookie, self.uri.href, {ignoreError: true})

return (
self.method === 'HEAD'
self.method === 'HEAD' ||
// Informational
|| (code >= 100 && code < 200)
(code >= 100 && code < 200) ||
// No Content
|| code === 204
code === 204 ||
// Not Modified
|| code === 304
code === 304
)

@@ -1066,4 +1060,4 @@ }

var zlibOptions = {
flush: zlib.Z_SYNC_FLUSH
, finishFlush: zlib.Z_SYNC_FLUSH
flush: zlib.Z_SYNC_FLUSH,
finishFlush: zlib.Z_SYNC_FLUSH
}

@@ -1130,9 +1124,7 @@

})
responseContent.on('close', function () {self.emit('close')})
responseContent.on('close', function () { self.emit('close') })
if (self.callback) {
self.readResponseBody(response)
}
//if no callback
else {
} else { // if no callback
self.on('end', function () {

@@ -1152,6 +1144,6 @@ if (self._aborted) {

var self = this
debug('reading response\'s body')
debug("reading response's body")
var buffers = []
, bufferLength = 0
, strings = []
var bufferLength = 0
var strings = []

@@ -1217,4 +1209,3 @@ self.on('data', function (chunk) {

self.req.abort()
}
else if (self.response) {
} else if (self.response) {
self.response.destroy()

@@ -1235,4 +1226,3 @@ }

dest.setHeader(ctname, response.headers[ctname])
}
else {
} else {
dest.headers[ctname] = response.headers[ctname]

@@ -1308,3 +1298,3 @@ }

self._form = new FormData()
self._form.on('error', function(err) {
self._form.on('error', function (err) {
err.message = 'form-data: ' + err.message

@@ -1384,4 +1374,4 @@ self.emit('error', err)

var unixParts = this.uri.path.split(':')
, host = unixParts[0]
, path = unixParts[1]
var host = unixParts[0]
var path = unixParts[1]
// Apply unix properties to request

@@ -1396,3 +1386,2 @@ this.socketPath = host

Request.prototype.auth = function (user, pass, sendImmediately, bearer) {

@@ -1413,3 +1402,3 @@ var self = this

if (opts.sign_version == 4 || opts.sign_version == '4') {
if (opts.sign_version === 4 || opts.sign_version === '4') {
// use aws4

@@ -1435,16 +1424,15 @@ var options = {

}
}
else {
} else {
// default: use aws-sign2
var date = new Date()
self.setHeader('date', date.toUTCString())
var auth =
{ key: opts.key
, secret: opts.secret
, verb: self.method.toUpperCase()
, date: date
, contentType: self.getHeader('content-type') || ''
, md5: self.getHeader('content-md5') || ''
, amazonHeaders: aws2.canonicalizeHeaders(self.headers)
}
var auth = {
key: opts.key,
secret: opts.secret,
verb: self.method.toUpperCase(),
date: date,
contentType: self.getHeader('content-type') || '',
md5: self.getHeader('content-md5') || '',
amazonHeaders: aws2.canonicalizeHeaders(self.headers)
}
var path = self.uri.path

@@ -1469,6 +1457,6 @@ if (opts.bucket && path) {

httpSignature.signRequest({
getHeader: function(header) {
getHeader: function (header) {
return self.getHeader(header, self.headers)
},
setHeader: function(header, value) {
setHeader: function (header, value) {
self.setHeader(header, value)

@@ -1510,3 +1498,3 @@ },

var urihref = self.uri.href
//fetch cookie in the Specified host
// fetch cookie in the Specified host
if (targetCookieJar) {

@@ -1517,3 +1505,3 @@ cookies = targetCookieJar.getCookieString(urihref)

//if need cookie and cookie is not empty
// if need cookie and cookie is not empty
if (cookies && cookies.length) {

@@ -1531,3 +1519,2 @@ if (self.originalCookieHeader) {

// Stream API

@@ -1555,3 +1542,3 @@ Request.prototype.pipe = function (dest, opts) {

var self = this
if (self._aborted) {return}
if (self._aborted) { return }

@@ -1567,3 +1554,3 @@ if (!self._started) {

var self = this
if (self._aborted) {return}
if (self._aborted) { return }

@@ -1570,0 +1557,0 @@ if (chunk) {

Sorry, the diff of this file is too big to display

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc