Releases: BottleRocketStudios/iOS-Hyperspace
5.1.0
5.0.0
5.0.0 (2023-03-23)
Enhancements
-
Remove SSL pinning machinery
Will McGinty
#164 -
Add ability to print formatted JSON from `HTTP.Response'.
Will McGinty
#167 -
Deprecate URLQueryParameterEncoder
Will McGinty
#160 -
Convert
Transporting
,BackendServicing
and related subsystems to utilize structured concurrency.
Will McGinty
#160 -
Remove migration typeliases for all the types that were deprecated in 4.0, including
RequestRecoveryStrategy
,NetworkServiceFailureInitializable
, andNetworkService*
.
Will McGinty
#158
Bug Fixes
- None
4.1.0
4.1.0 (2022-04-19)
Enhancements
- Deprecate
TrustConfiguration
,TrustValidator
,CertificateHasher
,AuthenticationChallenge
andTrustValidatingTransportService
for iOS 14+ and macOS 11+ in favor ofNSPinnedDomains
Info.plist key
Will McGinty
#154
Bug Fixes
- Fix an issue with
FormURLEncoder
not properly encoding ampersands
Andrew Winn
#155
v4.0.0
4.0.0 (2022-01-14)
Enhancements
-
Make
TransportService
thread-safe
Daniel Larsen
#145 -
Added async / await functions for executing requests
Daniel Larsen
#142 -
Migrate to use .xcframework's when resolving depencies using Carthage
Will McGinty
#139 -
Add
acceptedRange
toHTTP.Status
subtypes and allow for individual subtypes to be detected.
Will McGinty
#139 -
Strongly type
HTTP.Request.headers
andHTTP.Response.headers
as[HTTP.HeaderKey: HTTP.HeaderValue]
.
Will McGinty
#139 -
Add functionality to consider an arbitrary
TransportFailure
a success, usingRequest.recoveryTransformer
.
Will McGinty
#139 -
Add an overload to
map
which passes along theTransportSuccess
as well as the originalResponse
.
Will McGinty
#139 -
Migrate the request recovery strategy to the BackendServiceProtocol definition.
Will McGinty
#110 -
Added
method
parameter toHTTP.Request
.
Alex Reyes
#138 -
Changed underlying error in AnyError's NetworkServiceFailureInitializable implementation from NetworkServiceError to NetworkServiceFailure so it can return its failure response rather than nil.
Richard Burgess
#95 -
Finished migrating all targets to Swift 5.
Tyler Milner
#100 -
Migrate the request recovery strategy to the BackendServiceProtocol definition.
Will McGinty
#110 -
Rename
RequestRecoveryStrategy
toRecoveryStrategy
and allow multiple to be attached to a singleBackendService
. They are executed in the order they are initialized.
Will McGinty
#117 -
Rename
DecodingFailureInitializable
toDecodingFailureRepresentable
and make the failingHTTP.Response
available during initialization.
Will McGinty
#117 -
Create an
HTTP.Body
type to abstract theData
of aURLRequest
.
Will McGinty
#117 -
Several changes to simplify and refine
DecodableContainer
, as well as introduceEncodableContainer
andCodableContainer
.
Will McGinty
#117 -
Convert
Request
protocol into astruct
and eliminate theAnyRequest
type. AURLRequestCreationStrategy
has been created to allow for differences inURLRequest
generation.
Will McGinty
#117 -
Rename
Network*
toTransport*
to provide a clearer distinction between the role of theBackendService
andTransportService
.
Will McGinty
#117 -
Utilize
URLError
as part of theTransporting
protocol to allow for more granularity and detail in error reporting.
Will McGinty
#117 -
Make
TransportError
initspublic
.
Earl Gaspard
#121 -
Create a form URL encoded
HTTP.Body
convenience
Will McGinty
#125 -
Add deprecated typealias to ease migration to 4.0
Will McGinty
#124 -
Create
EmptyDecodingStrategy
to add flexibility to decodingEmptyResponse
Will McGinty
#130 -
Add
defaultDecoder
toRequestDefaults
and use when initializing aRequest
.
Earl Gaspard
#131 -
Make
transportService
public inBackendService
.
Earl Gaspard
#134 -
Make
DecodingFailure.Context
properties public.
Earl Gaspard
#135 -
Add
defaultMaxRecoveryAttempts
toRequestDefaults
and use formaxRecoveryAttempts
inRequest
. This changes the default retries from unlimited to 1.
Earl Gaspard
#137
Bug Fixes
- Add an assertion to
BackendService
if a GET HTTP request with body data is detected.
Will McGinty
#106
v3.2.1
v3.2.0
v3.1.0
Enhancements
-
Remove the type definitions deprecated in 3.0.0.
Will McGinty
#77 -
Rename
dataTransformer
family of functions tosuccessTransformer
to more accurately reflect their purpose.
Will McGinty
#78 -
Cleaned up some TODOs in the code.
Tyler Milner
#80 -
Add support for SSL certificate pinning
Will McGinty
#84 -
Add support for futures and chaining requests.
Pranjal Satija
#81 -
Fix 3.0.0 changelog.
Pranjal Satija
#82 -
Added support for Swift 5
Will McGinty
#88 -
Remove the
queryParameter
property deprecated in 2.0.0.
Will McGinty
#90
Bug Fixes
- None.
v3.0.0
Enhancements
-
Fixed CHANGELOG for version 2.0.0/2.1.0.
Tyler Milner
#73 -
Remove the type definitions deprecated in 2.0.0
Will McGinty
#72 -
[BREAKING] Added failing type information to
DecodingFailureInitializable
allowing the API to make decisions based off of the type that failed to decode and deprecate dynamically keyed decoding.
Will McGinty
#71 -
[BREAKING] Renamed
Request
protocol'stransformData(_:serviceSuccess:)
method totransformSuccess(_:)
. The redundantdata
parameter was removed since theNetworkServiceSuccess
makes it available as a property. Also simplified method signatures by introducingRequestTransformBlock
typealias.
Tyler Milner
#69
#70 -
Fixed minor typo in CHANGELOG where the PR URL text didn't match the underlying PR number.
Tyler Milner
#68
Bug Fixes
- None.
v2.1.0
Enhancements
-
Two new error-facing protocols were added.
NetworkServiceFailureInitializable
represents aSwift.Error
that can be initialized from aNetworkServiceFailure
object.DecodingFailureInitializable
represents aSwift.Error
that can be initialized from aDecodingError
as a result of decodingData
. These conformances have been added as extensions toAnyError
(meaningAnyRequest
usage is unaffected). As a result of these new protocols, theBackendServiceError
type has been removed. Types conforming toRequest
now have an associatedErrorType
which must conform toNetworkServiceFailureInitializable
. If a request generates any sort of failure response, the custom error type will be initialized from it instead of returning a genericBackendServiceError
. In addition, ifRequest.ErrorType
conforms toDecodingFailureInitializable
, the custom error type will be instantiated and returned.
Will McGinty
#38 -
Added a new initalizer to
AnyRequest
which accepts aString
value designating the key of JSON at which to begin decoding.
Will McGinty
#41 -
Separated the generation/encoding of the URL query from the
Request
object into an extensionURL
.
Will McGinty
#40 -
Add functionality to
NetworkReqest
to allow for replacing and adding to the HTTP headers.
Will McGinty
#43 -
Simplify usage of
DecodableContainer
types withJSONDecoder
Will McGinty
#44 -
Add a subsystem which can perform transparent error handling using
RequestRecoveryStrategy
.
Will McGinty
#45 -
Simplify usage of
dataTransfomer
extensions with custom error types
Will McGinty
#47 -
Add
HTTP.HeaderValue
for JSON API specification.
Earl Gaspard
#46 -
Converted
HTTP.Status
nested types (HTTP.Status.Success
,HTTP.Status.ClientError
, etc.) from enums toRawRepresentable
structs. This keeps the library more open for extension by allowing clients to more easily specify and use custom HTTP status codes.
Tyler Milner
#49
#50 -
Implemented synthesized
Equatable
andHashable
conformance that was introduced in Swift 4.1.
Tyler Milner
#51 -
Renamed
NetworkRequest
andAnyNetworkRequest
toRequest
andAnyRequest
.
Will McGinty
#51 -
Add
headers
property toHTTP.Response
. The method signature ofRequest
’stransformData(_:)
method has changed. If you implement a customtransformData(_:)
method, you will need to replace it withtransformData(_:serviceSuccess:)
.
Earl Gaspard
#64
Bug Fixes
- None.
v2.0.0
Enhancements
-
If migrating from 1.x to 2.0, be sure to check out the migration guide.
-
Two new error-facing protocols were added.
NetworkServiceFailureInitializable
represents aSwift.Error
that can be initialized from aNetworkServiceFailure
object.DecodingFailureInitializable
represents aSwift.Error
that can be initialized from aDecodingError
as a result of decodingData
. These conformances have been added as extensions toAnyError
(meaningAnyRequest
usage is unaffected). As a result of these new protocols, theBackendServiceError
type has been removed. Types conforming toRequest
now have an associatedErrorType
which must conform toNetworkServiceFailureInitializable
. If a request generates any sort of failure response, the custom error type will be initialized from it instead of returning a genericBackendServiceError
. In addition, ifRequest.ErrorType
conforms toDecodingFailureInitializable
, the custom error type will be instantiated and returned. Will McGinty #38 -
Added a new initalizer to
AnyRequest
which accepts aString
value designating the key of JSON at which to begin decoding. Will McGinty #41 -
Separated the generation/encoding of the URL query from the
Request
object into an extension onURL
. Will McGinty #40 -
Add functionality to
Request
to allow for replacing and adding to the HTTP headers. Will McGinty #43 -
Simplify usage of
DecodableContainer
types withJSONDecoder
. Will McGinty #44 -
Add a subsystem which can perform transparent error handling using
RequestRecoveryStrategy
. Will McGinty #45 -
Simplify usage of dataTransfomer extensions with custom error types. Will McGinty #47
-
Add
HTTP.HeaderValue
for JSON API specification. Earl Gaspard #46 -
Converted
HTTP.Status
nested types (HTTP.Status.Success
,HTTP.Status.ClientError
, etc.) from enums toRawRepresentable
structs. This keeps the library more open for extension by allowing clients to more easily specify and use custom HTTP status codes. Tyler Milner #49 #50 -
Implemented synthesized
Equatable
andHashable
conformance that was introduced in Swift 4.1. Tyler Milner #51 -
Renamed
NetworkRequest
andAnyNetworkRequest
toRequest
andAnyRequest
. Will McGinty #51
Bug Fixes
- None.