- None
- None
- Add a
PreparationStrategy
property toBackendService
to allow for just-in-time modifications to outgoingRequest
s. Will McGinty #171
- None
-
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
- None
- Deprecate
TrustConfiguration
,TrustValidator
,CertificateHasher
,AuthenticationChallenge
andTrustValidatingTransportService
for iOS 14+ and macOS 11+ in favor ofNSPinnedDomains
Info.plist key Will McGinty #154
- Fix an issue with
FormURLEncoder
not properly encoding ampersands Andrew Winn #155
-
Add support for Mac Catalyst Andrew Winn #152
-
Add example for macOS (AppKit and Catalyst) Andrew Winn #152
-
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
- Add an assertion to
BackendService
if a GET HTTP request with body data is detected. Will McGinty #106
- None
- Make default implementations on
Recoverable
public
. Will McGinty #97
- Add URL modification capabilitites. Will McGinty #92
- None
-
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
- None.
-
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
- None.
-
Mark
Request.queryParameters
as deprecated in v2. Daniel Larsen #59 #61 -
Added notes about
headers
property changes to migration guide. Tyler Milner #60 #62 -
Updated Travis-CI to Xcode 9.4. Tyler Milner #63
-
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 -
Updated Result dependency to version 4.0, updated Travis-CI to Xcode 10, and updated Swift version from Swift 4.1 to Swift 4.2 (for both library and sample app). Tyler Milner #67
- None.
-
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 #52
- None.
-
Removed some duplicate code for
invalidHTTPResponseError(_:)
inNetworkServiceHelper
. Tyler Milner #19 -
Formatting and content updates for the readme. Tyler Milner #20
-
General unit test organization and cleanup. Tyler Milner #22
-
Updated CLA URL. Will McGinty #23 #24
-
Added
CHANGELOG.md
. From now on, all new bugfix/feature PR's will require an entry in the changelog. Tyler Milner #27 #29 -
Added BackendServiceHelper for public interfacing. Earl Gaspard #31
-
Upgraded project to Xcode 9.3/Swift 4.1. Tyler Milner #25 #30
- None.
-
Adjusted project structure to better support Travis-CI. CI is fully up-and-running on all 3 currently supported platforms. Carthage is now required to work on the library and run the example projects (Cocoapods is no longer used). Clone the repo, run
carthage update
, and then openHyperspace.xcworkspace
to get started. Tyler Milner #3 -
Can now
cancelAllTasks()
onBackendServiceProtocol
. Will McGinty #4 -
NetworkService
logic extracted intoNetworkServiceHelper
to better support future framework compatibility withURLSessionDelegate
implementations. Will McGinty #5 -
NetworkService
can now represent loading via the global network activity indicator shown in the device's status bar. Just initialize yourNetworkService
with aNetworkActivityIndicatable
(ex:NetworkService(networkActivityIndicatable: UIApplication.shared)
). Will McGinty #2 -
Re-enabled SwiftLint. Will McGinty #9 #11
-
Added code coverage badge. Amanda Chappell #7 #12
- None.
This is our initial release of Hyperspace. Enjoy!