All Versions
25
Latest Version
Avg Release Cycle
47 days
Latest Release
816 days ago

Changelog History
Page 3

  • v2.0.0 Changes

    June 02, 2019

    ๐Ÿ’ฅ Breaking Change

    • โฌ‡๏ธ Dropped support for Node.js 4 and 6
    • Prebuilt binary is now statically built with brotli, libssh2, nghttp2, OpenSSL and zlib. brotli, OpenSSL, nghttp2 and zlib versions match their respective versions used by Node.js.
    • โœ… The minimum libcurl version being tested is now 7.50.0, which itself is almost 3 years old.
      The addon will still try to be compatible with old versions up to 7.32.0, but there are no guarantees.
    • Curl.reset now correctly resets their instance (#141)
    • Previously Curl.code had all Curl codes into a single enum like object, that is, it included properties for each CURLMCode, CURLcode and CURLSHcode libcurl enums.
      Now they are separated, each on their own object:
      CURLMCode -> CurlMultiCode
      CURLcode -> CurlCode
      CURLSHCode -> CurlShareCode
    • DEBUGFUNCTION now receives a Buffer as the data argument, instead of a string.
    • Easy.send and Easy.recv now return an object, { code: CurlCode, bytesSent: number } and { code: CurlCode, bytesReceived: number } respectively.
    • ๐Ÿšš Curl class: removed _ prefix from their private members.
      Only a breaking change in case you were using internal methods.
    • 0๏ธโƒฃ Curl class: methods onData and onHeader renamed to defaultWriteFunction and defaultHeaderFunction.
      Only a breaking change in case you were using internal methods.
    • ๐Ÿšš Curl class: deprecated instance fields onData and onHeader were removed.
      Use options WRITEFUNCTION and HEADERFUNCTION respectively.
    • ๐Ÿšš Curl.dupHandle, argument shouldCopyCallbacks was removed, it was the first one.
      This is not needed anymore because the previously set callbacks (onData and onHeader) can now only be set using their respective libcurl options, which is always copied when duplicating a handle.
    • ๐Ÿšš Curl.multi moved to Multi.option
    • ๐Ÿšš Curl.share moved to Share.option
    • ๐Ÿšš Following members were moved to their own export:
      Curl.auth -> CurlAuth
      Curl.pause -> CurlPause
      Curl.http -> CurlHttpversion
      Curl.feature -> CurlFeature
      Curl.lock -> CurlShareLock
      Curl.header -> CurlHeader
      Curl.info.debug -> CurlInfoDebug
      Curl.netrc -> CurlNetrc
      Curl.chunk -> CurlChunk
      Curl.filetype -> CurlFileType
      Curl.fnmatchfunc -> CurlFnMatchFunc
      Curl.ftpauth -> CurlFtpAuth
      Curl.ftpssl -> CurlFtpSsl
      Curl.ftpmethod -> CurlFtpMethod
      Curl.rtspreq -> CurlRtspRequest
      Curl.ipresolve -> CurlIpResolve
      Curl.proxy -> CurlProxy
      Curl.pipe -> CurlPipe
      Curl.usessl -> CurlUseSsl
      Curl.sslversion -> CurlSslVersion
      Curl.sslversion.max -> CurlSslVersionMax
      Curl.ssh_auth -> CurlSshAuth
      Curl.timecond -> CurlTimeCond
      Easy.socket -> SocketState
      And their fields were changed from SNAKE_CASE to PascalCase.
      The change in casing was to follow Typescript's Enum naming convention.
    • ๐Ÿšš Curl.protocol also moved to their own export CurlProtocol, no changes were made to fields casing in this case.
    • Passing non-integer option value to Multi.setOpt will now throw an error.
      Previously the value was converted to 1 if it was a truthy value, or 0 if otherwise. ### ๐Ÿ›  Fixed
    • ๐Ÿ›  Fix SigAbort caused by calling v8 AsFunction on null value at Easy::SetOpt
    • ๐Ÿ›  Fix SegFault during gargage collection after process.exit (#165)
    • Using curl_socket_t without libcurl version guard on Easy::GetInfo ### โž• Added
    • ๐Ÿ‘Œ Support Node.js 12
    • โž• Added missing options:
      • CURLOPT_DISALLOW_USERNAME_IN_URL
      • CURLOPT_DNS_SHUFFLE_ADDRESSES
      • CURLOPT_DOH_URL
      • CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS
      • CURLOPT_HAPROXYPROTOCOL
      • CURLOPT_HTTP09_ALLOWED
      • CURLOPT_REQUEST_TARGET
      • CURLOPT_FTP_FILEMETHOD (#148)
      • CURLOPT_MAXAGE_CONN
      • CURLOPT_PROXY_*
      • CURLOPT_RTSPHEADER
      • CURLOPT_RTSP_REQUEST
      • CURLOPT_SOCKS5_AUTH
      • CURLOPT_SSH_COMPRESSION
      • CURLOPT_TLS13_CIPHERS
      • CURLOPT_TIMEVALUE_LARGE
      • CURLOPT_TRAILERFUNCTION
      • CURLOPT_UPKEEP_INTERVAL_MS
    • โž• Add missing info fields:
      • CURLINFO_*_{DOWNLOAD,UPLOAD}_T
      • CURLINFO_*_TIME_T
      • CURLINFO_FILETIME_T
    • ๐Ÿ”– Add Curl.getVersionInfo() which returns an object that represents the struct returned from curl_version_info().
      See their type definition for details: [./lib/types/CurlVersionInfoNativeBinding.ts](./lib/types/
    • โž• Add Curl.getVersionInfoString() which returns a string representation of the above function.
      It should be almost identical to the one returned from curl -V.
    • โž• Add Curl.isVersionGreaterOrEqualThan(x, y, z) to help test if the libcurl version the addon was built against is greater or equal than x.y.z.
    • Add upkeep function to Easy and Curl classes. This is a binding for the curl_easy_upkeep() function.
    • Errors thrown inside callbacks are correctly caught / passed forward (if using multi interface)
    • ๐Ÿ“ฆ All Curl instances now set their USERAGENT to node-libcurl/${packageVersion} during creation.
      You change the default user agent string by changing Curl.defaultUserAgent, and disable it by setting their value to null.
    • CurlWriteFunc and CurlReadFunc enums with special return codes for their respective options, WRITEFUNCTION and READFUNCTION.
    • Added experimental curly(url: string, options: {}) / curly.<http-verb>(url: string, options: {}) async api.
      This API can change between minor releases. ### ๐Ÿ”„ Changed
    • Migrated project to Typescript and added type definitions
    • โฌ†๏ธ Bumped libcurl version used on Windows to 7.64.1, which has nghttp2 support
    • โž• Added the Curl instance that emitted the event as the last param passed to events, can be useful if using anonymous functions as callback for the events. Example: javascript // ... curl.on('end', (statusCode, data, headers, curlInstance) => { // ... })
    • ๐Ÿ›  Fix erratic condition when setting option HEADERFUNCTION (#142)
    • ๐ŸŽ macOS libs should be linked against @rpath (#145)

    ๐Ÿš€ Special Thanks to @koskokos2 for their contributions to this release.

  • v1.3.3 Changes

    โž• Added

    • ๐Ÿ‘ท Node.js 10 on CI and respective prebuilt binaries ### ๐Ÿ”„ Changed
    • โœ‚ Removed deprecated NAN method calls
  • v1.3.2 Changes

    May 24, 2018

    ๐Ÿ›  Fixed

    • โœ… Curl multi integer options being wrongly tested (#126)
  • v1.3.1 Changes

    May 04, 2018

    โž• Added

    • ๐Ÿ”„ Changelog file (finally) ### ๐Ÿ”„ Changed
    • ๐Ÿ‘Œ Improved code style, started using prettier