### Changelog

All notable changes to this project will be documented in this file. Dates are displayed in UTC.

Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog).

### 3.0.0 — breaking changes for usability + testability

- **Drop process-wide `response` singleton.** `apiCore::__call()` now returns
  a fresh `response` instance per call. `response::getInstance()` +
  `response::resetData()` survive as no-op shims for V2 callers but new code
  should consume the returned instance directly. Errors move from a static
  `response::$error` to the per-instance `$response->error` (with `hasError()`
  + `getError()` instance helpers).
- **`http_errors` defaults to `false`.** 4xx / 5xx responses now populate
  `statusCode` + `rawBodyData` + `data` on the response — the caller decides
  how to react. Opt back into the V2 throw-on-error semantics via
  `$api->throwOnError(true)` (which still preserves the body off the wrapped
  exception, fixing a V2 footgun where the response body was lost).
- **Per-call header scoping.** `$api->withHeaders([...])` adds headers
  scoped to the next request only and clears after dispatch. Sticky
  `auth(..., 'header')` headers continue to persist across calls.
- **Injectable Guzzle client.** `client::__construct(?ClientInterface $client = null)`
  accepts a Guzzle instance (e.g. one built around `MockHandler`) so tests
  can drive deterministic responses without a real network.
- **`response::$headers`** new — collapsed PSR-7 response headers, lowercase
  keyed.
- **phpunit suite shipped.** `tests/ApiCoreTest.php` exercises the V3 surface
  + documents the Guzzle `MockHandler` test pattern.

#### [2.0.1](https://github.com/N1ghteyes/apicore/compare/2.0.0...2.0.1)

- Chore: Rector &gt; 8.2 [`755c04a`](https://github.com/N1ghteyes/apicore/commit/755c04ad75ea12e74e8b4798ea9815bdad66983b)
- Release 1.0.0 [`e5f9d9c`](https://github.com/N1ghteyes/apicore/commit/e5f9d9c5d16a0fdfb73093f7694650c3f1e55159)
- Fix: Upgrate GuzzleHttp\Guzzle to 7.* for PHP 8 compatibility [`d335bca`](https://github.com/N1ghteyes/apicore/commit/d335bca4b442586fd353354cc669aaf61d7a4391)

### [2.0.0](https://github.com/N1ghteyes/apicore/compare/1.0.0...2.0.0)

> 14 February 2023

- Chore: Rector &gt; 8.2 [`ab217b5`](https://github.com/N1ghteyes/apicore/commit/ab217b58831f1ecf9913e6a1dbb79073ed247888)
- Release 2.0.0 [`1357d10`](https://github.com/N1ghteyes/apicore/commit/1357d107d174f6ba0ef3a03183d21f0bcf846a7e)
- Chore: Composer &gt; 8.2 [`a845bac`](https://github.com/N1ghteyes/apicore/commit/a845bac4331bc9231d12e85fb98e73a94925deec)

#### 1.0.0

> 14 February 2023

- Chore: QoL Packages [`d0338ca`](https://github.com/N1ghteyes/apicore/commit/d0338ca43c7fbe7a8a333f2a11824e9c4447da8b)
- Move API Core from private repo to public github [`54f91fd`](https://github.com/N1ghteyes/apicore/commit/54f91fdc29c0ac603db4d9bd83f8b3b23ab977d2)
- Chore: PHP CS Fixer [`4d09874`](https://github.com/N1ghteyes/apicore/commit/4d0987468757bb678eb4a5dc17141fc69178eb0a)
