@@ -12,6 +12,83 @@ The format is based on [Keep a Changelog][], and this project adheres to
1212[ Keep a Changelog ] : https://keepachangelog.com/en/1.1.0/
1313[ Semantic Versioning ] : https://semver.org/spec/v2.0.0.html
1414
15+ ## [ v0.21.16] - 2023-12-21
16+
17+ ### Fixed
18+
19+ - Fix regression in 2a19c2d1 where builders cannot create objects from arrays that resolve to exactly 1 constructor parameter
20+
21+ ## [ v0.21.15] - 2023-12-21
22+
23+ ### Added
24+
25+ - Add static ` Uri::from() ` method
26+ - Add ` HttpRequest `
27+ - Add ` TReadableCollection::filterItems() `
28+
29+ ### Changed
30+
31+ - Build out ` CliCommand::getJsonSchema() ` and ` CliCommand::filterJsonSchema() `
32+ - Rename ` Json::toArrays() ` to ` Json::parseObjectAsArray() `
33+ - Standardise types that can be converted to a ` Uri `
34+ - Rename ` HttpRequest ` to ` HttpServerRequest ` and replace with PSR-7 ` HttpRequest ` class (for outgoing requests)
35+ - In ` HttpHeaders ` , move ` Host ` headers to the top of the index for compliance with \[ RFC7230]
36+
37+ ### Fixed
38+
39+ - Fix ` HttpHeaders ` issue where header names and values with trailing newlines are not rejected as invalid
40+
41+ ## [ v0.21.14] - 2023-12-20
42+
43+ ### Added
44+
45+ - Add ` File::openPipe() ` , ` File::closePipe() ` , ` File::putContents() `
46+ - Add PHPStan-friendly ` @param-out ` types to ` Pcre::match() ` and ` Pcre::matchAll() `
47+
48+ ### Fixed
49+
50+ - Fix issue where generated facades may import unused classes
51+
52+ ## [ v0.21.13] - 2023-12-15
53+
54+ ### Added
55+
56+ - Add ` Stream ` class, related exceptions and tests
57+ - Add ` HttpMessage ` class
58+ - Add ` HttpProtocolVersion ` enumeration
59+ - Add ` InvalidArgumentTypeException `
60+ - Add ` Arr::splice() `
61+ - Add ` File::read() ` , ` File::stat() ` , ` File::getContents() `
62+ - Add ` IEnumeration::hasValue() ` and implement in ` ConvertibleEnumeration ` , ` ReflectiveEnumeration ` , ` Enumeration `
63+
64+ ### Changed
65+
66+ - Refactor, move and deprecate previous:
67+ - ` Convert::arraySpliceAtKey() ` -> ` Arr::spliceByKey() `
68+ - ` Convert::renameArrayKey() ` -> ` Arr::rename() `
69+ - ` Test::isPharUrl() ` -> ` File::isPharUri() `
70+ - ` Test::isAbsolutePath() ` -> ` File::isAbsolute() `
71+ - Make ` Uri::removeDotSegments() ` public, improve documentation
72+ - Change ` HttpRequestMethod ` from dictionary to enumeration
73+ - Rename for PSR-7 consistency:
74+ - ` IHttpHeaders ` -> ` HttpHeadersInterface `
75+ - ` IAccessToken ` -> ` AccessTokenInterface `
76+ - Move classes in ` Http\Auth ` to ` Http\OAuth2 `
77+
78+ ### Deprecated
79+
80+ - Deprecate (see above):
81+ - ` Convert::arraySpliceAtKey() `
82+ - ` Convert::renameArrayKey() `
83+ - ` Test::isPharUrl() `
84+ - ` Test::isAbsolutePath() `
85+
86+ ### Fixed
87+
88+ - Fix issue where ` File ` methods do not throw ` FilesystemErrorException ` on failure
89+ - Fix issue where ` Test::isAbsolutePath() ` does not match URIs or Windows paths with forward slashes, e.g. ` C:/path/to/file `
90+ - Fix issue where ` Test::isPharUrl() ` only matches when scheme name is lowercase
91+
1592## [ v0.21.12] - 2023-12-12
1693
1794### Added
@@ -1082,6 +1159,10 @@ The format is based on [Keep a Changelog][], and this project adheres to
10821159
10831160- Allow ` CliOption ` value names to contain arbitrary characters
10841161
1162+ [ v0.21.16 ] : https://github.com/lkrms/php-util/compare/v0.21.15...v0.21.16
1163+ [ v0.21.15 ] : https://github.com/lkrms/php-util/compare/v0.21.14...v0.21.15
1164+ [ v0.21.14 ] : https://github.com/lkrms/php-util/compare/v0.21.13...v0.21.14
1165+ [ v0.21.13 ] : https://github.com/lkrms/php-util/compare/v0.21.12...v0.21.13
10851166[ v0.21.12 ] : https://github.com/lkrms/php-util/compare/v0.21.11...v0.21.12
10861167[ v0.21.11 ] : https://github.com/lkrms/php-util/compare/v0.21.10...v0.21.11
10871168[ v0.21.10 ] : https://github.com/lkrms/php-util/compare/v0.21.9...v0.21.10
0 commit comments