@@ -10,6 +10,90 @@ The format is based on [Keep a Changelog][], and this project adheres to [Semant
1010[ Keep a Changelog ] : https://keepachangelog.com/en/1.1.0/
1111[ Semantic Versioning ] : https://semver.org/spec/v2.0.0.html
1212
13+ ## [ v0.99.76] - 2025-02-26
14+
15+ ### Added
16+
17+ #### ` Http `
18+
19+ - Add and implement exception interfaces:
20+ - ` HttpException `
21+ - ` InvalidHeaderException `
22+ - ` StreamException `
23+ - ` StreamEncapsulationException `
24+
25+ #### ` Sli `
26+
27+ - Add ` --constructor ` option to "generate builder" command
28+
29+ ### Changed
30+
31+ - Rename methods across all ` Http ` and ` Curler ` classes:
32+ - ` getFirstHeaderLine() ` -> ` getFirstHeaderValue() `
33+ - ` getLastHeaderLine() ` -> ` getLastHeaderValue() `
34+ - ` getOneHeaderLine() ` -> ` getOnlyHeaderValue() `
35+
36+ #### ` Collection `
37+
38+ - Extend ` Traversable ` instead of ` IteratorAggregate ` from ` CollectionInterface ` so inheritors can implement ` Iterator `
39+ - Allow ` CollectionInterface::map() ` to return a collection of items of a different type
40+ - Return ` static<TKey|int,TValue> ` from ` CollectionInterface ` methods that add items without explicit keys
41+
42+ #### ` Core `
43+
44+ - Add ` $preserveKeys ` parameter to ` Arrayable::toArray() `
45+
46+ #### ` Curler `
47+
48+ - In ` Curler ` (and ` CurlerInterface ` , if applicable):
49+ - Simplify ` __construct() ` and include it in the API
50+ - Don't replace user agent headers by default
51+ - Add ` hasUserAgent() ` method
52+ - In ` getPublicHttpHeaders() ` , always treat access token headers as sensitive
53+ - Only call ` Console::debug() ` if the global console service is loaded
54+ - Rename methods:
55+ - ` getCacheStore() ` -> ` getCache() `
56+ - ` withCacheStore() ` -> ` withCache() `
57+ - Rename event-related abstractions for consistency with exceptions:
58+ - ` CurlEventInterface ` -> ` CurlEvent `
59+ - ` CurlRequestEventInterface ` -> ` CurlRequestEvent `
60+ - ` CurlResponseEventInterface ` -> ` CurlResponseEvent `
61+ - ` CurlerEventInterface ` -> ` CurlerEvent `
62+ - ` ResponseCacheHitEventInterface ` -> ` ResponseCacheHitEvent `
63+ - ` AbstractCurlerEvent ` -> ` CurlerEvent `
64+ - ` AbstractCurlEvent ` -> ` CurlEvent `
65+
66+ #### ` Iterator `
67+
68+ - Rename ` FluentIteratorInterface::nextWithValue() ` to ` getFirstWith() `
69+ - In ` FluentIteratorTrait::getFirstWith() ` :
70+ - Check properties exist before accessing them
71+ - Do not move to the next element after finding a match
72+ - Rename ` RecursiveFilesystemIterator ` to ` FileIterator ` and refactor
73+ - ** Return files and directories by default** (previous behaviour was to return files, not directories)
74+ - Remove optional parameters and adopt one callback signature
75+ - Rename methods:
76+ - ** ` noDirs() ` -> ` files() ` ** (the previous ` files() ` method has been removed)
77+ - ` noFiles() ` -> ` directories() `
78+ - ` matchRelative() ` -> ` relative() `
79+ - ` doNotMatchRelative() ` -> ` notRelative() `
80+
81+ #### ` Utility `
82+
83+ - In ` Get::array() ` and ` Get::list() ` , prefer ` iterator_to_array() ` when value is both ` Traversable ` and ` Arrayable `
84+ - In ` Get::list() ` and ` Get::count() ` , use ` $preserveKeys = false ` with ` Arrayable ` values instead of ` array_values() `
85+
86+ ### Removed
87+
88+ #### ` Iterator `
89+
90+ - ** Remove ` FileIterator ` methods ` dirs() ` and ` files() ` **
91+ - Remove redundant ` FluentIteratorInterface::forEach() ` method
92+ - Remove unused ` MutableIterator ` interface
93+ - Remove unused ` MutableGraphIterator ` class
94+ - Remove unused ` RecursiveMutableGraphIterator ` class
95+ - Remove unnecessary ` RecursiveGraphIteratorTrait `
96+
1397## [ v0.99.75] - 2025-02-22
1498
1599Achieved with the changes detailed below:
@@ -4649,6 +4733,7 @@ This is the final release of `lkrms/util`. It is moving to [Salient](https://git
46494733
46504734- Allow `CliOption` value names to contain arbitrary characters
46514735
4736+ [v0.99.76]: https://github.com/salient-labs/toolkit/compare/v0.99.75...v0.99.76
46524737[v0.99.75]: https://github.com/salient-labs/toolkit/compare/v0.99.74...v0.99.75
46534738[v0.99.74]: https://github.com/salient-labs/toolkit/compare/v0.99.73...v0.99.74
46544739[v0.99.73]: https://github.com/salient-labs/toolkit/compare/v0.99.72...v0.99.73
0 commit comments