diff --git a/Gemfile b/Gemfile index 40333a4c..96de0f8f 100644 --- a/Gemfile +++ b/Gemfile @@ -1,6 +1,6 @@ source "https://rubygems.org" -gem "fastlane", :github => "keeshux/fastlane", :ref => "2f464bc16fbebf4dbac52ed7362993434af3f022" +gem "fastlane", :github => "keeshux/fastlane", :ref => "91a3bc8cbf26dd761920939fd7579ee4362ce9b3" gem "dotenv" plugins_path = File.join(File.dirname(__FILE__), 'fastlane', 'Pluginfile') diff --git a/Gemfile.lock b/Gemfile.lock index 164c8c2c..f3394373 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,9 +1,9 @@ GIT remote: https://github.com/keeshux/fastlane.git - revision: 2f464bc16fbebf4dbac52ed7362993434af3f022 - ref: 2f464bc16fbebf4dbac52ed7362993434af3f022 + revision: 91a3bc8cbf26dd761920939fd7579ee4362ce9b3 + ref: 91a3bc8cbf26dd761920939fd7579ee4362ce9b3 specs: - fastlane (2.223.1) + fastlane (2.225.0) CFPropertyList (>= 2.3, < 4.0.0) addressable (>= 2.8, < 3.0.0) artifactory (~> 3.0) @@ -19,6 +19,7 @@ GIT faraday-cookie_jar (~> 0.0.6) faraday_middleware (~> 1.0) fastimage (>= 2.1.0, < 3.0.0) + fastlane-sirp (>= 1.0.0) gh_inspector (>= 1.1.2, < 2.0.0) google-apis-androidpublisher_v3 (~> 0.3) google-apis-playcustomapp_v1 (~> 0.1) @@ -57,20 +58,20 @@ GEM artifactory (3.0.17) atomos (0.1.3) aws-eventstream (1.3.0) - aws-partitions (1.981.0) - aws-sdk-core (3.209.1) + aws-partitions (1.1001.0) + aws-sdk-core (3.211.0) aws-eventstream (~> 1, >= 1.3.0) - aws-partitions (~> 1, >= 1.651.0) + aws-partitions (~> 1, >= 1.992.0) aws-sigv4 (~> 1.9) jmespath (~> 1, >= 1.6.1) - aws-sdk-kms (1.94.0) - aws-sdk-core (~> 3, >= 3.207.0) + aws-sdk-kms (1.95.0) + aws-sdk-core (~> 3, >= 3.210.0) aws-sigv4 (~> 1.5) - aws-sdk-s3 (1.166.0) - aws-sdk-core (~> 3, >= 3.207.0) + aws-sdk-s3 (1.169.0) + aws-sdk-core (~> 3, >= 3.210.0) aws-sdk-kms (~> 1) aws-sigv4 (~> 1.5) - aws-sigv4 (1.10.0) + aws-sigv4 (1.10.1) aws-eventstream (~> 1, >= 1.0.2) babosa (1.0.4) base64 (0.2.0) @@ -87,7 +88,7 @@ GEM domain_name (0.6.20240107) dotenv (2.8.1) emoji_regex (3.2.3) - excon (0.111.0) + excon (0.112.0) faraday (1.10.4) faraday-em_http (~> 1.0) faraday-em_synchrony (~> 1.0) @@ -121,6 +122,8 @@ GEM loco_strings (~> 0.1.4.1) ruby-openai (~> 3.7) fastlane-plugin-versioning (0.6.0) + fastlane-sirp (1.0.0) + sysrandom (~> 1.0) gh_inspector (1.1.3) google-apis-androidpublisher_v3 (0.54.0) google-apis-core (>= 0.11.0, < 2.a) @@ -167,8 +170,8 @@ GEM multi_xml (>= 0.5.2) httpclient (2.8.3) jmespath (1.6.2) - json (2.7.2) - jwt (2.9.1) + json (2.7.5) + jwt (2.9.3) base64 loco_strings (0.1.4.1) nokogiri (~> 1.13, >= 1.13.8) @@ -179,7 +182,7 @@ GEM multi_xml (0.7.1) bigdecimal (~> 3.1) multipart-post (2.4.1) - nanaimo (0.3.0) + nanaimo (0.4.0) naturally (2.2.1) nkf (0.2.0) nokogiri (1.16.7) @@ -198,7 +201,7 @@ GEM trailblazer-option (>= 0.1.1, < 0.2.0) uber (< 0.2.0) retriable (3.1.2) - rexml (3.3.8) + rexml (3.3.9) rouge (2.0.7) ruby-openai (3.7.0) httparty (>= 0.18.1) @@ -213,6 +216,7 @@ GEM simctl (1.6.10) CFPropertyList naturally + sysrandom (1.0.5) terminal-notifier (2.0.0) terminal-table (3.0.2) unicode-display_width (>= 1.1.1, < 3) @@ -224,13 +228,13 @@ GEM uber (0.1.0) unicode-display_width (2.6.0) word_wrap (1.0.0) - xcodeproj (1.25.0) + xcodeproj (1.27.0) CFPropertyList (>= 2.3.3, < 4.0) atomos (~> 0.1.3) claide (>= 1.0.2, < 2.0) colored2 (~> 3.1) - nanaimo (~> 0.3.0) - rexml (>= 3.3.2, < 4.0) + nanaimo (~> 0.4.0) + rexml (>= 3.3.6, < 4.0) xcpretty (0.3.0) rouge (~> 2.0.7) xcpretty-travis-formatter (1.0.1) diff --git a/Passepartout.xcodeproj/project.pbxproj b/Passepartout.xcodeproj/project.pbxproj index b98f5f51..1c334780 100644 --- a/Passepartout.xcodeproj/project.pbxproj +++ b/Passepartout.xcodeproj/project.pbxproj @@ -7,6 +7,7 @@ objects = { /* Begin PBXBuildFile section */ + 0E182C6C2CD61CD800051DB2 /* AppUI in Frameworks */ = {isa = PBXBuildFile; productRef = 0E182C6B2CD61CD800051DB2 /* AppUI */; }; 0E757F132CD0CFFC006E13E1 /* PassepartoutLoginItemApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E757F122CD0CFFC006E13E1 /* PassepartoutLoginItemApp.swift */; }; 0E757F202CD0D22B006E13E1 /* PassepartoutLoginItem.app in Embed Login Item */ = {isa = PBXBuildFile; fileRef = 0E757F102CD0CFFC006E13E1 /* PassepartoutLoginItem.app */; platformFilters = (macos, ); settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; 0E757F232CD0D2BD006E13E1 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E757F212CD0D2B7006E13E1 /* AppDelegate.swift */; }; @@ -19,7 +20,6 @@ 0EC066D12C7DC47600D88A94 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 0EC066D02C7DC47600D88A94 /* LaunchScreen.storyboard */; platformFilter = ios; }; 0EC332CA2B8A1808000B9C2F /* NetworkExtension.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0EC332C92B8A1808000B9C2F /* NetworkExtension.framework */; }; 0EC332D22B8A1808000B9C2F /* PassepartoutTunnel.appex in Embed Foundation Extensions */ = {isa = PBXBuildFile; fileRef = 0EC332C82B8A1808000B9C2F /* PassepartoutTunnel.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; - 0EC4A7132CD597EF00B7CAAD /* AppUIPlatform in Frameworks */ = {isa = PBXBuildFile; productRef = 0EC4A7122CD597EF00B7CAAD /* AppUIPlatform */; }; 0EC797422B9378E000C093B7 /* Shared+App.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EC797402B9378E000C093B7 /* Shared+App.swift */; }; 0EC797432B9378E000C093B7 /* Shared.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EC797412B9378E000C093B7 /* Shared.swift */; }; 0EC797442B93790600C093B7 /* Shared.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EC797412B9378E000C093B7 /* Shared.swift */; }; @@ -144,7 +144,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 0EC4A7132CD597EF00B7CAAD /* AppUIPlatform in Frameworks */, + 0E182C6C2CD61CD800051DB2 /* AppUI in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -290,7 +290,7 @@ ); name = Passepartout; packageProductDependencies = ( - 0EC4A7122CD597EF00B7CAAD /* AppUIPlatform */, + 0E182C6B2CD61CD800051DB2 /* AppUI */, ); productName = PassepartoutKit; productReference = 0E06D18F2B87629100176E1D /* Passepartout.app */; @@ -983,6 +983,10 @@ /* End XCConfigurationList section */ /* Begin XCSwiftPackageProductDependency section */ + 0E182C6B2CD61CD800051DB2 /* AppUI */ = { + isa = XCSwiftPackageProductDependency; + productName = AppUI; + }; 0E6C0A022BF4047100450362 /* AppLibrary */ = { isa = XCSwiftPackageProductDependency; productName = AppLibrary; @@ -995,10 +999,6 @@ isa = XCSwiftPackageProductDependency; productName = TunnelLibrary; }; - 0EC4A7122CD597EF00B7CAAD /* AppUIPlatform */ = { - isa = XCSwiftPackageProductDependency; - productName = AppUIPlatform; - }; /* End XCSwiftPackageProductDependency section */ }; rootObject = 0E06D1872B87629100176E1D /* Project object */; diff --git a/Passepartout.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved b/Passepartout.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved index 9400c385..65967e54 100644 --- a/Passepartout.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved +++ b/Passepartout.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved @@ -41,7 +41,7 @@ "kind" : "remoteSourceControl", "location" : "git@github.com:passepartoutvpn/passepartoutkit-source", "state" : { - "revision" : "e95c7b54dc11e744d9b40a722fccf752436ac0ef" + "revision" : "b32b63ab8e09883f965737bb6214dfb81e38283a" } }, { diff --git a/Passepartout/App/AppDelegate.swift b/Passepartout/App/AppDelegate.swift index ed8e1ec0..0c33e2df 100644 --- a/Passepartout/App/AppDelegate.swift +++ b/Passepartout/App/AppDelegate.swift @@ -23,18 +23,18 @@ // along with Passepartout. If not, see . // -import AppUI import CommonLibrary import PassepartoutKit import SwiftUI +import UILibrary @MainActor final class AppDelegate: NSObject { let context: AppContext = .shared // let context: AppContext = .mock(withRegistry: .shared) - func configure(with appUIConfiguring: AppUIConfiguring) { - AppUI(appUIConfiguring) + func configure(with uiConfiguring: UILibraryConfiguring) { + UILibrary(uiConfiguring) .configure(with: context) } } diff --git a/Passepartout/Library/Package.swift b/Passepartout/Library/Package.swift index c28d81b7..7039f7b5 100644 --- a/Passepartout/Library/Package.swift +++ b/Passepartout/Library/Package.swift @@ -25,10 +25,6 @@ let package = Package( name: "AppUIMain", targets: ["AppUIMain"] ), - .library( - name: "AppUIPlatform", - targets: ["AppUIPlatform"] - ), .library( name: "AppUITV", targets: ["AppUITV"] @@ -36,11 +32,15 @@ let package = Package( .library( name: "TunnelLibrary", targets: ["CommonLibrary"] + ), + .library( + name: "UILibrary", + targets: ["UILibrary"] ) ], dependencies: [ // .package(url: "git@github.com:passepartoutvpn/passepartoutkit-source", from: "0.9.0"), - .package(url: "git@github.com:passepartoutvpn/passepartoutkit-source", revision: "e95c7b54dc11e744d9b40a722fccf752436ac0ef"), + .package(url: "git@github.com:passepartoutvpn/passepartoutkit-source", revision: "b32b63ab8e09883f965737bb6214dfb81e38283a"), // .package(path: "../../../passepartoutkit-source"), .package(url: "git@github.com:passepartoutvpn/passepartoutkit-source-openvpn-openssl", from: "0.9.1"), // .package(url: "git@github.com:passepartoutvpn/passepartoutkit-source-openvpn-openssl", revision: "031863a1cd683962a7dfe68e20b91fa820a1ecce"), @@ -53,13 +53,6 @@ let package = Package( targets: [ // Targets are the basic building blocks of a package, defining a module or a test suite. // Targets can depend on other targets in this package and products from dependencies. - .target( - name: "APILibrary", - dependencies: ["CommonLibrary"], - resources: [ - .copy("API") - ] - ), .target( name: "AppData", dependencies: [] @@ -87,42 +80,38 @@ let package = Package( .target( name: "AppLibrary", dependencies: [ - "APILibrary", - "Kvitto", - "UtilsLibrary" + "CommonLibrary", + "CommonUtils", + "Kvitto" ] ), .target( name: "AppUI", - dependencies: [ - "AppDataProfiles", - "AppDataProviders", - "AppLibrary" - ], - resources: [ - .process("Resources") - ] - ), - .target( - name: "AppUIMain", - dependencies: [ - "AppUI", - "LegacyV2" - ], - resources: [ - .process("Resources") - ] - ), - .target( - name: "AppUIPlatform", dependencies: [ .target(name: "AppUIMain", condition: .when(platforms: [.iOS, .macOS])), .target(name: "AppUITV", condition: .when(platforms: [.tvOS])) ] ), + .target( + name: "AppUIMain", + dependencies: [ + "LegacyV2", + "UILibrary" + ], + resources: [ + .process("Resources") + ] + ), .target( name: "AppUITV", - dependencies: ["AppUI"] + dependencies: ["UILibrary"] + ), + .target( + name: "CommonAPI", + dependencies: ["CommonLibrary"], + resources: [ + .copy("API") + ] ), .target( name: "CommonLibrary", @@ -135,10 +124,13 @@ let package = Package( .process("Resources") ] ), + .target( + name: "CommonUtils" + ), .target( name: "LegacyV2", dependencies: [ - "UtilsLibrary", + "CommonUtils", .product(name: "PassepartoutKit", package: "passepartoutkit-source") ], resources: [ @@ -146,7 +138,16 @@ let package = Package( ] ), .target( - name: "UtilsLibrary" + name: "UILibrary", + dependencies: [ + "AppDataProfiles", + "AppDataProviders", + "AppLibrary", + "CommonAPI" + ], + resources: [ + .process("Resources") + ] ), .testTarget( name: "AppLibraryTests", @@ -157,8 +158,8 @@ let package = Package( dependencies: ["AppUIMain"] ), .testTarget( - name: "AppUITests", - dependencies: ["AppUI"] + name: "UILibraryTests", + dependencies: ["UILibrary"] ) ] ) diff --git a/Passepartout/Library/Sources/AppDataProfiles/CDProfileRepositoryV3.swift b/Passepartout/Library/Sources/AppDataProfiles/CDProfileRepositoryV3.swift index e61d506d..b960dcc1 100644 --- a/Passepartout/Library/Sources/AppDataProfiles/CDProfileRepositoryV3.swift +++ b/Passepartout/Library/Sources/AppDataProfiles/CDProfileRepositoryV3.swift @@ -26,10 +26,10 @@ import AppData import AppLibrary import Combine +import CommonUtils import CoreData import Foundation import PassepartoutKit -import UtilsLibrary extension AppData { public static func cdProfileRepositoryV3( diff --git a/Passepartout/Library/Sources/AppDataProviders/CDProviderRepositoryV3.swift b/Passepartout/Library/Sources/AppDataProviders/CDProviderRepositoryV3.swift index 3d116565..37485c0f 100644 --- a/Passepartout/Library/Sources/AppDataProviders/CDProviderRepositoryV3.swift +++ b/Passepartout/Library/Sources/AppDataProviders/CDProviderRepositoryV3.swift @@ -25,10 +25,10 @@ import AppData import Combine +import CommonUtils import CoreData import Foundation import PassepartoutKit -import UtilsLibrary extension AppData { public static func cdProviderRepositoryV3( diff --git a/Passepartout/Library/Sources/AppDataProviders/CDVPNProviderServerRepositoryV3.swift b/Passepartout/Library/Sources/AppDataProviders/CDVPNProviderServerRepositoryV3.swift index 21a3830a..1629a08f 100644 --- a/Passepartout/Library/Sources/AppDataProviders/CDVPNProviderServerRepositoryV3.swift +++ b/Passepartout/Library/Sources/AppDataProviders/CDVPNProviderServerRepositoryV3.swift @@ -24,10 +24,10 @@ // import AppData +import CommonUtils import CoreData import Foundation import PassepartoutKit -import UtilsLibrary final class CDVPNProviderServerRepositoryV3: VPNProviderServerRepository { private let context: NSManagedObjectContext diff --git a/Passepartout/Library/Sources/AppLibrary/IAP/AppProduct.swift b/Passepartout/Library/Sources/AppLibrary/IAP/AppProduct.swift index cae43a03..cc8a867c 100644 --- a/Passepartout/Library/Sources/AppLibrary/IAP/AppProduct.swift +++ b/Passepartout/Library/Sources/AppLibrary/IAP/AppProduct.swift @@ -24,9 +24,9 @@ // import CommonLibrary +import CommonUtils import Foundation import PassepartoutKit -import UtilsLibrary public struct AppProduct: RawRepresentable, Hashable, Sendable { public let rawValue: String diff --git a/Passepartout/Library/Sources/AppLibrary/IAP/AppProductHelper.swift b/Passepartout/Library/Sources/AppLibrary/IAP/AppProductHelper.swift index 675e5a29..7d72ea33 100644 --- a/Passepartout/Library/Sources/AppLibrary/IAP/AppProductHelper.swift +++ b/Passepartout/Library/Sources/AppLibrary/IAP/AppProductHelper.swift @@ -23,8 +23,8 @@ // along with Passepartout. If not, see . // +import CommonUtils import Foundation -import UtilsLibrary public protocol AppProductHelper: InAppHelper where ProductIdentifier == AppProduct { } diff --git a/Passepartout/Library/Sources/AppLibrary/IAP/AppReceiptReader.swift b/Passepartout/Library/Sources/AppLibrary/IAP/AppReceiptReader.swift index 7a2ca261..b743a939 100644 --- a/Passepartout/Library/Sources/AppLibrary/IAP/AppReceiptReader.swift +++ b/Passepartout/Library/Sources/AppLibrary/IAP/AppReceiptReader.swift @@ -23,8 +23,8 @@ // along with Passepartout. If not, see . // +import CommonUtils import Foundation -import UtilsLibrary public protocol AppReceiptReader: InAppReceiptReader where UserLevel == AppUserLevel { } diff --git a/Passepartout/Library/Sources/AppLibrary/IAP/IAPManager.swift b/Passepartout/Library/Sources/AppLibrary/IAP/IAPManager.swift index 77e8a5be..c8a821cf 100644 --- a/Passepartout/Library/Sources/AppLibrary/IAP/IAPManager.swift +++ b/Passepartout/Library/Sources/AppLibrary/IAP/IAPManager.swift @@ -23,9 +23,9 @@ // along with Passepartout. If not, see . // +import CommonUtils import Foundation import PassepartoutKit -import UtilsLibrary // FIXME: #424, reload receipt + objectWillChange on purchase/transactions diff --git a/Passepartout/Library/Sources/AppLibrary/IAP/KvittoReceiptReader.swift b/Passepartout/Library/Sources/AppLibrary/IAP/KvittoReceiptReader.swift index ad25c480..1b60ae3b 100644 --- a/Passepartout/Library/Sources/AppLibrary/IAP/KvittoReceiptReader.swift +++ b/Passepartout/Library/Sources/AppLibrary/IAP/KvittoReceiptReader.swift @@ -23,10 +23,10 @@ // along with Passepartout. If not, see . // +import CommonUtils import Foundation import Kvitto import PassepartoutKit -import UtilsLibrary public final class KvittoReceiptReader: AppReceiptReader { public init() { diff --git a/Passepartout/Library/Sources/AppLibrary/Mock/MockAppProductHelper.swift b/Passepartout/Library/Sources/AppLibrary/Mock/MockAppProductHelper.swift index 84f5524c..9e8d41f9 100644 --- a/Passepartout/Library/Sources/AppLibrary/Mock/MockAppProductHelper.swift +++ b/Passepartout/Library/Sources/AppLibrary/Mock/MockAppProductHelper.swift @@ -23,8 +23,8 @@ // along with Passepartout. If not, see . // +import CommonUtils import Foundation -import UtilsLibrary public actor MockAppProductHelper: AppProductHelper { public private(set) var products: [AppProduct: InAppProduct] diff --git a/Passepartout/Library/Sources/AppLibrary/Mock/MockAppReceiptReader.swift b/Passepartout/Library/Sources/AppLibrary/Mock/MockAppReceiptReader.swift index 78628bfe..32560888 100644 --- a/Passepartout/Library/Sources/AppLibrary/Mock/MockAppReceiptReader.swift +++ b/Passepartout/Library/Sources/AppLibrary/Mock/MockAppReceiptReader.swift @@ -23,8 +23,8 @@ // along with Passepartout. If not, see . // +import CommonUtils import Foundation -import UtilsLibrary public actor MockAppReceiptReader: AppReceiptReader { private var receipt: InAppReceipt? diff --git a/Passepartout/Library/Sources/AppUIPlatform/Dummy.swift b/Passepartout/Library/Sources/AppUI/Dummy.swift similarity index 100% rename from Passepartout/Library/Sources/AppUIPlatform/Dummy.swift rename to Passepartout/Library/Sources/AppUI/Dummy.swift diff --git a/Passepartout/Library/Sources/AppUIMain/AppUIMain.swift b/Passepartout/Library/Sources/AppUIMain/AppUIMain.swift index aa88c711..ec3ab889 100644 --- a/Passepartout/Library/Sources/AppUIMain/AppUIMain.swift +++ b/Passepartout/Library/Sources/AppUIMain/AppUIMain.swift @@ -23,10 +23,10 @@ // along with Passepartout. If not, see . // -@_exported import AppUI import Foundation +@_exported import UILibrary -public final class AppUIMain: AppUIConfiguring { +public final class AppUIMain: UILibraryConfiguring { public init() { } diff --git a/Passepartout/Library/Sources/AppUIMain/Business/ProfileImporter.swift b/Passepartout/Library/Sources/AppUIMain/Business/ProfileImporter.swift index 5ba9009c..78f65f96 100644 --- a/Passepartout/Library/Sources/AppUIMain/Business/ProfileImporter.swift +++ b/Passepartout/Library/Sources/AppUIMain/Business/ProfileImporter.swift @@ -24,9 +24,9 @@ // import AppLibrary +import CommonUtils import Foundation import PassepartoutKit -import UtilsLibrary @MainActor final class ProfileImporter: ObservableObject { diff --git a/Passepartout/Library/Sources/AppUIMain/Views/About/AboutView.swift b/Passepartout/Library/Sources/AppUIMain/Views/About/AboutView.swift index 5232ca48..b83d09d3 100644 --- a/Passepartout/Library/Sources/AppUIMain/Views/About/AboutView.swift +++ b/Passepartout/Library/Sources/AppUIMain/Views/About/AboutView.swift @@ -25,9 +25,9 @@ import AppLibrary import CommonLibrary +import CommonUtils import PassepartoutKit import SwiftUI -import UtilsLibrary struct AboutView: View { let profileManager: ProfileManager diff --git a/Passepartout/Library/Sources/AppUIMain/Views/About/CreditsView.swift b/Passepartout/Library/Sources/AppUIMain/Views/About/CreditsView.swift index 45244475..941d1025 100644 --- a/Passepartout/Library/Sources/AppUIMain/Views/About/CreditsView.swift +++ b/Passepartout/Library/Sources/AppUIMain/Views/About/CreditsView.swift @@ -23,8 +23,8 @@ // along with Passepartout. If not, see . // +import CommonUtils import SwiftUI -import UtilsLibrary struct CreditsView: View { var body: some View { diff --git a/Passepartout/Library/Sources/AppUIMain/Views/App/AppToolbar.swift b/Passepartout/Library/Sources/AppUIMain/Views/App/AppToolbar.swift index f460e82e..dbff5a42 100644 --- a/Passepartout/Library/Sources/AppUIMain/Views/App/AppToolbar.swift +++ b/Passepartout/Library/Sources/AppUIMain/Views/App/AppToolbar.swift @@ -24,9 +24,9 @@ // import AppLibrary +import CommonUtils import PassepartoutKit import SwiftUI -import UtilsLibrary struct AppToolbar: ToolbarContent, SizeClassProviding { diff --git a/Passepartout/Library/Sources/AppUIMain/Views/App/InstalledProfileView.swift b/Passepartout/Library/Sources/AppUIMain/Views/App/InstalledProfileView.swift index 616f6a35..8d3a631f 100644 --- a/Passepartout/Library/Sources/AppUIMain/Views/App/InstalledProfileView.swift +++ b/Passepartout/Library/Sources/AppUIMain/Views/App/InstalledProfileView.swift @@ -24,9 +24,9 @@ // import AppLibrary +import CommonUtils import PassepartoutKit import SwiftUI -import UtilsLibrary struct InstalledProfileView: View, Routable { diff --git a/Passepartout/Library/Sources/AppUIMain/Views/App/ProfileContainerView.swift b/Passepartout/Library/Sources/AppUIMain/Views/App/ProfileContainerView.swift index 966378c8..530b45d4 100644 --- a/Passepartout/Library/Sources/AppUIMain/Views/App/ProfileContainerView.swift +++ b/Passepartout/Library/Sources/AppUIMain/Views/App/ProfileContainerView.swift @@ -24,9 +24,9 @@ // import AppLibrary +import CommonUtils import PassepartoutKit import SwiftUI -import UtilsLibrary struct ProfileContainerView: View, Routable { let layout: ProfilesLayout diff --git a/Passepartout/Library/Sources/AppUIMain/Views/App/ProfileContextMenu.swift b/Passepartout/Library/Sources/AppUIMain/Views/App/ProfileContextMenu.swift index 2c41b5a1..af6f3fe0 100644 --- a/Passepartout/Library/Sources/AppUIMain/Views/App/ProfileContextMenu.swift +++ b/Passepartout/Library/Sources/AppUIMain/Views/App/ProfileContextMenu.swift @@ -24,9 +24,9 @@ // import AppLibrary +import CommonUtils import PassepartoutKit import SwiftUI -import UtilsLibrary struct ProfileContextMenu: View, Routable { let profileManager: ProfileManager diff --git a/Passepartout/Library/Sources/AppUIMain/Views/App/ProfileDuplicateButton.swift b/Passepartout/Library/Sources/AppUIMain/Views/App/ProfileDuplicateButton.swift index 68c4e1c7..cbfd072d 100644 --- a/Passepartout/Library/Sources/AppUIMain/Views/App/ProfileDuplicateButton.swift +++ b/Passepartout/Library/Sources/AppUIMain/Views/App/ProfileDuplicateButton.swift @@ -24,9 +24,9 @@ // import AppLibrary +import CommonUtils import PassepartoutKit import SwiftUI -import UtilsLibrary struct ProfileDuplicateButton