# Changelog
All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [Unreleased]

## [0.4.0] - 2024-11-08

### Breaking Changes
- `request_middleware::Error` is now a transparent error enum and doesn't add its own context anymore.

## [0.3.3] - 2024-07-08

### Added
- Implemented `Default` on `ClientWithMiddleware` ([#179](https://github.com/TrueLayer/reqwest-middleware/pull/179))

## [0.3.2] - 2024-06-28

### Added
- Added re-export of `reqwest`.
- `http2`, `rustls-tls`, and `charset` features, which simply enable those features in `reqwest`.

## [0.3.1]

### Fixed
- Included license files in crates
- Fix logging of User-Agent header in reqwest-tracing

### Added
- Added `with_retry_log_level` to `RetryTransientMiddleware` in reqwest-retry
- Added `ClientBuilder::from_client`

## [0.3.0] - 2024-04-10

### Breaking changes
- Upgraded `reqwest` to `0.12.0`
  * Removed default-features `json` and `multipart` from `reqwest` dependency
  * Added `json` and `multipart` features to `reqwest-middleware`
- Upgraded `matchit` to `0.8.0`
  * You may need to update some matches that look like `/a/:some_var` to `/a/{some_var}`
- Removed `task_local_extensions` in favour of `http::Extensions`
  * All extensions must be `Clone` now.

### Changed
- `RequestBuilder::try_clone` now clones the extensions.

### Added
- Implemented `Service` for `ClientWithMiddleware` to have more feature parity with `reqwest`.
- Added more methods like `build_split` to have more feature parity with `reqwest.`
- Added more documentation

### [0.2.5] - 2024-03-15

### Changed
- Updated minimum version of `reqwest` to `0.11.10`. url_mut, with_url, without_url functions are added after `0.11.10`.

### [0.2.4] - 2023-09-21

### Added
- Added `fetch_mode_no_cors` method to `reqwest_middleware::RequestBuilder`

## [0.2.3] - 2023-08-07

### Added
- Added all `reqwest::Error` methods for `reqwest_middleware::Error`

## [0.2.2] - 2023-05-11

### Added
- `RequestBuilder::version` method to configure the HTTP version

## [0.2.1] - 2023-03-09

### Added
- Support for `wasm32-unknown-unknown`

## [0.2.0] - 2022-11-15

### Changed
- `RequestBuilder::try_clone` has a fixed function signature now

### Removed
- `RequestBuilder::send_with_extensions` - use `RequestBuilder::with_extensions` + `RequestBuilder::send` instead.

### Added
- Implementation of `Debug` trait for `RequestBuilder`.
- A new `RequestInitialiser` trait that can be added to `ClientWithMiddleware`
- A new `Extension` initialiser that adds extensions to each request
- Adds `with_extension` method functionality to `RequestBuilder` that can add extensions for the `send` method to use.

## [0.1.6] - 2022-04-21

Absolutely nothing changed

## [0.1.5] - 2022-02-21

### Added
- Added support for `opentelemetry` version `0.17`.

## [0.1.4] - 2022-01-24

### Changed
- Made `Debug` impl for `ClientWithExtensions` non-exhaustive.

## [0.1.3] - 2021-10-18

### Security
- remove time v0.1 dependency

### Fixed
- Handle the `hyper::Error(IncompleteMessage)` as a `Retryable::Transient`.

## [0.1.2] - 2021-09-28
### Changed
- Disabled default features on `reqwest`
- Replaced `truelayer-extensions` with `task-local-extensions`

## [0.1.1]
### Added
- New methods on `ClientWithExtensions` and `RequestBuilder` for sending requests with initial extensions.
