24 KiB
24 KiB
This HISTORY log is deprecated
Please see GitHub releases page for the current changelog.
4.1.0 (2018-12-26)
.connect()
IP/DNS override option (Kornel).trustLocalhost()
option for allowing broken HTTPS onlocalhost
.abort()
used with promises rejects the promise.
4.0.0 (2018-11-17)
Breaking changes
- Node.js v4 has reached it's end of life, so we no longer support it. It's v6+ or later. We recommend Node.js 10.
- We now use ES6 in the browser code, too.
- If you're using Browserify or Webpack to package code for Internet Explorer, you will also have to use Babel.
- The pre-built node_modules/superagent.js is still ES5-compatible.
.end(…)
returnsundefined
instead of the request. If you need the request object after calling.end()
(and you probably don't), save it in a variable and callrequest.end(…)
. Consider not using.end()
at all, and migrating to promises by calling.then()
instead.- In Node, responses with unknown MIME type are buffered by default. To get old behavior, if you use custom unbuffered parsers, add
.buffer(false)
to requests or setsuperagent.buffer[yourMimeType] = false
. - Invalid uses of
.pipe()
throw.
Minor changes
- Throw if
req.abort().end()
is called - Throw if using unsupported mix of send and field
- Reject
.end()
promise on all error events (Kornel Lesiński) - Set
https.servername
from theHost
header (Kornel Lesiński) - Leave backticks unencoded in query strings where possible (Ethan Resnick)
- Update node-mime to 2.x (Alexey Kucherenko)
- Allow default buffer settings based on response-type (shrey)
response.buffered
is more accurate.
3.8.3 (2018-04-29)
- Add flags for 201 & 422 responses (Nikhil Fadnis)
- Emit progress event while uploading Node
Buffer
via send method (Sergey Akhalkov) - Fixed setting correct cookies for redirects (Damien Clark)
- Replace .catch with ['catch'] for IE9 Support (Miguel Stevens)
3.8.2 (2017-12-09)
- Fixed handling of exceptions thrown from callbacks
- Stricter matching of
+json
MIME types.
3.8.1 (2017-11-08)
- Clear authorization header on cross-domain redirect
3.8.0
- Added support for "globally" defined headers and event handlers via
superagent.agent()
. It now remembers default settings for all its requests. - Added optional callback to
.retry()
(Alexander Murphy) - Unified auth args handling in node/browser (Edmundo Alvarez)
- Fixed error handling in zlib pipes (Kornel)
- Documented that 3xx status codes are errors (Mickey Reiss)
3.7.0 (2017-10-17)
- Limit maximum response size. Prevents zip bombs (Kornel)
- Catch and pass along errors in
.ok()
callback (Jeremy Ruppel) - Fixed parsing of XHR headers without a newline (nsf)
3.6.2 (2017-10-02)
- Upgrade MIME type dependency to a newer, secure version
- Recognize PDF MIME as binary
- Fix for error in subsequent require() calls (Steven de Salas)
3.6.0 (2017-08-20)
- Support disabling TCP_NODELAY option (#1240) (xiamengyu)
- Send payload in query string for GET and HEAD shorthand API (Peter Lyons)
- Support passphrase with pfx certificate (Paul Westerdale (ABRS Limited))
- Documentation improvements (Peter Lyons)
- Fixed duplicated query string params (#1200) (Kornel)
3.5.1 (2017-03-18)
- Allow crossDomain errors to be retried (#1194) (Michael Olson)
- Read responseType property from the correct object (Julien Dupouy)
- Check for ownProperty before adding header (Lucas Vieira)
3.5.0 (2017-02-23)
- Add errno to distinguish between request timeout and body download timeout (#1184) (Kornel Lesiński)
- Warn about bogus timeout options (#1185) (Kornel Lesiński)
3.4.4 (2017-02-17)
- Treat videos like images (Kornel Lesiński)
- Avoid renaming module (Kornel Lesiński)
3.4.3 (2017-02-14)
- Fixed being able to define own parsers when their mime type starts with
text/
(Damien Clark) withCredentials(false)
(Andy Woods)- Use
formData.on
instead of.once
(Kornel Lesiński) - Ignore
attach("file",null)
(Kornel Lesiński)
3.4.1 (2017-01-29)
- Allow
retry()
andretry(0)
(Alexander Pope) - Allow optional body/data in DELETE requests (Alpha Shuro)
- Fixed query string on retried requests (Kornel Lesiński)
3.4.0 (2017-01-25)
- New
.retry(n)
method anderr.retries
(Alexander Pope) - Docs for HTTPS request (Jun Wan Goh)
3.3.1 (2016-12-17)
- Fixed "double callback bug" warning on timeouts of gzipped responses
3.3.0 (2016-12-14)
- Added
.ok(callback)
that allows customizing which responses are errors (Kornel Lesiński) - Added
.responseType()
to Node version (Kornel Lesiński) - Added
.parse()
to browser version (jakepearson) - Fixed parse error when using
responseType('blob')
(Kornel Lesiński)
3.2.0 (2016-12-11)
- Added
.timeout({response:ms})
, which allows limiting maximum response time independently from total download time (Kornel Lesiński) - Added warnings when
.end()
is called more than once (Kornel Lesiński) - Added
response.links
to browser version (Lukas Eipert) btoa
is no longer required in IE9 (Kornel Lesiński)- Fixed
.sortQuery()
on URLs without query strings (Kornel Lesiński) - Refactored common response code into
ResponseBase
(Lukas Eipert)
3.1.0 (2016-11-28)
- Added
.sortQuery()
(vicanso) - Added support for arrays and bools in
.field()
(Kornel Lesiński) - Made
superagent.Request
subclassable without need to patch all static methods (Kornel Lesiński)
3.0.0 (2016-11-19)
- Dropped support for Node 0.x. Please upgrade to at least Node 4.
- Dropped support for componentjs (Damien Caselli)
- Removed deprecated
.part()
/superagent.Part
APIs. - Removed unreliable
.body
property on internal response object used by unbuffered parsers. Note: the normalresponse.body
is unaffected. - Multiple
.send()
calls mixingBuffer
/Blob
and JSON data are not possible and will now throw instead of messing up the data. - Improved
.send()
data object type check (Fernando Mendes) - Added common prototype for Node and browser versions (Andreas Helmberger)
- Added
http+unix:
schema to support Unix sockets (Yuki KAN) - Added full
attach
options parameter in the Node version (Lapo Luchini) - Added
pfx
TLS option with newpfx()
method. (Reid Burke) - Internally changed
.on
to.once
to prevent possible memory leaks (Matt Blair) - Made all errors reported as an event (Kornel Lesiński)
2.3.0 (2016-09-20)
- Enabled
.field()
to handle objects (Affan Shahid) - Added authentication with client certificates (terusus)
- Added
.catch()
for more Promise-like interface (Maxim Samoilov, Kornel Lesiński) - Silenced errors from incomplete gzip streams for compatibility with web browsers (Kornel Lesiński)
- Fixed
event.direction
in uploads (Kornel Lesiński) - Fixed returned value of overwritten response object's
on()
method (Juan Dopazo)
2.2.0 (2016-08-13)
- Added
timedout
property to node Request instance (Alexander Pope) - Unified
null
querystring values in node and browser environments. (George Chung)
2.1.0 (2016-06-14)
- Refactored async parsers. Now the
end
callback waits for async parsers to finish (Kornel Lesiński) - Errors thrown in
.end()
callback don't cause the callback to be called twice (Kornel Lesiński) - Added
headers
totoJSON()
(Tao)
2.0.0 (2016-05-29)
Breaking changes
Breaking changes are in rarely used functionality, so we hope upgrade will be smooth for most users.
- Browser: The
.parse()
method has been renamed to.serialize()
for consistency with NodeJS version. - Browser: Query string keys without a value used to be parsed as
'undefined'
, now their value is''
(empty string) (shura, Kornel Lesiński). - NodeJS: The
redirect
event is called after new query string and headers have been set and is allowed to override the request URL (Kornel Lesiński) .then()
returns a realPromise
. Note that use of superagent with promises now requires a globalPromise
object. If you target Internet Explorer or Node 0.10, you'll needrequire('es6-promise').polyfill()
or similar.- Upgraded all dependencies (Peter Lyons)
- Renamed properties documented as
@api private
to have_prefixed
names (Kornel Lesiński)
Probably not breaking changes:
- Extracted common functions to request-base (Peter Lyons)
- Fixed race condition in pipe tests (Peter Lyons)
- Handle
FormData
error events (scriptype) - Fixed wrong jsdoc of Request#attach (George Chung)
- Updated and improved tests (Peter Lyons)
request.head()
supports.redirects(5)
call (Kornel Lesiński)response
event is also emitted when using.pipe()
1.8.2 (2016-03-20)
- Fixed handling of HTTP status 204 with content-encoding: gzip (Andrew Shelton)
- Handling of FormData error events (scriptype)
- Fixed parsing of
vnd+json
MIME types (Kornel Lesiński) - Aliased browser implementation of
.parse()
as.serialize()
for forward compatibility
1.8.1 (2016-03-14)
- Fixed form-data incompatibility with IE9
1.8.0 (2016-03-09)
- Extracted common code into request-base class (Peter Lyons)
- It does not affect the public API, but please let us know if you notice any plugins/subclasses breaking!
- Added option
{type:'auto'}
toauth
method, which enables browser-native auth types (Jungle, Askar Yusupov) - Added
responseType()
to set XHRresponseType
(chris) - Switched to form-data for browserify-compatible
FormData
(Peter Lyons) - Added
statusCode
to error response when JSON response is malformed (mattdell) - Prevented TCP port conflicts in all tests (Peter Lyons)
- Updated form-data dependency
1.7.2 (2016-01-26)
- Fix case-sensitivity of header fields introduced by
a4ddd6a
. (Edward J. Jinotti) - bump extend dependency, as former version did not contain any license information (Lukas Eipert)
1.7.1 (2016-01-21)
- Fixed a conflict with express when using npm 3.x (Glenn)
- Fixed redirects after a multipart/form-data POST request (cyclist2)
1.7.0 (2016-01-18)
- When attaching files, read default filename from the
File
object (JD Isaacks) - Add
direction
property toprogress
events (Joseph Dykstra) - Update component-emitter & formidable (Kornel Lesiński)
- Don't re-encode query string needlessly (Ruben Verborgh)
- ensure querystring is appended when doing
stream.pipe(request)
(Keith Grennan) - change set header function, not call
this.request()
until callthis.end()
(vicanso) - Add no-op
withCredentials
to Node API (markdalgleish) - fix
delete
breaking on ie8 (kenjiokabe) - Don't let request error override responses (Clay Reimann)
- Increased number of tests shared between node and client (Kornel Lesiński)
1.6.0/1.6.1 (2015-12-09)
- avoid misleading CORS error message
- added 'progress' event on file/form upload in Node (Olivier Lalonde)
- return raw response if the response parsing fails (Rei Colina)
- parse content-types ending with
+json
as JSON (Eiryyy) - fix to avoid throwing errors on aborted requests (gjurgens)
- retain cookies on redirect when hosts match (Tom Conroy)
- added Bower manifest (Johnny Freeman)
- upgrade to latest cookiejar (Andy Burke)
1.5.0 (2015-11-30)
- encode array values as
key=1&key=2&key=3
etc... (aalpern, Davis Kim) - avoid the error which is omitted from 'socket hang up'
- faster JSON parsing, handling of zlib errors (jbellenger)
- fix IE11 sends 'undefined' string if data was undefined (Vadim Goncharov)
- alias
del()
method asdelete()
(Aaron Krause) - revert Request#parse since it was actually Response#parse
1.4.0 (2015-09-14)
- add Request#parse method to client library
- add missing statusCode in client response
- don't apply JSON heuristics if a valid parser is found
- fix detection of root object for webworkers
1.3.0 (2015-08-05)
- fix incorrect content-length of data set to buffer
- serialize request data takes into account charsets
- add basic promise support via a
then
function
1.2.0 (2015-04-13)
- add progress events to downlodas
- make usable in webworkers
- add support for 308 redirects
- update node-form-data dependency
- update to work in react native
- update node-mime dependency
1.1.0 (2015-03-13)
- Fix responseType checks without xhr2 and ie9 tests (rase-)
- errors have .status and .response fields if applicable (defunctzombie)
- fix end callback called before saving cookies (rase-)
1.0.0 / 2015-03-08
- All non-200 responses are treated as errors now. (The callback is called with an error when the response has a status < 200 or >= 300 now. In previous versions this would not have raised an error and the client would have to check the
res
object. See #283. - keep timeouts intact across redirects (hopkinsth)
- handle falsy json values (themaarten)
- fire response events in browser version (Schoonology)
- getXHR exported in client version (KidsKilla)
- remove arity check on
.end()
callbacks (defunctzombie) - avoid setting content-type for host objects (rexxars)
- don't index array strings in querystring (travisjeffery)
- fix pipe() with redirects (cyrilis)
- add xhr2 file download (vstirbu)
- set default response type to text/plain if not specified (warrenseine)
0.21.0 / 2014-11-11
- Trim text before parsing json (gjohnson)
- Update tests to express 4 (gaastonsr)
- Prevent double callback when error is thrown (pgn-vole)
- Fix missing clearTimeout (nickdima)
- Update debug (TooTallNate)
0.20.0 / 2014-10-02
- Add toJSON() to request and response instances. (yields)
- Prevent HEAD requests from getting parsed. (gjohnson)
- Update debug. (TooTallNate)
0.19.1 / 2014-09-24
- Fix basic auth issue when password is falsey value. (gjohnson)
0.19.0 / 2014-09-24
- Add unset() to browser. (shesek)
- Prefer XHR over ActiveX. (omeid)
- Catch parse errors. (jacwright)
- Update qs dependency. (wercker)
- Add use() to node. (Financial-Times)
- Add response text to errors. (yields)
- Don't send empty cookie headers. (undoZen)
- Don't parse empty response bodies. (DveMac)
- Use hostname when setting cookie host. (prasunsultania)
0.18.2 / 2014-07-12
- Handle parser errors. (kof)
- Ensure not to use default parsers when there is a user defined one. (kof)
0.18.1 / 2014-07-05
- Upgrade cookiejar dependency (juanpin)
- Support image mime types (nebulade)
- Make .agent chainable (kof)
- Upgrade debug (TooTallNate)
- Fix docs (aheckmann)
0.18.0 / 2014-04-29
- Use "form-data" module for the multipart/form-data implementation. (TooTallNate)
- Add basic
field()
andattach()
functions for HTML5 FormData. (TooTallNate) - Deprecate
part()
. (TooTallNate) - Set default user-agent header. (bevacqua)
- Add
unset()
method for removing headers. (bevacqua) - Update cookiejar. (missinglink)
- Fix response error formatting. (shesek)
0.17.0 / 2014-03-06
- supply uri malformed error to the callback (yields)
- add request event (yields)
- allow simple auth (yields)
- add request event (yields)
- switch to component/reduce (visionmedia)
- fix part content-disposition (mscdex)
- add browser testing via zuul (defunctzombie)
- adds request.use() (johntron)
0.16.0 / 2014-01-07
- remove support for 0.6 (superjoe30)
- fix CORS withCredentials (wejendorp)
- add "test" script (superjoe30)
- add request .accept() method (nickl-)
- add xml to mime types mappings (nickl-)
- fix parse body error on HEAD requests (gjohnson)
- fix documentation typos (matteofigus)
- fix content-type + charset (bengourley)
- fix null values on query parameters (cristiandouce)
0.15.7 / 2013-10-19
- pin should.js to 1.3.0 due to breaking change in 2.0.x
- fix browserify regression
0.15.5 / 2013-10-09
- add browser field to support browserify
- fix .field() value number support
0.15.4 / 2013-07-09
- node: add a Request#agent() function to set the http Agent to use
0.15.3 / 2013-07-05
- fix .pipe() unzipping on more recent nodes. Closes #240
- fix passing an empty object to .query() no longer appends "?"
- fix formidable error handling
- update formidable
0.15.2 / 2013-07-02
- fix: emit 'end' when piping.
0.15.1 / 2013-06-26
- add try/catch around parseLinks
0.15.0 / 2013-06-25
- make
Response#toError()
have a more meaningfulmessage
0.14.9 / 2013-06-15
- add debug()s to the node client
- add .abort() method to node client
0.14.8 / 2013-06-13
- set .agent = false always
- remove X-Requested-With. Closes #189
0.14.7 / 2013-06-06
- fix unzip error handling
0.14.6 / 2013-05-23
- fix HEAD unzip bug
0.14.5 / 2013-05-23
- add flag to ensure the callback is never invoked twice
0.14.4 / 2013-05-22
- add superagent.js build output
- update qs
- update emitter-component
- revert "add browser field to support browserify" see GH-221
0.14.3 / 2013-05-18
- add browser field to support browserify
0.14.2/ 2013-05-07
- add host object check to fix serialization of File/Blobs etc as json
0.14.1 / 2013-04-09
- update qs
0.14.0 / 2013-04-02
- add client-side basic auth
- fix retaining of .set() header field case
0.13.0 / 2013-03-13
- add progress events to client
- add simple example
- add res.headers as alias of res.header for browser client
- add res.get(field) to node/client
0.12.4 / 2013-02-11
- fix get content-type even if can't get other headers in firefox. fixes #181
0.12.3 / 2013-02-11
- add quick "progress" event support
0.12.2 / 2013-02-04
- add test to check if response acts as a readable stream
- add ReadableStream in the Response prototype.
- add test to assert correct redirection when the host changes in the location header.
- add default Accept-Encoding. Closes #155
- fix req.pipe() return value of original stream for node parity. Closes #171
- remove the host header when cleaning headers to properly follow the redirection.
0.12.1 / 2013-01-10
- add x-domain error handling
0.12.0 / 2013-01-04
- add header persistence on redirects
0.11.0 / 2013-01-02
- add .error Error object. Closes #156
- add forcing of res.text removal for FF HEAD responses. Closes #162
- add reduce component usage. Closes #90
- move better-assert dep to development deps
0.10.0 / 2012-11-14
- add req.timeout(ms) support for the client
0.9.10 / 2012-11-14
- fix client-side .query(str) support
0.9.9 / 2012-11-14
- add .parse(fn) support
- fix socket hangup with dates in querystring. Closes #146
- fix socket hangup "error" event when a callback of arity 2 is provided
0.9.8 / 2012-11-03
- add emission of error from
Request#callback()
- add a better fix for nodes weird socket hang up error
- add PUT/POST/PATCH data support to client short-hand functions
- add .license property to component.json
- change client portion to build using component(1)
- fix GET body support [guille]
0.9.7 / 2012-10-19
- fix
.buffer()
res.text
when no parser matches
0.9.6 / 2012-10-17
- change: use
this
whenwindow
is undefined - update to new component spec [juliangruber]
- fix emission of "data" events for compressed responses without encoding. Closes #125
0.9.5 / 2012-10-01
- add field name to .attach()
- add text "parser"
- refactor isObject()
- remove wtf isFunction() helper
0.9.4 / 2012-09-20
- fix
Buffer
responses [TooTallNate] - fix
res.type
when a "type" param is present [TooTallNate]
0.9.3 / 2012-09-18
- remove GET
.send()
==.query()
special-case (API change !!!)
0.9.2 / 2012-09-17
- add
.aborted
prop - add
.abort()
. Closes #115
0.9.1 / 2012-09-07
- add
.forbidden
response property - add component.json
- change emitter-component to 0.0.5
- fix client-side tests
0.9.0 / 2012-08-28
- add
.timeout(ms)
. Closes #17
0.8.2 / 2012-08-28
- fix pathname relative redirects. Closes #112
0.8.1 / 2012-08-21
- fix redirects when schema is specified
0.8.0 / 2012-08-19
- add
res.buffered
flag - add buffering of text/*, json and forms only by default. Closes #61
- add
.buffer(false)
cancellation - add cookie jar support [hunterloftis]
- add agent functionality [hunterloftis]
0.7.0 / 2012-08-03
- allow
query()
to be called after the internalreq
has been created [tootallnate]
0.6.0 / 2012-07-17
- add
res.send('foo=bar')
default of "application/x-www-form-urlencoded"
0.5.1 / 2012-07-16
- add "methods" dep
- add
.end()
arity check to node callbacks - fix unzip support due to weird node internals
0.5.0 / 2012-06-16
- Added "Link" response header field parsing, exposing
res.links
0.4.3 / 2012-06-15
- Added 303, 305 and 307 as redirect status codes [slaskis]
- Fixed passing an object as the url
0.4.2 / 2012-06-02
- Added component support
- Fixed redirect data
0.4.1 / 2012-04-13
- Added HTTP PATCH support
- Fixed: GET / HEAD when following redirects. Closes #86
- Fixed Content-Length detection for multibyte chars
0.4.0 / 2012-03-04
- Added
.head()
method [browser]. Closes #78 - Added
make test-cov
support - Added multipart request support. Closes #11
- Added all methods that node supports. Closes #71
- Added "response" event providing a Response object. Closes #28
- Added
.query(obj)
. Closes #59 - Added
res.type
(browser). Closes #54 - Changed: default
res.body
andres.files
to {} - Fixed: port existing query-string fix (browser). Closes #57
0.3.0 / 2012-01-24
- Added deflate/gzip support [guillermo]
- Added
res.type
(Content-Type void of params) - Added
res.statusCode
to mirror node - Added
res.headers
to mirror node - Changed: parsers take callbacks
- Fixed optional schema support. Closes #49
0.2.0 / 2012-01-05
- Added url auth support
- Added
.auth(username, password)
- Added basic auth support [node]. Closes #41
- Added
make test-docs
- Added guillermo's EventEmitter. Closes #16
- Removed
Request#data()
for SS, renamed tosend()
- Removed
Request#data()
from client, renamed tosend()
- Fixed array support. [browser]
- Fixed array support. Closes #35 [node]
- Fixed
EventEmitter#emit()
0.1.3 / 2011-10-25
- Added error to callback
- Bumped node dep for 0.5.x
0.1.2 / 2011-09-24
- Added markdown documentation
- Added
request(url[, fn])
support to the client - Added
qs
dependency to package.json - Added options for
Request#pipe()
- Added support for
request(url, callback)
- Added
request(url)
as shortcut forrequest.get(url)
- Added
Request#pipe(stream)
- Added inherit from
Stream
- Added multipart support
- Added ssl support (node)
- Removed Content-Length field from client
- Fixed buffering,
setEncoding()
to utf8 [reported by stagas] - Fixed "end" event when piping
0.1.1 / 2011-08-20
- Added
res.redirect
flag (node) - Added redirect support (node)
- Added
Request#redirects(n)
(node) - Added
.set(object)
header field support - Fixed
Content-Length
support
0.1.0 / 2011-08-09
- Added support for multiple calls to
.data()
- Added support for
.get(uri, obj)
- Added GET
.data()
querystring support - Added IE{6,7,8} support [alexyoung]
0.0.1 / 2011-08-05
- Initial commit