Releases: salient-labs/toolkit
Releases · salient-labs/toolkit
v0.99.50
v0.99.49
Added
Contract
- Add
StreamWrapper, an abstraction of thestreamWrapperprototype class described in the PHP manual
Curler
- Add
CurlerPageRequestand allow it to be returned fromCurlerPagerInterface::getFirstRequest()to minimise query string deserialization between requests - Add
CurlerPagemethodsgetCurrent()andgetTotal(), which return$currentand$totalvalues passed to__construct(), so progress can be tracked across responses if needed - Add
AbstractRequestExceptionandAbstractResponseExceptionto API so middleware can extend them
Testing (new)
- Add
MockPhpStream - Add
MockTarget(fromConsole)
Changed
Curler
- In
CurlerPagerInterface::getPage(), add$responseand$queryparameters to simplify pager code and improve consistency - Move
isLastPage()andgetNextRequest()fromCurlerPageInterfacetoCurlerPageRequestInterfaceand extend the latter from the former - Replace
isLastPage()withhasNextRequest()
Sli
- Review
slisubcommand names
Sync
- Move
SendHttpRequestfromSlitoSync, rename it toSendHttpSyncProviderRequest, and refactor for consistency - Rename
GetSyncEntitiestoGetSyncEntityfor consistency
Removed
Console
- Remove
ConsoleInvalidTargetException
Curler
- Remove redundant
HttpErrorExceptionInterface::getStatusCode()andisNotFoundError()methods
Fixed
Curler
- Fix
Curlerissue where initial query is not passed to pagers - Fix
Curlerpagination issue where entities are returned with the same keys for each page of data
Sync
- Fix
SyncEntityProviderissue where upstream iterator keys are preserved unnecessarily, leading to possible data loss
v0.99.48
Added
Container
- Add application method
getHarFilename()
Changed
Container
- In application method
exportHar():- Defer creation of HAR file until first
Curlerrequest - Allow
$uuidto be given via callback (e.g. to matchSync::getRunUuid())
- Defer creation of HAR file until first
Curler
- Add optional
$eventparameter toCurlerHarRecorder::start()
Fixed
Http
- Fix
OAuth2Clientissue where a stale JWKS may not be refreshed - Fix
HttpHeadersissue wheregetLines()returns unsorted headers after the collection is sorted or reversed - Add and implement
HttpHeadersInterface::canonicalize()to resolve issue whereHttpHeaders::getLines()may return headers in an order not compliant with [RFC7230]
v0.99.47
Changed
Console
- Adopt "^ " instead of "? " as the default warning message prefix
Curler
- Rename
CurlerHttpArchiveRecordertoCurlerHarRecorder - Follow
Locationheaders inCurlerinstead of enabling cURL'sCURLOPT_FOLLOWLOCATIONoption- This allows
CurlerHarRecorderto be used when following redirects - It will also allow redirect behaviour, including caching, to be customised in a future release
- This allows
- Throw
TooManyRedirectsExceptionifMaxRedirectsis exceeded inCurler - Improve cache stability by serializing header values, not
HttpHeadersinstances, when caching responses inCurler - Don't silently remove query and fragment from request URI in
Curler::withRequest()- An exception is now thrown if the given URI has a query or fragment
Fixed
Curler
- Fix issue where
Curlerresponse cache resolves equivalent requests separately if one has an empty path and the other path is"/" - Fix
Curlerissue where HTTP error responses are cached if they are not thrown - Fix
Curlerissue where request bodies larger than 2MiB are not rewound when they are retried after "429 Too Many Requests"- An exception is now thrown if a request body cannot be rewound after redirection or "429 Too Many Requests"
- Fix
Curlerissue where multiple response bodies may be returned as one when a request is retried after "429 Too Many Requests"
v0.99.46
Added
Container
- Add application method
exportHar()
Curler
- Add
CurlerHttpArchiveRecorder - Add, implement and dispatch
Curlerrequest and response events - Add and implement
Curlerexception interfaces - Add
CurlermethodgetFormDataFlags()
Http
- Add
Http::replaceQuery()
Changed
Container
- Rename methods:
ContainerInterface::unbindInstance()->removeInstance()ApplicationInterface::syncNamespace()->registerSyncNamespace()
- In
Application:- Use
var/lib/configandvar/lib/datainstead ofconfigandvar/libas default config and data directories - Use
$_SERVER['REQUEST_TIME_FLOAT']to calculate elapsed time - Throw an exception if
logOutput()is called multiple times
- Use
- Update
ApplicationInterface::registerShutdownReport()parameters for consistency
Curler
- Replace
CurlerInterface::getUriWithQuery()withreplaceQuery()
Http
- Build out
jsonSerialize()methods - Rename
Http::applyToQuery()tomergeQuery()
Removed
Curler
CurlerFile: remove unusedgetCurlFile()method
Fixed
File
- In
File::maybeOpen(), always set$uriif null
v0.99.45
Added
Sync
- Add and implement new exception interfaces:
HeartbeatCheckFailedExceptionInterfaceSyncOperationNotImplementedExceptionInterfaceUnreachableBackendExceptionInterface
Utility
- Add
$trimarguments toFormat::list()andFormat::array()
Changed
Sync
- Move
Http- andDb-specific classes to their own namespaces - Rename exception classes for consistency:
SyncFilterPolicyViolationException->FilterPolicyViolationExceptionSyncInvalidFilterException->InvalidFilterExceptionSyncInvalidFilterSignatureException->InvalidFilterSignatureExceptionSyncProviderBackendUnreachableException->UnreachableBackendExceptionSyncProviderHeartbeatCheckFailedException->HeartbeatCheckFailedException
Removed
Sync
- Remove unused
SyncInvalidRequestException
Fixed
Sync
- Fix issue where
HttpSyncDefinitionfails to pass payloads applied viawithArgs()toREADorREAD_LISToperations regardless of the HTTP method they resolve to - Fix
HttpSyncDefinitionissue where context values are claimed as if they are filters
v0.99.44
v0.99.43
v0.99.42
Added
Utility
- Add optional
$nullEmptyparameter toArr::trim()so empty strings can be replaced withnullinstead of being removed
Changed
Cli
- Fall back to defaults when
_manor_mdcommands receive empty arguments
Fixed
Cli
- Fix issue where long synopses cause Markdown usage information with man page extensions to be generated with unwanted line breaks
Console
- Fix inconsistent newline handling in
ConsoleFormatter
v0.99.41
Added
Http
- Add
Http::applyToQuery()for simple manipulation of query strings in URIs
Changed
Core
- Move
GraphfromIteratortoCoreand refactor- Allow
Graphto be extended - Rename
Graph::inner()togetValue() - Don't create missing properties or array keys on
Graph::offsetGet()unless enabled via new constructor parameters - Add and implement
GraphInterface
- Allow
Removed
Core
- Remove
Graph::with()andGraph::from()