Skip to content

Latest commit

 

History

History
692 lines (478 loc) · 24.2 KB

HISTORY.md

File metadata and controls

692 lines (478 loc) · 24.2 KB

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 on localhost
  • .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(…) returns undefined instead of the request. If you need the request object after calling .end() (and you probably don't), save it in a variable and call request.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 set superagent.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 the Host 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() and retry(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 and err.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 normal response.body is unaffected.
  • Multiple .send() calls mixing Buffer/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 new pfx() 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 to toJSON() (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 real Promise. Note that use of superagent with promises now requires a global Promise object. If you target Internet Explorer or Node 0.10, you'll need require('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'} to auth method, which enables browser-native auth types (Jungle, Askar Yusupov)
  • Added responseType() to set XHR responseType (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 to progress 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 call this.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 as delete() (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() and attach() 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 meaningful message

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 when window 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 internal req 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 and res.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 to send()
  • Removed Request#data() from client, renamed to send()
  • 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 for request.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