Changelog History
Page 1
-
v2.3.4 Changes
January 29, 2022โ Added
- ๐ support
curl_blob
options #300 by @johnwchadwick - โ added arm64 builds for macOS #312 by @johnwchadwick
- โ added most options that were missing up to libcurl version 7.79.1, including HSTS support.
- โ added prebuilt binaries for Node.js v17.
๐ Changed
- โฌ๏ธ Upgraded prebuild binaries to use libcurl 7.79.1. On Windows, OpenSSL 3.0.0 will be used.
- The only Electron versions with prebuilt binaries are:
16
,15
,14
,13
,12
, and11
. - The only Nwjs versions with prebuilt binaries are:
0.58
,0.57
, and0.56
.
- ๐ support
-
v2.3.3 Changes
May 09, 2021๐ Fixed
- ๐ Fix support for Node.js v16
-
v2.3.2 Changes
March 24, 2021๐ Changed
- ๐ The prebuilt binaries are not build with c-ares anymore, for reasoning see issue #280.
c-ares was included in the prebuilt binaries starting with
2.3.0
.
- ๐ The prebuilt binaries are not build with c-ares anymore, for reasoning see issue #280.
c-ares was included in the prebuilt binaries starting with
-
v2.3.1 Changes
March 09, 2021๐ The yes,
curly
is still experimental release. ๐If you are using
curly
in your project, and you want to share any feedback about it, please post them in our Discord. I would love to read and discuss it!๐ Fixed
- ๐ Fixed not building zstd lib statically. #274
- ๐ Fixed download streams not working with responses that did not include a body. #271
โ Added
- โ Added prebuilt binaries for: Node.js 15, Electron v11, Electron v12, Nwjs 0.49.2, Nwjs 0.51.2, and Nwjs 0.52.0.
๐ Changed
- ๐ Building the addon from source now requires a C++ compiler with support for c++1z (c++17).
โ Removed
- โ Removed prebuilt binaries for: Node.js 10, Electron v5, Electron v6, Electron v7, Nwjs v0.43, and Nwjs v0.44.
-
v2.3.0 Changes
November 15, 2020๐ Probably the last release that
curly
is considered experimental.๐ฅ Breaking Change
๐
curly
(andcurly.<method>
) is now able to automatically parse the response body based on the content-type header of the response. #240
0๏ธโฃ Default parsers forapplication/json
(callsJSON.parse
) andtext/*
(converts the rawBuffer
to a string withutf8
encoding) were added. This means that for responses without a matching content-type the rawBuffer
will be returned. This is different from the previous behavior where a string would always be returned.
0๏ธโฃ The default parsers can be overwritten by settingcurly.defaultResponseBodyParsers
to an object with the format:{ 'content-type': (data: Buffer, headers: HeaderInfo[]) => any }
Where
content-type
can be one of these:- the exact content-type.
- a pattern using
*
to match specific parts of the content-type, liketext/*
. - a catch-all pattern: just
*
.
๐ You can also override the parsers using the following options:
curlyResponseBodyParsers
object that will be merged withdefaultResponseBodyParsers
.curlyResponseBodyParser
a parser that will be used for all responses.
๐ It's also possible to set
curlyResponseBodyParser
tofalse
and the data returned will always be the rawBuffer
.0๏ธโฃ Of course, it is still possible to use your own
writeFunction
(libcurlCURLOPT_WRITEFUNCTION
option) to set your own write callback and not rely on this default handling of the response.๐ As
curly
is marked as experimental, this allows us to do a breaking change in a minor version bump. This release should make the curly API more stable and provide a better developer experience, however, the API remains experimental.๐ Fixed
- Some
curly.<method>
calls not working correctly, to be more specific, all calls that were notget
,post
andhead
. - Errors thrown by the internal
Curl
instance used bycurly
not being re-thrown correctly. - 0๏ธโฃ Progress callbacks were not allowing to use default libcurl progress meter (by returning
CurlProgressFunc.Continue
).
โ Added
- 0๏ธโฃ Calling
curly.create(options)
will now return a newcurly
object that will use the passedoptions
as defaults. #247 - 0๏ธโฃ TypeScript:
curly
(andcurly.<method>
) now accepts a generic type parameter which will be the type of thedata
returned. By default, this is set toany
. - โ Added new options to the
curly
API:curlyBaseUrl: string
, if set, their value will always be added as the prefix for the URL.curlyLowerCaseHeaders: boolean
, if set to true, headers will be returned in lower case. Defaults to false. #240
- โ Added new methods and
CurlFeature
allowing the use of streams to upload and download data without having to setWRITEFUNCTION
and/orREADFUNCTION
manually. #237Curl.setUploadStream
Curl.setStreamProgress
Curl.setStreamResponseHighWaterMark
CurlFeature.StreamResponse
๐ New options were also added to thecurly
API:curlyProgressCallback
curlyStreamResponse
curlyStreamResponseHighWaterMark
curlyStreamUpload
These new features related to streams are only reliable when using a libcurl version >= 7.69.1.
- ๐ Support libcurl info
CURLINFO_CERTINFO
. Can be retrieved usinggetInfo("CERTINFO")
. Thanks to @Sergey-Mityukov for most of the work on this. - Support libcurl info
CURLINFO_EFFECTIVE_METHOD
. Requires libcurl >= 7.72.0. - Support libcurl info
CURLINFO_PROXY_ERROR
. UseCurlPx
for constants. Requires libcurl >= 7.73.0. - Support libcurl option
CURLOPT_SSL_EC_CURVES
. Requires libcurl >= 7.73.0. - โ Added prebuilt binaries for Electron v10.1
- The libcurl version being used by prebuilt binaries is now 7.73.0 and it's not built with c-ares.
๐ Changed
curly
now has 100% code coverage.
โ Removed
- โ Removed prebuilt binaries for: Electron v3, Electron v4, Nwjs v0.42, and Nwjs v0.43
-
v2.3.0-0 Changes
October 30, 2020๐ฅ Breaking Change
๐
curly
(andcurly.<method>
) is now able to automatically parse the response body based on the content-type header of the response. #240
0๏ธโฃ Default parsers forapplication/json
(callsJSON.parse
) andtext/*
(converts the rawBuffer
to a string withutf8
encoding) were added. This means that for responses without a matching content-type the rawBuffer
will be returned. This is different from the previous behavior where a string would always be returned.
0๏ธโฃ The default parsers can be overwritten by settingcurly.defaultResponseBodyParsers
to an object with the format:{ 'content-type': (data: Buffer, headers: HeaderInfo[]) => any }
Where
content-type
can be one of these:- the exact content-type.
- a pattern using
*
to match specific parts of the content-type, liketext/*
. - a catch-all pattern: just
*
.
๐ You can also override the parsers using the following options:
curlyResponseBodyParsers
object that will be merged withdefaultResponseBodyParsers
.curlyResponseBodyParser
a parser that will be used for all responses.
๐ It's also possible to set
curlyResponseBodyParser
tofalse
and the data returned will always be the rawBuffer
.0๏ธโฃ Of course, it is still possible to use your own
writeFunction
(libcurlCURLOPT_WRITEFUNCTION
option) to set your own write callback and not rely on this default handling of the response.๐ As
curly
is marked as experimental, this allows us to do a breaking change in a minor version bump. This release should make the curly API more stable and provide a better developer experience, however, the API remains experimental.๐ Fixed
- Some
curly.<method>
calls not working correctly, to be more specific, all calls that were notget
,post
andhead
. - Errors thrown by the internal
Curl
instance used bycurly
not being re-thrown correctly. - 0๏ธโฃ Progress callbacks were not allowing to use default libcurl progress meter (by returning
CurlProgressFunc.Continue
).
โ Added
- 0๏ธโฃ Calling
curly.create(options)
will now return a newcurly
object that will use the passedoptions
as defaults. #247 - 0๏ธโฃ TypeScript:
curly
(andcurly.<method>
) now accepts a generic type parameter which will be the type of thedata
returned. By default, this is set toany
. - โ Added new options to the
curly
API:curlyBaseUrl: string
, if set, their value will always be added as the prefix for the URL.curlyLowerCaseHeaders: boolean
, if set to true, headers will be returned in lower case. Defaults to false. #240
- โ Added new methods and
CurlFeature
allowing the use of streams to upload and download data without having to setWRITEFUNCTION
and/orREADFUNCTION
manually. #237Curl.setUploadStream
Curl.setStreamProgress
Curl.setStreamResponseHighWaterMark
CurlFeature.StreamResponse
๐ New options were also added to thecurly
API:curlyProgressCallback
curlyStreamResponse
curlyStreamResponseHighWaterMark
curlyStreamUpload
These new features related to streams are only reliable when using a libcurl version >= 7.69.1.
- ๐ Support libcurl info
CURLINFO_CERTINFO
. Can be retrieved usinggetInfo("CERTINFO")
. Thanks to @Sergey-Mityukov for most of the work on this. - Support libcurl info
CURLINFO_EFFECTIVE_METHOD
. Requires libcurl >= 7.72.0. - Support libcurl info
CURLINFO_PROXY_ERROR
. UseCurlPx
for constants. Requires libcurl >= 7.73.0. - Support libcurl option
CURLOPT_SSL_EC_CURVES
. Requires libcurl >= 7.73.0. - โ Added prebuilt binaries for Electron v10.1
- The libcurl version being used by prebuilt binaries is now 7.73.0 and it's not built with c-ares.
๐ Changed
curly
now has 100% code coverage.
โ Removed
- โ Removed prebuilt binaries for: Electron v3, Electron v4, Nwjs v0.42, and Nwjs v0.43
-
v2.2.1-0 Changes
October 14, 2020๐ฅ Breaking Change
๐
curly
(andcurly.<method>
) is now able to automatically parse the response body based on the content-type header of the response. #240
0๏ธโฃ Default parsers forapplication/json
(callsJSON.parse
) andtext/*
(converts the rawBuffer
to a string withutf8
encoding) were added. This means that for responses without a matching content-type the rawBuffer
will be returned. This is different from the previous behavior where a string would always be returned.
0๏ธโฃ The default parsers can be overwritten by settingcurly.defaultResponseBodyParsers
to an object with the format:{ 'content-type': (data: Buffer, headers: HeaderInfo[]) => any }
Where
content-type
can be one of these:- the exact content-type.
- a pattern using
*
to match specific parts of the content-type, liketext/*
. - a catch-all pattern: just
*
.
๐ You can also override the parsers using the following options:
curlyResponseBodyParsers
object that will be merged withdefaultResponseBodyParsers
.curlyResponseBodyParser
a parser that will be used for all responses.
๐ It's also possible to set
curlyResponseBodyParser
tofalse
and the data returned will always be the rawBuffer
.0๏ธโฃ Of course, it is still possible to use your own
writeFunction
(libcurlCURLOPT_WRITEFUNCTION
option) to set your own write callback and not rely on this default handling of the response.๐ As
curly
is marked as experimental, this allows us to do a breaking change in a minor version bump. This release should make the curly API more stable and provide a better developer experience, however, the API remains experimental.๐ Fixed
- Some
curly.<method>
calls not working correctly, to be more specific, all calls that were notget
,post
andhead
. - Errors thrown by the internal
Curl
instance used bycurly
not being re-thrown correctly. - 0๏ธโฃ Progress callbacks were not allowing to use default libcurl progress meter (by returning
CurlProgressFunc.Continue
).
โ Added
- 0๏ธโฃ Calling
curly.create(options)
will now return a newcurly
object that will use the passedoptions
as defaults. #247 - 0๏ธโฃ TypeScript:
curly
(andcurly.<method>
) now accepts a generic type parameter which will be the type of thedata
returned. By default, this is set toany
. - โ Added new options to the
curly
API:curlyBaseUrl: string
, if set, their value will always be added as the prefix for the URL.curlyLowerCaseHeaders: boolean
, if set to true, headers will be returned in lower case. Defaults to false. #240
- โ Added new methods and
CurlFeature
allowing the use of streams to upload and download data without having to setWRITEFUNCTION
and/orREADFUNCTION
manually. #237Curl.setUploadStream
Curl.setStreamProgress
Curl.setStreamResponseHighWaterMark
CurlFeature.StreamResponse
๐ New options were also added to thecurly
API:curlyProgressCallback
curlyStreamResponse
curlyStreamResponseHighWaterMark
curlyStreamUpload
These new features related to streams are only reliable when using a libcurl version >= 7.69.1.
- ๐ Support libcurl info
CURLINFO_CERTINFO
. Can be retrieved usinggetInfo("CERTINFO")
. Thanks to @Sergey-Mityukov for most of the work on this. - Support libcurl info
CURLINFO_EFFECTIVE_METHOD
. Requires libcurl >= 7.72.0. - Support libcurl info
CURLINFO_PROXY_ERROR
. UseCurlPx
for constants. Requires libcurl >= 7.73.0. - Support libcurl option
CURLOPT_SSL_EC_CURVES
. Requires libcurl >= 7.73.0.
-
v2.2.0 Changes
July 14, 2020๐ Fixed
- ๐ Fix
curly.get
not working correctly (#230) - ๐ Fix not resetting
CURLOPT_TRAILERDATA
when duplicating anEasy
instance (7bf3a51)
โ Added
- โ Added initial support to the
CURLMOPT_PUSHFUNCTION
libcurl multi option. (#232) (b8d0fac) - โ Added
private
member to theEasyNativeBinding
typescript class, you can set this value on theEasy
instances to anything, and Typescript should not complain. - โ Adde prebuilt binaries for Electron v9
๐ Changed
- ๐ Improved Typescript types / documentation for some libcurl options. (63a71b7)
- ๐ Fix
-
v2.2.0-1 Changes
June 26, 2020- ๐ docs: update CHANGELOG.md ad02eff
- ๐ feat: add support the CURLMOPT_PUSHFUNCTION libcurl multi option b8d0fac
- ๐ docs: update CHANGELOG.md 788c61d
- โฌ๏ธ deps: upgrade node-gyp and other deps and add scripts to generate the compile_commands.json file 7f7b9a6
- ๐ docs: add link to our Discord Server to the README.md 135869d
- chore: add [dD]ebug and [rR]elease folders to gitignore cc1187d
- ๐ docs: improve README.md d875f66
- ๐ docs: update api docs to and improve Typescript types 63a71b7
- ๐ scripts: update script that generates libcurl options documentation 5f118bd
- ๐ docs: add this typehint on some Easy#setOpt/Curl#setOpt calls 026c814
- ๐ fix: not resetting CURLOPT_TRAILERDATA when duplicating an Easy handle 7bf3a51
- ๐ examples: remove unecessary function on protobuf example [skip ci] 02f813b
- ๐ examples: remove unecessary require on protobuf example [skip ci] 54f55f1
- examples: add example showing how to send binary data - in this specific case, protobuf encoded data be5df47
- ๐ docs: add note on README about the READFUNCTION option 3989e17
- ๐ docs: improve documentation on the end event listener callback 2c0b89d
- ๐ docs: update docs with nojekyll plugin [skip ci] 63cf3d7
- ๐ docs: add typedoc-plugin-nojekyll [skip ci] 86a148f
- ๐ fix: httpMethodOptions for curly get (#230) b9ff102
- ๐ docs: add magic .nojekyll file [skip ci] 6695c91
- ๐ docs: regenerate docs folder [skip ci] 3f4731d
- ๐ docs: add updated documentation and remove github actions - gh pages is going to be deployed from master docs folder [skip ci] 4cec7fb
-
v2.1.3 Changes
June 02, 2020๐ Fixed
- ๐
v2.1.2
had a caching issue on during the dist files generation, which caused it to not build some required files.
- ๐