Skip to content

Commit 265ba09

Browse files
committed
Release v0.99.14
1 parent 2a3ab52 commit 265ba09

File tree

1 file changed

+93
-0
lines changed

1 file changed

+93
-0
lines changed

CHANGELOG.md

Lines changed: 93 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,98 @@ 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.99.14] - 2024-04-11
16+
17+
### Added
18+
19+
- Add optional `$withResourceUsage` parameter to `Console::summary()`
20+
- Add optional `$delete` parameter to `File::pruneDir()`
21+
- Add `Arr::set()`, `Arr::unset()`, `Arr::upperFirst()`
22+
- Add `File::getLines()`, `File::isStream()`, `File::maybeWrite()`, `File::readAll()`, `File::writeAll()`
23+
- Add `Get::closure()`
24+
- Add `HasImmutableProperties::withoutProperty()`
25+
- Add `Regex::INVISIBLE_CHAR`
26+
- Add `Test::isAsciiString()`
27+
- Add `HttpHeaders` methods `get{First,Last,One}HeaderLine()`, `hasLastLine()`
28+
- Add `HttpMessage::getHttpPayload()`, `HttpMessage::__toString()`
29+
- Add `Stream::copyToStream()`, `Stream::copyToString()`
30+
- Add `HttpMultipartStream`
31+
- Add `UploadedFile` (PSR-7 implementation)
32+
- Add `Uri::isAuthorityForm()`
33+
- Add `Http::getQuotedString()` and `Http::escapeQuotedString()` (new class)
34+
35+
### Changed
36+
37+
- Replace `HttpResponse` and `HttpServerRequest` with PSR-7 implementations
38+
- In `Uri`:
39+
- Disable strict URI parsing by default
40+
- Don't normalise URIs implicitly
41+
- Optionally replace empty paths with "/" in HTTP URIs
42+
- Optionally collapse multiple slashes in URIs
43+
- Make `Uri::parse()` fully compatible with `parse_url()`
44+
- Extend `JsonSerializable` from `HttpMessageInterface` and scaffold HAR-compliant output
45+
- Return HAR header objects from `HttpHeadersInterface::jsonSerialize()`
46+
- Refactor `HttpServer` for API consistency and more robust request handling
47+
- Rename `Stream` to `HttpStream`
48+
- Don't cache stream size in `HttpStream`
49+
- Don't rewind or truncate streams in `File::copy()`
50+
- Remove optional recursion from `File::deleteDir()`
51+
- Rename `File::getStream()` to `File::maybeOpen()` and make public
52+
- Make `File::checkEof()` public
53+
- Move `File::guessIndentation()` to `Indentation::from()`
54+
- Rename `File` methods:
55+
- `existing()` -> `closestExisting()`
56+
- `readCsv()` -> `getCsv()`
57+
- `getCwd()` -> `getcwd()`
58+
- `getSeekable()` -> `getSeekableStream()`
59+
- `isPhp()` -> `hasPhp()`
60+
- `creatable()` -> `isCreatable()`
61+
- `isSeekable()` -> `isSeekableStream()`
62+
- `resolve()` -> `resolvePath()`
63+
- `dir()` -> `sanitiseDir()`
64+
- `putContents()` -> `writeContents()`
65+
- `fputcsv()` -> `writeCsvLine()`
66+
- Rename `Test` methods:
67+
- `isBoolValue()` -> `isBoolean()`
68+
- `isIntValue()` -> `isInteger()`
69+
- `isFloatValue()` -> `isFloat()`
70+
- `isPhpReservedWord()` -> `isBuiltinType()`
71+
- In `Get::code()`:
72+
- Add `$constants` parameter that maps substrings to constant identifiers
73+
- Do not escape CR or LF in multiline mode
74+
- Do not escape UTF-8 leading or continuation bytes
75+
- Always escape control characters
76+
- Escape blank/ignorable characters
77+
- Remove unnecessary backslashes
78+
- In arrays with string and integer keys, suppress numeric keys if they are numbered consecutively from `0`
79+
- Accept `iterable` in `Arr::toIndex()` and `Arr::toMap()`
80+
- Remove `Arr::trimAndImplode()` in favour of `Arr::implode()` with an optional `$characters` parameter
81+
- In `EventDispatcher`, reject calls to methods other than `dispatch()` when a listener provider is given
82+
- Move `Curler::mimeTypeIs()` to new `Http` utility class and rename to `mediaTypeIs()`
83+
- In `Http::mediaTypeIs()`, support more suffixes (e.g. `+xml`) and improve standards compliance
84+
- Rename `Str::splitAndTrim()` to `Str::split()`
85+
- Merge `Str::splitAndTrimOutsideBrackets()` into `Str::splitOutsideBrackets()`
86+
- Add closure template support to `Regex::PHPDOC_TYPE`
87+
- In `PhpDoc`, recognise `@template` syntax `as <type>` in addition to `of <type>`
88+
- Improve unified diff formatting
89+
90+
### Removed
91+
92+
- Remove `$lastValueOnly` parameter from `HttpHeaders::getHeaderLine()`
93+
94+
### Fixed
95+
96+
- Fix `Get::filter()` issue where keys are URL-decoded
97+
- Fix `Get::query()` issue where nested arrays may lose their structure
98+
- Fix issue where `Process::wait()` fails after process terminates
99+
- Fix `HttpRequest` issue where authority-form request-targets cannot be applied
100+
- In `HttpRequest`, accept arbitrary request methods and preserve their original case in all contexts
101+
- In `HttpHeaders::addLine()`, reject invalid line folding if `$strict` is `true`
102+
103+
### Security
104+
105+
- Always `chmod()` after `mkdir()` in case umask modifies permissions
106+
15107
## [v0.99.13] - 2024-03-19
16108

17109
### Added
@@ -2211,6 +2303,7 @@ This is the final release of `lkrms/util`. It is moving to [Salient](https://git
22112303

22122304
- Allow `CliOption` value names to contain arbitrary characters
22132305

2306+
[v0.99.14]: https://github.com/salient-labs/toolkit/compare/v0.99.13...v0.99.14
22142307
[v0.99.13]: https://github.com/salient-labs/toolkit/compare/v0.99.12...v0.99.13
22152308
[v0.99.12]: https://github.com/salient-labs/toolkit/compare/v0.99.11...v0.99.12
22162309
[v0.99.11]: https://github.com/salient-labs/toolkit/compare/v0.99.10...v0.99.11

0 commit comments

Comments
 (0)