4.4.0 (2024-10-08)
4.3.1 (2024-09-19)
4.3.0 (2024-09-14)
4.2.2 (2024-09-14)
4.2.1 (2024-09-11)
4.2.0 (2024-07-08)
4.1.0 (2024-06-27)
4.0.0 (2024-06-23)
- drop Node.js < 18.19.0 support
part of eggjs/egg#3644
-
New Features
- Updated dynamic badge for contributors in
README.md
. - Enhanced form data handling in
HttpClient
.
- Updated dynamic badge for contributors in
-
Bug Fixes
- Improved error handling and performance tracking in
Socket
methods. - Adjusted imports for better compatibility and error handling.
- Improved error handling and performance tracking in
-
Refactor
- Updated Node.js versions in CI workflow.
-
Revised
exports
andscripts
inpackage.json
for better consistency.- Simplified
subscribe
function in diagnostics channel.
- Simplified
-
Chores
- Removed outdated configurations from
.eslintrc
. - Updated TypeScript compiler options in
tsconfig.json
.
- Removed outdated configurations from
-
Documentation
- Linked license section to
contributors-img
inREADME.md
.
- Linked license section to
-
Tests
-
Refined import paths and added new imports for better error handling in test files.
3.25.1 (2024-06-01)
3.25.0 (2024-05-07)
3.24.0 (2024-04-22)
3.23.0 (2024-03-09)
3.22.5 (2024-02-29)
3.22.4 (2024-02-22)
3.22.3 (2024-02-20)
3.22.2 (2024-01-15)
3.22.1 (2023-12-22)
3.22.0 (2023-12-21)
3.21.0 (2023-12-04)
3.20.0 (2023-12-04)
3.19.3 (2023-09-21)
3.19.2 (2023-09-19)
3.19.1 (2023-09-17)
3.19.0 (2023-09-14)
3.18.1 (2023-09-11)
3.18.0 (2023-08-18)
3.17.2 (2023-08-17)
3.17.1 (2023-06-15)
3.17.0 (2023-06-15)
3.16.1 (2023-05-24)
3.16.0 (2023-05-21)
3.15.0 (2023-05-21)
3.14.1 (2023-05-17)
3.14.0 (2023-05-07)
3.13.2 (2023-04-24)
3.13.1 (2023-03-25)
3.13.0 (2023-03-25)
3.12.0 (2023-03-21)
3.11.0 (2023-02-18)
3.10.2 (2023-02-13)
3.10.1 (2023-01-14)
3.10.0 (2022-12-18)
features
- [
c6928c4
] - 📦 NEW: Export HttpClientResponse from urllib directly (#427) (fengmk2 <[email protected]>)
fixes
- [
3c731cc
] - 🐛 FIX: HttpClientResponse.res should be IncomingMessage (#426) (fengmk2 <[email protected]>)
features
- [
ee75fe7
] - 👌 IMPROVE: Keep more compatible d.ts on urllib v2 (#425) (fengmk2 <[email protected]>)
features
- [
726fe86
] - 👌 IMPROVE: Support formstream module instance stream (#424) (fengmk2 <[email protected]>)
features
- [
53d2c91
] - 👌 IMPROVE: Support old style readable stream (#423) (fengmk2 <[email protected]>)
fixes
- [
6a9dd92
] - 🐛 FIX: Import undici types change (#422) (fengmk2 <[email protected]>)
fixes
- [
46d0515
] - fix: parsing multiple www-authenticate response headers (#421) (capsice <[email protected]>)
others
- [
5c0b4e9
] - test: use vitest skipIf api (#419) (Ke Wu <[email protected]>)
features
- [
6ad7a02
] - feat: add socketPath support (#418) (Ke Wu <[email protected]>)
features
- [
20148f0
] - 👌 IMPROVE: Upgrade digest-header to v1 (#417) (fengmk2 <[email protected]>)
others
- [
b097c56
] - 🤖 TEST: Add Node.js 19 ci runner (#416) (fengmk2 <[email protected]>)
fixes
- [
d5270f1
] - 🐛 FIX: Only auto decompress response stream on args.compressed=true (#412) (fengmk2 <[email protected]>)
others
- [
d3f6809
] - 📖 DOC: Fix typo on Arguments (fengmk2 <[email protected]>) - [
b63eb51
] - 🤖 TEST: Only show error on non-IllegalAddressError (fengmk2 <[email protected]>) - [
c54c86a
] - 🤖 TEST: Fix address illegal test case (#409) (fengmk2 <[email protected]>)
features
- [
b483da3
] - 👌 IMPROVE: Support request with proxy agent (#408) (fengmk2 <[email protected]>)
fixes
- [
9575d29
] - 🐛 FIX: Support urlObject for compatibility (#406) (fengmk2 <[email protected]>)
fixes
- [
5a3ca77
] - 🐛 FIX: Keep req.options on error response event (#405) (fengmk2 <[email protected]>)
fixes
- [
456c73b
] - 🐛 FIX: http default protocol for URL argument (#404) (fengmk2 <[email protected]>)
others
- [
315f4a0
] - 📦 NEW: Support timing and socket info (#400) (fengmk2 <[email protected]>) - [
414692b
] - 🧪️ TEST: Add diagnostics_channel test cases (#398) (fengmk2 <[email protected]>) - [
65abb60
] - 🤖 TEST: Use vitest instead of jest (#399) (fengmk2 <[email protected]>) - [
5f0c4a8
] - 📖 DOC: Update contributors (fengmk2 <[email protected]>)
others
- [
65c5112
] - 🐛 FIX: Include query parameters in digest uri (#396) (Chris Byrne <[email protected]>)
others
- [
d1b89c8
] - 🐛 FIX: Keep statusCode on HttpClientResponse for compatibility (#392) (fengmk2 <[email protected]>)
others
- [
e29fd00
] - 🐛 FIX: Alias reqMeta.options to reqMeta.args (#391) (fengmk2 <[email protected]>)
others
- [
d5a0e66
] - 📦 NEW: Support digest auth (#390) (fengmk2 <[email protected]>)
others
- [
b730bbd
] - 🐛 FIX: Should deps tslib (#389) (fengmk2 <[email protected]>)
others
- [
d101f13
] - 🐛 FIX: export getGlobalDispatcher (#387) (fengmk2 <[email protected]>)
others
- [
3bc7461
] - 📦 NEW: Enable Mocking request from undici (#386) (fengmk2 <[email protected]>) - [
2ef38b9
] - 📖 DOC: Change History (fengmk2 <[email protected]>)
others
- [
a16deb5
] - 🐛 FIX: should export USER_AGENT (#385) (fengmk2 <[email protected]>) - [
122d4a6
] - 📖 DOC: Add Benchmarks result (fengmk2 <[email protected]>)
others
- [
20944ee
] - 📦 NEW: Support request and response events (fengmk2 <[email protected]>) - [
f01c264
] - 📦 NEW: Support HttpClient with rejectUnauthorized (fengmk2 <[email protected]>) - [
61a915c
] - 📦 NEW: Support options.auth (fengmk2 <[email protected]>) - [
cb084d9
] - 📦 NEW: Support custom lookup and checkAddress (fengmk2 <[email protected]>) - [
cc1c854
] - 📦 NEW: Support options.opaque = object (fengmk2 <[email protected]>) - [
f07c9f8
] - 📦 NEW: Support options.timing = true (fengmk2 <[email protected]>) - [
70a75c6
] - 📦 NEW: Support options.compressed instead of gzip (fengmk2 <[email protected]>) - [
936bc01
] - 👌 IMPROVE: Support Node.js 14 (fengmk2 <[email protected]>) - [
eb6c319
] - 📦 NEW: Support auto retry like HttpClient2 (fengmk2 <[email protected]>) - [
b07a45e
] - 👌 IMPROVE: Use brotli instead of deflate (fengmk2 <[email protected]>) - [
a8876f2
] - 🤖 TEST: Big stream timeout (fengmk2 <[email protected]>) - [
6b5a4f1
] - 📦 NEW: Use request instead of fetch (fengmk2 <[email protected]>) - [
c1218c5
] - 🐛 FIX: Try to use Readable first (fengmk2 <[email protected]>) - [
a67d9d1
] - 🐛 FIX: Dont parse empty data to json (fengmk2 <[email protected]>) - [
2882f0e
] - 🤖 TEST: Error cases for stream and writeStream (fengmk2 <[email protected]>) - [
57ccc7e
] - 📦 NEW: Support options.streaming = true (fengmk2 <[email protected]>) - [
f2ca7eb
] - 📦 NEW: Support fixJSONCtlChars (fengmk2 <[email protected]>) - [
f5390f2
] - 📦 NEW: TS compiler both Commonjs and ESM support (fengmk2 <[email protected]>) - [
c3cc765
] - 📦 NEW: Support upload file by args.files (fengmk2 <[email protected]>) - [
70a238d
] - 🤖 TEST: Use jest and ts (fengmk2 <[email protected]>) - [
26c44b7
] - 📦 NEW: [BREAKING] Refactor impl base on undici (fengmk2 <[email protected]>)
fixes
- [
f343daa
] - fix: ignore request error if request is done (#384) (killa <[email protected]>)
others
- [
518d22c
] - Create codeql-analysis.yml (fengmk2 <[email protected]>) - [
7daf2fa
] - chore: update contributors (fengmk2 <[email protected]>) - [
20451f2
] - test: add tsd for timing interface (#377) (fengmk2 <[email protected]>) - [
f662c2b
] - chore: update contributors (fengmk2 <[email protected]>)
others
- [
6d19f99
] - tsd: add timing interface (#375) (弘树@阿里 <[email protected]>) - [
9c9c65b
] - test: check TypeScript type definitions (#373) (fengmk2 <[email protected]>)
fixes
- [
1e6622a
] - fix: upgrade proxy-agent to fix the security vulnerability. (#368) (hyj1991 <[email protected]>)
others
- [
ae27498
] - docs: notes contentType's value (#349) (changzhi <[email protected]>)
fixes
- [
b730a6c
] - fix: 🐛 redirect status code (#363) (Hongcai Deng <[email protected]>)
fixes
- [
04734a1
] - fix: 🐛 should trigger response event when follow redirect (#361) (Hongcai Deng <[email protected]>)
others
- [
d50afda
] - Update proxy-agent to v4 to resolve vulnerability (#355) (Chad McElligott <[email protected]>)
features
- [
2acf75b
] - feat: add unix domain socket file support (#352) (Khaidi Chu <[email protected]>)
others
- [
f2a42d1
] - chore: LICENSE link typo (fengmk2 <[email protected]>) - [
28a0152
] - chore: update contributors (fengmk2 <[email protected]>) - [
5674670
] - test: add socket checker test case (#341) (fengmk2 <[email protected]>) - [
d953ec0
] - test: add testcase for using retry and writeStream in HttpClient2 (#350) (Haoliang Gao <[email protected]>)
others
- [
35eecc0
] - chore: add type declaration for RequestOptions#keepHeaderCase (#345) (William <[email protected]>)
fixes
- [
15c4170
] - fix: allow to keep origin header key case (#344) (TZ | 天猪 <[email protected]>)
others
- [
31c03b8
] - chore: Update and rename LICENSE.txt to LICENSE (#343) (Yuxiang LIU <[email protected]>)
features
- [
47c21bd
] - feat: change header to lowercase (#337) (TZ | 天猪 <[email protected]>)
fixes
- [
8f2ca64
] - fix: need to handle response data on close event (#340) (fengmk2 <[email protected]>) - [
175ad2b
] - fix: res.socket is null in node-v14.x (#339) (hyj1991 <[email protected]>)
fixes
- [
67d5b1c
] - fix: index.d.ts (#334) (Daniels.Sun <[email protected]>)
fixes
- [
3da9339
] - fix: rejectUnauthorized under Node.js 12 (#328) (Khaidi Chu <[email protected]>)
others
- [
061f600
] - test: add a test case for posting xml data to reflect #69 (#324) (Jeff <[email protected]>)
features
- [
11f5d34
] - feat: support multipart/form-data by default (#322) (fengmk2 <[email protected]>)
others
- [
3c24781
] - chore: update contributors (fengmk2 <[email protected]>)
fixes
- [
1f9566c
] - fix: don't parse URL on node 4 (#321) (fengmk2 <[email protected]>) - [
3384e53
] - fix: normalize url with WHATWG URL to solve #319 (#320) (Chen Yangjian <[email protected]>)
others
- [
e08f71a
] - upgrade: [email protected] (#315) (薛定谔的猫 <[email protected]>)
fixes
- [
a2a8a1d
] - fix: only copy enumerable and ownProperty value of args.headers (#313) (fengmk2 <[email protected]>)
fixes
- [
f8091ce
] - fix: cancel connect timer when done is called (Daniel Wang <[email protected]>)
features
- [
a5df9d5
] - feat: add typescript definition (#308) (Haoliang Gao <[email protected]>)
others
- [
47ad864
] - test: add test case for streaming timeout (#307) (Yiyu He <[email protected]>)
features
- [
a42445e
] - feat: Expose status message from original Response (#306) (GP ✅ <[email protected]>)
fixes
- [
98a1622
] - fix: ensure timeout error is handled when request with stream (#305) (Yiyu He <[email protected]>)
others
- [
2bb86c0
] - test: only use junit report on azure-pipelines (#304) (fengmk2 <[email protected]>) - [
bd869c7
] - test: Publish test results to Azure Pipelines (#303) (Rishav Sharan <[email protected]>)
fixes
- [
227618a
] - fix: allow agent set to null (#301) (fengmk2 <[email protected]>)
fixes
- [
83fc316
] - fix: Omit the 'Accept-Encoding' header if it is explicitly set to 'null' (#298) (GP ✅ <[email protected]>) - [
36c24c3
] - fix: should autofix socket timeout by request.timeout (#300) (fengmk2 <[email protected]>)
features
- [
28c38d2
] - feat: support agentkeepalive@4 (#297) (fengmk2 <[email protected]>) - [
c79eefc
] - feat: Do not set User-Agent if the header is explicitly set to null (GP <[email protected]>)
features
- [
b760530
] - feat: implement trace option like mysql client (#290) (killa <[email protected]>)
others
- [
5e80ee8
] - test: run ci on azure-pipelines (#292) (azure-pipelines[bot] <<azure-pipelines[bot]@users.noreply.github.com>>)
fixes
- [
ab39245
] - fix: keep exists accept header on dataType = json (#289) (fengmk2 <[email protected]>)
features
- [
4ca0c48
] - feat: add socket handled request and response count (#288) (fengmk2 <[email protected]>)
fixes
- [
6bc31b9
] - fix: use pump to close request stream (#287) (fengmk2 <[email protected]>)
others
- [
8087683
] - test: add node 10 support (#285) (fengmk2 <[email protected]>)
features
- [
c0221ff
] - feat: support deflate compress for response (#283) (iSayme <[email protected]>)
others
- [
60ea1f6
] - test: update url, the /:package/* not avalable anymore (#284) (iSayme <[email protected]>)
features
- [
a6c93fd
] - feat: support args.checkAddress (#279) (Yiyu He <[email protected]>)
features
- [
d6e7c58
] - feat: support Keep-Alive Header (#275) (fengmk2 <[email protected]>)
fixes
- [
9c496a0
] - fix: Changed to "new (require('proxy-agent'))(proxy)" (#273) (Nick Ng <[email protected]>)
fixes
- [
e3df75e
] - fix: res.requestUrls should be string array (#271) (hui <[email protected]>)
fixes
- [
2df6906
] - fix: make sure request event url should be a string (#270) (hui <[email protected]>)
fixes
- [
ac9bc64
] - fix: don't change args.headers (#267) (fengmk2 <[email protected]>)
others
- [
b798546
] - docs: fixed spelling mistake (#266) (Axes <[email protected]>)
features
- [
95cabd6
] - feat: support custom fixJSONCtlChars function (#264) (fengmk2 <[email protected]>)
- feat: support http(s) proxy (#226)
- test: skip test.webdav.org test cases
- feat: add defaultArgs on HttpClient
- feat: add options.nestedQuerystring (#254)
- fix: don't listen response aborted on node > 0.12 (#252)
- fix: throw when write to stream timeout (#251)
- fix: should pass options to httpclient2 (#249)
- test: fix Promise not defined on 0.10
- test: use assert instead of should
- feat: add retry delay on httpclient2
- deps: bump deps versions
- fix: keep the same req object across request and response event
- feat: add
dataAsQueryString
params for convert data to query string (#240)
- fix: use nextTick to prevent promise handling error.
- refactor: move to separated files
- feat: add retry option
- add environment detection for connect timer, because no socket event in browser env (#236)
- feat: add -2 status for connect timeout (#224)
- fix: parse content-type (#221)
- feat: add custom dns lookup function (#220)
- fix: httpclient support set agent to false (#219)
- feat: export remoteAddress and remotePort (#216)
- feat: allow user to rewrite redirect url (#214)
- fix: response size should use last one (#213)
- fix: add missing ctx on request event (#210)
- feat: timing (#204)
- docs: fix res.aborted description
- feat: support connect and response timeouts (#201)
- fix: catch http.request sync error (#199)
- deps: upgrade deps from ~ to ^ (#189)
- feat: add an options consumeWriteStream (#187)
- chore(package): update statuses to version 1.3.0 (#174)
- fix: check url before request (#172)
- chore(package): update any-promise to version 1.2.0 (#171)
- feat: log all requested urls (#169)
- deps: [email protected]
- test: improve coverage
- feat: http default protocol for URL argument
- deps: upgrade out of date deps
- test: support windows
- fix: keep headers.Host on
location: /foo
redirect - test: use npmjs.com on travis ci
- fix: jshint style
- deps: any-promise instead of native-or-blubird
- fix: clean up headers.Host before redirect request start
- chore: update authors
- feat: response event include data property
- chore: Add host info into debug
- test: fix unstable test cases
- feat: enhance global events
- chore(package): update semver to version 5.1.0
- chore(package): update should to version 7.1.1
- test: fix test url
- feat: remove request# in error message
- test: add streaming upload test
- test: use codecov.io
- feat: add options.fixJSONCtlChars to fix JSON control characters
- Fix a typo in comment
- fix: httpclient support curl too
- fix: add alias urllib.curl()
- chore: add decodeBodyByCharset error debug log
- feat: show json format data when json parse error
- fix: need to clear timer after follow redirect
- test: use cnpmjs.org instead of taobao.com
- fix: need to resume res before next redirect request start
- fix: support 303, 305, 307 redirect status code
- fix: followRedirect support customResponse.
- feat: show agent status message when request error
- fix: add ciphers and secureProtocol params support for https request
- refactor: httpclient custom agent property
- fix: auto decode gzip content
- feat: mark off connection state and response state
- remove unuse event handlers
- refactor and add more comments
- add path to error (@coderhaoxin)
- fix promise example in readme
- add customResponse option (@fishbar)
- humanize timeout
- chore: bump deps version and make test more stable
- refactor: dont add new property on res object
- add args.contentType option (@coderhaoxin)
- Simply the HTTPClient implementation (@JacksonTian)
- refine urllib code (@JacksonTian)
- support auto decode charset when dataType set
- do not check ssl, fix hang up in some node version
- httpclient add requestThunk()
- add requestThunk to support co
- HttpClient support agent and httpsAgent
- add SocketAssignTimeoutError. #37
- convert data to string when dataType is text
- add urllib instance
- add args.ctx for response event easy logging
- format Response object fields
- global
response
event. fixed #35
- return Promise when callback missing. fixed #33
- rm Makefile
- use flat image
- Remove aborted. nodejs/node-v0.x-archive#7457
- missing I in urllib logo
- fix test cases
- change .once to .on (@alsotang)
- make callback is optional. close #29
- rm 0.8 from travis
- fix #28 user-agent logic bug
- use digest-header module
- support Digest access authentication. fix #27
- add co-urllib desc
- improve user-agent, add node version and plaform detail
- if body not decode, dont touch it
- Support
options.gzip = true
to handle gzip response. fixed #26
- remove buffer-concat
- no more deps on buffer-concat
- add default User-Agent: node-urllib/x.x.x
- add jshint
- add data/res to error
- fix typo (@coderhaoxin)
- access npmjs.org https
- fix test cases and use autod
- install from cnpm
- no more support on node 0.6.x
- should pass done instead of callback and end the writeStream
- support args.writeStream with follow redirect (@dead-horse)
- fix timeout not effect bug
- add args.beforeRequest(options) hook to change options before http send
- add JSONResponseFormatError; append request url infomation to err.message
- detect connect timeout or response timeout fixed #18
- update doc
- Support max redirects to protect loop redirect
- Auto redirect handle (@ibigbug)
- handle json response to null when data size is zero
- Auto convert data to json string when content-type is 'json' fixed #15
- add drone.io status build image
- fix SELF_SIGNED_CERT_IN_CHAIN test case on node 0.8 and 0.6
- [√] https & self-signed certificate
- return RemoteSocketClosedError when Remote socket was terminated before
response.end()
was called
- If the underlaying connection was terminated before
response.end()
was called,res.aborted
should betrue
. fixed #14 - fixed test case for 0.6
- add res.socket.end() test cases
- remove 0.11 from travis
- add debug log
- PATCH method is also "application/x-www-form-urlencoded" by default
- replace logo
- fixed bug in processing query string #13 (@xingrz)
- updated readme example (@xingrz)
- update authors
- API docs (@xingrz)
- fixed writeSteam receive incomplete bug
- update makefile
- add coveralls
- remove 0.11 from travis
- add patch for node 0.6
- fixed https request timeout tests
- use blanket instead of jscover
- fixed #8 auto add application/x-www-form-urlencoded
- fixed existsSync for node < 0.8
- support writeStream
- fixed #4 support urllib.request(options, args, callback)
- fixed usage demo bug
- fixed readme
- fixed #2 support stream and return the req object.
- use jscover instead of jscoverage
- add coverage results
- Bash auth support:
http://user:password@http://demo.com
.