From a560eae9f43d64f379cefcac3c338f86179e8cdf Mon Sep 17 00:00:00 2001 From: Eugene Kazaev Date: Wed, 27 Nov 2024 18:53:17 +0000 Subject: [PATCH] Reverted Swift concurrency for now --- Example/Podfile.lock | 4 +- .../Local Podspecs/RouteComposer.podspec.json | 8 +- Example/Pods/Manifest.lock | 4 +- Example/Pods/Pods.xcodeproj/project.pbxproj | 1034 +++++++++-------- .../RouteComposer/RouteComposer-Info.plist | 2 +- .../RouteComposer.xcodeproj/project.pbxproj | 4 +- .../ExampleAnalyticsSupport.swift | 1 - .../Configuration/ExampleConfiguration.swift | 3 - .../project.pbxproj | 6 +- .../CustomViewControllerDelegate.swift | 1 - .../project.pbxproj | 6 +- .../ImageDetailsControllerDelegate.swift | 1 - .../project.pbxproj | 10 +- .../ImagesControllerDelegate.swift | 1 - .../URLTranslators/ExampleURLTranslator.swift | 1 - .../ExampleUniversalLinksManager.swift | 4 - .../Cities/CitiesConfiguration.swift | 5 - .../Cities/CitiesDataModel.swift | 1 - .../AnyContextCheckingViewController.swift | 1 - .../InternalSearchConfiguration.swift | 4 - .../Login/LoginConfiguration.swift | 1 - .../Login/LoginViewController.swift | 4 +- .../CustomContainerFactory.swift | 1 - .../ImagesConfigurationWithLibrary.swift | 3 - .../ImagesWithoutLibraryConfiguration.swift | 3 - .../Product/ProductConfiguration.swift | 2 - .../View Controllers/SwiftUIContentView.swift | 2 +- .../WishList/WishListConfiguration.swift | 3 - Example/Tests/ActionTests.swift | 1 - Example/Tests/AssemblyTest.swift | 1 - Example/Tests/BoxTest.swift | 1 - Example/Tests/ContainerLocatorTests.swift | 1 - Example/Tests/ContainerTests.swift | 1 - Example/Tests/DestinationStepTests.swift | 1 - Example/Tests/ExtensionsTest.swift | 1 - Example/Tests/ExtrasTest.swift | 1 - Example/Tests/FactoryTest.swift | 1 - Example/Tests/FinderTests.swift | 1 - Example/Tests/MultiplexerTest.swift | 1 - Example/Tests/RouterTest.swift | 1 - RouteComposer.podspec | 4 +- RouteComposer/Classes/AbstractAction.swift | 1 - RouteComposer/Classes/AbstractFactory.swift | 3 - RouteComposer/Classes/Action.swift | 3 - .../UINavigationController+Action.swift | 3 - .../UISplitViewController+Action.swift | 3 - .../Actions/UITabBarController+Action.swift | 2 - .../Actions/UIViewController+Action.swift | 4 - .../Classes/Assemblies/ChainAssembly.swift | 2 - .../Assemblies/CompleteFactoryAssembly.swift | 1 - .../Helpers/ActionConnectingAssembly.swift | 1 - .../Helpers/ActionToStepIntegrator.swift | 1 - .../CompleteFactoryChainAssembly.swift | 1 - .../Helpers/ContainerStepChainAssembly.swift | 1 - .../Helpers/GenericStepAssembly.swift | 1 - .../Helpers/InterceptableStepAssembling.swift | 1 - .../Helpers/LastStepInChainAssembly.swift | 1 - .../Helpers/StepChainAssembly.swift | 1 - .../Classes/Assemblies/StepAssembly.swift | 5 - .../Classes/Assemblies/SwitchAssembly.swift | 4 - RouteComposer/Classes/ChildCoordinator.swift | 1 - RouteComposer/Classes/ContainerAdapter.swift | 2 - .../Classes/ContainerAdapterLocator.swift | 1 - RouteComposer/Classes/ContainerFactory.swift | 5 - .../Classes/ContainerViewController.swift | 1 - RouteComposer/Classes/ContextTask.swift | 1 - .../Classes/ContextTransformer.swift | 1 - .../Classes/Extensions/Array+Extension.swift | 1 - .../UIViewController+Extension.swift | 1 - .../Classes/Extra/CATransaction+Action.swift | 2 - .../Classes/Extra/ContextAccepting.swift | 4 - .../Classes/Extra/ContextChecking.swift | 1 - RouteComposer/Classes/Extra/Destination.swift | 1 - RouteComposer/Classes/Extra/Dismissible.swift | 14 +- .../Classes/Extra/DispatchQueue+Action.swift | 2 - .../Extra/SwiftUI/ContextAcceptingView.swift | 2 - .../Classes/Factories/CompleteFactory.swift | 2 +- RouteComposer/Classes/Factory.swift | 5 - RouteComposer/Classes/Finder.swift | 4 - .../Stack Iterator/StackIterator.swift | 1 - .../Stack Iterator/WindowProvider.swift | 1 - .../Finders/StackIteratingFinder.swift | 2 - .../Classes/InterceptableRouter.swift | 1 - RouteComposer/Classes/PostRoutingTask.swift | 3 - .../Classes/RouteComposerDefaults.swift | 27 +- RouteComposer/Classes/Router.swift | 61 - .../Classes/Router/DefaultRouter.swift | 6 +- .../DefaultStackPresentationHandler.swift | 4 +- .../Helpers/StackPresentationHandler.swift | 1 - .../Internal/Array+PrivateExtension.swift | 1 - .../Classes/Router/Internal/BaseStep.swift | 4 +- .../Router/Internal/ChainableStep.swift | 1 - .../Internal/DefaultRouter+Extension.swift | 11 +- .../Router/Internal/InterceptableStep.swift | 1 - .../Router/Internal/MainThreadChecking.swift | 27 + .../Router/Internal/PerformableStep.swift | 1 - .../PostponedIntegrationFactory.swift | 3 +- .../Classes/Router/Internal/RoutingStep.swift | 1 - .../Router/Internal/SwitcherStep.swift | 2 - .../Multiplexers/ContextTaskMultiplexer.swift | 2 +- .../Multiplexers/InterceptorMultiplexer.swift | 4 +- .../PostRoutingTaskMultiplexer.swift | 2 +- .../Router/Type Erasure/AnyAction.swift | 2 - .../Router/Type Erasure/AnyContext.swift | 1 - .../Router/Type Erasure/AnyContextTask.swift | 1 - .../Type Erasure/AnyContextTransformer.swift | 1 - .../Router/Type Erasure/AnyFactory.swift | 1 - .../Router/Type Erasure/AnyFinder.swift | 1 - .../Type Erasure/AnyPostRoutingTask.swift | 1 - .../Type Erasure/AnyRoutingInterceptor.swift | 1 - .../Router/Type Erasure/Boxes/ActionBox.swift | 4 +- .../Type Erasure/Boxes/AnyFactoryBox.swift | 8 +- .../Boxes/ContainerActionBox.swift | 4 +- .../Boxes/ContainerFactoryBox.swift | 4 +- .../Type Erasure/Boxes/ContextTaskBox.swift | 3 +- .../Type Erasure/Boxes/FactoryBox.swift | 4 +- .../Router/Type Erasure/Boxes/FinderBox.swift | 2 +- .../Boxes/PostRoutingTaskBox.swift | 3 +- .../Boxes/RoutingInterceptorBox.swift | 4 +- RouteComposer/Classes/RoutingError.swift | 6 +- .../Classes/RoutingInterceptable.swift | 2 - .../Classes/RoutingInterceptor.swift | 5 - RouteComposer/Classes/SearchOptions.swift | 2 +- RouteComposer/Classes/Steps/GeneralStep.swift | 6 - 124 files changed, 636 insertions(+), 823 deletions(-) create mode 100644 RouteComposer/Classes/Router/Internal/MainThreadChecking.swift diff --git a/Example/Podfile.lock b/Example/Podfile.lock index 5c08f86b3..6fc949241 100644 --- a/Example/Podfile.lock +++ b/Example/Podfile.lock @@ -1,5 +1,5 @@ PODS: - - RouteComposer (2.11.0) + - RouteComposer (2.11.1) - SwiftFormat/CLI (0.43.5) DEPENDENCIES: @@ -15,7 +15,7 @@ EXTERNAL SOURCES: :path: "../" SPEC CHECKSUMS: - RouteComposer: a3ab59db2276896b7697029aa4c2275e09779a58 + RouteComposer: eb0d97150affb8d5e4a220cd7281b9382060e2f8 SwiftFormat: 352ea545e3e13cfd7a449e621c1f3c2e244d4906 PODFILE CHECKSUM: 60fdfd081ebcb6e88fc9f1261e0b0e989ba665c8 diff --git a/Example/Pods/Local Podspecs/RouteComposer.podspec.json b/Example/Pods/Local Podspecs/RouteComposer.podspec.json index 9ab4bfd2f..1f0b7a3c9 100644 --- a/Example/Pods/Local Podspecs/RouteComposer.podspec.json +++ b/Example/Pods/Local Podspecs/RouteComposer.podspec.json @@ -1,8 +1,8 @@ { "name": "RouteComposer", - "version": "2.11.0", + "version": "2.11.1", "summary": "Protocol oriented library that helps to handle view controllers composition, navigation and deep linking tasks.", - "swift_versions": "6.0", + "swift_versions": "5.10", "description": "RouteComposer is the protocol oriented, Cocoa UI abstractions based library that helps to handle view controllers composition, navigation\nand deep linking tasks in the iOS application. Can be used as the universal replacement for the Coordinator pattern.", "homepage": "https://github.com/ekazaev/route-composer", "license": { @@ -14,12 +14,12 @@ }, "source": { "git": "https://github.com/ekazaev/route-composer.git", - "tag": "2.11.0" + "tag": "2.11.1" }, "platforms": { "ios": "15.0" }, "source_files": "RouteComposer/Classes/**/*.*", "frameworks": "UIKit", - "swift_version": "6.0" + "swift_version": "5.10" } diff --git a/Example/Pods/Manifest.lock b/Example/Pods/Manifest.lock index 5c08f86b3..6fc949241 100644 --- a/Example/Pods/Manifest.lock +++ b/Example/Pods/Manifest.lock @@ -1,5 +1,5 @@ PODS: - - RouteComposer (2.11.0) + - RouteComposer (2.11.1) - SwiftFormat/CLI (0.43.5) DEPENDENCIES: @@ -15,7 +15,7 @@ EXTERNAL SOURCES: :path: "../" SPEC CHECKSUMS: - RouteComposer: a3ab59db2276896b7697029aa4c2275e09779a58 + RouteComposer: eb0d97150affb8d5e4a220cd7281b9382060e2f8 SwiftFormat: 352ea545e3e13cfd7a449e621c1f3c2e244d4906 PODFILE CHECKSUM: 60fdfd081ebcb6e88fc9f1261e0b0e989ba665c8 diff --git a/Example/Pods/Pods.xcodeproj/project.pbxproj b/Example/Pods/Pods.xcodeproj/project.pbxproj index 3be3f2814..104738a7e 100644 --- a/Example/Pods/Pods.xcodeproj/project.pbxproj +++ b/Example/Pods/Pods.xcodeproj/project.pbxproj @@ -19,194 +19,195 @@ /* End PBXAggregateTarget section */ /* Begin PBXBuildFile section */ - 033C85DE7877475A635C2702F80929A2 /* ContainerFactory.swift in Sources */ = {isa = PBXBuildFile; fileRef = 322D37FEC05A17E5D121387101B057D2 /* ContainerFactory.swift */; }; - 0412C947D4BA6ABFCA775DD08F79F15C /* SingleStep.swift in Sources */ = {isa = PBXBuildFile; fileRef = 56528D225F757E1D46BE2A7BB330C477 /* SingleStep.swift */; }; - 05C7E2F9D61BABF31A636B846FF0FEBF /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D245E0514AAC1A2B9A6D5EA2F383E90F /* UIKit.framework */; }; - 062D581D12111A00987135B08FBC468A /* SplitControllerAdapter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3240B7716ADDC93D0D79C3ACF7F1324D /* SplitControllerAdapter.swift */; }; - 08A6963A0038DF59EB90DE4C0CAE018C /* RoutingInterceptor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 98FF8BBC39CDF50D4A3938D2FF7B41F2 /* RoutingInterceptor.swift */; }; - 0B0ED245330885100C984B134970EE63 /* InlineContextTransformer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 92659B955347606896D58D2C5EE93DC6 /* InlineContextTransformer.swift */; }; - 0B265777513EB94F0C97AD08F7E79457 /* BaseStep.swift in Sources */ = {isa = PBXBuildFile; fileRef = 896D22EBBC4EE6D8F7628FEE764305DE /* BaseStep.swift */; }; - 0FD839D94EF6BB79545B90DB547C8A5A /* PostRoutingTaskMultiplexer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 39FE400435D02DA5E16F95375EDF6B6E /* PostRoutingTaskMultiplexer.swift */; }; - 1003B87FDD07AF110BA6551AD60C2ACA /* ContainerStepChainAssembly.swift in Sources */ = {isa = PBXBuildFile; fileRef = 44CDF8E45EF8B199E90C1FD16E3D3559 /* ContainerStepChainAssembly.swift */; }; - 1206CB7634C27E6C5CE1FA5C30D4CE64 /* StackPresentationHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 31394FFBC43F00AAB285ED52950F35ED /* StackPresentationHandler.swift */; }; - 140CDDB37873DC338C438A40F6337DB6 /* ContextSettingTask.swift in Sources */ = {isa = PBXBuildFile; fileRef = D75D3622FE8C292BC2B63ECC2EFEA82A /* ContextSettingTask.swift */; }; - 1568666D5380901297503F00C64D662D /* SplitControllerFactory.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3C91EDE9D574B26FCF16B326463A85FC /* SplitControllerFactory.swift */; }; - 17ABF96E624A74D64ED760466B5E7A42 /* ContainerActionBox.swift in Sources */ = {isa = PBXBuildFile; fileRef = D65057DA4C4C7CAE32DAB7A6CDC19076 /* ContainerActionBox.swift */; }; - 17EF4859DC2FBFB01B0FA4E6837413BF /* ContextTransformer.swift in Sources */ = {isa = PBXBuildFile; fileRef = A179681C57F9C9B487F050833D6A3F17 /* ContextTransformer.swift */; }; - 19571EF36C900EB3DF4056475B05043D /* DefaultRouter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2D71C11E35475D5F67DBFCCAFC8DFB6F /* DefaultRouter.swift */; }; - 1AB084720EB81932D301EABA84890947 /* ContainerViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = F1BC0666691D8926DAFDE13D1E227559 /* ContainerViewController.swift */; }; - 1AFF0771A6A9F6FED87D485DFD74BE79 /* AnyRoutingInterceptor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 39BD54703E73B39EA2374F0AC1BFD1EB /* AnyRoutingInterceptor.swift */; }; + 00A0F2E4F676550D40D4CA1B53A95803 /* ContextTransformerBox.swift in Sources */ = {isa = PBXBuildFile; fileRef = 45BCEBEE98F293784EC9211EC56E45BC /* ContextTransformerBox.swift */; }; + 02F2EC6FE87A3C205F40B2F629EB3676 /* ContextTransformer.swift in Sources */ = {isa = PBXBuildFile; fileRef = A179681C57F9C9B487F050833D6A3F17 /* ContextTransformer.swift */; }; + 0463739C5337DDF2D65AB721E4A5C455 /* FactoryBox.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41D7C74B607B59608399F9AA5CC84624 /* FactoryBox.swift */; }; + 04E030265F2A5B9AD8AC391DD963AE08 /* CompleteFactory.swift in Sources */ = {isa = PBXBuildFile; fileRef = C546EDF8DB5F1D323551C30DB0DB74ED /* CompleteFactory.swift */; }; + 04F81EEA653618A190B9A5A93534D62F /* RoutingInterceptorBox.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC1A9432B07E0C2DBFC1772C91682106 /* RoutingInterceptorBox.swift */; }; + 04FE4B3CE352A6A01A4006A91EA3A041 /* ContextTaskMultiplexer.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4985F00ACE336CB9C089FC3B224CEBD /* ContextTaskMultiplexer.swift */; }; + 0762315CDB5F6D985DFEAD0E906D7913 /* Finder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 53B29C76BB0A8645DCBCBC0B49982B63 /* Finder.swift */; }; + 07E127F123E34E4B3D9D27201FFB0748 /* InterceptableStep.swift in Sources */ = {isa = PBXBuildFile; fileRef = 66A8757C0F134C3AE8C6D90C76C2AFF6 /* InterceptableStep.swift */; }; + 07F452392848998ED103D00286BD75A2 /* ActionToStepIntegrator.swift in Sources */ = {isa = PBXBuildFile; fileRef = D7EFAB68783DEC4BA50F40492D257185 /* ActionToStepIntegrator.swift */; }; + 089627591216DFDB094AFF2A87A46277 /* FinderFactory.swift in Sources */ = {isa = PBXBuildFile; fileRef = CFCA30F94C09573B5B8FED3BE9FB55AB /* FinderFactory.swift */; }; + 096B155ED83350BD0BC9AE8445EC8FC1 /* UIHostingControllerWithContextFactory.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3D328D0FC34381474A045F52CFE30A3B /* UIHostingControllerWithContextFactory.swift */; }; + 0DA8FABC91CD6A2728B518670FD8E987 /* CompleteFactoryChainAssembly.swift in Sources */ = {isa = PBXBuildFile; fileRef = 87FABC2B2073509F83B626B772E5681E /* CompleteFactoryChainAssembly.swift */; }; + 12DDAEC113C2A334E8B5D71511D72412 /* PostRoutingTask.swift in Sources */ = {isa = PBXBuildFile; fileRef = C76C335D9931574E7A01025D7BB146E0 /* PostRoutingTask.swift */; }; + 13A1C98C80CEFB79EA42D90A12CA3888 /* UIWindow+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = C3F2AE4A7A362385357150A3C4F948EF /* UIWindow+Extension.swift */; }; + 1427FB89C0F245E5F5D1B3408A640E4E /* ContextChecking.swift in Sources */ = {isa = PBXBuildFile; fileRef = B423080658896A5C8C00CF9A9DBE67DC /* ContextChecking.swift */; }; + 1A54CF4E0CB1A77F1F8C5C5C5A322662 /* InstanceFinder.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8BF0FECBE89CC6B17E921963B03ADED /* InstanceFinder.swift */; }; + 1A7F7434A5E146A0687E9F99A985E11F /* GenericStepAssembly.swift in Sources */ = {isa = PBXBuildFile; fileRef = 32C190845F465CC4FD791E1B126B996B /* GenericStepAssembly.swift */; }; 1F0E50EBA2D455A036FD3124253CF2B4 /* Pods-RouteComposer_Example-RouteComposer_Tests-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 5166FEBDE14CCEFFE64FB921BED8E535 /* Pods-RouteComposer_Example-RouteComposer_Tests-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1F2F542D7AC15229A87BBDF4DA59EB0F /* RouteComposer-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = B3FB2DC73657A87D85DD4CA362EF0A11 /* RouteComposer-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 23837F82F9E15038BA7B68D45DBEE2A9 /* ActionBox.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBE73FAEEC276D3E65B80C2B72A4F9FD /* ActionBox.swift */; }; - 23CEFEA8EA9CA09DA400B8BD0DF49A56 /* UIHostingControllerWithContextFinder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FC0917D78FE0A65CC278627F0A2143B /* UIHostingControllerWithContextFinder.swift */; }; - 249F0C006946BBD717616678C027342B /* TabBarControllerAdapter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1032EB8A40FD36A4247F6CAD0EAD6EF2 /* TabBarControllerAdapter.swift */; }; - 256CE5BDEFEBD553ED7F0C1AE6480B00 /* RoutingInterceptorBox.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1A3E1AFBE1F1910B398D78B6360C4C64 /* RoutingInterceptorBox.swift */; }; - 25D8FAF484C73AD6981E8349C671AC67 /* Destination.swift in Sources */ = {isa = PBXBuildFile; fileRef = 05FC48DF14850C17393752FB20C7821F /* Destination.swift */; }; - 261148B0C87BDDCAC30712F9D4AEB800 /* TabBarViewController+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8B6625CD569B7711BBA221682E0C8D6F /* TabBarViewController+Extension.swift */; }; - 28535E649821534DC604967D93F6644E /* ContextAccepting.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41AC53EA0E7FE82DA4BF64A9CBB9F516 /* ContextAccepting.swift */; }; - 290CC4D7B8C76170AEFFDF7AF9742CB0 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = EAB6F611E86A4758835A715E4B4184F6 /* Foundation.framework */; }; - 2B42BDCA8EEB6EA0702B5FEE69A6B137 /* ChainableStep.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8D13BDA8B411A621396E471CAA5BBD20 /* ChainableStep.swift */; }; - 2EA844C62DC25A0CC61841836FC230B1 /* ContextTransformerBox.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5C42271CD302C87CF5852F877AC3482B /* ContextTransformerBox.swift */; }; - 2F31587BA1173C1A08AA5927F73C1EFD /* ClassWithContextFinder.swift in Sources */ = {isa = PBXBuildFile; fileRef = B4E41ABBF7B085F5A34519FF8621EBD8 /* ClassWithContextFinder.swift */; }; - 32D4E16EA38CF435B5F68647EBAC8456 /* GenericStepAssembly.swift in Sources */ = {isa = PBXBuildFile; fileRef = 32C190845F465CC4FD791E1B126B996B /* GenericStepAssembly.swift */; }; - 346843664209662E92BAFB7985D369AB /* NavigationControllerFactory.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06591E90E6C32E1F32589679A8E2EB26 /* NavigationControllerFactory.swift */; }; - 34A37352CC994BD044823BB97C382B3A /* LastStepInChainAssembly.swift in Sources */ = {isa = PBXBuildFile; fileRef = D63AEFF1A7C600BA9BF62FAA9C51E0AB /* LastStepInChainAssembly.swift */; }; - 35B3C79AB0A7D8001C3CD436C8272B92 /* NilEntity.swift in Sources */ = {isa = PBXBuildFile; fileRef = FD33108E293A1A7D3A703537BD28F640 /* NilEntity.swift */; }; - 37964A26CD41B605F7C35F065276D388 /* RoutingStep.swift in Sources */ = {isa = PBXBuildFile; fileRef = 711FE9D158F43DD215197EE474D8C9A4 /* RoutingStep.swift */; }; - 37F0E4AFB238E6D2DC79D156D4CB53BC /* FactoryBox.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7F1C8E7B9205BF521055470C880BD829 /* FactoryBox.swift */; }; - 3A8A08FAD897446CFF394F6882076DA4 /* NavigationDelayInterceptor.swift in Sources */ = {isa = PBXBuildFile; fileRef = C6878267C7834A9415464C2A4189E446 /* NavigationDelayInterceptor.swift */; }; - 3D29BEBFAE4B4E5A1134D5DEA364B32B /* ClassFactory.swift in Sources */ = {isa = PBXBuildFile; fileRef = A61828AAB0A9B9332590508B02C7A1D8 /* ClassFactory.swift */; }; - 3D866A201E12C4870334091F95294C7F /* GlobalInterceptorRouter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6CF0B8DA452E43E6697AAB770A79A80D /* GlobalInterceptorRouter.swift */; }; - 405DBCA5D4C31236EBA7D721930AD5FB /* InPlaceTransformingAnyContext.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5CE18F6B586289F5F61C8345A3BDEECC /* InPlaceTransformingAnyContext.swift */; }; + 1F658431E667BDBAC907A1CFDD1BCBF7 /* NilContextTransformer.swift in Sources */ = {isa = PBXBuildFile; fileRef = B10643639E190902EB6939DC889BFD89 /* NilContextTransformer.swift */; }; + 1FD6B74AEE85F64F56EBFEDF26AAE959 /* AbstractAction.swift in Sources */ = {isa = PBXBuildFile; fileRef = 10DF77C06E948252EEF41F5C73E36114 /* AbstractAction.swift */; }; + 2421B1CE2B0C868A408542FF8974198A /* ContextTaskBox.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1482FAF8E4C07AA15D346BB30873976 /* ContextTaskBox.swift */; }; + 24992FE2A3AF3DF1D8493D792BC326EC /* AnyActionBox.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3924DAA5BF3F277A956A5D7E78483997 /* AnyActionBox.swift */; }; + 27E072C304715D181C94E882FFC73E04 /* NavigationControllerFactory.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06591E90E6C32E1F32589679A8E2EB26 /* NavigationControllerFactory.swift */; }; + 28601032DB4113DFE4F0B201F079EBAC /* SearchOptions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8D6E1412527779DD0543504F9CF49A3E /* SearchOptions.swift */; }; + 29EED4B704406680615124B9BC8A9D5D /* MainThreadChecking.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3D84935624F93C414FF483764509A84E /* MainThreadChecking.swift */; }; + 2A132EDC80AB4E51BE46D79D26A60C3D /* BaseEntitiesCollector.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0AD8E2F718A44C7EB37BEC0433C2CFEB /* BaseEntitiesCollector.swift */; }; + 2A5F0CDB0EA5E1116BD70DA5FA54C2A7 /* SingleContainerStep.swift in Sources */ = {isa = PBXBuildFile; fileRef = 386D704BF6646484D97CC9DEF2C1F01E /* SingleContainerStep.swift */; }; + 2AD304E72EC9450B684AB36F645EBB40 /* StepChainAssembly.swift in Sources */ = {isa = PBXBuildFile; fileRef = 191426088E3B620CCB2668F8F18174FA /* StepChainAssembly.swift */; }; + 2B1FAAB50062D29F9A55590D192DD996 /* AnyContextTask.swift in Sources */ = {isa = PBXBuildFile; fileRef = B7E959DF8D9DF090DED0A44FD4983AA0 /* AnyContextTask.swift */; }; + 2B8A9D815DCA30F60117810589DE55F0 /* UISplitViewController+Action.swift in Sources */ = {isa = PBXBuildFile; fileRef = 860B922232F021A75DF611D4EA4DEE8B /* UISplitViewController+Action.swift */; }; + 2D1B1D679509B1FFBB4DB86471779CDF /* LogMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2FD43EF75F8F44074C17989A424797B3 /* LogMessage.swift */; }; + 2DCBB4AD6278B769CA0A10C3463B6A65 /* InterceptableStepAssembling.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8ABDBD534188F18E82AC374D056103D /* InterceptableStepAssembling.swift */; }; + 2F1083B849D05E379F49640923AF0EAB /* GlobalInterceptorRouter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6CF0B8DA452E43E6697AAB770A79A80D /* GlobalInterceptorRouter.swift */; }; + 31924319FD398EF8759CA88584A8CF24 /* ClassFinder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5561DE88FFFA454CC9F92E6825A59E5A /* ClassFinder.swift */; }; + 3204C8BA6EA2FD65CB34ACD435074023 /* DispatchQueue+Action.swift in Sources */ = {isa = PBXBuildFile; fileRef = 77063D76C627660EB042B79F6B433B2B /* DispatchQueue+Action.swift */; }; + 32D2997FA5771420CB43A3733F33A0AA /* AbstractFactory.swift in Sources */ = {isa = PBXBuildFile; fileRef = D5EE744BAF039E3C2699DD314259C198 /* AbstractFactory.swift */; }; + 33E62783F14FDDB0B9297B42A508AB34 /* DefaultStackPresentationHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 49BC5D0EDDABB9509926F0ADA1040159 /* DefaultStackPresentationHandler.swift */; }; + 35FAC31CC608FAAF1AD54C62C1834AE8 /* ContextTask.swift in Sources */ = {isa = PBXBuildFile; fileRef = DF5C4FBB886F3E06ED54FF8EA75C825B /* ContextTask.swift */; }; + 361865ACB31023D9828FFE4677FD72C7 /* RoutingError.swift in Sources */ = {isa = PBXBuildFile; fileRef = 51022FFB23ED5FEA7976221E1E23D648 /* RoutingError.swift */; }; + 3640B32FA6EF4A4D03FB33874537A8BE /* ActionConnectingAssembly.swift in Sources */ = {isa = PBXBuildFile; fileRef = 46D782A1181D9FB5CF38B0359B6FB268 /* ActionConnectingAssembly.swift */; }; + 376F50DE565AB7875248103F2A593EE8 /* WindowProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8FB933EFED78D0E414FFB7EF9A9A05E5 /* WindowProvider.swift */; }; + 37BD9C4584063B43FB53E3620A5D0276 /* StackIterator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4F14E31BC3E7727AA523153C84D848E3 /* StackIterator.swift */; }; + 3889C0E85610046F7D0FF5DF1D483285 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = EAB6F611E86A4758835A715E4B4184F6 /* Foundation.framework */; }; + 3AC2092C4578BBBA8BFC7942A112202E /* AnyContextTransformer.swift in Sources */ = {isa = PBXBuildFile; fileRef = D3D2DB70044CC56BD18D8B042754DC3D /* AnyContextTransformer.swift */; }; + 3C85796C81E112121BD6D554F2BF3DFC /* InPlaceTransformingAnyContext.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8F64CE3F5A2D44540E57EAF96EFFC4B0 /* InPlaceTransformingAnyContext.swift */; }; + 3FD32CED525F4135398D0F6601569998 /* UITabBarController+Action.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1B199352BA596417A73EDF7C911A1978 /* UITabBarController+Action.swift */; }; 417B9AF0E472D67C9353D15BAA1822DD /* Pods-RouteComposer_Example-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BDE70BC45180921F71F4FE199D80897 /* Pods-RouteComposer_Example-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 418D74629CA985A8EBFB1C13046A2F12 /* Array+PrivateExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = F93276852BC75BA8856543DF99C40020 /* Array+PrivateExtension.swift */; }; - 41DD9AE03CAC47F9193032A6DD48DEA3 /* AnyFactoryBox.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7159CE4888CEBE725DAB5FF7E41AD09 /* AnyFactoryBox.swift */; }; - 420C45782ECBB4E1F6F656339D3E4246 /* ActionConnectingAssembly.swift in Sources */ = {isa = PBXBuildFile; fileRef = 46D782A1181D9FB5CF38B0359B6FB268 /* ActionConnectingAssembly.swift */; }; - 4328A568CAC2CE7A49646CF686F5E450 /* UIViewController+Action.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6D965304546CC4978C32E4E4AC395670 /* UIViewController+Action.swift */; }; - 435499A1C05DA687F1BDF17B8B705BC1 /* ContextTaskBox.swift in Sources */ = {isa = PBXBuildFile; fileRef = 67CB47D31FB635259614667647C09391 /* ContextTaskBox.swift */; }; - 43A3B67231FE5E781198C172D0EED593 /* ChainAssembly.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA648B3FD173F797EF2E96B4675919B9 /* ChainAssembly.swift */; }; - 44AC641E06124F278A5A377A8248880B /* DetailsNavigationFinder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 191C934554800CA942573BACC6365126 /* DetailsNavigationFinder.swift */; }; - 45497629722DC02696E7476A5FDA5F73 /* BaseEntitiesCollector.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0AD8E2F718A44C7EB37BEC0433C2CFEB /* BaseEntitiesCollector.swift */; }; - 47ACCBFD9855E53E0EE980D1F7374BD7 /* DismissalMethodProvidingContextTask.swift in Sources */ = {isa = PBXBuildFile; fileRef = 30B7D90B13B7A2D22A3934C092F4D959 /* DismissalMethodProvidingContextTask.swift */; }; - 4B89717076BD01FFAABCC5B231218BA5 /* ContextInstantiatable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5D78F4804907575B11B33334D4660800 /* ContextInstantiatable.swift */; }; - 4BF00B1CA548065F950D40DB8C0AFB9E /* RouteComposerDefaults.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0F452135266B79E1353CB59A614968B6 /* RouteComposerDefaults.swift */; }; - 4D690C8C3B9950FE5C406A907387A4BF /* SearchOptions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8D6E1412527779DD0543504F9CF49A3E /* SearchOptions.swift */; }; - 4F366F1BFCB94B79BBE695A5B92875F0 /* DefaultLogger+LogLevel.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C6E4B0B629D9870A9AD356210B1428 /* DefaultLogger+LogLevel.swift */; }; - 4FD5B7BDB839BE981D2FBC94555CDE62 /* SwitcherStep.swift in Sources */ = {isa = PBXBuildFile; fileRef = B3AE081F6F9CA63E712F5113C929673C /* SwitcherStep.swift */; }; - 50FA51B388D7879322E4081F5C8C6E19 /* SingleContainerStep.swift in Sources */ = {isa = PBXBuildFile; fileRef = 386D704BF6646484D97CC9DEF2C1F01E /* SingleContainerStep.swift */; }; - 51698F1F2B0B5D86A1E0CC90F30BBB0B /* RoutingResult.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7858030AD8171DE11965461E63666275 /* RoutingResult.swift */; }; - 52CBA891032A4BB0D2A18FAA0968151A /* NavigationControllerAdapter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35431D17A45097CB773DB2F6241EE340 /* NavigationControllerAdapter.swift */; }; - 58EA2BA31844F8CEE00B203F6712F430 /* PostponedIntegrationFactory.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0223EFCCA3A006ADB1B99F4C09707F4F /* PostponedIntegrationFactory.swift */; }; - 599AD7AC2BAB4BA86DB347758B5A9D69 /* DefaultStackIterator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7C99A80D51C6F45C3D1E3A018E08E716 /* DefaultStackIterator.swift */; }; - 5A93BA56519FA99E1E46FA30D28EE349 /* ContextTask.swift in Sources */ = {isa = PBXBuildFile; fileRef = DF5C4FBB886F3E06ED54FF8EA75C825B /* ContextTask.swift */; }; - 5BD0CDAB878B3B51087A6FA19E2FCE86 /* CompleteFactoryAssembly.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4A2A6B75089F4433E487D79F027F926A /* CompleteFactoryAssembly.swift */; }; + 4196EB7DE63183B3EBF829B4D261AF3B /* AnyRoutingInterceptor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5709AAC37DE1F6E86E7B8143F83F0171 /* AnyRoutingInterceptor.swift */; }; + 423296721D71C2C5FAD85359C1875A00 /* RouteComposerDefaults.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0F452135266B79E1353CB59A614968B6 /* RouteComposerDefaults.swift */; }; + 441F21CB586CF6231AFD193C9682C9C1 /* AnyFactory.swift in Sources */ = {isa = PBXBuildFile; fileRef = D7ED3EFA7ADEAB74F88FD2B2688D8A1F /* AnyFactory.swift */; }; + 4C2B15471FA5B05CFEAC8E0D0C38296E /* CustomWindowProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 951D76F20C7D4995EEDF992E6717BBED /* CustomWindowProvider.swift */; }; + 4F5E17A20A7F9E4B95ED77D4A64010E7 /* RouteComposer-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = B3FB2DC73657A87D85DD4CA362EF0A11 /* RouteComposer-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 4FAD96DED643D33FCE706649CD6F84C1 /* DefaultRouter.swift in Sources */ = {isa = PBXBuildFile; fileRef = CF14CDB7913A27C3AA5EFDD539A80D0B /* DefaultRouter.swift */; }; + 541B6FAD0948158ED58F24F0C73B7859 /* DetailsNavigationFinder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 191C934554800CA942573BACC6365126 /* DetailsNavigationFinder.swift */; }; + 55B33F1470E7DA441943F3BB6C74AE09 /* CustomContainerViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = CA825C609CDFFE44D784888F15655E71 /* CustomContainerViewController.swift */; }; + 569561DA9838E9F5791115428D6E7AE5 /* LastStepInChainAssembly.swift in Sources */ = {isa = PBXBuildFile; fileRef = D63AEFF1A7C600BA9BF62FAA9C51E0AB /* LastStepInChainAssembly.swift */; }; + 580977F45C78A9D4369E4492E6AD876B /* ContextAcceptingView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 76D1D3A6A4C2C1B3A25F40B4908B94CF /* ContextAcceptingView.swift */; }; + 581C2B8F32F150ED33F477F9EF9FBE0E /* ContainerFactory.swift in Sources */ = {isa = PBXBuildFile; fileRef = 322D37FEC05A17E5D121387101B057D2 /* ContainerFactory.swift */; }; + 58203A0697626C7C91B6011407532DFF /* NavigationControllerStep.swift in Sources */ = {isa = PBXBuildFile; fileRef = C23607F3140268A50ABC0A208FADB008 /* NavigationControllerStep.swift */; }; + 5A8CA02B29363A5DDBB9335C8343A2E6 /* TabBarControllerStep.swift in Sources */ = {isa = PBXBuildFile; fileRef = B0B3AA43806AE4AE56FBAADBBAADC15A /* TabBarControllerStep.swift */; }; 5BF7144A0889BD1AA2AAEF6194038B01 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = EAB6F611E86A4758835A715E4B4184F6 /* Foundation.framework */; }; - 5DCFB388B14F0D24243E4CBA136C9A67 /* ContextAcceptingView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 76D1D3A6A4C2C1B3A25F40B4908B94CF /* ContextAcceptingView.swift */; }; - 615394097C26D32CF55017007B92B281 /* StackIteratingFinder.swift in Sources */ = {isa = PBXBuildFile; fileRef = A8C29EED59AB0D643256536E41D2B841 /* StackIteratingFinder.swift */; }; - 61B357D856D19DDA9A74450DDD5FCD23 /* PerformableStepResult.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8DE6FB412C4838C33B3A017A2D7DBB08 /* PerformableStepResult.swift */; }; - 62D995EE39AE748D0DE36CE37CD2646A /* Router+Destination.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0B065B3992C1DC07D79AF3ECF4D66636 /* Router+Destination.swift */; }; - 672C2C292AFA75A0526724BA7F30C160 /* UITabBarController+Action.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1B199352BA596417A73EDF7C911A1978 /* UITabBarController+Action.swift */; }; - 6A570191BCF27EB2D32C1373C72C010D /* Factory.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2D8DBEE37DEFC099CD5230F1B3B202EE /* Factory.swift */; }; + 5CC3322F40F16AEB1489B62AE5FE5872 /* DefaultLogger+LogLevel.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C6E4B0B629D9870A9AD356210B1428 /* DefaultLogger+LogLevel.swift */; }; + 5F798B78BBA78AA3E43232D0E32CF506 /* RouteComposer-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 330EAADAEBFA16E84BD5E254F943079B /* RouteComposer-dummy.m */; }; + 612C14B981D002EA93AA74F906D8BE47 /* RoutingInterceptable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 50105194B58BB6A0AC251AD87E7EC77F /* RoutingInterceptable.swift */; }; + 617B797776FE0197495462E0317E4B01 /* InterceptableRouter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 576B81345A91C408C361442E90A125A4 /* InterceptableRouter.swift */; }; + 651D3815D97518AA898EB09C7DD3A726 /* ConcreteContainerAdapter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7A031900E8B71377AF8594158D61277F /* ConcreteContainerAdapter.swift */; }; + 6529671EF018466DF42757A56C585DDB /* AnyAction.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2D41C46992DAFF3F51E71C5F29859BDA /* AnyAction.swift */; }; + 653C887D2BC832FE5C4FDA5C8D6CE509 /* StackPresentationHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2A2FC2816C78E4832C5721B5A3B71CC7 /* StackPresentationHandler.swift */; }; + 66A78E5358DE3A7503C3EB34ADD0CDE5 /* InlineStackIteratingFinder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 03FDE39C216B92EB7E230CE2804C8A0D /* InlineStackIteratingFinder.swift */; }; + 67352E554C1402AC410EFA1FC241D494 /* Array+PrivateExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 717EA39637DDA2EE7EC3EC4FC792C0F3 /* Array+PrivateExtension.swift */; }; + 67FF6C658BE36E93B47EDBBF4C3209CA /* RoutingResult.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7858030AD8171DE11965461E63666275 /* RoutingResult.swift */; }; + 683FFDC1173FD4BA64AD91347EBC6186 /* NilEntity.swift in Sources */ = {isa = PBXBuildFile; fileRef = B2867E7EC79FC1697165B70B500AC5DA /* NilEntity.swift */; }; + 69A3C2FFB8618ED70E62C3E5F08AC64B /* InterceptorMultiplexer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5DA971B8CD39DEB07C26EA8A6B4E164C /* InterceptorMultiplexer.swift */; }; + 6A0719918A726AF19C8C32B99BBEAD10 /* ContextAccepting.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41AC53EA0E7FE82DA4BF64A9CBB9F516 /* ContextAccepting.swift */; }; 6C303B3949BDA597451EB4672F63FE46 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = EAB6F611E86A4758835A715E4B4184F6 /* Foundation.framework */; }; - 6CB5DBCEF67757344605EB97DED8D273 /* ContainerFactoryBox.swift in Sources */ = {isa = PBXBuildFile; fileRef = A46F3208DCA5034BACA938B851087564 /* ContainerFactoryBox.swift */; }; - 6D2FFD68D6C59EFE62901BD03B0ABEB7 /* ContextChecking.swift in Sources */ = {isa = PBXBuildFile; fileRef = B423080658896A5C8C00CF9A9DBE67DC /* ContextChecking.swift */; }; - 6D4E96D1722F5920C67C905A1D7F9B69 /* Action.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5B664E883AC2B0AF5FC41863FDD9DBA8 /* Action.swift */; }; - 6D68C5C1082FD23FEEA2DF76DF0BFF38 /* UIViewController+PrivateExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7B922AC3644A562EE72B4F5B69BAC015 /* UIViewController+PrivateExtension.swift */; }; - 6EE35002DA6A54C3411AA63A7CB8D763 /* InlineFactory.swift in Sources */ = {isa = PBXBuildFile; fileRef = 97C64FADCFCA9C09F43F8DDCCD41B15F /* InlineFactory.swift */; }; - 71B6C0BB0C7A61C9838716E3B9316DA8 /* DestinationStep.swift in Sources */ = {isa = PBXBuildFile; fileRef = 88B7348CA85ED93A0483FB52A7ED1791 /* DestinationStep.swift */; }; - 71E4121A4068EEB9B3E65D6AB9188711 /* CompleteFactoryChainAssembly.swift in Sources */ = {isa = PBXBuildFile; fileRef = 87FABC2B2073509F83B626B772E5681E /* CompleteFactoryChainAssembly.swift */; }; - 74297D98CAA10879E82F9EDC9A40E092 /* UISplitViewController+Action.swift in Sources */ = {isa = PBXBuildFile; fileRef = 860B922232F021A75DF611D4EA4DEE8B /* UISplitViewController+Action.swift */; }; - 79BE1FAAA9B313466577706143D32252 /* DefaultStackPresentationHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4B8F60D760848F25489ABA7B07F6716E /* DefaultStackPresentationHandler.swift */; }; - 79F492F0593EFD0A9A259B3778FA0087 /* TabBarControllerStep.swift in Sources */ = {isa = PBXBuildFile; fileRef = B0B3AA43806AE4AE56FBAADBBAADC15A /* TabBarControllerStep.swift */; }; - 7A4FD7421D63753A01CF48423F44A110 /* Finder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 53B29C76BB0A8645DCBCBC0B49982B63 /* Finder.swift */; }; - 7C50360FFB7BE77CA80171716A1F67CF /* CustomContainerViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = CA825C609CDFFE44D784888F15655E71 /* CustomContainerViewController.swift */; }; - 7CBCECF4E4A617890AEF099D3D863E7A /* Router.swift in Sources */ = {isa = PBXBuildFile; fileRef = 932F8490207EEDB2A48D62FCD1301DA6 /* Router.swift */; }; - 7E2EC86F779DF782D5C16A5CD88C8A25 /* TaskCollector.swift in Sources */ = {isa = PBXBuildFile; fileRef = 91C22CC160D6415940276948726B1608 /* TaskCollector.swift */; }; + 6D8223463AAEDF8FBB280DE67F47FF0E /* RoutingStep.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0929144A7CC488E3CAB4CBF552EB541F /* RoutingStep.swift */; }; + 6FE39E1C38C2F27BA7F25A4F030350CD /* BaseStep.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6CEAB9AF9A91540EC6C8FEC231D92F1B /* BaseStep.swift */; }; + 70D30BED9BA855292DC5F9F2E55E6F86 /* SplitControllerFactory.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3C91EDE9D574B26FCF16B326463A85FC /* SplitControllerFactory.swift */; }; + 747FE1F49AE281309F273F88002699C0 /* Dismissible.swift in Sources */ = {isa = PBXBuildFile; fileRef = 930408BA302E39B12DE633D443C26B73 /* Dismissible.swift */; }; + 75C60532D7EDC4939628655AC4ACBB8A /* SplitViewController+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 64BC3361A44315F3543D8B447E02F192 /* SplitViewController+Extension.swift */; }; + 76CC48A2E48E9A0B866D286D22373DFD /* SplitControllerAdapter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3240B7716ADDC93D0D79C3ACF7F1324D /* SplitControllerAdapter.swift */; }; + 77240B7AA96B8DC8AB36F26B2A946549 /* ConvertingStep.swift in Sources */ = {isa = PBXBuildFile; fileRef = C84E924D893C268B9D7AC9E227B281B6 /* ConvertingStep.swift */; }; + 7E3E1AD77035B2C095605228959F02C8 /* SingleStep.swift in Sources */ = {isa = PBXBuildFile; fileRef = 56528D225F757E1D46BE2A7BB330C477 /* SingleStep.swift */; }; 7EF604D48C791DE2FE758986A8DA0C84 /* Pods-RouteComposer_Example-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 091DF30299057E8866E0F5488D622C46 /* Pods-RouteComposer_Example-dummy.m */; }; - 811146949F05E67863BEF50D53E5E0CA /* TabBarControllerFactory.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8190FED39D3330DFE6CBC0427743D1DA /* TabBarControllerFactory.swift */; }; - 828FB8BF85FACDA07F8B284D94542143 /* InterceptableStepAssembling.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8ABDBD534188F18E82AC374D056103D /* InterceptableStepAssembling.swift */; }; - 834D6DDC292AB8468521D22602A9C4DA /* StoryboardFactory.swift in Sources */ = {isa = PBXBuildFile; fileRef = D331A37359448E54EE00F683BA09DA14 /* StoryboardFactory.swift */; }; - 84C6D4E0CE6D6BCFBFC7EAE45EACB978 /* DefaultContainerAdapterLocator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9E2E8EA80FCA4EAC3DE42E133C17C7F7 /* DefaultContainerAdapterLocator.swift */; }; - 88728E397BC151089E7A75F8C896A25A /* ChildCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 62AF8BC2456C3E40C330329DA08376D7 /* ChildCoordinator.swift */; }; - 8AA83251A10C8444DCA1A1F6CE6AF7C4 /* CompleteFactory.swift in Sources */ = {isa = PBXBuildFile; fileRef = C546EDF8DB5F1D323551C30DB0DB74ED /* CompleteFactory.swift */; }; - 8C6FCC235100C26489583ECEC03BEA49 /* UIHostingControllerWithContextFactory.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3D328D0FC34381474A045F52CFE30A3B /* UIHostingControllerWithContextFactory.swift */; }; - 8EB2F72E2FAE9227DC2530E5EDF6A6D4 /* Dismissible.swift in Sources */ = {isa = PBXBuildFile; fileRef = 930408BA302E39B12DE633D443C26B73 /* Dismissible.swift */; }; - 8ECF93F75382CFEA64D19AB85257C53F /* AnyContextBox.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3EB6A2EA9BD1CD2A020C709E9371034E /* AnyContextBox.swift */; }; - 8F50A5B0314AE5D8C5F81FD1F1F9A458 /* NavigationController+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBC334C205CC6069A6344CBA31AE10DA /* NavigationController+Extension.swift */; }; - 8F5BF1A102455C97A2D3DAAC4469F99A /* CATransaction+Action.swift in Sources */ = {isa = PBXBuildFile; fileRef = 45A9BA5001DE6570BC7BBB686EEACA10 /* CATransaction+Action.swift */; }; - 8F9B235B4560928FF73C0E97AFCC3B20 /* NavigationControllerStep.swift in Sources */ = {isa = PBXBuildFile; fileRef = C23607F3140268A50ABC0A208FADB008 /* NavigationControllerStep.swift */; }; - 9206B8F8DD89A99F0B5B12810F54C0B3 /* InlineStackIteratingFinder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 03FDE39C216B92EB7E230CE2804C8A0D /* InlineStackIteratingFinder.swift */; }; - 94DB0FB290F0C8DC6AAC9C4D19908084 /* InlinePostTask.swift in Sources */ = {isa = PBXBuildFile; fileRef = 90453A03F2E88AA9487B8117677B766C /* InlinePostTask.swift */; }; - 98E3F945F94B17951AAEDC9278FBF249 /* AbstractAction.swift in Sources */ = {isa = PBXBuildFile; fileRef = 10DF77C06E948252EEF41F5C73E36114 /* AbstractAction.swift */; }; - 9A37FA8D70F0C8D4A170C229EB806A61 /* FinderFactory.swift in Sources */ = {isa = PBXBuildFile; fileRef = CFCA30F94C09573B5B8FED3BE9FB55AB /* FinderFactory.swift */; }; - 9C4D9EC285EBED8424FDF29874CA543E /* PreparableEntity.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7D8C0910EC8595DAF01B6FC639DCB073 /* PreparableEntity.swift */; }; - 9F8F57E8F5452CA2877E9C5B35E53431 /* DefaultRouter+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = F70A758090E0808F3D54F16A089C6D7C /* DefaultRouter+Extension.swift */; }; - A1FBB2F66EC2294E06F758F0C7978990 /* NilFinder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 92973948D42652598205DDEE921723FF /* NilFinder.swift */; }; - A1FF7B657D86B3230B345976E9F46230 /* RoutingInterceptable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 50105194B58BB6A0AC251AD87E7EC77F /* RoutingInterceptable.swift */; }; - A4EE93DD6F1C8C046417265EA1C1739E /* ContainerAdapter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99758A294D1CB4C53A9A3D3CFAEE9FA0 /* ContainerAdapter.swift */; }; - A5506BAD7D31CA0975FB7D1D8B535726 /* AnyContextTask.swift in Sources */ = {isa = PBXBuildFile; fileRef = C7A87092304585535B3315B38771F502 /* AnyContextTask.swift */; }; - A584DC8ADAA39C4441924AAEAD57C29A /* SwitchAssembly.swift in Sources */ = {isa = PBXBuildFile; fileRef = 082E6A97ED14D6FD10F071B15437950B /* SwitchAssembly.swift */; }; - A5956E11F354A66C5ACC44476ABDD0FF /* NilFactory.swift in Sources */ = {isa = PBXBuildFile; fileRef = D6FB90C1994A1AE7D340D6E7E8850AF8 /* NilFactory.swift */; }; - A5E8C39D550DBB9728849339AC9EBDF3 /* AnyPostRoutingTask.swift in Sources */ = {isa = PBXBuildFile; fileRef = 68B7DF0AF26A095E98BDE7BC2BDE49C0 /* AnyPostRoutingTask.swift */; }; - A61EB11DDA4518CD1B7A5BFBC9FF64CB /* CustomWindowProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 951D76F20C7D4995EEDF992E6717BBED /* CustomWindowProvider.swift */; }; - A721EE593716E6C3A6DF25465FFBE2B1 /* ClassFinder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5561DE88FFFA454CC9F92E6825A59E5A /* ClassFinder.swift */; }; - A8A7B49584F4A4D34B81F8E3AB9793B2 /* KeyWindowProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = C7E45E272F202A2F147976A9D03B499D /* KeyWindowProvider.swift */; }; - ABA7B683B0394D6867A3FBAE86FCAEE6 /* ActionToStepIntegrator.swift in Sources */ = {isa = PBXBuildFile; fileRef = D7EFAB68783DEC4BA50F40492D257185 /* ActionToStepIntegrator.swift */; }; - AD47FBAB4A6539959DA3206787E13BC7 /* AnyContextTransformer.swift in Sources */ = {isa = PBXBuildFile; fileRef = AF1301D2228E27D4AB4D4C5902E0721C /* AnyContextTransformer.swift */; }; - AD6CCF8557F00727ECB6D5C0EE1C848A /* LogMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2FD43EF75F8F44074C17989A424797B3 /* LogMessage.swift */; }; - AFDA8D24EFF34686ABF7AA383FC9F698 /* GeneralStep.swift in Sources */ = {isa = PBXBuildFile; fileRef = 084D2DF8417071F750CB6976858DC5FE /* GeneralStep.swift */; }; - B21E46DB0A28C3DB1A431598A265794F /* AbstractFactory.swift in Sources */ = {isa = PBXBuildFile; fileRef = D5EE744BAF039E3C2699DD314259C198 /* AbstractFactory.swift */; }; - B22D5C09215C6C5FBA196210949425F8 /* SingleNavigationRouter.swift in Sources */ = {isa = PBXBuildFile; fileRef = A9587D2F89332C22F9C64D49A3A647C5 /* SingleNavigationRouter.swift */; }; - B42FE41E12DFFBB5B1434A0250D3185D /* PerformableStep.swift in Sources */ = {isa = PBXBuildFile; fileRef = A01F6206B7074162E21E133BD9902417 /* PerformableStep.swift */; }; - B8230BF2172B8FFD9978110E5465A881 /* AnyActionBox.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0AC3B84C86640DE8209214A33ABAFBD8 /* AnyActionBox.swift */; }; + 7F0BBD4DAE0B2C1603C3988CC6873CE2 /* ContextInstantiatable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5D78F4804907575B11B33334D4660800 /* ContextInstantiatable.swift */; }; + 829BE2C6CE799AD60687CC2491407D55 /* Router.swift in Sources */ = {isa = PBXBuildFile; fileRef = 932F8490207EEDB2A48D62FCD1301DA6 /* Router.swift */; }; + 840A7C282ED155A31FCBFBE17FC873CC /* NilFinder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 92973948D42652598205DDEE921723FF /* NilFinder.swift */; }; + 84E3F1B2F016B664EDA2F89C213B4CA8 /* CompleteFactoryAssembly.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4A2A6B75089F4433E487D79F027F926A /* CompleteFactoryAssembly.swift */; }; + 863BE4037B5CE6E770313783B15A3D03 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D245E0514AAC1A2B9A6D5EA2F383E90F /* UIKit.framework */; }; + 876E3842BDEDD8EE816FC8C69D84EE76 /* TabBarControllerAdapter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1032EB8A40FD36A4247F6CAD0EAD6EF2 /* TabBarControllerAdapter.swift */; }; + 882CF0D1B56139ACFB262DBEF01755E6 /* KeyWindowProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = C7E45E272F202A2F147976A9D03B499D /* KeyWindowProvider.swift */; }; + 885FDF48232BB058AF5C7A1168767D99 /* UIViewController+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 62392E7CCE9CBAE4E20D861EDB914BED /* UIViewController+Extension.swift */; }; + 89DAD1F5E39B73E719095521B9967E56 /* PreparableEntity.swift in Sources */ = {isa = PBXBuildFile; fileRef = AA4E50752E5EF3405B6D5BC8AE110704 /* PreparableEntity.swift */; }; + 8C0BB710784B2CA3535CF835D07199CC /* PostRoutingTaskBox.swift in Sources */ = {isa = PBXBuildFile; fileRef = B0168C6ECD938D149EEF9DB0960B05DE /* PostRoutingTaskBox.swift */; }; + 8C4C05380E54D1F1269D57C0153C5AEF /* NavigationDelayInterceptor.swift in Sources */ = {isa = PBXBuildFile; fileRef = C6878267C7834A9415464C2A4189E446 /* NavigationDelayInterceptor.swift */; }; + 9001A1A686B7D57D927E63AD5DA9CD8C /* DefaultRouter+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1E4A6FC3A8B6462E078E7182FE010621 /* DefaultRouter+Extension.swift */; }; + 92341A5D86EE8CACB3CE879AD4FDB9BF /* AnyContextBox.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4A2CDA84E1DC368B4302548CDCD53CD1 /* AnyContextBox.swift */; }; + 935994BD3A67F58E5B708865FBAFA332 /* SwitchAssembly.swift in Sources */ = {isa = PBXBuildFile; fileRef = 082E6A97ED14D6FD10F071B15437950B /* SwitchAssembly.swift */; }; + 9405EA79261627569B5324030186CB98 /* PerformableStepResult.swift in Sources */ = {isa = PBXBuildFile; fileRef = 23BDD97E5E5E5EE8F669CB4C1CAFB800 /* PerformableStepResult.swift */; }; + 970DE24DAC1CADB6E971682AAF113C3F /* DefaultLogger.swift in Sources */ = {isa = PBXBuildFile; fileRef = F2E7240A2E1DCDC09332C954A287A0F3 /* DefaultLogger.swift */; }; + 993C288A9EFBF43611C9C613FF13A90C /* SwitcherStep.swift in Sources */ = {isa = PBXBuildFile; fileRef = 91E2635BF6BD6B1585E2809F265F3687 /* SwitcherStep.swift */; }; + 9BBEAC34277A69F15C5DDCCD1251480A /* InlineFactory.swift in Sources */ = {isa = PBXBuildFile; fileRef = 97C64FADCFCA9C09F43F8DDCCD41B15F /* InlineFactory.swift */; }; + 9C0A297DB67EC4B4E5A6B6C98EEABF04 /* UINavigationController+Action.swift in Sources */ = {isa = PBXBuildFile; fileRef = E16854A5638BF940459E09BD8AA79CCE /* UINavigationController+Action.swift */; }; + A0A3D11C70207216B3A2CD67D56FFD3D /* Action.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5B664E883AC2B0AF5FC41863FDD9DBA8 /* Action.swift */; }; + A11828CC8180FF1F83CA16A6E915D89B /* StoryboardFactory.swift in Sources */ = {isa = PBXBuildFile; fileRef = D331A37359448E54EE00F683BA09DA14 /* StoryboardFactory.swift */; }; + A26A18BC114DA3399BC570CCF2787493 /* NavigationController+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBC334C205CC6069A6344CBA31AE10DA /* NavigationController+Extension.swift */; }; + A2DE8E6C0C900B0807A1F11F5464D94C /* ChainAssembly.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA648B3FD173F797EF2E96B4675919B9 /* ChainAssembly.swift */; }; + A42F77F792E7F62C8A6F86E3D4754B5C /* PresentingFinder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7247E7EAADC53A539B1202E4484C11F7 /* PresentingFinder.swift */; }; + A558F8CF8E61A39E1C1BC8C2EFD7EBE3 /* SplitControllerStep.swift in Sources */ = {isa = PBXBuildFile; fileRef = 72DC6DCA1469D0F43B9A76AC713056C2 /* SplitControllerStep.swift */; }; + AA25CFE9562DCA6AA3BC24B373B7F4D8 /* ContainerAdapter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99758A294D1CB4C53A9A3D3CFAEE9FA0 /* ContainerAdapter.swift */; }; + AA386880F6F6FC7D434B871DB7A27E20 /* GeneralStep.swift in Sources */ = {isa = PBXBuildFile; fileRef = 084D2DF8417071F750CB6976858DC5FE /* GeneralStep.swift */; }; + AB7E624905803FE09807870678F3C478 /* PerformableStep.swift in Sources */ = {isa = PBXBuildFile; fileRef = F673889FCEBCC07E7E53AC35B4459F77 /* PerformableStep.swift */; }; + AD68AD74BC0541A857EC82D12852B0F4 /* PostponedIntegrationFactory.swift in Sources */ = {isa = PBXBuildFile; fileRef = 22B220C802A8EFBDE38F3343FF0848D2 /* PostponedIntegrationFactory.swift */; }; + AEE0089DB077AE9CAA016021AA4C3506 /* ContainerStepChainAssembly.swift in Sources */ = {isa = PBXBuildFile; fileRef = 44CDF8E45EF8B199E90C1FD16E3D3559 /* ContainerStepChainAssembly.swift */; }; + B053E2C6E49550D58129CCD0FA201A4D /* InlinePostTask.swift in Sources */ = {isa = PBXBuildFile; fileRef = 90453A03F2E88AA9487B8117677B766C /* InlinePostTask.swift */; }; + B0ACBABE8FFE62DD492EB1506304033B /* ClassWithContextFinder.swift in Sources */ = {isa = PBXBuildFile; fileRef = B4E41ABBF7B085F5A34519FF8621EBD8 /* ClassWithContextFinder.swift */; }; + B0C6BCA06BB0D47B51B4F4137652BCA0 /* ContainerViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = F1BC0666691D8926DAFDE13D1E227559 /* ContainerViewController.swift */; }; + B137CA5968FF618E13DD00CF90187DC2 /* Logger.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1509D48DC3C9DA9877C09C459753C422 /* Logger.swift */; }; + B1B0B952CE46624C7F6B56688F9C30A4 /* DismissalMethodProvidingContextTask.swift in Sources */ = {isa = PBXBuildFile; fileRef = 30B7D90B13B7A2D22A3934C092F4D959 /* DismissalMethodProvidingContextTask.swift */; }; + B2DCF6DC18D4BB40D8E15DEAA2817709 /* AnyFactoryBox.swift in Sources */ = {isa = PBXBuildFile; fileRef = E6BDC96BE8CDA4703DD10508E245EC32 /* AnyFactoryBox.swift */; }; + B48C9E93616CDE740549E1ECB091908F /* InlineContextTask.swift in Sources */ = {isa = PBXBuildFile; fileRef = B95CDD49EB1E6AD26183D3F3A8EB6B69 /* InlineContextTask.swift */; }; B86E77A6E43D1ECA0C0E4C59AA9292CD /* Pods-RouteComposer_Example-RouteComposer_Tests-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 7D2B46ACF8A39942FF1EF1B7474D7DA6 /* Pods-RouteComposer_Example-RouteComposer_Tests-dummy.m */; }; - B986EDF70503013233BD26348D84AC54 /* WindowProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8FB933EFED78D0E414FFB7EF9A9A05E5 /* WindowProvider.swift */; }; - BC520973DC79E9321FB7931D4A89DD8F /* ContainerAdapterLocator.swift in Sources */ = {isa = PBXBuildFile; fileRef = CBFF3825B34FC824CB522A4E5035E976 /* ContainerAdapterLocator.swift */; }; - BC8967F828196882DC28A4F0FC9EA7E3 /* InlineContextTask.swift in Sources */ = {isa = PBXBuildFile; fileRef = B95CDD49EB1E6AD26183D3F3A8EB6B69 /* InlineContextTask.swift */; }; - BD8A1766312C86F108266AB92C59DC23 /* StackIterator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4F14E31BC3E7727AA523153C84D848E3 /* StackIterator.swift */; }; - BDD582226DD2CA9992ACBB7E89597759 /* InterceptableStep.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8C09830C4EA769F14B531F00D3CFD245 /* InterceptableStep.swift */; }; - BF72F92FD0EF8600887928A6E53820A8 /* ConcreteContainerAdapter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7A031900E8B71377AF8594158D61277F /* ConcreteContainerAdapter.swift */; }; - C0A5CC73A727CC6D021DA91C8ADB0250 /* RouteComposer-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 330EAADAEBFA16E84BD5E254F943079B /* RouteComposer-dummy.m */; }; - C48C79D0EC49434ABC987A308B005C53 /* UINavigationController+Action.swift in Sources */ = {isa = PBXBuildFile; fileRef = E16854A5638BF940459E09BD8AA79CCE /* UINavigationController+Action.swift */; }; - C4CEED698B0EF338B766B3BDFBFDEC4D /* StepAssembly.swift in Sources */ = {isa = PBXBuildFile; fileRef = 393D8593D8CB9BD5043F522AFF756155 /* StepAssembly.swift */; }; - C83AFCBF70FFADE41527EB7B3E4B7358 /* StepChainAssembly.swift in Sources */ = {isa = PBXBuildFile; fileRef = 191426088E3B620CCB2668F8F18174FA /* StepChainAssembly.swift */; }; - CA76C80A21F9991B260BE1B31F65370A /* InterceptorMultiplexer.swift in Sources */ = {isa = PBXBuildFile; fileRef = B26503AB147EED8B1CD03692D4C344E2 /* InterceptorMultiplexer.swift */; }; - CABF1089C84A0320AC2D09859BF93CC1 /* AnyFactory.swift in Sources */ = {isa = PBXBuildFile; fileRef = 86136E05C5CDF8A2E57B1316C4B465BB /* AnyFactory.swift */; }; - CE0E16A2B1F1EB7BECFBB77C56466F84 /* Logger.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1509D48DC3C9DA9877C09C459753C422 /* Logger.swift */; }; - CF2A5B9285843E7FF6F981DF0177EC1C /* SplitControllerStep.swift in Sources */ = {isa = PBXBuildFile; fileRef = 72DC6DCA1469D0F43B9A76AC713056C2 /* SplitControllerStep.swift */; }; - D35F72E1AC7A218591CEB5905FCC02DE /* NilContextTransformer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 837887E329ADD698A95A575A726814A1 /* NilContextTransformer.swift */; }; - D71BC51AF8F7685C92114E63AE9DB4B2 /* InstanceFinder.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8BF0FECBE89CC6B17E921963B03ADED /* InstanceFinder.swift */; }; - DB5619ACBBCA7C710AF907A11DA2D3BE /* UIViewController+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 62392E7CCE9CBAE4E20D861EDB914BED /* UIViewController+Extension.swift */; }; - DF0DD7E8A4F7CEE159FBA3A889B9606D /* AnyAction.swift in Sources */ = {isa = PBXBuildFile; fileRef = AF8AAFFA4BD5B24A87D1DE963DA0B10D /* AnyAction.swift */; }; - DF8640F6E9157D242B723838505F4C0B /* InterceptableRouter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 576B81345A91C408C361442E90A125A4 /* InterceptableRouter.swift */; }; - E0595728E8292173800037F47DFE671D /* AnyContext.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6F008D272425A6BF28605B4BA4E04C8D /* AnyContext.swift */; }; - E1BA85312C8857B746B68C5D80127797 /* PostRoutingTask.swift in Sources */ = {isa = PBXBuildFile; fileRef = C76C335D9931574E7A01025D7BB146E0 /* PostRoutingTask.swift */; }; - E306E46A0B05AF0E666DA061739F1CC6 /* Array+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 477BDA5D771A2C8CB31F91A1FFEA9B2E /* Array+Extension.swift */; }; - E5EB763C46674347DEC6BE866B16905E /* SimpleContainerFactory.swift in Sources */ = {isa = PBXBuildFile; fileRef = B15DA2D4E89657D96D95ED96D317C6D6 /* SimpleContainerFactory.swift */; }; - E73C70D4A2DD499E2E0C7A0B63EA07ED /* FinderBox.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2634223808A5DCB3D5A4E3CCCEFAE8DE /* FinderBox.swift */; }; - E80BD8C07473E429654ECEE2FFBA9393 /* ContextTaskMultiplexer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C589B7064E7F7C37F75BA9E22DF200A /* ContextTaskMultiplexer.swift */; }; - E8B34EFABA166AE804E2D66D5100EFA7 /* AnyFinder.swift in Sources */ = {isa = PBXBuildFile; fileRef = B2F9347966EABB7DCFD63E90E1B1DB21 /* AnyFinder.swift */; }; - ECBF402A6FCCCA237703C9E9DC4EEBD2 /* DispatchQueue+Action.swift in Sources */ = {isa = PBXBuildFile; fileRef = 77063D76C627660EB042B79F6B433B2B /* DispatchQueue+Action.swift */; }; - EEF66357649D6D0B0533FF0E2473A1B6 /* UIWindow+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = C3F2AE4A7A362385357150A3C4F948EF /* UIWindow+Extension.swift */; }; - F4C99ACAE2C38EAB17A2B7EF1DFD3C4C /* PostRoutingTaskBox.swift in Sources */ = {isa = PBXBuildFile; fileRef = CEA8BE1CC976B9DE1CE5914CE11057B5 /* PostRoutingTaskBox.swift */; }; - F624965F4BDF21F401AB588D16C008B2 /* PresentingFinder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7247E7EAADC53A539B1202E4484C11F7 /* PresentingFinder.swift */; }; - F7B56BF9A9F047AB1FEB07B4F016D4B7 /* DefaultLogger.swift in Sources */ = {isa = PBXBuildFile; fileRef = F2E7240A2E1DCDC09332C954A287A0F3 /* DefaultLogger.swift */; }; - F80229FA0E1FA48D7255A45D50463AFA /* ConvertingStep.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6A8DE234D1FE17EC6C44FC49CC36D206 /* ConvertingStep.swift */; }; - FB27F9AB8F8CF74D9AD18CFAC5AA1733 /* InlineInterceptor.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4D6B2915BDD8C5590D053CF3A58B748 /* InlineInterceptor.swift */; }; - FB93292C2F29876F02E8311EB55295A9 /* UIHostingControllerFactory.swift in Sources */ = {isa = PBXBuildFile; fileRef = 781E93409E525B264A3AFB27B4E7DD77 /* UIHostingControllerFactory.swift */; }; - FDACD45120475B5F3646F31BBF671F13 /* SplitViewController+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 64BC3361A44315F3543D8B447E02F192 /* SplitViewController+Extension.swift */; }; - FDCF0FC965FED2C120E64CEFD2186949 /* RoutingError.swift in Sources */ = {isa = PBXBuildFile; fileRef = 51022FFB23ED5FEA7976221E1E23D648 /* RoutingError.swift */; }; + BAE95FD02F2CA6F9C2676BF280FD38C0 /* Array+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 477BDA5D771A2C8CB31F91A1FFEA9B2E /* Array+Extension.swift */; }; + BCCD279E7211152EFCE537A62AB7FB1F /* InlineInterceptor.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4D6B2915BDD8C5590D053CF3A58B748 /* InlineInterceptor.swift */; }; + BD10F83806896503C781B05EE9577355 /* ContainerFactoryBox.swift in Sources */ = {isa = PBXBuildFile; fileRef = C20E766397A3EE7C50D94BD9A31C0B7A /* ContainerFactoryBox.swift */; }; + BEE31DCF2CB293A62D6D7490BA17543C /* TabBarViewController+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8B6625CD569B7711BBA221682E0C8D6F /* TabBarViewController+Extension.swift */; }; + C17D23430E94CECA7D797E83C38B82E0 /* AnyPostRoutingTask.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1EA5C157AD3E65B91EAC241807AA088B /* AnyPostRoutingTask.swift */; }; + C1EFF080D146A914EB1254F19ED5E16E /* Router+Destination.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0B065B3992C1DC07D79AF3ECF4D66636 /* Router+Destination.swift */; }; + C202FD9A4C4A3B6AE0A342E623ED78B6 /* DefaultContainerAdapterLocator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9E2E8EA80FCA4EAC3DE42E133C17C7F7 /* DefaultContainerAdapterLocator.swift */; }; + C6819DB09AA6F5EADDA4B201B7C768D1 /* StackIteratingFinder.swift in Sources */ = {isa = PBXBuildFile; fileRef = A8C29EED59AB0D643256536E41D2B841 /* StackIteratingFinder.swift */; }; + C87822A82C6830CAA890123197AA6CB9 /* UIHostingControllerWithContextFinder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FC0917D78FE0A65CC278627F0A2143B /* UIHostingControllerWithContextFinder.swift */; }; + CA2648A6D4E8A07C02F563B9BA657217 /* Destination.swift in Sources */ = {isa = PBXBuildFile; fileRef = 05FC48DF14850C17393752FB20C7821F /* Destination.swift */; }; + CAB0A7D3918E26AC7E639D959E74D332 /* UIViewController+Action.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6D965304546CC4978C32E4E4AC395670 /* UIViewController+Action.swift */; }; + D1C5C44456821E54C66BEE587710C85C /* ChainableStep.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9E5BD50762A91DF55E45BD370A644ACE /* ChainableStep.swift */; }; + D2CEC3F35BE7C41C65F0314D8EFAC350 /* NilFactory.swift in Sources */ = {isa = PBXBuildFile; fileRef = D6FB90C1994A1AE7D340D6E7E8850AF8 /* NilFactory.swift */; }; + D355DE9A8C5B530858A4CB4B1421C056 /* ContainerActionBox.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6761AA4370E6B983E875CDF128D33763 /* ContainerActionBox.swift */; }; + D4A2B99519771A78173B6BC85D5D0931 /* StepAssembly.swift in Sources */ = {isa = PBXBuildFile; fileRef = 393D8593D8CB9BD5043F522AFF756155 /* StepAssembly.swift */; }; + D51EA7393FBD69407AE7EF3562BE61B0 /* UIViewController+PrivateExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0FFA862C7C1344E9A538D2136EBB141C /* UIViewController+PrivateExtension.swift */; }; + D5EA7BB2704CE5C77FB4097A87E78E56 /* TaskCollector.swift in Sources */ = {isa = PBXBuildFile; fileRef = 91C22CC160D6415940276948726B1608 /* TaskCollector.swift */; }; + DF67DDF563A6D5EAEEDD36AC68540CE5 /* SimpleContainerFactory.swift in Sources */ = {isa = PBXBuildFile; fileRef = B15DA2D4E89657D96D95ED96D317C6D6 /* SimpleContainerFactory.swift */; }; + DFC1C866ABD4AEEBA813D20E64F7B1FE /* FinderBox.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1FBA1053D441AEAD695618DF93E4A9C /* FinderBox.swift */; }; + E1E3E68121DF9B42811F13F06A647CBC /* InlineContextTransformer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 92659B955347606896D58D2C5EE93DC6 /* InlineContextTransformer.swift */; }; + E243CA5D1A91E26470BFCBA8F54B2D8D /* UIHostingControllerFactory.swift in Sources */ = {isa = PBXBuildFile; fileRef = 781E93409E525B264A3AFB27B4E7DD77 /* UIHostingControllerFactory.swift */; }; + E46BA45DD86C7886DD1AD169154CFBF1 /* AnyContext.swift in Sources */ = {isa = PBXBuildFile; fileRef = 262A05E51B400673C4D13FCD69232D19 /* AnyContext.swift */; }; + EA9344BC3D87961D39A509A44AC30257 /* ChildCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 62AF8BC2456C3E40C330329DA08376D7 /* ChildCoordinator.swift */; }; + EB8D15B4CBE76B5512F0237AAA875961 /* NavigationControllerAdapter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35431D17A45097CB773DB2F6241EE340 /* NavigationControllerAdapter.swift */; }; + EF797BB096EBFA68AE76F3C7E9D4465D /* ActionBox.swift in Sources */ = {isa = PBXBuildFile; fileRef = EB43997EE143841BF0AEB210E2DD4876 /* ActionBox.swift */; }; + F22CCF8F56748FB0AFBD6174B3AB1567 /* SingleNavigationRouter.swift in Sources */ = {isa = PBXBuildFile; fileRef = A9587D2F89332C22F9C64D49A3A647C5 /* SingleNavigationRouter.swift */; }; + F2A5365D9E3D8BF3C6E936725DBA1109 /* DefaultStackIterator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7C99A80D51C6F45C3D1E3A018E08E716 /* DefaultStackIterator.swift */; }; + F3ECA785B0AED8DAE8F8C7B178F4F083 /* TabBarControllerFactory.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8190FED39D3330DFE6CBC0427743D1DA /* TabBarControllerFactory.swift */; }; + F5DA68F89DDCDCCEA499ABD1298C2210 /* PostRoutingTaskMultiplexer.swift in Sources */ = {isa = PBXBuildFile; fileRef = BD79566300A56A0703280D3ABFAC0399 /* PostRoutingTaskMultiplexer.swift */; }; + F67F6067960E552EAC36D58B759693A6 /* ClassFactory.swift in Sources */ = {isa = PBXBuildFile; fileRef = A61828AAB0A9B9332590508B02C7A1D8 /* ClassFactory.swift */; }; + F861BC1A557A6FF5958CD538F2E03A25 /* ContextSettingTask.swift in Sources */ = {isa = PBXBuildFile; fileRef = D75D3622FE8C292BC2B63ECC2EFEA82A /* ContextSettingTask.swift */; }; + F9143BEBF01554765B82D2C3FE0A523E /* ContainerAdapterLocator.swift in Sources */ = {isa = PBXBuildFile; fileRef = CBFF3825B34FC824CB522A4E5035E976 /* ContainerAdapterLocator.swift */; }; + FAF1FCB4B3413C2D015E231BE8B2495E /* CATransaction+Action.swift in Sources */ = {isa = PBXBuildFile; fileRef = 45A9BA5001DE6570BC7BBB686EEACA10 /* CATransaction+Action.swift */; }; + FD47DE0152FDF05A8AFD55C6B0F720AE /* Factory.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2D8DBEE37DEFC099CD5230F1B3B202EE /* Factory.swift */; }; + FEC2D14DD3A72866FFF506F71B093EF2 /* DestinationStep.swift in Sources */ = {isa = PBXBuildFile; fileRef = 88B7348CA85ED93A0483FB52A7ED1791 /* DestinationStep.swift */; }; + FEF21C0B47B518A24650EF8383348B77 /* RoutingInterceptor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 98FF8BBC39CDF50D4A3938D2FF7B41F2 /* RoutingInterceptor.swift */; }; + FF90FF83144E1335AE596C7517C9A0AE /* AnyFinder.swift in Sources */ = {isa = PBXBuildFile; fileRef = F85C0BDC0F8A817AE0812BCB8E47B9CC /* AnyFinder.swift */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ - 249DA899EAD59DAF16E6E451FED42686 /* PBXContainerItemProxy */ = { + 49C396B04031F5D65DB6F335022054C7 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; remoteGlobalIDString = 1CD0618C486973D5588EF20D2E8C0AEA; remoteInfo = SwiftFormat; }; - 348E4FA39365084F781DA53E32F6C447 /* PBXContainerItemProxy */ = { + 80086AB35993E0224A861DF4ACF7C7DE /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; - remoteGlobalIDString = 053CA6EE066329CE5637753D02325B34; - remoteInfo = RouteComposer; + remoteGlobalIDString = 1CD0618C486973D5588EF20D2E8C0AEA; + remoteInfo = SwiftFormat; }; - DD72C32A4820A5251DCF35DE93CF46EA /* PBXContainerItemProxy */ = { + B6DEC837F118B01DD382D6D4AB301077 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; remoteGlobalIDString = 053CA6EE066329CE5637753D02325B34; remoteInfo = RouteComposer; }; - EE177DE0B58A85772023F76133478B44 /* PBXContainerItemProxy */ = { + C421E030E83A4857ED2E562E443A0E98 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; - remoteGlobalIDString = 1CD0618C486973D5588EF20D2E8C0AEA; - remoteInfo = SwiftFormat; + remoteGlobalIDString = 053CA6EE066329CE5637753D02325B34; + remoteInfo = RouteComposer; }; /* End PBXContainerItemProxy section */ @@ -214,7 +215,6 @@ 00AE674F0FF467E1785866DF23DBF64E /* Finders.html */ = {isa = PBXFileReference; includeInIndex = 1; name = Finders.html; path = docs/Finders.html; sourceTree = ""; }; 01B0C51D2D0F31061DD8AC9FE456AB65 /* Context.html */ = {isa = PBXFileReference; includeInIndex = 1; name = Context.html; path = docs/Enums/RoutingError/Context.html; sourceTree = ""; }; 01DCDAF1AF60FF44F6C681234FA4B24A /* search.json */ = {isa = PBXFileReference; includeInIndex = 1; name = search.json; path = docs/search.json; sourceTree = ""; }; - 0223EFCCA3A006ADB1B99F4C09707F4F /* PostponedIntegrationFactory.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PostponedIntegrationFactory.swift; sourceTree = ""; }; 0224E3E69993D252F33582DBA5E705E8 /* jquery.min.js */ = {isa = PBXFileReference; includeInIndex = 1; name = jquery.min.js; path = docs/js/jquery.min.js; sourceTree = ""; }; 0271F7FDEBDF106E4CA2A9D496C25B3A /* Other Structs.html */ = {isa = PBXFileReference; includeInIndex = 1; name = "Other Structs.html"; path = "docs/docsets/RouteComposer.docset/Contents/Resources/Documents/Other Structs.html"; sourceTree = ""; }; 027D628B039F06D38001FB6336F72659 /* Pods-RouteComposer_Example-RouteComposer_Tests */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = "Pods-RouteComposer_Example-RouteComposer_Tests"; path = Pods_RouteComposer_Example_RouteComposer_Tests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -236,11 +236,11 @@ 08601D7DD4E160A6B177BEE4FDB801B6 /* Finder.swift.html */ = {isa = PBXFileReference; includeInIndex = 1; name = Finder.swift.html; path = docs/tests/Finder.swift.html; sourceTree = ""; }; 08BF40AFDDAA220C283CF802200930BD /* ClassWithContextFinder.html */ = {isa = PBXFileReference; includeInIndex = 1; name = ClassWithContextFinder.html; path = docs/Structs/ClassWithContextFinder.html; sourceTree = ""; }; 091DF30299057E8866E0F5488D622C46 /* Pods-RouteComposer_Example-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-RouteComposer_Example-dummy.m"; sourceTree = ""; }; + 0929144A7CC488E3CAB4CBF552EB541F /* RoutingStep.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RoutingStep.swift; sourceTree = ""; }; 0939B0422BC410332BA3EAEA58F386C6 /* ContextAcceptingView.swift.html */ = {isa = PBXFileReference; includeInIndex = 1; name = ContextAcceptingView.swift.html; path = docs/tests/ContextAcceptingView.swift.html; sourceTree = ""; }; 09805A82CAFB37E93E0D0C60F2307F14 /* TabBarControllerActions.html */ = {isa = PBXFileReference; includeInIndex = 1; name = TabBarControllerActions.html; path = docs/Enums/TabBarControllerActions.html; sourceTree = ""; }; 0AA6DF58CFE9EC067997E7135A722FCA /* UINavigationController+Action.swift.html */ = {isa = PBXFileReference; includeInIndex = 1; name = "UINavigationController+Action.swift.html"; path = "docs/tests/UINavigationController+Action.swift.html"; sourceTree = ""; }; 0AB2AB3A4CC9D5E96A98274C18272B60 /* Tasks.html */ = {isa = PBXFileReference; includeInIndex = 1; name = Tasks.html; path = docs/Tasks.html; sourceTree = ""; }; - 0AC3B84C86640DE8209214A33ABAFBD8 /* AnyActionBox.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = AnyActionBox.swift; sourceTree = ""; }; 0AD8E2F718A44C7EB37BEC0433C2CFEB /* BaseEntitiesCollector.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = BaseEntitiesCollector.swift; sourceTree = ""; }; 0B065B3992C1DC07D79AF3ECF4D66636 /* Router+Destination.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "Router+Destination.swift"; sourceTree = ""; }; 0B8A343DCC571E1B029980C7477DE806 /* contributing.html */ = {isa = PBXFileReference; includeInIndex = 1; name = contributing.html; path = docs/contributing.html; sourceTree = ""; }; @@ -253,6 +253,7 @@ 0FCBDBF96493B4048611D91A8E312C46 /* highlight.css */ = {isa = PBXFileReference; includeInIndex = 1; name = highlight.css; path = docs/docsets/RouteComposer.docset/Contents/Resources/Documents/css/highlight.css; sourceTree = ""; }; 0FDD265BFDC4363569BE496A28405D99 /* ContextAccepting.swift.html */ = {isa = PBXFileReference; includeInIndex = 1; name = ContextAccepting.swift.html; path = docs/tests/ContextAccepting.swift.html; sourceTree = ""; }; 0FF72D29ECE282055873E28CEB2F1E93 /* AbstractAction.html */ = {isa = PBXFileReference; includeInIndex = 1; name = AbstractAction.html; path = docs/docsets/RouteComposer.docset/Contents/Resources/Documents/Protocols/AbstractAction.html; sourceTree = ""; }; + 0FFA862C7C1344E9A538D2136EBB141C /* UIViewController+PrivateExtension.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "UIViewController+PrivateExtension.swift"; sourceTree = ""; }; 1000799518E89A920F2B55C36C5A116B /* Array+Extension.swift.html */ = {isa = PBXFileReference; includeInIndex = 1; name = "Array+Extension.swift.html"; path = "docs/tests/Array+Extension.swift.html"; sourceTree = ""; }; 1032EB8A40FD36A4247F6CAD0EAD6EF2 /* TabBarControllerAdapter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = TabBarControllerAdapter.swift; sourceTree = ""; }; 103746F0522D80F0EF10BC8564412974 /* SingleNavigationRouter.html */ = {isa = PBXFileReference; includeInIndex = 1; name = SingleNavigationRouter.html; path = docs/docsets/RouteComposer.docset/Contents/Resources/Documents/Structs/SingleNavigationRouter.html; sourceTree = ""; }; @@ -278,14 +279,15 @@ 1964F8A1F2B343188EA770FC0E97D8D4 /* DismissalMethodProvidingContextTask.swift.html */ = {isa = PBXFileReference; includeInIndex = 1; name = DismissalMethodProvidingContextTask.swift.html; path = docs/tests/DismissalMethodProvidingContextTask.swift.html; sourceTree = ""; }; 1994CE9D1682DEAD26A0F3201391E90A /* NilFactory.html */ = {isa = PBXFileReference; includeInIndex = 1; name = NilFactory.html; path = docs/docsets/RouteComposer.docset/Contents/Resources/Documents/Structs/NilFactory.html; sourceTree = ""; }; 1A30A1AD1953BB35FE464852E2F09C2C /* CustomContainerViewController.html */ = {isa = PBXFileReference; includeInIndex = 1; name = CustomContainerViewController.html; path = docs/Protocols/CustomContainerViewController.html; sourceTree = ""; }; - 1A3E1AFBE1F1910B398D78B6360C4C64 /* RoutingInterceptorBox.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RoutingInterceptorBox.swift; sourceTree = ""; }; 1A97D3159C97586AA416B6C53D5632BA /* Pods-RouteComposer_Example-RouteComposer_Tests-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-RouteComposer_Example-RouteComposer_Tests-Info.plist"; sourceTree = ""; }; 1B199352BA596417A73EDF7C911A1978 /* UITabBarController+Action.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "UITabBarController+Action.swift"; sourceTree = ""; }; 1B2A38CBA0835EC12E53A5E65CA465FF /* RoutingError.html */ = {isa = PBXFileReference; includeInIndex = 1; name = RoutingError.html; path = docs/Enums/RoutingError.html; sourceTree = ""; }; 1B844009B4CE2F07C692A9EB529117CE /* SplitControllerFactory.swift.html */ = {isa = PBXFileReference; includeInIndex = 1; name = SplitControllerFactory.swift.html; path = docs/tests/SplitControllerFactory.swift.html; sourceTree = ""; }; 1C999ECCCD0C5FCC669C117AF1984BC4 /* dash.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; name = dash.png; path = docs/img/dash.png; sourceTree = ""; }; 1CEF8CE95C1E3A9C2B81D41F7A9B1BB3 /* FinderFactory.html */ = {isa = PBXFileReference; includeInIndex = 1; name = FinderFactory.html; path = docs/docsets/RouteComposer.docset/Contents/Resources/Documents/Structs/FinderFactory.html; sourceTree = ""; }; + 1E4A6FC3A8B6462E078E7182FE010621 /* DefaultRouter+Extension.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "DefaultRouter+Extension.swift"; sourceTree = ""; }; 1E931C9CD4DE6051FE7E69715F272DA1 /* RouteComposer.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = RouteComposer.debug.xcconfig; sourceTree = ""; }; + 1EA5C157AD3E65B91EAC241807AA088B /* AnyPostRoutingTask.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = AnyPostRoutingTask.swift; sourceTree = ""; }; 1EFCA34D177F635B7CE189440E5DE4AD /* StackIteratingFinder.html */ = {isa = PBXFileReference; includeInIndex = 1; name = StackIteratingFinder.html; path = docs/Protocols/StackIteratingFinder.html; sourceTree = ""; }; 1F4FD063ACC08DD8AD7D1FB9FA19CB8C /* InstanceFinder.html */ = {isa = PBXFileReference; includeInIndex = 1; name = InstanceFinder.html; path = docs/Structs/InstanceFinder.html; sourceTree = ""; }; 1F901823A7D4CB131338C23607C29C6D /* GenericStepAssembly.html */ = {isa = PBXFileReference; includeInIndex = 1; name = GenericStepAssembly.html; path = docs/docsets/RouteComposer.docset/Contents/Resources/Documents/Classes/GenericStepAssembly.html; sourceTree = ""; }; @@ -297,30 +299,32 @@ 20CF9DFFD1E02545D0D44225916671DC /* TabBarControllerFactory.html */ = {isa = PBXFileReference; includeInIndex = 1; name = TabBarControllerFactory.html; path = docs/docsets/RouteComposer.docset/Contents/Resources/Documents/Structs/TabBarControllerFactory.html; sourceTree = ""; }; 2154344FDAF2D5118A89BFC3EDA7163D /* StackIteratingFinder.swift.html */ = {isa = PBXFileReference; includeInIndex = 1; name = StackIteratingFinder.swift.html; path = docs/tests/StackIteratingFinder.swift.html; sourceTree = ""; }; 217667B0CE64CBA50B23DBA93EE57BB8 /* PreparableEntity.swift.html */ = {isa = PBXFileReference; includeInIndex = 1; name = PreparableEntity.swift.html; path = docs/tests/PreparableEntity.swift.html; sourceTree = ""; }; + 22B220C802A8EFBDE38F3343FF0848D2 /* PostponedIntegrationFactory.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PostponedIntegrationFactory.swift; sourceTree = ""; }; 22DA7CC19386BF547BCAB7D5F2BA42A2 /* ClassWithContextFinder.swift.html */ = {isa = PBXFileReference; includeInIndex = 1; name = ClassWithContextFinder.swift.html; path = docs/tests/ClassWithContextFinder.swift.html; sourceTree = ""; }; 23AEAE7A3AE5957EE2AB331527F40F13 /* DispatchQueue.html */ = {isa = PBXFileReference; includeInIndex = 1; name = DispatchQueue.html; path = docs/docsets/RouteComposer.docset/Contents/Resources/Documents/Extensions/DispatchQueue.html; sourceTree = ""; }; + 23BDD97E5E5E5EE8F669CB4C1CAFB800 /* PerformableStepResult.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PerformableStepResult.swift; sourceTree = ""; }; 2474E2C2A9F233AE14AF55432270FBB1 /* CustomWindowProvider.html */ = {isa = PBXFileReference; includeInIndex = 1; name = CustomWindowProvider.html; path = docs/Structs/CustomWindowProvider.html; sourceTree = ""; }; 253E03BBEE5D9310111FC0634CCBCF6D /* Steps.html */ = {isa = PBXFileReference; includeInIndex = 1; name = Steps.html; path = docs/docsets/RouteComposer.docset/Contents/Resources/Documents/Steps.html; sourceTree = ""; }; 258FCDAD09E87631D84A3729DA25B8E9 /* DefaultRouter.html */ = {isa = PBXFileReference; includeInIndex = 1; name = DefaultRouter.html; path = docs/docsets/RouteComposer.docset/Contents/Resources/Documents/Structs/DefaultRouter.html; sourceTree = ""; }; 25ADA48FB166ED9345798651C69C6BB7 /* StoryboardFactory.html */ = {isa = PBXFileReference; includeInIndex = 1; name = StoryboardFactory.html; path = docs/Structs/StoryboardFactory.html; sourceTree = ""; }; 261D3BD9B05EA371794B4533424CF55F /* BaseEntitiesCollector.swift.html */ = {isa = PBXFileReference; includeInIndex = 1; name = BaseEntitiesCollector.swift.html; path = docs/tests/BaseEntitiesCollector.swift.html; sourceTree = ""; }; - 2634223808A5DCB3D5A4E3CCCEFAE8DE /* FinderBox.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = FinderBox.swift; sourceTree = ""; }; + 262A05E51B400673C4D13FCD69232D19 /* AnyContext.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = AnyContext.swift; sourceTree = ""; }; 2689370E65152C57233F1C36326605F3 /* ContainerViewController.html */ = {isa = PBXFileReference; includeInIndex = 1; name = ContainerViewController.html; path = docs/docsets/RouteComposer.docset/Contents/Resources/Documents/Protocols/ContainerViewController.html; sourceTree = ""; }; 2858F27633DECD6040DDDFC7FDFFBBE2 /* AbstractFactory.html */ = {isa = PBXFileReference; includeInIndex = 1; name = AbstractFactory.html; path = docs/docsets/RouteComposer.docset/Contents/Resources/Documents/Protocols/AbstractFactory.html; sourceTree = ""; }; 2889FF2508B787731107436B88E2E892 /* DefaultRouter+Extension.swift.html */ = {isa = PBXFileReference; includeInIndex = 1; name = "DefaultRouter+Extension.swift.html"; path = "docs/tests/DefaultRouter+Extension.swift.html"; sourceTree = ""; }; 2907DF5E9C6A8F072146BFE287D666F1 /* Other Extensions.html */ = {isa = PBXFileReference; includeInIndex = 1; name = "Other Extensions.html"; path = "docs/docsets/RouteComposer.docset/Contents/Resources/Documents/Other Extensions.html"; sourceTree = ""; }; 29A4A73464BF79B70952A136F4254002 /* Other Structs.html */ = {isa = PBXFileReference; includeInIndex = 1; name = "Other Structs.html"; path = "docs/Other Structs.html"; sourceTree = ""; }; + 2A2FC2816C78E4832C5721B5A3B71CC7 /* StackPresentationHandler.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = StackPresentationHandler.swift; sourceTree = ""; }; 2BADC8A8E6C28F9CB1E5B5225E105265 /* SwitchAssembly.html */ = {isa = PBXFileReference; includeInIndex = 1; name = SwitchAssembly.html; path = docs/docsets/RouteComposer.docset/Contents/Resources/Documents/Classes/SwitchAssembly.html; sourceTree = ""; }; 2BC0C2F374685FBA690AE5B9E9885FFA /* jquery.min.js */ = {isa = PBXFileReference; includeInIndex = 1; name = jquery.min.js; path = docs/docsets/RouteComposer.docset/Contents/Resources/Documents/js/jquery.min.js; sourceTree = ""; }; 2C13C2F784D3E9E0F999823D65EEA038 /* ActionConnectingAssembly.html */ = {isa = PBXFileReference; includeInIndex = 1; name = ActionConnectingAssembly.html; path = docs/Structs/ActionConnectingAssembly.html; sourceTree = ""; }; 2C1543BCACDACA47797AF5CCE018B9AB /* DetailsNavigationFinder.html */ = {isa = PBXFileReference; includeInIndex = 1; name = DetailsNavigationFinder.html; path = docs/docsets/RouteComposer.docset/Contents/Resources/Documents/Structs/DetailsNavigationFinder.html; sourceTree = ""; }; 2C44F8BFE26E60C2C80D3494C30DF5A0 /* Pods-RouteComposer_Example-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-RouteComposer_Example-frameworks.sh"; sourceTree = ""; }; - 2C589B7064E7F7C37F75BA9E22DF200A /* ContextTaskMultiplexer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ContextTaskMultiplexer.swift; sourceTree = ""; }; 2C9FCF38F5F58644D4616929A0089AB6 /* RouteComposer.tgz */ = {isa = PBXFileReference; includeInIndex = 1; name = RouteComposer.tgz; path = docs/docsets/RouteComposer.tgz; sourceTree = ""; }; 2CB48DB389C38F83A745F9EE4216B2F1 /* NavigationControllerActions.html */ = {isa = PBXFileReference; includeInIndex = 1; name = NavigationControllerActions.html; path = docs/docsets/RouteComposer.docset/Contents/Resources/Documents/Enums/NavigationControllerActions.html; sourceTree = ""; }; 2D2081A0023CE9DE22DB7E1A7F9B074A /* carat.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; name = carat.png; path = docs/docsets/RouteComposer.docset/Contents/Resources/Documents/img/carat.png; sourceTree = ""; }; + 2D41C46992DAFF3F51E71C5F29859BDA /* AnyAction.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = AnyAction.swift; sourceTree = ""; }; 2D6288DAACAC1956CD99EAE1EC951585 /* Additional Assemblies.html */ = {isa = PBXFileReference; includeInIndex = 1; name = "Additional Assemblies.html"; path = "docs/docsets/RouteComposer.docset/Contents/Resources/Documents/Additional Assemblies.html"; sourceTree = ""; }; - 2D71C11E35475D5F67DBFCCAFC8DFB6F /* DefaultRouter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = DefaultRouter.swift; sourceTree = ""; }; 2D8DBEE37DEFC099CD5230F1B3B202EE /* Factory.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Factory.swift; path = RouteComposer/Classes/Factory.swift; sourceTree = ""; }; 2E88F7661BEB5EF7A229DF1F39AA94AF /* list.min.js */ = {isa = PBXFileReference; includeInIndex = 1; name = list.min.js; path = docs/tests/list.min.js; sourceTree = ""; }; 2F15075736574CC0AB97F12A2380970E /* ContainerAction.html */ = {isa = PBXFileReference; includeInIndex = 1; name = ContainerAction.html; path = docs/docsets/RouteComposer.docset/Contents/Resources/Documents/Protocols/ContainerAction.html; sourceTree = ""; }; @@ -328,7 +332,6 @@ 2FD43EF75F8F44074C17989A424797B3 /* LogMessage.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LogMessage.swift; sourceTree = ""; }; 30B7D90B13B7A2D22A3934C092F4D959 /* DismissalMethodProvidingContextTask.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = DismissalMethodProvidingContextTask.swift; sourceTree = ""; }; 3111D55274A0A3F704F80D9B8D6403DA /* ClassFinder.html */ = {isa = PBXFileReference; includeInIndex = 1; name = ClassFinder.html; path = docs/Structs/ClassFinder.html; sourceTree = ""; }; - 31394FFBC43F00AAB285ED52950F35ED /* StackPresentationHandler.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = StackPresentationHandler.swift; sourceTree = ""; }; 3153473654C39CB2CC764E47DACE4E49 /* RoutingInterceptor.swift.html */ = {isa = PBXFileReference; includeInIndex = 1; name = RoutingInterceptor.swift.html; path = docs/tests/RoutingInterceptor.swift.html; sourceTree = ""; }; 320897FAAB7890C7111AD659EC259E0E /* GlobalInterceptorRouter.html */ = {isa = PBXFileReference; includeInIndex = 1; name = GlobalInterceptorRouter.html; path = docs/Structs/GlobalInterceptorRouter.html; sourceTree = ""; }; 3210B6FD54320A4C844E7771E427F56B /* Other Enums.html */ = {isa = PBXFileReference; includeInIndex = 1; name = "Other Enums.html"; path = "docs/Other Enums.html"; sourceTree = ""; }; @@ -347,11 +350,10 @@ 372FF6420212C64D32D7567B9E0A1B5B /* ActionToStepIntegrator.html */ = {isa = PBXFileReference; includeInIndex = 1; name = ActionToStepIntegrator.html; path = docs/docsets/RouteComposer.docset/Contents/Resources/Documents/Classes/ActionToStepIntegrator.html; sourceTree = ""; }; 37E51227AA090F94DDBA1BCC39F8352E /* Action.swift.html */ = {isa = PBXFileReference; includeInIndex = 1; name = Action.swift.html; path = docs/tests/Action.swift.html; sourceTree = ""; }; 386D704BF6646484D97CC9DEF2C1F01E /* SingleContainerStep.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = SingleContainerStep.swift; sourceTree = ""; }; + 3924DAA5BF3F277A956A5D7E78483997 /* AnyActionBox.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = AnyActionBox.swift; sourceTree = ""; }; 39365EAC60DA6EC3DC0A1C39B4F9F541 /* Other Protocols.html */ = {isa = PBXFileReference; includeInIndex = 1; name = "Other Protocols.html"; path = "docs/docsets/RouteComposer.docset/Contents/Resources/Documents/Other Protocols.html"; sourceTree = ""; }; 393D8593D8CB9BD5043F522AFF756155 /* StepAssembly.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = StepAssembly.swift; sourceTree = ""; }; 3984FDA06CA26370FF49F071D9EF0C89 /* NavigationControllerFactory.html */ = {isa = PBXFileReference; includeInIndex = 1; name = NavigationControllerFactory.html; path = docs/docsets/RouteComposer.docset/Contents/Resources/Documents/Structs/NavigationControllerFactory.html; sourceTree = ""; }; - 39BD54703E73B39EA2374F0AC1BFD1EB /* AnyRoutingInterceptor.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = AnyRoutingInterceptor.swift; sourceTree = ""; }; - 39FE400435D02DA5E16F95375EDF6B6E /* PostRoutingTaskMultiplexer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PostRoutingTaskMultiplexer.swift; sourceTree = ""; }; 3A81C0CBB09AE2D38FEFC7D2A5345C3C /* DestinationStep.html */ = {isa = PBXFileReference; includeInIndex = 1; name = DestinationStep.html; path = docs/docsets/RouteComposer.docset/Contents/Resources/Documents/Structs/DestinationStep.html; sourceTree = ""; }; 3BC2DDCA6E460507D4D993FDB88B711D /* Core Entities.html */ = {isa = PBXFileReference; includeInIndex = 1; name = "Core Entities.html"; path = "docs/docsets/RouteComposer.docset/Contents/Resources/Documents/Core Entities.html"; sourceTree = ""; }; 3BDE70BC45180921F71F4FE199D80897 /* Pods-RouteComposer_Example-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-RouteComposer_Example-umbrella.h"; sourceTree = ""; }; @@ -362,8 +364,8 @@ 3CCBD6890B91810B0578FE3E30C58F63 /* TabBarControllerActions.html */ = {isa = PBXFileReference; includeInIndex = 1; name = TabBarControllerActions.html; path = docs/docsets/RouteComposer.docset/Contents/Resources/Documents/Enums/TabBarControllerActions.html; sourceTree = ""; }; 3D328D0FC34381474A045F52CFE30A3B /* UIHostingControllerWithContextFactory.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = UIHostingControllerWithContextFactory.swift; sourceTree = ""; }; 3D61F14BBA6315FD30F8C372FF30B61F /* NavigationControllerFactory.html */ = {isa = PBXFileReference; includeInIndex = 1; name = NavigationControllerFactory.html; path = docs/Structs/NavigationControllerFactory.html; sourceTree = ""; }; + 3D84935624F93C414FF483764509A84E /* MainThreadChecking.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = MainThreadChecking.swift; sourceTree = ""; }; 3E25AB03170ADDBBA4D954F5498A0946 /* UIWindow+Extension.swift.html */ = {isa = PBXFileReference; includeInIndex = 1; name = "UIWindow+Extension.swift.html"; path = "docs/tests/UIWindow+Extension.swift.html"; sourceTree = ""; }; - 3EB6A2EA9BD1CD2A020C709E9371034E /* AnyContextBox.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = AnyContextBox.swift; sourceTree = ""; }; 3EC5923AEFB4486076C2A5E81B7A0018 /* CATransactionWrappedContainerAction.html */ = {isa = PBXFileReference; includeInIndex = 1; name = CATransactionWrappedContainerAction.html; path = docs/docsets/RouteComposer.docset/Contents/Resources/Documents/Structs/CATransactionWrappedContainerAction.html; sourceTree = ""; }; 3F2A4DE68F8FA2871570E767A7990483 /* SplitViewControllerActions.html */ = {isa = PBXFileReference; includeInIndex = 1; name = SplitViewControllerActions.html; path = docs/Enums/SplitViewControllerActions.html; sourceTree = ""; }; 3F640FEA04700A30160C020F9BFFCF8F /* TabBarControllerStep.html */ = {isa = PBXFileReference; includeInIndex = 1; name = TabBarControllerStep.html; path = docs/docsets/RouteComposer.docset/Contents/Resources/Documents/Classes/TabBarControllerStep.html; sourceTree = ""; }; @@ -372,6 +374,7 @@ 40DD8886C8C31562A6938D95684D1F84 /* Pods-RouteComposer_Example.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-RouteComposer_Example.debug.xcconfig"; sourceTree = ""; }; 411AAB3BAF10E79AC6366775C7810265 /* UIHostingControllerFactory.html */ = {isa = PBXFileReference; includeInIndex = 1; name = UIHostingControllerFactory.html; path = docs/Structs/UIHostingControllerFactory.html; sourceTree = ""; }; 41AC53EA0E7FE82DA4BF64A9CBB9F516 /* ContextAccepting.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ContextAccepting.swift; sourceTree = ""; }; + 41D7C74B607B59608399F9AA5CC84624 /* FactoryBox.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = FactoryBox.swift; sourceTree = ""; }; 42C3FD0456C7839FAA71E3EFDF361599 /* ContainerFactory.html */ = {isa = PBXFileReference; includeInIndex = 1; name = ContainerFactory.html; path = docs/docsets/RouteComposer.docset/Contents/Resources/Documents/Protocols/ContainerFactory.html; sourceTree = ""; }; 4335CF4FD69C003CA55BC02F31D19D68 /* ContainerStepChainAssembly.swift.html */ = {isa = PBXFileReference; includeInIndex = 1; name = ContainerStepChainAssembly.swift.html; path = docs/tests/ContainerStepChainAssembly.swift.html; sourceTree = ""; }; 438EEE842578610268F93CDF4BBDC4F8 /* UIViewController+Extension.swift.html */ = {isa = PBXFileReference; includeInIndex = 1; name = "UIViewController+Extension.swift.html"; path = "docs/tests/UIViewController+Extension.swift.html"; sourceTree = ""; }; @@ -379,6 +382,7 @@ 451195DA9FEF4CAC3F1E43F67758E6A0 /* contributing.html */ = {isa = PBXFileReference; includeInIndex = 1; name = contributing.html; path = docs/docsets/RouteComposer.docset/Contents/Resources/Documents/contributing.html; sourceTree = ""; }; 4565D9612AF9B0F5C34A59EA1C238F98 /* ClassFactory.html */ = {isa = PBXFileReference; includeInIndex = 1; name = ClassFactory.html; path = docs/Structs/ClassFactory.html; sourceTree = ""; }; 45A9BA5001DE6570BC7BBB686EEACA10 /* CATransaction+Action.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "CATransaction+Action.swift"; sourceTree = ""; }; + 45BCEBEE98F293784EC9211EC56E45BC /* ContextTransformerBox.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ContextTransformerBox.swift; sourceTree = ""; }; 466744C424FE835C72049802E256F690 /* Core Entities.html */ = {isa = PBXFileReference; includeInIndex = 1; name = "Core Entities.html"; path = "docs/Core Entities.html"; sourceTree = ""; }; 46D782A1181D9FB5CF38B0359B6FB268 /* ActionConnectingAssembly.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ActionConnectingAssembly.swift; sourceTree = ""; }; 477BDA5D771A2C8CB31F91A1FFEA9B2E /* Array+Extension.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "Array+Extension.swift"; sourceTree = ""; }; @@ -388,13 +392,14 @@ 483C1BB7F43A5944B36F76EC6969BB67 /* UIViewController+PrivateExtension.swift.html */ = {isa = PBXFileReference; includeInIndex = 1; name = "UIViewController+PrivateExtension.swift.html"; path = "docs/tests/UIViewController+PrivateExtension.swift.html"; sourceTree = ""; }; 49078EF507506D7574FD2D2FA6841E49 /* ViewControllerActions.html */ = {isa = PBXFileReference; includeInIndex = 1; name = ViewControllerActions.html; path = docs/Enums/ViewControllerActions.html; sourceTree = ""; }; 497A0AAEAD07F954ED562B35BF6F5264 /* DismissalMethodProvidingContextTask.html */ = {isa = PBXFileReference; includeInIndex = 1; name = DismissalMethodProvidingContextTask.html; path = docs/Structs/DismissalMethodProvidingContextTask.html; sourceTree = ""; }; + 49BC5D0EDDABB9509926F0ADA1040159 /* DefaultStackPresentationHandler.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = DefaultStackPresentationHandler.swift; sourceTree = ""; }; 4A2A6B75089F4433E487D79F027F926A /* CompleteFactoryAssembly.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = CompleteFactoryAssembly.swift; sourceTree = ""; }; + 4A2CDA84E1DC368B4302548CDCD53CD1 /* AnyContextBox.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = AnyContextBox.swift; sourceTree = ""; }; 4A3144B83597ECB885E7594B09E79319 /* FinderFactory.swift.html */ = {isa = PBXFileReference; includeInIndex = 1; name = FinderFactory.swift.html; path = docs/tests/FinderFactory.swift.html; sourceTree = ""; }; 4A75D0D2217F2345E8FA1845A32931ED /* InlineStackIteratingFinder.swift.html */ = {isa = PBXFileReference; includeInIndex = 1; name = InlineStackIteratingFinder.swift.html; path = docs/tests/InlineStackIteratingFinder.swift.html; sourceTree = ""; }; 4A99D7D29E0102EB50B6E3C25627B111 /* ContainerFactoryBox.swift.html */ = {isa = PBXFileReference; includeInIndex = 1; name = ContainerFactoryBox.swift.html; path = docs/tests/ContainerFactoryBox.swift.html; sourceTree = ""; }; 4AE201486AE9ACDA753548937A13394E /* InlinePostTask.html */ = {isa = PBXFileReference; includeInIndex = 1; name = InlinePostTask.html; path = docs/docsets/RouteComposer.docset/Contents/Resources/Documents/Structs/InlinePostTask.html; sourceTree = ""; }; 4B4C2A6BF6F0984DFE828EF33CDEBCA3 /* SplitControllerAdapter.html */ = {isa = PBXFileReference; includeInIndex = 1; name = SplitControllerAdapter.html; path = docs/docsets/RouteComposer.docset/Contents/Resources/Documents/Structs/SplitControllerAdapter.html; sourceTree = ""; }; - 4B8F60D760848F25489ABA7B07F6716E /* DefaultStackPresentationHandler.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = DefaultStackPresentationHandler.swift; sourceTree = ""; }; 4BC469FA339308F163E1509200B4E89D /* ChildCoordinator.html */ = {isa = PBXFileReference; includeInIndex = 1; name = ChildCoordinator.html; path = docs/Structs/ChildCoordinator.html; sourceTree = ""; }; 4BFB3D11E5CB8B69B478A00E1E953223 /* UIHostingControllerWithContextFinder.html */ = {isa = PBXFileReference; includeInIndex = 1; name = UIHostingControllerWithContextFinder.html; path = docs/docsets/RouteComposer.docset/Contents/Resources/Documents/Structs/UIHostingControllerWithContextFinder.html; sourceTree = ""; }; 4C4F2C0AD84B85C07483D5698DEAC948 /* ModalPresentationStartingPoint.html */ = {isa = PBXFileReference; includeInIndex = 1; name = ModalPresentationStartingPoint.html; path = docs/docsets/RouteComposer.docset/Contents/Resources/Documents/Enums/ViewControllerActions/PresentModallyAction/ModalPresentationStartingPoint.html; sourceTree = ""; }; @@ -425,6 +430,7 @@ 5560C90F331F32CA55C4222DB2F9A4E9 /* jazzy.search.js */ = {isa = PBXFileReference; includeInIndex = 1; name = jazzy.search.js; path = docs/js/jazzy.search.js; sourceTree = ""; }; 5561DE88FFFA454CC9F92E6825A59E5A /* ClassFinder.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ClassFinder.swift; sourceTree = ""; }; 56528D225F757E1D46BE2A7BB330C477 /* SingleStep.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = SingleStep.swift; sourceTree = ""; }; + 5709AAC37DE1F6E86E7B8143F83F0171 /* AnyRoutingInterceptor.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = AnyRoutingInterceptor.swift; sourceTree = ""; }; 576303BF3B7A0167F3A852530D0A374B /* DismissibleWithRuntimeStorage.html */ = {isa = PBXFileReference; includeInIndex = 1; name = DismissibleWithRuntimeStorage.html; path = docs/Protocols/DismissibleWithRuntimeStorage.html; sourceTree = ""; }; 576B81345A91C408C361442E90A125A4 /* InterceptableRouter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = InterceptableRouter.swift; path = RouteComposer/Classes/InterceptableRouter.swift; sourceTree = ""; }; 57C51644D98C97A37BAC5440566C17B3 /* LogLevel.html */ = {isa = PBXFileReference; includeInIndex = 1; name = LogLevel.html; path = docs/docsets/RouteComposer.docset/Contents/Resources/Documents/Structs/DefaultLogger/LogLevel.html; sourceTree = ""; }; @@ -444,14 +450,13 @@ 5B84A0C14AD627531F9FFCD2B5A8D88C /* RouteComposer.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = RouteComposer.modulemap; sourceTree = ""; }; 5BF621858A1DF6ACEBF145E73842F94D /* StartingPoint.html */ = {isa = PBXFileReference; includeInIndex = 1; name = StartingPoint.html; path = docs/Structs/PresentingFinder/StartingPoint.html; sourceTree = ""; }; 5C2F4F0850CF8C24BFEC178D8C07CA81 /* Logging.html */ = {isa = PBXFileReference; includeInIndex = 1; name = Logging.html; path = docs/Logging.html; sourceTree = ""; }; - 5C42271CD302C87CF5852F877AC3482B /* ContextTransformerBox.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ContextTransformerBox.swift; sourceTree = ""; }; 5C51882C33827B70802C7B502F84516F /* Factories.html */ = {isa = PBXFileReference; includeInIndex = 1; name = Factories.html; path = docs/docsets/RouteComposer.docset/Contents/Resources/Documents/Factories.html; sourceTree = ""; }; 5C66EA19FDD0597AA5E4F069C6E90F65 /* ChildCoordinator.html */ = {isa = PBXFileReference; includeInIndex = 1; name = ChildCoordinator.html; path = docs/docsets/RouteComposer.docset/Contents/Resources/Documents/Structs/ChildCoordinator.html; sourceTree = ""; }; 5CCF92FCF75E5A28AEA104BC97E99120 /* Factory.html */ = {isa = PBXFileReference; includeInIndex = 1; name = Factory.html; path = docs/Protocols/Factory.html; sourceTree = ""; }; - 5CE18F6B586289F5F61C8345A3BDEECC /* InPlaceTransformingAnyContext.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = InPlaceTransformingAnyContext.swift; sourceTree = ""; }; 5D3851A996D337ABEEC25692FA958304 /* ContextTask.html */ = {isa = PBXFileReference; includeInIndex = 1; name = ContextTask.html; path = docs/Protocols/ContextTask.html; sourceTree = ""; }; 5D4CF67CC16F0233EF2116A3A00960DD /* StartingPoint.html */ = {isa = PBXFileReference; includeInIndex = 1; name = StartingPoint.html; path = docs/docsets/RouteComposer.docset/Contents/Resources/Documents/Structs/PresentingFinder/StartingPoint.html; sourceTree = ""; }; 5D78F4804907575B11B33334D4660800 /* ContextInstantiatable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ContextInstantiatable.swift; sourceTree = ""; }; + 5DA971B8CD39DEB07C26EA8A6B4E164C /* InterceptorMultiplexer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = InterceptorMultiplexer.swift; sourceTree = ""; }; 5E2050A069DCFC725E42E5553652F26D /* GenericStepAssembly.swift.html */ = {isa = PBXFileReference; includeInIndex = 1; name = GenericStepAssembly.swift.html; path = docs/tests/GenericStepAssembly.swift.html; sourceTree = ""; }; 5E52508DA7EA6BACBC74091A2C2406E2 /* SingleNavigationRouter.swift.html */ = {isa = PBXFileReference; includeInIndex = 1; name = SingleNavigationRouter.swift.html; path = docs/tests/SingleNavigationRouter.swift.html; sourceTree = ""; }; 5E6A0C9D1F15C0BEC52AB6D8BF331943 /* ActionConnectingAssembly.html */ = {isa = PBXFileReference; includeInIndex = 1; name = ActionConnectingAssembly.html; path = docs/docsets/RouteComposer.docset/Contents/Resources/Documents/Structs/ActionConnectingAssembly.html; sourceTree = ""; }; @@ -480,32 +485,31 @@ 6620E4AB60C4D13754ECC66F3E4A34D1 /* index.html */ = {isa = PBXFileReference; includeInIndex = 1; name = index.html; path = docs/docsets/RouteComposer.docset/Contents/Resources/Documents/index.html; sourceTree = ""; }; 663FA2409AD8EE9A935EC3B11D9CF829 /* InlineStackIteratingFinder.html */ = {isa = PBXFileReference; includeInIndex = 1; name = InlineStackIteratingFinder.html; path = docs/docsets/RouteComposer.docset/Contents/Resources/Documents/Structs/InlineStackIteratingFinder.html; sourceTree = ""; }; 664551CF28D809E1908AF41B625D876A /* Finder.html */ = {isa = PBXFileReference; includeInIndex = 1; name = Finder.html; path = docs/Protocols/Finder.html; sourceTree = ""; }; + 66A8757C0F134C3AE8C6D90C76C2AFF6 /* InterceptableStep.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = InterceptableStep.swift; sourceTree = ""; }; 67425F0E0A9256E6C22B675427D0DF21 /* Finder.html */ = {isa = PBXFileReference; includeInIndex = 1; name = Finder.html; path = docs/docsets/RouteComposer.docset/Contents/Resources/Documents/Protocols/Finder.html; sourceTree = ""; }; + 6761AA4370E6B983E875CDF128D33763 /* ContainerActionBox.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ContainerActionBox.swift; sourceTree = ""; }; 67C379745AA2486A499A0ECC2E108765 /* SimpleContainerFactory.html */ = {isa = PBXFileReference; includeInIndex = 1; name = SimpleContainerFactory.html; path = docs/docsets/RouteComposer.docset/Contents/Resources/Documents/Protocols/SimpleContainerFactory.html; sourceTree = ""; }; - 67CB47D31FB635259614667647C09391 /* ContextTaskBox.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ContextTaskBox.swift; sourceTree = ""; }; 6801B3CDD3DB4677B8D63F90502DBB87 /* ModalPresentationStartingPoint.html */ = {isa = PBXFileReference; includeInIndex = 1; name = ModalPresentationStartingPoint.html; path = docs/Enums/ViewControllerActions/PresentModallyAction/ModalPresentationStartingPoint.html; sourceTree = ""; }; 686E8D5FCF14A5E1937175BC421814EA /* DetailsNavigationFinder.swift.html */ = {isa = PBXFileReference; includeInIndex = 1; name = DetailsNavigationFinder.swift.html; path = docs/tests/DetailsNavigationFinder.swift.html; sourceTree = ""; }; - 68B7DF0AF26A095E98BDE7BC2BDE49C0 /* AnyPostRoutingTask.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = AnyPostRoutingTask.swift; sourceTree = ""; }; 690FFBD14A7A27542007B4F19A64A547 /* readme.html */ = {isa = PBXFileReference; includeInIndex = 1; name = readme.html; path = docs/docsets/RouteComposer.docset/Contents/Resources/Documents/readme.html; sourceTree = ""; }; 6A242734FBF7DD5AC17C78A0EC47AC39 /* ContextSettingTask.html */ = {isa = PBXFileReference; includeInIndex = 1; name = ContextSettingTask.html; path = docs/docsets/RouteComposer.docset/Contents/Resources/Documents/Structs/ContextSettingTask.html; sourceTree = ""; }; - 6A8DE234D1FE17EC6C44FC49CC36D206 /* ConvertingStep.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ConvertingStep.swift; sourceTree = ""; }; 6B0BCA600AFE990B64FF7665208FE3CE /* General Actions.html */ = {isa = PBXFileReference; includeInIndex = 1; name = "General Actions.html"; path = "docs/docsets/RouteComposer.docset/Contents/Resources/Documents/General Actions.html"; sourceTree = ""; }; 6B0DC97F1EDADA29435AC37E8761DF3A /* Logging.html */ = {isa = PBXFileReference; includeInIndex = 1; name = Logging.html; path = docs/docsets/RouteComposer.docset/Contents/Resources/Documents/Logging.html; sourceTree = ""; }; 6B4B39059B6ABA3D5D21BF057EA950E1 /* ChildCoordinator.swift.html */ = {isa = PBXFileReference; includeInIndex = 1; name = ChildCoordinator.swift.html; path = docs/tests/ChildCoordinator.swift.html; sourceTree = ""; }; 6B89F9D9B0AD1729ACBC81BBD37384AC /* LogMessage.html */ = {isa = PBXFileReference; includeInIndex = 1; name = LogMessage.html; path = docs/Enums/LogMessage.html; sourceTree = ""; }; 6C010A27CC754F3F5A60C02E6FB62B75 /* CompleteFactoryChainAssembly.swift.html */ = {isa = PBXFileReference; includeInIndex = 1; name = CompleteFactoryChainAssembly.swift.html; path = docs/tests/CompleteFactoryChainAssembly.swift.html; sourceTree = ""; }; + 6CEAB9AF9A91540EC6C8FEC231D92F1B /* BaseStep.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = BaseStep.swift; sourceTree = ""; }; 6CF0B8DA452E43E6697AAB770A79A80D /* GlobalInterceptorRouter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = GlobalInterceptorRouter.swift; sourceTree = ""; }; 6D965304546CC4978C32E4E4AC395670 /* UIViewController+Action.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "UIViewController+Action.swift"; sourceTree = ""; }; 6DFA081791A9B6AFC172DBE7647FAF87 /* UIViewController+Action.swift.html */ = {isa = PBXFileReference; includeInIndex = 1; name = "UIViewController+Action.swift.html"; path = "docs/tests/UIViewController+Action.swift.html"; sourceTree = ""; }; 6E2FA48CD2AE2B594A2C571AF7C33567 /* UIHostingControllerWithContextFactory.html */ = {isa = PBXFileReference; includeInIndex = 1; name = UIHostingControllerWithContextFactory.html; path = docs/docsets/RouteComposer.docset/Contents/Resources/Documents/Structs/UIHostingControllerWithContextFactory.html; sourceTree = ""; }; - 6F008D272425A6BF28605B4BA4E04C8D /* AnyContext.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = AnyContext.swift; sourceTree = ""; }; 6F0CDE7BDC3B41DFEBEE9C0335C574AC /* InlineContextTransformer.html */ = {isa = PBXFileReference; includeInIndex = 1; name = InlineContextTransformer.html; path = docs/Classes/InlineContextTransformer.html; sourceTree = ""; }; 6F13450CC6177C775A1D024EFB4D2426 /* ContextInstantiatable.html */ = {isa = PBXFileReference; includeInIndex = 1; name = ContextInstantiatable.html; path = docs/Protocols/ContextInstantiatable.html; sourceTree = ""; }; 6F72B2A66CD6E6059F89379EFF2AD0CE /* ContextTransformerBox.swift.html */ = {isa = PBXFileReference; includeInIndex = 1; name = ContextTransformerBox.swift.html; path = docs/tests/ContextTransformerBox.swift.html; sourceTree = ""; }; 6FF66790A63D307D3B8636619759A70E /* typeahead.jquery.js */ = {isa = PBXFileReference; includeInIndex = 1; name = typeahead.jquery.js; path = docs/js/typeahead.jquery.js; sourceTree = ""; }; 70975410D20B155DDFF21C372B062076 /* ContextAcceptingView.html */ = {isa = PBXFileReference; includeInIndex = 1; name = ContextAcceptingView.html; path = docs/Protocols/ContextAcceptingView.html; sourceTree = ""; }; - 711FE9D158F43DD215197EE474D8C9A4 /* RoutingStep.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RoutingStep.swift; sourceTree = ""; }; 716F970C8708E6396ED75E19F4666C8D /* DispatchQueue.html */ = {isa = PBXFileReference; includeInIndex = 1; name = DispatchQueue.html; path = docs/Extensions/DispatchQueue.html; sourceTree = ""; }; + 717EA39637DDA2EE7EC3EC4FC792C0F3 /* Array+PrivateExtension.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "Array+PrivateExtension.swift"; sourceTree = ""; }; 719F5F87B839EFDC7F6D3599E665D0F6 /* ActionConnectingAssembly.swift.html */ = {isa = PBXFileReference; includeInIndex = 1; name = ActionConnectingAssembly.swift.html; path = docs/tests/ActionConnectingAssembly.swift.html; sourceTree = ""; }; 7247E7EAADC53A539B1202E4484C11F7 /* PresentingFinder.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PresentingFinder.swift; sourceTree = ""; }; 726D123D27C195B7EB7F14DE0CCF0E4B /* PostRoutingTask.html */ = {isa = PBXFileReference; includeInIndex = 1; name = PostRoutingTask.html; path = docs/docsets/RouteComposer.docset/Contents/Resources/Documents/Protocols/PostRoutingTask.html; sourceTree = ""; }; @@ -529,22 +533,18 @@ 793146D5B87EB56F4FB563E9432A7529 /* PostRoutingTask.html */ = {isa = PBXFileReference; includeInIndex = 1; name = PostRoutingTask.html; path = docs/Protocols/PostRoutingTask.html; sourceTree = ""; }; 7A031900E8B71377AF8594158D61277F /* ConcreteContainerAdapter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ConcreteContainerAdapter.swift; sourceTree = ""; }; 7A4AEC26152B8688953F6605AA06CC14 /* RoutingInterceptable.swift.html */ = {isa = PBXFileReference; includeInIndex = 1; name = RoutingInterceptable.swift.html; path = docs/tests/RoutingInterceptable.swift.html; sourceTree = ""; }; - 7B922AC3644A562EE72B4F5B69BAC015 /* UIViewController+PrivateExtension.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "UIViewController+PrivateExtension.swift"; sourceTree = ""; }; 7C0D11508FD127B891CEA06A37E948A8 /* CustomWindowProvider.html */ = {isa = PBXFileReference; includeInIndex = 1; name = CustomWindowProvider.html; path = docs/docsets/RouteComposer.docset/Contents/Resources/Documents/Structs/CustomWindowProvider.html; sourceTree = ""; }; 7C99A80D51C6F45C3D1E3A018E08E716 /* DefaultStackIterator.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = DefaultStackIterator.swift; sourceTree = ""; }; 7D2B46ACF8A39942FF1EF1B7474D7DA6 /* Pods-RouteComposer_Example-RouteComposer_Tests-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-RouteComposer_Example-RouteComposer_Tests-dummy.m"; sourceTree = ""; }; - 7D8C0910EC8595DAF01B6FC639DCB073 /* PreparableEntity.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PreparableEntity.swift; sourceTree = ""; }; 7EC17DBBDDE91B3DF18821055278305A /* Pods-RouteComposer_Example-RouteComposer_Tests.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-RouteComposer_Example-RouteComposer_Tests.modulemap"; sourceTree = ""; }; 7EC22D0CF8D81B665B313EBE38560493 /* InlineFactory.swift.html */ = {isa = PBXFileReference; includeInIndex = 1; name = InlineFactory.swift.html; path = docs/tests/InlineFactory.swift.html; sourceTree = ""; }; 7EDAF0E443EB4CC5BC872A58F9341139 /* SwitchAssembly.html */ = {isa = PBXFileReference; includeInIndex = 1; name = SwitchAssembly.html; path = docs/Classes/SwitchAssembly.html; sourceTree = ""; }; - 7F1C8E7B9205BF521055470C880BD829 /* FactoryBox.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = FactoryBox.swift; sourceTree = ""; }; 7F7479DB28FCE6D87E90EAD6CE62F67C /* GlobalInterceptorRouter.html */ = {isa = PBXFileReference; includeInIndex = 1; name = GlobalInterceptorRouter.html; path = docs/docsets/RouteComposer.docset/Contents/Resources/Documents/Structs/GlobalInterceptorRouter.html; sourceTree = ""; }; 8028E624BDF27AA6B845A6B14B585596 /* UITabBarController.html */ = {isa = PBXFileReference; includeInIndex = 1; name = UITabBarController.html; path = docs/docsets/RouteComposer.docset/Contents/Resources/Documents/Extensions/UITabBarController.html; sourceTree = ""; }; 807290CB43F5672CEE64D3472CAB3D4E /* ContextSettingTask.swift.html */ = {isa = PBXFileReference; includeInIndex = 1; name = ContextSettingTask.swift.html; path = docs/tests/ContextSettingTask.swift.html; sourceTree = ""; }; 8171ADEC973C54A43F8CC23E7F131552 /* PostRoutingTask.swift.html */ = {isa = PBXFileReference; includeInIndex = 1; name = PostRoutingTask.swift.html; path = docs/tests/PostRoutingTask.swift.html; sourceTree = ""; }; 8190FED39D3330DFE6CBC0427743D1DA /* TabBarControllerFactory.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = TabBarControllerFactory.swift; sourceTree = ""; }; 82C68B2487AB5C514DC875B231C8B60C /* InlineContextTask.html */ = {isa = PBXFileReference; includeInIndex = 1; name = InlineContextTask.html; path = docs/docsets/RouteComposer.docset/Contents/Resources/Documents/Structs/InlineContextTask.html; sourceTree = ""; }; - 837887E329ADD698A95A575A726814A1 /* NilContextTransformer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = NilContextTransformer.swift; sourceTree = ""; }; 83D75DB652E358FF33A07610907FAA6A /* PostponedIntegrationFactory.swift.html */ = {isa = PBXFileReference; includeInIndex = 1; name = PostponedIntegrationFactory.swift.html; path = docs/tests/PostponedIntegrationFactory.swift.html; sourceTree = ""; }; 844B86A94D809DCF089AD7FD16D1F0B2 /* SimpleContainerFactory.html */ = {isa = PBXFileReference; includeInIndex = 1; name = SimpleContainerFactory.html; path = docs/Protocols/SimpleContainerFactory.html; sourceTree = ""; }; 84892A07A0497D334D979C0C8AB51E7A /* ContainerAdapterLocator.html */ = {isa = PBXFileReference; includeInIndex = 1; name = ContainerAdapterLocator.html; path = docs/Protocols/ContainerAdapterLocator.html; sourceTree = ""; }; @@ -552,13 +552,11 @@ 85CBF8ED3D55B0315E21E9F34ACD9B3A /* ContainerActionBox.swift.html */ = {isa = PBXFileReference; includeInIndex = 1; name = ContainerActionBox.swift.html; path = docs/tests/ContainerActionBox.swift.html; sourceTree = ""; }; 85EFCAEE4C6CE55B9AEDF9B66CB58DD7 /* CustomContainerViewController.html */ = {isa = PBXFileReference; includeInIndex = 1; name = CustomContainerViewController.html; path = docs/docsets/RouteComposer.docset/Contents/Resources/Documents/Protocols/CustomContainerViewController.html; sourceTree = ""; }; 860B922232F021A75DF611D4EA4DEE8B /* UISplitViewController+Action.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "UISplitViewController+Action.swift"; sourceTree = ""; }; - 86136E05C5CDF8A2E57B1316C4B465BB /* AnyFactory.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = AnyFactory.swift; sourceTree = ""; }; 864AA20FA5B69AD740D17070E4CFBF25 /* AnyFactoryBox.swift.html */ = {isa = PBXFileReference; includeInIndex = 1; name = AnyFactoryBox.swift.html; path = docs/tests/AnyFactoryBox.swift.html; sourceTree = ""; }; 871F6D133FA3117624517360AECD3773 /* InitialControllerErrorState.html */ = {isa = PBXFileReference; includeInIndex = 1; name = InitialControllerErrorState.html; path = docs/Enums/RoutingError/InitialControllerErrorState.html; sourceTree = ""; }; 87BA9BA43CF7995CFD89F5867B531EC7 /* highlight.css */ = {isa = PBXFileReference; includeInIndex = 1; name = highlight.css; path = docs/css/highlight.css; sourceTree = ""; }; 87FABC2B2073509F83B626B772E5681E /* CompleteFactoryChainAssembly.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = CompleteFactoryChainAssembly.swift; sourceTree = ""; }; 88B7348CA85ED93A0483FB52A7ED1791 /* DestinationStep.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DestinationStep.swift; path = RouteComposer/Classes/DestinationStep.swift; sourceTree = ""; }; - 896D22EBBC4EE6D8F7628FEE764305DE /* BaseStep.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = BaseStep.swift; sourceTree = ""; }; 897C337F7AFC2CCADCC692C33D68260B /* RoutingInterceptorBox.swift.html */ = {isa = PBXFileReference; includeInIndex = 1; name = RoutingInterceptorBox.swift.html; path = docs/tests/RoutingInterceptorBox.swift.html; sourceTree = ""; }; 89DE7DA6E86A5584EED9FCD80D4B9053 /* Pods-RouteComposer_Example-RouteComposer_Tests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-RouteComposer_Example-RouteComposer_Tests.debug.xcconfig"; sourceTree = ""; }; 89E62AE995BA9859589E6D54DDEECC34 /* SetAsMasterAction.html */ = {isa = PBXFileReference; includeInIndex = 1; name = SetAsMasterAction.html; path = docs/docsets/RouteComposer.docset/Contents/Resources/Documents/Enums/SplitViewControllerActions/SetAsMasterAction.html; sourceTree = ""; }; @@ -571,15 +569,13 @@ 8B3A9A26E0BAECA2C2CEA9281EC620ED /* lunr.min.js */ = {isa = PBXFileReference; includeInIndex = 1; name = lunr.min.js; path = docs/docsets/RouteComposer.docset/Contents/Resources/Documents/js/lunr.min.js; sourceTree = ""; }; 8B6625CD569B7711BBA221682E0C8D6F /* TabBarViewController+Extension.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "TabBarViewController+Extension.swift"; sourceTree = ""; }; 8B6CDDBAF1503939E875734EF6E2DC17 /* UIHostingController.html */ = {isa = PBXFileReference; includeInIndex = 1; name = UIHostingController.html; path = docs/docsets/RouteComposer.docset/Contents/Resources/Documents/Extensions/UIHostingController.html; sourceTree = ""; }; - 8C09830C4EA769F14B531F00D3CFD245 /* InterceptableStep.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = InterceptableStep.swift; sourceTree = ""; }; 8C72BC4DD30E7F276C38FEC55449C2B5 /* CATransaction.html */ = {isa = PBXFileReference; includeInIndex = 1; name = CATransaction.html; path = docs/Extensions/CATransaction.html; sourceTree = ""; }; 8C9AFED520FE973FA03ABEC0FDD8146E /* Logger.html */ = {isa = PBXFileReference; includeInIndex = 1; name = Logger.html; path = docs/Protocols/Logger.html; sourceTree = ""; }; 8CD9663E877C6BC39D6E309FA8F8B3DE /* GeneralStep.html */ = {isa = PBXFileReference; includeInIndex = 1; name = GeneralStep.html; path = docs/Enums/GeneralStep.html; sourceTree = ""; }; - 8D13BDA8B411A621396E471CAA5BBD20 /* ChainableStep.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ChainableStep.swift; sourceTree = ""; }; 8D6E1412527779DD0543504F9CF49A3E /* SearchOptions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SearchOptions.swift; path = RouteComposer/Classes/SearchOptions.swift; sourceTree = ""; }; 8D96C497D1928255096DFC488E621722 /* ContextAccepting.html */ = {isa = PBXFileReference; includeInIndex = 1; name = ContextAccepting.html; path = docs/Protocols/ContextAccepting.html; sourceTree = ""; }; - 8DE6FB412C4838C33B3A017A2D7DBB08 /* PerformableStepResult.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PerformableStepResult.swift; sourceTree = ""; }; 8E8404C0A5BFD860C63247444DA30626 /* GlobalInterceptorRouter.swift.html */ = {isa = PBXFileReference; includeInIndex = 1; name = GlobalInterceptorRouter.swift.html; path = docs/tests/GlobalInterceptorRouter.swift.html; sourceTree = ""; }; + 8F64CE3F5A2D44540E57EAF96EFFC4B0 /* InPlaceTransformingAnyContext.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = InPlaceTransformingAnyContext.swift; sourceTree = ""; }; 8F8A583265DC866CA51F5BCC5B21900B /* Extras.html */ = {isa = PBXFileReference; includeInIndex = 1; name = Extras.html; path = docs/docsets/RouteComposer.docset/Contents/Resources/Documents/Extras.html; sourceTree = ""; }; 8FB933EFED78D0E414FFB7EF9A9A05E5 /* WindowProvider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = WindowProvider.swift; sourceTree = ""; }; 90453A03F2E88AA9487B8117677B766C /* InlinePostTask.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = InlinePostTask.swift; sourceTree = ""; }; @@ -590,6 +586,7 @@ 91C22CC160D6415940276948726B1608 /* TaskCollector.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = TaskCollector.swift; sourceTree = ""; }; 91CF1B53D872B583BF7F5661191597C0 /* Pods-RouteComposer_Example.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-RouteComposer_Example.modulemap"; sourceTree = ""; }; 91E261608729EC762C446CC0E002636B /* RoutingInterceptable.html */ = {isa = PBXFileReference; includeInIndex = 1; name = RoutingInterceptable.html; path = docs/docsets/RouteComposer.docset/Contents/Resources/Documents/Protocols/RoutingInterceptable.html; sourceTree = ""; }; + 91E2635BF6BD6B1585E2809F265F3687 /* SwitcherStep.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = SwitcherStep.swift; sourceTree = ""; }; 9215C11E8D785E97DF6EA8A78B7DE4F0 /* CompleteFactoryAssembly.html */ = {isa = PBXFileReference; includeInIndex = 1; name = CompleteFactoryAssembly.html; path = docs/docsets/RouteComposer.docset/Contents/Resources/Documents/Classes/CompleteFactoryAssembly.html; sourceTree = ""; }; 92659B955347606896D58D2C5EE93DC6 /* InlineContextTransformer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = InlineContextTransformer.swift; sourceTree = ""; }; 92973948D42652598205DDEE921723FF /* NilFinder.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = NilFinder.swift; sourceTree = ""; }; @@ -623,10 +620,10 @@ 9DA418AE674160061ECD98B889D0A28E /* RoutingError.html */ = {isa = PBXFileReference; includeInIndex = 1; name = RoutingError.html; path = docs/docsets/RouteComposer.docset/Contents/Resources/Documents/Enums/RoutingError.html; sourceTree = ""; }; 9DA4E1C23B520477894F97E0619A21CF /* CompleteFactoryChainAssembly.html */ = {isa = PBXFileReference; includeInIndex = 1; name = CompleteFactoryChainAssembly.html; path = docs/Classes/CompleteFactoryChainAssembly.html; sourceTree = ""; }; 9E2E8EA80FCA4EAC3DE42E133C17C7F7 /* DefaultContainerAdapterLocator.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = DefaultContainerAdapterLocator.swift; sourceTree = ""; }; + 9E5BD50762A91DF55E45BD370A644ACE /* ChainableStep.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ChainableStep.swift; sourceTree = ""; }; 9FA6DE42FB4CFA7FC395F6D90A8B617D /* Pods-RouteComposer_Example-RouteComposer_Tests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-RouteComposer_Example-RouteComposer_Tests.release.xcconfig"; sourceTree = ""; }; 9FF519215AD4C30179F7BBBEE77F680C /* ContainerAction.html */ = {isa = PBXFileReference; includeInIndex = 1; name = ContainerAction.html; path = docs/Protocols/ContainerAction.html; sourceTree = ""; }; A00B9AAC611F531137F8A0868D2F86B4 /* readme.html */ = {isa = PBXFileReference; includeInIndex = 1; name = readme.html; path = docs/readme.html; sourceTree = ""; }; - A01F6206B7074162E21E133BD9902417 /* PerformableStep.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PerformableStep.swift; sourceTree = ""; }; A0CE443CD577449A0B5B596ED53A9632 /* CompleteFactory.swift.html */ = {isa = PBXFileReference; includeInIndex = 1; name = CompleteFactory.swift.html; path = docs/tests/CompleteFactory.swift.html; sourceTree = ""; }; A179681C57F9C9B487F050833D6A3F17 /* ContextTransformer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ContextTransformer.swift; path = RouteComposer/Classes/ContextTransformer.swift; sourceTree = ""; }; A1D472A02EF24594BA07A790A607D8D0 /* ClassFinder.html */ = {isa = PBXFileReference; includeInIndex = 1; name = ClassFinder.html; path = docs/docsets/RouteComposer.docset/Contents/Resources/Documents/Structs/ClassFinder.html; sourceTree = ""; }; @@ -638,13 +635,11 @@ A33D20C932CBA18A0EA700E7010757B8 /* Strategy.html */ = {isa = PBXFileReference; includeInIndex = 1; name = Strategy.html; path = docs/docsets/RouteComposer.docset/Contents/Resources/Documents/Structs/NavigationDelayingInterceptor/Strategy.html; sourceTree = ""; }; A366E365E449E23B8ABF6FB20072D2DB /* DefaultLogger.html */ = {isa = PBXFileReference; includeInIndex = 1; name = DefaultLogger.html; path = docs/Structs/DefaultLogger.html; sourceTree = ""; }; A3D1DF114039BACB2DBCC1C90987DE4F /* CompleteFactoryAssembly.html */ = {isa = PBXFileReference; includeInIndex = 1; name = CompleteFactoryAssembly.html; path = docs/Classes/CompleteFactoryAssembly.html; sourceTree = ""; }; - A46F3208DCA5034BACA938B851087564 /* ContainerFactoryBox.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ContainerFactoryBox.swift; sourceTree = ""; }; A4A3F3795789232AD8646161B79DF59A /* ContextSettingTask.html */ = {isa = PBXFileReference; includeInIndex = 1; name = ContextSettingTask.html; path = docs/Structs/ContextSettingTask.html; sourceTree = ""; }; A5C9FA270B1E8BB50A0436BF8AB96C64 /* ContainerFactory.html */ = {isa = PBXFileReference; includeInIndex = 1; name = ContainerFactory.html; path = docs/Protocols/ContainerFactory.html; sourceTree = ""; }; A61828AAB0A9B9332590508B02C7A1D8 /* ClassFactory.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ClassFactory.swift; sourceTree = ""; }; A665A670FE1EE5663134C3FC71D7A92A /* SwitcherStep.swift.html */ = {isa = PBXFileReference; includeInIndex = 1; name = SwitcherStep.swift.html; path = docs/tests/SwitcherStep.swift.html; sourceTree = ""; }; A68188DB0436EB3094F498AA60E29944 /* TabBarControllerAdapter.html */ = {isa = PBXFileReference; includeInIndex = 1; name = TabBarControllerAdapter.html; path = docs/Structs/TabBarControllerAdapter.html; sourceTree = ""; }; - A7159CE4888CEBE725DAB5FF7E41AD09 /* AnyFactoryBox.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = AnyFactoryBox.swift; sourceTree = ""; }; A74813F9FB7C559E2E18724D0162FA64 /* UIHostingControllerWithContextFactory.swift.html */ = {isa = PBXFileReference; includeInIndex = 1; name = UIHostingControllerWithContextFactory.swift.html; path = docs/tests/UIHostingControllerWithContextFactory.swift.html; sourceTree = ""; }; A7BAD253BC6411DD6772EDDC197A6A1D /* Other Classes.html */ = {isa = PBXFileReference; includeInIndex = 1; name = "Other Classes.html"; path = "docs/Other Classes.html"; sourceTree = ""; }; A7D8E4CB82BA11237181EDB65BBE2B58 /* ContextAccepting.html */ = {isa = PBXFileReference; includeInIndex = 1; name = ContextAccepting.html; path = docs/docsets/RouteComposer.docset/Contents/Resources/Documents/Protocols/ContextAccepting.html; sourceTree = ""; }; @@ -654,27 +649,26 @@ A8C29EED59AB0D643256536E41D2B841 /* StackIteratingFinder.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = StackIteratingFinder.swift; sourceTree = ""; }; A9587D2F89332C22F9C64D49A3A647C5 /* SingleNavigationRouter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = SingleNavigationRouter.swift; sourceTree = ""; }; AA127FD91BDCA0CE483989AC687B083C /* InlinePostTask.html */ = {isa = PBXFileReference; includeInIndex = 1; name = InlinePostTask.html; path = docs/Structs/InlinePostTask.html; sourceTree = ""; }; + AA4E50752E5EF3405B6D5BC8AE110704 /* PreparableEntity.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PreparableEntity.swift; sourceTree = ""; }; AAD8FEAF6A95CDC53F85CC46CF52F0C7 /* InlinePostTask.swift.html */ = {isa = PBXFileReference; includeInIndex = 1; name = InlinePostTask.swift.html; path = docs/tests/InlinePostTask.swift.html; sourceTree = ""; }; ABBF8FA71D179DE35CE5DB7DB6D9BE3B /* DefaultRouter.html */ = {isa = PBXFileReference; includeInIndex = 1; name = DefaultRouter.html; path = docs/Structs/DefaultRouter.html; sourceTree = ""; }; ACDB52A0E413E7A37A4C6E6258419436 /* badge.svg */ = {isa = PBXFileReference; includeInIndex = 1; name = badge.svg; path = docs/badge.svg; sourceTree = ""; }; ADF093CE0396ADB6FF9940591EC624D9 /* FinderBox.swift.html */ = {isa = PBXFileReference; includeInIndex = 1; name = FinderBox.swift.html; path = docs/tests/FinderBox.swift.html; sourceTree = ""; }; AE26E51835DC31E79F3BC0D9C53848A5 /* Dismissible.swift.html */ = {isa = PBXFileReference; includeInIndex = 1; name = Dismissible.swift.html; path = docs/tests/Dismissible.swift.html; sourceTree = ""; }; AE75DB483EA683AD821E2D0AA6612A5D /* PushOnToDetailsAction.html */ = {isa = PBXFileReference; includeInIndex = 1; name = PushOnToDetailsAction.html; path = docs/docsets/RouteComposer.docset/Contents/Resources/Documents/Enums/SplitViewControllerActions/PushOnToDetailsAction.html; sourceTree = ""; }; - AF1301D2228E27D4AB4D4C5902E0721C /* AnyContextTransformer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = AnyContextTransformer.swift; sourceTree = ""; }; - AF8AAFFA4BD5B24A87D1DE963DA0B10D /* AnyAction.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = AnyAction.swift; sourceTree = ""; }; AFBB437C2158B394273269DBA07B5156 /* dash.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; name = dash.png; path = docs/docsets/RouteComposer.docset/Contents/Resources/Documents/img/dash.png; sourceTree = ""; }; + B0168C6ECD938D149EEF9DB0960B05DE /* PostRoutingTaskBox.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PostRoutingTaskBox.swift; sourceTree = ""; }; B01E9E0D60F9D748C106AB544CA3D12A /* FactoryBox.swift.html */ = {isa = PBXFileReference; includeInIndex = 1; name = FactoryBox.swift.html; path = docs/tests/FactoryBox.swift.html; sourceTree = ""; }; B06C26D360EB14A9631754AAB035AAD5 /* RoutingResult.html */ = {isa = PBXFileReference; includeInIndex = 1; name = RoutingResult.html; path = docs/Enums/RoutingResult.html; sourceTree = ""; }; B0A14D04371E4DBD8D6D8293E7505276 /* NavigationControllerActions.html */ = {isa = PBXFileReference; includeInIndex = 1; name = NavigationControllerActions.html; path = docs/Enums/NavigationControllerActions.html; sourceTree = ""; }; B0B3AA43806AE4AE56FBAADBBAADC15A /* TabBarControllerStep.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = TabBarControllerStep.swift; sourceTree = ""; }; + B10643639E190902EB6939DC889BFD89 /* NilContextTransformer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = NilContextTransformer.swift; sourceTree = ""; }; B15DA2D4E89657D96D95ED96D317C6D6 /* SimpleContainerFactory.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = SimpleContainerFactory.swift; sourceTree = ""; }; B19AC0BE7D7CFF18701B75C17DAD8550 /* PushReplacingLastAction.html */ = {isa = PBXFileReference; includeInIndex = 1; name = PushReplacingLastAction.html; path = docs/docsets/RouteComposer.docset/Contents/Resources/Documents/Enums/NavigationControllerActions/PushReplacingLastAction.html; sourceTree = ""; }; B20F4F3FD58AF0D147DE2DF44AD6BF6E /* SingleNavigationLock.html */ = {isa = PBXFileReference; includeInIndex = 1; name = SingleNavigationLock.html; path = docs/Classes/SingleNavigationLock.html; sourceTree = ""; }; - B26503AB147EED8B1CD03692D4C344E2 /* InterceptorMultiplexer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = InterceptorMultiplexer.swift; sourceTree = ""; }; + B2867E7EC79FC1697165B70B500AC5DA /* NilEntity.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = NilEntity.swift; sourceTree = ""; }; B2CCB8A0F15D8EAF28B613E0661F5844 /* ContextTaskBox.swift.html */ = {isa = PBXFileReference; includeInIndex = 1; name = ContextTaskBox.swift.html; path = docs/tests/ContextTaskBox.swift.html; sourceTree = ""; }; - B2F9347966EABB7DCFD63E90E1B1DB21 /* AnyFinder.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = AnyFinder.swift; sourceTree = ""; }; B3765D0B97AF38B53580854D63915A5B /* RouteComposerDefaults.swift.html */ = {isa = PBXFileReference; includeInIndex = 1; name = RouteComposerDefaults.swift.html; path = docs/tests/RouteComposerDefaults.swift.html; sourceTree = ""; }; - B3AE081F6F9CA63E712F5113C929673C /* SwitcherStep.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = SwitcherStep.swift; sourceTree = ""; }; B3EB7C73E028756C405ECF7732E2DE5A /* GenericStepAssembly.html */ = {isa = PBXFileReference; includeInIndex = 1; name = GenericStepAssembly.html; path = docs/Classes/GenericStepAssembly.html; sourceTree = ""; }; B3FB2DC73657A87D85DD4CA362EF0A11 /* RouteComposer-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "RouteComposer-umbrella.h"; sourceTree = ""; }; B423080658896A5C8C00CF9A9DBE67DC /* ContextChecking.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ContextChecking.swift; sourceTree = ""; }; @@ -684,6 +678,7 @@ B62F2EFB2A071FF0D3685BC5839A258B /* UIHostingControllerWithContextFactory.html */ = {isa = PBXFileReference; includeInIndex = 1; name = UIHostingControllerWithContextFactory.html; path = docs/Structs/UIHostingControllerWithContextFactory.html; sourceTree = ""; }; B688BC7BAAC914B5FA63D802D65F6FCA /* Dismissible.html */ = {isa = PBXFileReference; includeInIndex = 1; name = Dismissible.html; path = docs/Protocols/Dismissible.html; sourceTree = ""; }; B789D7165048F37E6ED6DC1A46C24D1F /* AnyContextBox.swift.html */ = {isa = PBXFileReference; includeInIndex = 1; name = AnyContextBox.swift.html; path = docs/tests/AnyContextBox.swift.html; sourceTree = ""; }; + B7E959DF8D9DF090DED0A44FD4983AA0 /* AnyContextTask.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = AnyContextTask.swift; sourceTree = ""; }; B8AFAA5DF72CECD0304355F34181A2D7 /* CATransactionWrappedAction.html */ = {isa = PBXFileReference; includeInIndex = 1; name = CATransactionWrappedAction.html; path = docs/Structs/CATransactionWrappedAction.html; sourceTree = ""; }; B8BE10AF1E3481AA2CE739131EC4E208 /* UISplitViewController+Action.swift.html */ = {isa = PBXFileReference; includeInIndex = 1; name = "UISplitViewController+Action.swift.html"; path = "docs/tests/UISplitViewController+Action.swift.html"; sourceTree = ""; }; B95CDD49EB1E6AD26183D3F3A8EB6B69 /* InlineContextTask.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = InlineContextTask.swift; sourceTree = ""; }; @@ -692,8 +687,8 @@ BB4A643D12BBE26720C2D9AD46CC03F8 /* NavigationControllerFactory.swift.html */ = {isa = PBXFileReference; includeInIndex = 1; name = NavigationControllerFactory.swift.html; path = docs/tests/NavigationControllerFactory.swift.html; sourceTree = ""; }; BB8DFED651C7DC65A16C20371B71DAD6 /* SplitControllerStep.html */ = {isa = PBXFileReference; includeInIndex = 1; name = SplitControllerStep.html; path = docs/Classes/SplitControllerStep.html; sourceTree = ""; }; BBC334C205CC6069A6344CBA31AE10DA /* NavigationController+Extension.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "NavigationController+Extension.swift"; sourceTree = ""; }; - BBE73FAEEC276D3E65B80C2B72A4F9FD /* ActionBox.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ActionBox.swift; sourceTree = ""; }; BD45BCFA2A7E29BBE6918A512EC36279 /* Array.html */ = {isa = PBXFileReference; includeInIndex = 1; name = Array.html; path = docs/Extensions/Array.html; sourceTree = ""; }; + BD79566300A56A0703280D3ABFAC0399 /* PostRoutingTaskMultiplexer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PostRoutingTaskMultiplexer.swift; sourceTree = ""; }; BD861D9B7E13736E9C817005A7CF8F6F /* FinderFactory.html */ = {isa = PBXFileReference; includeInIndex = 1; name = FinderFactory.html; path = docs/Structs/FinderFactory.html; sourceTree = ""; }; BDAE46E4CB52A940E58E7702BBE6A3DA /* InlineInterceptor.html */ = {isa = PBXFileReference; includeInIndex = 1; name = InlineInterceptor.html; path = docs/docsets/RouteComposer.docset/Contents/Resources/Documents/Structs/InlineInterceptor.html; sourceTree = ""; }; BE3D76009FD44FB92F3811A3BF4A4C06 /* SplitControllerFactory.html */ = {isa = PBXFileReference; includeInIndex = 1; name = SplitControllerFactory.html; path = docs/Structs/SplitControllerFactory.html; sourceTree = ""; }; @@ -701,7 +696,9 @@ BF931BDACCF86B85AD2EBD2697A89A8E /* Finders.html */ = {isa = PBXFileReference; includeInIndex = 1; name = Finders.html; path = docs/docsets/RouteComposer.docset/Contents/Resources/Documents/Finders.html; sourceTree = ""; }; C071536D1BE9EFAD0B711E2A294E8185 /* SingleContainerStep.html */ = {isa = PBXFileReference; includeInIndex = 1; name = SingleContainerStep.html; path = docs/docsets/RouteComposer.docset/Contents/Resources/Documents/Classes/SingleContainerStep.html; sourceTree = ""; }; C08CDEFBF6F50F98F4664D1E40F6195D /* jazzy.search.js */ = {isa = PBXFileReference; includeInIndex = 1; name = jazzy.search.js; path = docs/docsets/RouteComposer.docset/Contents/Resources/Documents/js/jazzy.search.js; sourceTree = ""; }; + C1482FAF8E4C07AA15D346BB30873976 /* ContextTaskBox.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ContextTaskBox.swift; sourceTree = ""; }; C14BE4221958A12E4B6132D3AD087585 /* RouteComposer-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "RouteComposer-Info.plist"; sourceTree = ""; }; + C20E766397A3EE7C50D94BD9A31C0B7A /* ContainerFactoryBox.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ContainerFactoryBox.swift; sourceTree = ""; }; C23607F3140268A50ABC0A208FADB008 /* NavigationControllerStep.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = NavigationControllerStep.swift; sourceTree = ""; }; C2AE89F77DE182008BD82FC9B74034FC /* StepAssembly.swift.html */ = {isa = PBXFileReference; includeInIndex = 1; name = StepAssembly.swift.html; path = docs/tests/StepAssembly.swift.html; sourceTree = ""; }; C377BDB617D7FC5EE8FC4965CCD48624 /* ChainAssembly.swift.html */ = {isa = PBXFileReference; includeInIndex = 1; name = ChainAssembly.swift.html; path = docs/tests/ChainAssembly.swift.html; sourceTree = ""; }; @@ -713,12 +710,12 @@ C6878267C7834A9415464C2A4189E446 /* NavigationDelayInterceptor.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = NavigationDelayInterceptor.swift; sourceTree = ""; }; C76C335D9931574E7A01025D7BB146E0 /* PostRoutingTask.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PostRoutingTask.swift; path = RouteComposer/Classes/PostRoutingTask.swift; sourceTree = ""; }; C797961A96D3AE7604DDE03D315880E5 /* ContextTaskMultiplexer.swift.html */ = {isa = PBXFileReference; includeInIndex = 1; name = ContextTaskMultiplexer.swift.html; path = docs/tests/ContextTaskMultiplexer.swift.html; sourceTree = ""; }; - C7A87092304585535B3315B38771F502 /* AnyContextTask.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = AnyContextTask.swift; sourceTree = ""; }; C7C862DDAFEC7C1CD6292526F9950126 /* UIHostingControllerFactory.html */ = {isa = PBXFileReference; includeInIndex = 1; name = UIHostingControllerFactory.html; path = docs/docsets/RouteComposer.docset/Contents/Resources/Documents/Structs/UIHostingControllerFactory.html; sourceTree = ""; }; C7CB46188D52BB3E3CDF15223D6BB393 /* Destination.html */ = {isa = PBXFileReference; includeInIndex = 1; name = Destination.html; path = docs/docsets/RouteComposer.docset/Contents/Resources/Documents/Structs/Destination.html; sourceTree = ""; }; C7E45E272F202A2F147976A9D03B499D /* KeyWindowProvider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = KeyWindowProvider.swift; sourceTree = ""; }; C8269C116AA9701BBEAA2E215A537424 /* ContainerAdapterLocator.html */ = {isa = PBXFileReference; includeInIndex = 1; name = ContainerAdapterLocator.html; path = docs/docsets/RouteComposer.docset/Contents/Resources/Documents/Protocols/ContainerAdapterLocator.html; sourceTree = ""; }; C8296E5C420CA43D4301EE6F17FE590A /* LICENSE */ = {isa = PBXFileReference; includeInIndex = 1; path = LICENSE; sourceTree = ""; }; + C84E924D893C268B9D7AC9E227B281B6 /* ConvertingStep.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ConvertingStep.swift; sourceTree = ""; }; C87E94C5268438976974243FBB49C5F7 /* jazzy.css */ = {isa = PBXFileReference; includeInIndex = 1; name = jazzy.css; path = docs/css/jazzy.css; sourceTree = ""; }; C8ABDBD534188F18E82AC374D056103D /* InterceptableStepAssembling.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = InterceptableStepAssembling.swift; sourceTree = ""; }; C8BF0FECBE89CC6B17E921963B03ADED /* InstanceFinder.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = InstanceFinder.swift; sourceTree = ""; }; @@ -736,8 +733,8 @@ CCC7DD545F9770385BC8379087AAAB14 /* UITabBarController.html */ = {isa = PBXFileReference; includeInIndex = 1; name = UITabBarController.html; path = docs/Extensions/UITabBarController.html; sourceTree = ""; }; CD5C94E79DEF0F384DF4AF67FFCD8468 /* RoutingInterceptor.html */ = {isa = PBXFileReference; includeInIndex = 1; name = RoutingInterceptor.html; path = docs/Protocols/RoutingInterceptor.html; sourceTree = ""; }; CE8840A9F382D0F3CC7A76BC36E487BF /* KeyWindowProvider.html */ = {isa = PBXFileReference; includeInIndex = 1; name = KeyWindowProvider.html; path = docs/Structs/KeyWindowProvider.html; sourceTree = ""; }; - CEA8BE1CC976B9DE1CE5914CE11057B5 /* PostRoutingTaskBox.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PostRoutingTaskBox.swift; sourceTree = ""; }; CF0FADFAD002AFA588EEBC128CB7F8D9 /* NavigationControllerStep.swift.html */ = {isa = PBXFileReference; includeInIndex = 1; name = NavigationControllerStep.swift.html; path = docs/tests/NavigationControllerStep.swift.html; sourceTree = ""; }; + CF14CDB7913A27C3AA5EFDD539A80D0B /* DefaultRouter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = DefaultRouter.swift; sourceTree = ""; }; CF7C8E04D0561DC4BEC6C9EFC713C892 /* UIHostingController.html */ = {isa = PBXFileReference; includeInIndex = 1; name = UIHostingController.html; path = docs/Extensions/UIHostingController.html; sourceTree = ""; }; CFCA30F94C09573B5B8FED3BE9FB55AB /* FinderFactory.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = FinderFactory.swift; sourceTree = ""; }; D018588A6297D1DE40E8BBB482DA4FC3 /* PushToDetailsAction.html */ = {isa = PBXFileReference; includeInIndex = 1; name = PushToDetailsAction.html; path = docs/docsets/RouteComposer.docset/Contents/Resources/Documents/Enums/SplitViewControllerActions/PushToDetailsAction.html; sourceTree = ""; }; @@ -746,6 +743,7 @@ D0C6E4B0B629D9870A9AD356210B1428 /* DefaultLogger+LogLevel.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "DefaultLogger+LogLevel.swift"; sourceTree = ""; }; D1753A11E17D33C4CA552882A9DDBE81 /* PushAction.html */ = {isa = PBXFileReference; includeInIndex = 1; name = PushAction.html; path = docs/Enums/NavigationControllerActions/PushAction.html; sourceTree = ""; }; D17F9E39E6E07C94B2BAF9A1779E915D /* spinner.gif */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.gif; name = spinner.gif; path = docs/docsets/RouteComposer.docset/Contents/Resources/Documents/img/spinner.gif; sourceTree = ""; }; + D1FBA1053D441AEAD695618DF93E4A9C /* FinderBox.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = FinderBox.swift; sourceTree = ""; }; D21CF1A24B4B0D97E05A0AE3E43BBDB9 /* StartingPoint.html */ = {isa = PBXFileReference; includeInIndex = 1; name = StartingPoint.html; path = docs/Structs/DefaultStackIterator/StartingPoint.html; sourceTree = ""; }; D2317C195C7F5140DD2A793191809B1D /* index.html */ = {isa = PBXFileReference; includeInIndex = 1; name = index.html; path = docs/tests/index.html; sourceTree = ""; }; D245E0514AAC1A2B9A6D5EA2F383E90F /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS14.0.sdk/System/Library/Frameworks/UIKit.framework; sourceTree = DEVELOPER_DIR; }; @@ -754,16 +752,18 @@ D331A37359448E54EE00F683BA09DA14 /* StoryboardFactory.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = StoryboardFactory.swift; sourceTree = ""; }; D3B4DAB2F0612087F087D0198738212A /* RouteComposer.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = RouteComposer.release.xcconfig; sourceTree = ""; }; D3CF8CF3B165061E1E2D891CD3137538 /* README.md */ = {isa = PBXFileReference; includeInIndex = 1; path = README.md; sourceTree = ""; }; + D3D2DB70044CC56BD18D8B042754DC3D /* AnyContextTransformer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = AnyContextTransformer.swift; sourceTree = ""; }; + D4985F00ACE336CB9C089FC3B224CEBD /* ContextTaskMultiplexer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ContextTaskMultiplexer.swift; sourceTree = ""; }; D5B32FED94DABB0C5ACB417294BF5B53 /* RoutingResult.html */ = {isa = PBXFileReference; includeInIndex = 1; name = RoutingResult.html; path = docs/docsets/RouteComposer.docset/Contents/Resources/Documents/Enums/RoutingResult.html; sourceTree = ""; }; D5D4F5F0D7D64589936CE7186A58BCE1 /* highlight.pack.js */ = {isa = PBXFileReference; includeInIndex = 1; name = highlight.pack.js; path = docs/tests/highlight.pack.js; sourceTree = ""; }; D5EE744BAF039E3C2699DD314259C198 /* AbstractFactory.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AbstractFactory.swift; path = RouteComposer/Classes/AbstractFactory.swift; sourceTree = ""; }; D63AEFF1A7C600BA9BF62FAA9C51E0AB /* LastStepInChainAssembly.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LastStepInChainAssembly.swift; sourceTree = ""; }; - D65057DA4C4C7CAE32DAB7A6CDC19076 /* ContainerActionBox.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ContainerActionBox.swift; sourceTree = ""; }; D6FB90C1994A1AE7D340D6E7E8850AF8 /* NilFactory.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = NilFactory.swift; sourceTree = ""; }; D7005AE1E85F40F31AFDC5EF39E56DAE /* StoryboardFactory.html */ = {isa = PBXFileReference; includeInIndex = 1; name = StoryboardFactory.html; path = docs/docsets/RouteComposer.docset/Contents/Resources/Documents/Structs/StoryboardFactory.html; sourceTree = ""; }; D75D3622FE8C292BC2B63ECC2EFEA82A /* ContextSettingTask.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ContextSettingTask.swift; sourceTree = ""; }; D764D8506E91A42D795EA7217B2D1477 /* DefaultContainerAdapterLocator.html */ = {isa = PBXFileReference; includeInIndex = 1; name = DefaultContainerAdapterLocator.html; path = docs/docsets/RouteComposer.docset/Contents/Resources/Documents/Structs/DefaultContainerAdapterLocator.html; sourceTree = ""; }; D7A6C0DA41244FC20173341AD3AB0EC2 /* SearchOptions.html */ = {isa = PBXFileReference; includeInIndex = 1; name = SearchOptions.html; path = docs/docsets/RouteComposer.docset/Contents/Resources/Documents/Structs/SearchOptions.html; sourceTree = ""; }; + D7ED3EFA7ADEAB74F88FD2B2688D8A1F /* AnyFactory.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = AnyFactory.swift; sourceTree = ""; }; D7EFAB68783DEC4BA50F40492D257185 /* ActionToStepIntegrator.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ActionToStepIntegrator.swift; sourceTree = ""; }; D887F66703429F3B13A5E92A858497B4 /* SetAsMasterAction.html */ = {isa = PBXFileReference; includeInIndex = 1; name = SetAsMasterAction.html; path = docs/Enums/SplitViewControllerActions/SetAsMasterAction.html; sourceTree = ""; }; D945595412C49E87CA6CB32B8FAB0BD4 /* PresentModallyAction.html */ = {isa = PBXFileReference; includeInIndex = 1; name = PresentModallyAction.html; path = docs/Enums/ViewControllerActions/PresentModallyAction.html; sourceTree = ""; }; @@ -772,6 +772,7 @@ DAC30530B1B23162A5E205312BDF68CF /* RoutingInterceptable.html */ = {isa = PBXFileReference; includeInIndex = 1; name = RoutingInterceptable.html; path = docs/Protocols/RoutingInterceptable.html; sourceTree = ""; }; DB78DEB62DB69841EE47CE5E50635CF2 /* StepAssembly.html */ = {isa = PBXFileReference; includeInIndex = 1; name = StepAssembly.html; path = docs/Classes/StepAssembly.html; sourceTree = ""; }; DBF312F4B14EF1F8D03B7480EF46A72B /* PostRoutingTaskBox.swift.html */ = {isa = PBXFileReference; includeInIndex = 1; name = PostRoutingTaskBox.swift.html; path = docs/tests/PostRoutingTaskBox.swift.html; sourceTree = ""; }; + DC1A9432B07E0C2DBFC1772C91682106 /* RoutingInterceptorBox.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RoutingInterceptorBox.swift; sourceTree = ""; }; DC27C7B1101B80429C7DD50ACD98384E /* UITabBarController+Action.swift.html */ = {isa = PBXFileReference; includeInIndex = 1; name = "UITabBarController+Action.swift.html"; path = "docs/tests/UITabBarController+Action.swift.html"; sourceTree = ""; }; DE85F1C36CCAB45BD9878A3200FD18CE /* DestinationStep.html */ = {isa = PBXFileReference; includeInIndex = 1; name = DestinationStep.html; path = docs/Structs/DestinationStep.html; sourceTree = ""; }; DEB28641D11AEDA0CECA40FCB091FBDD /* ClassFinder.swift.html */ = {isa = PBXFileReference; includeInIndex = 1; name = ClassFinder.swift.html; path = docs/tests/ClassFinder.swift.html; sourceTree = ""; }; @@ -792,6 +793,7 @@ E4E3AC12A96AE5D3D096BC515D73EFF4 /* PushReplacingLastAction.html */ = {isa = PBXFileReference; includeInIndex = 1; name = PushReplacingLastAction.html; path = docs/Enums/NavigationControllerActions/PushReplacingLastAction.html; sourceTree = ""; }; E51C448FB9914C187B3116E980985A88 /* RouteComposer.podspec */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; path = RouteComposer.podspec; sourceTree = ""; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; E5F12B14F8372B8377608FEE68A4DA8E /* NilFactory.html */ = {isa = PBXFileReference; includeInIndex = 1; name = NilFactory.html; path = docs/Structs/NilFactory.html; sourceTree = ""; }; + E6BDC96BE8CDA4703DD10508E245EC32 /* AnyFactoryBox.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = AnyFactoryBox.swift; sourceTree = ""; }; E6D6AB9E47669A0BA508DDB6849E9424 /* NavigationDelayInterceptor.swift.html */ = {isa = PBXFileReference; includeInIndex = 1; name = NavigationDelayInterceptor.swift.html; path = docs/tests/NavigationDelayInterceptor.swift.html; sourceTree = ""; }; E7D8811E2E9155AA2A8CA841774A7C9F /* Logger.html */ = {isa = PBXFileReference; includeInIndex = 1; name = Logger.html; path = docs/docsets/RouteComposer.docset/Contents/Resources/Documents/Protocols/Logger.html; sourceTree = ""; }; E7F5AD07225097351B294BDBC8B60C76 /* NavigationDelayingInterceptor.html */ = {isa = PBXFileReference; includeInIndex = 1; name = NavigationDelayingInterceptor.html; path = docs/docsets/RouteComposer.docset/Contents/Resources/Documents/Structs/NavigationDelayingInterceptor.html; sourceTree = ""; }; @@ -802,6 +804,7 @@ EACF0C2EED7DC9A126892179A9A2A754 /* StartingPoint.html */ = {isa = PBXFileReference; includeInIndex = 1; name = StartingPoint.html; path = docs/docsets/RouteComposer.docset/Contents/Resources/Documents/Structs/DefaultStackIterator/StartingPoint.html; sourceTree = ""; }; EADF3B41099F3FCB6173DDCDBF5FE67F /* Router.html */ = {isa = PBXFileReference; includeInIndex = 1; name = Router.html; path = docs/docsets/RouteComposer.docset/Contents/Resources/Documents/Protocols/Router.html; sourceTree = ""; }; EB26C12AEB8B11030826E62B3A7D4485 /* GeneralStep.html */ = {isa = PBXFileReference; includeInIndex = 1; name = GeneralStep.html; path = docs/docsets/RouteComposer.docset/Contents/Resources/Documents/Enums/GeneralStep.html; sourceTree = ""; }; + EB43997EE143841BF0AEB210E2DD4876 /* ActionBox.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ActionBox.swift; sourceTree = ""; }; EB50B0B3EB6D3DB373AFE610C0B134BE /* SplitViewController+Extension.swift.html */ = {isa = PBXFileReference; includeInIndex = 1; name = "SplitViewController+Extension.swift.html"; path = "docs/tests/SplitViewController+Extension.swift.html"; sourceTree = ""; }; EB72D0232845CD54C4977E5B15C5CBFE /* Other Classes.html */ = {isa = PBXFileReference; includeInIndex = 1; name = "Other Classes.html"; path = "docs/docsets/RouteComposer.docset/Contents/Resources/Documents/Other Classes.html"; sourceTree = ""; }; EBE2308F7D429B3D64D89CB639F688FC /* Assemblies.html */ = {isa = PBXFileReference; includeInIndex = 1; name = Assemblies.html; path = docs/Assemblies.html; sourceTree = ""; }; @@ -829,12 +832,12 @@ F627FA7F7B5A7AF1F6F7B9FACF5CE5B7 /* ContextInstantiatable.swift.html */ = {isa = PBXFileReference; includeInIndex = 1; name = ContextInstantiatable.swift.html; path = docs/tests/ContextInstantiatable.swift.html; sourceTree = ""; }; F646369DB389E33CCED849AC1FDB6BE6 /* UISplitViewController.html */ = {isa = PBXFileReference; includeInIndex = 1; name = UISplitViewController.html; path = docs/docsets/RouteComposer.docset/Contents/Resources/Documents/Extensions/UISplitViewController.html; sourceTree = ""; }; F66F966A3D2D99DC27836D9688A97338 /* DispatchQueueWrappedContainerAction.html */ = {isa = PBXFileReference; includeInIndex = 1; name = DispatchQueueWrappedContainerAction.html; path = docs/docsets/RouteComposer.docset/Contents/Resources/Documents/Structs/DispatchQueueWrappedContainerAction.html; sourceTree = ""; }; - F70A758090E0808F3D54F16A089C6D7C /* DefaultRouter+Extension.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "DefaultRouter+Extension.swift"; sourceTree = ""; }; + F673889FCEBCC07E7E53AC35B4459F77 /* PerformableStep.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PerformableStep.swift; sourceTree = ""; }; F70AC41E285037EF1E6DAC597E10D54A /* LastStepInChainAssembly.swift.html */ = {isa = PBXFileReference; includeInIndex = 1; name = LastStepInChainAssembly.swift.html; path = docs/tests/LastStepInChainAssembly.swift.html; sourceTree = ""; }; F7A9CCD9EAE9D1B13CA3DD1ED6EF96AE /* TabBarControllerAdapter.swift.html */ = {isa = PBXFileReference; includeInIndex = 1; name = TabBarControllerAdapter.swift.html; path = docs/tests/TabBarControllerAdapter.swift.html; sourceTree = ""; }; + F85C0BDC0F8A817AE0812BCB8E47B9CC /* AnyFinder.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = AnyFinder.swift; sourceTree = ""; }; F8BCA70D6F50C71700C6E8829443DBFA /* NavigationControllerStep.html */ = {isa = PBXFileReference; includeInIndex = 1; name = NavigationControllerStep.html; path = docs/Classes/NavigationControllerStep.html; sourceTree = ""; }; F91DC87E23B2944D80E615B4BE6C6A52 /* InlineContextTask.html */ = {isa = PBXFileReference; includeInIndex = 1; name = InlineContextTask.html; path = docs/Structs/InlineContextTask.html; sourceTree = ""; }; - F93276852BC75BA8856543DF99C40020 /* Array+PrivateExtension.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "Array+PrivateExtension.swift"; sourceTree = ""; }; F978568129D37D96A00671D6E801F8B0 /* NavigationDelayingInterceptor.html */ = {isa = PBXFileReference; includeInIndex = 1; name = NavigationDelayingInterceptor.html; path = docs/Structs/NavigationDelayingInterceptor.html; sourceTree = ""; }; F9CDFEFDE7EFEDEBFA580EDA9794FEAB /* Context.html */ = {isa = PBXFileReference; includeInIndex = 1; name = Context.html; path = docs/docsets/RouteComposer.docset/Contents/Resources/Documents/Enums/RoutingError/Context.html; sourceTree = ""; }; FAAD911D15CF92298EE4C426AEC356EB /* SingleNavigationRouter.html */ = {isa = PBXFileReference; includeInIndex = 1; name = SingleNavigationRouter.html; path = docs/Structs/SingleNavigationRouter.html; sourceTree = ""; }; @@ -842,7 +845,6 @@ FB9CBCE3FD3083C60477C20FA4FCBAF3 /* Pods-RouteComposer_Example-RouteComposer_Tests-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-RouteComposer_Example-RouteComposer_Tests-frameworks.sh"; sourceTree = ""; }; FBFFE477B916CFE62D5B2DAA9B58E48D /* RouteComposerDefaults.html */ = {isa = PBXFileReference; includeInIndex = 1; name = RouteComposerDefaults.html; path = docs/docsets/RouteComposer.docset/Contents/Resources/Documents/Classes/RouteComposerDefaults.html; sourceTree = ""; }; FCBAEFCFCCA6C9B77BD6F5BED20D52F8 /* StepChainAssembly.swift.html */ = {isa = PBXFileReference; includeInIndex = 1; name = StepChainAssembly.swift.html; path = docs/tests/StepChainAssembly.swift.html; sourceTree = ""; }; - FD33108E293A1A7D3A703537BD28F640 /* NilEntity.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = NilEntity.swift; sourceTree = ""; }; FDE28860C41C7F5DFD0F6F79F70F0200 /* KeyWindowProvider.swift.html */ = {isa = PBXFileReference; includeInIndex = 1; name = KeyWindowProvider.swift.html; path = docs/tests/KeyWindowProvider.swift.html; sourceTree = ""; }; FE048CEEE703B1118CCF54DCD8454F30 /* StackIterator.html */ = {isa = PBXFileReference; includeInIndex = 1; name = StackIterator.html; path = docs/Protocols/StackIterator.html; sourceTree = ""; }; FEF2DCA874D70A59C4E74ACE2C2FC249 /* DispatchQueueWrappedAction.html */ = {isa = PBXFileReference; includeInIndex = 1; name = DispatchQueueWrappedAction.html; path = docs/Structs/DispatchQueueWrappedAction.html; sourceTree = ""; }; @@ -851,12 +853,12 @@ /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ - 1ACAC4AD01D3EB553C03FFE2EDF3E79C /* Frameworks */ = { + 3447B27344441C913105D773CFFED9E1 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 290CC4D7B8C76170AEFFDF7AF9742CB0 /* Foundation.framework in Frameworks */, - 05C7E2F9D61BABF31A636B846FF0FEBF /* UIKit.framework in Frameworks */, + 3889C0E85610046F7D0FF5DF1D483285 /* Foundation.framework in Frameworks */, + 863BE4037B5CE6E770313783B15A3D03 /* UIKit.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -879,6 +881,31 @@ /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ + 0F8AB518E1D4AA1913380A21113843C4 /* Internal */ = { + isa = PBXGroup; + children = ( + 717EA39637DDA2EE7EC3EC4FC792C0F3 /* Array+PrivateExtension.swift */, + 6CEAB9AF9A91540EC6C8FEC231D92F1B /* BaseStep.swift */, + 9E5BD50762A91DF55E45BD370A644ACE /* ChainableStep.swift */, + C84E924D893C268B9D7AC9E227B281B6 /* ConvertingStep.swift */, + 1E4A6FC3A8B6462E078E7182FE010621 /* DefaultRouter+Extension.swift */, + 8F64CE3F5A2D44540E57EAF96EFFC4B0 /* InPlaceTransformingAnyContext.swift */, + 66A8757C0F134C3AE8C6D90C76C2AFF6 /* InterceptableStep.swift */, + 3D84935624F93C414FF483764509A84E /* MainThreadChecking.swift */, + B10643639E190902EB6939DC889BFD89 /* NilContextTransformer.swift */, + B2867E7EC79FC1697165B70B500AC5DA /* NilEntity.swift */, + F673889FCEBCC07E7E53AC35B4459F77 /* PerformableStep.swift */, + 23BDD97E5E5E5EE8F669CB4C1CAFB800 /* PerformableStepResult.swift */, + 22B220C802A8EFBDE38F3343FF0848D2 /* PostponedIntegrationFactory.swift */, + AA4E50752E5EF3405B6D5BC8AE110704 /* PreparableEntity.swift */, + 0929144A7CC488E3CAB4CBF552EB541F /* RoutingStep.swift */, + 91E2635BF6BD6B1585E2809F265F3687 /* SwitcherStep.swift */, + 0FFA862C7C1344E9A538D2136EBB141C /* UIViewController+PrivateExtension.swift */, + ); + name = Internal; + path = Internal; + sourceTree = ""; + }; 1628BF05B4CAFDCC3549A101F5A10A17 /* Frameworks */ = { isa = PBXGroup; children = ( @@ -887,6 +914,26 @@ name = Frameworks; sourceTree = ""; }; + 187F93DFE46D7D4A4235133E526EDEC7 /* Boxes */ = { + isa = PBXGroup; + children = ( + EB43997EE143841BF0AEB210E2DD4876 /* ActionBox.swift */, + 3924DAA5BF3F277A956A5D7E78483997 /* AnyActionBox.swift */, + 4A2CDA84E1DC368B4302548CDCD53CD1 /* AnyContextBox.swift */, + E6BDC96BE8CDA4703DD10508E245EC32 /* AnyFactoryBox.swift */, + 6761AA4370E6B983E875CDF128D33763 /* ContainerActionBox.swift */, + C20E766397A3EE7C50D94BD9A31C0B7A /* ContainerFactoryBox.swift */, + C1482FAF8E4C07AA15D346BB30873976 /* ContextTaskBox.swift */, + 45BCEBEE98F293784EC9211EC56E45BC /* ContextTransformerBox.swift */, + 41D7C74B607B59608399F9AA5CC84624 /* FactoryBox.swift */, + D1FBA1053D441AEAD695618DF93E4A9C /* FinderBox.swift */, + B0168C6ECD938D149EEF9DB0960B05DE /* PostRoutingTaskBox.swift */, + DC1A9432B07E0C2DBFC1772C91682106 /* RoutingInterceptorBox.swift */, + ); + name = Boxes; + path = Boxes; + sourceTree = ""; + }; 232FAB407AB46268430F7CD90365A9BB /* Products */ = { isa = PBXGroup; children = ( @@ -911,15 +958,17 @@ path = RouteComposer/Classes/Steps; sourceTree = ""; }; - 38422B44947968F69105AFDA34E9A443 /* Multiplexers */ = { + 3830343A3C800D0A6E1F1B2BB610E6F3 /* Router */ = { isa = PBXGroup; children = ( - 2C589B7064E7F7C37F75BA9E22DF200A /* ContextTaskMultiplexer.swift */, - B26503AB147EED8B1CD03692D4C344E2 /* InterceptorMultiplexer.swift */, - 39FE400435D02DA5E16F95375EDF6B6E /* PostRoutingTaskMultiplexer.swift */, + CF14CDB7913A27C3AA5EFDD539A80D0B /* DefaultRouter.swift */, + 743E78D910B9EB02A2EDD2A939A50E28 /* Helpers */, + 0F8AB518E1D4AA1913380A21113843C4 /* Internal */, + 9F484BD859869ABD56CB6FC2A7CC93F1 /* Multiplexers */, + BDF1F478A422A80772C4CFBA0804DD3E /* Type Erasure */, ); - name = Multiplexers; - path = Multiplexers; + name = Router; + path = RouteComposer/Classes/Router; sourceTree = ""; }; 391A1CAC32304E55D86C62692A045D1E /* SwiftFormat */ = { @@ -931,23 +980,6 @@ path = SwiftFormat; sourceTree = ""; }; - 4E63C51461151ECCFD2F8F33DECC88EA /* Type Erasure */ = { - isa = PBXGroup; - children = ( - AF8AAFFA4BD5B24A87D1DE963DA0B10D /* AnyAction.swift */, - 6F008D272425A6BF28605B4BA4E04C8D /* AnyContext.swift */, - C7A87092304585535B3315B38771F502 /* AnyContextTask.swift */, - AF1301D2228E27D4AB4D4C5902E0721C /* AnyContextTransformer.swift */, - 86136E05C5CDF8A2E57B1316C4B465BB /* AnyFactory.swift */, - B2F9347966EABB7DCFD63E90E1B1DB21 /* AnyFinder.swift */, - 68B7DF0AF26A095E98BDE7BC2BDE49C0 /* AnyPostRoutingTask.swift */, - 39BD54703E73B39EA2374F0AC1BFD1EB /* AnyRoutingInterceptor.swift */, - A0BABC8B7D0A5A5E495534073C29BAE5 /* Boxes */, - ); - name = "Type Erasure"; - path = "Type Erasure"; - sourceTree = ""; - }; 4F6C792A8B534231B623B15C2C45155A /* Pods-RouteComposer_Example-RouteComposer_Tests */ = { isa = PBXGroup; children = ( @@ -1042,6 +1074,16 @@ path = RouteComposer/Classes/Finders; sourceTree = ""; }; + 743E78D910B9EB02A2EDD2A939A50E28 /* Helpers */ = { + isa = PBXGroup; + children = ( + 49BC5D0EDDABB9509926F0ADA1040159 /* DefaultStackPresentationHandler.swift */, + 2A2FC2816C78E4832C5721B5A3B71CC7 /* StackPresentationHandler.swift */, + ); + name = Helpers; + path = Helpers; + sourceTree = ""; + }; 756A7C3F6818D88A7CAD454019DB3663 /* SwiftUI */ = { isa = PBXGroup; children = ( @@ -1064,16 +1106,6 @@ path = RouteComposer/Classes/Actions; sourceTree = ""; }; - 9592332ADF6F175BF6BE06B05742F888 /* Helpers */ = { - isa = PBXGroup; - children = ( - 4B8F60D760848F25489ABA7B07F6716E /* DefaultStackPresentationHandler.swift */, - 31394FFBC43F00AAB285ED52950F35ED /* StackPresentationHandler.swift */, - ); - name = Helpers; - path = Helpers; - sourceTree = ""; - }; 9B4BE7EA6762889896D8B43A53BE1AF4 /* Pods */ = { isa = PBXGroup; children = ( @@ -1082,37 +1114,15 @@ name = Pods; sourceTree = ""; }; - A01023B98A61B9249C8A78F12215B719 /* Router */ = { + 9F484BD859869ABD56CB6FC2A7CC93F1 /* Multiplexers */ = { isa = PBXGroup; children = ( - 2D71C11E35475D5F67DBFCCAFC8DFB6F /* DefaultRouter.swift */, - 9592332ADF6F175BF6BE06B05742F888 /* Helpers */, - AF589A1B8454506B0D0E8A66367A3872 /* Internal */, - 38422B44947968F69105AFDA34E9A443 /* Multiplexers */, - 4E63C51461151ECCFD2F8F33DECC88EA /* Type Erasure */, + D4985F00ACE336CB9C089FC3B224CEBD /* ContextTaskMultiplexer.swift */, + 5DA971B8CD39DEB07C26EA8A6B4E164C /* InterceptorMultiplexer.swift */, + BD79566300A56A0703280D3ABFAC0399 /* PostRoutingTaskMultiplexer.swift */, ); - name = Router; - path = RouteComposer/Classes/Router; - sourceTree = ""; - }; - A0BABC8B7D0A5A5E495534073C29BAE5 /* Boxes */ = { - isa = PBXGroup; - children = ( - BBE73FAEEC276D3E65B80C2B72A4F9FD /* ActionBox.swift */, - 0AC3B84C86640DE8209214A33ABAFBD8 /* AnyActionBox.swift */, - 3EB6A2EA9BD1CD2A020C709E9371034E /* AnyContextBox.swift */, - A7159CE4888CEBE725DAB5FF7E41AD09 /* AnyFactoryBox.swift */, - D65057DA4C4C7CAE32DAB7A6CDC19076 /* ContainerActionBox.swift */, - A46F3208DCA5034BACA938B851087564 /* ContainerFactoryBox.swift */, - 67CB47D31FB635259614667647C09391 /* ContextTaskBox.swift */, - 5C42271CD302C87CF5852F877AC3482B /* ContextTransformerBox.swift */, - 7F1C8E7B9205BF521055470C880BD829 /* FactoryBox.swift */, - 2634223808A5DCB3D5A4E3CCCEFAE8DE /* FinderBox.swift */, - CEA8BE1CC976B9DE1CE5914CE11057B5 /* PostRoutingTaskBox.swift */, - 1A3E1AFBE1F1910B398D78B6360C4C64 /* RoutingInterceptorBox.swift */, - ); - name = Boxes; - path = Boxes; + name = Multiplexers; + path = Multiplexers; sourceTree = ""; }; A2C73767C5F536B23F1E3E57D27DB3E1 /* Stack Iterator */ = { @@ -1156,30 +1166,6 @@ path = RouteComposer/Classes/Factories; sourceTree = ""; }; - AF589A1B8454506B0D0E8A66367A3872 /* Internal */ = { - isa = PBXGroup; - children = ( - F93276852BC75BA8856543DF99C40020 /* Array+PrivateExtension.swift */, - 896D22EBBC4EE6D8F7628FEE764305DE /* BaseStep.swift */, - 8D13BDA8B411A621396E471CAA5BBD20 /* ChainableStep.swift */, - 6A8DE234D1FE17EC6C44FC49CC36D206 /* ConvertingStep.swift */, - F70A758090E0808F3D54F16A089C6D7C /* DefaultRouter+Extension.swift */, - 5CE18F6B586289F5F61C8345A3BDEECC /* InPlaceTransformingAnyContext.swift */, - 8C09830C4EA769F14B531F00D3CFD245 /* InterceptableStep.swift */, - 837887E329ADD698A95A575A726814A1 /* NilContextTransformer.swift */, - FD33108E293A1A7D3A703537BD28F640 /* NilEntity.swift */, - A01F6206B7074162E21E133BD9902417 /* PerformableStep.swift */, - 8DE6FB412C4838C33B3A017A2D7DBB08 /* PerformableStepResult.swift */, - 0223EFCCA3A006ADB1B99F4C09707F4F /* PostponedIntegrationFactory.swift */, - 7D8C0910EC8595DAF01B6FC639DCB073 /* PreparableEntity.swift */, - 711FE9D158F43DD215197EE474D8C9A4 /* RoutingStep.swift */, - B3AE081F6F9CA63E712F5113C929673C /* SwitcherStep.swift */, - 7B922AC3644A562EE72B4F5B69BAC015 /* UIViewController+PrivateExtension.swift */, - ); - name = Internal; - path = Internal; - sourceTree = ""; - }; BDD369A8D80ECEF41BB9E0A58A3D494B /* SwiftUI */ = { isa = PBXGroup; children = ( @@ -1190,6 +1176,23 @@ path = SwiftUI; sourceTree = ""; }; + BDF1F478A422A80772C4CFBA0804DD3E /* Type Erasure */ = { + isa = PBXGroup; + children = ( + 2D41C46992DAFF3F51E71C5F29859BDA /* AnyAction.swift */, + 262A05E51B400673C4D13FCD69232D19 /* AnyContext.swift */, + B7E959DF8D9DF090DED0A44FD4983AA0 /* AnyContextTask.swift */, + D3D2DB70044CC56BD18D8B042754DC3D /* AnyContextTransformer.swift */, + D7ED3EFA7ADEAB74F88FD2B2688D8A1F /* AnyFactory.swift */, + F85C0BDC0F8A817AE0812BCB8E47B9CC /* AnyFinder.swift */, + 1EA5C157AD3E65B91EAC241807AA088B /* AnyPostRoutingTask.swift */, + 5709AAC37DE1F6E86E7B8143F83F0171 /* AnyRoutingInterceptor.swift */, + 187F93DFE46D7D4A4235133E526EDEC7 /* Boxes */, + ); + name = "Type Erasure"; + path = "Type Erasure"; + sourceTree = ""; + }; BE7653AECFFC6A6CAF3FBFAF5CFA6C22 /* SwiftUI */ = { isa = PBXGroup; children = ( @@ -1233,7 +1236,7 @@ 6A565B0150B3C53418BA4C55B8AA08CC /* Finders */, 584C7636984EA16BE611B4489336D65D /* Logger */, C81705CD7D6F25B015E7323C13CEE8CA /* Pod */, - A01023B98A61B9249C8A78F12215B719 /* Router */, + 3830343A3C800D0A6E1F1B2BB610E6F3 /* Router */, 2EFDF96CE32B3F3644B879B16B81CF71 /* Steps */, DAFD919819FE2F459D62326914AC6C05 /* Support Files */, ); @@ -1823,19 +1826,19 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 2F795AA211101F682CC3AB9803C8DBE2 /* Headers */ = { + A8E26AEE5E618C2400DF584109FB5B30 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 1F2F542D7AC15229A87BBDF4DA59EB0F /* RouteComposer-umbrella.h in Headers */, + 1F0E50EBA2D455A036FD3124253CF2B4 /* Pods-RouteComposer_Example-RouteComposer_Tests-umbrella.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; - A8E26AEE5E618C2400DF584109FB5B30 /* Headers */ = { + FDA59EB00960EA039913A78CA26C3A04 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 1F0E50EBA2D455A036FD3124253CF2B4 /* Pods-RouteComposer_Example-RouteComposer_Tests-umbrella.h in Headers */, + 4F5E17A20A7F9E4B95ED77D4A64010E7 /* RouteComposer-umbrella.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -1844,12 +1847,12 @@ /* Begin PBXNativeTarget section */ 053CA6EE066329CE5637753D02325B34 /* RouteComposer */ = { isa = PBXNativeTarget; - buildConfigurationList = 3154FD2D5593B47DA808EF0EBD7FE087 /* Build configuration list for PBXNativeTarget "RouteComposer" */; + buildConfigurationList = 516D636A9BEFC75B1C40DEC1ACCB50B5 /* Build configuration list for PBXNativeTarget "RouteComposer" */; buildPhases = ( - 2F795AA211101F682CC3AB9803C8DBE2 /* Headers */, - 537A35F17A3154390D4E278F2AA13A6D /* Sources */, - 1ACAC4AD01D3EB553C03FFE2EDF3E79C /* Frameworks */, - 85C59B44F6AF614E6D4F7A96F560DF6B /* Resources */, + FDA59EB00960EA039913A78CA26C3A04 /* Headers */, + 46D3C2BF0C84DFA0A8C4F67A871A898E /* Sources */, + 3447B27344441C913105D773CFFED9E1 /* Frameworks */, + DCF41989563BDEABDDA9E8272FB12FEB /* Resources */, ); buildRules = ( ); @@ -1872,8 +1875,8 @@ buildRules = ( ); dependencies = ( - 4B23B89342FDDCFF960F45B34C454DE5 /* PBXTargetDependency */, - FA69F9BBA07A9FAAB9502AFC53F57A7E /* PBXTargetDependency */, + 79759C76E8790FBC9BA1EFBD35635C30 /* PBXTargetDependency */, + 62B8E4577162E7C4F602CF20931908BC /* PBXTargetDependency */, ); name = "Pods-RouteComposer_Example-RouteComposer_Tests"; productName = Pods_RouteComposer_Example_RouteComposer_Tests; @@ -1892,8 +1895,8 @@ buildRules = ( ); dependencies = ( - B8839A9D05517829E899282AF9295103 /* PBXTargetDependency */, - 91D677827D5A7BF5C23F90191D0824B7 /* PBXTargetDependency */, + 9FE4739831C2E78BDB0432661814AE44 /* PBXTargetDependency */, + 1D76BF99E11A0559407AF92CC171624E /* PBXTargetDependency */, ); name = "Pods-RouteComposer_Example"; productName = Pods_RouteComposer_Example; @@ -1938,14 +1941,14 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 85C59B44F6AF614E6D4F7A96F560DF6B /* Resources */ = { + 8C4588367DC136914ED78559FF550089 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; - 8C4588367DC136914ED78559FF550089 /* Resources */ = { + DCF41989563BDEABDDA9E8272FB12FEB /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( @@ -1955,159 +1958,160 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ - 537A35F17A3154390D4E278F2AA13A6D /* Sources */ = { + 46D3C2BF0C84DFA0A8C4F67A871A898E /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 98E3F945F94B17951AAEDC9278FBF249 /* AbstractAction.swift in Sources */, - B21E46DB0A28C3DB1A431598A265794F /* AbstractFactory.swift in Sources */, - 6D4E96D1722F5920C67C905A1D7F9B69 /* Action.swift in Sources */, - 23837F82F9E15038BA7B68D45DBEE2A9 /* ActionBox.swift in Sources */, - 420C45782ECBB4E1F6F656339D3E4246 /* ActionConnectingAssembly.swift in Sources */, - ABA7B683B0394D6867A3FBAE86FCAEE6 /* ActionToStepIntegrator.swift in Sources */, - DF0DD7E8A4F7CEE159FBA3A889B9606D /* AnyAction.swift in Sources */, - B8230BF2172B8FFD9978110E5465A881 /* AnyActionBox.swift in Sources */, - E0595728E8292173800037F47DFE671D /* AnyContext.swift in Sources */, - 8ECF93F75382CFEA64D19AB85257C53F /* AnyContextBox.swift in Sources */, - A5506BAD7D31CA0975FB7D1D8B535726 /* AnyContextTask.swift in Sources */, - AD47FBAB4A6539959DA3206787E13BC7 /* AnyContextTransformer.swift in Sources */, - CABF1089C84A0320AC2D09859BF93CC1 /* AnyFactory.swift in Sources */, - 41DD9AE03CAC47F9193032A6DD48DEA3 /* AnyFactoryBox.swift in Sources */, - E8B34EFABA166AE804E2D66D5100EFA7 /* AnyFinder.swift in Sources */, - A5E8C39D550DBB9728849339AC9EBDF3 /* AnyPostRoutingTask.swift in Sources */, - 1AFF0771A6A9F6FED87D485DFD74BE79 /* AnyRoutingInterceptor.swift in Sources */, - E306E46A0B05AF0E666DA061739F1CC6 /* Array+Extension.swift in Sources */, - 418D74629CA985A8EBFB1C13046A2F12 /* Array+PrivateExtension.swift in Sources */, - 45497629722DC02696E7476A5FDA5F73 /* BaseEntitiesCollector.swift in Sources */, - 0B265777513EB94F0C97AD08F7E79457 /* BaseStep.swift in Sources */, - 8F5BF1A102455C97A2D3DAAC4469F99A /* CATransaction+Action.swift in Sources */, - 2B42BDCA8EEB6EA0702B5FEE69A6B137 /* ChainableStep.swift in Sources */, - 43A3B67231FE5E781198C172D0EED593 /* ChainAssembly.swift in Sources */, - 88728E397BC151089E7A75F8C896A25A /* ChildCoordinator.swift in Sources */, - 3D29BEBFAE4B4E5A1134D5DEA364B32B /* ClassFactory.swift in Sources */, - A721EE593716E6C3A6DF25465FFBE2B1 /* ClassFinder.swift in Sources */, - 2F31587BA1173C1A08AA5927F73C1EFD /* ClassWithContextFinder.swift in Sources */, - 8AA83251A10C8444DCA1A1F6CE6AF7C4 /* CompleteFactory.swift in Sources */, - 5BD0CDAB878B3B51087A6FA19E2FCE86 /* CompleteFactoryAssembly.swift in Sources */, - 71E4121A4068EEB9B3E65D6AB9188711 /* CompleteFactoryChainAssembly.swift in Sources */, - BF72F92FD0EF8600887928A6E53820A8 /* ConcreteContainerAdapter.swift in Sources */, - 17ABF96E624A74D64ED760466B5E7A42 /* ContainerActionBox.swift in Sources */, - A4EE93DD6F1C8C046417265EA1C1739E /* ContainerAdapter.swift in Sources */, - BC520973DC79E9321FB7931D4A89DD8F /* ContainerAdapterLocator.swift in Sources */, - 033C85DE7877475A635C2702F80929A2 /* ContainerFactory.swift in Sources */, - 6CB5DBCEF67757344605EB97DED8D273 /* ContainerFactoryBox.swift in Sources */, - 1003B87FDD07AF110BA6551AD60C2ACA /* ContainerStepChainAssembly.swift in Sources */, - 1AB084720EB81932D301EABA84890947 /* ContainerViewController.swift in Sources */, - 28535E649821534DC604967D93F6644E /* ContextAccepting.swift in Sources */, - 5DCFB388B14F0D24243E4CBA136C9A67 /* ContextAcceptingView.swift in Sources */, - 6D2FFD68D6C59EFE62901BD03B0ABEB7 /* ContextChecking.swift in Sources */, - 4B89717076BD01FFAABCC5B231218BA5 /* ContextInstantiatable.swift in Sources */, - 140CDDB37873DC338C438A40F6337DB6 /* ContextSettingTask.swift in Sources */, - 5A93BA56519FA99E1E46FA30D28EE349 /* ContextTask.swift in Sources */, - 435499A1C05DA687F1BDF17B8B705BC1 /* ContextTaskBox.swift in Sources */, - E80BD8C07473E429654ECEE2FFBA9393 /* ContextTaskMultiplexer.swift in Sources */, - 17EF4859DC2FBFB01B0FA4E6837413BF /* ContextTransformer.swift in Sources */, - 2EA844C62DC25A0CC61841836FC230B1 /* ContextTransformerBox.swift in Sources */, - F80229FA0E1FA48D7255A45D50463AFA /* ConvertingStep.swift in Sources */, - 7C50360FFB7BE77CA80171716A1F67CF /* CustomContainerViewController.swift in Sources */, - A61EB11DDA4518CD1B7A5BFBC9FF64CB /* CustomWindowProvider.swift in Sources */, - 84C6D4E0CE6D6BCFBFC7EAE45EACB978 /* DefaultContainerAdapterLocator.swift in Sources */, - F7B56BF9A9F047AB1FEB07B4F016D4B7 /* DefaultLogger.swift in Sources */, - 4F366F1BFCB94B79BBE695A5B92875F0 /* DefaultLogger+LogLevel.swift in Sources */, - 19571EF36C900EB3DF4056475B05043D /* DefaultRouter.swift in Sources */, - 9F8F57E8F5452CA2877E9C5B35E53431 /* DefaultRouter+Extension.swift in Sources */, - 599AD7AC2BAB4BA86DB347758B5A9D69 /* DefaultStackIterator.swift in Sources */, - 79BE1FAAA9B313466577706143D32252 /* DefaultStackPresentationHandler.swift in Sources */, - 25D8FAF484C73AD6981E8349C671AC67 /* Destination.swift in Sources */, - 71B6C0BB0C7A61C9838716E3B9316DA8 /* DestinationStep.swift in Sources */, - 44AC641E06124F278A5A377A8248880B /* DetailsNavigationFinder.swift in Sources */, - 47ACCBFD9855E53E0EE980D1F7374BD7 /* DismissalMethodProvidingContextTask.swift in Sources */, - 8EB2F72E2FAE9227DC2530E5EDF6A6D4 /* Dismissible.swift in Sources */, - ECBF402A6FCCCA237703C9E9DC4EEBD2 /* DispatchQueue+Action.swift in Sources */, - 6A570191BCF27EB2D32C1373C72C010D /* Factory.swift in Sources */, - 37F0E4AFB238E6D2DC79D156D4CB53BC /* FactoryBox.swift in Sources */, - 7A4FD7421D63753A01CF48423F44A110 /* Finder.swift in Sources */, - E73C70D4A2DD499E2E0C7A0B63EA07ED /* FinderBox.swift in Sources */, - 9A37FA8D70F0C8D4A170C229EB806A61 /* FinderFactory.swift in Sources */, - AFDA8D24EFF34686ABF7AA383FC9F698 /* GeneralStep.swift in Sources */, - 32D4E16EA38CF435B5F68647EBAC8456 /* GenericStepAssembly.swift in Sources */, - 3D866A201E12C4870334091F95294C7F /* GlobalInterceptorRouter.swift in Sources */, - BC8967F828196882DC28A4F0FC9EA7E3 /* InlineContextTask.swift in Sources */, - 0B0ED245330885100C984B134970EE63 /* InlineContextTransformer.swift in Sources */, - 6EE35002DA6A54C3411AA63A7CB8D763 /* InlineFactory.swift in Sources */, - FB27F9AB8F8CF74D9AD18CFAC5AA1733 /* InlineInterceptor.swift in Sources */, - 94DB0FB290F0C8DC6AAC9C4D19908084 /* InlinePostTask.swift in Sources */, - 9206B8F8DD89A99F0B5B12810F54C0B3 /* InlineStackIteratingFinder.swift in Sources */, - 405DBCA5D4C31236EBA7D721930AD5FB /* InPlaceTransformingAnyContext.swift in Sources */, - D71BC51AF8F7685C92114E63AE9DB4B2 /* InstanceFinder.swift in Sources */, - DF8640F6E9157D242B723838505F4C0B /* InterceptableRouter.swift in Sources */, - BDD582226DD2CA9992ACBB7E89597759 /* InterceptableStep.swift in Sources */, - 828FB8BF85FACDA07F8B284D94542143 /* InterceptableStepAssembling.swift in Sources */, - CA76C80A21F9991B260BE1B31F65370A /* InterceptorMultiplexer.swift in Sources */, - A8A7B49584F4A4D34B81F8E3AB9793B2 /* KeyWindowProvider.swift in Sources */, - 34A37352CC994BD044823BB97C382B3A /* LastStepInChainAssembly.swift in Sources */, - CE0E16A2B1F1EB7BECFBB77C56466F84 /* Logger.swift in Sources */, - AD6CCF8557F00727ECB6D5C0EE1C848A /* LogMessage.swift in Sources */, - 8F50A5B0314AE5D8C5F81FD1F1F9A458 /* NavigationController+Extension.swift in Sources */, - 52CBA891032A4BB0D2A18FAA0968151A /* NavigationControllerAdapter.swift in Sources */, - 346843664209662E92BAFB7985D369AB /* NavigationControllerFactory.swift in Sources */, - 8F9B235B4560928FF73C0E97AFCC3B20 /* NavigationControllerStep.swift in Sources */, - 3A8A08FAD897446CFF394F6882076DA4 /* NavigationDelayInterceptor.swift in Sources */, - D35F72E1AC7A218591CEB5905FCC02DE /* NilContextTransformer.swift in Sources */, - 35B3C79AB0A7D8001C3CD436C8272B92 /* NilEntity.swift in Sources */, - A5956E11F354A66C5ACC44476ABDD0FF /* NilFactory.swift in Sources */, - A1FBB2F66EC2294E06F758F0C7978990 /* NilFinder.swift in Sources */, - B42FE41E12DFFBB5B1434A0250D3185D /* PerformableStep.swift in Sources */, - 61B357D856D19DDA9A74450DDD5FCD23 /* PerformableStepResult.swift in Sources */, - 58EA2BA31844F8CEE00B203F6712F430 /* PostponedIntegrationFactory.swift in Sources */, - E1BA85312C8857B746B68C5D80127797 /* PostRoutingTask.swift in Sources */, - F4C99ACAE2C38EAB17A2B7EF1DFD3C4C /* PostRoutingTaskBox.swift in Sources */, - 0FD839D94EF6BB79545B90DB547C8A5A /* PostRoutingTaskMultiplexer.swift in Sources */, - 9C4D9EC285EBED8424FDF29874CA543E /* PreparableEntity.swift in Sources */, - F624965F4BDF21F401AB588D16C008B2 /* PresentingFinder.swift in Sources */, - C0A5CC73A727CC6D021DA91C8ADB0250 /* RouteComposer-dummy.m in Sources */, - 4BF00B1CA548065F950D40DB8C0AFB9E /* RouteComposerDefaults.swift in Sources */, - 7CBCECF4E4A617890AEF099D3D863E7A /* Router.swift in Sources */, - 62D995EE39AE748D0DE36CE37CD2646A /* Router+Destination.swift in Sources */, - FDCF0FC965FED2C120E64CEFD2186949 /* RoutingError.swift in Sources */, - A1FF7B657D86B3230B345976E9F46230 /* RoutingInterceptable.swift in Sources */, - 08A6963A0038DF59EB90DE4C0CAE018C /* RoutingInterceptor.swift in Sources */, - 256CE5BDEFEBD553ED7F0C1AE6480B00 /* RoutingInterceptorBox.swift in Sources */, - 51698F1F2B0B5D86A1E0CC90F30BBB0B /* RoutingResult.swift in Sources */, - 37964A26CD41B605F7C35F065276D388 /* RoutingStep.swift in Sources */, - 4D690C8C3B9950FE5C406A907387A4BF /* SearchOptions.swift in Sources */, - E5EB763C46674347DEC6BE866B16905E /* SimpleContainerFactory.swift in Sources */, - 50FA51B388D7879322E4081F5C8C6E19 /* SingleContainerStep.swift in Sources */, - B22D5C09215C6C5FBA196210949425F8 /* SingleNavigationRouter.swift in Sources */, - 0412C947D4BA6ABFCA775DD08F79F15C /* SingleStep.swift in Sources */, - 062D581D12111A00987135B08FBC468A /* SplitControllerAdapter.swift in Sources */, - 1568666D5380901297503F00C64D662D /* SplitControllerFactory.swift in Sources */, - CF2A5B9285843E7FF6F981DF0177EC1C /* SplitControllerStep.swift in Sources */, - FDACD45120475B5F3646F31BBF671F13 /* SplitViewController+Extension.swift in Sources */, - 615394097C26D32CF55017007B92B281 /* StackIteratingFinder.swift in Sources */, - BD8A1766312C86F108266AB92C59DC23 /* StackIterator.swift in Sources */, - 1206CB7634C27E6C5CE1FA5C30D4CE64 /* StackPresentationHandler.swift in Sources */, - C4CEED698B0EF338B766B3BDFBFDEC4D /* StepAssembly.swift in Sources */, - C83AFCBF70FFADE41527EB7B3E4B7358 /* StepChainAssembly.swift in Sources */, - 834D6DDC292AB8468521D22602A9C4DA /* StoryboardFactory.swift in Sources */, - A584DC8ADAA39C4441924AAEAD57C29A /* SwitchAssembly.swift in Sources */, - 4FD5B7BDB839BE981D2FBC94555CDE62 /* SwitcherStep.swift in Sources */, - 249F0C006946BBD717616678C027342B /* TabBarControllerAdapter.swift in Sources */, - 811146949F05E67863BEF50D53E5E0CA /* TabBarControllerFactory.swift in Sources */, - 79F492F0593EFD0A9A259B3778FA0087 /* TabBarControllerStep.swift in Sources */, - 261148B0C87BDDCAC30712F9D4AEB800 /* TabBarViewController+Extension.swift in Sources */, - 7E2EC86F779DF782D5C16A5CD88C8A25 /* TaskCollector.swift in Sources */, - FB93292C2F29876F02E8311EB55295A9 /* UIHostingControllerFactory.swift in Sources */, - 8C6FCC235100C26489583ECEC03BEA49 /* UIHostingControllerWithContextFactory.swift in Sources */, - 23CEFEA8EA9CA09DA400B8BD0DF49A56 /* UIHostingControllerWithContextFinder.swift in Sources */, - C48C79D0EC49434ABC987A308B005C53 /* UINavigationController+Action.swift in Sources */, - 74297D98CAA10879E82F9EDC9A40E092 /* UISplitViewController+Action.swift in Sources */, - 672C2C292AFA75A0526724BA7F30C160 /* UITabBarController+Action.swift in Sources */, - 4328A568CAC2CE7A49646CF686F5E450 /* UIViewController+Action.swift in Sources */, - DB5619ACBBCA7C710AF907A11DA2D3BE /* UIViewController+Extension.swift in Sources */, - 6D68C5C1082FD23FEEA2DF76DF0BFF38 /* UIViewController+PrivateExtension.swift in Sources */, - EEF66357649D6D0B0533FF0E2473A1B6 /* UIWindow+Extension.swift in Sources */, - B986EDF70503013233BD26348D84AC54 /* WindowProvider.swift in Sources */, + 1FD6B74AEE85F64F56EBFEDF26AAE959 /* AbstractAction.swift in Sources */, + 32D2997FA5771420CB43A3733F33A0AA /* AbstractFactory.swift in Sources */, + A0A3D11C70207216B3A2CD67D56FFD3D /* Action.swift in Sources */, + EF797BB096EBFA68AE76F3C7E9D4465D /* ActionBox.swift in Sources */, + 3640B32FA6EF4A4D03FB33874537A8BE /* ActionConnectingAssembly.swift in Sources */, + 07F452392848998ED103D00286BD75A2 /* ActionToStepIntegrator.swift in Sources */, + 6529671EF018466DF42757A56C585DDB /* AnyAction.swift in Sources */, + 24992FE2A3AF3DF1D8493D792BC326EC /* AnyActionBox.swift in Sources */, + E46BA45DD86C7886DD1AD169154CFBF1 /* AnyContext.swift in Sources */, + 92341A5D86EE8CACB3CE879AD4FDB9BF /* AnyContextBox.swift in Sources */, + 2B1FAAB50062D29F9A55590D192DD996 /* AnyContextTask.swift in Sources */, + 3AC2092C4578BBBA8BFC7942A112202E /* AnyContextTransformer.swift in Sources */, + 441F21CB586CF6231AFD193C9682C9C1 /* AnyFactory.swift in Sources */, + B2DCF6DC18D4BB40D8E15DEAA2817709 /* AnyFactoryBox.swift in Sources */, + FF90FF83144E1335AE596C7517C9A0AE /* AnyFinder.swift in Sources */, + C17D23430E94CECA7D797E83C38B82E0 /* AnyPostRoutingTask.swift in Sources */, + 4196EB7DE63183B3EBF829B4D261AF3B /* AnyRoutingInterceptor.swift in Sources */, + BAE95FD02F2CA6F9C2676BF280FD38C0 /* Array+Extension.swift in Sources */, + 67352E554C1402AC410EFA1FC241D494 /* Array+PrivateExtension.swift in Sources */, + 2A132EDC80AB4E51BE46D79D26A60C3D /* BaseEntitiesCollector.swift in Sources */, + 6FE39E1C38C2F27BA7F25A4F030350CD /* BaseStep.swift in Sources */, + FAF1FCB4B3413C2D015E231BE8B2495E /* CATransaction+Action.swift in Sources */, + D1C5C44456821E54C66BEE587710C85C /* ChainableStep.swift in Sources */, + A2DE8E6C0C900B0807A1F11F5464D94C /* ChainAssembly.swift in Sources */, + EA9344BC3D87961D39A509A44AC30257 /* ChildCoordinator.swift in Sources */, + F67F6067960E552EAC36D58B759693A6 /* ClassFactory.swift in Sources */, + 31924319FD398EF8759CA88584A8CF24 /* ClassFinder.swift in Sources */, + B0ACBABE8FFE62DD492EB1506304033B /* ClassWithContextFinder.swift in Sources */, + 04E030265F2A5B9AD8AC391DD963AE08 /* CompleteFactory.swift in Sources */, + 84E3F1B2F016B664EDA2F89C213B4CA8 /* CompleteFactoryAssembly.swift in Sources */, + 0DA8FABC91CD6A2728B518670FD8E987 /* CompleteFactoryChainAssembly.swift in Sources */, + 651D3815D97518AA898EB09C7DD3A726 /* ConcreteContainerAdapter.swift in Sources */, + D355DE9A8C5B530858A4CB4B1421C056 /* ContainerActionBox.swift in Sources */, + AA25CFE9562DCA6AA3BC24B373B7F4D8 /* ContainerAdapter.swift in Sources */, + F9143BEBF01554765B82D2C3FE0A523E /* ContainerAdapterLocator.swift in Sources */, + 581C2B8F32F150ED33F477F9EF9FBE0E /* ContainerFactory.swift in Sources */, + BD10F83806896503C781B05EE9577355 /* ContainerFactoryBox.swift in Sources */, + AEE0089DB077AE9CAA016021AA4C3506 /* ContainerStepChainAssembly.swift in Sources */, + B0C6BCA06BB0D47B51B4F4137652BCA0 /* ContainerViewController.swift in Sources */, + 6A0719918A726AF19C8C32B99BBEAD10 /* ContextAccepting.swift in Sources */, + 580977F45C78A9D4369E4492E6AD876B /* ContextAcceptingView.swift in Sources */, + 1427FB89C0F245E5F5D1B3408A640E4E /* ContextChecking.swift in Sources */, + 7F0BBD4DAE0B2C1603C3988CC6873CE2 /* ContextInstantiatable.swift in Sources */, + F861BC1A557A6FF5958CD538F2E03A25 /* ContextSettingTask.swift in Sources */, + 35FAC31CC608FAAF1AD54C62C1834AE8 /* ContextTask.swift in Sources */, + 2421B1CE2B0C868A408542FF8974198A /* ContextTaskBox.swift in Sources */, + 04FE4B3CE352A6A01A4006A91EA3A041 /* ContextTaskMultiplexer.swift in Sources */, + 02F2EC6FE87A3C205F40B2F629EB3676 /* ContextTransformer.swift in Sources */, + 00A0F2E4F676550D40D4CA1B53A95803 /* ContextTransformerBox.swift in Sources */, + 77240B7AA96B8DC8AB36F26B2A946549 /* ConvertingStep.swift in Sources */, + 55B33F1470E7DA441943F3BB6C74AE09 /* CustomContainerViewController.swift in Sources */, + 4C2B15471FA5B05CFEAC8E0D0C38296E /* CustomWindowProvider.swift in Sources */, + C202FD9A4C4A3B6AE0A342E623ED78B6 /* DefaultContainerAdapterLocator.swift in Sources */, + 970DE24DAC1CADB6E971682AAF113C3F /* DefaultLogger.swift in Sources */, + 5CC3322F40F16AEB1489B62AE5FE5872 /* DefaultLogger+LogLevel.swift in Sources */, + 4FAD96DED643D33FCE706649CD6F84C1 /* DefaultRouter.swift in Sources */, + 9001A1A686B7D57D927E63AD5DA9CD8C /* DefaultRouter+Extension.swift in Sources */, + F2A5365D9E3D8BF3C6E936725DBA1109 /* DefaultStackIterator.swift in Sources */, + 33E62783F14FDDB0B9297B42A508AB34 /* DefaultStackPresentationHandler.swift in Sources */, + CA2648A6D4E8A07C02F563B9BA657217 /* Destination.swift in Sources */, + FEC2D14DD3A72866FFF506F71B093EF2 /* DestinationStep.swift in Sources */, + 541B6FAD0948158ED58F24F0C73B7859 /* DetailsNavigationFinder.swift in Sources */, + B1B0B952CE46624C7F6B56688F9C30A4 /* DismissalMethodProvidingContextTask.swift in Sources */, + 747FE1F49AE281309F273F88002699C0 /* Dismissible.swift in Sources */, + 3204C8BA6EA2FD65CB34ACD435074023 /* DispatchQueue+Action.swift in Sources */, + FD47DE0152FDF05A8AFD55C6B0F720AE /* Factory.swift in Sources */, + 0463739C5337DDF2D65AB721E4A5C455 /* FactoryBox.swift in Sources */, + 0762315CDB5F6D985DFEAD0E906D7913 /* Finder.swift in Sources */, + DFC1C866ABD4AEEBA813D20E64F7B1FE /* FinderBox.swift in Sources */, + 089627591216DFDB094AFF2A87A46277 /* FinderFactory.swift in Sources */, + AA386880F6F6FC7D434B871DB7A27E20 /* GeneralStep.swift in Sources */, + 1A7F7434A5E146A0687E9F99A985E11F /* GenericStepAssembly.swift in Sources */, + 2F1083B849D05E379F49640923AF0EAB /* GlobalInterceptorRouter.swift in Sources */, + B48C9E93616CDE740549E1ECB091908F /* InlineContextTask.swift in Sources */, + E1E3E68121DF9B42811F13F06A647CBC /* InlineContextTransformer.swift in Sources */, + 9BBEAC34277A69F15C5DDCCD1251480A /* InlineFactory.swift in Sources */, + BCCD279E7211152EFCE537A62AB7FB1F /* InlineInterceptor.swift in Sources */, + B053E2C6E49550D58129CCD0FA201A4D /* InlinePostTask.swift in Sources */, + 66A78E5358DE3A7503C3EB34ADD0CDE5 /* InlineStackIteratingFinder.swift in Sources */, + 3C85796C81E112121BD6D554F2BF3DFC /* InPlaceTransformingAnyContext.swift in Sources */, + 1A54CF4E0CB1A77F1F8C5C5C5A322662 /* InstanceFinder.swift in Sources */, + 617B797776FE0197495462E0317E4B01 /* InterceptableRouter.swift in Sources */, + 07E127F123E34E4B3D9D27201FFB0748 /* InterceptableStep.swift in Sources */, + 2DCBB4AD6278B769CA0A10C3463B6A65 /* InterceptableStepAssembling.swift in Sources */, + 69A3C2FFB8618ED70E62C3E5F08AC64B /* InterceptorMultiplexer.swift in Sources */, + 882CF0D1B56139ACFB262DBEF01755E6 /* KeyWindowProvider.swift in Sources */, + 569561DA9838E9F5791115428D6E7AE5 /* LastStepInChainAssembly.swift in Sources */, + B137CA5968FF618E13DD00CF90187DC2 /* Logger.swift in Sources */, + 2D1B1D679509B1FFBB4DB86471779CDF /* LogMessage.swift in Sources */, + 29EED4B704406680615124B9BC8A9D5D /* MainThreadChecking.swift in Sources */, + A26A18BC114DA3399BC570CCF2787493 /* NavigationController+Extension.swift in Sources */, + EB8D15B4CBE76B5512F0237AAA875961 /* NavigationControllerAdapter.swift in Sources */, + 27E072C304715D181C94E882FFC73E04 /* NavigationControllerFactory.swift in Sources */, + 58203A0697626C7C91B6011407532DFF /* NavigationControllerStep.swift in Sources */, + 8C4C05380E54D1F1269D57C0153C5AEF /* NavigationDelayInterceptor.swift in Sources */, + 1F658431E667BDBAC907A1CFDD1BCBF7 /* NilContextTransformer.swift in Sources */, + 683FFDC1173FD4BA64AD91347EBC6186 /* NilEntity.swift in Sources */, + D2CEC3F35BE7C41C65F0314D8EFAC350 /* NilFactory.swift in Sources */, + 840A7C282ED155A31FCBFBE17FC873CC /* NilFinder.swift in Sources */, + AB7E624905803FE09807870678F3C478 /* PerformableStep.swift in Sources */, + 9405EA79261627569B5324030186CB98 /* PerformableStepResult.swift in Sources */, + AD68AD74BC0541A857EC82D12852B0F4 /* PostponedIntegrationFactory.swift in Sources */, + 12DDAEC113C2A334E8B5D71511D72412 /* PostRoutingTask.swift in Sources */, + 8C0BB710784B2CA3535CF835D07199CC /* PostRoutingTaskBox.swift in Sources */, + F5DA68F89DDCDCCEA499ABD1298C2210 /* PostRoutingTaskMultiplexer.swift in Sources */, + 89DAD1F5E39B73E719095521B9967E56 /* PreparableEntity.swift in Sources */, + A42F77F792E7F62C8A6F86E3D4754B5C /* PresentingFinder.swift in Sources */, + 5F798B78BBA78AA3E43232D0E32CF506 /* RouteComposer-dummy.m in Sources */, + 423296721D71C2C5FAD85359C1875A00 /* RouteComposerDefaults.swift in Sources */, + 829BE2C6CE799AD60687CC2491407D55 /* Router.swift in Sources */, + C1EFF080D146A914EB1254F19ED5E16E /* Router+Destination.swift in Sources */, + 361865ACB31023D9828FFE4677FD72C7 /* RoutingError.swift in Sources */, + 612C14B981D002EA93AA74F906D8BE47 /* RoutingInterceptable.swift in Sources */, + FEF21C0B47B518A24650EF8383348B77 /* RoutingInterceptor.swift in Sources */, + 04F81EEA653618A190B9A5A93534D62F /* RoutingInterceptorBox.swift in Sources */, + 67FF6C658BE36E93B47EDBBF4C3209CA /* RoutingResult.swift in Sources */, + 6D8223463AAEDF8FBB280DE67F47FF0E /* RoutingStep.swift in Sources */, + 28601032DB4113DFE4F0B201F079EBAC /* SearchOptions.swift in Sources */, + DF67DDF563A6D5EAEEDD36AC68540CE5 /* SimpleContainerFactory.swift in Sources */, + 2A5F0CDB0EA5E1116BD70DA5FA54C2A7 /* SingleContainerStep.swift in Sources */, + F22CCF8F56748FB0AFBD6174B3AB1567 /* SingleNavigationRouter.swift in Sources */, + 7E3E1AD77035B2C095605228959F02C8 /* SingleStep.swift in Sources */, + 76CC48A2E48E9A0B866D286D22373DFD /* SplitControllerAdapter.swift in Sources */, + 70D30BED9BA855292DC5F9F2E55E6F86 /* SplitControllerFactory.swift in Sources */, + A558F8CF8E61A39E1C1BC8C2EFD7EBE3 /* SplitControllerStep.swift in Sources */, + 75C60532D7EDC4939628655AC4ACBB8A /* SplitViewController+Extension.swift in Sources */, + C6819DB09AA6F5EADDA4B201B7C768D1 /* StackIteratingFinder.swift in Sources */, + 37BD9C4584063B43FB53E3620A5D0276 /* StackIterator.swift in Sources */, + 653C887D2BC832FE5C4FDA5C8D6CE509 /* StackPresentationHandler.swift in Sources */, + D4A2B99519771A78173B6BC85D5D0931 /* StepAssembly.swift in Sources */, + 2AD304E72EC9450B684AB36F645EBB40 /* StepChainAssembly.swift in Sources */, + A11828CC8180FF1F83CA16A6E915D89B /* StoryboardFactory.swift in Sources */, + 935994BD3A67F58E5B708865FBAFA332 /* SwitchAssembly.swift in Sources */, + 993C288A9EFBF43611C9C613FF13A90C /* SwitcherStep.swift in Sources */, + 876E3842BDEDD8EE816FC8C69D84EE76 /* TabBarControllerAdapter.swift in Sources */, + F3ECA785B0AED8DAE8F8C7B178F4F083 /* TabBarControllerFactory.swift in Sources */, + 5A8CA02B29363A5DDBB9335C8343A2E6 /* TabBarControllerStep.swift in Sources */, + BEE31DCF2CB293A62D6D7490BA17543C /* TabBarViewController+Extension.swift in Sources */, + D5EA7BB2704CE5C77FB4097A87E78E56 /* TaskCollector.swift in Sources */, + E243CA5D1A91E26470BFCBA8F54B2D8D /* UIHostingControllerFactory.swift in Sources */, + 096B155ED83350BD0BC9AE8445EC8FC1 /* UIHostingControllerWithContextFactory.swift in Sources */, + C87822A82C6830CAA890123197AA6CB9 /* UIHostingControllerWithContextFinder.swift in Sources */, + 9C0A297DB67EC4B4E5A6B6C98EEABF04 /* UINavigationController+Action.swift in Sources */, + 2B8A9D815DCA30F60117810589DE55F0 /* UISplitViewController+Action.swift in Sources */, + 3FD32CED525F4135398D0F6601569998 /* UITabBarController+Action.swift in Sources */, + CAB0A7D3918E26AC7E639D959E74D332 /* UIViewController+Action.swift in Sources */, + 885FDF48232BB058AF5C7A1168767D99 /* UIViewController+Extension.swift in Sources */, + D51EA7393FBD69407AE7EF3562BE61B0 /* UIViewController+PrivateExtension.swift in Sources */, + 13A1C98C80CEFB79EA42D90A12CA3888 /* UIWindow+Extension.swift in Sources */, + 376F50DE565AB7875248103F2A593EE8 /* WindowProvider.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -2130,29 +2134,29 @@ /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ - 4B23B89342FDDCFF960F45B34C454DE5 /* PBXTargetDependency */ = { + 1D76BF99E11A0559407AF92CC171624E /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = RouteComposer; - target = 053CA6EE066329CE5637753D02325B34 /* RouteComposer */; - targetProxy = 348E4FA39365084F781DA53E32F6C447 /* PBXContainerItemProxy */; + name = SwiftFormat; + target = 1CD0618C486973D5588EF20D2E8C0AEA /* SwiftFormat */; + targetProxy = 80086AB35993E0224A861DF4ACF7C7DE /* PBXContainerItemProxy */; }; - 91D677827D5A7BF5C23F90191D0824B7 /* PBXTargetDependency */ = { + 62B8E4577162E7C4F602CF20931908BC /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = SwiftFormat; target = 1CD0618C486973D5588EF20D2E8C0AEA /* SwiftFormat */; - targetProxy = EE177DE0B58A85772023F76133478B44 /* PBXContainerItemProxy */; + targetProxy = 49C396B04031F5D65DB6F335022054C7 /* PBXContainerItemProxy */; }; - B8839A9D05517829E899282AF9295103 /* PBXTargetDependency */ = { + 79759C76E8790FBC9BA1EFBD35635C30 /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = RouteComposer; target = 053CA6EE066329CE5637753D02325B34 /* RouteComposer */; - targetProxy = DD72C32A4820A5251DCF35DE93CF46EA /* PBXContainerItemProxy */; + targetProxy = C421E030E83A4857ED2E562E443A0E98 /* PBXContainerItemProxy */; }; - FA69F9BBA07A9FAAB9502AFC53F57A7E /* PBXTargetDependency */ = { + 9FE4739831C2E78BDB0432661814AE44 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = SwiftFormat; - target = 1CD0618C486973D5588EF20D2E8C0AEA /* SwiftFormat */; - targetProxy = 249DA899EAD59DAF16E6E451FED42686 /* PBXContainerItemProxy */; + name = RouteComposer; + target = 053CA6EE066329CE5637753D02325B34 /* RouteComposer */; + targetProxy = B6DEC837F118B01DD382D6D4AB301077 /* PBXContainerItemProxy */; }; /* End PBXTargetDependency section */ @@ -2191,9 +2195,24 @@ }; name = Debug; }; - 150E2415A0169E132D2E838126336498 /* Release */ = { + 2B9B4FFEC0599168AD4B3878672A2426 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = D3B4DAB2F0612087F087D0198738212A /* RouteComposer.release.xcconfig */; + baseConfigurationReference = 648D81C8150A30FFE785A0543F29A014 /* SwiftFormat.release.xcconfig */; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_64_BIT)"; + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 314E77AF051F6B546CC48B081DCAD7A8 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 1E931C9CD4DE6051FE7E69715F272DA1 /* RouteComposer.debug.xcconfig */; buildSettings = { ARCHS = "$(ARCHS_STANDARD_64_BIT)"; CLANG_ENABLE_OBJC_WEAK = NO; @@ -2216,34 +2235,17 @@ SDKROOT = iphoneos; SKIP_INSTALL = YES; SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; - SWIFT_VERSION = 6.0; + SWIFT_VERSION = 5.10; TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; - name = Release; - }; - 2B9B4FFEC0599168AD4B3878672A2426 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 648D81C8150A30FFE785A0543F29A014 /* SwiftFormat.release.xcconfig */; - buildSettings = { - ARCHS = "$(ARCHS_STANDARD_64_BIT)"; - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - SDKROOT = iphoneos; - TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; - }; - name = Release; + name = Debug; }; - 4200DEC4DE4041AA5D021ABD350AAE80 /* Release */ = { + 36C5331E6A84248948DB8B4470DAB616 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 8A7F8855E03EED6DDBF7A9D0C25A1C62 /* Pods-RouteComposer_Example.release.xcconfig */; + baseConfigurationReference = D3B4DAB2F0612087F087D0198738212A /* RouteComposer.release.xcconfig */; buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; ARCHS = "$(ARCHS_STANDARD_64_BIT)"; CLANG_ENABLE_OBJC_WEAK = NO; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; @@ -2254,19 +2256,18 @@ DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = "Target Support Files/Pods-RouteComposer_Example/Pods-RouteComposer_Example-Info.plist"; + GCC_PREFIX_HEADER = "Target Support Files/RouteComposer/RouteComposer-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/RouteComposer/RouteComposer-Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 15.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MACH_O_TYPE = staticlib; - MODULEMAP_FILE = "Target Support Files/Pods-RouteComposer_Example/Pods-RouteComposer_Example.modulemap"; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PODS_ROOT = "$(SRCROOT)"; - PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + MODULEMAP_FILE = "Target Support Files/RouteComposer/RouteComposer.modulemap"; + PRODUCT_MODULE_NAME = RouteComposer; + PRODUCT_NAME = RouteComposer; SDKROOT = iphoneos; SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_VERSION = 5.10; TARGETED_DEVICE_FAMILY = "1,2"; VALIDATE_PRODUCT = YES; VERSIONING_SYSTEM = "apple-generic"; @@ -2274,10 +2275,11 @@ }; name = Release; }; - 8B12F15DE43D1C46AB506E3D960D5333 /* Debug */ = { + 4200DEC4DE4041AA5D021ABD350AAE80 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 1E931C9CD4DE6051FE7E69715F272DA1 /* RouteComposer.debug.xcconfig */; + baseConfigurationReference = 8A7F8855E03EED6DDBF7A9D0C25A1C62 /* Pods-RouteComposer_Example.release.xcconfig */; buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; ARCHS = "$(ARCHS_STANDARD_64_BIT)"; CLANG_ENABLE_OBJC_WEAK = NO; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; @@ -2288,23 +2290,25 @@ DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; - GCC_PREFIX_HEADER = "Target Support Files/RouteComposer/RouteComposer-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/RouteComposer/RouteComposer-Info.plist"; + INFOPLIST_FILE = "Target Support Files/Pods-RouteComposer_Example/Pods-RouteComposer_Example-Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 15.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MODULEMAP_FILE = "Target Support Files/RouteComposer/RouteComposer.modulemap"; - PRODUCT_MODULE_NAME = RouteComposer; - PRODUCT_NAME = RouteComposer; + MACH_O_TYPE = staticlib; + MODULEMAP_FILE = "Target Support Files/Pods-RouteComposer_Example/Pods-RouteComposer_Example.modulemap"; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; SDKROOT = iphoneos; SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; - SWIFT_VERSION = 6.0; TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; - name = Debug; + name = Release; }; 90D4D09BCB6A4660E43ACBE9ECB6FE9A /* Debug */ = { isa = XCBuildConfiguration; @@ -2522,20 +2526,20 @@ /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ - 3154FD2D5593B47DA808EF0EBD7FE087 /* Build configuration list for PBXNativeTarget "RouteComposer" */ = { + 4821239608C13582E20E6DA73FD5F1F9 /* Build configuration list for PBXProject "Pods" */ = { isa = XCConfigurationList; buildConfigurations = ( - 8B12F15DE43D1C46AB506E3D960D5333 /* Debug */, - 150E2415A0169E132D2E838126336498 /* Release */, + 90D4D09BCB6A4660E43ACBE9ECB6FE9A /* Debug */, + 9553C89E183877A5CB2F3C6801BEC129 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 4821239608C13582E20E6DA73FD5F1F9 /* Build configuration list for PBXProject "Pods" */ = { + 516D636A9BEFC75B1C40DEC1ACCB50B5 /* Build configuration list for PBXNativeTarget "RouteComposer" */ = { isa = XCConfigurationList; buildConfigurations = ( - 90D4D09BCB6A4660E43ACBE9ECB6FE9A /* Debug */, - 9553C89E183877A5CB2F3C6801BEC129 /* Release */, + 314E77AF051F6B546CC48B081DCAD7A8 /* Debug */, + 36C5331E6A84248948DB8B4470DAB616 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; diff --git a/Example/Pods/Target Support Files/RouteComposer/RouteComposer-Info.plist b/Example/Pods/Target Support Files/RouteComposer/RouteComposer-Info.plist index 0d7494dc6..83f7539bf 100644 --- a/Example/Pods/Target Support Files/RouteComposer/RouteComposer-Info.plist +++ b/Example/Pods/Target Support Files/RouteComposer/RouteComposer-Info.plist @@ -15,7 +15,7 @@ CFBundlePackageType FMWK CFBundleShortVersionString - 2.11.0 + 2.11.1 CFBundleSignature ???? CFBundleVersion diff --git a/Example/RouteComposer.xcodeproj/project.pbxproj b/Example/RouteComposer.xcodeproj/project.pbxproj index fa3db58e5..097a047cf 100644 --- a/Example/RouteComposer.xcodeproj/project.pbxproj +++ b/Example/RouteComposer.xcodeproj/project.pbxproj @@ -1116,7 +1116,7 @@ ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 6.0; + SWIFT_VERSION = 5.0; }; name = Debug; }; @@ -1165,7 +1165,7 @@ MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - SWIFT_VERSION = 6.0; + SWIFT_VERSION = 5.0; VALIDATE_PRODUCT = YES; }; name = Release; diff --git a/Example/RouteComposer/Configuration/ExampleAnalyticsSupport.swift b/Example/RouteComposer/Configuration/ExampleAnalyticsSupport.swift index 4e2496500..6a26eaa07 100644 --- a/Example/RouteComposer/Configuration/ExampleAnalyticsSupport.swift +++ b/Example/RouteComposer/Configuration/ExampleAnalyticsSupport.swift @@ -13,7 +13,6 @@ import Foundation import UIKit -@MainActor protocol ExampleAnalyticsSupport { var screenType: ExampleScreenTypes { get } diff --git a/Example/RouteComposer/Configuration/ExampleConfiguration.swift b/Example/RouteComposer/Configuration/ExampleConfiguration.swift index 9d876218b..777d8ffcd 100644 --- a/Example/RouteComposer/Configuration/ExampleConfiguration.swift +++ b/Example/RouteComposer/Configuration/ExampleConfiguration.swift @@ -16,10 +16,8 @@ import RouteComposer import SwiftUI #endif -@MainActor let transitionController = BlurredBackgroundTransitionController() -@MainActor protocol ExampleScreenConfiguration { var homeScreen: DestinationStep { get } @@ -205,7 +203,6 @@ struct AlternativeExampleConfiguration: ExampleScreenConfiguration { enum ConfigurationHolder { // Declared as static to avoid dependency injection in the Example app. So this variable is available everywhere. - @MainActor static var configuration: ExampleScreenConfiguration = ExampleConfiguration() } diff --git a/Example/RouteComposer/Libraries/ContainerViewController/ContainerViewController.xcodeproj/project.pbxproj b/Example/RouteComposer/Libraries/ContainerViewController/ContainerViewController.xcodeproj/project.pbxproj index 367736515..2ca67497e 100644 --- a/Example/RouteComposer/Libraries/ContainerViewController/ContainerViewController.xcodeproj/project.pbxproj +++ b/Example/RouteComposer/Libraries/ContainerViewController/ContainerViewController.xcodeproj/project.pbxproj @@ -198,7 +198,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 15.6; + IPHONEOS_DEPLOYMENT_TARGET = 11.4; MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; @@ -256,7 +256,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 15.6; + IPHONEOS_DEPLOYMENT_TARGET = 11.4; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; SWIFT_COMPILATION_MODE = wholemodule; @@ -280,6 +280,7 @@ DYLIB_INSTALL_NAME_BASE = "@rpath"; INFOPLIST_FILE = ContainerViewController/Info.plist; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -305,6 +306,7 @@ DYLIB_INSTALL_NAME_BASE = "@rpath"; INFOPLIST_FILE = ContainerViewController/Info.plist; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", diff --git a/Example/RouteComposer/Libraries/ContainerViewController/ContainerViewController/CustomViewControllerDelegate.swift b/Example/RouteComposer/Libraries/ContainerViewController/ContainerViewController/CustomViewControllerDelegate.swift index 23c429a5d..bc1a568db 100644 --- a/Example/RouteComposer/Libraries/ContainerViewController/ContainerViewController/CustomViewControllerDelegate.swift +++ b/Example/RouteComposer/Libraries/ContainerViewController/ContainerViewController/CustomViewControllerDelegate.swift @@ -12,7 +12,6 @@ import Foundation -@MainActor public protocol CustomViewControllerDelegate: AnyObject { func dismissCustomContainer(controller: CustomContainerController) diff --git a/Example/RouteComposer/Libraries/ImageDetailsController/ImageDetailsController.xcodeproj/project.pbxproj b/Example/RouteComposer/Libraries/ImageDetailsController/ImageDetailsController.xcodeproj/project.pbxproj index 926b9648a..b81ed6aed 100644 --- a/Example/RouteComposer/Libraries/ImageDetailsController/ImageDetailsController.xcodeproj/project.pbxproj +++ b/Example/RouteComposer/Libraries/ImageDetailsController/ImageDetailsController.xcodeproj/project.pbxproj @@ -202,7 +202,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 15.6; + IPHONEOS_DEPLOYMENT_TARGET = 11.4; MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; @@ -260,7 +260,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 15.6; + IPHONEOS_DEPLOYMENT_TARGET = 11.4; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; SWIFT_COMPILATION_MODE = wholemodule; @@ -284,6 +284,7 @@ DYLIB_INSTALL_NAME_BASE = "@rpath"; INFOPLIST_FILE = ImageDetailsController/Info.plist; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -309,6 +310,7 @@ DYLIB_INSTALL_NAME_BASE = "@rpath"; INFOPLIST_FILE = ImageDetailsController/Info.plist; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", diff --git a/Example/RouteComposer/Libraries/ImageDetailsController/ImageDetailsController/ImageDetailsControllerDelegate.swift b/Example/RouteComposer/Libraries/ImageDetailsController/ImageDetailsController/ImageDetailsControllerDelegate.swift index a4de43dd1..5fb6cc026 100644 --- a/Example/RouteComposer/Libraries/ImageDetailsController/ImageDetailsController/ImageDetailsControllerDelegate.swift +++ b/Example/RouteComposer/Libraries/ImageDetailsController/ImageDetailsController/ImageDetailsControllerDelegate.swift @@ -12,7 +12,6 @@ import Foundation -@MainActor public protocol ImageDetailsControllerDelegate: AnyObject { func dismiss(imageDetails: ImageDetailsViewController) diff --git a/Example/RouteComposer/Libraries/ImagesController/ImagesController.xcodeproj/project.pbxproj b/Example/RouteComposer/Libraries/ImagesController/ImagesController.xcodeproj/project.pbxproj index 99b62cf6f..0e8c890a8 100644 --- a/Example/RouteComposer/Libraries/ImagesController/ImagesController.xcodeproj/project.pbxproj +++ b/Example/RouteComposer/Libraries/ImagesController/ImagesController.xcodeproj/project.pbxproj @@ -202,13 +202,13 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 15.6; + IPHONEOS_DEPLOYMENT_TARGET = 11.4; MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 6.0; + SWIFT_VERSION = 5.0; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; @@ -260,12 +260,12 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 15.6; + IPHONEOS_DEPLOYMENT_TARGET = 11.4; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; SWIFT_COMPILATION_MODE = wholemodule; SWIFT_OPTIMIZATION_LEVEL = "-O"; - SWIFT_VERSION = 6.0; + SWIFT_VERSION = 5.0; VALIDATE_PRODUCT = YES; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; @@ -284,6 +284,7 @@ DYLIB_INSTALL_NAME_BASE = "@rpath"; INFOPLIST_FILE = ImagesController/Info.plist; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -309,6 +310,7 @@ DYLIB_INSTALL_NAME_BASE = "@rpath"; INFOPLIST_FILE = ImagesController/Info.plist; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", diff --git a/Example/RouteComposer/Libraries/ImagesController/ImagesController/ImagesControllerDelegate.swift b/Example/RouteComposer/Libraries/ImagesController/ImagesController/ImagesControllerDelegate.swift index 6c216ae7c..7afa0cd29 100644 --- a/Example/RouteComposer/Libraries/ImagesController/ImagesController/ImagesControllerDelegate.swift +++ b/Example/RouteComposer/Libraries/ImagesController/ImagesController/ImagesControllerDelegate.swift @@ -12,7 +12,6 @@ import Foundation -@MainActor public protocol ImagesControllerDelegate: AnyObject { func didSelect(imageID: String, in controller: ImagesViewController) diff --git a/Example/RouteComposer/URLTranslators/ExampleURLTranslator.swift b/Example/RouteComposer/URLTranslators/ExampleURLTranslator.swift index 3f35cbae8..04ff57b92 100644 --- a/Example/RouteComposer/URLTranslators/ExampleURLTranslator.swift +++ b/Example/RouteComposer/URLTranslators/ExampleURLTranslator.swift @@ -14,7 +14,6 @@ import Foundation import RouteComposer import UIKit -@MainActor protocol ExampleURLTranslator { func destination(from url: URL) -> AnyDestination? diff --git a/Example/RouteComposer/URLTranslators/ExampleUniversalLinksManager.swift b/Example/RouteComposer/URLTranslators/ExampleUniversalLinksManager.swift index de154197b..2ee3e7d32 100644 --- a/Example/RouteComposer/URLTranslators/ExampleUniversalLinksManager.swift +++ b/Example/RouteComposer/URLTranslators/ExampleUniversalLinksManager.swift @@ -18,15 +18,12 @@ import UIKit // transforming data that is contained in the `URL` into `AnyDestination` instance. enum ExampleUniversalLinksManager { - @MainActor private static var translators: [ExampleURLTranslator] = [] - @MainActor static func register(translator: ExampleURLTranslator) { translators.append(translator) } - @MainActor static func destination(for url: URL) -> AnyDestination? { guard let translator = translators.first(where: { $0.destination(from: url) != nil }) else { return nil @@ -39,7 +36,6 @@ enum ExampleUniversalLinksManager { extension ExampleUniversalLinksManager { - @MainActor static func configure() { ExampleUniversalLinksManager.register(translator: ColorURLTranslator()) ExampleUniversalLinksManager.register(translator: ProductURLTranslator()) diff --git a/Example/RouteComposer/View Controllers/Cities/CitiesConfiguration.swift b/Example/RouteComposer/View Controllers/Cities/CitiesConfiguration.swift index 5becdebf5..1f66fa44f 100644 --- a/Example/RouteComposer/View Controllers/Cities/CitiesConfiguration.swift +++ b/Example/RouteComposer/View Controllers/Cities/CitiesConfiguration.swift @@ -18,7 +18,6 @@ import UIKit class CitiesConfiguration { // Split View Controller - @MainActor private static var city = StepAssembly(finder: ClassFinder(), // Context type `Void` here is only used to demonstrate the possibility of context transformation. factory: StoryboardFactory(name: "Split")) .adding(LoginInterceptor()) @@ -27,7 +26,6 @@ class CitiesConfiguration { .assemble() // Cities List - @MainActor private static var citiesList = StepAssembly(finder: ClassFinder(), factory: NilFactory()) .adding(CityTableContextTask()) @@ -35,7 +33,6 @@ class CitiesConfiguration { .assemble() // City Details - @MainActor private static var cityDetails = StepAssembly( finder: ClassFinder(), factory: StoryboardFactory(name: "Split", @@ -45,12 +42,10 @@ class CitiesConfiguration { .from(citiesList.adaptingContext(using: InlineContextTransformer { $0.flatMap { "\($0)" } }).expectingContainer()) // We have to transform `Int` to `String?` to satisfy the requirements .assemble() - @MainActor static func citiesList(cityId: Int? = nil) -> Destination { Destination(to: citiesList, with: cityId.flatMap { "\($0)" } ?? nil) } - @MainActor static func cityDetail(cityId: Int) -> Destination { Destination(to: cityDetails, with: cityId) } diff --git a/Example/RouteComposer/View Controllers/Cities/CitiesDataModel.swift b/Example/RouteComposer/View Controllers/Cities/CitiesDataModel.swift index 95f68f2c1..fd6fbc797 100644 --- a/Example/RouteComposer/View Controllers/Cities/CitiesDataModel.swift +++ b/Example/RouteComposer/View Controllers/Cities/CitiesDataModel.swift @@ -14,7 +14,6 @@ import Foundation class CitiesDataModel { - @MainActor static var cities = [ (cityId: 1, city: "Dublin", description: "Dublin, capital of the Republic of Ireland, is on Ireland’s east " + "coast at the mouth of the River Liffey. Its historic buildings include Dublin Castle, dating to the" + diff --git a/Example/RouteComposer/View Controllers/Internal Search Demo/AnyContextCheckingViewController.swift b/Example/RouteComposer/View Controllers/Internal Search Demo/AnyContextCheckingViewController.swift index a05de1ed6..8155020e2 100644 --- a/Example/RouteComposer/View Controllers/Internal Search Demo/AnyContextCheckingViewController.swift +++ b/Example/RouteComposer/View Controllers/Internal Search Demo/AnyContextCheckingViewController.swift @@ -16,7 +16,6 @@ import UIKit // This view controller allows us to have the same ContextChecking UIViewController for testing // as its currently is swift it is impossible to write `some UIViewController: ContextChecking where Context == SOMETHING` -@MainActor class AnyContextCheckingViewController: UIViewController, ContextChecking { func isTarget(for context: Context) -> Bool { diff --git a/Example/RouteComposer/View Controllers/Internal Search Demo/InternalSearchConfiguration.swift b/Example/RouteComposer/View Controllers/Internal Search Demo/InternalSearchConfiguration.swift index 5015fafbf..dad58cc9c 100644 --- a/Example/RouteComposer/View Controllers/Internal Search Demo/InternalSearchConfiguration.swift +++ b/Example/RouteComposer/View Controllers/Internal Search Demo/InternalSearchConfiguration.swift @@ -15,7 +15,6 @@ import RouteComposer import UIKit enum InternalSearchConfiguration { - @MainActor private static let completeFactory = CompleteFactoryAssembly(factory: TabBarControllerFactory()) .with(CompleteFactoryAssembly(factory: NavigationControllerFactory(configuration: { $0.tabBarItem.title = "Home" /* One way */ })) .with(ClassFactory()) @@ -28,7 +27,6 @@ enum InternalSearchConfiguration { }) .assemble() - @MainActor private static let mainScreenFromCircle = StepAssembly( finder: NilFinder(), factory: completeFactory) @@ -45,14 +43,12 @@ enum InternalSearchConfiguration { .from(ConfigurationHolder.configuration.circleScreen.expectingContainer()) .assemble() - @MainActor static let home = Destination(to: StepAssembly( finder: ClassWithContextFinder(), factory: NilFactory()) .from(mainScreenFromCircle) .assemble(), with: .home) - @MainActor static let settings = Destination(to: StepAssembly( finder: ClassWithContextFinder(), factory: NilFactory()) diff --git a/Example/RouteComposer/View Controllers/Login/LoginConfiguration.swift b/Example/RouteComposer/View Controllers/Login/LoginConfiguration.swift index 74142bc62..722310a14 100644 --- a/Example/RouteComposer/View Controllers/Login/LoginConfiguration.swift +++ b/Example/RouteComposer/View Controllers/Login/LoginConfiguration.swift @@ -15,7 +15,6 @@ import RouteComposer enum LoginConfiguration { - @MainActor static func login() -> Destination { let loginScreen = StepAssembly(finder: ClassFinder(), factory: NilFactory()) // Login view controller will be created when UINavigationController will be loaded from storyboard. diff --git a/Example/RouteComposer/View Controllers/Login/LoginViewController.swift b/Example/RouteComposer/View Controllers/Login/LoginViewController.swift index c951b9024..19709987a 100644 --- a/Example/RouteComposer/View Controllers/Login/LoginViewController.swift +++ b/Example/RouteComposer/View Controllers/Login/LoginViewController.swift @@ -15,7 +15,6 @@ import RouteComposer import UIKit // I do not want to create login service for demo so it is just a variable -@MainActor var isLoggedIn: Bool = false class LoginInterceptor: RoutingInterceptor { @@ -94,8 +93,7 @@ class LoginViewController: UIViewController, ExampleAnalyticsSupport { let mainQueue = DispatchQueue.main let deadline = DispatchTime.now() + .seconds(2) activityIndicator.startAnimating() - Task { @MainActor in - try await Task.sleep(nanoseconds: deadline.uptimeNanoseconds) + mainQueue.asyncAfter(deadline: deadline) { self.loginButton.isEnabled = true self.activityIndicator.stopAnimating() isLoggedIn = true diff --git a/Example/RouteComposer/View Controllers/No Library Dependency/Configuration With Library/CustomContainerFactory.swift b/Example/RouteComposer/View Controllers/No Library Dependency/Configuration With Library/CustomContainerFactory.swift index 667307075..b6bc9622e 100644 --- a/Example/RouteComposer/View Controllers/No Library Dependency/Configuration With Library/CustomContainerFactory.swift +++ b/Example/RouteComposer/View Controllers/No Library Dependency/Configuration With Library/CustomContainerFactory.swift @@ -41,7 +41,6 @@ class CustomContainerFactory: SimpleContainerFactory { } -@MainActor extension CustomContainerController: CustomContainerViewController { public var adapter: ContainerAdapter { diff --git a/Example/RouteComposer/View Controllers/No Library Dependency/Configuration With Library/ImagesConfigurationWithLibrary.swift b/Example/RouteComposer/View Controllers/No Library Dependency/Configuration With Library/ImagesConfigurationWithLibrary.swift index 5a598521b..9d0b85ec6 100644 --- a/Example/RouteComposer/View Controllers/No Library Dependency/Configuration With Library/ImagesConfigurationWithLibrary.swift +++ b/Example/RouteComposer/View Controllers/No Library Dependency/Configuration With Library/ImagesConfigurationWithLibrary.swift @@ -19,7 +19,6 @@ import UIKit enum ImagesConfigurationWithLibrary { - @MainActor private static let imagesContainerStep = StepAssembly( finder: ClassFinder(), factory: CustomContainerFactory(delegate: ImagesWithLibraryHandler.shared)) @@ -29,7 +28,6 @@ enum ImagesConfigurationWithLibrary { .from(GeneralStep.current()) .assemble() - @MainActor static func images() -> Destination { let imagesStep = StepAssembly( finder: ClassFinder(), @@ -40,7 +38,6 @@ enum ImagesConfigurationWithLibrary { return Destination(to: imagesStep) } - @MainActor static func imageDetails(for imageID: String) -> Destination { let imageDetailsStep = StepAssembly( finder: ClassFinder(), diff --git a/Example/RouteComposer/View Controllers/No Library Dependency/Configuration Without Library/ImagesWithoutLibraryConfiguration.swift b/Example/RouteComposer/View Controllers/No Library Dependency/Configuration Without Library/ImagesWithoutLibraryConfiguration.swift index e5c8972dd..76afab780 100644 --- a/Example/RouteComposer/View Controllers/No Library Dependency/Configuration Without Library/ImagesWithoutLibraryConfiguration.swift +++ b/Example/RouteComposer/View Controllers/No Library Dependency/Configuration Without Library/ImagesWithoutLibraryConfiguration.swift @@ -20,13 +20,10 @@ import UIKit // will make this implementation much more complicated. class ImagesWithoutLibraryConfiguration { - @MainActor static let shared = ImagesWithoutLibraryConfiguration() - @MainActor private static let handler = ImagesWithoutLibraryHandler() - @MainActor func showCustomController() { // Handled by CustomContainerFactory let storyboard = UIStoryboard(name: "Images", bundle: Bundle.main) diff --git a/Example/RouteComposer/View Controllers/Product/ProductConfiguration.swift b/Example/RouteComposer/View Controllers/Product/ProductConfiguration.swift index 130d6d0f0..e1f4f7cee 100644 --- a/Example/RouteComposer/View Controllers/Product/ProductConfiguration.swift +++ b/Example/RouteComposer/View Controllers/Product/ProductConfiguration.swift @@ -16,7 +16,6 @@ import UIKit class ProductConfiguration { - @MainActor static let productScreen = StepAssembly( finder: ClassWithContextFinder(), factory: StoryboardFactory(name: "TabBar", identifier: "ProductViewController")) @@ -46,7 +45,6 @@ class ProductConfiguration { .assemble() // This path is used to test the transactions in presentations. Does not have any other purposes - @MainActor static let productScreenFromCircle = StepAssembly( finder: ClassWithContextFinder(), factory: NilFactory()) diff --git a/Example/RouteComposer/View Controllers/SwiftUIContentView.swift b/Example/RouteComposer/View Controllers/SwiftUIContentView.swift index 18ab84b4e..3c576aadd 100644 --- a/Example/RouteComposer/View Controllers/SwiftUIContentView.swift +++ b/Example/RouteComposer/View Controllers/SwiftUIContentView.swift @@ -45,7 +45,7 @@ struct SwiftUIContentView: View, ContextInstantiatable, ContextChecking, Context currentContext == context } - nonisolated mutating func setup(with context: String) throws { + mutating func setup(with context: String) throws { currentContext = context } diff --git a/Example/RouteComposer/View Controllers/WishList/WishListConfiguration.swift b/Example/RouteComposer/View Controllers/WishList/WishListConfiguration.swift index e093f22ec..36ca99b59 100644 --- a/Example/RouteComposer/View Controllers/WishList/WishListConfiguration.swift +++ b/Example/RouteComposer/View Controllers/WishList/WishListConfiguration.swift @@ -15,7 +15,6 @@ import RouteComposer import UIKit enum WishListConfiguration { - @MainActor static let wishListScreen = StepAssembly( finder: ClassFinder(), factory: StoryboardFactory(name: "TabBar", identifier: "WishListViewController")) @@ -27,12 +26,10 @@ enum WishListConfiguration { .from(GeneralStep.current()) .assemble() - @MainActor static func favorites() -> Destination { Destination(to: wishListScreen, with: WishListContext.favorites) } - @MainActor static func collections() -> Destination { Destination(to: wishListScreen, with: WishListContext.collections) } diff --git a/Example/Tests/ActionTests.swift b/Example/Tests/ActionTests.swift index 048b0924e..cc747f1d9 100644 --- a/Example/Tests/ActionTests.swift +++ b/Example/Tests/ActionTests.swift @@ -15,7 +15,6 @@ import UIKit import XCTest -@MainActor class ActionTests: XCTestCase { override func setUp() { diff --git a/Example/Tests/AssemblyTest.swift b/Example/Tests/AssemblyTest.swift index 299327699..e2a40790d 100644 --- a/Example/Tests/AssemblyTest.swift +++ b/Example/Tests/AssemblyTest.swift @@ -15,7 +15,6 @@ import Foundation import UIKit import XCTest -@MainActor class AssemblyTest: XCTestCase { struct NilContainerFactory: ContainerFactory, NilEntity { diff --git a/Example/Tests/BoxTest.swift b/Example/Tests/BoxTest.swift index 1bc183ac8..0334bd2ac 100644 --- a/Example/Tests/BoxTest.swift +++ b/Example/Tests/BoxTest.swift @@ -14,7 +14,6 @@ import UIKit import XCTest -@MainActor class BoxTests: XCTestCase { func testFactoryBox() { diff --git a/Example/Tests/ContainerLocatorTests.swift b/Example/Tests/ContainerLocatorTests.swift index 27bacb429..f2b2625fb 100644 --- a/Example/Tests/ContainerLocatorTests.swift +++ b/Example/Tests/ContainerLocatorTests.swift @@ -14,7 +14,6 @@ import UIKit import XCTest -@MainActor class ContainerLocatorTests: XCTestCase { class TestContainerController: UIViewController, CustomContainerViewController { diff --git a/Example/Tests/ContainerTests.swift b/Example/Tests/ContainerTests.swift index 3da68b9ac..7837e3592 100644 --- a/Example/Tests/ContainerTests.swift +++ b/Example/Tests/ContainerTests.swift @@ -14,7 +14,6 @@ import UIKit import XCTest -@MainActor class ContainerTests: XCTestCase { func testChildCoordinatorBuild() { diff --git a/Example/Tests/DestinationStepTests.swift b/Example/Tests/DestinationStepTests.swift index bdf3a2d4f..dbdd95d37 100644 --- a/Example/Tests/DestinationStepTests.swift +++ b/Example/Tests/DestinationStepTests.swift @@ -14,7 +14,6 @@ import UIKit import XCTest -@MainActor class DestinationStepTests: XCTestCase { struct TestFinder: Finder { diff --git a/Example/Tests/ExtensionsTest.swift b/Example/Tests/ExtensionsTest.swift index c9263d764..22cfd07b6 100644 --- a/Example/Tests/ExtensionsTest.swift +++ b/Example/Tests/ExtensionsTest.swift @@ -15,7 +15,6 @@ import Foundation import UIKit import XCTest -@MainActor class ExtensionsTest: XCTestCase { class InvisibleViewController: UIViewController {} diff --git a/Example/Tests/ExtrasTest.swift b/Example/Tests/ExtrasTest.swift index efc6baf0a..0cfcdcc17 100644 --- a/Example/Tests/ExtrasTest.swift +++ b/Example/Tests/ExtrasTest.swift @@ -15,7 +15,6 @@ import Foundation import UIKit import XCTest -@MainActor class ExtrasTest: XCTestCase { let router = SingleNavigationRouter(router: DefaultRouter(), lock: SingleNavigationLock()) diff --git a/Example/Tests/FactoryTest.swift b/Example/Tests/FactoryTest.swift index 306e56939..3444b39de 100644 --- a/Example/Tests/FactoryTest.swift +++ b/Example/Tests/FactoryTest.swift @@ -15,7 +15,6 @@ import Foundation import UIKit import XCTest -@MainActor class FactoryTest: XCTestCase { func testClassFactoryByType() { diff --git a/Example/Tests/FinderTests.swift b/Example/Tests/FinderTests.swift index 896315220..a9686deb2 100644 --- a/Example/Tests/FinderTests.swift +++ b/Example/Tests/FinderTests.swift @@ -39,7 +39,6 @@ extension DefaultStackIterator.StartingPoint: Equatable { } -@MainActor class FinderTest: XCTestCase { class TestContextCheckingViewController: UIViewController, ContextChecking { diff --git a/Example/Tests/MultiplexerTest.swift b/Example/Tests/MultiplexerTest.swift index 499440ce8..76e38ebab 100644 --- a/Example/Tests/MultiplexerTest.swift +++ b/Example/Tests/MultiplexerTest.swift @@ -15,7 +15,6 @@ import Foundation import UIKit import XCTest -@MainActor class MultiplexerTest: XCTestCase { func testRoutingInterceptorPrepare() { diff --git a/Example/Tests/RouterTest.swift b/Example/Tests/RouterTest.swift index 8ecb43546..7ef8cce1f 100644 --- a/Example/Tests/RouterTest.swift +++ b/Example/Tests/RouterTest.swift @@ -19,7 +19,6 @@ private protocol TestProtocol {} private struct TestImplementation: TestProtocol {} -@MainActor class RouterTests: XCTestCase { let router = DefaultRouter() diff --git a/RouteComposer.podspec b/RouteComposer.podspec index 76910247f..aaa0e9403 100644 --- a/RouteComposer.podspec +++ b/RouteComposer.podspec @@ -1,8 +1,8 @@ Pod::Spec.new do |s| s.name = 'RouteComposer' - s.version = '2.11.0' + s.version = '2.11.1' s.summary = 'Protocol oriented library that helps to handle view controllers composition, navigation and deep linking tasks.' - s.swift_version = '6.0' + s.swift_version = '5.10' s.description = <<-DESC RouteComposer is the protocol oriented, Cocoa UI abstractions based library that helps to handle view controllers composition, navigation diff --git a/RouteComposer/Classes/AbstractAction.swift b/RouteComposer/Classes/AbstractAction.swift index 0dcca1944..eadecf5fa 100644 --- a/RouteComposer/Classes/AbstractAction.swift +++ b/RouteComposer/Classes/AbstractAction.swift @@ -14,7 +14,6 @@ import UIKit /// Represents any action that has to be applied to the `UIViewController` after it has /// been built (eg: push to navigation stack, present modally, push to tab, etc) -@MainActor public protocol AbstractAction { // MARK: Associated types diff --git a/RouteComposer/Classes/AbstractFactory.swift b/RouteComposer/Classes/AbstractFactory.swift index 104dc3e63..41d6881dd 100644 --- a/RouteComposer/Classes/AbstractFactory.swift +++ b/RouteComposer/Classes/AbstractFactory.swift @@ -16,7 +16,6 @@ import UIKit /// Base protocol for all types of factories. /// An instance that extends `AbstractFactory` builds a `UIViewController` that will later be /// integrated into the stack by the `Router` -@MainActor public protocol AbstractFactory { // MARK: Associated types @@ -42,7 +41,6 @@ public protocol AbstractFactory { // MARK: Helper methods where the Context is Any? -@MainActor public extension AbstractFactory where Context == Any? { /// Prepares the `AbstractFactory` @@ -54,7 +52,6 @@ public extension AbstractFactory where Context == Any? { // MARK: Helper methods where the Context is Void -@MainActor public extension AbstractFactory where Context == Void { /// Prepares the `AbstractFactory` diff --git a/RouteComposer/Classes/Action.swift b/RouteComposer/Classes/Action.swift index 8e7ef5a8c..94e2bd24b 100644 --- a/RouteComposer/Classes/Action.swift +++ b/RouteComposer/Classes/Action.swift @@ -14,11 +14,9 @@ import UIKit /// Represents an action that has to be applied to the `UIViewController` after it has /// been built (eg: push to navigation stack, present modally, push to tab, etc) -@MainActor public protocol Action: AbstractAction {} /// Represents an action to be used by a `ContainerFactory` to build it's children view controller stack -@MainActor public protocol ContainerAction: AbstractAction where ViewController: ContainerViewController { // MARK: Methods to implement @@ -35,7 +33,6 @@ public protocol ContainerAction: AbstractAction where ViewController: ContainerV // MARK: Default implementation -@MainActor public extension ContainerAction { func perform(embedding viewController: UIViewController, in childViewControllers: inout [UIViewController]) { diff --git a/RouteComposer/Classes/Actions/UINavigationController+Action.swift b/RouteComposer/Classes/Actions/UINavigationController+Action.swift index d9cb73e0f..fa46cc5a7 100644 --- a/RouteComposer/Classes/Actions/UINavigationController+Action.swift +++ b/RouteComposer/Classes/Actions/UINavigationController+Action.swift @@ -20,19 +20,16 @@ public extension ContainerViewController where Self: UINavigationController { // MARK: Steps /// Replaces all the child view controllers in the `UINavigationController`'s children stack - @MainActor static func pushAsRoot() -> NavigationControllerActions.PushAsRootAction { NavigationControllerActions.PushAsRootAction() } /// Pushes a child view controller into the `UINavigationController`'s children stack - @MainActor static func push() -> NavigationControllerActions.PushAction { NavigationControllerActions.PushAction() } /// Pushes a child view controller, replacing the existing, into the `UINavigationController`'s children stack - @MainActor static func pushReplacingLast() -> NavigationControllerActions.PushReplacingLastAction { NavigationControllerActions.PushReplacingLastAction() } diff --git a/RouteComposer/Classes/Actions/UISplitViewController+Action.swift b/RouteComposer/Classes/Actions/UISplitViewController+Action.swift index 87058c9d7..a0286bce3 100644 --- a/RouteComposer/Classes/Actions/UISplitViewController+Action.swift +++ b/RouteComposer/Classes/Actions/UISplitViewController+Action.swift @@ -20,20 +20,17 @@ public extension ContainerViewController where Self: UISplitViewController { // MARK: Steps /// Presents a view controller as a master in the `UISplitViewController` - @MainActor static func setAsMaster() -> SplitViewControllerActions.SetAsMasterAction { SplitViewControllerActions.SetAsMasterAction() } /// Presents a view controller as a detail in the `UISplitViewController`, *replacing* the previous detail. - @MainActor static func pushToDetails() -> SplitViewControllerActions.PushToDetailsAction { SplitViewControllerActions.PushToDetailsAction() } /// Pushes a view controller *onto* the detail stack in the `UISplitViewController`. Requires the root detail view /// controller to be the `UINavigationController` - @MainActor static func pushOnToDetails() -> RouteComposer.SplitViewControllerActions.PushOnToDetailsAction { SplitViewControllerActions.PushOnToDetailsAction() } diff --git a/RouteComposer/Classes/Actions/UITabBarController+Action.swift b/RouteComposer/Classes/Actions/UITabBarController+Action.swift index eae1e6f94..921d4eabb 100644 --- a/RouteComposer/Classes/Actions/UITabBarController+Action.swift +++ b/RouteComposer/Classes/Actions/UITabBarController+Action.swift @@ -25,7 +25,6 @@ public extension ContainerViewController where Self: UITabBarController { /// - replacing: should be set to `true` if an existing view controller should be replaced. /// If condition has not been passed, a view controller /// will be added after the latest one. - @MainActor static func add(at tabIndex: Int, replacing: Bool = false) -> TabBarControllerActions.AddTabAction { TabBarControllerActions.AddTabAction(at: tabIndex, replacing: replacing) } @@ -35,7 +34,6 @@ public extension ContainerViewController where Self: UITabBarController { /// - tabIndex: index of a tab. /// If condition has not been passed, a view controller /// will be added after the latest one. - @MainActor static func add(at tabIndex: Int? = nil) -> TabBarControllerActions.AddTabAction { TabBarControllerActions.AddTabAction(at: tabIndex) } diff --git a/RouteComposer/Classes/Actions/UIViewController+Action.swift b/RouteComposer/Classes/Actions/UIViewController+Action.swift index aa6d1081e..1f7fc75de 100644 --- a/RouteComposer/Classes/Actions/UIViewController+Action.swift +++ b/RouteComposer/Classes/Actions/UIViewController+Action.swift @@ -24,7 +24,6 @@ public enum GeneralAction { /// - windowProvider: `WindowProvider` instance /// - animationOptions: Set of `UIView.AnimationOptions`. Transition will happen without animation if not provided. /// - duration: Transition duration. - @MainActor public static func replaceRoot(windowProvider: WindowProvider = RouteComposerDefaults.shared.windowProvider, animationOptions: UIView.AnimationOptions? = nil, duration: TimeInterval = 0.3) -> ViewControllerActions.ReplaceRootAction { @@ -41,7 +40,6 @@ public enum GeneralAction { /// - isModalInPresentation: A Boolean value indicating whether the view controller enforces a modal behavior. /// - preferredContentSize: The preferredContentSize is used for any container laying out a child view controller. /// - presentationConfiguration: Block to configure `UIPresentationController`. - @MainActor public static func presentModally(startingFrom presentationStartingPoint: ViewControllerActions.PresentModallyAction.ModalPresentationStartingPoint = .current, presentationStyle: UIModalPresentationStyle? = .fullScreen, transitionStyle: UIModalTransitionStyle? = .coverVertical, @@ -59,7 +57,6 @@ public enum GeneralAction { } /// `Action` does nothing, but can be helpful for testing or writing the sequences of steps with the `NilFactory` - @MainActor public static func nilAction() -> ViewControllerActions.NilAction { ViewControllerActions.NilAction() } @@ -77,7 +74,6 @@ public extension GeneralAction { /// - isModalInPresentation: A Boolean value indicating whether the view controller enforces a modal behavior. /// - preferredContentSize: The preferredContentSize is used for any container laying out a child view controller. /// - popoverControllerConfigurationBlock: Block to configure `UIPopoverPresentationController`. - @MainActor static func presentModally(startingFrom presentationStartingPoint: ViewControllerActions.PresentModallyAction.ModalPresentationStartingPoint = .current, presentationStyle: UIModalPresentationStyle? = .fullScreen, transitionStyle: UIModalTransitionStyle? = .coverVertical, diff --git a/RouteComposer/Classes/Assemblies/ChainAssembly.swift b/RouteComposer/Classes/Assemblies/ChainAssembly.swift index 4ca855f62..2cda01b3d 100644 --- a/RouteComposer/Classes/Assemblies/ChainAssembly.swift +++ b/RouteComposer/Classes/Assemblies/ChainAssembly.swift @@ -14,7 +14,6 @@ import Foundation import UIKit /// Builds a chain of steps. -@MainActor public enum ChainAssembly { // MARK: Methods @@ -28,7 +27,6 @@ public enum ChainAssembly { /// .assemble() /// ``` /// - Parameter step: The instance of `ActionConnectingAssembly` - @MainActor public static func from(_ step: ActionToStepIntegrator) -> ActionConnectingAssembly { ActionConnectingAssembly(stepToFullFill: step, previousSteps: []) } diff --git a/RouteComposer/Classes/Assemblies/CompleteFactoryAssembly.swift b/RouteComposer/Classes/Assemblies/CompleteFactoryAssembly.swift index 3c7be3387..23b969c7f 100644 --- a/RouteComposer/Classes/Assemblies/CompleteFactoryAssembly.swift +++ b/RouteComposer/Classes/Assemblies/CompleteFactoryAssembly.swift @@ -22,7 +22,6 @@ import UIKit /// .assemble() /// ``` /// *NB: Order matters here* -@MainActor public final class CompleteFactoryAssembly { // MARK: Internal entities diff --git a/RouteComposer/Classes/Assemblies/Helpers/ActionConnectingAssembly.swift b/RouteComposer/Classes/Assemblies/Helpers/ActionConnectingAssembly.swift index 5fbdb7673..7ad7e0bba 100644 --- a/RouteComposer/Classes/Assemblies/Helpers/ActionConnectingAssembly.swift +++ b/RouteComposer/Classes/Assemblies/Helpers/ActionConnectingAssembly.swift @@ -14,7 +14,6 @@ import Foundation import UIKit /// Helper class to build a chain of steps. Can not be used directly. -@MainActor public struct ActionConnectingAssembly { // MARK: Properties diff --git a/RouteComposer/Classes/Assemblies/Helpers/ActionToStepIntegrator.swift b/RouteComposer/Classes/Assemblies/Helpers/ActionToStepIntegrator.swift index c94f358e3..26c183f81 100644 --- a/RouteComposer/Classes/Assemblies/Helpers/ActionToStepIntegrator.swift +++ b/RouteComposer/Classes/Assemblies/Helpers/ActionToStepIntegrator.swift @@ -15,7 +15,6 @@ import UIKit // This class is only needed not to expose `RoutingStep` as public. /// A simple class that represents an intermediate `DestinationStep` and allows to add tasks to it. -@MainActor public class IntermediateDestinationStep { // Hides action integration from library user. diff --git a/RouteComposer/Classes/Assemblies/Helpers/CompleteFactoryChainAssembly.swift b/RouteComposer/Classes/Assemblies/Helpers/CompleteFactoryChainAssembly.swift index 107e28dec..83a7bf13c 100644 --- a/RouteComposer/Classes/Assemblies/Helpers/CompleteFactoryChainAssembly.swift +++ b/RouteComposer/Classes/Assemblies/Helpers/CompleteFactoryChainAssembly.swift @@ -14,7 +14,6 @@ import Foundation import UIKit /// Builds the chain of assemblies to fulfill the `ContainerFactory`. -@MainActor public final class CompleteFactoryChainAssembly { // MARK: Properties diff --git a/RouteComposer/Classes/Assemblies/Helpers/ContainerStepChainAssembly.swift b/RouteComposer/Classes/Assemblies/Helpers/ContainerStepChainAssembly.swift index 6fdf24383..a25fbadef 100644 --- a/RouteComposer/Classes/Assemblies/Helpers/ContainerStepChainAssembly.swift +++ b/RouteComposer/Classes/Assemblies/Helpers/ContainerStepChainAssembly.swift @@ -14,7 +14,6 @@ import Foundation import UIKit /// Helper class to build a chain of steps. Can not be used directly. -@MainActor public struct ContainerStepChainAssembly { // MARK: Properties diff --git a/RouteComposer/Classes/Assemblies/Helpers/GenericStepAssembly.swift b/RouteComposer/Classes/Assemblies/Helpers/GenericStepAssembly.swift index 20d698e5b..34a54b4f8 100644 --- a/RouteComposer/Classes/Assemblies/Helpers/GenericStepAssembly.swift +++ b/RouteComposer/Classes/Assemblies/Helpers/GenericStepAssembly.swift @@ -14,7 +14,6 @@ import Foundation import UIKit /// Abstract builder class that helps to create a `DestinationStep` instance with correct settings. -@MainActor public class GenericStepAssembly: InterceptableStepAssembling { // MARK: Associated types diff --git a/RouteComposer/Classes/Assemblies/Helpers/InterceptableStepAssembling.swift b/RouteComposer/Classes/Assemblies/Helpers/InterceptableStepAssembling.swift index 1b75a361c..fa7b71b61 100644 --- a/RouteComposer/Classes/Assemblies/Helpers/InterceptableStepAssembling.swift +++ b/RouteComposer/Classes/Assemblies/Helpers/InterceptableStepAssembling.swift @@ -14,7 +14,6 @@ import Foundation import UIKit /// Assembly protocol allowing to build an interceptable step. -@MainActor protocol InterceptableStepAssembling { // MARK: Associated types diff --git a/RouteComposer/Classes/Assemblies/Helpers/LastStepInChainAssembly.swift b/RouteComposer/Classes/Assemblies/Helpers/LastStepInChainAssembly.swift index 357ae4a83..e13e9d78e 100644 --- a/RouteComposer/Classes/Assemblies/Helpers/LastStepInChainAssembly.swift +++ b/RouteComposer/Classes/Assemblies/Helpers/LastStepInChainAssembly.swift @@ -14,7 +14,6 @@ import Foundation import UIKit /// Helper class to build a chain of steps. Can not be used directly. -@MainActor public struct LastStepInChainAssembly { // MARK: Properties diff --git a/RouteComposer/Classes/Assemblies/Helpers/StepChainAssembly.swift b/RouteComposer/Classes/Assemblies/Helpers/StepChainAssembly.swift index e199d71a4..f3a9c19d9 100644 --- a/RouteComposer/Classes/Assemblies/Helpers/StepChainAssembly.swift +++ b/RouteComposer/Classes/Assemblies/Helpers/StepChainAssembly.swift @@ -14,7 +14,6 @@ import Foundation import UIKit /// Helper class to build a chain of steps. Can not be used directly. -@MainActor public struct StepChainAssembly { // MARK: Properties diff --git a/RouteComposer/Classes/Assemblies/StepAssembly.swift b/RouteComposer/Classes/Assemblies/StepAssembly.swift index 4828fc445..23b476c76 100644 --- a/RouteComposer/Classes/Assemblies/StepAssembly.swift +++ b/RouteComposer/Classes/Assemblies/StepAssembly.swift @@ -28,7 +28,6 @@ import UIKit /// .from(GeneralStep.current()) /// .assemble() /// ``` -@MainActor public final class StepAssembly: GenericStepAssembly where F.ViewController == FC.ViewController, F.Context == FC.Context { @@ -53,7 +52,6 @@ public final class StepAssembly: GenericStepAsse // MARK: Methods for Factory -@MainActor public extension StepAssembly where FC: Factory { /// Constructor @@ -91,7 +89,6 @@ public extension StepAssembly where FC: Factory { // MARK: Methods for ContainerFactory -@MainActor public extension StepAssembly where FC: ContainerFactory { /// Constructor @@ -128,7 +125,6 @@ public extension StepAssembly where FC: ContainerFactory { // MARK: Methods for the Nil Factory -@MainActor public extension StepAssembly where FC: Factory & NilEntity { /// Connects previously provided `ActionToStepIntegrator` with `NilEntity` factory with a step where the `UIViewController` @@ -162,7 +158,6 @@ public extension StepAssembly where FC: Factory & NilEntity { // MARK: Methods for the Nil ConatinerFactory -@MainActor public extension StepAssembly where FC: ContainerFactory & NilEntity { /// Connects previously provided `ActionToStepIntegrator` with `NilEntity` factory with a step where the `UIViewController` diff --git a/RouteComposer/Classes/Assemblies/SwitchAssembly.swift b/RouteComposer/Classes/Assemblies/SwitchAssembly.swift index 1588b4084..1cb71aba0 100644 --- a/RouteComposer/Classes/Assemblies/SwitchAssembly.swift +++ b/RouteComposer/Classes/Assemblies/SwitchAssembly.swift @@ -39,12 +39,10 @@ import UIKit /// .from(GeneralStep.current()) /// .assemble()) /// ``` -@MainActor public final class SwitchAssembly { // MARK: Internal entities - @MainActor private struct BlockResolver: StepCaseResolver { let resolverBlock: (_: Context) -> DestinationStep? @@ -61,7 +59,6 @@ public final class SwitchAssembly { } } - @MainActor private struct FinderResolver: StepCaseResolver { private let finder: AnyFinder? @@ -183,7 +180,6 @@ public final class SwitchAssembly { // MARK: Methods for ContainerViewController -@MainActor public extension SwitchAssembly where ViewController: ContainerViewController { /// Adds a case when a view controller exists - navigation will start from the resulting view controller. diff --git a/RouteComposer/Classes/ChildCoordinator.swift b/RouteComposer/Classes/ChildCoordinator.swift index a17f8d460..9058932cb 100644 --- a/RouteComposer/Classes/ChildCoordinator.swift +++ b/RouteComposer/Classes/ChildCoordinator.swift @@ -14,7 +14,6 @@ import Foundation import UIKit /// Helps to build a child view controller stack -@MainActor public struct ChildCoordinator { // MARK: Properties diff --git a/RouteComposer/Classes/ContainerAdapter.swift b/RouteComposer/Classes/ContainerAdapter.swift index 409f83faf..b1f8dd5ae 100644 --- a/RouteComposer/Classes/ContainerAdapter.swift +++ b/RouteComposer/Classes/ContainerAdapter.swift @@ -24,7 +24,6 @@ import UIKit /// 2. One or more view controllers are currently visible. /// 3. They can make one of these view controllers visible. /// 4. They can replace all of their contained view controllers. -@MainActor public protocol ContainerAdapter { // MARK: Properties to implement @@ -64,7 +63,6 @@ public protocol ContainerAdapter { // MARK: Helper methods -@MainActor public extension ContainerAdapter { var overriddenParentViewController: UIViewController? { diff --git a/RouteComposer/Classes/ContainerAdapterLocator.swift b/RouteComposer/Classes/ContainerAdapterLocator.swift index 91727c500..985867cb0 100644 --- a/RouteComposer/Classes/ContainerAdapterLocator.swift +++ b/RouteComposer/Classes/ContainerAdapterLocator.swift @@ -13,7 +13,6 @@ import Foundation /// Provides `ContainerAdapter` instance. -@MainActor public protocol ContainerAdapterLocator { // MARK: Methods to implement diff --git a/RouteComposer/Classes/ContainerFactory.swift b/RouteComposer/Classes/ContainerFactory.swift index 193f41971..1febe9688 100644 --- a/RouteComposer/Classes/ContainerFactory.swift +++ b/RouteComposer/Classes/ContainerFactory.swift @@ -19,7 +19,6 @@ import UIKit /// The `Router` uses `ContainerAction.perform(...)` method of a `ContainerAction` and then populates a full stack of the view controllers /// that were built by the associated factories in one go. /// Example: `Router` requires to populate N-view controllers into `UINavigationController`'s stack. -@MainActor public protocol ContainerFactory: AbstractFactory where ViewController: ContainerViewController { // MARK: Associated types @@ -45,7 +44,6 @@ public protocol ContainerFactory: AbstractFactory where ViewController: Containe // MARK: Default implementation -@MainActor public extension ContainerFactory { /// Default implementation does nothing @@ -55,7 +53,6 @@ public extension ContainerFactory { // MARK: Helper methods -@MainActor public extension ContainerFactory { /// Builds a `ContainerFactory` view controller. @@ -74,7 +71,6 @@ public extension ContainerFactory { // MARK: Helper methods where the Context is Any? -@MainActor public extension ContainerFactory where Context == Any? { /// Builds a `ContainerFactory` view controller. @@ -93,7 +89,6 @@ public extension ContainerFactory where Context == Any? { // MARK: Helper methods where the Context is Void -@MainActor public extension ContainerFactory where Context == Void { /// Builds a `ContainerFactory` view controller. diff --git a/RouteComposer/Classes/ContainerViewController.swift b/RouteComposer/Classes/ContainerViewController.swift index 2cd4ad2b4..bf3caf9b5 100644 --- a/RouteComposer/Classes/ContainerViewController.swift +++ b/RouteComposer/Classes/ContainerViewController.swift @@ -17,5 +17,4 @@ import UIKit /// /// All the methods `ContainerViewController` supports are implemented in corresponding `ContainerAdapter` /// provided by `ContainerAdapterLocator`. -@MainActor public protocol ContainerViewController: RoutingInterceptable {} diff --git a/RouteComposer/Classes/ContextTask.swift b/RouteComposer/Classes/ContextTask.swift index 19685a31f..96b19948e 100644 --- a/RouteComposer/Classes/ContextTask.swift +++ b/RouteComposer/Classes/ContextTask.swift @@ -17,7 +17,6 @@ import UIKit /// /// ### NB /// The `ContextTask` will be applied to the new `UIViewController` before it's integration into the stack. -@MainActor public protocol ContextTask { // MARK: Associated types diff --git a/RouteComposer/Classes/ContextTransformer.swift b/RouteComposer/Classes/ContextTransformer.swift index af43e5977..2d1b9a569 100644 --- a/RouteComposer/Classes/ContextTransformer.swift +++ b/RouteComposer/Classes/ContextTransformer.swift @@ -13,7 +13,6 @@ import Foundation /// Transformer to be applied to transform one type of context to another. -@MainActor public protocol ContextTransformer { // MARK: Associated types diff --git a/RouteComposer/Classes/Extensions/Array+Extension.swift b/RouteComposer/Classes/Extensions/Array+Extension.swift index a2ad869a0..32b8af2b5 100644 --- a/RouteComposer/Classes/Extensions/Array+Extension.swift +++ b/RouteComposer/Classes/Extensions/Array+Extension.swift @@ -14,7 +14,6 @@ import Foundation import UIKit /// - Extension of an `Array` of the `UIViewControllers` is to check if all of them can be dismissed. -@MainActor public extension Array where Element: UIViewController { /// Returns `true` if all `UIViewController` instances can be dismissed. diff --git a/RouteComposer/Classes/Extensions/UIViewController+Extension.swift b/RouteComposer/Classes/Extensions/UIViewController+Extension.swift index 51b1c249b..72712fc2d 100644 --- a/RouteComposer/Classes/Extensions/UIViewController+Extension.swift +++ b/RouteComposer/Classes/Extensions/UIViewController+Extension.swift @@ -23,7 +23,6 @@ public extension UIViewController { /// - predicate: A block that should return `true` if the `UIViewController` instance provided is the /// one that is being searched for. /// - Returns: A `UIViewController` instance if found, `nil` otherwise. - @MainActor static func findViewController(in viewController: UIViewController, options: SearchOptions = .currentAndUp, containerAdapterLocator: ContainerAdapterLocator = RouteComposerDefaults.shared.containerAdapterLocator, diff --git a/RouteComposer/Classes/Extra/CATransaction+Action.swift b/RouteComposer/Classes/Extra/CATransaction+Action.swift index 7359b9476..8e381f709 100644 --- a/RouteComposer/Classes/Extra/CATransaction+Action.swift +++ b/RouteComposer/Classes/Extra/CATransaction+Action.swift @@ -25,7 +25,6 @@ public extension CATransaction { /// Wraps `Action` in to `CATransaction` /// /// - Parameter action: `Action` instance - @MainActor static func wrap(_ action: A) -> CATransactionWrappedAction { CATransactionWrappedAction(action) } @@ -33,7 +32,6 @@ public extension CATransaction { /// Wraps `ContainerAction` in to `CATransaction` /// /// - Parameter action: `ContainerAction` instance - @MainActor static func wrap(_ action: A) -> CATransactionWrappedContainerAction { CATransactionWrappedContainerAction(action) } diff --git a/RouteComposer/Classes/Extra/ContextAccepting.swift b/RouteComposer/Classes/Extra/ContextAccepting.swift index 718ff9bc2..decd6e1d2 100644 --- a/RouteComposer/Classes/Extra/ContextAccepting.swift +++ b/RouteComposer/Classes/Extra/ContextAccepting.swift @@ -14,7 +14,6 @@ import Foundation import UIKit /// The protocol for a `UIViewController` to make it compatible with `ContextSettingTask`. -@MainActor public protocol ContextAccepting where Self: UIViewController { // MARK: Associated types @@ -29,7 +28,6 @@ public protocol ContextAccepting where Self: UIViewController { /// /// - Parameter context: `Context` instance. /// - Throws: throws `Error` if `Context` instance is not supported. - @MainActor static func checkCompatibility(with context: Context) throws /// `ContextSettingTask` will call this method to provide the `Context` instance to the `UIViewController` @@ -43,11 +41,9 @@ public protocol ContextAccepting where Self: UIViewController { // MARK: Default implementation -@MainActor public extension ContextAccepting { /// Default implementation does nothing. - @MainActor static func checkCompatibility(with context: Context) throws {} } diff --git a/RouteComposer/Classes/Extra/ContextChecking.swift b/RouteComposer/Classes/Extra/ContextChecking.swift index cccb08a17..ffd92f235 100644 --- a/RouteComposer/Classes/Extra/ContextChecking.swift +++ b/RouteComposer/Classes/Extra/ContextChecking.swift @@ -14,7 +14,6 @@ import Foundation import UIKit /// `UIViewController` instance should conform to this protocol to be used with `ClassWithContextFinder` -@MainActor public protocol ContextChecking { // MARK: Associated types diff --git a/RouteComposer/Classes/Extra/Destination.swift b/RouteComposer/Classes/Extra/Destination.swift index 75e3a4f7a..1a27f5272 100644 --- a/RouteComposer/Classes/Extra/Destination.swift +++ b/RouteComposer/Classes/Extra/Destination.swift @@ -19,7 +19,6 @@ public typealias AnyDestination = Destination /// `Destination` instance represents both final screen configuration and the data to provide. It is useful when /// there is a need to wrap both values into a single DTO value. -@MainActor public struct Destination { // MARK: Properties diff --git a/RouteComposer/Classes/Extra/Dismissible.swift b/RouteComposer/Classes/Extra/Dismissible.swift index bc691915d..3910bec9e 100644 --- a/RouteComposer/Classes/Extra/Dismissible.swift +++ b/RouteComposer/Classes/Extra/Dismissible.swift @@ -13,11 +13,9 @@ import Foundation import UIKit -@MainActor -let associatedObjectHandle = UnsafeRawPointer(UnsafeMutablePointer.allocate(capacity: 0)) +var associatedObjectHandle: UInt8 = 0 /// `UIViewController` should conform to `Dismissible` protocol to be used with `DismissalMethodProvidingContextTask`. -@MainActor public protocol Dismissible where Self: UIViewController { // MARK: Associated types @@ -34,7 +32,6 @@ public protocol Dismissible where Self: UIViewController { // MARK: Helper methods -@MainActor public extension Dismissible { /// Dismisses current `UIViewController` using dismissal block provided by `DismissalMethodProvidingContextTask` @@ -57,7 +54,6 @@ public extension Dismissible { // MARK: Helper methods where the DismissalTargetContext is Any? -@MainActor public extension Dismissible where DismissalTargetContext == Any? { /// Dismisses current `UIViewController` using dismissal block provided by `DismissalMethodProvidingContextTask` @@ -73,7 +69,6 @@ public extension Dismissible where DismissalTargetContext == Any? { // MARK: Helper methods where the DismissalTargetContext is Void -@MainActor public extension Dismissible where DismissalTargetContext == Void { /// Dismisses current `UIViewController` using dismissal block provided by `DismissalMethodProvidingContextTask` @@ -89,19 +84,16 @@ public extension Dismissible where DismissalTargetContext == Void { /// `DismissibleWithRuntimeStorage` simplifies `Dismissible` protocol conformance implementing required /// `dismissalBlock` using Objective C runtime. - -@MainActor public protocol DismissibleWithRuntimeStorage: Dismissible {} -@MainActor public extension DismissibleWithRuntimeStorage { var dismissalBlock: ((_: Self, _: DismissalTargetContext, _: Bool, _: ((_: RoutingResult) -> Void)?) -> Void)? { get { - objc_getAssociatedObject(self, associatedObjectHandle) as? (_: Self, _: DismissalTargetContext, _: Bool, _: ((_: RoutingResult) -> Void)?) -> Void + objc_getAssociatedObject(self, &associatedObjectHandle) as? (_: Self, _: DismissalTargetContext, _: Bool, _: ((_: RoutingResult) -> Void)?) -> Void } set { - objc_setAssociatedObject(self, associatedObjectHandle, newValue, .OBJC_ASSOCIATION_RETAIN_NONATOMIC) + objc_setAssociatedObject(self, &associatedObjectHandle, newValue, .OBJC_ASSOCIATION_RETAIN_NONATOMIC) } } diff --git a/RouteComposer/Classes/Extra/DispatchQueue+Action.swift b/RouteComposer/Classes/Extra/DispatchQueue+Action.swift index 90381259a..e33a5c348 100644 --- a/RouteComposer/Classes/Extra/DispatchQueue+Action.swift +++ b/RouteComposer/Classes/Extra/DispatchQueue+Action.swift @@ -23,7 +23,6 @@ public extension DispatchQueue { /// Parameters: /// - action: `Action` instance /// - timeInterval: `DispatchTimeInterval` instance - @MainActor static func delay(_ action: A, for timeInterval: DispatchTimeInterval = .milliseconds(300)) -> DispatchQueueWrappedAction { DispatchQueueWrappedAction(action, timeInterval: timeInterval) } @@ -33,7 +32,6 @@ public extension DispatchQueue { /// Parameters: /// - action: `ContainerAction` instance /// - timeInterval: `DispatchTimeInterval` instance - @MainActor static func delay(_ action: A, for timeInterval: DispatchTimeInterval = .milliseconds(300)) -> DispatchQueueWrappedContainerAction { DispatchQueueWrappedContainerAction(action, timeInterval: timeInterval) } diff --git a/RouteComposer/Classes/Extra/SwiftUI/ContextAcceptingView.swift b/RouteComposer/Classes/Extra/SwiftUI/ContextAcceptingView.swift index e464bfd0f..ad346f6b6 100644 --- a/RouteComposer/Classes/Extra/SwiftUI/ContextAcceptingView.swift +++ b/RouteComposer/Classes/Extra/SwiftUI/ContextAcceptingView.swift @@ -34,7 +34,6 @@ public protocol ContextAcceptingView { /// /// - Parameter context: `Context` instance. /// - Throws: throws `Error` if `Context` instance is not supported. - @MainActor static func checkCompatibility(with context: Context) throws /// `ContextSettingTask` will call this method to provide the `Context` instance to the `View` @@ -52,7 +51,6 @@ public protocol ContextAcceptingView { public extension ContextAcceptingView { /// Default implementation does nothing. - @MainActor static func checkCompatibility(with context: Context) throws {} } diff --git a/RouteComposer/Classes/Factories/CompleteFactory.swift b/RouteComposer/Classes/Factories/CompleteFactory.swift index c926bdfa9..28f46a06e 100644 --- a/RouteComposer/Classes/Factories/CompleteFactory.swift +++ b/RouteComposer/Classes/Factories/CompleteFactory.swift @@ -15,7 +15,7 @@ import UIKit /// The `CompleteFactory` instance is used by the `CompleteFactoryAssembly` as a `ContainerFactory` to /// pre-populate the children view controllers instead of the `Router`. -public struct CompleteFactory: ContainerFactory, @preconcurrency CustomStringConvertible { +public struct CompleteFactory: ContainerFactory, CustomStringConvertible { // MARK: Associated types diff --git a/RouteComposer/Classes/Factory.swift b/RouteComposer/Classes/Factory.swift index c72dcba32..07333e9e8 100644 --- a/RouteComposer/Classes/Factory.swift +++ b/RouteComposer/Classes/Factory.swift @@ -21,7 +21,6 @@ import UIKit /// `productID` to display its content, and the `productID` is a `UUID`, then the type of `Context` is the `UUID`. The internal logic /// belongs to the view controller. `Context` answers the questions *What to I need to present a ProductViewController* and *Am I /// already presenting a ProductViewController for this product*. -@MainActor public protocol Factory: AbstractFactory { // MARK: Associated types @@ -45,7 +44,6 @@ public protocol Factory: AbstractFactory { // MARK: Default implementation -@MainActor public extension Factory { /// Default implementation does nothing @@ -55,7 +53,6 @@ public extension Factory { // MARK: Helper methods -@MainActor public extension Factory { /// Prepares the `Factory` and builds its `UIViewController` @@ -69,7 +66,6 @@ public extension Factory { // MARK: Helper methods where the Context is Any? -@MainActor public extension Factory where Context == Any? { /// Builds a `Factory`'s view controller. @@ -88,7 +84,6 @@ public extension Factory where Context == Any? { // MARK: Helper methods where the Context is Void -@MainActor public extension Factory where Context == Void { /// Builds a `Factory`'s view controller. diff --git a/RouteComposer/Classes/Finder.swift b/RouteComposer/Classes/Finder.swift index 9d91e8efa..7fa630a30 100644 --- a/RouteComposer/Classes/Finder.swift +++ b/RouteComposer/Classes/Finder.swift @@ -15,7 +15,6 @@ import UIKit /// An instance that conforms to the `Finder` protocol will be used by the `Router` to find out if some `UIViewController` /// instance is integrated into the view controller stack -@MainActor public protocol Finder { // MARK: Associated types @@ -38,7 +37,6 @@ public protocol Finder { // MARK: Helper methods -@MainActor public extension Finder { /// Returns the view controller instance if it is present in the stack. Doesn't throw any exceptions in case the search @@ -58,7 +56,6 @@ public extension Finder { // MARK: Helper methods where the Context is Any? -@MainActor public extension Finder where Context == Any? { /// Returns the view controller instance if it is present in the stack. @@ -80,7 +77,6 @@ public extension Finder where Context == Any? { // MARK: Helper methods where the Context is Void -@MainActor public extension Finder where Context == Void { /// Returns the view controller instance if it is present in the stack. diff --git a/RouteComposer/Classes/Finders/Stack Iterator/StackIterator.swift b/RouteComposer/Classes/Finders/Stack Iterator/StackIterator.swift index 8606c9159..504e1c553 100644 --- a/RouteComposer/Classes/Finders/Stack Iterator/StackIterator.swift +++ b/RouteComposer/Classes/Finders/Stack Iterator/StackIterator.swift @@ -14,7 +14,6 @@ import Foundation import UIKit /// `StackIterator` protocol -@MainActor public protocol StackIterator { // MARK: Methods to implement diff --git a/RouteComposer/Classes/Finders/Stack Iterator/WindowProvider.swift b/RouteComposer/Classes/Finders/Stack Iterator/WindowProvider.swift index 592211de5..1a30b0a72 100644 --- a/RouteComposer/Classes/Finders/Stack Iterator/WindowProvider.swift +++ b/RouteComposer/Classes/Finders/Stack Iterator/WindowProvider.swift @@ -14,7 +14,6 @@ import Foundation import UIKit /// Provides `UIWindow` -@MainActor public protocol WindowProvider { // MARK: Properties to implement diff --git a/RouteComposer/Classes/Finders/StackIteratingFinder.swift b/RouteComposer/Classes/Finders/StackIteratingFinder.swift index 160b5767f..e650b99a9 100644 --- a/RouteComposer/Classes/Finders/StackIteratingFinder.swift +++ b/RouteComposer/Classes/Finders/StackIteratingFinder.swift @@ -15,7 +15,6 @@ import UIKit /// `StackIteratingFinder` iterates through the view controllers stack /// following the search options provided. It simplifies the creation of the finders for a hosting app. -@MainActor public protocol StackIteratingFinder: Finder { // MARK: Associated types @@ -44,7 +43,6 @@ public protocol StackIteratingFinder: Finder { } -@MainActor public extension StackIteratingFinder { func findViewController(with context: Context) throws -> ViewController? { diff --git a/RouteComposer/Classes/InterceptableRouter.swift b/RouteComposer/Classes/InterceptableRouter.swift index 66c1c873b..af914bbf7 100644 --- a/RouteComposer/Classes/InterceptableRouter.swift +++ b/RouteComposer/Classes/InterceptableRouter.swift @@ -14,7 +14,6 @@ import Foundation import UIKit /// The router implementing this protocol should support global tasks. -@MainActor public protocol InterceptableRouter: Router { /// Adds `RoutingInterceptor` instance diff --git a/RouteComposer/Classes/PostRoutingTask.swift b/RouteComposer/Classes/PostRoutingTask.swift index 2f4befa7f..6cdfe8723 100644 --- a/RouteComposer/Classes/PostRoutingTask.swift +++ b/RouteComposer/Classes/PostRoutingTask.swift @@ -14,7 +14,6 @@ import Foundation import UIKit /// The task to be executed after navigation process happened. -@MainActor public protocol PostRoutingTask { // MARK: Associated types @@ -40,7 +39,6 @@ public protocol PostRoutingTask { // MARK: Helper methods where the Context is Any? -@MainActor public extension PostRoutingTask where Context == Any? { /// Method to be executed by the `Router` after all the view controllers have been built into the stack. @@ -57,7 +55,6 @@ public extension PostRoutingTask where Context == Any? { // MARK: Helper methods where the Context is Void -@MainActor public extension PostRoutingTask where Context == Void { /// Method to be executed by the `Router` after all the view controllers have been built into the stack. diff --git a/RouteComposer/Classes/RouteComposerDefaults.swift b/RouteComposer/Classes/RouteComposerDefaults.swift index 0a8e484b9..9e1e64cd6 100644 --- a/RouteComposer/Classes/RouteComposerDefaults.swift +++ b/RouteComposer/Classes/RouteComposerDefaults.swift @@ -12,18 +12,23 @@ import Foundation +private let lock = NSObject() + /// Default configuration for all the instances in `RouteComposer`. /// /// **NB:** If you are going to provide your own defaults, make sure that `RouteComposerDefaults.configureWith(...)` is called /// before the instantiation of any other `RouteComposer`'s instances. `AppDelegate` is probably the best place for it. -@MainActor public final class RouteComposerDefaults { // MARK: Properties /// Singleton access. - @MainActor public static var shared: RouteComposerDefaults = { + objc_sync_enter(lock) + defer { + objc_sync_exit(lock) + configurationStorage?.logInstantiation() + } switch configurationStorage { case let .some(configurationStorage): return configurationStorage @@ -35,22 +40,17 @@ public final class RouteComposerDefaults { }() /// Default `Logger` instance. - @MainActor public private(set) var logger: Logger? /// Default `ContainerAdapterLocator` instance. - @MainActor public private(set) var containerAdapterLocator: ContainerAdapterLocator /// Default `StackIterator` instance. - @MainActor public private(set) var stackIterator: StackIterator /// Default `WindowProvider` instance. - @MainActor public private(set) var windowProvider: WindowProvider - @MainActor private static var configurationStorage: RouteComposerDefaults? // MARK: Methods @@ -64,11 +64,14 @@ public final class RouteComposerDefaults { /// - windowProvider: Default `WindowProvider` instance. /// - containerAdapterLocator: Default `ContainerAdapterLocator` instance. /// - stackIterator: Default `StackIterator` instance. - @MainActor - public static func configureWith(logger: Logger? = DefaultLogger(.warnings), - windowProvider: WindowProvider = KeyWindowProvider(), - containerAdapterLocator: ContainerAdapterLocator = DefaultContainerAdapterLocator(), - stackIterator: StackIterator? = nil) { + public class func configureWith(logger: Logger? = DefaultLogger(.warnings), + windowProvider: WindowProvider = KeyWindowProvider(), + containerAdapterLocator: ContainerAdapterLocator = DefaultContainerAdapterLocator(), + stackIterator: StackIterator? = nil) { + objc_sync_enter(lock) + defer { + objc_sync_exit(lock) + } guard configurationStorage == nil else { assertionFailure("Default values were initialised once. \(#function) must be called before any RouteComposer instantiation!") return diff --git a/RouteComposer/Classes/Router.swift b/RouteComposer/Classes/Router.swift index 42a9b94aa..405dd3c24 100644 --- a/RouteComposer/Classes/Router.swift +++ b/RouteComposer/Classes/Router.swift @@ -14,7 +14,6 @@ import Foundation import UIKit /// Base router protocol. -@MainActor public protocol Router { // MARK: Methods to implement @@ -35,29 +34,8 @@ public protocol Router { // MARK: Helper methods -@MainActor public extension Router { - @available(iOS 13.0.0, *) - func navigate(to step: DestinationStep, - with context: Context, - animated: Bool) async throws { - try await withCheckedThrowingContinuation { continuation in - do { - try navigate(to: step, with: context, animated: animated) { result in - switch result { - case .success: - continuation.resume() - case let .failure(error): - continuation.resume(throwing: error) - } - } - } catch { - continuation.resume(throwing: error) - } - } - } - /// Navigates the application to the view controller configured in `DestinationStep` with the `Context` set to `Any?`. /// /// - Parameters: @@ -70,25 +48,6 @@ public extension Router { try navigate(to: step, with: nil, animated: animated, completion: completion) } - @available(iOS 13.0.0, *) - func navigate(to step: DestinationStep, - animated: Bool) async throws { - try await withCheckedThrowingContinuation { continuation in - do { - try navigate(to: step, with: nil, animated: animated) { result in - switch result { - case .success: - continuation.resume() - case let .failure(error): - continuation.resume(throwing: error) - } - } - } catch { - continuation.resume(throwing: error) - } - } - } - /// Navigates the application to the view controller configured in `DestinationStep` with the `Context` set to `Void`. /// /// - Parameters: @@ -101,30 +60,10 @@ public extension Router { try navigate(to: step, with: (), animated: animated, completion: completion) } - @available(iOS 13.0.0, *) - func navigate(to step: DestinationStep, - animated: Bool) async throws { - try await withCheckedThrowingContinuation { continuation in - do { - try navigate(to: step, with: (), animated: animated) { result in - switch result { - case .success: - continuation.resume() - case let .failure(error): - continuation.resume(throwing: error) - } - } - } catch { - continuation.resume(throwing: error) - } - } - } - } // MARK: Navigation without the exception throwing -@MainActor public extension Router { /// Navigates the application to the view controller configured in `DestinationStep` with the `Context` provided. diff --git a/RouteComposer/Classes/Router/DefaultRouter.swift b/RouteComposer/Classes/Router/DefaultRouter.swift index 32b758a27..4bef8626d 100644 --- a/RouteComposer/Classes/Router/DefaultRouter.swift +++ b/RouteComposer/Classes/Router/DefaultRouter.swift @@ -13,7 +13,7 @@ import UIKit /// Default `Router` implementation -public struct DefaultRouter: InterceptableRouter { +public struct DefaultRouter: InterceptableRouter, MainThreadChecking { // MARK: Properties @@ -64,6 +64,7 @@ public struct DefaultRouter: InterceptableRouter { with context: Context, animated: Bool = true, completion: ((_: RoutingResult) -> Void)? = nil) throws { + assertIfNotMainThread(logger: logger) do { // Wrapping real context into a box. let context: AnyContext = AnyContextBox(context) @@ -181,6 +182,8 @@ public struct DefaultRouter: InterceptableRouter { // continue navigation process. This operation is async. let initialControllerDescription = String(describing: viewController) taskStack.performInterceptors { [weak viewController] result in + assertIfNotMainThread(logger: logger) + if case let .failure(error) = result { completion(.failure(error)) return @@ -256,6 +259,7 @@ public struct DefaultRouter: InterceptableRouter { with: postponedIntegrationHandler, nextAction: nextAction, animated: animated) { result in + assertIfNotMainThread(logger: logger) guard result.isSuccessful else { logger?.log(.info("\(String(describing: factory.factory.action)) has stopped the navigation process " + "as it was not able to build a view controller into a stack.")) diff --git a/RouteComposer/Classes/Router/Helpers/DefaultStackPresentationHandler.swift b/RouteComposer/Classes/Router/Helpers/DefaultStackPresentationHandler.swift index 8ff3de851..b9810eb1a 100644 --- a/RouteComposer/Classes/Router/Helpers/DefaultStackPresentationHandler.swift +++ b/RouteComposer/Classes/Router/Helpers/DefaultStackPresentationHandler.swift @@ -13,7 +13,7 @@ import UIKit /// Default implementation of `StackPresentationHandler` -public struct DefaultStackPresentationHandler: StackPresentationHandler { +public struct DefaultStackPresentationHandler: StackPresentationHandler, MainThreadChecking { // MARK: Properties @@ -37,6 +37,7 @@ public struct DefaultStackPresentationHandler: StackPresentationHandler { } public func dismissPresented(from viewController: UIViewController, animated: Bool, completion: @escaping (_: RoutingResult) -> Void) { + assertIfNotMainThread(logger: logger) if let presentedController = viewController.presentedViewController { if !presentedController.isBeingDismissed { viewController.dismiss(animated: animated) { @@ -57,6 +58,7 @@ public struct DefaultStackPresentationHandler: StackPresentationHandler { var parentViewControllers = viewController.allParents let topParentViewController = parentViewControllers.last func makeVisible(viewController: UIViewController, completion: @escaping (RoutingResult) -> Void) { + assertIfNotMainThread(logger: logger) guard !parentViewControllers.isEmpty else { if !animated, let topParentViewController, diff --git a/RouteComposer/Classes/Router/Helpers/StackPresentationHandler.swift b/RouteComposer/Classes/Router/Helpers/StackPresentationHandler.swift index 1ece4ee39..aa6a51c1e 100644 --- a/RouteComposer/Classes/Router/Helpers/StackPresentationHandler.swift +++ b/RouteComposer/Classes/Router/Helpers/StackPresentationHandler.swift @@ -13,7 +13,6 @@ import UIKit /// Helper instance used to update the stack of `UIViewController`s -@MainActor public protocol StackPresentationHandler { // MARK: Methods to implement diff --git a/RouteComposer/Classes/Router/Internal/Array+PrivateExtension.swift b/RouteComposer/Classes/Router/Internal/Array+PrivateExtension.swift index ba10133ac..ef0d291b1 100644 --- a/RouteComposer/Classes/Router/Internal/Array+PrivateExtension.swift +++ b/RouteComposer/Classes/Router/Internal/Array+PrivateExtension.swift @@ -13,7 +13,6 @@ import Foundation import UIKit -@MainActor extension Array where Element: UIViewController { var nonDismissibleViewController: UIViewController? { diff --git a/RouteComposer/Classes/Router/Internal/BaseStep.swift b/RouteComposer/Classes/Router/Internal/BaseStep.swift index 342d9b6d0..878418d20 100644 --- a/RouteComposer/Classes/Router/Internal/BaseStep.swift +++ b/RouteComposer/Classes/Router/Internal/BaseStep.swift @@ -13,7 +13,6 @@ import Foundation import UIKit -@MainActor protocol EntitiesProvider { var finder: AnyFinder? { get } @@ -22,7 +21,6 @@ protocol EntitiesProvider { } -@MainActor protocol TaskProvider { var interceptor: AnyRoutingInterceptor? { get } @@ -36,7 +34,7 @@ struct BaseStep: RoutingStep, ChainableStep, InterceptableStep, PerformableStep, - @preconcurrency CustomStringConvertible { + CustomStringConvertible { private var previousStep: RoutingStep? diff --git a/RouteComposer/Classes/Router/Internal/ChainableStep.swift b/RouteComposer/Classes/Router/Internal/ChainableStep.swift index 0a10ec2e3..2cb1d8658 100644 --- a/RouteComposer/Classes/Router/Internal/ChainableStep.swift +++ b/RouteComposer/Classes/Router/Internal/ChainableStep.swift @@ -16,7 +16,6 @@ import UIKit // Chainable step. // Identifies that the step can be a part of the chain, // e.g. when it comes to the presentation of multiple view controllers to reach destination. -@MainActor protocol ChainableStep { // `RoutingStep` to be made by a `Router` before getting to this step. diff --git a/RouteComposer/Classes/Router/Internal/DefaultRouter+Extension.swift b/RouteComposer/Classes/Router/Internal/DefaultRouter+Extension.swift index a1b637987..cb9130f6a 100644 --- a/RouteComposer/Classes/Router/Internal/DefaultRouter+Extension.swift +++ b/RouteComposer/Classes/Router/Internal/DefaultRouter+Extension.swift @@ -15,7 +15,6 @@ import UIKit extension DefaultRouter { - @MainActor struct InterceptorRunner { private var interceptors: [(interceptor: AnyRoutingInterceptor, context: AnyContext)] @@ -59,7 +58,6 @@ extension DefaultRouter { } - @MainActor struct ContextTaskRunner { var contextTasks: [AnyContextTask] @@ -86,7 +84,6 @@ extension DefaultRouter { } - @MainActor struct PostTaskRunner { var postTasks: [AnyPostRoutingTask] @@ -112,7 +109,6 @@ extension DefaultRouter { } - @MainActor struct StepTaskTaskRunner { private let contextTaskRunner: ContextTaskRunner @@ -134,7 +130,6 @@ extension DefaultRouter { } - @MainActor final class PostponedTaskRunner { private struct PostTaskSlip { @@ -188,7 +183,6 @@ extension DefaultRouter { } } - @MainActor final class GlobalTaskRunner { private final var interceptorRunner: InterceptorRunner @@ -235,7 +229,7 @@ extension DefaultRouter { /// This decorator adds functionality of storing `UIViewController`s created by the `Factory` and frees /// custom factories implementations from dealing with it. Mostly it is important for ContainerFactories /// which create merged view controllers without `Router`'s help. - struct FactoryDecorator: AnyFactory, @preconcurrency CustomStringConvertible { + struct FactoryDecorator: AnyFactory, CustomStringConvertible { private var factory: AnyFactory @@ -269,7 +263,7 @@ extension DefaultRouter { } - final class DefaultPostponedIntegrationHandler: PostponedActionIntegrationHandler { + final class DefaultPostponedIntegrationHandler: PostponedActionIntegrationHandler, MainThreadChecking { private(set) final var containerViewController: ContainerViewController? @@ -288,6 +282,7 @@ extension DefaultRouter { do { guard self.containerViewController == nil else { purge(animated: animated, completion: { result in + self.assertIfNotMainThread() guard result.isSuccessful else { completion(result) return diff --git a/RouteComposer/Classes/Router/Internal/InterceptableStep.swift b/RouteComposer/Classes/Router/Internal/InterceptableStep.swift index af6381de9..99e8a0c93 100644 --- a/RouteComposer/Classes/Router/Internal/InterceptableStep.swift +++ b/RouteComposer/Classes/Router/Internal/InterceptableStep.swift @@ -12,7 +12,6 @@ import Foundation -@MainActor protocol InterceptableStep where Self: PerformableStep { var interceptor: AnyRoutingInterceptor? { get } diff --git a/RouteComposer/Classes/Router/Internal/MainThreadChecking.swift b/RouteComposer/Classes/Router/Internal/MainThreadChecking.swift new file mode 100644 index 000000000..692ebc59a --- /dev/null +++ b/RouteComposer/Classes/Router/Internal/MainThreadChecking.swift @@ -0,0 +1,27 @@ +// +// RouteComposer +// MainThreadChecking.swift +// https://github.com/ekazaev/route-composer +// +// Created by Eugene Kazaev in 2018-2024. +// Distributed under the MIT license. +// +// Become a sponsor: +// https://github.com/sponsors/ekazaev +// + +import Foundation + +protocol MainThreadChecking {} + +extension MainThreadChecking { + + func assertIfNotMainThread(functionName: String = #function, logger: Logger? = nil) { + if !Thread.isMainThread { + let errorMessage = "Internal inconsistency: Method \(functionName) requires to be called on the main thread." + logger?.log(.error(errorMessage)) + assertionFailure(errorMessage) + } + } + +} diff --git a/RouteComposer/Classes/Router/Internal/PerformableStep.swift b/RouteComposer/Classes/Router/Internal/PerformableStep.swift index 383716209..f422bd519 100644 --- a/RouteComposer/Classes/Router/Internal/PerformableStep.swift +++ b/RouteComposer/Classes/Router/Internal/PerformableStep.swift @@ -12,7 +12,6 @@ import Foundation -@MainActor protocol PerformableStep { /// - Parameter context: The `Context` instance that `Router` has started with. diff --git a/RouteComposer/Classes/Router/Internal/PostponedIntegrationFactory.swift b/RouteComposer/Classes/Router/Internal/PostponedIntegrationFactory.swift index e8ceed819..629234268 100644 --- a/RouteComposer/Classes/Router/Internal/PostponedIntegrationFactory.swift +++ b/RouteComposer/Classes/Router/Internal/PostponedIntegrationFactory.swift @@ -13,8 +13,7 @@ import Foundation import UIKit -@MainActor -struct PostponedIntegrationFactory: @preconcurrency CustomStringConvertible { +struct PostponedIntegrationFactory: CustomStringConvertible { var factory: AnyFactory diff --git a/RouteComposer/Classes/Router/Internal/RoutingStep.swift b/RouteComposer/Classes/Router/Internal/RoutingStep.swift index fecf58b9a..33ea317ef 100644 --- a/RouteComposer/Classes/Router/Internal/RoutingStep.swift +++ b/RouteComposer/Classes/Router/Internal/RoutingStep.swift @@ -13,5 +13,4 @@ import UIKit /// Represents a single step for the `Router` to make. -@MainActor protocol RoutingStep {} diff --git a/RouteComposer/Classes/Router/Internal/SwitcherStep.swift b/RouteComposer/Classes/Router/Internal/SwitcherStep.swift index 34e3d7b11..67e3c3860 100644 --- a/RouteComposer/Classes/Router/Internal/SwitcherStep.swift +++ b/RouteComposer/Classes/Router/Internal/SwitcherStep.swift @@ -13,14 +13,12 @@ import Foundation import UIKit -@MainActor protocol StepCaseResolver { func resolve(with context: AnyContext) -> RoutingStep? } -@MainActor final class SwitcherStep: RoutingStep, ChainableStep { final var resolvers: [StepCaseResolver] diff --git a/RouteComposer/Classes/Router/Multiplexers/ContextTaskMultiplexer.swift b/RouteComposer/Classes/Router/Multiplexers/ContextTaskMultiplexer.swift index 13990acda..2f287c3dd 100644 --- a/RouteComposer/Classes/Router/Multiplexers/ContextTaskMultiplexer.swift +++ b/RouteComposer/Classes/Router/Multiplexers/ContextTaskMultiplexer.swift @@ -13,7 +13,7 @@ import Foundation import UIKit -struct ContextTaskMultiplexer: AnyContextTask, @preconcurrency CustomStringConvertible { +struct ContextTaskMultiplexer: AnyContextTask, CustomStringConvertible { private var tasks: [AnyContextTask] diff --git a/RouteComposer/Classes/Router/Multiplexers/InterceptorMultiplexer.swift b/RouteComposer/Classes/Router/Multiplexers/InterceptorMultiplexer.swift index 01183e1e0..b4d48f4df 100644 --- a/RouteComposer/Classes/Router/Multiplexers/InterceptorMultiplexer.swift +++ b/RouteComposer/Classes/Router/Multiplexers/InterceptorMultiplexer.swift @@ -12,7 +12,7 @@ import Foundation -struct InterceptorMultiplexer: AnyRoutingInterceptor, @preconcurrency CustomStringConvertible { +struct InterceptorMultiplexer: AnyRoutingInterceptor, MainThreadChecking, CustomStringConvertible { private var interceptors: [AnyRoutingInterceptor] @@ -37,7 +37,9 @@ struct InterceptorMultiplexer: AnyRoutingInterceptor, @preconcurrency CustomStri var interceptors = interceptors func runInterceptor(interceptor: AnyRoutingInterceptor) { + assertIfNotMainThread() interceptor.perform(with: context) { result in + assertIfNotMainThread() if case .failure = result { completion(result) } else if interceptors.isEmpty { diff --git a/RouteComposer/Classes/Router/Multiplexers/PostRoutingTaskMultiplexer.swift b/RouteComposer/Classes/Router/Multiplexers/PostRoutingTaskMultiplexer.swift index c2ef6fad0..083e910de 100644 --- a/RouteComposer/Classes/Router/Multiplexers/PostRoutingTaskMultiplexer.swift +++ b/RouteComposer/Classes/Router/Multiplexers/PostRoutingTaskMultiplexer.swift @@ -13,7 +13,7 @@ import Foundation import UIKit -struct PostRoutingTaskMultiplexer: AnyPostRoutingTask, @preconcurrency CustomStringConvertible { +struct PostRoutingTaskMultiplexer: AnyPostRoutingTask, CustomStringConvertible { private let tasks: [AnyPostRoutingTask] diff --git a/RouteComposer/Classes/Router/Type Erasure/AnyAction.swift b/RouteComposer/Classes/Router/Type Erasure/AnyAction.swift index 27e698ac2..c3b10ce3f 100644 --- a/RouteComposer/Classes/Router/Type Erasure/AnyAction.swift +++ b/RouteComposer/Classes/Router/Type Erasure/AnyAction.swift @@ -13,7 +13,6 @@ import Foundation import UIKit -@MainActor protocol PostponedActionIntegrationHandler: AnyObject { var containerViewController: ContainerViewController? { get } @@ -28,7 +27,6 @@ protocol PostponedActionIntegrationHandler: AnyObject { } -@MainActor protocol AnyAction { func perform(with viewController: UIViewController, diff --git a/RouteComposer/Classes/Router/Type Erasure/AnyContext.swift b/RouteComposer/Classes/Router/Type Erasure/AnyContext.swift index 909e38f05..409cfbb6a 100644 --- a/RouteComposer/Classes/Router/Type Erasure/AnyContext.swift +++ b/RouteComposer/Classes/Router/Type Erasure/AnyContext.swift @@ -12,7 +12,6 @@ import Foundation -@MainActor protocol AnyContext { func value() throws -> Context } diff --git a/RouteComposer/Classes/Router/Type Erasure/AnyContextTask.swift b/RouteComposer/Classes/Router/Type Erasure/AnyContextTask.swift index 052b717b6..617c10533 100644 --- a/RouteComposer/Classes/Router/Type Erasure/AnyContextTask.swift +++ b/RouteComposer/Classes/Router/Type Erasure/AnyContextTask.swift @@ -13,7 +13,6 @@ import Foundation import UIKit -@MainActor protocol AnyContextTask { mutating func prepare(with context: AnyContext) throws diff --git a/RouteComposer/Classes/Router/Type Erasure/AnyContextTransformer.swift b/RouteComposer/Classes/Router/Type Erasure/AnyContextTransformer.swift index 2c3225218..122a131ef 100644 --- a/RouteComposer/Classes/Router/Type Erasure/AnyContextTransformer.swift +++ b/RouteComposer/Classes/Router/Type Erasure/AnyContextTransformer.swift @@ -12,7 +12,6 @@ import Foundation -@MainActor protocol AnyContextTransformer { func transform(_ context: AnyContext) throws -> Context diff --git a/RouteComposer/Classes/Router/Type Erasure/AnyFactory.swift b/RouteComposer/Classes/Router/Type Erasure/AnyFactory.swift index cb51ef2b7..1fe8a07dd 100644 --- a/RouteComposer/Classes/Router/Type Erasure/AnyFactory.swift +++ b/RouteComposer/Classes/Router/Type Erasure/AnyFactory.swift @@ -13,7 +13,6 @@ import Foundation import UIKit -@MainActor protocol AnyFactory { var action: AnyAction { get } diff --git a/RouteComposer/Classes/Router/Type Erasure/AnyFinder.swift b/RouteComposer/Classes/Router/Type Erasure/AnyFinder.swift index 6748be55b..586107520 100644 --- a/RouteComposer/Classes/Router/Type Erasure/AnyFinder.swift +++ b/RouteComposer/Classes/Router/Type Erasure/AnyFinder.swift @@ -13,7 +13,6 @@ import Foundation import UIKit -@MainActor protocol AnyFinder { func findViewController(with context: AnyContext) throws -> UIViewController? diff --git a/RouteComposer/Classes/Router/Type Erasure/AnyPostRoutingTask.swift b/RouteComposer/Classes/Router/Type Erasure/AnyPostRoutingTask.swift index 7b597489f..1af389cc5 100644 --- a/RouteComposer/Classes/Router/Type Erasure/AnyPostRoutingTask.swift +++ b/RouteComposer/Classes/Router/Type Erasure/AnyPostRoutingTask.swift @@ -13,7 +13,6 @@ import Foundation import UIKit -@MainActor protocol AnyPostRoutingTask { func perform(on viewController: UIViewController, diff --git a/RouteComposer/Classes/Router/Type Erasure/AnyRoutingInterceptor.swift b/RouteComposer/Classes/Router/Type Erasure/AnyRoutingInterceptor.swift index 108b5bfc6..fde3f2a95 100644 --- a/RouteComposer/Classes/Router/Type Erasure/AnyRoutingInterceptor.swift +++ b/RouteComposer/Classes/Router/Type Erasure/AnyRoutingInterceptor.swift @@ -13,7 +13,6 @@ import Foundation import UIKit -@MainActor protocol AnyRoutingInterceptor { mutating func prepare(with context: AnyContext) throws diff --git a/RouteComposer/Classes/Router/Type Erasure/Boxes/ActionBox.swift b/RouteComposer/Classes/Router/Type Erasure/Boxes/ActionBox.swift index e0a029f80..b27cfa63e 100644 --- a/RouteComposer/Classes/Router/Type Erasure/Boxes/ActionBox.swift +++ b/RouteComposer/Classes/Router/Type Erasure/Boxes/ActionBox.swift @@ -13,7 +13,7 @@ import Foundation import UIKit -struct ActionBox: AnyAction, AnyActionBox, @preconcurrency CustomStringConvertible { +struct ActionBox: AnyAction, AnyActionBox, CustomStringConvertible, MainThreadChecking { let action: A @@ -33,12 +33,14 @@ struct ActionBox: AnyAction, AnyActionBox, @preconcurrency CustomStri .init("Action \(action.self) cannot be performed on \(existingController).")))) return } + assertIfNotMainThread() postponedIntegrationHandler.purge(animated: animated, completion: { result in guard result.isSuccessful else { completion(result) return } action.perform(with: viewController, on: typedExistingViewController, animated: animated) { result in + assertIfNotMainThread() completion(result) } }) diff --git a/RouteComposer/Classes/Router/Type Erasure/Boxes/AnyFactoryBox.swift b/RouteComposer/Classes/Router/Type Erasure/Boxes/AnyFactoryBox.swift index 62045b486..dadacc8cd 100644 --- a/RouteComposer/Classes/Router/Type Erasure/Boxes/AnyFactoryBox.swift +++ b/RouteComposer/Classes/Router/Type Erasure/Boxes/AnyFactoryBox.swift @@ -12,7 +12,6 @@ import Foundation -@MainActor protocol AnyFactoryBox: AnyFactory { associatedtype FactoryType: AbstractFactory @@ -23,14 +22,12 @@ protocol AnyFactoryBox: AnyFactory { } -@MainActor protocol PreparableAnyFactory: AnyFactory, PreparableEntity { var isPrepared: Bool { get set } } -@MainActor extension AnyFactoryBox { mutating func scrapeChildren(from factories: [(factory: AnyFactory, context: AnyContext)]) throws -> [(factory: AnyFactory, context: AnyContext)] { @@ -39,10 +36,10 @@ extension AnyFactoryBox { } -@MainActor -extension AnyFactoryBox where Self: PreparableAnyFactory { +extension AnyFactoryBox where Self: PreparableAnyFactory, Self: MainThreadChecking { mutating func prepare(with context: AnyContext) throws { + assertIfNotMainThread() let typedContext: FactoryType.Context = try context.value() try factory.prepare(with: typedContext) isPrepared = true @@ -50,7 +47,6 @@ extension AnyFactoryBox where Self: PreparableAnyFactory { } -@MainActor extension AnyFactory where Self: CustomStringConvertible & AnyFactoryBox { var description: String { diff --git a/RouteComposer/Classes/Router/Type Erasure/Boxes/ContainerActionBox.swift b/RouteComposer/Classes/Router/Type Erasure/Boxes/ContainerActionBox.swift index 8a258c9b1..9eb020848 100644 --- a/RouteComposer/Classes/Router/Type Erasure/Boxes/ContainerActionBox.swift +++ b/RouteComposer/Classes/Router/Type Erasure/Boxes/ContainerActionBox.swift @@ -13,7 +13,7 @@ import Foundation import UIKit -struct ContainerActionBox: AnyAction, AnyActionBox, @preconcurrency CustomStringConvertible { +struct ContainerActionBox: AnyAction, AnyActionBox, CustomStringConvertible, MainThreadChecking { let action: A @@ -27,6 +27,7 @@ struct ContainerActionBox: AnyAction, AnyActionBox, @preconc nextAction: AnyAction?, animated: Bool, completion: @escaping (RoutingResult) -> Void) { + assertIfNotMainThread() if let postponedController = postponedIntegrationHandler.containerViewController { guard postponedController is A.ViewController else { postponedIntegrationHandler.purge(animated: animated, completion: { result in @@ -68,6 +69,7 @@ struct ContainerActionBox: AnyAction, AnyActionBox, @preconc return } action.perform(with: viewController, on: containerController, animated: animated) { result in + assertIfNotMainThread() completion(result) } }) diff --git a/RouteComposer/Classes/Router/Type Erasure/Boxes/ContainerFactoryBox.swift b/RouteComposer/Classes/Router/Type Erasure/Boxes/ContainerFactoryBox.swift index 44ce34142..9cbab93f9 100644 --- a/RouteComposer/Classes/Router/Type Erasure/Boxes/ContainerFactoryBox.swift +++ b/RouteComposer/Classes/Router/Type Erasure/Boxes/ContainerFactoryBox.swift @@ -13,8 +13,7 @@ import Foundation import UIKit -@MainActor -struct ContainerFactoryBox: PreparableAnyFactory, AnyFactoryBox, @preconcurrency CustomStringConvertible { +struct ContainerFactoryBox: PreparableAnyFactory, AnyFactoryBox, MainThreadChecking, CustomStringConvertible { typealias FactoryType = F @@ -50,6 +49,7 @@ struct ContainerFactoryBox: PreparableAnyFactory, AnyFactor func build(with context: AnyContext) throws -> UIViewController { let typedContext: FactoryType.Context = try context.value() + assertIfNotMainThread() assertIfNotPrepared() return try factory.build(with: typedContext, integrating: ChildCoordinator(childFactories: children)) } diff --git a/RouteComposer/Classes/Router/Type Erasure/Boxes/ContextTaskBox.swift b/RouteComposer/Classes/Router/Type Erasure/Boxes/ContextTaskBox.swift index c5f842c61..e94cc136f 100644 --- a/RouteComposer/Classes/Router/Type Erasure/Boxes/ContextTaskBox.swift +++ b/RouteComposer/Classes/Router/Type Erasure/Boxes/ContextTaskBox.swift @@ -13,7 +13,7 @@ import Foundation import UIKit -struct ContextTaskBox: AnyContextTask, PreparableEntity, @preconcurrency CustomStringConvertible { +struct ContextTaskBox: AnyContextTask, PreparableEntity, MainThreadChecking, CustomStringConvertible { var contextTask: CT @@ -37,6 +37,7 @@ struct ContextTaskBox: AnyContextTask, PreparableEntity, @preco } let typedContext: CT.Context = try context.value() + assertIfNotMainThread() assertIfNotPrepared() try contextTask.perform(on: typedViewController, with: typedContext) } diff --git a/RouteComposer/Classes/Router/Type Erasure/Boxes/FactoryBox.swift b/RouteComposer/Classes/Router/Type Erasure/Boxes/FactoryBox.swift index 1e88dd1b4..76f34a1e4 100644 --- a/RouteComposer/Classes/Router/Type Erasure/Boxes/FactoryBox.swift +++ b/RouteComposer/Classes/Router/Type Erasure/Boxes/FactoryBox.swift @@ -13,8 +13,7 @@ import Foundation import UIKit -@MainActor -struct FactoryBox: PreparableAnyFactory, AnyFactoryBox, @preconcurrency CustomStringConvertible { +struct FactoryBox: PreparableAnyFactory, AnyFactoryBox, MainThreadChecking, CustomStringConvertible { typealias FactoryType = F @@ -34,6 +33,7 @@ struct FactoryBox: PreparableAnyFactory, AnyFactoryBox, @preconcurre func build(with context: AnyContext) throws -> UIViewController { let typedContext: FactoryType.Context = try context.value() + assertIfNotMainThread() assertIfNotPrepared() return try factory.build(with: typedContext) } diff --git a/RouteComposer/Classes/Router/Type Erasure/Boxes/FinderBox.swift b/RouteComposer/Classes/Router/Type Erasure/Boxes/FinderBox.swift index a1addd978..78c6aa001 100644 --- a/RouteComposer/Classes/Router/Type Erasure/Boxes/FinderBox.swift +++ b/RouteComposer/Classes/Router/Type Erasure/Boxes/FinderBox.swift @@ -13,7 +13,7 @@ import Foundation import UIKit -struct FinderBox: AnyFinder, @preconcurrency CustomStringConvertible { +struct FinderBox: AnyFinder, CustomStringConvertible { let finder: F diff --git a/RouteComposer/Classes/Router/Type Erasure/Boxes/PostRoutingTaskBox.swift b/RouteComposer/Classes/Router/Type Erasure/Boxes/PostRoutingTaskBox.swift index 2f641d1bf..e33adf4f5 100644 --- a/RouteComposer/Classes/Router/Type Erasure/Boxes/PostRoutingTaskBox.swift +++ b/RouteComposer/Classes/Router/Type Erasure/Boxes/PostRoutingTaskBox.swift @@ -13,7 +13,7 @@ import Foundation import UIKit -struct PostRoutingTaskBox: AnyPostRoutingTask, @preconcurrency CustomStringConvertible { +struct PostRoutingTaskBox: AnyPostRoutingTask, MainThreadChecking, CustomStringConvertible { let postRoutingTask: PT @@ -30,6 +30,7 @@ struct PostRoutingTaskBox: AnyPostRoutingTask, @preconcurre .init("\(String(describing: postRoutingTask.self)) does not support \(String(describing: viewController.self)).")) } let typedDestination: PT.Context = try context.value() + assertIfNotMainThread() postRoutingTask.perform(on: typedViewController, with: typedDestination, routingStack: routingStack) } diff --git a/RouteComposer/Classes/Router/Type Erasure/Boxes/RoutingInterceptorBox.swift b/RouteComposer/Classes/Router/Type Erasure/Boxes/RoutingInterceptorBox.swift index 1c7832908..1aee3ec41 100644 --- a/RouteComposer/Classes/Router/Type Erasure/Boxes/RoutingInterceptorBox.swift +++ b/RouteComposer/Classes/Router/Type Erasure/Boxes/RoutingInterceptorBox.swift @@ -12,7 +12,7 @@ import Foundation -struct RoutingInterceptorBox: AnyRoutingInterceptor, PreparableEntity, @preconcurrency CustomStringConvertible { +struct RoutingInterceptorBox: AnyRoutingInterceptor, PreparableEntity, CustomStringConvertible, MainThreadChecking { var routingInterceptor: RI @@ -32,7 +32,9 @@ struct RoutingInterceptorBox: AnyRoutingInterceptor, Pre do { let typedContext: RI.Context = try context.value() assertIfNotPrepared() + assertIfNotMainThread() routingInterceptor.perform(with: typedContext) { result in + assertIfNotMainThread() completion(result) } } catch { diff --git a/RouteComposer/Classes/RoutingError.swift b/RouteComposer/Classes/RoutingError.swift index 487f2dff6..5707cf5a5 100644 --- a/RouteComposer/Classes/RoutingError.swift +++ b/RouteComposer/Classes/RoutingError.swift @@ -18,7 +18,7 @@ public enum RoutingError: Error, CustomStringConvertible { // MARK: Internal entities /// Describes an error happened to the initial view controller - public enum InitialControllerErrorState: CustomStringConvertible, Sendable { + public enum InitialControllerErrorState: CustomStringConvertible { /// View controller not found case notFound @@ -38,7 +38,7 @@ public enum RoutingError: Error, CustomStringConvertible { } /// Error context holder - public struct Context: CustomStringConvertible, Sendable { + public struct Context: CustomStringConvertible { /// Message describing error that happened public let debugDescription: String @@ -58,7 +58,7 @@ public enum RoutingError: Error, CustomStringConvertible { } else { nil } - let descriptionParts = [!debugDescription.isEmpty ? debugDescription : nil, errorDescription].compactMap(\.self) + let descriptionParts = [!debugDescription.isEmpty ? debugDescription : nil, errorDescription].compactMap { $0 } guard descriptionParts.isEmpty else { return descriptionParts.joined(separator: " -> ") } diff --git a/RouteComposer/Classes/RoutingInterceptable.swift b/RouteComposer/Classes/RoutingInterceptable.swift index 7be895adb..f9b5800f0 100644 --- a/RouteComposer/Classes/RoutingInterceptable.swift +++ b/RouteComposer/Classes/RoutingInterceptable.swift @@ -16,7 +16,6 @@ import UIKit /// `UIViewController` that conforms to this protocol may overtake the control of the view controllers stack and /// forbid the `Router` to dismiss or cover itself with another view controller. /// Return false if the view controller can be dismissed. -@MainActor public protocol RoutingInterceptable where Self: UIViewController { // MARK: Properties to implement @@ -32,7 +31,6 @@ public protocol RoutingInterceptable where Self: UIViewController { // MARK: Helper methods -@MainActor public extension RoutingInterceptable { /// Default implementation returns regular `UIViewController.parent` diff --git a/RouteComposer/Classes/RoutingInterceptor.swift b/RouteComposer/Classes/RoutingInterceptor.swift index dd3bc22da..508c29e98 100644 --- a/RouteComposer/Classes/RoutingInterceptor.swift +++ b/RouteComposer/Classes/RoutingInterceptor.swift @@ -19,7 +19,6 @@ import Foundation /// Interceptor is an asynchronous action. For the `Router` to continue the navigation process, the `completion` block of the interceptor's /// execute method **MUST** be called. /// Otherwise, the `Router` will stay in a limbo state waiting for the interceptor to finish its action. -@MainActor public protocol RoutingInterceptor { // MARK: Associated types @@ -54,7 +53,6 @@ public protocol RoutingInterceptor { // MARK: Default implementation -@MainActor public extension RoutingInterceptor { /// Default implementation does nothing. @@ -64,7 +62,6 @@ public extension RoutingInterceptor { // MARK: Helper methods -@MainActor public extension RoutingInterceptor { /// Prepares the `RoutingInterceptor` and executes it @@ -87,7 +84,6 @@ public extension RoutingInterceptor { // MARK: Helper methods where the Context is Any? -@MainActor public extension RoutingInterceptor where Context == Any? { /// The `Router` will call this method before the navigation process. If `RoutingInterceptor` is not able to allow @@ -126,7 +122,6 @@ public extension RoutingInterceptor where Context == Any? { // MARK: Helper methods where the Context is Void -@MainActor public extension RoutingInterceptor where Context == Void { /// The `Router` will call this method before the navigation process. If `RoutingInterceptor` is not able to allow diff --git a/RouteComposer/Classes/SearchOptions.swift b/RouteComposer/Classes/SearchOptions.swift index 176aa048d..e7d434ad9 100644 --- a/RouteComposer/Classes/SearchOptions.swift +++ b/RouteComposer/Classes/SearchOptions.swift @@ -13,7 +13,7 @@ import Foundation /// A set of options for the `findViewController` method -public struct SearchOptions: OptionSet, CaseIterable, CustomStringConvertible, Sendable { +public struct SearchOptions: OptionSet, CaseIterable, CustomStringConvertible { public let rawValue: Int diff --git a/RouteComposer/Classes/Steps/GeneralStep.swift b/RouteComposer/Classes/Steps/GeneralStep.swift index 034631bfb..3c0779359 100644 --- a/RouteComposer/Classes/Steps/GeneralStep.swift +++ b/RouteComposer/Classes/Steps/GeneralStep.swift @@ -18,7 +18,6 @@ public enum GeneralStep { // MARK: Internal entities - @MainActor struct RootViewControllerStep: RoutingStep, PerformableStep { let windowProvider: WindowProvider @@ -37,7 +36,6 @@ public enum GeneralStep { } - @MainActor struct CurrentViewControllerStep: RoutingStep, PerformableStep { let windowProvider: WindowProvider @@ -56,7 +54,6 @@ public enum GeneralStep { } - @MainActor struct FinderStep: RoutingStep, PerformableStep { let finder: AnyFinder? @@ -76,19 +73,16 @@ public enum GeneralStep { // MARK: Steps /// Returns the root view controller of the key window. - @MainActor public static func root(windowProvider: WindowProvider = RouteComposerDefaults.shared.windowProvider) -> DestinationStep { DestinationStep(RootViewControllerStep(windowProvider: windowProvider)) } /// Returns the topmost presented view controller. - @MainActor public static func current(windowProvider: WindowProvider = RouteComposerDefaults.shared.windowProvider) -> DestinationStep { DestinationStep(CurrentViewControllerStep(windowProvider: windowProvider)) } /// Returns the resulting view controller of the finder provided. - @MainActor public static func custom(using finder: F) -> DestinationStep { DestinationStep(FinderStep(finder: finder)) }