Change8

v1.17.0

Breaking Changes
📦 axiosView on GitHub →
1 breaking1 features🐛 9 fixes🔧 7 symbols

Summary

Version 1.17.0 introduces zstd decompression support for Node HTTP and significantly hardens configuration handling against prototype pollution. It also resolves several regressions related to authentication, proxying, headers, and type definitions.

⚠️ Breaking Changes

  • The default export for `resolveConfig` was converted from an arrow function to a named function export. This may cause interop failures with older webpack or Babel configurations that relied on the previous default export structure.

Migration Steps

  1. If using `resolveConfig`, update imports to use the named export instead of the default export to accommodate the change from an arrow default export.

✨ New Features

  • Added Node HTTP adapter support for zstd response decompression, controlled by `transitional.advertiseZstdAcceptEncoding`.

🐛 Bug Fixes

  • Restored Basic authentication handling on same-origin Node redirects while maintaining cross-origin credential stripping.
  • Aligned fetch adapter behavior with HTTP adapter regarding URL-embedded Basic authentication.
  • Preserved user provided `httpsAgent` TLS options when tunneling HTTPS requests through HTTP CONNECT proxies.
  • Cleared the default `Content-Type` header for React Native `FormData` to ensure correct multipart boundary generation.
  • Silently skipped header names that were empty or contained only whitespace instead of throwing an error, preventing crashes in React Native responses.
  • Preserved enumerable symbol keys when cloning plain request data during axios merge operations.
  • Avoided emitting a null `Authorization` header from the GitHub build helper when `GITHUB_TOKEN` is unset.
  • Corrected `AxiosHeaders.toJSON()` return types.
  • Updated CommonJS `isCancel` typings to narrow the return type to `CanceledError<T>`.

Affected Symbols