- Wait for async parsers to avoid double callback (Kornel Lesiński)
- DRY parser selection and response creation code (Kornel Lesiński)
- Treat multipart like other parsers (Kornel Lesiński)
- Errors thrown in
.end()
callback don't cause the callback to be called twice (Kornel Lesiński)
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)
- 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()
- 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
- Fixed form-data incompatibility with IE9
- 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
- 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)
- Fixed a conflict with express when using npm 3.x (Glenn)
- Fixed redirects after a multipart/form-data POST request (cyclist2)
- 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)
- 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)
- 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
- 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
- fix incorrect content-length of data set to buffer
- serialize request data takes into account charsets
- add basic promise support via a
then
function
- 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
- 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-)
- 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)
- 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)
- Add toJSON() to request and response instances. (yields)
- Prevent HEAD requests from getting parsed. (gjohnson)
- Update debug. (TooTallNate)
- Fix basic auth issue when password is falsey value. (gjohnson)
- 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)
- Handle parser errors. (kof)
- Ensure not to use default parsers when there is a user defined one. (kof)
- Upgrade cookiejar dependency (juanpin)
- Support image mime types (nebulade)
- Make .agent chainable (kof)
- Upgrade debug (TooTallNate)
- Fix docs (aheckmann)
- 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)
- 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)
- 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)
- pin should.js to 1.3.0 due to breaking change in 2.0.x
- fix browserify regression
- add browser field to support browserify
- fix .field() value number support
- node: add a Request#agent() function to set the http Agent to use
- 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
- fix: emit 'end' when piping.
- add try/catch around parseLinks
- make
Response#toError()
have a more meaningfulmessage
- add debug()s to the node client
- add .abort() method to node client
- set .agent = false always
- remove X-Requested-With. Closes #189
- fix unzip error handling
- fix HEAD unzip bug
- add flag to ensure the callback is never invoked twice
- add superagent.js build output
- update qs
- update emitter-component
- revert "add browser field to support browserify" see GH-221
- add browser field to support browserify
- add host object check to fix serialization of File/Blobs etc as json
- update qs
- add client-side basic auth
- fix retaining of .set() header field case
- 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
- fix get content-type even if can't get other headers in firefox. fixes #181
- add quick "progress" event support
- 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.
- add x-domain error handling
- add header persistence on redirects
- 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
- add req.timeout(ms) support for the client
- fix client-side .query(str) support
- 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
- 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]
- fix
.buffer()
res.text
when no parser matches
- change: use
this
whenwindow
is undefined - update to new component spec [juliangruber]
- fix emission of "data" events for compressed responses without encoding. Closes #125
- add field name to .attach()
- add text "parser"
- refactor isObject()
- remove wtf isFunction() helper
- fix
Buffer
responses [TooTallNate] - fix
res.type
when a "type" param is present [TooTallNate]
- remove GET
.send()
==.query()
special-case (API change !!!)
- add
.aborted
prop - add
.abort()
. Closes #115
- add
.forbidden
response property - add component.json
- change emitter-component to 0.0.5
- fix client-side tests
- add
.timeout(ms)
. Closes #17
- fix pathname relative redirects. Closes #112
- fix redirects when schema is specified
- 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]
- allow
query()
to be called after the internalreq
has been created [tootallnate]
- add
res.send('foo=bar')
default of "application/x-www-form-urlencoded"
- add "methods" dep
- add
.end()
arity check to node callbacks - fix unzip support due to weird node internals
- Added "Link" response header field parsing, exposing
res.links
- Added 303, 305 and 307 as redirect status codes [slaskis]
- Fixed passing an object as the url
- Added component support
- Fixed redirect data
- Added HTTP PATCH support
- Fixed: GET / HEAD when following redirects. Closes #86
- Fixed Content-Length detection for multibyte chars
- 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
- 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
- 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()
- Added error to callback
- Bumped node dep for 0.5.x
- 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
- Added
res.redirect
flag (node) - Added redirect support (node)
- Added
Request#redirects(n)
(node) - Added
.set(object)
header field support - Fixed
Content-Length
support
- 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]
- Initial commit