Skip to content

Releases: BottleRocketStudios/iOS-Hyperspace

5.1.0

13 Dec 18:15
f3bed24
Compare
Choose a tag to compare

Enhancements

  • Add a PreparationStrategy property to BackendService to allow for just-in-time modifications to outgoing Requests.
    Will McGinty
    #171
Bug Fixes
  • None

5.0.0

23 Mar 21:03
c9dfcc4
Compare
Choose a tag to compare

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, and NetworkService*.
    Will McGinty
    #158

Bug Fixes

  • None

4.1.0

15 Mar 18:37
fcc6afa
Compare
Choose a tag to compare

4.1.0 (2022-04-19)

Enhancements

  • Deprecate TrustConfiguration, TrustValidator, CertificateHasher, AuthenticationChallenge and TrustValidatingTransportService for iOS 14+ and macOS 11+ in favor of NSPinnedDomains Info.plist key
    Will McGinty
    #154
Bug Fixes
  • Fix an issue with FormURLEncoder not properly encoding ampersands
    Andrew Winn
    #155

v4.0.0

19 Jan 23:57
08d0424
Compare
Choose a tag to compare

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 to HTTP.Status subtypes and allow for individual subtypes to be detected.
    Will McGinty
    #139

  • Strongly type HTTP.Request.headers and HTTP.Response.headers as [HTTP.HeaderKey: HTTP.HeaderValue].
    Will McGinty
    #139

  • Add functionality to consider an arbitrary TransportFailure a success, using Request.recoveryTransformer.
    Will McGinty
    #139

  • Add an overload to map which passes along the TransportSuccess as well as the original Response.
    Will McGinty
    #139

  • Migrate the request recovery strategy to the BackendServiceProtocol definition.
    Will McGinty
    #110

  • Added method parameter to HTTP.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

  • Added Carthage support.
    Ryan Gant
    #101

  • Added Swift Package Manager support.
    Ryan Gant
    #102

  • Migrate the request recovery strategy to the BackendServiceProtocol definition.
    Will McGinty
    #110

  • Rename RequestRecoveryStrategy to RecoveryStrategy and allow multiple to be attached to a single BackendService. They are executed in the order they are initialized.
    Will McGinty
    #117

  • Rename DecodingFailureInitializable to DecodingFailureRepresentable and make the failing HTTP.Response available during initialization.
    Will McGinty
    #117

  • Create an HTTP.Body type to abstract the Data of a URLRequest.
    Will McGinty
    #117

  • Several changes to simplify and refine DecodableContainer, as well as introduce EncodableContainer and CodableContainer.
    Will McGinty
    #117

  • Convert Request protocol into a struct and eliminate the AnyRequest type. A URLRequestCreationStrategy has been created to allow for differences in URLRequest generation.
    Will McGinty
    #117

  • Rename Network* to Transport* to provide a clearer distinction between the role of the BackendService and TransportService.
    Will McGinty
    #117

  • Utilize URLError as part of the Transporting protocol to allow for more granularity and detail in error reporting.
    Will McGinty
    #117

  • Make TransportError inits public.
    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 decoding EmptyResponse
    Will McGinty
    #130

  • Add defaultDecoder to RequestDefaults and use when initializing a Request.
    Earl Gaspard
    #131

  • Make transportService public in BackendService.
    Earl Gaspard
    #134

  • Make DecodingFailure.Context properties public.
    Earl Gaspard
    #135

  • Add defaultMaxRecoveryAttempts to RequestDefaults and use for maxRecoveryAttempts in Request. 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

19 Jul 16:33
c119d75
Compare
Choose a tag to compare

Enhancements

  • None
Bug Fixes

v3.2.0

11 Jul 18:00
31fa1cd
Compare
Choose a tag to compare

Enhancements

Bug Fixes
  • None

v3.1.0

07 May 14:18
4db5b2f
Compare
Choose a tag to compare

Enhancements

Bug Fixes
  • None.

v3.0.0

03 Jan 17:01
96b600a
Compare
Choose a tag to compare

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's transformData(_:serviceSuccess:) method to transformSuccess(_:). The redundant data parameter was removed since the NetworkServiceSuccess makes it available as a property. Also simplified method signatures by introducing RequestTransformBlock 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

20 Sep 22:33
ea07cc0
Compare
Choose a tag to compare
Enhancements
  • Two new error-facing protocols were added. NetworkServiceFailureInitializable represents a Swift.Error that can be initialized from a NetworkServiceFailure object. DecodingFailureInitializable represents a Swift.Error that can be initialized from a DecodingError as a result of decoding Data. These conformances have been added as extensions to AnyError (meaning AnyRequest usage is unaffected). As a result of these new protocols, the BackendServiceError type has been removed. Types conforming to Request now have an associated ErrorType which must conform to NetworkServiceFailureInitializable. If a request generates any sort of failure response, the custom error type will be initialized from it instead of returning a generic BackendServiceError. In addition, if Request.ErrorType conforms to DecodingFailureInitializable, the custom error type will be instantiated and returned.
    Will McGinty
    #38

  • Added a new initalizer to AnyRequest which accepts a String 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 URL.
    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 with JSONDecoder
    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.Statusnested types (HTTP.Status.Success, HTTP.Status.ClientError, etc.) from enums to RawRepresentable 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 and Hashable conformance that was introduced in Swift 4.1.
    Tyler Milner
    #51

  • Renamed NetworkRequest and AnyNetworkRequest to Request and AnyRequest.
    Will McGinty
    #51

  • Add headers property to HTTP.Response. The method signature of Request’s transformData(_:) method has changed. If you implement a custom transformData(_:) method, you will need to replace it with transformData(_:serviceSuccess:).
    Earl Gaspard
    #64

Bug Fixes
  • None.

v2.0.0

03 Aug 18:53
43162b3
Compare
Choose a tag to compare

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 a Swift.Error that can be initialized from a NetworkServiceFailure object. DecodingFailureInitializable represents a Swift.Error that can be initialized from a DecodingError as a result of decoding Data. These conformances have been added as extensions to AnyError (meaning AnyRequest usage is unaffected). As a result of these new protocols, the BackendServiceError type has been removed. Types conforming to Request now have an associated ErrorType which must conform to NetworkServiceFailureInitializable. If a request generates any sort of failure response, the custom error type will be initialized from it instead of returning a generic BackendServiceError. In addition, if Request.ErrorType conforms to DecodingFailureInitializable, the custom error type will be instantiated and returned. Will McGinty #38

  • Added a new initalizer to AnyRequest which accepts a String 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 on URL. 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 with JSONDecoder. 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 to RawRepresentable 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 and Hashable conformance that was introduced in Swift 4.1. Tyler Milner #51

  • Renamed NetworkRequest and AnyNetworkRequest to Request and AnyRequest. Will McGinty #51

Bug Fixes

  • None.