├── .github ├── ISSUE_TEMPLATE │ ├── bug_report.md │ └── feature_request.md ├── pull_request_template.md └── workflows │ └── main.yml ├── .gitignore ├── .swiftpm └── xcode │ └── package.xcworkspace │ └── contents.xcworkspacedata ├── CHANGELOG.md ├── Example ├── Example.xcodeproj │ ├── project.pbxproj │ ├── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcshareddata │ │ │ └── IDEWorkspaceChecks.plist │ └── xcshareddata │ │ └── xcschemes │ │ └── Example.xcscheme ├── Example │ ├── AppDelegate.swift │ ├── Assets.xcassets │ │ ├── AppIcon.appiconset │ │ │ └── Contents.json │ │ ├── Contents.json │ │ ├── Image.imageset │ │ │ ├── 0_VmzczR2-GWRnMej3.png │ │ │ ├── Contents.json │ │ │ ├── MkYC3-1.png │ │ │ └── MkYC3.png │ │ └── logo.imageset │ │ │ ├── Contents.json │ │ │ ├── web trello-1.png │ │ │ ├── web trello-2.png │ │ │ └── web trello.png │ ├── Base.lproj │ │ └── LaunchScreen.storyboard │ ├── Extensions │ │ └── UIStoryboard+Extension.swift │ ├── Features │ │ ├── GroupFeature │ │ │ ├── GroupConfigurator.swift │ │ │ ├── GroupPresenter.swift │ │ │ ├── GroupViewController.storyboard │ │ │ ├── GroupViewController.swift │ │ │ └── GroupViewModelProvider.swift │ │ └── PaginationFeature │ │ │ ├── Cells │ │ │ ├── BaseLoadingSubview.swift │ │ │ ├── PaginationCell.swift │ │ │ ├── PaginationCell.xib │ │ │ └── PaginationCellViewModel.swift │ │ │ ├── PaginationConfigurator.swift │ │ │ ├── PaginationPresenter.swift │ │ │ ├── PaginationRouter.swift │ │ │ ├── PaginationViewController.storyboard │ │ │ ├── PaginationViewController.swift │ │ │ └── Subviews │ │ │ └── PaginationLoadingView.swift │ ├── Flows │ │ ├── AuthFlow │ │ │ ├── Credentials.swift │ │ │ ├── LoginConfigurator.swift │ │ │ ├── LoginPresenter.swift │ │ │ ├── LoginRouter.swift │ │ │ ├── LoginViewController.storyboard │ │ │ └── LoginViewController.swift │ │ └── FeatureListFlow │ │ │ ├── Cells │ │ │ ├── FeatureCell.swift │ │ │ ├── FeatureCell.xib │ │ │ └── FeatureCellViewModel.swift │ │ │ ├── FeatureListConfigurator.swift │ │ │ ├── FeatureListPresenter.swift │ │ │ ├── FeatureListRouter.swift │ │ │ ├── FeatureListViewController.storyboard │ │ │ └── FeatureListViewController.swift │ ├── Info.plist │ └── Utils │ │ ├── ErrorRepresentable.swift │ │ ├── Message.swift │ │ └── Message.xib └── Modules │ ├── MockServer │ ├── MockServer │ │ ├── Auth │ │ │ └── LoginResponseProvider.swift │ │ ├── Error │ │ │ └── ErrorResponseProvider.swift │ │ ├── FakeChainBuilder.swift │ │ ├── Group │ │ │ └── GroupResponseProvider.swift │ │ ├── MockServer.swift │ │ ├── Pagination │ │ │ └── PaginationResponseProvider.swift │ │ └── ServerConstants.swift │ └── Package.swift │ ├── Models │ ├── Models │ │ ├── Requests │ │ │ ├── Auth │ │ │ │ ├── AuthRequestEntity.swift │ │ │ │ └── AuthRequestEntry.swift │ │ │ └── Pagination │ │ │ │ ├── PaginationRequestEntity.swift │ │ │ │ └── PaginationRequestEntry.swift │ │ └── Responses │ │ │ ├── Auth │ │ │ ├── AuthTokenResponseEntity.swift │ │ │ └── AuthTokenResponseEntry.swift │ │ │ ├── Group │ │ │ ├── GroupBodyResponseEntity.swift │ │ │ ├── GroupBodyResponseEntry.swift │ │ │ ├── GroupFooterResponseEntity.swift │ │ │ ├── GroupFooterResponseEntry.swift │ │ │ ├── GroupHeaderResponseEntity.swift │ │ │ └── GroupHeaderResponseEntry.swift │ │ │ └── Pagination │ │ │ ├── PaginationResponseEntity.swift │ │ │ └── PaginationResponseEntry.swift │ └── Package.swift │ └── Services │ ├── Package.swift │ └── Services │ ├── AuthService │ ├── AuthService.swift │ └── AuthURLProvider.swift │ ├── GroupService │ ├── GroupService.swift │ └── GroupURLProvider.swift │ ├── PaginationService │ ├── PaginationContentDataProvider.swift │ └── PaginationURLProvider.swift │ └── URLProviders.swift ├── Gemfile ├── LICENSE ├── Makefile ├── NodeKit ├── NodeKit.xcodeproj │ ├── project.pbxproj │ ├── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcshareddata │ │ │ └── IDEWorkspaceChecks.plist │ └── xcshareddata │ │ └── xcschemes │ │ ├── NodeKit.xcscheme │ │ └── NodeKitMock.xcscheme ├── NodeKit │ ├── CacheNode │ │ ├── ETag │ │ │ ├── ETagConstants.swift │ │ │ ├── URLETagReaderNode.swift │ │ │ └── URLETagSaverNode.swift │ │ ├── FirstCachePolicyNode.swift │ │ ├── IfServerFailsFromCacheNode.swift │ │ ├── URLCacheReaderNode.swift │ │ ├── URLCacheWriterNode.swift │ │ └── URLNotModifiedTriggerNode.swift │ ├── Chains │ │ ├── ChainBuilder.swift │ │ ├── ServiceChainProvider.swift │ │ └── URLChainConfigModel.swift │ ├── Core │ │ ├── Convertion │ │ │ ├── DTOConvertible.swift │ │ │ ├── Extensions │ │ │ │ ├── Array+DtoConvertible.swift │ │ │ │ ├── Array+RawMappable.swift │ │ │ │ ├── DTOConvertible+Dictionary.swift │ │ │ │ └── RawMappable+Dictionary.swift │ │ │ ├── Multipart │ │ │ │ ├── MultipartFileProvider.swift │ │ │ │ ├── MultipartModel + Convertion.swift │ │ │ │ └── MultipartModel.swift │ │ │ └── RawMappable.swift │ │ └── Node │ │ │ ├── Async │ │ │ ├── AnyAsyncNode.swift │ │ │ ├── AnyAsyncStreamNode.swift │ │ │ ├── AsyncNode.swift │ │ │ └── AsyncStreamNode.swift │ │ │ ├── Combine │ │ │ ├── CombineCompatibleNode.swift │ │ │ ├── Publisher │ │ │ │ ├── AsyncNodeResultPublisher.swift │ │ │ │ ├── AsyncStreamNodeResultPublisher.swift │ │ │ │ └── NodeResultPublisher.swift │ │ │ ├── Subscriber │ │ │ │ └── NodeSubscriber.swift │ │ │ └── Subscription │ │ │ │ ├── AsyncNodeSubscription.swift │ │ │ │ ├── AsyncStreamNodeSubscription.swift │ │ │ │ └── BaseSubscription.swift │ │ │ ├── Node.swift │ │ │ └── NodeResult.swift │ ├── Encodings │ │ ├── Models │ │ │ └── RequestEncodingModel.swift │ │ ├── ParameterEncoding.swift │ │ ├── RequestEncodingNodeError.swift │ │ └── URLJsonRequestEncodingNode.swift │ ├── Info.plist │ ├── Layers │ │ ├── DTOProcessingLayer │ │ │ ├── DTOMapperNode.swift │ │ │ └── RawEncoderNode.swift │ │ ├── DefaultLogOrder.swift │ │ ├── InputProcessingLayer │ │ │ ├── DTOEncoderNode.swift │ │ │ ├── EntryInputDtoOutputNode.swift │ │ │ ├── ModelInputNode.swift │ │ │ ├── VoidIONode.swift │ │ │ ├── VoidInputNode.swift │ │ │ └── VoidOutputNode.swift │ │ ├── LayerTypes.swift │ │ ├── Protocols │ │ │ └── URLRouteProvider.swift │ │ ├── RequestBuildingLayer │ │ │ ├── MetadataConnectorNode.swift │ │ │ ├── Models │ │ │ │ ├── EncodableRequestModel.swift │ │ │ │ ├── Method.swift │ │ │ │ ├── ParametersEncoding.swift │ │ │ │ ├── RequestModel.swift │ │ │ │ ├── RoutableRequestModel.swift │ │ │ │ └── URLQueryConfigModel.swift │ │ │ ├── MultipartURLRequestTrasformatorNode.swift │ │ │ ├── RequestEncoderNode.swift │ │ │ ├── RequestRouterNode.swift │ │ │ ├── URLQueryEncoding │ │ │ │ ├── URLQueryArrayKeyEncodingStartegy.swift │ │ │ │ ├── URLQueryBoolEncodingStartegy.swift │ │ │ │ └── URLQueryDictionaryKeyEncodingStrategy.swift │ │ │ ├── URLQueryInjectorNode.swift │ │ │ └── URLRequestTrasformatorNode.swift │ │ ├── RequestProcessingLayer │ │ │ ├── MultipartFormDataFactory.swift │ │ │ ├── MultipartRequestCreatorNode.swift │ │ │ ├── RequestCreatorNode.swift │ │ │ ├── RequestSenderNode.swift │ │ │ ├── Support │ │ │ │ ├── ParametersEncoding+Alamofire.swift │ │ │ │ ├── RawURLRequest.swift │ │ │ │ └── ServerRequestsManager.swift │ │ │ └── URLSessionDataTaskActor.swift │ │ ├── ResponsePostprocessingNode │ │ │ └── Models │ │ │ │ └── URLProcessedResponse.swift │ │ ├── ResponseProcessingLayer │ │ │ ├── DataLoading │ │ │ │ └── DataLoadingResponseProcessor.swift │ │ │ ├── Models │ │ │ │ └── URLDataResponse.swift │ │ │ ├── ResponseDataParserNode.swift │ │ │ ├── ResponseDataPreprocessorNode.swift │ │ │ ├── ResponseHttpErrorProcessorNode.swift │ │ │ └── ResponseProcessorNode.swift │ │ ├── TrasportLayer │ │ │ ├── Models │ │ │ │ ├── TransportURLParameters.swift │ │ │ │ └── TransportURLRequest.swift │ │ │ └── TechnicaErrorMapperNode.swift │ │ └── Utils │ │ │ ├── AccessSafe │ │ │ ├── AccessSafeNode.swift │ │ │ ├── TokenRefresherActor.swift │ │ │ └── TokenRefresherNode.swift │ │ │ ├── HeaderInjectorNode.swift │ │ │ └── RequestAborterNode.swift │ ├── NodeKit.h │ └── Utils │ │ ├── AsyncIterator │ │ ├── AsyncIterator.swift │ │ ├── AsyncPagerDataProvider.swift │ │ ├── AsyncPagerIterator.swift │ │ └── StateStorable.swift │ │ ├── CancellableTask.swift │ │ ├── Logging │ │ ├── Chain │ │ │ ├── LogChain.swift │ │ │ └── LogableChain.swift │ │ ├── Log │ │ │ ├── Log.swift │ │ │ ├── LogSession.swift │ │ │ ├── LogType.swift │ │ │ └── LoggingProxy.swift │ │ ├── LoggerExtensions.swift │ │ ├── LoggerNode.swift │ │ ├── LoggerStreamNode.swift │ │ └── LoggingContext.swift │ │ ├── Mapping │ │ └── CodableRawMapper.swift │ │ ├── MetadataProvider.swift │ │ └── UrlRouting │ │ └── UrlRouting.swift ├── NodeKitMock │ ├── AborterMock.swift │ ├── AsyncNodeMock.swift │ ├── AsyncPagerDataProviderMock.swift │ ├── AsyncStreamNodeMock.swift │ ├── Builder │ │ ├── ChainBuilderMock.swift │ │ ├── ChainConfigBuilderMock.swift │ │ └── ServiceChainProviderMock.swift │ ├── CancellableTaskMock.swift │ ├── CombineCompatibleNodeMock.swift │ ├── DTOConvertibleMock.swift │ ├── DTODecodableMock.swift │ ├── DTOEncodableMock.swift │ ├── LogSessionMock.swift │ ├── LoggingContextMock.swift │ ├── LoggingProxyMock.swift │ ├── MetadataProviderMock.swift │ ├── MockError.swift │ ├── MultipartFormDataFactoryMock.swift │ ├── MultipartFormDataMock.swift │ ├── NetworkMock.swift │ ├── RawDecodableMock.swift │ ├── RawEncodableMock.swift │ ├── RawMappableMock.swift │ ├── TokenRefresherActorMock.swift │ ├── URLProtocolMock.swift │ ├── URLRouteProviderMock.swift │ ├── URLServiceChainProviderMock.swift │ ├── URLSessionDataTaskActorMock.swift │ ├── URLSessionDataTaskMock.swift │ └── Utils │ │ ├── Array+Extension.swift │ │ ├── DispatchQueue+Extension.swift │ │ ├── Equatable │ │ ├── Log+Equatalbe.swift │ │ └── TransportURLRequest+Equatable.swift │ │ └── Result+Extension.swift ├── NodeKitTests │ ├── IntegrationTests │ │ ├── EmptyResponseMappingTests.swift │ │ ├── FromURLCodingTests.swift │ │ ├── Infrastructure │ │ │ ├── Infrastructure.swift │ │ │ └── Models │ │ │ │ ├── Entity │ │ │ │ ├── AuthModel.swift │ │ │ │ ├── Credentials.swift │ │ │ │ └── User.swift │ │ │ │ └── Entry │ │ │ │ ├── AuthModelEntry.swift │ │ │ │ ├── CredentialsEntry.swift │ │ │ │ └── UserEntry.swift │ │ ├── MultipartRequestTests.swift │ │ ├── SimpleURLChainTests.swift │ │ └── URLResponsesStub.swift │ ├── MyTests.swift │ ├── Resources │ │ └── LICENSE.txt │ └── UnitTests │ │ ├── AsyncIterator │ │ └── AsyncPagerIteratorTests.swift │ │ ├── Builder │ │ └── URLChainBuilderTests.swift │ │ ├── Cache │ │ ├── ETag │ │ │ ├── TestUtls.swift │ │ │ └── URLWithOrderedQuery.swift │ │ └── FirstCachePolicyTests.swift │ │ ├── Coding │ │ ├── ArrayDTODecodableTests.swift │ │ ├── ArrayRawMappableTests.swift │ │ ├── DTODecodableTests.swift │ │ ├── DictionaryDTOConvertibleTests.swift │ │ ├── EncodingTests.swift │ │ └── RawDecodableTests.swift │ │ ├── Core │ │ ├── AsyncNodeTests.swift │ │ ├── AsyncStreamNodeTests.swift │ │ ├── Combine │ │ │ └── CombineNodeTests.swift │ │ └── NodeResultTests.swift │ │ ├── Logging │ │ ├── LogableTests.swift │ │ └── LoggingContextTests.swift │ │ ├── Network │ │ ├── AlamofireMultipartFormDataFactoryTests.swift │ │ ├── MultipartModelTests.swift │ │ ├── ServerRequestsManagerTests.swift │ │ ├── URLChainConfigModelTests.swift │ │ ├── URLRoutingTests.swift │ │ └── URLSessionDataTaskActorTests.swift │ │ ├── Nodes │ │ ├── AbortingTests.swift │ │ ├── AccessSafeNodeTests.swift │ │ ├── CacheReaderNodeTests.swift │ │ ├── DTOEncoderNodeTests.swift │ │ ├── DTOMapperNodeTests.swift │ │ ├── DataLoadingResponseProcessorTests.swift │ │ ├── EntryinputDtoOutputNodeTests.swift │ │ ├── HeaderInjectorNodeTests.swift │ │ ├── IfConnectionFailedFromCacheNodeTests.swift │ │ ├── LoggerNodeTests.swift │ │ ├── LoggerStreamNodeTests.swift │ │ ├── MetadataConnectorNodeTests.swift │ │ ├── ModelInputNodeTests.swift │ │ ├── MultipartRequestCreatorNodeTests.swift │ │ ├── MultipartURLRequestTrasformatorNodeTests.swift │ │ ├── RawEncoderNodeTests.swift │ │ ├── RequestCreatorNodeTests.swift │ │ ├── RequestEncoderNodeTests.swift │ │ ├── RequestRouterNodeTests.swift │ │ ├── RequestSenderNodeTests.swift │ │ ├── ResponseDataParserNodeTests.swift │ │ ├── ResponseDataPreprocessorNodeTests.swift │ │ ├── ResponseHttpErrorProcessorNodeTests.swift │ │ ├── ResponseProcessorNodeTests.swift │ │ ├── TechnicaErrorMapperNodeTests.swift │ │ ├── TokenRefresherNodeTests.swift │ │ ├── URLCacheWriterNodeTests.swift │ │ ├── URLETagReaderNodeTests.swift │ │ ├── URLETagSaverNodeTests.swift │ │ ├── URLNotModifiedTriggerNodeTests.swift │ │ ├── URLQueryInjectorNodeTests.swift │ │ ├── URLRequestTrasformatorNodeTests.swift │ │ ├── VoidIONodeTests.swift │ │ ├── VoidInputNodeTests.swift │ │ └── VoidOutputNodeTests.swift │ │ ├── RequestBuildingLayer │ │ ├── URLQueryArrayKeyEncodingBracketsStartegyTests.swift │ │ ├── URLQueryBoolEncodingDefaultStartegyTests.swift │ │ └── URLQueryDictionaryKeyEncodingDefaultStrategyTests.swift │ │ └── TokenRefresher │ │ └── TokenRefresherActorTests.swift └── NodeKitThirdParty │ ├── .swiftpm │ └── xcode │ │ └── package.xcworkspace │ │ └── contents.xcworkspacedata │ ├── Package.swift │ └── Source │ └── Alamofire │ ├── AFError.swift │ ├── HTTPHeaders.swift │ ├── MultipartFormData.swift │ └── MultipartFormDataProtocol.swift ├── Package.swift ├── README.md ├── ROADMAP.md ├── TechDocs ├── Chains.md ├── ContributionGuide.md ├── Documentation.md ├── Header.svg ├── Header.umdx ├── Log │ ├── Log.md │ ├── log_chaining.svg │ ├── log_chaining.umdx │ ├── log_nodes_tree.svg │ └── log_nodes_tree.umdx ├── MainConcept.md ├── Models.md ├── NodeKitHeader.svg ├── NodeKitHeader.umdx ├── Nodes │ └── Existing.md ├── Testing │ └── NodeKitMock.md └── Usage.md ├── codecov.yml ├── docs ├── css │ ├── 523.e9a069b0.css │ ├── 675.40c3bcb2.css │ ├── documentation-topic.b186e79f.css │ ├── index.ff036a9e.css │ ├── topic.672a9049.css │ └── tutorials-overview.6eb589ed.css ├── data │ └── documentation │ │ ├── nodekit.json │ │ └── nodekit │ │ ├── aborter.json │ │ ├── aborter │ │ └── cancel(logcontext:).json │ │ ├── aborternode.json │ │ ├── aborternode │ │ ├── aborter.json │ │ ├── asyncnode-implementations.json │ │ ├── combinecompatiblenode-implementations.json │ │ ├── erasetoanynode().json │ │ ├── init(next:aborter:).json │ │ ├── logviewobjectname.json │ │ ├── next.json │ │ ├── node-implementations.json │ │ ├── noderesultpublisher().json │ │ ├── noderesultpublisher(for:).json │ │ ├── noderesultpublisher(for:logcontext:).json │ │ ├── noderesultpublisher(for:on:).json │ │ ├── noderesultpublisher(for:on:logcontext:).json │ │ ├── noderesultpublisher(logcontext:).json │ │ ├── noderesultpublisher(on:).json │ │ ├── noderesultpublisher(on:logcontext:).json │ │ ├── objectname.json │ │ ├── process().json │ │ ├── process(_:).json │ │ └── process(_:logcontext:).json │ │ ├── accesssafenode.json │ │ ├── accesssafenode │ │ ├── asyncnode-implementations.json │ │ ├── combinecompatiblenode-implementations.json │ │ ├── erasetoanynode().json │ │ ├── init(next:updatetokenchain:).json │ │ ├── logviewobjectname.json │ │ ├── next.json │ │ ├── node-implementations.json │ │ ├── noderesultpublisher(for:).json │ │ ├── noderesultpublisher(for:logcontext:).json │ │ ├── noderesultpublisher(for:on:).json │ │ ├── noderesultpublisher(for:on:logcontext:).json │ │ ├── objectname.json │ │ ├── process(_:).json │ │ ├── process(_:logcontext:).json │ │ └── updatetokenchain.json │ │ ├── accesssafenodeerror.json │ │ ├── accesssafenodeerror │ │ ├── !=(_:_:).json │ │ ├── asaferror.json │ │ ├── equatable-implementations.json │ │ ├── error-implementations.json │ │ ├── localizeddescription.json │ │ └── nodewasrelease.json │ │ ├── alamofiremultipartformdatafactory.json │ │ ├── alamofiremultipartformdatafactory │ │ ├── init().json │ │ └── produce().json │ │ ├── anyasyncnode.json │ │ ├── anyasyncnode │ │ ├── asyncnode-implementations.json │ │ ├── combinecompatiblenode-implementations.json │ │ ├── erasetoanynode().json │ │ ├── logviewobjectname.json │ │ ├── node-implementations.json │ │ ├── noderesultpublisher().json │ │ ├── noderesultpublisher(for:).json │ │ ├── noderesultpublisher(for:logcontext:).json │ │ ├── noderesultpublisher(for:on:).json │ │ ├── noderesultpublisher(for:on:logcontext:).json │ │ ├── noderesultpublisher(logcontext:).json │ │ ├── noderesultpublisher(on:).json │ │ ├── noderesultpublisher(on:logcontext:).json │ │ ├── objectname.json │ │ ├── process().json │ │ ├── process(_:).json │ │ └── process(_:logcontext:).json │ │ ├── asynciterator.json │ │ ├── asynciterator │ │ ├── hasnext().json │ │ ├── next().json │ │ ├── renew().json │ │ └── value.json │ │ ├── asyncnode.json │ │ ├── asyncnode │ │ ├── erasetoanynode()-7rdro.json │ │ ├── erasetoanynode()-9q4vf.json │ │ ├── input.json │ │ ├── output.json │ │ ├── process().json │ │ ├── process(_:).json │ │ └── process(_:logcontext:).json │ │ ├── asyncpagerdata.json │ │ ├── asyncpagerdata │ │ ├── init(value:len:).json │ │ ├── len.json │ │ └── value.json │ │ ├── asyncpagerdataprovider.json │ │ ├── asyncpagerdataprovider │ │ ├── provide(for:with:).json │ │ └── value.json │ │ ├── asyncpageriterator.json │ │ ├── asyncpageriterator │ │ ├── actor-implementations.json │ │ ├── assertisolated(_:file:line:).json │ │ ├── assumeisolated(_:file:line:).json │ │ ├── clearstates().json │ │ ├── hasnext().json │ │ ├── init(dataprovider:pagesize:).json │ │ ├── next().json │ │ ├── preconditionisolated(_:file:line:).json │ │ ├── renew().json │ │ ├── restorestate().json │ │ └── savestate().json │ │ ├── basetechnicalerror.json │ │ ├── basetechnicalerror │ │ ├── !=(_:_:).json │ │ ├── asaferror.json │ │ ├── cantconnecttohost.json │ │ ├── datanotallowed.json │ │ ├── equatable-implementations.json │ │ ├── error-implementations.json │ │ ├── localizeddescription.json │ │ ├── nointernetconnection.json │ │ └── timeout.json │ │ ├── baseurlcachereadererror.json │ │ ├── baseurlcachereadererror │ │ ├── !=(_:_:).json │ │ ├── asaferror.json │ │ ├── cantcasttojson.json │ │ ├── cantloaddatafromcache.json │ │ ├── cantserializejson.json │ │ ├── equatable-implementations.json │ │ ├── error-implementations.json │ │ └── localizeddescription.json │ │ ├── cancellabletask.json │ │ ├── cancellabletask │ │ └── cancel().json │ │ ├── chainbuilder.json │ │ ├── chainbuilder │ │ ├── add(provider:).json │ │ ├── build()-36597.json │ │ ├── build()-5c7qf.json │ │ ├── build()-78200.json │ │ ├── build()-9ggos.json │ │ ├── build()-9rmnl.json │ │ ├── builddataloading()-36w4o.json │ │ ├── builddataloading()-88wft.json │ │ ├── encode(as:).json │ │ ├── route(_:_:).json │ │ ├── route.json │ │ └── set(metadata:).json │ │ ├── chainconfigbuilder.json │ │ ├── chainconfigbuilder │ │ ├── set(arrayencodingstrategy:).json │ │ ├── set(boolencodingstartegy:).json │ │ ├── set(dictencodindstrategy:).json │ │ └── set(query:).json │ │ ├── combinecompatiblenode.json │ │ ├── combinecompatiblenode │ │ ├── i.json │ │ ├── noderesultpublisher().json │ │ ├── noderesultpublisher(for:).json │ │ ├── noderesultpublisher(for:logcontext:).json │ │ ├── noderesultpublisher(for:on:).json │ │ ├── noderesultpublisher(for:on:logcontext:)-34z2f.json │ │ ├── noderesultpublisher(for:on:logcontext:)-9k894.json │ │ ├── noderesultpublisher(logcontext:).json │ │ ├── noderesultpublisher(on:).json │ │ ├── noderesultpublisher(on:logcontext:).json │ │ └── o.json │ │ ├── dataloadingresponseprocessor.json │ │ ├── dataloadingresponseprocessor │ │ ├── asyncnode-implementations.json │ │ ├── combinecompatiblenode-implementations.json │ │ ├── erasetoanynode().json │ │ ├── init(next:).json │ │ ├── logviewobjectname.json │ │ ├── next.json │ │ ├── node-implementations.json │ │ ├── noderesultpublisher(for:).json │ │ ├── noderesultpublisher(for:logcontext:).json │ │ ├── noderesultpublisher(for:on:).json │ │ ├── noderesultpublisher(for:on:logcontext:).json │ │ ├── objectname.json │ │ ├── process(_:).json │ │ └── process(_:logcontext:).json │ │ ├── dtoconvertible.json │ │ ├── dtodecodable.json │ │ ├── dtodecodable │ │ ├── dto.json │ │ └── from(dto:).json │ │ ├── dtoencodable.json │ │ ├── dtoencodable │ │ ├── dto.json │ │ └── todto().json │ │ ├── dtoencodernode.json │ │ ├── dtoencodernode │ │ ├── asyncnode-implementations.json │ │ ├── combinecompatiblenode-implementations.json │ │ ├── erasetoanynode().json │ │ ├── init(rawencodable:).json │ │ ├── logviewobjectname.json │ │ ├── node-implementations.json │ │ ├── noderesultpublisher().json │ │ ├── noderesultpublisher(for:).json │ │ ├── noderesultpublisher(for:logcontext:).json │ │ ├── noderesultpublisher(for:on:).json │ │ ├── noderesultpublisher(for:on:logcontext:).json │ │ ├── noderesultpublisher(logcontext:).json │ │ ├── noderesultpublisher(on:).json │ │ ├── noderesultpublisher(on:logcontext:).json │ │ ├── objectname.json │ │ ├── process().json │ │ ├── process(_:).json │ │ ├── process(_:logcontext:).json │ │ └── rawencodable.json │ │ ├── dtomappernode.json │ │ ├── dtomappernode │ │ ├── asyncnode-implementations.json │ │ ├── combinecompatiblenode-implementations.json │ │ ├── erasetoanynode().json │ │ ├── init(next:).json │ │ ├── logviewobjectname.json │ │ ├── next.json │ │ ├── node-implementations.json │ │ ├── noderesultpublisher().json │ │ ├── noderesultpublisher(for:).json │ │ ├── noderesultpublisher(for:logcontext:).json │ │ ├── noderesultpublisher(for:on:).json │ │ ├── noderesultpublisher(for:on:logcontext:).json │ │ ├── noderesultpublisher(logcontext:).json │ │ ├── noderesultpublisher(on:).json │ │ ├── noderesultpublisher(on:logcontext:).json │ │ ├── objectname.json │ │ ├── process().json │ │ ├── process(_:).json │ │ └── process(_:logcontext:).json │ │ ├── encodablerequestmodel.json │ │ ├── encodablerequestmodel │ │ ├── encoding.json │ │ ├── metadata.json │ │ ├── raw.json │ │ └── route.json │ │ ├── entryinputdtooutputnode.json │ │ ├── entryinputdtooutputnode │ │ ├── asyncnode-implementations.json │ │ ├── combinecompatiblenode-implementations.json │ │ ├── erasetoanynode().json │ │ ├── logviewobjectname.json │ │ ├── next.json │ │ ├── node-implementations.json │ │ ├── noderesultpublisher().json │ │ ├── noderesultpublisher(for:).json │ │ ├── noderesultpublisher(for:logcontext:).json │ │ ├── noderesultpublisher(for:on:).json │ │ ├── noderesultpublisher(for:on:logcontext:).json │ │ ├── noderesultpublisher(logcontext:).json │ │ ├── noderesultpublisher(on:).json │ │ ├── noderesultpublisher(on:logcontext:).json │ │ ├── objectname.json │ │ ├── process().json │ │ ├── process(_:).json │ │ └── process(_:logcontext:).json │ │ ├── errorarrayjsonmappiong.json │ │ ├── errorarrayjsonmappiong │ │ ├── asaferror.json │ │ ├── cantfindkeyinraw(_:).json │ │ ├── error-implementations.json │ │ └── localizeddescription.json │ │ ├── etagconstants.json │ │ ├── etagconstants │ │ ├── etagrequestheaderkey.json │ │ └── etagresponseheaderkey.json │ │ ├── foundation.json │ │ ├── foundation │ │ ├── characterset.json │ │ ├── characterset │ │ │ └── afurlqueryallowed.json │ │ ├── url.json │ │ └── url │ │ │ ├── url().json │ │ │ ├── urlrouteprovider-implementations.json │ │ │ └── withorderedquery().json │ │ ├── headerinjectornode.json │ │ ├── headerinjectornode │ │ ├── asyncnode-implementations.json │ │ ├── combinecompatiblenode-implementations.json │ │ ├── erasetoanynode().json │ │ ├── headers.json │ │ ├── init(next:headers:).json │ │ ├── logviewobjectname.json │ │ ├── next.json │ │ ├── node-implementations.json │ │ ├── noderesultpublisher(for:).json │ │ ├── noderesultpublisher(for:logcontext:).json │ │ ├── noderesultpublisher(for:on:).json │ │ ├── noderesultpublisher(for:on:logcontext:).json │ │ ├── objectname.json │ │ ├── process(_:).json │ │ └── process(_:logcontext:).json │ │ ├── ifconnectionfailedfromcachenode.json │ │ ├── ifconnectionfailedfromcachenode │ │ ├── asyncnode-implementations.json │ │ ├── cachereadernode.json │ │ ├── combinecompatiblenode-implementations.json │ │ ├── erasetoanynode().json │ │ ├── init(next:cachereadernode:).json │ │ ├── logviewobjectname.json │ │ ├── next.json │ │ ├── node-implementations.json │ │ ├── noderesultpublisher(for:).json │ │ ├── noderesultpublisher(for:logcontext:).json │ │ ├── noderesultpublisher(for:on:).json │ │ ├── noderesultpublisher(for:on:logcontext:).json │ │ ├── objectname.json │ │ ├── process(_:).json │ │ └── process(_:logcontext:).json │ │ ├── json.json │ │ ├── jsonencoding.json │ │ ├── jsonencoding │ │ ├── default.json │ │ ├── encode(urlparameters:parameters:).json │ │ ├── init(options:).json │ │ ├── options.json │ │ └── prettyprinted.json │ │ ├── log.json │ │ ├── log │ │ ├── +=(_:_:).json │ │ ├── add(message:).json │ │ ├── delimeter.json │ │ ├── description.json │ │ ├── id.json │ │ ├── init(_:id:delimeter:order:).json │ │ ├── message.json │ │ ├── next.json │ │ └── order.json │ │ ├── logable.json │ │ ├── logable │ │ ├── add(message:).json │ │ ├── description.json │ │ ├── id.json │ │ ├── next.json │ │ └── order.json │ │ ├── loggernode.json │ │ ├── loggernode │ │ ├── asyncnode-implementations.json │ │ ├── combinecompatiblenode-implementations.json │ │ ├── erasetoanynode().json │ │ ├── filters.json │ │ ├── init(next:filters:).json │ │ ├── logviewobjectname.json │ │ ├── next.json │ │ ├── node-implementations.json │ │ ├── noderesultpublisher().json │ │ ├── noderesultpublisher(for:).json │ │ ├── noderesultpublisher(for:logcontext:).json │ │ ├── noderesultpublisher(for:on:).json │ │ ├── noderesultpublisher(for:on:logcontext:).json │ │ ├── noderesultpublisher(logcontext:).json │ │ ├── noderesultpublisher(on:).json │ │ ├── noderesultpublisher(on:logcontext:).json │ │ ├── objectname.json │ │ ├── process().json │ │ ├── process(_:).json │ │ └── process(_:logcontext:).json │ │ ├── loggingcontext.json │ │ ├── loggingcontext │ │ ├── actor-implementations.json │ │ ├── add(_:).json │ │ ├── assertisolated(_:file:line:).json │ │ ├── assumeisolated(_:file:line:).json │ │ ├── log.json │ │ └── preconditionisolated(_:file:line:).json │ │ ├── loggingcontextprotocol.json │ │ ├── loggingcontextprotocol │ │ ├── add(_:).json │ │ └── log.json │ │ ├── logorder.json │ │ ├── logorder │ │ ├── dtomappernode.json │ │ ├── requestcreatornode.json │ │ ├── requestencodingnode.json │ │ ├── requestsendernode.json │ │ ├── responsedataparsernode.json │ │ ├── responsedatapreprocessornode.json │ │ ├── responsehttperrorprocessornode.json │ │ ├── responseprocessornode.json │ │ ├── voidionode.json │ │ └── voidoutputnode.json │ │ ├── mappingutils.json │ │ ├── mappingutils │ │ └── arrayjsonkey.json │ │ ├── metadataconnectornode.json │ │ ├── metadataconnectornode │ │ ├── asyncnode-implementations.json │ │ ├── combinecompatiblenode-implementations.json │ │ ├── erasetoanynode().json │ │ ├── init(next:metadata:).json │ │ ├── logviewobjectname.json │ │ ├── metadata.json │ │ ├── next.json │ │ ├── node-implementations.json │ │ ├── noderesultpublisher().json │ │ ├── noderesultpublisher(for:).json │ │ ├── noderesultpublisher(for:logcontext:).json │ │ ├── noderesultpublisher(for:on:).json │ │ ├── noderesultpublisher(for:on:logcontext:).json │ │ ├── noderesultpublisher(logcontext:).json │ │ ├── noderesultpublisher(on:).json │ │ ├── noderesultpublisher(on:logcontext:).json │ │ ├── objectname.json │ │ ├── process().json │ │ ├── process(_:).json │ │ └── process(_:logcontext:).json │ │ ├── metadataprovider.json │ │ ├── metadataprovider │ │ └── metadata().json │ │ ├── method.json │ │ ├── method │ │ ├── !=(_:_:).json │ │ ├── connect.json │ │ ├── delete.json │ │ ├── equatable-implementations.json │ │ ├── get.json │ │ ├── hash(into:).json │ │ ├── hashvalue.json │ │ ├── head.json │ │ ├── init(rawvalue:).json │ │ ├── options.json │ │ ├── patch.json │ │ ├── post.json │ │ ├── put.json │ │ ├── rawrepresentable-implementations.json │ │ └── trace.json │ │ ├── modelinputnode.json │ │ ├── modelinputnode │ │ ├── asyncnode-implementations.json │ │ ├── combinecompatiblenode-implementations.json │ │ ├── erasetoanynode().json │ │ ├── init(next:).json │ │ ├── logviewobjectname.json │ │ ├── next.json │ │ ├── node-implementations.json │ │ ├── noderesultpublisher().json │ │ ├── noderesultpublisher(for:).json │ │ ├── noderesultpublisher(for:logcontext:).json │ │ ├── noderesultpublisher(for:on:).json │ │ ├── noderesultpublisher(for:on:logcontext:).json │ │ ├── noderesultpublisher(logcontext:).json │ │ ├── noderesultpublisher(on:).json │ │ ├── noderesultpublisher(on:logcontext:).json │ │ ├── objectname.json │ │ ├── process().json │ │ ├── process(_:).json │ │ └── process(_:logcontext:).json │ │ ├── multipartfileprovider.json │ │ ├── multipartfileprovider │ │ ├── customwithurl(url:filename:mimetype:).json │ │ ├── data(data:filename:mimetype:).json │ │ └── url(url:).json │ │ ├── multipartformdatafactory.json │ │ ├── multipartformdatafactory │ │ └── produce().json │ │ ├── multipartmodel.json │ │ ├── multipartmodel │ │ ├── dtodecodable-implementations.json │ │ ├── dtoencodable-implementations.json │ │ ├── files.json │ │ ├── from(dto:).json │ │ ├── from(raw:).json │ │ ├── init(payloadmodel:).json │ │ ├── init(payloadmodel:files:).json │ │ ├── payloadmodel.json │ │ ├── raw.json │ │ ├── rawdecodable-implementations.json │ │ ├── rawencodable-implementations.json │ │ ├── todto().json │ │ └── toraw().json │ │ ├── multipartrequestcreatornode.json │ │ ├── multipartrequestcreatornode │ │ ├── append(multipartform:with:).json │ │ ├── asyncnode-implementations.json │ │ ├── combinecompatiblenode-implementations.json │ │ ├── erasetoanynode().json │ │ ├── init(next:multipartformdatafactory:).json │ │ ├── logviewobjectname.json │ │ ├── next.json │ │ ├── node-implementations.json │ │ ├── noderesultpublisher(for:).json │ │ ├── noderesultpublisher(for:logcontext:).json │ │ ├── noderesultpublisher(for:on:).json │ │ ├── noderesultpublisher(for:on:logcontext:).json │ │ ├── objectname.json │ │ ├── process(_:).json │ │ └── process(_:logcontext:).json │ │ ├── multiparturlrequest.json │ │ ├── multiparturlrequest │ │ ├── data.json │ │ ├── headers.json │ │ ├── init(method:url:headers:data:).json │ │ ├── method.json │ │ └── url.json │ │ ├── multiparturlrequesttrasformatornode.json │ │ ├── multiparturlrequesttrasformatornode │ │ ├── asyncnode-implementations.json │ │ ├── combinecompatiblenode-implementations.json │ │ ├── erasetoanynode().json │ │ ├── init(next:method:).json │ │ ├── logviewobjectname.json │ │ ├── method.json │ │ ├── next.json │ │ ├── node-implementations.json │ │ ├── noderesultpublisher(for:).json │ │ ├── noderesultpublisher(for:logcontext:).json │ │ ├── noderesultpublisher(for:on:).json │ │ ├── noderesultpublisher(for:on:logcontext:).json │ │ ├── objectname.json │ │ ├── process(_:).json │ │ └── process(_:logcontext:).json │ │ ├── node.json │ │ ├── node │ │ ├── logviewobjectname.json │ │ └── objectname.json │ │ ├── nodedataresponse.json │ │ ├── nodedataresponse │ │ ├── result.json │ │ ├── urlrequest.json │ │ └── urlresponse.json │ │ ├── noderesult.json │ │ ├── parameterencoding.json │ │ ├── parameterencoding │ │ └── encode(urlparameters:parameters:).json │ │ ├── parameters.json │ │ ├── parametersencoding.json │ │ ├── parametersencoding │ │ ├── !=(_:_:).json │ │ ├── equatable-implementations.json │ │ ├── formurl.json │ │ ├── json.json │ │ ├── raw.json │ │ └── urlquery.json │ │ ├── rawdecodable.json │ │ ├── rawdecodable │ │ ├── from(raw:)-8fypw.json │ │ ├── from(raw:)-972w2.json │ │ └── raw.json │ │ ├── rawencodable.json │ │ ├── rawencodable │ │ ├── raw.json │ │ ├── toraw()-153t9.json │ │ └── toraw()-30gim.json │ │ ├── rawencodernode.json │ │ ├── rawencodernode │ │ ├── asyncnode-implementations.json │ │ ├── combinecompatiblenode-implementations.json │ │ ├── erasetoanynode().json │ │ ├── init(next:).json │ │ ├── logviewobjectname.json │ │ ├── next.json │ │ ├── node-implementations.json │ │ ├── noderesultpublisher().json │ │ ├── noderesultpublisher(for:).json │ │ ├── noderesultpublisher(for:logcontext:).json │ │ ├── noderesultpublisher(for:on:).json │ │ ├── noderesultpublisher(for:on:logcontext:).json │ │ ├── noderesultpublisher(logcontext:).json │ │ ├── noderesultpublisher(on:).json │ │ ├── noderesultpublisher(on:logcontext:).json │ │ ├── objectname.json │ │ ├── process().json │ │ ├── process(_:).json │ │ └── process(_:logcontext:).json │ │ ├── rawmappable.json │ │ ├── rawmappablecodableerror.json │ │ ├── rawmappablecodableerror │ │ ├── !=(_:_:).json │ │ ├── asaferror.json │ │ ├── cantmapobjecttoraw.json │ │ ├── equatable-implementations.json │ │ ├── error-implementations.json │ │ └── localizeddescription.json │ │ ├── rawurlrequest.json │ │ ├── rawurlrequest │ │ ├── datarequest.json │ │ ├── init(datarequest:).json │ │ └── tourlrequest().json │ │ ├── requestcreatornode.json │ │ ├── requestcreatornode │ │ ├── asyncnode-implementations.json │ │ ├── combinecompatiblenode-implementations.json │ │ ├── erasetoanynode().json │ │ ├── init(next:providers:).json │ │ ├── logviewobjectname.json │ │ ├── next.json │ │ ├── node-implementations.json │ │ ├── noderesultpublisher(for:).json │ │ ├── noderesultpublisher(for:logcontext:).json │ │ ├── noderesultpublisher(for:on:).json │ │ ├── noderesultpublisher(for:on:logcontext:).json │ │ ├── objectname.json │ │ ├── process(_:).json │ │ ├── process(_:logcontext:).json │ │ └── providers.json │ │ ├── requestencodernode.json │ │ ├── requestencodernode │ │ ├── asyncnode-implementations.json │ │ ├── combinecompatiblenode-implementations.json │ │ ├── encoding.json │ │ ├── erasetoanynode().json │ │ ├── init(next:encoding:).json │ │ ├── logviewobjectname.json │ │ ├── next.json │ │ ├── nextnode.json │ │ ├── node-implementations.json │ │ ├── noderesultpublisher(for:).json │ │ ├── noderesultpublisher(for:logcontext:).json │ │ ├── noderesultpublisher(for:on:).json │ │ ├── noderesultpublisher(for:on:logcontext:).json │ │ ├── objectname.json │ │ ├── process(_:).json │ │ └── process(_:logcontext:).json │ │ ├── requestencodingmodel.json │ │ ├── requestencodingmodel │ │ ├── encoding.json │ │ ├── init(urlparameters:raw:encoding:).json │ │ ├── raw.json │ │ └── urlparameters.json │ │ ├── requestmodel.json │ │ ├── requestmodel │ │ ├── metadata.json │ │ └── raw.json │ │ ├── requestprocessinglayernode.json │ │ ├── requestrouternode.json │ │ ├── requestrouternode │ │ ├── asyncnode-implementations.json │ │ ├── combinecompatiblenode-implementations.json │ │ ├── erasetoanynode().json │ │ ├── init(next:route:).json │ │ ├── logviewobjectname.json │ │ ├── next.json │ │ ├── nextnode.json │ │ ├── node-implementations.json │ │ ├── noderesultpublisher(for:).json │ │ ├── noderesultpublisher(for:logcontext:).json │ │ ├── noderesultpublisher(for:on:).json │ │ ├── noderesultpublisher(for:on:logcontext:).json │ │ ├── objectname.json │ │ ├── process(_:).json │ │ ├── process(_:logcontext:).json │ │ └── route.json │ │ ├── requestsendernode.json │ │ ├── requestsendernode │ │ ├── asyncnode-implementations.json │ │ ├── cancel(logcontext:).json │ │ ├── combinecompatiblenode-implementations.json │ │ ├── erasetoanynode().json │ │ ├── init(rawresponseprocessor:datataskactor:manager:).json │ │ ├── logviewobjectname.json │ │ ├── node-implementations.json │ │ ├── noderesultpublisher(for:).json │ │ ├── noderesultpublisher(for:logcontext:).json │ │ ├── noderesultpublisher(for:on:).json │ │ ├── noderesultpublisher(for:on:logcontext:).json │ │ ├── objectname.json │ │ ├── process(_:).json │ │ ├── process(_:logcontext:).json │ │ ├── rawresponseprocessor-swift.property.json │ │ └── rawresponseprocessor-swift.typealias.json │ │ ├── responsedataparsernode.json │ │ ├── responsedataparsernode │ │ ├── asyncnode-implementations.json │ │ ├── combinecompatiblenode-implementations.json │ │ ├── erasetoanynode().json │ │ ├── init(next:).json │ │ ├── json(from:).json │ │ ├── logviewobjectname.json │ │ ├── next.json │ │ ├── node-implementations.json │ │ ├── noderesultpublisher(for:).json │ │ ├── noderesultpublisher(for:logcontext:).json │ │ ├── noderesultpublisher(for:on:).json │ │ ├── noderesultpublisher(for:on:logcontext:).json │ │ ├── objectname.json │ │ ├── process(_:).json │ │ └── process(_:logcontext:).json │ │ ├── responsedataparsernodeerror.json │ │ ├── responsedataparsernodeerror │ │ ├── asaferror.json │ │ ├── cantcastdesirializeddatatojson(_:).json │ │ ├── cantdeserializejson(_:).json │ │ ├── error-implementations.json │ │ └── localizeddescription.json │ │ ├── responsedatapreprocessornode.json │ │ ├── responsedatapreprocessornode │ │ ├── asyncnode-implementations.json │ │ ├── combinecompatiblenode-implementations.json │ │ ├── erasetoanynode().json │ │ ├── init(next:).json │ │ ├── logviewobjectname.json │ │ ├── next.json │ │ ├── node-implementations.json │ │ ├── noderesultpublisher(for:).json │ │ ├── noderesultpublisher(for:logcontext:).json │ │ ├── noderesultpublisher(for:on:).json │ │ ├── noderesultpublisher(for:on:logcontext:).json │ │ ├── objectname.json │ │ ├── process(_:).json │ │ └── process(_:logcontext:).json │ │ ├── responsehttperrorprocessornode.json │ │ ├── responsehttperrorprocessornode │ │ ├── asyncnode-implementations.json │ │ ├── combinecompatiblenode-implementations.json │ │ ├── erasetoanynode().json │ │ ├── httperror.json │ │ ├── init(next:).json │ │ ├── logviewobjectname.json │ │ ├── next.json │ │ ├── node-implementations.json │ │ ├── noderesultpublisher(for:).json │ │ ├── noderesultpublisher(for:logcontext:).json │ │ ├── noderesultpublisher(for:on:).json │ │ ├── noderesultpublisher(for:on:logcontext:).json │ │ ├── objectname.json │ │ ├── process(_:).json │ │ └── process(_:logcontext:).json │ │ ├── responsehttperrorprocessornodeerror.json │ │ ├── responsehttperrorprocessornodeerror │ │ ├── asaferror.json │ │ ├── badrequest(_:).json │ │ ├── error-implementations.json │ │ ├── forbidden(_:).json │ │ ├── internalservererror(_:).json │ │ ├── localizeddescription.json │ │ ├── notfound.json │ │ └── unauthorized(_:).json │ │ ├── responsepostprocessorlayernode.json │ │ ├── responseprocessinglayernode.json │ │ ├── responseprocessornode.json │ │ ├── responseprocessornode │ │ ├── asyncnode-implementations.json │ │ ├── combinecompatiblenode-implementations.json │ │ ├── erasetoanynode().json │ │ ├── init(next:).json │ │ ├── logviewobjectname.json │ │ ├── next.json │ │ ├── node-implementations.json │ │ ├── noderesultpublisher(for:).json │ │ ├── noderesultpublisher(for:logcontext:).json │ │ ├── noderesultpublisher(for:on:).json │ │ ├── noderesultpublisher(for:on:logcontext:).json │ │ ├── objectname.json │ │ ├── process(_:).json │ │ └── process(_:logcontext:).json │ │ ├── responseprocessornodeerror.json │ │ ├── responseprocessornodeerror │ │ ├── !=(_:_:).json │ │ ├── asaferror.json │ │ ├── equatable-implementations.json │ │ ├── error-implementations.json │ │ ├── localizeddescription.json │ │ └── rawresponsenothavemetadata.json │ │ ├── routablerequestmodel.json │ │ ├── routablerequestmodel │ │ ├── metadata.json │ │ ├── raw.json │ │ └── route.json │ │ ├── serverrequestsmanager.json │ │ ├── serverrequestsmanager │ │ ├── manager.json │ │ └── shared.json │ │ ├── servicechainprovider.json │ │ ├── servicechainprovider │ │ ├── providerequestdatachain(with:).json │ │ ├── providerequestjsonchain(with:).json │ │ └── providerequestmultipartchain().json │ │ ├── statestorable.json │ │ ├── statestorable │ │ ├── clearstates().json │ │ ├── restorestate().json │ │ └── savestate().json │ │ ├── swift.json │ │ ├── swift │ │ ├── array.json │ │ ├── array │ │ │ ├── dto.json │ │ │ ├── dtodecodable-implementations.json │ │ │ ├── dtoencodable-implementations.json │ │ │ ├── from(dto:).json │ │ │ ├── from(raw:).json │ │ │ ├── rawdecodable-implementations.json │ │ │ ├── rawencodable-implementations.json │ │ │ ├── todto().json │ │ │ └── toraw().json │ │ ├── dictionary.json │ │ ├── dictionary │ │ │ ├── dto.json │ │ │ ├── dtodecodable-implementations.json │ │ │ ├── dtoencodable-implementations.json │ │ │ ├── from(dto:).json │ │ │ ├── from(raw:)-311kg.json │ │ │ ├── from(raw:)-g0s3.json │ │ │ ├── rawdecodable-implementations.json │ │ │ ├── rawencodable-implementations.json │ │ │ ├── todto().json │ │ │ ├── toraw()-2j7bl.json │ │ │ └── toraw()-3zzm7.json │ │ ├── optional.json │ │ ├── optional │ │ │ ├── +(_:_:).json │ │ │ ├── from(dto:).json │ │ │ └── from(raw:).json │ │ ├── result.json │ │ ├── result │ │ │ ├── asyncflatmap(_:).json │ │ │ ├── asyncflatmaperror(_:).json │ │ │ ├── error.json │ │ │ ├── map(_:).json │ │ │ ├── value.json │ │ │ ├── withcheckedcancellation(_:).json │ │ │ └── withmappedexceptions(_:_:).json │ │ ├── string.json │ │ └── string │ │ │ └── linetabdeilimeter.json │ │ ├── technicaerrormappernode.json │ │ ├── technicaerrormappernode │ │ ├── asyncnode-implementations.json │ │ ├── combinecompatiblenode-implementations.json │ │ ├── erasetoanynode().json │ │ ├── init(next:).json │ │ ├── logviewobjectname.json │ │ ├── next.json │ │ ├── node-implementations.json │ │ ├── noderesultpublisher(for:).json │ │ ├── noderesultpublisher(for:logcontext:).json │ │ ├── noderesultpublisher(for:on:).json │ │ ├── noderesultpublisher(for:on:logcontext:).json │ │ ├── objectname.json │ │ ├── process(_:).json │ │ └── process(_:logcontext:).json │ │ ├── tokenrefresheractorprotocol.json │ │ ├── tokenrefresheractorprotocol │ │ └── refresh(logcontext:).json │ │ ├── tokenrefreshernode.json │ │ ├── tokenrefreshernode │ │ ├── asyncnode-implementations.json │ │ ├── combinecompatiblenode-implementations.json │ │ ├── erasetoanynode().json │ │ ├── init(tokenrefreshchain:).json │ │ ├── init(tokenrefresheractor:).json │ │ ├── logviewobjectname.json │ │ ├── node-implementations.json │ │ ├── noderesultpublisher().json │ │ ├── noderesultpublisher(for:).json │ │ ├── noderesultpublisher(for:logcontext:).json │ │ ├── noderesultpublisher(for:on:).json │ │ ├── noderesultpublisher(for:on:logcontext:).json │ │ ├── noderesultpublisher(logcontext:).json │ │ ├── noderesultpublisher(on:).json │ │ ├── noderesultpublisher(on:logcontext:).json │ │ ├── objectname.json │ │ ├── process().json │ │ ├── process(_:).json │ │ └── process(_:logcontext:).json │ │ ├── transportlayernode.json │ │ ├── transporturlparameters.json │ │ ├── transporturlparameters │ │ ├── headers.json │ │ ├── init(method:url:headers:).json │ │ ├── method.json │ │ └── url.json │ │ ├── transporturlrequest.json │ │ ├── transporturlrequest │ │ ├── headers.json │ │ ├── init(method:url:headers:raw:).json │ │ ├── init(with:raw:).json │ │ ├── method.json │ │ ├── raw.json │ │ └── url.json │ │ ├── urlcachereadernode.json │ │ ├── urlcachereadernode │ │ ├── asyncnode-implementations.json │ │ ├── combinecompatiblenode-implementations.json │ │ ├── erasetoanynode().json │ │ ├── logviewobjectname.json │ │ ├── node-implementations.json │ │ ├── noderesultpublisher(for:).json │ │ ├── noderesultpublisher(for:logcontext:).json │ │ ├── noderesultpublisher(for:on:).json │ │ ├── noderesultpublisher(for:on:logcontext:).json │ │ ├── objectname.json │ │ ├── process(_:).json │ │ └── process(_:logcontext:).json │ │ ├── urlcachewriternode.json │ │ ├── urlcachewriternode │ │ ├── asyncnode-implementations.json │ │ ├── combinecompatiblenode-implementations.json │ │ ├── erasetoanynode().json │ │ ├── init().json │ │ ├── logviewobjectname.json │ │ ├── node-implementations.json │ │ ├── noderesultpublisher(for:).json │ │ ├── noderesultpublisher(for:logcontext:).json │ │ ├── noderesultpublisher(for:on:).json │ │ ├── noderesultpublisher(for:on:logcontext:).json │ │ ├── objectname.json │ │ ├── process(_:).json │ │ └── process(_:logcontext:).json │ │ ├── urlchainbuilder.json │ │ ├── urlchainbuilder │ │ ├── add(provider:).json │ │ ├── build()-48qf9.json │ │ ├── build()-4q4yd.json │ │ ├── build()-5r4dy.json │ │ ├── build()-6nvql.json │ │ ├── build()-9dwl0.json │ │ ├── builddataloading()-3c99j.json │ │ ├── builddataloading()-6uznv.json │ │ ├── config.json │ │ ├── encode(as:).json │ │ ├── encoding.json │ │ ├── headersproviders.json │ │ ├── init(servicechainprovider:config:logfilter:).json │ │ ├── logfilter.json │ │ ├── metadata.json │ │ ├── metadataconnectorchain(root:)-1mz2j.json │ │ ├── metadataconnectorchain(root:)-40n3.json │ │ ├── method.json │ │ ├── requestrouternode(root:).json │ │ ├── route(_:_:).json │ │ ├── route.json │ │ ├── servicechainprovider.json │ │ ├── set(arrayencodingstrategy:).json │ │ ├── set(boolencodingstartegy:).json │ │ ├── set(dictencodindstrategy:).json │ │ ├── set(metadata:).json │ │ └── set(query:).json │ │ ├── urlchainconfigmodel.json │ │ ├── urlchainconfigmodel │ │ ├── encoding.json │ │ ├── init(method:route:metadata:encoding:).json │ │ ├── metadata.json │ │ ├── method.json │ │ └── route.json │ │ ├── urldataresponse.json │ │ ├── urldataresponse │ │ ├── !=(_:_:).json │ │ ├── data.json │ │ ├── equatable-implementations.json │ │ ├── init(request:response:data:).json │ │ ├── request.json │ │ └── response.json │ │ ├── urlencoding.json │ │ ├── urlencoding │ │ ├── arrayencoding-swift.enum.json │ │ ├── arrayencoding-swift.enum │ │ │ ├── !=(_:_:).json │ │ │ ├── brackets.json │ │ │ ├── equatable-implementations.json │ │ │ └── nobrackets.json │ │ ├── arrayencoding-swift.property.json │ │ ├── boolencoding-swift.enum.json │ │ ├── boolencoding-swift.enum │ │ │ ├── !=(_:_:).json │ │ │ ├── equatable-implementations.json │ │ │ ├── literal.json │ │ │ └── numeric.json │ │ ├── boolencoding-swift.property.json │ │ ├── default.json │ │ ├── destination-swift.enum.json │ │ ├── destination-swift.enum │ │ │ ├── !=(_:_:).json │ │ │ ├── equatable-implementations.json │ │ │ ├── httpbody.json │ │ │ ├── methoddependent.json │ │ │ └── querystring.json │ │ ├── destination-swift.property.json │ │ ├── encode(urlparameters:parameters:).json │ │ ├── escape(_:).json │ │ ├── httpbody.json │ │ ├── init(destination:arrayencoding:boolencoding:).json │ │ ├── querycomponents(fromkey:value:).json │ │ └── querystring.json │ │ ├── urletagreadernode.json │ │ ├── urletagreadernode │ │ ├── asyncnode-implementations.json │ │ ├── combinecompatiblenode-implementations.json │ │ ├── erasetoanynode().json │ │ ├── etagheaderkey.json │ │ ├── init(next:etagheaderkey:).json │ │ ├── logviewobjectname.json │ │ ├── next.json │ │ ├── node-implementations.json │ │ ├── noderesultpublisher(for:).json │ │ ├── noderesultpublisher(for:logcontext:).json │ │ ├── noderesultpublisher(for:on:).json │ │ ├── noderesultpublisher(for:on:logcontext:).json │ │ ├── objectname.json │ │ ├── process(_:).json │ │ └── process(_:logcontext:).json │ │ ├── urletagsavernode.json │ │ ├── urletagsavernode │ │ ├── asyncnode-implementations.json │ │ ├── combinecompatiblenode-implementations.json │ │ ├── erasetoanynode().json │ │ ├── etagheaderkey.json │ │ ├── init(next:etagheaderkey:).json │ │ ├── logviewobjectname.json │ │ ├── next.json │ │ ├── node-implementations.json │ │ ├── noderesultpublisher(for:).json │ │ ├── noderesultpublisher(for:logcontext:).json │ │ ├── noderesultpublisher(for:on:).json │ │ ├── noderesultpublisher(for:on:logcontext:).json │ │ ├── objectname.json │ │ ├── process(_:).json │ │ └── process(_:logcontext:).json │ │ ├── urljsonrequestencodingnode.json │ │ ├── urljsonrequestencodingnode │ │ ├── asyncnode-implementations.json │ │ ├── combinecompatiblenode-implementations.json │ │ ├── erasetoanynode().json │ │ ├── init(next:).json │ │ ├── logviewobjectname.json │ │ ├── next.json │ │ ├── node-implementations.json │ │ ├── noderesultpublisher(for:).json │ │ ├── noderesultpublisher(for:logcontext:).json │ │ ├── noderesultpublisher(for:on:).json │ │ ├── noderesultpublisher(for:on:logcontext:).json │ │ ├── objectname.json │ │ ├── process(_:).json │ │ └── process(_:logcontext:).json │ │ ├── urlnetworkrequest.json │ │ ├── urlnetworkrequest │ │ ├── init(urlrequest:).json │ │ └── urlrequest.json │ │ ├── urlnotmodifiedtriggernode.json │ │ ├── urlnotmodifiedtriggernode │ │ ├── asyncnode-implementations.json │ │ ├── cachereader.json │ │ ├── combinecompatiblenode-implementations.json │ │ ├── erasetoanynode().json │ │ ├── init(next:cachereader:).json │ │ ├── logviewobjectname.json │ │ ├── next.json │ │ ├── node-implementations.json │ │ ├── noderesultpublisher(for:).json │ │ ├── noderesultpublisher(for:logcontext:).json │ │ ├── noderesultpublisher(for:on:).json │ │ ├── noderesultpublisher(for:on:logcontext:).json │ │ ├── objectname.json │ │ ├── process(_:).json │ │ └── process(_:logcontext:).json │ │ ├── urlprocessedresponse.json │ │ ├── urlprocessedresponse │ │ ├── data.json │ │ ├── init(dataresponse:json:).json │ │ ├── json.json │ │ ├── request.json │ │ └── response.json │ │ ├── urlqueryarraykeyencodingbracketsstartegy.json │ │ ├── urlqueryarraykeyencodingbracketsstartegy │ │ ├── !=(_:_:).json │ │ ├── brackets.json │ │ ├── encode(value:).json │ │ ├── equatable-implementations.json │ │ └── nobrackets.json │ │ ├── urlqueryarraykeyencodingstartegy.json │ │ ├── urlqueryarraykeyencodingstartegy │ │ └── encode(value:).json │ │ ├── urlqueryboolencodingdefaultstartegy.json │ │ ├── urlqueryboolencodingdefaultstartegy │ │ ├── !=(_:_:).json │ │ ├── asbool.json │ │ ├── asint.json │ │ ├── encode(value:).json │ │ └── equatable-implementations.json │ │ ├── urlqueryboolencodingstartegy.json │ │ ├── urlqueryboolencodingstartegy │ │ └── encode(value:).json │ │ ├── urlqueryconfigmodel.json │ │ ├── urlqueryconfigmodel │ │ ├── arrayencodingstrategy.json │ │ ├── boolencodingstartegy.json │ │ ├── dictencodindstrategy.json │ │ ├── init(query:).json │ │ ├── init(query:boolencodingstartegy:arrayencodingstrategy:dictencodindstrategy:).json │ │ └── query.json │ │ ├── urlquerydictionarykeyencodingdefaultstrategy.json │ │ ├── urlquerydictionarykeyencodingdefaultstrategy │ │ └── encode(queryitemname:dictionarykey:).json │ │ ├── urlquerydictionarykeyencodingstrategy.json │ │ ├── urlquerydictionarykeyencodingstrategy │ │ └── encode(queryitemname:dictionarykey:).json │ │ ├── urlqueryinjectornode.json │ │ ├── urlqueryinjectornode │ │ ├── asyncnode-implementations.json │ │ ├── combinecompatiblenode-implementations.json │ │ ├── config.json │ │ ├── erasetoanynode().json │ │ ├── init(next:config:).json │ │ ├── logviewobjectname.json │ │ ├── makequerycomponents(from:by:).json │ │ ├── next.json │ │ ├── node-implementations.json │ │ ├── nodeerror.json │ │ ├── noderesultpublisher(for:).json │ │ ├── noderesultpublisher(for:logcontext:).json │ │ ├── noderesultpublisher(for:on:).json │ │ ├── noderesultpublisher(for:on:logcontext:).json │ │ ├── objectname.json │ │ ├── process(_:).json │ │ └── process(_:logcontext:).json │ │ ├── urlqueryinjectornodeerror.json │ │ ├── urlqueryinjectornodeerror │ │ ├── !=(_:_:).json │ │ ├── asaferror.json │ │ ├── cantcreateurlcomponentsfromurlstring.json │ │ ├── cantcreateurlfromurlcomponents.json │ │ ├── equatable-implementations.json │ │ ├── error-implementations.json │ │ └── localizeddescription.json │ │ ├── urlrequesttrasformatornode.json │ │ ├── urlrequesttrasformatornode │ │ ├── asyncnode-implementations.json │ │ ├── combinecompatiblenode-implementations.json │ │ ├── erasetoanynode().json │ │ ├── init(next:method:).json │ │ ├── logviewobjectname.json │ │ ├── method.json │ │ ├── next.json │ │ ├── node-implementations.json │ │ ├── noderesultpublisher(for:).json │ │ ├── noderesultpublisher(for:logcontext:).json │ │ ├── noderesultpublisher(for:on:).json │ │ ├── noderesultpublisher(for:on:logcontext:).json │ │ ├── objectname.json │ │ ├── process(_:).json │ │ └── process(_:logcontext:).json │ │ ├── urlrouteerror.json │ │ ├── urlrouteerror │ │ ├── !=(_:_:).json │ │ ├── asaferror.json │ │ ├── cantbuildurl.json │ │ ├── equatable-implementations.json │ │ ├── error-implementations.json │ │ └── localizeddescription.json │ │ ├── urlrouteprovider.json │ │ ├── urlrouteprovider │ │ └── url().json │ │ ├── urlservicechainprovider.json │ │ ├── urlservicechainprovider │ │ ├── init(session:).json │ │ ├── providerequestdatachain(with:).json │ │ ├── providerequestjsonchain(with:).json │ │ ├── providerequestmultipartchain().json │ │ ├── provideresponsedatachain().json │ │ ├── provideresponsejsonchain().json │ │ ├── provideresponsemultipartchain().json │ │ └── session.json │ │ ├── urlsessiondatataskactor.json │ │ ├── urlsessiondatataskactor │ │ ├── actor-implementations.json │ │ ├── assertisolated(_:file:line:).json │ │ ├── assumeisolated(_:file:line:).json │ │ ├── canceltask().json │ │ ├── preconditionisolated(_:file:line:).json │ │ └── store(task:).json │ │ ├── urlsessiondatataskactorprotocol.json │ │ ├── urlsessiondatataskactorprotocol │ │ ├── canceltask().json │ │ └── store(task:).json │ │ ├── voidinputnode.json │ │ ├── voidinputnode │ │ ├── asyncnode-implementations.json │ │ ├── combinecompatiblenode-implementations.json │ │ ├── erasetoanynode().json │ │ ├── init(next:).json │ │ ├── logviewobjectname.json │ │ ├── next.json │ │ ├── node-implementations.json │ │ ├── noderesultpublisher().json │ │ ├── noderesultpublisher(for:).json │ │ ├── noderesultpublisher(for:logcontext:).json │ │ ├── noderesultpublisher(for:on:).json │ │ ├── noderesultpublisher(for:on:logcontext:).json │ │ ├── noderesultpublisher(logcontext:).json │ │ ├── noderesultpublisher(on:).json │ │ ├── noderesultpublisher(on:logcontext:).json │ │ ├── objectname.json │ │ ├── process().json │ │ ├── process(_:).json │ │ └── process(_:logcontext:).json │ │ ├── voidionode.json │ │ ├── voidionode │ │ ├── asyncnode-implementations.json │ │ ├── combinecompatiblenode-implementations.json │ │ ├── erasetoanynode().json │ │ ├── logviewobjectname.json │ │ ├── node-implementations.json │ │ ├── noderesultpublisher().json │ │ ├── noderesultpublisher(for:).json │ │ ├── noderesultpublisher(for:logcontext:).json │ │ ├── noderesultpublisher(for:on:).json │ │ ├── noderesultpublisher(for:on:logcontext:).json │ │ ├── noderesultpublisher(logcontext:).json │ │ ├── noderesultpublisher(on:).json │ │ ├── noderesultpublisher(on:logcontext:).json │ │ ├── objectname.json │ │ ├── process().json │ │ ├── process(_:).json │ │ └── process(_:logcontext:).json │ │ ├── voidoutputnode.json │ │ └── voidoutputnode │ │ ├── asyncnode-implementations.json │ │ ├── combinecompatiblenode-implementations.json │ │ ├── erasetoanynode().json │ │ ├── logviewobjectname.json │ │ ├── node-implementations.json │ │ ├── noderesultpublisher().json │ │ ├── noderesultpublisher(for:).json │ │ ├── noderesultpublisher(for:logcontext:).json │ │ ├── noderesultpublisher(for:on:).json │ │ ├── noderesultpublisher(for:on:logcontext:).json │ │ ├── noderesultpublisher(logcontext:).json │ │ ├── noderesultpublisher(on:).json │ │ ├── noderesultpublisher(on:logcontext:).json │ │ ├── objectname.json │ │ ├── process().json │ │ ├── process(_:).json │ │ └── process(_:logcontext:).json ├── developer-og-twitter.jpg ├── developer-og.jpg ├── documentation │ └── nodekit │ │ ├── aborter │ │ ├── cancel(logcontext:) │ │ │ └── index.html │ │ └── index.html │ │ ├── aborternode │ │ ├── aborter │ │ │ └── index.html │ │ ├── asyncnode-implementations │ │ │ └── index.html │ │ ├── combinecompatiblenode-implementations │ │ │ └── index.html │ │ ├── erasetoanynode() │ │ │ └── index.html │ │ ├── index.html │ │ ├── init(next:aborter:) │ │ │ └── index.html │ │ ├── logviewobjectname │ │ │ └── index.html │ │ ├── next │ │ │ └── index.html │ │ ├── node-implementations │ │ │ └── index.html │ │ ├── noderesultpublisher() │ │ │ └── index.html │ │ ├── noderesultpublisher(for:) │ │ │ └── index.html │ │ ├── noderesultpublisher(for:logcontext:) │ │ │ └── index.html │ │ ├── noderesultpublisher(for:on:) │ │ │ └── index.html │ │ ├── noderesultpublisher(for:on:logcontext:) │ │ │ └── index.html │ │ ├── noderesultpublisher(logcontext:) │ │ │ └── index.html │ │ ├── noderesultpublisher(on:) │ │ │ └── index.html │ │ ├── noderesultpublisher(on:logcontext:) │ │ │ └── index.html │ │ ├── objectname │ │ │ └── index.html │ │ ├── process() │ │ │ └── index.html │ │ ├── process(_:) │ │ │ └── index.html │ │ └── process(_:logcontext:) │ │ │ └── index.html │ │ ├── accesssafenode │ │ ├── asyncnode-implementations │ │ │ └── index.html │ │ ├── combinecompatiblenode-implementations │ │ │ └── index.html │ │ ├── erasetoanynode() │ │ │ └── index.html │ │ ├── index.html │ │ ├── init(next:updatetokenchain:) │ │ │ └── index.html │ │ ├── logviewobjectname │ │ │ └── index.html │ │ ├── next │ │ │ └── index.html │ │ ├── node-implementations │ │ │ └── index.html │ │ ├── noderesultpublisher(for:) │ │ │ └── index.html │ │ ├── noderesultpublisher(for:logcontext:) │ │ │ └── index.html │ │ ├── noderesultpublisher(for:on:) │ │ │ └── index.html │ │ ├── noderesultpublisher(for:on:logcontext:) │ │ │ └── index.html │ │ ├── objectname │ │ │ └── index.html │ │ ├── process(_:) │ │ │ └── index.html │ │ ├── process(_:logcontext:) │ │ │ └── index.html │ │ └── updatetokenchain │ │ │ └── index.html │ │ ├── accesssafenodeerror │ │ ├── !=(_:_:) │ │ │ └── index.html │ │ ├── asaferror │ │ │ └── index.html │ │ ├── equatable-implementations │ │ │ └── index.html │ │ ├── error-implementations │ │ │ └── index.html │ │ ├── index.html │ │ ├── localizeddescription │ │ │ └── index.html │ │ └── nodewasrelease │ │ │ └── index.html │ │ ├── alamofiremultipartformdatafactory │ │ ├── index.html │ │ ├── init() │ │ │ └── index.html │ │ └── produce() │ │ │ └── index.html │ │ ├── anyasyncnode │ │ ├── asyncnode-implementations │ │ │ └── index.html │ │ ├── combinecompatiblenode-implementations │ │ │ └── index.html │ │ ├── erasetoanynode() │ │ │ └── index.html │ │ ├── index.html │ │ ├── logviewobjectname │ │ │ └── index.html │ │ ├── node-implementations │ │ │ └── index.html │ │ ├── noderesultpublisher() │ │ │ └── index.html │ │ ├── noderesultpublisher(for:) │ │ │ └── index.html │ │ ├── noderesultpublisher(for:logcontext:) │ │ │ └── index.html │ │ ├── noderesultpublisher(for:on:) │ │ │ └── index.html │ │ ├── noderesultpublisher(for:on:logcontext:) │ │ │ └── index.html │ │ ├── noderesultpublisher(logcontext:) │ │ │ └── index.html │ │ ├── noderesultpublisher(on:) │ │ │ └── index.html │ │ ├── noderesultpublisher(on:logcontext:) │ │ │ └── index.html │ │ ├── objectname │ │ │ └── index.html │ │ ├── process() │ │ │ └── index.html │ │ ├── process(_:) │ │ │ └── index.html │ │ └── process(_:logcontext:) │ │ │ └── index.html │ │ ├── asynciterator │ │ ├── hasnext() │ │ │ └── index.html │ │ ├── index.html │ │ ├── next() │ │ │ └── index.html │ │ ├── renew() │ │ │ └── index.html │ │ └── value │ │ │ └── index.html │ │ ├── asyncnode │ │ ├── erasetoanynode()-7rdro │ │ │ └── index.html │ │ ├── erasetoanynode()-9q4vf │ │ │ └── index.html │ │ ├── index.html │ │ ├── input │ │ │ └── index.html │ │ ├── output │ │ │ └── index.html │ │ ├── process() │ │ │ └── index.html │ │ ├── process(_:) │ │ │ └── index.html │ │ └── process(_:logcontext:) │ │ │ └── index.html │ │ ├── asyncpagerdata │ │ ├── index.html │ │ ├── init(value:len:) │ │ │ └── index.html │ │ ├── len │ │ │ └── index.html │ │ └── value │ │ │ └── index.html │ │ ├── asyncpagerdataprovider │ │ ├── index.html │ │ ├── provide(for:with:) │ │ │ └── index.html │ │ └── value │ │ │ └── index.html │ │ ├── asyncpageriterator │ │ ├── actor-implementations │ │ │ └── index.html │ │ ├── assertisolated(_:file:line:) │ │ │ └── index.html │ │ ├── assumeisolated(_:file:line:) │ │ │ └── index.html │ │ ├── clearstates() │ │ │ └── index.html │ │ ├── hasnext() │ │ │ └── index.html │ │ ├── index.html │ │ ├── init(dataprovider:pagesize:) │ │ │ └── index.html │ │ ├── next() │ │ │ └── index.html │ │ ├── preconditionisolated(_:file:line:) │ │ │ └── index.html │ │ ├── renew() │ │ │ └── index.html │ │ ├── restorestate() │ │ │ └── index.html │ │ └── savestate() │ │ │ └── index.html │ │ ├── basetechnicalerror │ │ ├── !=(_:_:) │ │ │ └── index.html │ │ ├── asaferror │ │ │ └── index.html │ │ ├── cantconnecttohost │ │ │ └── index.html │ │ ├── datanotallowed │ │ │ └── index.html │ │ ├── equatable-implementations │ │ │ └── index.html │ │ ├── error-implementations │ │ │ └── index.html │ │ ├── index.html │ │ ├── localizeddescription │ │ │ └── index.html │ │ ├── nointernetconnection │ │ │ └── index.html │ │ └── timeout │ │ │ └── index.html │ │ ├── baseurlcachereadererror │ │ ├── !=(_:_:) │ │ │ └── index.html │ │ ├── asaferror │ │ │ └── index.html │ │ ├── cantcasttojson │ │ │ └── index.html │ │ ├── cantloaddatafromcache │ │ │ └── index.html │ │ ├── cantserializejson │ │ │ └── index.html │ │ ├── equatable-implementations │ │ │ └── index.html │ │ ├── error-implementations │ │ │ └── index.html │ │ ├── index.html │ │ └── localizeddescription │ │ │ └── index.html │ │ ├── cancellabletask │ │ ├── cancel() │ │ │ └── index.html │ │ └── index.html │ │ ├── chainbuilder │ │ ├── add(provider:) │ │ │ └── index.html │ │ ├── build()-36597 │ │ │ └── index.html │ │ ├── build()-5c7qf │ │ │ └── index.html │ │ ├── build()-78200 │ │ │ └── index.html │ │ ├── build()-9ggos │ │ │ └── index.html │ │ ├── build()-9rmnl │ │ │ └── index.html │ │ ├── builddataloading()-36w4o │ │ │ └── index.html │ │ ├── builddataloading()-88wft │ │ │ └── index.html │ │ ├── encode(as:) │ │ │ └── index.html │ │ ├── index.html │ │ ├── route(_:_:) │ │ │ └── index.html │ │ ├── route │ │ │ └── index.html │ │ └── set(metadata:) │ │ │ └── index.html │ │ ├── chainconfigbuilder │ │ ├── index.html │ │ ├── set(arrayencodingstrategy:) │ │ │ └── index.html │ │ ├── set(boolencodingstartegy:) │ │ │ └── index.html │ │ ├── set(dictencodindstrategy:) │ │ │ └── index.html │ │ └── set(query:) │ │ │ └── index.html │ │ ├── combinecompatiblenode │ │ ├── i │ │ │ └── index.html │ │ ├── index.html │ │ ├── noderesultpublisher() │ │ │ └── index.html │ │ ├── noderesultpublisher(for:) │ │ │ └── index.html │ │ ├── noderesultpublisher(for:logcontext:) │ │ │ └── index.html │ │ ├── noderesultpublisher(for:on:) │ │ │ └── index.html │ │ ├── noderesultpublisher(for:on:logcontext:)-34z2f │ │ │ └── index.html │ │ ├── noderesultpublisher(for:on:logcontext:)-9k894 │ │ │ └── index.html │ │ ├── noderesultpublisher(logcontext:) │ │ │ └── index.html │ │ ├── noderesultpublisher(on:) │ │ │ └── index.html │ │ ├── noderesultpublisher(on:logcontext:) │ │ │ └── index.html │ │ └── o │ │ │ └── index.html │ │ ├── dataloadingresponseprocessor │ │ ├── asyncnode-implementations │ │ │ └── index.html │ │ ├── combinecompatiblenode-implementations │ │ │ └── index.html │ │ ├── erasetoanynode() │ │ │ └── index.html │ │ ├── index.html │ │ ├── init(next:) │ │ │ └── index.html │ │ ├── logviewobjectname │ │ │ └── index.html │ │ ├── next │ │ │ └── index.html │ │ ├── node-implementations │ │ │ └── index.html │ │ ├── noderesultpublisher(for:) │ │ │ └── index.html │ │ ├── noderesultpublisher(for:logcontext:) │ │ │ └── index.html │ │ ├── noderesultpublisher(for:on:) │ │ │ └── index.html │ │ ├── noderesultpublisher(for:on:logcontext:) │ │ │ └── index.html │ │ ├── objectname │ │ │ └── index.html │ │ ├── process(_:) │ │ │ └── index.html │ │ └── process(_:logcontext:) │ │ │ └── index.html │ │ ├── dtoconvertible │ │ └── index.html │ │ ├── dtodecodable │ │ ├── dto │ │ │ └── index.html │ │ ├── from(dto:) │ │ │ └── index.html │ │ └── index.html │ │ ├── dtoencodable │ │ ├── dto │ │ │ └── index.html │ │ ├── index.html │ │ └── todto() │ │ │ └── index.html │ │ ├── dtoencodernode │ │ ├── asyncnode-implementations │ │ │ └── index.html │ │ ├── combinecompatiblenode-implementations │ │ │ └── index.html │ │ ├── erasetoanynode() │ │ │ └── index.html │ │ ├── index.html │ │ ├── init(rawencodable:) │ │ │ └── index.html │ │ ├── logviewobjectname │ │ │ └── index.html │ │ ├── node-implementations │ │ │ └── index.html │ │ ├── noderesultpublisher() │ │ │ └── index.html │ │ ├── noderesultpublisher(for:) │ │ │ └── index.html │ │ ├── noderesultpublisher(for:logcontext:) │ │ │ └── index.html │ │ ├── noderesultpublisher(for:on:) │ │ │ └── index.html │ │ ├── noderesultpublisher(for:on:logcontext:) │ │ │ └── index.html │ │ ├── noderesultpublisher(logcontext:) │ │ │ └── index.html │ │ ├── noderesultpublisher(on:) │ │ │ └── index.html │ │ ├── noderesultpublisher(on:logcontext:) │ │ │ └── index.html │ │ ├── objectname │ │ │ └── index.html │ │ ├── process() │ │ │ └── index.html │ │ ├── process(_:) │ │ │ └── index.html │ │ ├── process(_:logcontext:) │ │ │ └── index.html │ │ └── rawencodable │ │ │ └── index.html │ │ ├── dtomappernode │ │ ├── asyncnode-implementations │ │ │ └── index.html │ │ ├── combinecompatiblenode-implementations │ │ │ └── index.html │ │ ├── erasetoanynode() │ │ │ └── index.html │ │ ├── index.html │ │ ├── init(next:) │ │ │ └── index.html │ │ ├── logviewobjectname │ │ │ └── index.html │ │ ├── next │ │ │ └── index.html │ │ ├── node-implementations │ │ │ └── index.html │ │ ├── noderesultpublisher() │ │ │ └── index.html │ │ ├── noderesultpublisher(for:) │ │ │ └── index.html │ │ ├── noderesultpublisher(for:logcontext:) │ │ │ └── index.html │ │ ├── noderesultpublisher(for:on:) │ │ │ └── index.html │ │ ├── noderesultpublisher(for:on:logcontext:) │ │ │ └── index.html │ │ ├── noderesultpublisher(logcontext:) │ │ │ └── index.html │ │ ├── noderesultpublisher(on:) │ │ │ └── index.html │ │ ├── noderesultpublisher(on:logcontext:) │ │ │ └── index.html │ │ ├── objectname │ │ │ └── index.html │ │ ├── process() │ │ │ └── index.html │ │ ├── process(_:) │ │ │ └── index.html │ │ └── process(_:logcontext:) │ │ │ └── index.html │ │ ├── encodablerequestmodel │ │ ├── encoding │ │ │ └── index.html │ │ ├── index.html │ │ ├── metadata │ │ │ └── index.html │ │ ├── raw │ │ │ └── index.html │ │ └── route │ │ │ └── index.html │ │ ├── entryinputdtooutputnode │ │ ├── asyncnode-implementations │ │ │ └── index.html │ │ ├── combinecompatiblenode-implementations │ │ │ └── index.html │ │ ├── erasetoanynode() │ │ │ └── index.html │ │ ├── index.html │ │ ├── logviewobjectname │ │ │ └── index.html │ │ ├── next │ │ │ └── index.html │ │ ├── node-implementations │ │ │ └── index.html │ │ ├── noderesultpublisher() │ │ │ └── index.html │ │ ├── noderesultpublisher(for:) │ │ │ └── index.html │ │ ├── noderesultpublisher(for:logcontext:) │ │ │ └── index.html │ │ ├── noderesultpublisher(for:on:) │ │ │ └── index.html │ │ ├── noderesultpublisher(for:on:logcontext:) │ │ │ └── index.html │ │ ├── noderesultpublisher(logcontext:) │ │ │ └── index.html │ │ ├── noderesultpublisher(on:) │ │ │ └── index.html │ │ ├── noderesultpublisher(on:logcontext:) │ │ │ └── index.html │ │ ├── objectname │ │ │ └── index.html │ │ ├── process() │ │ │ └── index.html │ │ ├── process(_:) │ │ │ └── index.html │ │ └── process(_:logcontext:) │ │ │ └── index.html │ │ ├── errorarrayjsonmappiong │ │ ├── asaferror │ │ │ └── index.html │ │ ├── cantfindkeyinraw(_:) │ │ │ └── index.html │ │ ├── error-implementations │ │ │ └── index.html │ │ ├── index.html │ │ └── localizeddescription │ │ │ └── index.html │ │ ├── etagconstants │ │ ├── etagrequestheaderkey │ │ │ └── index.html │ │ ├── etagresponseheaderkey │ │ │ └── index.html │ │ └── index.html │ │ ├── foundation │ │ ├── characterset │ │ │ ├── afurlqueryallowed │ │ │ │ └── index.html │ │ │ └── index.html │ │ ├── index.html │ │ └── url │ │ │ ├── index.html │ │ │ ├── url() │ │ │ └── index.html │ │ │ ├── urlrouteprovider-implementations │ │ │ └── index.html │ │ │ └── withorderedquery() │ │ │ └── index.html │ │ ├── headerinjectornode │ │ ├── asyncnode-implementations │ │ │ └── index.html │ │ ├── combinecompatiblenode-implementations │ │ │ └── index.html │ │ ├── erasetoanynode() │ │ │ └── index.html │ │ ├── headers │ │ │ └── index.html │ │ ├── index.html │ │ ├── init(next:headers:) │ │ │ └── index.html │ │ ├── logviewobjectname │ │ │ └── index.html │ │ ├── next │ │ │ └── index.html │ │ ├── node-implementations │ │ │ └── index.html │ │ ├── noderesultpublisher(for:) │ │ │ └── index.html │ │ ├── noderesultpublisher(for:logcontext:) │ │ │ └── index.html │ │ ├── noderesultpublisher(for:on:) │ │ │ └── index.html │ │ ├── noderesultpublisher(for:on:logcontext:) │ │ │ └── index.html │ │ ├── objectname │ │ │ └── index.html │ │ ├── process(_:) │ │ │ └── index.html │ │ └── process(_:logcontext:) │ │ │ └── index.html │ │ ├── ifconnectionfailedfromcachenode │ │ ├── asyncnode-implementations │ │ │ └── index.html │ │ ├── cachereadernode │ │ │ └── index.html │ │ ├── combinecompatiblenode-implementations │ │ │ └── index.html │ │ ├── erasetoanynode() │ │ │ └── index.html │ │ ├── index.html │ │ ├── init(next:cachereadernode:) │ │ │ └── index.html │ │ ├── logviewobjectname │ │ │ └── index.html │ │ ├── next │ │ │ └── index.html │ │ ├── node-implementations │ │ │ └── index.html │ │ ├── noderesultpublisher(for:) │ │ │ └── index.html │ │ ├── noderesultpublisher(for:logcontext:) │ │ │ └── index.html │ │ ├── noderesultpublisher(for:on:) │ │ │ └── index.html │ │ ├── noderesultpublisher(for:on:logcontext:) │ │ │ └── index.html │ │ ├── objectname │ │ │ └── index.html │ │ ├── process(_:) │ │ │ └── index.html │ │ └── process(_:logcontext:) │ │ │ └── index.html │ │ ├── index.html │ │ ├── json │ │ └── index.html │ │ ├── jsonencoding │ │ ├── default │ │ │ └── index.html │ │ ├── encode(urlparameters:parameters:) │ │ │ └── index.html │ │ ├── index.html │ │ ├── init(options:) │ │ │ └── index.html │ │ ├── options │ │ │ └── index.html │ │ └── prettyprinted │ │ │ └── index.html │ │ ├── log │ │ ├── +=(_:_:) │ │ │ └── index.html │ │ ├── add(message:) │ │ │ └── index.html │ │ ├── delimeter │ │ │ └── index.html │ │ ├── description │ │ │ └── index.html │ │ ├── id │ │ │ └── index.html │ │ ├── index.html │ │ ├── init(_:id:delimeter:order:) │ │ │ └── index.html │ │ ├── message │ │ │ └── index.html │ │ ├── next │ │ │ └── index.html │ │ └── order │ │ │ └── index.html │ │ ├── logable │ │ ├── add(message:) │ │ │ └── index.html │ │ ├── description │ │ │ └── index.html │ │ ├── id │ │ │ └── index.html │ │ ├── index.html │ │ ├── next │ │ │ └── index.html │ │ └── order │ │ │ └── index.html │ │ ├── loggernode │ │ ├── asyncnode-implementations │ │ │ └── index.html │ │ ├── combinecompatiblenode-implementations │ │ │ └── index.html │ │ ├── erasetoanynode() │ │ │ └── index.html │ │ ├── filters │ │ │ └── index.html │ │ ├── index.html │ │ ├── init(next:filters:) │ │ │ └── index.html │ │ ├── logviewobjectname │ │ │ └── index.html │ │ ├── next │ │ │ └── index.html │ │ ├── node-implementations │ │ │ └── index.html │ │ ├── noderesultpublisher() │ │ │ └── index.html │ │ ├── noderesultpublisher(for:) │ │ │ └── index.html │ │ ├── noderesultpublisher(for:logcontext:) │ │ │ └── index.html │ │ ├── noderesultpublisher(for:on:) │ │ │ └── index.html │ │ ├── noderesultpublisher(for:on:logcontext:) │ │ │ └── index.html │ │ ├── noderesultpublisher(logcontext:) │ │ │ └── index.html │ │ ├── noderesultpublisher(on:) │ │ │ └── index.html │ │ ├── noderesultpublisher(on:logcontext:) │ │ │ └── index.html │ │ ├── objectname │ │ │ └── index.html │ │ ├── process() │ │ │ └── index.html │ │ ├── process(_:) │ │ │ └── index.html │ │ └── process(_:logcontext:) │ │ │ └── index.html │ │ ├── loggingcontext │ │ ├── actor-implementations │ │ │ └── index.html │ │ ├── add(_:) │ │ │ └── index.html │ │ ├── assertisolated(_:file:line:) │ │ │ └── index.html │ │ ├── assumeisolated(_:file:line:) │ │ │ └── index.html │ │ ├── index.html │ │ ├── log │ │ │ └── index.html │ │ └── preconditionisolated(_:file:line:) │ │ │ └── index.html │ │ ├── loggingcontextprotocol │ │ ├── add(_:) │ │ │ └── index.html │ │ ├── index.html │ │ └── log │ │ │ └── index.html │ │ ├── logorder │ │ ├── dtomappernode │ │ │ └── index.html │ │ ├── index.html │ │ ├── requestcreatornode │ │ │ └── index.html │ │ ├── requestencodingnode │ │ │ └── index.html │ │ ├── requestsendernode │ │ │ └── index.html │ │ ├── responsedataparsernode │ │ │ └── index.html │ │ ├── responsedatapreprocessornode │ │ │ └── index.html │ │ ├── responsehttperrorprocessornode │ │ │ └── index.html │ │ ├── responseprocessornode │ │ │ └── index.html │ │ ├── voidionode │ │ │ └── index.html │ │ └── voidoutputnode │ │ │ └── index.html │ │ ├── mappingutils │ │ ├── arrayjsonkey │ │ │ └── index.html │ │ └── index.html │ │ ├── metadataconnectornode │ │ ├── asyncnode-implementations │ │ │ └── index.html │ │ ├── combinecompatiblenode-implementations │ │ │ └── index.html │ │ ├── erasetoanynode() │ │ │ └── index.html │ │ ├── index.html │ │ ├── init(next:metadata:) │ │ │ └── index.html │ │ ├── logviewobjectname │ │ │ └── index.html │ │ ├── metadata │ │ │ └── index.html │ │ ├── next │ │ │ └── index.html │ │ ├── node-implementations │ │ │ └── index.html │ │ ├── noderesultpublisher() │ │ │ └── index.html │ │ ├── noderesultpublisher(for:) │ │ │ └── index.html │ │ ├── noderesultpublisher(for:logcontext:) │ │ │ └── index.html │ │ ├── noderesultpublisher(for:on:) │ │ │ └── index.html │ │ ├── noderesultpublisher(for:on:logcontext:) │ │ │ └── index.html │ │ ├── noderesultpublisher(logcontext:) │ │ │ └── index.html │ │ ├── noderesultpublisher(on:) │ │ │ └── index.html │ │ ├── noderesultpublisher(on:logcontext:) │ │ │ └── index.html │ │ ├── objectname │ │ │ └── index.html │ │ ├── process() │ │ │ └── index.html │ │ ├── process(_:) │ │ │ └── index.html │ │ └── process(_:logcontext:) │ │ │ └── index.html │ │ ├── metadataprovider │ │ ├── index.html │ │ └── metadata() │ │ │ └── index.html │ │ ├── method │ │ ├── !=(_:_:) │ │ │ └── index.html │ │ ├── connect │ │ │ └── index.html │ │ ├── delete │ │ │ └── index.html │ │ ├── equatable-implementations │ │ │ └── index.html │ │ ├── get │ │ │ └── index.html │ │ ├── hash(into:) │ │ │ └── index.html │ │ ├── hashvalue │ │ │ └── index.html │ │ ├── head │ │ │ └── index.html │ │ ├── index.html │ │ ├── init(rawvalue:) │ │ │ └── index.html │ │ ├── options │ │ │ └── index.html │ │ ├── patch │ │ │ └── index.html │ │ ├── post │ │ │ └── index.html │ │ ├── put │ │ │ └── index.html │ │ ├── rawrepresentable-implementations │ │ │ └── index.html │ │ └── trace │ │ │ └── index.html │ │ ├── modelinputnode │ │ ├── asyncnode-implementations │ │ │ └── index.html │ │ ├── combinecompatiblenode-implementations │ │ │ └── index.html │ │ ├── erasetoanynode() │ │ │ └── index.html │ │ ├── index.html │ │ ├── init(next:) │ │ │ └── index.html │ │ ├── logviewobjectname │ │ │ └── index.html │ │ ├── next │ │ │ └── index.html │ │ ├── node-implementations │ │ │ └── index.html │ │ ├── noderesultpublisher() │ │ │ └── index.html │ │ ├── noderesultpublisher(for:) │ │ │ └── index.html │ │ ├── noderesultpublisher(for:logcontext:) │ │ │ └── index.html │ │ ├── noderesultpublisher(for:on:) │ │ │ └── index.html │ │ ├── noderesultpublisher(for:on:logcontext:) │ │ │ └── index.html │ │ ├── noderesultpublisher(logcontext:) │ │ │ └── index.html │ │ ├── noderesultpublisher(on:) │ │ │ └── index.html │ │ ├── noderesultpublisher(on:logcontext:) │ │ │ └── index.html │ │ ├── objectname │ │ │ └── index.html │ │ ├── process() │ │ │ └── index.html │ │ ├── process(_:) │ │ │ └── index.html │ │ └── process(_:logcontext:) │ │ │ └── index.html │ │ ├── multipartfileprovider │ │ ├── customwithurl(url:filename:mimetype:) │ │ │ └── index.html │ │ ├── data(data:filename:mimetype:) │ │ │ └── index.html │ │ ├── index.html │ │ └── url(url:) │ │ │ └── index.html │ │ ├── multipartformdatafactory │ │ ├── index.html │ │ └── produce() │ │ │ └── index.html │ │ ├── multipartmodel │ │ ├── dtodecodable-implementations │ │ │ └── index.html │ │ ├── dtoencodable-implementations │ │ │ └── index.html │ │ ├── files │ │ │ └── index.html │ │ ├── from(dto:) │ │ │ └── index.html │ │ ├── from(raw:) │ │ │ └── index.html │ │ ├── index.html │ │ ├── init(payloadmodel:) │ │ │ └── index.html │ │ ├── init(payloadmodel:files:) │ │ │ └── index.html │ │ ├── payloadmodel │ │ │ └── index.html │ │ ├── raw │ │ │ └── index.html │ │ ├── rawdecodable-implementations │ │ │ └── index.html │ │ ├── rawencodable-implementations │ │ │ └── index.html │ │ ├── todto() │ │ │ └── index.html │ │ └── toraw() │ │ │ └── index.html │ │ ├── multipartrequestcreatornode │ │ ├── append(multipartform:with:) │ │ │ └── index.html │ │ ├── asyncnode-implementations │ │ │ └── index.html │ │ ├── combinecompatiblenode-implementations │ │ │ └── index.html │ │ ├── erasetoanynode() │ │ │ └── index.html │ │ ├── index.html │ │ ├── init(next:multipartformdatafactory:) │ │ │ └── index.html │ │ ├── logviewobjectname │ │ │ └── index.html │ │ ├── next │ │ │ └── index.html │ │ ├── node-implementations │ │ │ └── index.html │ │ ├── noderesultpublisher(for:) │ │ │ └── index.html │ │ ├── noderesultpublisher(for:logcontext:) │ │ │ └── index.html │ │ ├── noderesultpublisher(for:on:) │ │ │ └── index.html │ │ ├── noderesultpublisher(for:on:logcontext:) │ │ │ └── index.html │ │ ├── objectname │ │ │ └── index.html │ │ ├── process(_:) │ │ │ └── index.html │ │ └── process(_:logcontext:) │ │ │ └── index.html │ │ ├── multiparturlrequest │ │ ├── data │ │ │ └── index.html │ │ ├── headers │ │ │ └── index.html │ │ ├── index.html │ │ ├── init(method:url:headers:data:) │ │ │ └── index.html │ │ ├── method │ │ │ └── index.html │ │ └── url │ │ │ └── index.html │ │ ├── multiparturlrequesttrasformatornode │ │ ├── asyncnode-implementations │ │ │ └── index.html │ │ ├── combinecompatiblenode-implementations │ │ │ └── index.html │ │ ├── erasetoanynode() │ │ │ └── index.html │ │ ├── index.html │ │ ├── init(next:method:) │ │ │ └── index.html │ │ ├── logviewobjectname │ │ │ └── index.html │ │ ├── method │ │ │ └── index.html │ │ ├── next │ │ │ └── index.html │ │ ├── node-implementations │ │ │ └── index.html │ │ ├── noderesultpublisher(for:) │ │ │ └── index.html │ │ ├── noderesultpublisher(for:logcontext:) │ │ │ └── index.html │ │ ├── noderesultpublisher(for:on:) │ │ │ └── index.html │ │ ├── noderesultpublisher(for:on:logcontext:) │ │ │ └── index.html │ │ ├── objectname │ │ │ └── index.html │ │ ├── process(_:) │ │ │ └── index.html │ │ └── process(_:logcontext:) │ │ │ └── index.html │ │ ├── node │ │ ├── index.html │ │ ├── logviewobjectname │ │ │ └── index.html │ │ └── objectname │ │ │ └── index.html │ │ ├── nodedataresponse │ │ ├── index.html │ │ ├── result │ │ │ └── index.html │ │ ├── urlrequest │ │ │ └── index.html │ │ └── urlresponse │ │ │ └── index.html │ │ ├── noderesult │ │ └── index.html │ │ ├── parameterencoding │ │ ├── encode(urlparameters:parameters:) │ │ │ └── index.html │ │ └── index.html │ │ ├── parameters │ │ └── index.html │ │ ├── parametersencoding │ │ ├── !=(_:_:) │ │ │ └── index.html │ │ ├── equatable-implementations │ │ │ └── index.html │ │ ├── formurl │ │ │ └── index.html │ │ ├── index.html │ │ ├── json │ │ │ └── index.html │ │ ├── raw │ │ │ └── index.html │ │ └── urlquery │ │ │ └── index.html │ │ ├── rawdecodable │ │ ├── from(raw:)-8fypw │ │ │ └── index.html │ │ ├── from(raw:)-972w2 │ │ │ └── index.html │ │ ├── index.html │ │ └── raw │ │ │ └── index.html │ │ ├── rawencodable │ │ ├── index.html │ │ ├── raw │ │ │ └── index.html │ │ ├── toraw()-153t9 │ │ │ └── index.html │ │ └── toraw()-30gim │ │ │ └── index.html │ │ ├── rawencodernode │ │ ├── asyncnode-implementations │ │ │ └── index.html │ │ ├── combinecompatiblenode-implementations │ │ │ └── index.html │ │ ├── erasetoanynode() │ │ │ └── index.html │ │ ├── index.html │ │ ├── init(next:) │ │ │ └── index.html │ │ ├── logviewobjectname │ │ │ └── index.html │ │ ├── next │ │ │ └── index.html │ │ ├── node-implementations │ │ │ └── index.html │ │ ├── noderesultpublisher() │ │ │ └── index.html │ │ ├── noderesultpublisher(for:) │ │ │ └── index.html │ │ ├── noderesultpublisher(for:logcontext:) │ │ │ └── index.html │ │ ├── noderesultpublisher(for:on:) │ │ │ └── index.html │ │ ├── noderesultpublisher(for:on:logcontext:) │ │ │ └── index.html │ │ ├── noderesultpublisher(logcontext:) │ │ │ └── index.html │ │ ├── noderesultpublisher(on:) │ │ │ └── index.html │ │ ├── noderesultpublisher(on:logcontext:) │ │ │ └── index.html │ │ ├── objectname │ │ │ └── index.html │ │ ├── process() │ │ │ └── index.html │ │ ├── process(_:) │ │ │ └── index.html │ │ └── process(_:logcontext:) │ │ │ └── index.html │ │ ├── rawmappable │ │ └── index.html │ │ ├── rawmappablecodableerror │ │ ├── !=(_:_:) │ │ │ └── index.html │ │ ├── asaferror │ │ │ └── index.html │ │ ├── cantmapobjecttoraw │ │ │ └── index.html │ │ ├── equatable-implementations │ │ │ └── index.html │ │ ├── error-implementations │ │ │ └── index.html │ │ ├── index.html │ │ └── localizeddescription │ │ │ └── index.html │ │ ├── rawurlrequest │ │ ├── datarequest │ │ │ └── index.html │ │ ├── index.html │ │ ├── init(datarequest:) │ │ │ └── index.html │ │ └── tourlrequest() │ │ │ └── index.html │ │ ├── requestcreatornode │ │ ├── asyncnode-implementations │ │ │ └── index.html │ │ ├── combinecompatiblenode-implementations │ │ │ └── index.html │ │ ├── erasetoanynode() │ │ │ └── index.html │ │ ├── index.html │ │ ├── init(next:providers:) │ │ │ └── index.html │ │ ├── logviewobjectname │ │ │ └── index.html │ │ ├── next │ │ │ └── index.html │ │ ├── node-implementations │ │ │ └── index.html │ │ ├── noderesultpublisher(for:) │ │ │ └── index.html │ │ ├── noderesultpublisher(for:logcontext:) │ │ │ └── index.html │ │ ├── noderesultpublisher(for:on:) │ │ │ └── index.html │ │ ├── noderesultpublisher(for:on:logcontext:) │ │ │ └── index.html │ │ ├── objectname │ │ │ └── index.html │ │ ├── process(_:) │ │ │ └── index.html │ │ ├── process(_:logcontext:) │ │ │ └── index.html │ │ └── providers │ │ │ └── index.html │ │ ├── requestencodernode │ │ ├── asyncnode-implementations │ │ │ └── index.html │ │ ├── combinecompatiblenode-implementations │ │ │ └── index.html │ │ ├── encoding │ │ │ └── index.html │ │ ├── erasetoanynode() │ │ │ └── index.html │ │ ├── index.html │ │ ├── init(next:encoding:) │ │ │ └── index.html │ │ ├── logviewobjectname │ │ │ └── index.html │ │ ├── next │ │ │ └── index.html │ │ ├── nextnode │ │ │ └── index.html │ │ ├── node-implementations │ │ │ └── index.html │ │ ├── noderesultpublisher(for:) │ │ │ └── index.html │ │ ├── noderesultpublisher(for:logcontext:) │ │ │ └── index.html │ │ ├── noderesultpublisher(for:on:) │ │ │ └── index.html │ │ ├── noderesultpublisher(for:on:logcontext:) │ │ │ └── index.html │ │ ├── objectname │ │ │ └── index.html │ │ ├── process(_:) │ │ │ └── index.html │ │ └── process(_:logcontext:) │ │ │ └── index.html │ │ ├── requestencodingmodel │ │ ├── encoding │ │ │ └── index.html │ │ ├── index.html │ │ ├── init(urlparameters:raw:encoding:) │ │ │ └── index.html │ │ ├── raw │ │ │ └── index.html │ │ └── urlparameters │ │ │ └── index.html │ │ ├── requestmodel │ │ ├── index.html │ │ ├── metadata │ │ │ └── index.html │ │ └── raw │ │ │ └── index.html │ │ ├── requestprocessinglayernode │ │ └── index.html │ │ ├── requestrouternode │ │ ├── asyncnode-implementations │ │ │ └── index.html │ │ ├── combinecompatiblenode-implementations │ │ │ └── index.html │ │ ├── erasetoanynode() │ │ │ └── index.html │ │ ├── index.html │ │ ├── init(next:route:) │ │ │ └── index.html │ │ ├── logviewobjectname │ │ │ └── index.html │ │ ├── next │ │ │ └── index.html │ │ ├── nextnode │ │ │ └── index.html │ │ ├── node-implementations │ │ │ └── index.html │ │ ├── noderesultpublisher(for:) │ │ │ └── index.html │ │ ├── noderesultpublisher(for:logcontext:) │ │ │ └── index.html │ │ ├── noderesultpublisher(for:on:) │ │ │ └── index.html │ │ ├── noderesultpublisher(for:on:logcontext:) │ │ │ └── index.html │ │ ├── objectname │ │ │ └── index.html │ │ ├── process(_:) │ │ │ └── index.html │ │ ├── process(_:logcontext:) │ │ │ └── index.html │ │ └── route │ │ │ └── index.html │ │ ├── requestsendernode │ │ ├── asyncnode-implementations │ │ │ └── index.html │ │ ├── cancel(logcontext:) │ │ │ └── index.html │ │ ├── combinecompatiblenode-implementations │ │ │ └── index.html │ │ ├── erasetoanynode() │ │ │ └── index.html │ │ ├── index.html │ │ ├── init(rawresponseprocessor:datataskactor:manager:) │ │ │ └── index.html │ │ ├── logviewobjectname │ │ │ └── index.html │ │ ├── node-implementations │ │ │ └── index.html │ │ ├── noderesultpublisher(for:) │ │ │ └── index.html │ │ ├── noderesultpublisher(for:logcontext:) │ │ │ └── index.html │ │ ├── noderesultpublisher(for:on:) │ │ │ └── index.html │ │ ├── noderesultpublisher(for:on:logcontext:) │ │ │ └── index.html │ │ ├── objectname │ │ │ └── index.html │ │ ├── process(_:) │ │ │ └── index.html │ │ ├── process(_:logcontext:) │ │ │ └── index.html │ │ ├── rawresponseprocessor-swift.property │ │ │ └── index.html │ │ └── rawresponseprocessor-swift.typealias │ │ │ └── index.html │ │ ├── responsedataparsernode │ │ ├── asyncnode-implementations │ │ │ └── index.html │ │ ├── combinecompatiblenode-implementations │ │ │ └── index.html │ │ ├── erasetoanynode() │ │ │ └── index.html │ │ ├── index.html │ │ ├── init(next:) │ │ │ └── index.html │ │ ├── json(from:) │ │ │ └── index.html │ │ ├── logviewobjectname │ │ │ └── index.html │ │ ├── next │ │ │ └── index.html │ │ ├── node-implementations │ │ │ └── index.html │ │ ├── noderesultpublisher(for:) │ │ │ └── index.html │ │ ├── noderesultpublisher(for:logcontext:) │ │ │ └── index.html │ │ ├── noderesultpublisher(for:on:) │ │ │ └── index.html │ │ ├── noderesultpublisher(for:on:logcontext:) │ │ │ └── index.html │ │ ├── objectname │ │ │ └── index.html │ │ ├── process(_:) │ │ │ └── index.html │ │ └── process(_:logcontext:) │ │ │ └── index.html │ │ ├── responsedataparsernodeerror │ │ ├── asaferror │ │ │ └── index.html │ │ ├── cantcastdesirializeddatatojson(_:) │ │ │ └── index.html │ │ ├── cantdeserializejson(_:) │ │ │ └── index.html │ │ ├── error-implementations │ │ │ └── index.html │ │ ├── index.html │ │ └── localizeddescription │ │ │ └── index.html │ │ ├── responsedatapreprocessornode │ │ ├── asyncnode-implementations │ │ │ └── index.html │ │ ├── combinecompatiblenode-implementations │ │ │ └── index.html │ │ ├── erasetoanynode() │ │ │ └── index.html │ │ ├── index.html │ │ ├── init(next:) │ │ │ └── index.html │ │ ├── logviewobjectname │ │ │ └── index.html │ │ ├── next │ │ │ └── index.html │ │ ├── node-implementations │ │ │ └── index.html │ │ ├── noderesultpublisher(for:) │ │ │ └── index.html │ │ ├── noderesultpublisher(for:logcontext:) │ │ │ └── index.html │ │ ├── noderesultpublisher(for:on:) │ │ │ └── index.html │ │ ├── noderesultpublisher(for:on:logcontext:) │ │ │ └── index.html │ │ ├── objectname │ │ │ └── index.html │ │ ├── process(_:) │ │ │ └── index.html │ │ └── process(_:logcontext:) │ │ │ └── index.html │ │ ├── responsehttperrorprocessornode │ │ ├── asyncnode-implementations │ │ │ └── index.html │ │ ├── combinecompatiblenode-implementations │ │ │ └── index.html │ │ ├── erasetoanynode() │ │ │ └── index.html │ │ ├── httperror │ │ │ └── index.html │ │ ├── index.html │ │ ├── init(next:) │ │ │ └── index.html │ │ ├── logviewobjectname │ │ │ └── index.html │ │ ├── next │ │ │ └── index.html │ │ ├── node-implementations │ │ │ └── index.html │ │ ├── noderesultpublisher(for:) │ │ │ └── index.html │ │ ├── noderesultpublisher(for:logcontext:) │ │ │ └── index.html │ │ ├── noderesultpublisher(for:on:) │ │ │ └── index.html │ │ ├── noderesultpublisher(for:on:logcontext:) │ │ │ └── index.html │ │ ├── objectname │ │ │ └── index.html │ │ ├── process(_:) │ │ │ └── index.html │ │ └── process(_:logcontext:) │ │ │ └── index.html │ │ ├── responsehttperrorprocessornodeerror │ │ ├── asaferror │ │ │ └── index.html │ │ ├── badrequest(_:) │ │ │ └── index.html │ │ ├── error-implementations │ │ │ └── index.html │ │ ├── forbidden(_:) │ │ │ └── index.html │ │ ├── index.html │ │ ├── internalservererror(_:) │ │ │ └── index.html │ │ ├── localizeddescription │ │ │ └── index.html │ │ ├── notfound │ │ │ └── index.html │ │ └── unauthorized(_:) │ │ │ └── index.html │ │ ├── responsepostprocessorlayernode │ │ └── index.html │ │ ├── responseprocessinglayernode │ │ └── index.html │ │ ├── responseprocessornode │ │ ├── asyncnode-implementations │ │ │ └── index.html │ │ ├── combinecompatiblenode-implementations │ │ │ └── index.html │ │ ├── erasetoanynode() │ │ │ └── index.html │ │ ├── index.html │ │ ├── init(next:) │ │ │ └── index.html │ │ ├── logviewobjectname │ │ │ └── index.html │ │ ├── next │ │ │ └── index.html │ │ ├── node-implementations │ │ │ └── index.html │ │ ├── noderesultpublisher(for:) │ │ │ └── index.html │ │ ├── noderesultpublisher(for:logcontext:) │ │ │ └── index.html │ │ ├── noderesultpublisher(for:on:) │ │ │ └── index.html │ │ ├── noderesultpublisher(for:on:logcontext:) │ │ │ └── index.html │ │ ├── objectname │ │ │ └── index.html │ │ ├── process(_:) │ │ │ └── index.html │ │ └── process(_:logcontext:) │ │ │ └── index.html │ │ ├── responseprocessornodeerror │ │ ├── !=(_:_:) │ │ │ └── index.html │ │ ├── asaferror │ │ │ └── index.html │ │ ├── equatable-implementations │ │ │ └── index.html │ │ ├── error-implementations │ │ │ └── index.html │ │ ├── index.html │ │ ├── localizeddescription │ │ │ └── index.html │ │ └── rawresponsenothavemetadata │ │ │ └── index.html │ │ ├── routablerequestmodel │ │ ├── index.html │ │ ├── metadata │ │ │ └── index.html │ │ ├── raw │ │ │ └── index.html │ │ └── route │ │ │ └── index.html │ │ ├── serverrequestsmanager │ │ ├── index.html │ │ ├── manager │ │ │ └── index.html │ │ └── shared │ │ │ └── index.html │ │ ├── servicechainprovider │ │ ├── index.html │ │ ├── providerequestdatachain(with:) │ │ │ └── index.html │ │ ├── providerequestjsonchain(with:) │ │ │ └── index.html │ │ └── providerequestmultipartchain() │ │ │ └── index.html │ │ ├── statestorable │ │ ├── clearstates() │ │ │ └── index.html │ │ ├── index.html │ │ ├── restorestate() │ │ │ └── index.html │ │ └── savestate() │ │ │ └── index.html │ │ ├── swift │ │ ├── array │ │ │ ├── dto │ │ │ │ └── index.html │ │ │ ├── dtodecodable-implementations │ │ │ │ └── index.html │ │ │ ├── dtoencodable-implementations │ │ │ │ └── index.html │ │ │ ├── from(dto:) │ │ │ │ └── index.html │ │ │ ├── from(raw:) │ │ │ │ └── index.html │ │ │ ├── index.html │ │ │ ├── rawdecodable-implementations │ │ │ │ └── index.html │ │ │ ├── rawencodable-implementations │ │ │ │ └── index.html │ │ │ ├── todto() │ │ │ │ └── index.html │ │ │ └── toraw() │ │ │ │ └── index.html │ │ ├── dictionary │ │ │ ├── dto │ │ │ │ └── index.html │ │ │ ├── dtodecodable-implementations │ │ │ │ └── index.html │ │ │ ├── dtoencodable-implementations │ │ │ │ └── index.html │ │ │ ├── from(dto:) │ │ │ │ └── index.html │ │ │ ├── from(raw:)-311kg │ │ │ │ └── index.html │ │ │ ├── from(raw:)-g0s3 │ │ │ │ └── index.html │ │ │ ├── index.html │ │ │ ├── rawdecodable-implementations │ │ │ │ └── index.html │ │ │ ├── rawencodable-implementations │ │ │ │ └── index.html │ │ │ ├── todto() │ │ │ │ └── index.html │ │ │ ├── toraw()-2j7bl │ │ │ │ └── index.html │ │ │ └── toraw()-3zzm7 │ │ │ │ └── index.html │ │ ├── index.html │ │ ├── optional │ │ │ ├── +(_:_:) │ │ │ │ └── index.html │ │ │ ├── from(dto:) │ │ │ │ └── index.html │ │ │ ├── from(raw:) │ │ │ │ └── index.html │ │ │ └── index.html │ │ ├── result │ │ │ ├── asyncflatmap(_:) │ │ │ │ └── index.html │ │ │ ├── asyncflatmaperror(_:) │ │ │ │ └── index.html │ │ │ ├── error │ │ │ │ └── index.html │ │ │ ├── index.html │ │ │ ├── map(_:) │ │ │ │ └── index.html │ │ │ ├── value │ │ │ │ └── index.html │ │ │ ├── withcheckedcancellation(_:) │ │ │ │ └── index.html │ │ │ └── withmappedexceptions(_:_:) │ │ │ │ └── index.html │ │ └── string │ │ │ ├── index.html │ │ │ └── linetabdeilimeter │ │ │ └── index.html │ │ ├── technicaerrormappernode │ │ ├── asyncnode-implementations │ │ │ └── index.html │ │ ├── combinecompatiblenode-implementations │ │ │ └── index.html │ │ ├── erasetoanynode() │ │ │ └── index.html │ │ ├── index.html │ │ ├── init(next:) │ │ │ └── index.html │ │ ├── logviewobjectname │ │ │ └── index.html │ │ ├── next │ │ │ └── index.html │ │ ├── node-implementations │ │ │ └── index.html │ │ ├── noderesultpublisher(for:) │ │ │ └── index.html │ │ ├── noderesultpublisher(for:logcontext:) │ │ │ └── index.html │ │ ├── noderesultpublisher(for:on:) │ │ │ └── index.html │ │ ├── noderesultpublisher(for:on:logcontext:) │ │ │ └── index.html │ │ ├── objectname │ │ │ └── index.html │ │ ├── process(_:) │ │ │ └── index.html │ │ └── process(_:logcontext:) │ │ │ └── index.html │ │ ├── tokenrefresheractorprotocol │ │ ├── index.html │ │ └── refresh(logcontext:) │ │ │ └── index.html │ │ ├── tokenrefreshernode │ │ ├── asyncnode-implementations │ │ │ └── index.html │ │ ├── combinecompatiblenode-implementations │ │ │ └── index.html │ │ ├── erasetoanynode() │ │ │ └── index.html │ │ ├── index.html │ │ ├── init(tokenrefreshchain:) │ │ │ └── index.html │ │ ├── init(tokenrefresheractor:) │ │ │ └── index.html │ │ ├── logviewobjectname │ │ │ └── index.html │ │ ├── node-implementations │ │ │ └── index.html │ │ ├── noderesultpublisher() │ │ │ └── index.html │ │ ├── noderesultpublisher(for:) │ │ │ └── index.html │ │ ├── noderesultpublisher(for:logcontext:) │ │ │ └── index.html │ │ ├── noderesultpublisher(for:on:) │ │ │ └── index.html │ │ ├── noderesultpublisher(for:on:logcontext:) │ │ │ └── index.html │ │ ├── noderesultpublisher(logcontext:) │ │ │ └── index.html │ │ ├── noderesultpublisher(on:) │ │ │ └── index.html │ │ ├── noderesultpublisher(on:logcontext:) │ │ │ └── index.html │ │ ├── objectname │ │ │ └── index.html │ │ ├── process() │ │ │ └── index.html │ │ ├── process(_:) │ │ │ └── index.html │ │ └── process(_:logcontext:) │ │ │ └── index.html │ │ ├── transportlayernode │ │ └── index.html │ │ ├── transporturlparameters │ │ ├── headers │ │ │ └── index.html │ │ ├── index.html │ │ ├── init(method:url:headers:) │ │ │ └── index.html │ │ ├── method │ │ │ └── index.html │ │ └── url │ │ │ └── index.html │ │ ├── transporturlrequest │ │ ├── headers │ │ │ └── index.html │ │ ├── index.html │ │ ├── init(method:url:headers:raw:) │ │ │ └── index.html │ │ ├── init(with:raw:) │ │ │ └── index.html │ │ ├── method │ │ │ └── index.html │ │ ├── raw │ │ │ └── index.html │ │ └── url │ │ │ └── index.html │ │ ├── urlcachereadernode │ │ ├── asyncnode-implementations │ │ │ └── index.html │ │ ├── combinecompatiblenode-implementations │ │ │ └── index.html │ │ ├── erasetoanynode() │ │ │ └── index.html │ │ ├── index.html │ │ ├── logviewobjectname │ │ │ └── index.html │ │ ├── node-implementations │ │ │ └── index.html │ │ ├── noderesultpublisher(for:) │ │ │ └── index.html │ │ ├── noderesultpublisher(for:logcontext:) │ │ │ └── index.html │ │ ├── noderesultpublisher(for:on:) │ │ │ └── index.html │ │ ├── noderesultpublisher(for:on:logcontext:) │ │ │ └── index.html │ │ ├── objectname │ │ │ └── index.html │ │ ├── process(_:) │ │ │ └── index.html │ │ └── process(_:logcontext:) │ │ │ └── index.html │ │ ├── urlcachewriternode │ │ ├── asyncnode-implementations │ │ │ └── index.html │ │ ├── combinecompatiblenode-implementations │ │ │ └── index.html │ │ ├── erasetoanynode() │ │ │ └── index.html │ │ ├── index.html │ │ ├── init() │ │ │ └── index.html │ │ ├── logviewobjectname │ │ │ └── index.html │ │ ├── node-implementations │ │ │ └── index.html │ │ ├── noderesultpublisher(for:) │ │ │ └── index.html │ │ ├── noderesultpublisher(for:logcontext:) │ │ │ └── index.html │ │ ├── noderesultpublisher(for:on:) │ │ │ └── index.html │ │ ├── noderesultpublisher(for:on:logcontext:) │ │ │ └── index.html │ │ ├── objectname │ │ │ └── index.html │ │ ├── process(_:) │ │ │ └── index.html │ │ └── process(_:logcontext:) │ │ │ └── index.html │ │ ├── urlchainbuilder │ │ ├── add(provider:) │ │ │ └── index.html │ │ ├── build()-48qf9 │ │ │ └── index.html │ │ ├── build()-4q4yd │ │ │ └── index.html │ │ ├── build()-5r4dy │ │ │ └── index.html │ │ ├── build()-6nvql │ │ │ └── index.html │ │ ├── build()-9dwl0 │ │ │ └── index.html │ │ ├── builddataloading()-3c99j │ │ │ └── index.html │ │ ├── builddataloading()-6uznv │ │ │ └── index.html │ │ ├── config │ │ │ └── index.html │ │ ├── encode(as:) │ │ │ └── index.html │ │ ├── encoding │ │ │ └── index.html │ │ ├── headersproviders │ │ │ └── index.html │ │ ├── index.html │ │ ├── init(servicechainprovider:config:logfilter:) │ │ │ └── index.html │ │ ├── logfilter │ │ │ └── index.html │ │ ├── metadata │ │ │ └── index.html │ │ ├── metadataconnectorchain(root:)-1mz2j │ │ │ └── index.html │ │ ├── metadataconnectorchain(root:)-40n3 │ │ │ └── index.html │ │ ├── method │ │ │ └── index.html │ │ ├── requestrouternode(root:) │ │ │ └── index.html │ │ ├── route(_:_:) │ │ │ └── index.html │ │ ├── route │ │ │ └── index.html │ │ ├── servicechainprovider │ │ │ └── index.html │ │ ├── set(arrayencodingstrategy:) │ │ │ └── index.html │ │ ├── set(boolencodingstartegy:) │ │ │ └── index.html │ │ ├── set(dictencodindstrategy:) │ │ │ └── index.html │ │ ├── set(metadata:) │ │ │ └── index.html │ │ └── set(query:) │ │ │ └── index.html │ │ ├── urlchainconfigmodel │ │ ├── encoding │ │ │ └── index.html │ │ ├── index.html │ │ ├── init(method:route:metadata:encoding:) │ │ │ └── index.html │ │ ├── metadata │ │ │ └── index.html │ │ ├── method │ │ │ └── index.html │ │ └── route │ │ │ └── index.html │ │ ├── urldataresponse │ │ ├── !=(_:_:) │ │ │ └── index.html │ │ ├── data │ │ │ └── index.html │ │ ├── equatable-implementations │ │ │ └── index.html │ │ ├── index.html │ │ ├── init(request:response:data:) │ │ │ └── index.html │ │ ├── request │ │ │ └── index.html │ │ └── response │ │ │ └── index.html │ │ ├── urlencoding │ │ ├── arrayencoding-swift.enum │ │ │ ├── !=(_:_:) │ │ │ │ └── index.html │ │ │ ├── brackets │ │ │ │ └── index.html │ │ │ ├── equatable-implementations │ │ │ │ └── index.html │ │ │ ├── index.html │ │ │ └── nobrackets │ │ │ │ └── index.html │ │ ├── arrayencoding-swift.property │ │ │ └── index.html │ │ ├── boolencoding-swift.enum │ │ │ ├── !=(_:_:) │ │ │ │ └── index.html │ │ │ ├── equatable-implementations │ │ │ │ └── index.html │ │ │ ├── index.html │ │ │ ├── literal │ │ │ │ └── index.html │ │ │ └── numeric │ │ │ │ └── index.html │ │ ├── boolencoding-swift.property │ │ │ └── index.html │ │ ├── default │ │ │ └── index.html │ │ ├── destination-swift.enum │ │ │ ├── !=(_:_:) │ │ │ │ └── index.html │ │ │ ├── equatable-implementations │ │ │ │ └── index.html │ │ │ ├── httpbody │ │ │ │ └── index.html │ │ │ ├── index.html │ │ │ ├── methoddependent │ │ │ │ └── index.html │ │ │ └── querystring │ │ │ │ └── index.html │ │ ├── destination-swift.property │ │ │ └── index.html │ │ ├── encode(urlparameters:parameters:) │ │ │ └── index.html │ │ ├── escape(_:) │ │ │ └── index.html │ │ ├── httpbody │ │ │ └── index.html │ │ ├── index.html │ │ ├── init(destination:arrayencoding:boolencoding:) │ │ │ └── index.html │ │ ├── querycomponents(fromkey:value:) │ │ │ └── index.html │ │ └── querystring │ │ │ └── index.html │ │ ├── urletagreadernode │ │ ├── asyncnode-implementations │ │ │ └── index.html │ │ ├── combinecompatiblenode-implementations │ │ │ └── index.html │ │ ├── erasetoanynode() │ │ │ └── index.html │ │ ├── etagheaderkey │ │ │ └── index.html │ │ ├── index.html │ │ ├── init(next:etagheaderkey:) │ │ │ └── index.html │ │ ├── logviewobjectname │ │ │ └── index.html │ │ ├── next │ │ │ └── index.html │ │ ├── node-implementations │ │ │ └── index.html │ │ ├── noderesultpublisher(for:) │ │ │ └── index.html │ │ ├── noderesultpublisher(for:logcontext:) │ │ │ └── index.html │ │ ├── noderesultpublisher(for:on:) │ │ │ └── index.html │ │ ├── noderesultpublisher(for:on:logcontext:) │ │ │ └── index.html │ │ ├── objectname │ │ │ └── index.html │ │ ├── process(_:) │ │ │ └── index.html │ │ └── process(_:logcontext:) │ │ │ └── index.html │ │ ├── urletagsavernode │ │ ├── asyncnode-implementations │ │ │ └── index.html │ │ ├── combinecompatiblenode-implementations │ │ │ └── index.html │ │ ├── erasetoanynode() │ │ │ └── index.html │ │ ├── etagheaderkey │ │ │ └── index.html │ │ ├── index.html │ │ ├── init(next:etagheaderkey:) │ │ │ └── index.html │ │ ├── logviewobjectname │ │ │ └── index.html │ │ ├── next │ │ │ └── index.html │ │ ├── node-implementations │ │ │ └── index.html │ │ ├── noderesultpublisher(for:) │ │ │ └── index.html │ │ ├── noderesultpublisher(for:logcontext:) │ │ │ └── index.html │ │ ├── noderesultpublisher(for:on:) │ │ │ └── index.html │ │ ├── noderesultpublisher(for:on:logcontext:) │ │ │ └── index.html │ │ ├── objectname │ │ │ └── index.html │ │ ├── process(_:) │ │ │ └── index.html │ │ └── process(_:logcontext:) │ │ │ └── index.html │ │ ├── urljsonrequestencodingnode │ │ ├── asyncnode-implementations │ │ │ └── index.html │ │ ├── combinecompatiblenode-implementations │ │ │ └── index.html │ │ ├── erasetoanynode() │ │ │ └── index.html │ │ ├── index.html │ │ ├── init(next:) │ │ │ └── index.html │ │ ├── logviewobjectname │ │ │ └── index.html │ │ ├── next │ │ │ └── index.html │ │ ├── node-implementations │ │ │ └── index.html │ │ ├── noderesultpublisher(for:) │ │ │ └── index.html │ │ ├── noderesultpublisher(for:logcontext:) │ │ │ └── index.html │ │ ├── noderesultpublisher(for:on:) │ │ │ └── index.html │ │ ├── noderesultpublisher(for:on:logcontext:) │ │ │ └── index.html │ │ ├── objectname │ │ │ └── index.html │ │ ├── process(_:) │ │ │ └── index.html │ │ └── process(_:logcontext:) │ │ │ └── index.html │ │ ├── urlnetworkrequest │ │ ├── index.html │ │ ├── init(urlrequest:) │ │ │ └── index.html │ │ └── urlrequest │ │ │ └── index.html │ │ ├── urlnotmodifiedtriggernode │ │ ├── asyncnode-implementations │ │ │ └── index.html │ │ ├── cachereader │ │ │ └── index.html │ │ ├── combinecompatiblenode-implementations │ │ │ └── index.html │ │ ├── erasetoanynode() │ │ │ └── index.html │ │ ├── index.html │ │ ├── init(next:cachereader:) │ │ │ └── index.html │ │ ├── logviewobjectname │ │ │ └── index.html │ │ ├── next │ │ │ └── index.html │ │ ├── node-implementations │ │ │ └── index.html │ │ ├── noderesultpublisher(for:) │ │ │ └── index.html │ │ ├── noderesultpublisher(for:logcontext:) │ │ │ └── index.html │ │ ├── noderesultpublisher(for:on:) │ │ │ └── index.html │ │ ├── noderesultpublisher(for:on:logcontext:) │ │ │ └── index.html │ │ ├── objectname │ │ │ └── index.html │ │ ├── process(_:) │ │ │ └── index.html │ │ └── process(_:logcontext:) │ │ │ └── index.html │ │ ├── urlprocessedresponse │ │ ├── data │ │ │ └── index.html │ │ ├── index.html │ │ ├── init(dataresponse:json:) │ │ │ └── index.html │ │ ├── json │ │ │ └── index.html │ │ ├── request │ │ │ └── index.html │ │ └── response │ │ │ └── index.html │ │ ├── urlqueryarraykeyencodingbracketsstartegy │ │ ├── !=(_:_:) │ │ │ └── index.html │ │ ├── brackets │ │ │ └── index.html │ │ ├── encode(value:) │ │ │ └── index.html │ │ ├── equatable-implementations │ │ │ └── index.html │ │ ├── index.html │ │ └── nobrackets │ │ │ └── index.html │ │ ├── urlqueryarraykeyencodingstartegy │ │ ├── encode(value:) │ │ │ └── index.html │ │ └── index.html │ │ ├── urlqueryboolencodingdefaultstartegy │ │ ├── !=(_:_:) │ │ │ └── index.html │ │ ├── asbool │ │ │ └── index.html │ │ ├── asint │ │ │ └── index.html │ │ ├── encode(value:) │ │ │ └── index.html │ │ ├── equatable-implementations │ │ │ └── index.html │ │ └── index.html │ │ ├── urlqueryboolencodingstartegy │ │ ├── encode(value:) │ │ │ └── index.html │ │ └── index.html │ │ ├── urlqueryconfigmodel │ │ ├── arrayencodingstrategy │ │ │ └── index.html │ │ ├── boolencodingstartegy │ │ │ └── index.html │ │ ├── dictencodindstrategy │ │ │ └── index.html │ │ ├── index.html │ │ ├── init(query:) │ │ │ └── index.html │ │ ├── init(query:boolencodingstartegy:arrayencodingstrategy:dictencodindstrategy:) │ │ │ └── index.html │ │ └── query │ │ │ └── index.html │ │ ├── urlquerydictionarykeyencodingdefaultstrategy │ │ ├── encode(queryitemname:dictionarykey:) │ │ │ └── index.html │ │ └── index.html │ │ ├── urlquerydictionarykeyencodingstrategy │ │ ├── encode(queryitemname:dictionarykey:) │ │ │ └── index.html │ │ └── index.html │ │ ├── urlqueryinjectornode │ │ ├── asyncnode-implementations │ │ │ └── index.html │ │ ├── combinecompatiblenode-implementations │ │ │ └── index.html │ │ ├── config │ │ │ └── index.html │ │ ├── erasetoanynode() │ │ │ └── index.html │ │ ├── index.html │ │ ├── init(next:config:) │ │ │ └── index.html │ │ ├── logviewobjectname │ │ │ └── index.html │ │ ├── makequerycomponents(from:by:) │ │ │ └── index.html │ │ ├── next │ │ │ └── index.html │ │ ├── node-implementations │ │ │ └── index.html │ │ ├── nodeerror │ │ │ └── index.html │ │ ├── noderesultpublisher(for:) │ │ │ └── index.html │ │ ├── noderesultpublisher(for:logcontext:) │ │ │ └── index.html │ │ ├── noderesultpublisher(for:on:) │ │ │ └── index.html │ │ ├── noderesultpublisher(for:on:logcontext:) │ │ │ └── index.html │ │ ├── objectname │ │ │ └── index.html │ │ ├── process(_:) │ │ │ └── index.html │ │ └── process(_:logcontext:) │ │ │ └── index.html │ │ ├── urlqueryinjectornodeerror │ │ ├── !=(_:_:) │ │ │ └── index.html │ │ ├── asaferror │ │ │ └── index.html │ │ ├── cantcreateurlcomponentsfromurlstring │ │ │ └── index.html │ │ ├── cantcreateurlfromurlcomponents │ │ │ └── index.html │ │ ├── equatable-implementations │ │ │ └── index.html │ │ ├── error-implementations │ │ │ └── index.html │ │ ├── index.html │ │ └── localizeddescription │ │ │ └── index.html │ │ ├── urlrequesttrasformatornode │ │ ├── asyncnode-implementations │ │ │ └── index.html │ │ ├── combinecompatiblenode-implementations │ │ │ └── index.html │ │ ├── erasetoanynode() │ │ │ └── index.html │ │ ├── index.html │ │ ├── init(next:method:) │ │ │ └── index.html │ │ ├── logviewobjectname │ │ │ └── index.html │ │ ├── method │ │ │ └── index.html │ │ ├── next │ │ │ └── index.html │ │ ├── node-implementations │ │ │ └── index.html │ │ ├── noderesultpublisher(for:) │ │ │ └── index.html │ │ ├── noderesultpublisher(for:logcontext:) │ │ │ └── index.html │ │ ├── noderesultpublisher(for:on:) │ │ │ └── index.html │ │ ├── noderesultpublisher(for:on:logcontext:) │ │ │ └── index.html │ │ ├── objectname │ │ │ └── index.html │ │ ├── process(_:) │ │ │ └── index.html │ │ └── process(_:logcontext:) │ │ │ └── index.html │ │ ├── urlrouteerror │ │ ├── !=(_:_:) │ │ │ └── index.html │ │ ├── asaferror │ │ │ └── index.html │ │ ├── cantbuildurl │ │ │ └── index.html │ │ ├── equatable-implementations │ │ │ └── index.html │ │ ├── error-implementations │ │ │ └── index.html │ │ ├── index.html │ │ └── localizeddescription │ │ │ └── index.html │ │ ├── urlrouteprovider │ │ ├── index.html │ │ └── url() │ │ │ └── index.html │ │ ├── urlservicechainprovider │ │ ├── index.html │ │ ├── init(session:) │ │ │ └── index.html │ │ ├── providerequestdatachain(with:) │ │ │ └── index.html │ │ ├── providerequestjsonchain(with:) │ │ │ └── index.html │ │ ├── providerequestmultipartchain() │ │ │ └── index.html │ │ ├── provideresponsedatachain() │ │ │ └── index.html │ │ ├── provideresponsejsonchain() │ │ │ └── index.html │ │ ├── provideresponsemultipartchain() │ │ │ └── index.html │ │ └── session │ │ │ └── index.html │ │ ├── urlsessiondatataskactor │ │ ├── actor-implementations │ │ │ └── index.html │ │ ├── assertisolated(_:file:line:) │ │ │ └── index.html │ │ ├── assumeisolated(_:file:line:) │ │ │ └── index.html │ │ ├── canceltask() │ │ │ └── index.html │ │ ├── index.html │ │ ├── preconditionisolated(_:file:line:) │ │ │ └── index.html │ │ └── store(task:) │ │ │ └── index.html │ │ ├── urlsessiondatataskactorprotocol │ │ ├── canceltask() │ │ │ └── index.html │ │ ├── index.html │ │ └── store(task:) │ │ │ └── index.html │ │ ├── voidinputnode │ │ ├── asyncnode-implementations │ │ │ └── index.html │ │ ├── combinecompatiblenode-implementations │ │ │ └── index.html │ │ ├── erasetoanynode() │ │ │ └── index.html │ │ ├── index.html │ │ ├── init(next:) │ │ │ └── index.html │ │ ├── logviewobjectname │ │ │ └── index.html │ │ ├── next │ │ │ └── index.html │ │ ├── node-implementations │ │ │ └── index.html │ │ ├── noderesultpublisher() │ │ │ └── index.html │ │ ├── noderesultpublisher(for:) │ │ │ └── index.html │ │ ├── noderesultpublisher(for:logcontext:) │ │ │ └── index.html │ │ ├── noderesultpublisher(for:on:) │ │ │ └── index.html │ │ ├── noderesultpublisher(for:on:logcontext:) │ │ │ └── index.html │ │ ├── noderesultpublisher(logcontext:) │ │ │ └── index.html │ │ ├── noderesultpublisher(on:) │ │ │ └── index.html │ │ ├── noderesultpublisher(on:logcontext:) │ │ │ └── index.html │ │ ├── objectname │ │ │ └── index.html │ │ ├── process() │ │ │ └── index.html │ │ ├── process(_:) │ │ │ └── index.html │ │ └── process(_:logcontext:) │ │ │ └── index.html │ │ ├── voidionode │ │ ├── asyncnode-implementations │ │ │ └── index.html │ │ ├── combinecompatiblenode-implementations │ │ │ └── index.html │ │ ├── erasetoanynode() │ │ │ └── index.html │ │ ├── index.html │ │ ├── logviewobjectname │ │ │ └── index.html │ │ ├── node-implementations │ │ │ └── index.html │ │ ├── noderesultpublisher() │ │ │ └── index.html │ │ ├── noderesultpublisher(for:) │ │ │ └── index.html │ │ ├── noderesultpublisher(for:logcontext:) │ │ │ └── index.html │ │ ├── noderesultpublisher(for:on:) │ │ │ └── index.html │ │ ├── noderesultpublisher(for:on:logcontext:) │ │ │ └── index.html │ │ ├── noderesultpublisher(logcontext:) │ │ │ └── index.html │ │ ├── noderesultpublisher(on:) │ │ │ └── index.html │ │ ├── noderesultpublisher(on:logcontext:) │ │ │ └── index.html │ │ ├── objectname │ │ │ └── index.html │ │ ├── process() │ │ │ └── index.html │ │ ├── process(_:) │ │ │ └── index.html │ │ └── process(_:logcontext:) │ │ │ └── index.html │ │ └── voidoutputnode │ │ ├── asyncnode-implementations │ │ └── index.html │ │ ├── combinecompatiblenode-implementations │ │ └── index.html │ │ ├── erasetoanynode() │ │ └── index.html │ │ ├── index.html │ │ ├── logviewobjectname │ │ └── index.html │ │ ├── node-implementations │ │ └── index.html │ │ ├── noderesultpublisher() │ │ └── index.html │ │ ├── noderesultpublisher(for:) │ │ └── index.html │ │ ├── noderesultpublisher(for:logcontext:) │ │ └── index.html │ │ ├── noderesultpublisher(for:on:) │ │ └── index.html │ │ ├── noderesultpublisher(for:on:logcontext:) │ │ └── index.html │ │ ├── noderesultpublisher(logcontext:) │ │ └── index.html │ │ ├── noderesultpublisher(on:) │ │ └── index.html │ │ ├── noderesultpublisher(on:logcontext:) │ │ └── index.html │ │ ├── objectname │ │ └── index.html │ │ ├── process() │ │ └── index.html │ │ ├── process(_:) │ │ └── index.html │ │ └── process(_:logcontext:) │ │ └── index.html ├── favicon.ico ├── favicon.svg ├── img │ ├── added-icon.832a5d2c.svg │ ├── deprecated-icon.7bf1740a.svg │ └── modified-icon.efb2697d.svg ├── index.html ├── index │ └── index.json ├── js │ ├── 337.274a8ccc.js │ ├── 37.3cabdf6d.js │ ├── 523.3af1b2ef.js │ ├── 903.b3710a74.js │ ├── chunk-vendors.bdb7cbba.js │ ├── documentation-topic.f9ef3692.js │ ├── highlight-js-bash-js.702f0c5c.js │ ├── highlight-js-c-js.063069d3.js │ ├── highlight-js-cpp-js.458a9ae4.js │ ├── highlight-js-css-js.bfc4251f.js │ ├── highlight-js-custom-markdown.78c9f6ed.js │ ├── highlight-js-custom-swift.738731d1.js │ ├── highlight-js-diff-js.4db9a783.js │ ├── highlight-js-http-js.f78e83c2.js │ ├── highlight-js-java-js.4fe21e94.js │ ├── highlight-js-javascript-js.dfc9d16d.js │ ├── highlight-js-json-js.2a1856ba.js │ ├── highlight-js-llvm-js.26121771.js │ ├── highlight-js-markdown-js.a2f456af.js │ ├── highlight-js-objectivec-js.74dea052.js │ ├── highlight-js-perl-js.da6eda82.js │ ├── highlight-js-php-js.c458ffa4.js │ ├── highlight-js-python-js.60354774.js │ ├── highlight-js-ruby-js.7272231f.js │ ├── highlight-js-scss-js.adcd11a2.js │ ├── highlight-js-shell-js.0ad5b20f.js │ ├── highlight-js-swift-js.bdd5bff5.js │ ├── highlight-js-xml-js.0d78f903.js │ ├── index.2871ffbd.js │ ├── topic.2687cdff.js │ └── tutorials-overview.2eff1231.js └── metadata.json └── xcresultparser └── xcresultparser /.github/pull_request_template.md: -------------------------------------------------------------------------------- 1 | # What is done 2 | 3 | - first 4 | - second 5 | - third 6 | 7 | # What to look for 8 | 9 | - first 10 | - second 11 | - third 12 | 13 | # How to check 14 | 15 | - first 16 | - second 17 | - third -------------------------------------------------------------------------------- /.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # CHANGELOG -------------------------------------------------------------------------------- /Example/Example.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Example/Example.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /Example/Example/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /Example/Example/Assets.xcassets/Image.imageset/0_VmzczR2-GWRnMej3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/surfstudio/NodeKit/92be7d6c2128c9f681078b48fda84bdb8c4263ef/Example/Example/Assets.xcassets/Image.imageset/0_VmzczR2-GWRnMej3.png -------------------------------------------------------------------------------- /Example/Example/Assets.xcassets/Image.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "MkYC3-1.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "MkYC3.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "0_VmzczR2-GWRnMej3.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /Example/Example/Assets.xcassets/Image.imageset/MkYC3-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/surfstudio/NodeKit/92be7d6c2128c9f681078b48fda84bdb8c4263ef/Example/Example/Assets.xcassets/Image.imageset/MkYC3-1.png -------------------------------------------------------------------------------- /Example/Example/Assets.xcassets/Image.imageset/MkYC3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/surfstudio/NodeKit/92be7d6c2128c9f681078b48fda84bdb8c4263ef/Example/Example/Assets.xcassets/Image.imageset/MkYC3.png -------------------------------------------------------------------------------- /Example/Example/Assets.xcassets/logo.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "web trello.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "web trello-1.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "web trello-2.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /Example/Example/Assets.xcassets/logo.imageset/web trello-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/surfstudio/NodeKit/92be7d6c2128c9f681078b48fda84bdb8c4263ef/Example/Example/Assets.xcassets/logo.imageset/web trello-1.png -------------------------------------------------------------------------------- /Example/Example/Assets.xcassets/logo.imageset/web trello-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/surfstudio/NodeKit/92be7d6c2128c9f681078b48fda84bdb8c4263ef/Example/Example/Assets.xcassets/logo.imageset/web trello-2.png -------------------------------------------------------------------------------- /Example/Example/Assets.xcassets/logo.imageset/web trello.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/surfstudio/NodeKit/92be7d6c2128c9f681078b48fda84bdb8c4263ef/Example/Example/Assets.xcassets/logo.imageset/web trello.png -------------------------------------------------------------------------------- /Example/Example/Extensions/UIStoryboard+Extension.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UIStoryboard+Extension.swift 3 | // Example 4 | // 5 | // Created by Andrei Frolov on 15.04.24. 6 | // Copyright © 2024 Кравченков Александр. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | extension UIStoryboard { 12 | static func instantiate( 13 | ofType: ViewController.Type, 14 | bundle: Bundle = .main 15 | ) -> ViewController? { 16 | let storyboard = UIStoryboard(name: String(describing: ViewController.self), bundle: bundle) 17 | return storyboard.instantiateInitialViewController() as? ViewController 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /Example/Example/Features/PaginationFeature/Cells/PaginationCellViewModel.swift: -------------------------------------------------------------------------------- 1 | // 2 | // PaginationCellViewModel.swift 3 | // Example 4 | // 5 | // Created by Alexander Kravchenkov on 09.04.2018. 6 | // Copyright © 2018 Кравченков Александр. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | struct PaginationCellViewModel { 12 | let name: String 13 | let url: String 14 | } 15 | -------------------------------------------------------------------------------- /Example/Example/Features/PaginationFeature/PaginationRouter.swift: -------------------------------------------------------------------------------- 1 | // 2 | // PaginationRouter.swift 3 | // Example 4 | // 5 | // Created by Andrei Frolov on 15.04.24. 6 | // Copyright © 2024 Кравченков Александр. All rights reserved. 7 | // 8 | 9 | protocol PaginationRouterInput: ErrorRepresentable { } 10 | 11 | struct PaginationRouter: PaginationRouterInput { } 12 | -------------------------------------------------------------------------------- /Example/Example/Flows/AuthFlow/Credentials.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Credentials.swift 3 | // Example 4 | // 5 | // Created by Andrei Frolov on 15.04.24. 6 | // Copyright © 2024 Кравченков Александр. All rights reserved. 7 | // 8 | 9 | struct Credentials { 10 | let email: String 11 | let password: String 12 | } 13 | 14 | extension Credentials { 15 | 16 | init?(email: String?, password: String?) { 17 | guard let email, let password else { 18 | return nil 19 | } 20 | self.email = email 21 | self.password = password 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /Example/Example/Flows/FeatureListFlow/Cells/FeatureCellViewModel.swift: -------------------------------------------------------------------------------- 1 | // 2 | // FeatureCellViewModel.swift 3 | // Example 4 | // 5 | // Created by Andrei Frolov on 15.04.24. 6 | // Copyright © 2024 Кравченков Александр. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | final class FeatureCellViewModel { 12 | 13 | // MARK: - Properties 14 | 15 | let title: String 16 | var didTap: (@MainActor () -> Void)? 17 | 18 | // MARK: - Initialization 19 | 20 | init(_ title: String) { 21 | self.title = title 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /Example/Example/Utils/Message.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ExampleUrls.swift 3 | // Example 4 | // 5 | // Created by Александр Кравченков on 10.12.2017. 6 | // Copyright © 2017 Кравченков Александр. All rights reserved. 7 | // 8 | 9 | public class ExampleUrls { 10 | public static let baseUrl = "http://jsonplaceholder.typicode.com/" 11 | public static let users = "users" 12 | } 13 | -------------------------------------------------------------------------------- /Example/Modules/MockServer/MockServer/Error/ErrorResponseProvider.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ErrorResponseProvider.swift 3 | // 4 | // 5 | // Created by Andrei Frolov on 15.04.24. 6 | // 7 | 8 | import Foundation 9 | 10 | enum ErrorResponseProvider { 11 | 12 | static func provide400Error() -> (HTTPURLResponse, Data) { 13 | return ( 14 | HTTPURLResponse( 15 | url: ServerConstants.hostURL, 16 | statusCode: 400, 17 | httpVersion: nil, 18 | headerFields: nil 19 | )!, 20 | Data() 21 | ) 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /Example/Modules/MockServer/MockServer/FakeChainBuilder.swift: -------------------------------------------------------------------------------- 1 | // 2 | // FakeChainBuilder.swift 3 | // 4 | // 5 | // Created by Andrei Frolov on 02.05.24. 6 | // 7 | 8 | import NodeKit 9 | import NodeKitMock 10 | 11 | public final class FakeChainBuilder: URLChainBuilder { 12 | 13 | public init() { 14 | super.init( 15 | serviceChainProvider: URLServiceChainProvider(session: NetworkMock().urlSession) 16 | ) 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /Example/Modules/MockServer/MockServer/ServerConstants.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ServerConstants.swift 3 | // 4 | // 5 | // Created by Andrei Frolov on 15.04.24. 6 | // 7 | 8 | import Foundation 9 | 10 | enum ServerConstants { 11 | static let hostURL = URL(string: "www.mockurl.com")! 12 | } 13 | -------------------------------------------------------------------------------- /Example/Modules/Models/Models/Requests/Auth/AuthRequestEntry.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AuthRequestEntry.swift 3 | // 4 | // Created by Andrei Frolov on 11.04.24. 5 | // 6 | 7 | import NodeKit 8 | 9 | public struct AuthRequestEntry: Codable { 10 | let email: String 11 | let password: String 12 | } 13 | 14 | extension AuthRequestEntry: RawEncodable { 15 | public typealias Raw = Json 16 | } 17 | -------------------------------------------------------------------------------- /Example/Modules/Models/Models/Requests/Pagination/PaginationRequestEntry.swift: -------------------------------------------------------------------------------- 1 | // 2 | // PaginationRequestEntry.swift 3 | // 4 | // Created by Andrei Frolov on 11.04.24. 5 | // 6 | 7 | import NodeKit 8 | 9 | public struct PaginationRequestEntry { 10 | let index: Int 11 | let pageSize: Int 12 | } 13 | 14 | extension PaginationRequestEntry: Codable, RawEncodable { 15 | public typealias Raw = Json 16 | } 17 | -------------------------------------------------------------------------------- /Example/Modules/Models/Models/Responses/Auth/AuthTokenResponseEntry.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AuthTokenResponseEntry.swift 3 | // 4 | // Created by Andrei Frolov on 11.04.24. 5 | // 6 | 7 | import NodeKit 8 | 9 | public struct AuthTokenResponseEntry { 10 | let accessToken: String 11 | let refreshToken: String 12 | } 13 | 14 | extension AuthTokenResponseEntry: Codable, RawMappable { 15 | public typealias Raw = Json 16 | } 17 | -------------------------------------------------------------------------------- /Example/Modules/Models/Models/Responses/Group/GroupBodyResponseEntry.swift: -------------------------------------------------------------------------------- 1 | // 2 | // GroupBodyResponseEntry.swift 3 | // 4 | // Created by Andrei Frolov on 11.04.24. 5 | // 6 | 7 | import NodeKit 8 | 9 | public struct GroupBodyResponseEntry { 10 | let text: String 11 | let image: String 12 | } 13 | 14 | extension GroupBodyResponseEntry: Codable, RawMappable { 15 | public typealias Raw = Json 16 | } 17 | -------------------------------------------------------------------------------- /Example/Modules/Models/Models/Responses/Group/GroupFooterResponseEntry.swift: -------------------------------------------------------------------------------- 1 | // 2 | // GroupFooterResponseEntry.swift 3 | // 4 | // Created by Andrei Frolov on 11.04.24. 5 | // 6 | 7 | import NodeKit 8 | 9 | public struct GroupFooterResponseEntry { 10 | let text: String 11 | let image: String 12 | } 13 | 14 | extension GroupFooterResponseEntry: Codable, RawMappable { 15 | public typealias Raw = Json 16 | } 17 | -------------------------------------------------------------------------------- /Example/Modules/Models/Models/Responses/Group/GroupHeaderResponseEntry.swift: -------------------------------------------------------------------------------- 1 | // 2 | // GroupHeaderResponseEntry.swift 3 | // 4 | // Created by Andrei Frolov on 11.04.24. 5 | // 6 | 7 | import NodeKit 8 | 9 | public struct GroupHeaderResponseEntry { 10 | let text: String 11 | let image: String 12 | } 13 | 14 | extension GroupHeaderResponseEntry: Codable, RawMappable { 15 | public typealias Raw = Json 16 | } 17 | -------------------------------------------------------------------------------- /Example/Modules/Models/Models/Responses/Pagination/PaginationResponseEntry.swift: -------------------------------------------------------------------------------- 1 | // 2 | // PaginationResponseEntry.swift 3 | // 4 | // Created by Andrei Frolov on 11.04.24. 5 | // 6 | 7 | import NodeKit 8 | 9 | public struct PaginationResponseEntry { 10 | let name: String 11 | let image: String 12 | } 13 | 14 | extension PaginationResponseEntry: Codable, RawMappable { 15 | public typealias Raw = Json 16 | } 17 | -------------------------------------------------------------------------------- /Example/Modules/Models/Package.swift: -------------------------------------------------------------------------------- 1 | // swift-tools-version:5.7 2 | import PackageDescription 3 | 4 | let package = Package( 5 | name: "Models", 6 | platforms: [ 7 | .macOS(.v11), 8 | .iOS(.v13), 9 | ], 10 | products: [ 11 | .library( 12 | name: "Models", 13 | targets: ["Models"] 14 | ) 15 | ], 16 | dependencies: [ 17 | .package(path: "../../..") 18 | ], 19 | targets: [ 20 | .target( 21 | name: "Models", 22 | dependencies: [ 23 | "NodeKit" 24 | ], 25 | path: "Models" 26 | ) 27 | ] 28 | ) 29 | -------------------------------------------------------------------------------- /Example/Modules/Services/Services/AuthService/AuthURLProvider.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AuthURLProvider.swift 3 | // 4 | // 5 | // Created by Andrei Frolov on 15.04.24. 6 | // 7 | 8 | import Foundation 9 | import NodeKit 10 | 11 | enum AuthURLProvider: URLRouteProvider { 12 | private static var base: URLRouteProvider = NavigationURLProvider.auth 13 | 14 | case login 15 | case logout 16 | 17 | func url() throws -> URL { 18 | switch self { 19 | case .login: 20 | return try Self.base.url() + "/login" 21 | case .logout: 22 | return try Self.base.url() + "/logout" 23 | } 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /Example/Modules/Services/Services/PaginationService/PaginationURLProvider.swift: -------------------------------------------------------------------------------- 1 | // 2 | // PaginationURLProvider.swift 3 | // 4 | // 5 | // Created by Andrei Frolov on 15.04.24. 6 | // 7 | 8 | import Foundation 9 | import NodeKit 10 | 11 | enum PaginationURLProvider: URLRouteProvider { 12 | private static var base: URLRouteProvider = NavigationURLProvider.pagination 13 | 14 | case list 15 | 16 | func url() throws -> URL { 17 | switch self { 18 | case .list: 19 | return try Self.base.url() + "/list" 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Gemfile: -------------------------------------------------------------------------------- 1 | source "https://rubygems.org" 2 | 3 | # Ensure github repositories are fetched using HTTPS 4 | git_source(:github) do |repo_name| 5 | repo_name = "#{repo_name}/#{repo_name}" unless repo_name.include?("/") 6 | puts(repo_name) 7 | "https://github.com/#{repo_name}.git" 8 | end if Gem::Version.new(Bundler::VERSION) < Gem::Version.new('2') 9 | 10 | gem 'xcpretty', "0.3.0" 11 | 12 | plugins_path = File.join(File.dirname(__FILE__), 'fastlane', 'Pluginfile') 13 | eval_gemfile(plugins_path) if File.exist?(plugins_path) -------------------------------------------------------------------------------- /NodeKit/NodeKit.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /NodeKit/NodeKit.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /NodeKit/NodeKit/Core/Convertion/Extensions/DTOConvertible+Dictionary.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | 3 | /// This extension allows representing a dictionary as ``DTOConvertible``. 4 | extension Dictionary: DTOConvertible where Dictionary.Key == String, Dictionary.Value == Any { 5 | 6 | public typealias DTO = Json 7 | 8 | public func toDTO() throws -> Json { 9 | return self 10 | } 11 | 12 | public static func from(dto: Json) throws -> [String: Any] { 13 | return dto 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /NodeKit/NodeKit/Core/Convertion/Extensions/RawMappable+Dictionary.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | 3 | /// This extension allows representing a dictionary as ``RawMappable``. 4 | extension Dictionary: RawMappable where Dictionary.Key == String, Dictionary.Value == Any { 5 | 6 | /// Returns itself. 7 | /// - Throws: Does not throw errors. 8 | public func toRaw() throws -> Json { 9 | return self 10 | } 11 | 12 | /// Just returns the input. 13 | /// - Throws: Does not throw errors. 14 | public static func from(raw: Json) throws -> Json { 15 | return raw 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /NodeKit/NodeKit/Core/Convertion/Multipart/MultipartFileProvider.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | 3 | /// File provider for multipart requests. 4 | /// 5 | /// - data: Provides a file as binary data, including name and type. 6 | /// - url: Provides a file as a file path. It will be uploaded later. The original name and type will be used for the request. 7 | /// - customWithURL: Similar to `url`, except that you can specify the file name and file type yourself. 8 | public enum MultipartFileProvider { 9 | case data(data: Data, filename: String, mimetype: String) 10 | case url(url: URL) 11 | case customWithURL(url: URL, filename: String, mimetype: String) 12 | } 13 | -------------------------------------------------------------------------------- /NodeKit/NodeKit/Core/Node/Combine/Publisher/NodeResultPublisher.swift: -------------------------------------------------------------------------------- 1 | // 2 | // NodeResultPublisher.swift 3 | // NodeKit 4 | // 5 | // Created by Andrei Frolov on 17.04.24. 6 | // Copyright © 2024 Surf. All rights reserved. 7 | // 8 | 9 | import Combine 10 | 11 | /// Protocol describing a Publisher for ``CombineCompatibleNode`` 12 | protocol NodeResultPublisher: Publisher { 13 | associatedtype Node: CombineCompatibleNode 14 | 15 | /// Input data. 16 | var input: Node.I { get } 17 | 18 | /// Node. 19 | var node: Node { get } 20 | 21 | /// Logging context. 22 | var logContext: LoggingContextProtocol { get } 23 | } 24 | -------------------------------------------------------------------------------- /NodeKit/NodeKit/Core/Node/Combine/Subscriber/NodeSubscriber.swift: -------------------------------------------------------------------------------- 1 | // 2 | // NodeSubscriber.swift 3 | // NodeKit 4 | // 5 | // Created by Andrei Frolov on 17.04.24. 6 | // Copyright © 2024 Surf. All rights reserved. 7 | // 8 | 9 | import Combine 10 | 11 | /// Short name for a Subscriber expecting NodeResult 12 | typealias NodeSubscriber = Subscriber, Never> 13 | -------------------------------------------------------------------------------- /NodeKit/NodeKit/Core/Node/Node.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Node.swift 3 | // CoreNetKitWithExample 4 | // 5 | // Created by Александр Кравченков on 27/11/2018. 6 | // Copyright © 2018 Александр Кравченков. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | /// Protocol describing any node or chain of nodes. 12 | /// Necessary for combining all types of nodes and adding common methods. 13 | public protocol Node { } 14 | 15 | /// Contains computed constants 16 | public extension Node { 17 | /// Returns the name of the type as a string 18 | var objectName: String { 19 | return "\(type(of: self))" 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /NodeKit/NodeKit/Encodings/RequestEncodingNodeError.swift: -------------------------------------------------------------------------------- 1 | // 2 | // RequestEncodingNodeError.swift 3 | // NodeKit 4 | // 5 | // Created by Vladislav Krupenko on 17.06.2020. 6 | // Copyright © 2020 Кравченков Александр. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | enum RequestEncodingNodeError: Error { 12 | case unsupportedDataType 13 | case missedJsonEncodingType 14 | } 15 | 16 | -------------------------------------------------------------------------------- /NodeKit/NodeKit/Layers/Protocols/URLRouteProvider.swift: -------------------------------------------------------------------------------- 1 | // 2 | // URLProvider.swift 3 | // CoreNetKit 4 | // 5 | // Created by Александр Кравченков on 05/03/2019. 6 | // Copyright © 2019 Кравченков Александр. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | /// Protocol for URL route provider 12 | public protocol URLRouteProvider { 13 | 14 | /// Returns URL 15 | /// 16 | /// - Returns: The URL route of this object 17 | /// - Throws: May throw an exception if the object's state does not allow returning the route. 18 | func url() throws -> URL 19 | } 20 | -------------------------------------------------------------------------------- /NodeKit/NodeKit/Layers/RequestBuildingLayer/Models/RequestModel.swift: -------------------------------------------------------------------------------- 1 | // 2 | // RequestModel.swift 3 | // CoreNetKit 4 | // 5 | // Created by Александр Кравченков on 05/03/2019. 6 | // Copyright © 2019 Кравченков Александр. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | /// Model for network request. 12 | /// It serves as an intermediate representation for passing data within the chain. 13 | /// It is subsequently converted into ``RoutableRequestModel``. 14 | public struct RequestModel { 15 | /// Метаданные 16 | public var metadata: [String: String] 17 | /// Данные для запроса 18 | public var raw: Raw 19 | } 20 | -------------------------------------------------------------------------------- /NodeKit/NodeKit/NodeKit.h: -------------------------------------------------------------------------------- 1 | // 2 | // CoreNetKit.h 3 | // CoreNetKit 4 | // 5 | // Created by Александр Кравченков on 15.10.2017. 6 | // Copyright © 2017 Кравченков Александр. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | //! Project version number for CoreNetKit. 12 | FOUNDATION_EXPORT double NodeKitVersionNumber; 13 | 14 | //! Project version string for CoreNetKit. 15 | FOUNDATION_EXPORT const unsigned char NodeKitVersionString[]; 16 | 17 | // In this header, you should import all the public headers of your framework using statements like #import 18 | 19 | 20 | -------------------------------------------------------------------------------- /NodeKit/NodeKit/Utils/AsyncIterator/AsyncIterator.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AsyncIterator.swift 3 | // NodeKit 4 | 5 | /// Интерфейс любого асинхронно интерируемого компонента 6 | /// 7 | /// pageSize, offset и другие параметры указываются в конкретной реализации протокола 8 | public protocol AsyncIterator: Actor { 9 | associatedtype Value 10 | 11 | /// Requests next data. 12 | @discardableResult 13 | func next() async -> Result 14 | 15 | /// Returns whether there is more data. 16 | func hasNext() -> Bool 17 | 18 | /// Resets the iterator. 19 | func renew() 20 | } 21 | -------------------------------------------------------------------------------- /NodeKit/NodeKit/Utils/AsyncIterator/StateStorable.swift: -------------------------------------------------------------------------------- 1 | // 2 | // StateStorable.swift 3 | // NodeKit 4 | // 5 | 6 | public protocol StateStorable: Actor { 7 | func saveState() 8 | func clearStates() 9 | func restoreState() 10 | } 11 | -------------------------------------------------------------------------------- /NodeKit/NodeKit/Utils/CancellableTask.swift: -------------------------------------------------------------------------------- 1 | // 2 | // CancellableTask.swift 3 | // 4 | // 5 | // Created by Andrei Frolov on 15.04.24. 6 | // 7 | 8 | import Foundation 9 | 10 | public protocol CancellableTask { 11 | func cancel() 12 | } 13 | 14 | extension Task: CancellableTask { } 15 | extension URLSessionDataTask: CancellableTask { } 16 | -------------------------------------------------------------------------------- /NodeKit/NodeKit/Utils/Logging/Log/Log.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Log.swift 3 | // 4 | // 5 | // Created by frolov on 24.12.2024. 6 | // 7 | 8 | public protocol Log { 9 | 10 | /// The order of the log in the chain. Necessary for sorting. 11 | var order: Double { get } 12 | 13 | /// Log identifier. 14 | var id: String { get } 15 | 16 | /// The content of this log. 17 | var message: String { get } 18 | 19 | /// Type of the log 20 | var logType: LogType { get } 21 | 22 | } 23 | -------------------------------------------------------------------------------- /NodeKit/NodeKit/Utils/Logging/Log/LogSession.swift: -------------------------------------------------------------------------------- 1 | // 2 | // LogSession.swift 3 | // 4 | // 5 | // Created by frolov on 24.12.2024. 6 | // 7 | 8 | public protocol LogSession: Actor { 9 | 10 | /// Request Method 11 | var method: Method? { get } 12 | /// Request Route 13 | var route: URLRouteProvider? { get } 14 | 15 | func subscribe(_ subscription: @escaping ([Log]) async -> Void) 16 | } 17 | -------------------------------------------------------------------------------- /NodeKit/NodeKit/Utils/Logging/Log/LogType.swift: -------------------------------------------------------------------------------- 1 | // 2 | // LogType.swift 3 | // 4 | // 5 | // Created by frolov on 24.12.2024. 6 | // 7 | 8 | public enum LogType { 9 | case failure 10 | case info 11 | case warning 12 | } 13 | -------------------------------------------------------------------------------- /NodeKit/NodeKit/Utils/Logging/Log/LoggingProxy.swift: -------------------------------------------------------------------------------- 1 | // 2 | // LoggingProxy.swift 3 | // 4 | // 5 | // Created by frolov on 24.12.2024. 6 | // 7 | 8 | public protocol LoggingProxy { 9 | func handle(session: LogSession) async 10 | } 11 | -------------------------------------------------------------------------------- /NodeKit/NodeKit/Utils/Logging/LoggerExtensions.swift: -------------------------------------------------------------------------------- 1 | // 2 | // LoggerExtensions.swift 3 | // CoreNetKit 4 | // 5 | // Created by Александр Кравченков on 07/04/2019. 6 | // Copyright © 2019 Кравченков Александр. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | /// Contains computed constants 12 | public extension String { 13 | /// Returns the sequence "\r\n" 14 | static var lineTabDeilimeter: String { 15 | return "\r\n" 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /NodeKit/NodeKit/Utils/MetadataProvider.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | 3 | /// Interface for any metadata (headers) provider. 4 | /// Can be used, for example, to supply a token in a request without creating a custom node. 5 | public protocol MetadataProvider { 6 | /// Returns a header with a token. 7 | func metadata() -> [String: String] 8 | } 9 | -------------------------------------------------------------------------------- /NodeKit/NodeKitMock/CancellableTaskMock.swift: -------------------------------------------------------------------------------- 1 | // 2 | // CancellableTaskMock.swift 3 | // NodeKitTests 4 | // 5 | // Created by Andrei Frolov on 08.04.24. 6 | // Copyright © 2024 Surf. All rights reserved. 7 | // 8 | 9 | import NodeKit 10 | 11 | public class CancellableTaskMock: CancellableTask { 12 | 13 | public init() { } 14 | 15 | public var invokedCancel = false 16 | public var invokedCancelCount = 0 17 | 18 | public func cancel() { 19 | invokedCancel = true 20 | invokedCancelCount += 1 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /NodeKit/NodeKitMock/LoggingProxyMock.swift: -------------------------------------------------------------------------------- 1 | // 2 | // LoggingProxy.swift 3 | // 4 | // 5 | // Created by frolov on 24.12.2024. 6 | // 7 | 8 | import NodeKit 9 | 10 | public class LoggingProxyMock: LoggingProxy { 11 | 12 | public var invokedHandle = false 13 | public var invokedHandleCount = 0 14 | public var invokedHandleParameter: LogSession? 15 | public var invokedHandleParameterList: [LogSession] = [] 16 | 17 | public func handle(session: LogSession) async { 18 | invokedHandle = true 19 | invokedHandleCount += 1 20 | invokedHandleParameter = session 21 | invokedHandleParameterList.append(session) 22 | } 23 | 24 | } 25 | -------------------------------------------------------------------------------- /NodeKit/NodeKitMock/MetadataProviderMock.swift: -------------------------------------------------------------------------------- 1 | // 2 | // MetadataProviderMock.swift 3 | // NodeKitTests 4 | // 5 | // Created by Andrei Frolov on 04.04.24. 6 | // Copyright © 2024 Surf. All rights reserved. 7 | // 8 | 9 | import NodeKit 10 | 11 | public class MetadataProviderMock: MetadataProvider { 12 | 13 | public init() { } 14 | 15 | public var invokedMetadata = false 16 | public var invokedMetadataCount = 0 17 | public var stubbedMetadataResult: [String: String] = [:] 18 | 19 | public func metadata() -> [String : String] { 20 | invokedMetadata = true 21 | invokedMetadataCount += 1 22 | return stubbedMetadataResult 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /NodeKit/NodeKitMock/MockError.swift: -------------------------------------------------------------------------------- 1 | // 2 | // MockError.swift 3 | // NodeKitTests 4 | // 5 | // Created by Andrei Frolov on 31.03.24. 6 | // Copyright © 2024 Surf. All rights reserved. 7 | // 8 | 9 | public enum MockError: Error { 10 | case firstError 11 | case secondError 12 | case thirdError 13 | } 14 | -------------------------------------------------------------------------------- /NodeKit/NodeKitMock/NetworkMock.swift: -------------------------------------------------------------------------------- 1 | // 2 | // NetworkMock.swift 3 | // NodeKitTests 4 | // 5 | // Created by Andrei Frolov on 08.04.24. 6 | // Copyright © 2024 Surf. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | public class NetworkMock { 12 | 13 | public init() { } 14 | 15 | public var urlSession: URLSession { 16 | let configuration: URLSessionConfiguration = .ephemeral 17 | configuration.protocolClasses = [URLProtocolMock.self] 18 | configuration.timeoutIntervalForRequest = 100000 19 | return URLSession(configuration: configuration) 20 | } 21 | 22 | } 23 | -------------------------------------------------------------------------------- /NodeKit/NodeKitMock/Utils/Array+Extension.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Array+Extension.swift 3 | // NodeKitTests 4 | // 5 | // Created by Andrei Frolov on 09.04.24. 6 | // Copyright © 2024 Surf. All rights reserved. 7 | // 8 | 9 | public extension Array { 10 | func safe(index: Int) -> Element? { 11 | guard count > index else { 12 | return nil 13 | } 14 | return self[index] 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /NodeKit/NodeKitMock/Utils/DispatchQueue+Extension.swift: -------------------------------------------------------------------------------- 1 | // 2 | // DispatchQueue+Extension.swift 3 | // NodeKitTests 4 | // 5 | // Created by Andrei Frolov on 04.04.24. 6 | // Copyright © 2024 Surf. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | public extension DispatchQueue { 12 | static var currentLabel: String { 13 | return String(validatingUTF8: __dispatch_queue_get_label(nil)) ?? "" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /NodeKit/NodeKitMock/Utils/Equatable/Log+Equatalbe.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Log+Equatalbe.swift 3 | // NodeKitTests 4 | // 5 | // Created by frolov on 19.03.2024. 6 | // Copyright © 2024 Surf. All rights reserved. 7 | // 8 | 9 | @testable import NodeKit 10 | 11 | extension LogChain: Equatable { 12 | 13 | public static func == (lhs: LogChain, rhs: LogChain) -> Bool { 14 | return lhs.message == rhs.message && 15 | lhs.description == rhs.description && 16 | lhs.delimeter == rhs.delimeter && 17 | lhs.logType == rhs.logType && 18 | lhs.id == rhs.id && 19 | lhs.order == rhs.order 20 | } 21 | 22 | } 23 | -------------------------------------------------------------------------------- /NodeKit/NodeKitMock/Utils/Equatable/TransportURLRequest+Equatable.swift: -------------------------------------------------------------------------------- 1 | // 2 | // TransportURLRequest+Equatable.swift 3 | // NodeKitTests 4 | // 5 | // Created by Andrei Frolov on 04.04.24. 6 | // Copyright © 2024 Surf. All rights reserved. 7 | // 8 | 9 | @testable import NodeKit 10 | 11 | extension TransportURLRequest: Equatable { 12 | public static func == (lhs: TransportURLRequest, rhs: TransportURLRequest) -> Bool { 13 | return lhs.headers == rhs.headers && 14 | lhs.url == rhs.url && 15 | lhs.method == rhs.method && 16 | lhs.raw == rhs.raw 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /NodeKit/NodeKitMock/Utils/Result+Extension.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Result+Extension.swift 3 | // NodeKitTests 4 | // 5 | // Created by Andrei Frolov on 31.03.24. 6 | // Copyright © 2024 Surf. All rights reserved. 7 | // 8 | 9 | import NodeKit 10 | 11 | public extension Result where Success: Equatable { 12 | func castToMockError() -> Result? { 13 | switch self { 14 | case .success(let v): 15 | return .success(v) 16 | case .failure(let error): 17 | if let error = error as? MockError { 18 | return .failure(error) 19 | } 20 | return nil 21 | } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /NodeKit/NodeKitTests/IntegrationTests/Infrastructure/Models/Entry/AuthModelEntry.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AuthEntry.swift 3 | // CoreNetKitIntegrationTests 4 | // 5 | // Created by Александр Кравченков on 04/02/2019. 6 | // Copyright © 2019 Кравченков Александр. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | @testable import NodeKit 12 | 13 | public struct AuthModelEntry { 14 | public let type: String 15 | public let secret: String 16 | } 17 | 18 | extension AuthModelEntry: Codable { } 19 | 20 | extension AuthModelEntry: RawMappable { 21 | public typealias Raw = Json 22 | } 23 | -------------------------------------------------------------------------------- /NodeKit/NodeKitTests/IntegrationTests/Infrastructure/Models/Entry/CredentialsEntry.swift: -------------------------------------------------------------------------------- 1 | // 2 | // CredentialsEntry.swift 3 | // CoreNetKitIntegrationTests 4 | // 5 | // Created by Александр Кравченков on 04/02/2019. 6 | // Copyright © 2019 Кравченков Александр. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | @testable import NodeKit 12 | 13 | public struct CredentialsEntry { 14 | public let accessToken: String 15 | public let refreshToken: String 16 | } 17 | 18 | extension CredentialsEntry: Codable {} 19 | 20 | extension CredentialsEntry: RawMappable { 21 | public typealias Raw = Json 22 | } 23 | -------------------------------------------------------------------------------- /NodeKit/NodeKitTests/IntegrationTests/Infrastructure/Models/Entry/UserEntry.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UserEntry.swift 3 | // CoreNetKitIntegrationTests 4 | // 5 | // Created by Александр Кравченков on 01/02/2019. 6 | // Copyright © 2019 Кравченков Александр. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | @testable import NodeKit 12 | 13 | public struct UserEntry: Codable, RawMappable { 14 | 15 | public typealias Raw = Json 16 | 17 | public var id: String 18 | public var firstName: String 19 | public var lastName: String 20 | } 21 | -------------------------------------------------------------------------------- /NodeKit/NodeKitTests/MyTests.swift: -------------------------------------------------------------------------------- 1 | // 2 | // MyTests.swift 3 | // NodeKitTests 4 | // 5 | // Created by frolov on 23.05.2024. 6 | // Copyright © 2024 Surf. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | -------------------------------------------------------------------------------- /NodeKit/NodeKitTests/UnitTests/RequestBuildingLayer/URLQueryDictionaryKeyEncodingDefaultStrategyTests.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | import XCTest 3 | 4 | @testable import NodeKit 5 | 6 | public class URLQueryDictionaryKeyEncodingDefaultStrategyTests: XCTestCase { 7 | public func testStrategyWorkSuccess() { 8 | 9 | // Arrange 10 | 11 | let queryKey = "dict" 12 | let dictKey = "name" 13 | let strategy = URLQueryDictionaryKeyEncodingDefaultStrategy() 14 | 15 | // Act 16 | 17 | let result = strategy.encode(queryItemName: queryKey, dictionaryKey: dictKey) 18 | 19 | // Assert 20 | 21 | XCTAssertEqual(result, "\(queryKey)[\(dictKey)]") 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /NodeKit/NodeKitThirdParty/.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /NodeKit/NodeKitThirdParty/Package.swift: -------------------------------------------------------------------------------- 1 | // swift-tools-version:5.7 2 | import PackageDescription 3 | 4 | let package = Package( 5 | name: "NodeKitThirdParty", 6 | platforms: [ 7 | .macOS(.v11), 8 | .iOS(.v13), 9 | ], 10 | products: [ 11 | .library( 12 | name: "NodeKitThirdParty", 13 | targets: ["NodeKitThirdParty"] 14 | ) 15 | ], 16 | targets: [ 17 | .target( 18 | name: "NodeKitThirdParty", 19 | path: "Source" 20 | ) 21 | ] 22 | ) 23 | -------------------------------------------------------------------------------- /TechDocs/Documentation.md: -------------------------------------------------------------------------------- 1 | # NodeKit Documentation 2 | 3 | - [Usage](/TechDocs/Usage.md) 4 | - [Main Concept](/TechDocs/MainConcept.md) 5 | - [Models](/TechDocs/Models.md) 6 | - [Existing Nodes](/TechDocs/Nodes/Existing.md) 7 | - [Chains](/TechDocs/Chains.md) 8 | - [Logging](/TechDocs/Log/Log.md) 9 | - [NodeKitMock](/TechDocs/Testing/NodeKitMock.md) 10 | -------------------------------------------------------------------------------- /TechDocs/Header.umdx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/surfstudio/NodeKit/92be7d6c2128c9f681078b48fda84bdb8c4263ef/TechDocs/Header.umdx -------------------------------------------------------------------------------- /TechDocs/Log/log_chaining.umdx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/surfstudio/NodeKit/92be7d6c2128c9f681078b48fda84bdb8c4263ef/TechDocs/Log/log_chaining.umdx -------------------------------------------------------------------------------- /TechDocs/Log/log_nodes_tree.umdx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/surfstudio/NodeKit/92be7d6c2128c9f681078b48fda84bdb8c4263ef/TechDocs/Log/log_nodes_tree.umdx -------------------------------------------------------------------------------- /TechDocs/NodeKitHeader.umdx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/surfstudio/NodeKit/92be7d6c2128c9f681078b48fda84bdb8c4263ef/TechDocs/NodeKitHeader.umdx -------------------------------------------------------------------------------- /codecov.yml: -------------------------------------------------------------------------------- 1 | coverage: 2 | range: 60..80 3 | round: down 4 | precision: 2 -------------------------------------------------------------------------------- /docs/developer-og-twitter.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/surfstudio/NodeKit/92be7d6c2128c9f681078b48fda84bdb8c4263ef/docs/developer-og-twitter.jpg -------------------------------------------------------------------------------- /docs/developer-og.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/surfstudio/NodeKit/92be7d6c2128c9f681078b48fda84bdb8c4263ef/docs/developer-og.jpg -------------------------------------------------------------------------------- /docs/documentation/nodekit/aborter/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/aborternode/aborter/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/aborternode/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/aborternode/next/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/aborternode/objectname/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/aborternode/process()/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/aborternode/process(_:)/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/accesssafenode/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/accesssafenode/next/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/accesssafenode/objectname/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/accesssafenode/process(_:)/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/accesssafenodeerror/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/anyasyncnode/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/anyasyncnode/objectname/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/anyasyncnode/process()/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/anyasyncnode/process(_:)/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/asynciterator/hasnext()/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/asynciterator/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/asynciterator/next()/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/asynciterator/renew()/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/asynciterator/value/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/asyncnode/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/asyncnode/input/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/asyncnode/output/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/asyncnode/process()/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/asyncnode/process(_:)/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/asyncpagerdata/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/asyncpagerdata/len/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/asyncpagerdata/value/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/asyncpagerdataprovider/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/asyncpageriterator/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/asyncpageriterator/next()/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/asyncpageriterator/renew()/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/basetechnicalerror/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/basetechnicalerror/timeout/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/baseurlcachereadererror/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/cancellabletask/cancel()/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/cancellabletask/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/chainbuilder/build()-36597/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/chainbuilder/build()-5c7qf/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/chainbuilder/build()-78200/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/chainbuilder/build()-9ggos/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/chainbuilder/build()-9rmnl/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/chainbuilder/encode(as:)/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/chainbuilder/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/chainbuilder/route(_:_:)/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/chainbuilder/route/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/chainconfigbuilder/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/combinecompatiblenode/i/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/combinecompatiblenode/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/combinecompatiblenode/o/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/dtoconvertible/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/dtodecodable/dto/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/dtodecodable/from(dto:)/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/dtodecodable/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/dtoencodable/dto/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/dtoencodable/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/dtoencodable/todto()/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/dtoencodernode/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/dtoencodernode/objectname/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/dtoencodernode/process()/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/dtoencodernode/process(_:)/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/dtomappernode/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/dtomappernode/init(next:)/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/dtomappernode/next/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/dtomappernode/objectname/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/dtomappernode/process()/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/dtomappernode/process(_:)/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/encodablerequestmodel/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/encodablerequestmodel/raw/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/entryinputdtooutputnode/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/errorarrayjsonmappiong/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/etagconstants/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/foundation/characterset/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/foundation/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/foundation/url/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/foundation/url/url()/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/headerinjectornode/headers/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/headerinjectornode/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/headerinjectornode/next/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/json/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/jsonencoding/default/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/jsonencoding/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/jsonencoding/options/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/jsonencoding/prettyprinted/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/log/+=(_:_:)/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/log/add(message:)/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/log/delimeter/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/log/description/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/log/id/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/log/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/log/message/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/log/next/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/log/order/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/logable/add(message:)/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/logable/description/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/logable/id/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/logable/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/logable/next/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/logable/order/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/loggernode/filters/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/loggernode/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/loggernode/next/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/loggernode/objectname/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/loggernode/process()/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/loggernode/process(_:)/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/loggingcontext/add(_:)/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/loggingcontext/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/loggingcontext/log/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/loggingcontextprotocol/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/loggingcontextprotocol/log/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/logorder/dtomappernode/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/logorder/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/logorder/requestsendernode/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/logorder/voidionode/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/logorder/voidoutputnode/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/mappingutils/arrayjsonkey/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/mappingutils/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/metadataconnectornode/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/metadataconnectornode/next/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/metadataprovider/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/method/!=(_:_:)/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/method/connect/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/method/delete/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/method/get/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/method/hash(into:)/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/method/hashvalue/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/method/head/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/method/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/method/init(rawvalue:)/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/method/options/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/method/patch/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/method/post/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/method/put/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/method/trace/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/modelinputnode/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/modelinputnode/init(next:)/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/modelinputnode/next/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/modelinputnode/objectname/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/multipartfileprovider/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/multipartmodel/files/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/multipartmodel/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/multipartmodel/raw/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/multiparturlrequest/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/node/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/node/objectname/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/nodedataresponse/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/noderesult/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/parameterencoding/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/parameters/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/parametersencoding/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/rawdecodable/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/rawdecodable/raw/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/rawencodable/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/rawencodable/raw/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/rawencodernode/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/rawencodernode/next/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/rawmappable/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/rawurlrequest/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/requestcreatornode/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/requestencodernode/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/requestencodingmodel/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/requestmodel/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/requestmodel/metadata/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/requestmodel/raw/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/requestrouternode/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/requestsendernode/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/responseprocessornode/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/routablerequestmodel/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/serverrequestsmanager/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/servicechainprovider/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/statestorable/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/swift/array/dto/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/swift/array/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/swift/array/todto()/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/swift/array/toraw()/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/swift/dictionary/dto/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/swift/dictionary/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/swift/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/swift/optional/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/swift/result/error/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/swift/result/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/swift/result/map(_:)/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/swift/result/value/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/swift/string/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/tokenrefreshernode/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/transportlayernode/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/transporturlrequest/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/urlcachereadernode/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/urlcachewriternode/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/urlchainbuilder/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/urlchainbuilder/route/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/urlchainconfigmodel/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/urldataresponse/data/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/urldataresponse/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/urlencoding/default/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/urlencoding/httpbody/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/urlencoding/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/urletagreadernode/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/urletagsavernode/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/urletagsavernode/next/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/urlnetworkrequest/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/urlprocessedresponse/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/urlqueryconfigmodel/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/urlqueryinjectornode/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/urlrouteerror/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/urlrouteprovider/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/voidinputnode/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/voidinputnode/next/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/voidionode/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/voidionode/objectname/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/voidionode/process()/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/nodekit/voidoutputnode/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/surfstudio/NodeKit/92be7d6c2128c9f681078b48fda84bdb8c4263ef/docs/favicon.ico -------------------------------------------------------------------------------- /docs/img/added-icon.832a5d2c.svg: -------------------------------------------------------------------------------- 1 | 10 | 11 | -------------------------------------------------------------------------------- /docs/img/deprecated-icon.7bf1740a.svg: -------------------------------------------------------------------------------- 1 | 10 | 11 | -------------------------------------------------------------------------------- /docs/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/metadata.json: -------------------------------------------------------------------------------- 1 | {"schemaVersion":{"major":0,"patch":0,"minor":1},"bundleDisplayName":"NodeKit","bundleIdentifier":"NodeKit"} -------------------------------------------------------------------------------- /xcresultparser/xcresultparser: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/surfstudio/NodeKit/92be7d6c2128c9f681078b48fda84bdb8c4263ef/xcresultparser/xcresultparser --------------------------------------------------------------------------------