diff --git a/Package.swift b/Package.swift index 08f6fef2fb77a9c65ba50627b93abcb367a5a6f6..c50433ff05f1db7786af3081d3da031e5bd3de92 100644 --- a/Package.swift +++ b/Package.swift @@ -50,842 +50,679 @@ let package = Package( .library(name: "OnboardingFeature", targets: ["OnboardingFeature"]), .library(name: "GoogleDriveFeature", targets: ["GoogleDriveFeature"]), .library(name: "ContactListFeature", targets: ["ContactListFeature"]), - .library(name: "DependencyInjection", targets: ["DependencyInjection"]) + .library(name: "DependencyInjection", targets: ["DependencyInjection"]), ], dependencies: [ - .package(url: "https://github.com/Quick/Quick", from: "3.0.0"), - .package(url: "https://github.com/Quick/Nimble", from: "9.0.0"), - .package(url: "https://github.com/SnapKit/SnapKit", from: "5.0.1"), - .package(url: "https://github.com/icanzilb/Retry.git", from: "0.6.3"), - .package(url: "https://github.com/ekazaev/ChatLayout", from: "1.1.14"), - .package(url: "https://github.com/ra1028/DifferenceKit", from: "1.2.0"), - .package(url: "https://github.com/apple/swift-protobuf", from: "1.14.0"), - .package(url: "https://github.com/google/GoogleSignIn-iOS", from: "6.1.0"), - .package(url: "https://github.com/dropbox/SwiftyDropbox.git", from: "8.2.1"), - .package(url: "https://github.com/amosavian/FileProvider.git", from: "0.26.0"), - .package(url: "https://github.com/SwiftyBeaver/SwiftyBeaver.git", from: "1.9.5"), - .package(url: "https://github.com/darrarski/ScrollViewController", from: "1.2.0"), - .package(url: "https://github.com/pointfreeco/combine-schedulers", from: "0.5.0"), - .package(url: "https://github.com/kishikawakatsumi/KeychainAccess", from: "4.2.1"), - .package(url: "https://github.com/google/google-api-objectivec-client-for-rest", from: "1.6.0"), - .package(url: "https://git.xx.network/elixxir/client-ios-db.git", .upToNextMajor(from: "1.0.8")), - .package(url: "https://github.com/firebase/firebase-ios-sdk.git", .upToNextMajor(from: "8.10.0")), - .package(url: "https://github.com/darrarski/Shout.git", revision: "df5a662293f0ac15eeb4f2fd3ffd0c07b73d0de0"), - .package(url: "https://github.com/pointfreeco/swift-composable-architecture.git",.upToNextMajor(from: "0.32.0")), - .package(url: "https://github.com/pointfreeco/swift-custom-dump.git", .upToNextMajor(from: "0.5.0")), - .package(url: "https://github.com/pointfreeco/xctest-dynamic-overlay.git", .upToNextMajor(from: "0.3.3")), + .package( + url: "https://github.com/Quick/Quick", + .upToNextMajor(from: "3.0.0") + ), + .package( + url: "https://github.com/Quick/Nimble", + .upToNextMajor(from: "9.0.0") + ), + .package( + url: "https://github.com/SnapKit/SnapKit", + .upToNextMajor(from: "5.0.1") + ), + .package( + url: "https://github.com/icanzilb/Retry.git", + .upToNextMajor(from: "0.6.3") + ), + .package( + url: "https://github.com/ekazaev/ChatLayout", + .upToNextMajor(from: "1.1.14") + ), + .package( + url: "https://github.com/ra1028/DifferenceKit", + .upToNextMajor(from: "1.2.0") + ), + .package( + url: "https://github.com/apple/swift-protobuf", + .upToNextMajor(from: "1.14.0") + ), + .package( + url: "https://github.com/google/GoogleSignIn-iOS", + .upToNextMajor(from: "6.1.0") + ), + .package( + url: "https://github.com/dropbox/SwiftyDropbox.git", + .upToNextMajor(from: "8.2.1") + ), + .package( + url: "https://github.com/amosavian/FileProvider.git", + .upToNextMajor(from: "0.26.0") + ), + .package( + url: "https://github.com/SwiftyBeaver/SwiftyBeaver.git", + .upToNextMajor(from: "1.9.5") + ), + .package( + url: "https://github.com/darrarski/ScrollViewController", + .upToNextMajor(from: "1.2.0") + ), + .package( + url: "https://github.com/pointfreeco/combine-schedulers", + .upToNextMajor(from: "0.5.0") + ), + .package( + url: "https://github.com/kishikawakatsumi/KeychainAccess", + .upToNextMajor(from: "4.2.1") + ), + .package( + url: "https://github.com/google/google-api-objectivec-client-for-rest", + .upToNextMajor(from: "1.6.0") + ), + .package( + url: "https://git.xx.network/elixxir/client-ios-db.git", + .upToNextMajor(from: "1.0.8") + ), + .package( + url: "https://github.com/firebase/firebase-ios-sdk.git", + .upToNextMajor(from: "8.10.0") + ), + .package( + url: "https://github.com/darrarski/Shout.git", + revision: "df5a662293f0ac15eeb4f2fd3ffd0c07b73d0de0" + ), + .package( + url: "https://github.com/pointfreeco/swift-composable-architecture.git", + .upToNextMajor(from: "0.32.0") + ), + .package( + url: "https://github.com/pointfreeco/swift-custom-dump.git", + .upToNextMajor(from: "0.5.0") + ), + .package( + url: "https://github.com/pointfreeco/xctest-dynamic-overlay.git", + .upToNextMajor(from: "0.3.3") + ), ], targets: [ .target( name: "App", dependencies: [ - "Keychain", - "Voxophone", - "Permissions", - "ScanFeature", - "ChatFeature", - "MenuFeature", - "PushFeature", - "SFTPFeature", - "ToastFeature", - "CrashService", - "BackupFeature", - "SearchFeature", - "LaunchFeature", - "iCloudFeature", - "DropboxFeature", - "ContactFeature", - "RestoreFeature", - "ProfileFeature", - "CrashReporting", - "ChatListFeature", - "SettingsFeature", - "RequestsFeature", - "OnboardingFeature", - "GoogleDriveFeature", - "ContactListFeature" - ] - ), - .target(name: "CrashReporting"), - .target(name: "NetworkMonitor"), - .target(name: "VersionChecking"), - .target(name: "DependencyInjection"), - .target(name: "InputField", dependencies: ["Shared"]), - .binaryTarget(name: "Bindings", path: "XCFrameworks/Bindings.xcframework"), - - // MARK: - Permissions - - .target( - name: "Permissions", - dependencies: [ - "Theme", - "Shared", - "DependencyInjection" - ] - ), - - // MARK: - PushFeature - - .target( - name: "PushFeature", - dependencies: [ - "Models", - "Defaults", - "Integration", - "DependencyInjection" - ] - ), - - // MARK: - TestHelpers - - .target( - name: "TestHelpers", - dependencies: [ - "Models", - "Presentation" - ] - ), - - // MARK: - Keychain - - .target( - name: "Keychain", - dependencies: [ - .product( - name: "KeychainAccess", - package: "KeychainAccess" - ) - ] - ), - - // MARK: - Voxophone - - .target( - name: "Voxophone", - dependencies: [ - "Shared" - ] - ), - - // MARK: - Models - - .target( - name: "Models", - dependencies: [ - .product( - name: "DifferenceKit", - package: "DifferenceKit" - ), - .product( - name: "SwiftProtobuf", - package: "swift-protobuf" - ) - ] - ), - - // MARK: - Defaults - - .target( - name: "Defaults", - dependencies: [ - "DependencyInjection" - ] - ), - - // MARK: - ToastFeature - - .target( - name: "ToastFeature", - dependencies: [ - "Shared" - ] - ), - - // MARK: - CrashService - - .target( - name: "CrashService", - dependencies: [ - "CrashReporting", - .product( - name: "FirebaseCrashlytics", - package: "firebase-ios-sdk" - ) - ] - ), - - // MARK: - SFTPFeature - - .target( - name: "SFTPFeature", - dependencies: [ - "HUD", - "Models", - "Shared", - "Keychain", - "InputField", - "Presentation", - "DependencyInjection", - .product( - name: "Shout", - package: "Shout" - ) - ] - ), - - // MARK: - GoogleDriveFeature - - .target( - name: "GoogleDriveFeature", - dependencies: [ - .product( - name: "GoogleSignIn", - package: "GoogleSignIn-iOS" - ), - .product( - name: "GoogleAPIClientForREST_Drive", - package: "google-api-objectivec-client-for-rest" - ) - ], - resources: [.process("Resources")] - ), - - // MARK: - iCloudFeature - - .target( - name: "iCloudFeature", - dependencies: [ - .product( - name: "FilesProvider", - package: "FileProvider" - ) - ] - ), - - // MARK: - DropboxFeature - - .target( - name: "DropboxFeature", - dependencies: [ - .product( - name: "SwiftyDropbox", - package: "SwiftyDropbox" - ) - ], - resources: [.process("Resources")] - ), - - // MARK: - Countries - - .target( - name: "Countries", - dependencies: [ - "Theme", - "Shared", - "DependencyInjection" - ], - resources: [.process("Resources")] - ), - - // MARK: - Theme - - .target( - name: "Theme", - dependencies: [ - "Defaults", - "DependencyInjection" - ] - ), - - // MARK: - DrawerFeature - - .target( - name: "DrawerFeature", - dependencies: [ - "Shared", - "InputField", - .product( - name: "ScrollViewController", - package: "ScrollViewController" - ) - ] - ), - - // MARK: - HUD - - .target( - name: "HUD", - dependencies: [ - "Theme", - "Shared", - .product( - name: "SnapKit", - package: "SnapKit" - ) - ] - ), - - // MARK: - XXLogger - - .target( - name: "XXLogger", - dependencies: [ - .product( - name: "SwiftyBeaver", - package: "SwiftyBeaver" - ) - ] - ), - - // MARK: - Shared - - .target( - name: "Shared", - dependencies: [ - .product( - name: "SnapKit", - package: "SnapKit" - ), - .product( - name: "ChatLayout", - package: "ChatLayout" - ), - .product( - name: "DifferenceKit", - package: "DifferenceKit" - ) - ], - exclude: ["swiftgen.yml"], - resources: [.process("Resources")] - ), - - // MARK: - Integration - - .target( - name: "Integration", - dependencies: [ - "Shared", - "Bindings", - "XXLogger", - "Keychain", - "ToastFeature", - "BackupFeature", - "CrashReporting", - "NetworkMonitor", - "DependencyInjection", - .product( - name: "Retry", - package: "Retry" - ), - .product( - name: "XXDatabase", - package: "client-ios-db" - ), - .product( - name: "XXLegacyDatabaseMigrator", - package: "client-ios-db" - ) - ], - resources: [.process("Resources")] - ), - - // MARK: - Presentation - - .target( - name: "Presentation", - dependencies: [ - "Theme", - "Shared", - .product( - name: "SnapKit", - package: "SnapKit" - ) - ] - ), - - // MARK: - ChatInputFeature - - .target( - name: "ChatInputFeature", - dependencies: [ - "Voxophone", - .product( - name: "ComposableArchitecture", - package: "swift-composable-architecture" - ) - ] - ), - - // MARK: - RestoreFeature - - .target( - name: "RestoreFeature", - dependencies: [ - "HUD", - "Shared", - "SFTPFeature", - "Integration", - "Presentation", - "iCloudFeature", - "DropboxFeature", - "GoogleDriveFeature", - "DependencyInjection" - ] - ), - - // MARK: - ContactFeature - - .target( - name: "ContactFeature", - dependencies: [ - "Shared", - "InputField", - "ChatFeature", - "Presentation", - .product( - name: "CombineSchedulers", - package: "combine-schedulers" - ), - .product( - name: "ScrollViewController", - package: "ScrollViewController" - ) - ] - ), - - // MARK: - ChatFeature - - .target( - name: "ChatFeature", - dependencies: [ - "HUD", - "Theme", - "Shared", - "Defaults", - "Keychain", - "Voxophone", - "Integration", - "Permissions", - "Presentation", - "DrawerFeature", - "ChatInputFeature", - "DependencyInjection", - .product( - name: "ChatLayout", - package: "ChatLayout" - ), - .product( - name: "DifferenceKit", - package: "DifferenceKit" - ), - .product( - name: "ScrollViewController", - package: "ScrollViewController" - ) - ] - ), - - // MARK: - SearchFeature - - .target( - name: "SearchFeature", - dependencies: [ - "HUD", - "Shared", - "Countries", - "Integration", - "Presentation", - "ContactFeature", - "DependencyInjection" - ] - ), - - // MARK: - LaunchFeature - - .target( - name: "LaunchFeature", - dependencies: [ - "HUD", - "Theme", - "Shared", - "Defaults", - "PushFeature", - "Integration", - "Permissions", - "DropboxFeature", - "VersionChecking", - "DependencyInjection" - ] - ), - - // MARK: - RequestsFeature - - .target( - name: "RequestsFeature", - dependencies: [ - "Theme", - "Shared", - "Integration", - "ToastFeature", - "ContactFeature", - "DependencyInjection", - .product( - name: "DifferenceKit", - package: "DifferenceKit" - ) - ] - ), - - // MARK: - ProfileFeature - - .target( - name: "ProfileFeature", - dependencies: [ - "HUD", - "Theme", - "Shared", - "Keychain", - "Defaults", - "Countries", - "InputField", - "MenuFeature", - "Permissions", - "Integration", - "Presentation", - "DrawerFeature", - "DependencyInjection", - .product( - name: "CombineSchedulers", - package: "combine-schedulers" - ), - .product( - name: "ScrollViewController", - package: "ScrollViewController" - ) - ] - ), - - // MARK: - ChatListFeature - - .target( - name: "ChatListFeature", - dependencies: [ - "Theme", - "Shared", - "Defaults", - "MenuFeature", - "ChatFeature", - "ProfileFeature", - "SettingsFeature", - "ContactListFeature", - "DependencyInjection", - .product( - name: "DifferenceKit", - package: "DifferenceKit" - ) - ] - ), - - // MARK: - OnboardingFeature - - .target( - name: "OnboardingFeature", - dependencies: [ - "HUD", - "Shared", - "Defaults", - "Keychain", - "Countries", - "InputField", - "Permissions", - "PushFeature", - "Integration", - "Presentation", - "DrawerFeature", - "VersionChecking", - "DependencyInjection", - .product( - name: "CombineSchedulers", - package: "combine-schedulers" - ), - .product( - name: "ScrollViewController", - package: "ScrollViewController" - ) - ] - ), - - // MARK: - MenuFeature - - .target( - name: "MenuFeature", - dependencies: [ - "Theme", - "Shared", - "Defaults", - "Integration", - "Presentation", - "DependencyInjection" - ] - ), - - // MARK: - BackupFeature - - .target( - name: "BackupFeature", - dependencies: [ - "HUD", - "Shared", - "Models", - "InputField", - "SFTPFeature", - "Presentation", - "iCloudFeature", - "DrawerFeature", - "DropboxFeature", - "GoogleDriveFeature", - "DependencyInjection" - ] - ), - - // MARK: - ScanFeature - - .target( - name: "ScanFeature", - dependencies: [ - "Theme", - "Shared", - "Countries", - "Permissions", - "Integration", - "Presentation", - "ContactFeature", - "DependencyInjection", - .product( - name: "SnapKit", - package: "SnapKit" - ) - ] - ), - - // MARK: - ContactListFeature - - .target( - name: "ContactListFeature", - dependencies: [ - "Theme", - "Shared", - "Integration", - "Presentation", - "ContactFeature", - "DependencyInjection", - .product( - name: "DifferenceKit", - package: "DifferenceKit" - ) - ] - ), - - // MARK: - SettingsFeature - - .target( - name: "SettingsFeature", - dependencies: [ - "HUD", - "Theme", - "Shared", - "Defaults", - "Keychain", - "InputField", - "PushFeature", - "Permissions", - "MenuFeature", - "Integration", - "Presentation", - "DrawerFeature", - "DependencyInjection", - .product( - name: "CombineSchedulers", - package: "combine-schedulers" - ), - .product( - name: "ScrollViewController", - package: "ScrollViewController" - ) - ] - ), - - // MARK: - DependencyInjectionTests - - .testTarget( - name: "DependencyInjectionTests", - dependencies: ["DependencyInjection"] - ), - - // MARK: - AppTests - - .testTarget( - name: "AppTests", - dependencies: ["App"] - ), - - // MARK: - ProfileFeatureTests - - .testTarget( - name: "ProfileFeatureTests", - dependencies: [ - "TestHelpers", - "ProfileFeature", - .product(name: "Quick", package: "Quick"), - .product(name: "Nimble", package: "Nimble") - ] - ), - - // MARK: - ContactFeatureTests - - .testTarget( - name: "ContactFeatureTests", - dependencies: [ - "TestHelpers", - "ContactFeature", - .product(name: "Quick", package: "Quick"), - .product(name: "Nimble", package: "Nimble") - ] - ), - - // MARK: - SearchFeatureTests - - .testTarget( - name: "SearchFeatureTests", - dependencies: [ - "TestHelpers", - "SearchFeature", - .product(name: "Quick", package: "Quick"), - .product(name: "Nimble", package: "Nimble") - ] - ), - - // MARK: - RequestsFeatureTests - - .testTarget( - name: "RequestsFeatureTests", - dependencies: [ - "TestHelpers", - "RequestsFeature", - .product(name: "Quick", package: "Quick"), - .product(name: "Nimble", package: "Nimble") - ] - ), - - // MARK: - SettingsFeatureTests - - .testTarget( - name: "SettingsFeatureTests", - dependencies: [ - "TestHelpers", - "SettingsFeature", - .product(name: "Quick", package: "Quick"), - .product(name: "Nimble", package: "Nimble") - ] - ), - - // MARK: - SettingsFeatureTests - - .testTarget( - name: "ChatListFeatureTests", - dependencies: [ - "TestHelpers", - "ChatListFeature", - .product(name: "Quick", package: "Quick"), - .product(name: "Nimble", package: "Nimble") - ] - ), - - // MARK: - ContactListFeatureTests - - .testTarget( - name: "ContactListFeatureTests", - dependencies: [ - "TestHelpers", - "ContactListFeature", - .product(name: "Quick", package: "Quick"), - .product(name: "Nimble", package: "Nimble") - ] - ), - - // MARK: - OnboardingFeatureTests - - .testTarget( - name: "OnboardingFeatureTests", - dependencies: [ - "TestHelpers", - "OnboardingFeature", - .product(name: "Quick", package: "Quick"), - .product(name: "Nimble", package: "Nimble") - ] - ), - - // MARK: - PresentationTests - - .testTarget( - name: "PresentationTests", - dependencies: [ - "Presentation", - .product(name: "Quick", package: "Quick"), - .product(name: "Nimble", package: "Nimble") - ] - ), - - // MARK: - ThemeTests - - .testTarget( - name: "ThemeTests", - dependencies: [ - "Theme", - .product(name: "Quick", package: "Quick"), - .product(name: "Nimble", package: "Nimble") - ] - ), - - // MARK: - ChatFeatureTests - - .testTarget( - name: "ChatFeatureTests", - dependencies: [ - "ChatFeature", - "TestHelpers", - .product(name: "Quick", package: "Quick"), - .product(name: "Nimble", package: "Nimble") - ] - ), - - // MARK: - ScanFeatureTests - - .testTarget( - name: "ScanFeatureTests", - dependencies: [ - "TestHelpers", - "ScanFeature", - .product(name: "Quick", package: "Quick"), - .product(name: "Nimble", package: "Nimble") - ] - ), - - // MARK: - CollectionView - - .target( - name: "CollectionView", - dependencies: [ - .product(name: "ChatLayout", package: "ChatLayout"), - .product(name: "XCTestDynamicOverlay", package: "xctest-dynamic-overlay"), - ] - ), - .testTarget( - name: "CollectionViewTests", - dependencies: [ - .target(name: "CollectionView"), - .product(name: "CustomDump", package: "swift-custom-dump"), - ] - ), + .target(name: "Keychain"), + .target(name: "Voxophone"), + .target(name: "Permissions"), + .target(name: "ScanFeature"), + .target(name: "ChatFeature"), + .target(name: "MenuFeature"), + .target(name: "PushFeature"), + .target(name: "SFTPFeature"), + .target(name: "ToastFeature"), + .target(name: "CrashService"), + .target(name: "BackupFeature"), + .target(name: "SearchFeature"), + .target(name: "LaunchFeature"), + .target(name: "iCloudFeature"), + .target(name: "DropboxFeature"), + .target(name: "ContactFeature"), + .target(name: "RestoreFeature"), + .target(name: "ProfileFeature"), + .target(name: "CrashReporting"), + .target(name: "ChatListFeature"), + .target(name: "SettingsFeature"), + .target(name: "RequestsFeature"), + .target(name: "OnboardingFeature"), + .target(name: "GoogleDriveFeature"), + .target(name: "ContactListFeature"), + ] + ), + .testTarget( + name: "AppTests", + dependencies: [ + .target(name: "App"), + ] + ), + .target( + name: "CrashReporting" + ), + .target( + name: "NetworkMonitor" + ), + .target( + name: "VersionChecking" + ), + .target( + name: "DependencyInjection" + ), + .testTarget( + name: "DependencyInjectionTests", + dependencies: [ + .target(name: "DependencyInjection"), + ] + ), + .target( + name: "InputField", + dependencies: [ + .target(name: "Shared"), + ] + ), + .binaryTarget( + name: "Bindings", + path: "XCFrameworks/Bindings.xcframework" + ), + .target( + name: "Permissions", + dependencies: [ + .target(name: "Theme"), + .target(name: "Shared"), + .target(name: "DependencyInjection"), + ] + ), + .target( + name: "PushFeature", + dependencies: [ + .target(name: "Models"), + .target(name: "Defaults"), + .target(name: "Integration"), + .target(name: "DependencyInjection"), + ] + ), + .target( + name: "TestHelpers", + dependencies: [ + .target(name: "Models"), + .target(name: "Presentation"), + ] + ), + .target( + name: "Keychain", + dependencies: [ + .product(name: "KeychainAccess", package: "KeychainAccess"), + ] + ), + .target( + name: "Voxophone", + dependencies: [ + .target(name: "Shared"), + ] + ), + .target( + name: "Models", + dependencies: [ + .product(name: "DifferenceKit", package: "DifferenceKit"), + .product(name: "SwiftProtobuf", package: "swift-protobuf"), + ] + ), + .target( + name: "Defaults", + dependencies: [ + .target(name: "DependencyInjection"), + ] + ), + .target( + name: "ToastFeature", + dependencies: [ + .target(name: "Shared"), + ] + ), + .target( + name: "CrashService", + dependencies: [ + .target(name: "CrashReporting"), + .product(name: "FirebaseCrashlytics", package: "firebase-ios-sdk"), + ] + ), + .target( + name: "SFTPFeature", + dependencies: [ + .target(name: "HUD"), + .target(name: "Models"), + .target(name: "Shared"), + .target(name: "Keychain"), + .target(name: "InputField"), + .target(name: "Presentation"), + .target(name: "DependencyInjection"), + .product(name: "Shout", package: "Shout"), + ] + ), + .target( + name: "GoogleDriveFeature", + dependencies: [ + .product(name: "GoogleSignIn", package: "GoogleSignIn-iOS"), + .product(name: "GoogleAPIClientForREST_Drive", package: "google-api-objectivec-client-for-rest"), + ], + resources: [ + .process("Resources"), + ] + ), + .target( + name: "iCloudFeature", + dependencies: [ + .product(name: "FilesProvider", package: "FileProvider"), + ] + ), + .target( + name: "DropboxFeature", + dependencies: [ + .product(name: "SwiftyDropbox", package: "SwiftyDropbox"), + ], + resources: [ + .process("Resources"), + ] + ), + .target( + name: "Countries", + dependencies: [ + .target(name: "Theme"), + .target(name: "Shared"), + .target(name: "DependencyInjection"), + ], + resources: [ + .process("Resources"), + ] + ), + .target( + name: "Theme", + dependencies: [ + .target(name: "Defaults"), + .target(name: "DependencyInjection"), + ] + ), + .testTarget( + name: "ThemeTests", + dependencies: [ + .target(name: "Theme"), + .product(name: "Quick", package: "Quick"), + .product(name: "Nimble", package: "Nimble"), + ] + ), + .target( + name: "DrawerFeature", + dependencies: [ + .target(name: "Shared"), + .target(name: "InputField"), + .product(name: "ScrollViewController", package: "ScrollViewController"), + ] + ), + .target( + name: "HUD", + dependencies: [ + .target(name: "Theme"), + .target(name: "Shared"), + .product(name: "SnapKit", package: "SnapKit"), + ] + ), + .target( + name: "XXLogger", + dependencies: [ + .product(name: "SwiftyBeaver", package: "SwiftyBeaver"), + ] + ), + .target( + name: "Shared", + dependencies: [ + .product(name: "SnapKit", package: "SnapKit"), + .product(name: "ChatLayout", package: "ChatLayout"), + .product(name: "DifferenceKit", package: "DifferenceKit"), + ], + exclude: [ + "swiftgen.yml", + ], + resources: [ + .process("Resources"), + ] + ), + .target( + name: "Integration", + dependencies: [ + .target(name: "Shared"), + .target(name: "Bindings"), + .target(name: "XXLogger"), + .target(name: "Keychain"), + .target(name: "ToastFeature"), + .target(name: "BackupFeature"), + .target(name: "CrashReporting"), + .target(name: "NetworkMonitor"), + .target(name: "DependencyInjection"), + .product(name: "Retry", package: "Retry"), + .product(name: "XXDatabase", package: "client-ios-db"), + .product(name: "XXLegacyDatabaseMigrator", package: "client-ios-db"), + ], + resources: [ + .process("Resources"), + ] + ), + .target( + name: "Presentation", + dependencies: [ + .target(name: "Theme"), + .target(name: "Shared"), + .product(name: "SnapKit", package: "SnapKit"), + ] + ), + .testTarget( + name: "PresentationTests", + dependencies: [ + .target(name: "Presentation"), + .product(name: "Quick", package: "Quick"), + .product(name: "Nimble", package: "Nimble"), + ] + ), + .target( + name: "ChatInputFeature", + dependencies: [ + .target(name: "Voxophone"), + .product(name: "ComposableArchitecture", package: "swift-composable-architecture"), + ] + ), + .target( + name: "RestoreFeature", + dependencies: [ + .target(name: "HUD"), + .target(name: "Shared"), + .target(name: "SFTPFeature"), + .target(name: "Integration"), + .target(name: "Presentation"), + .target(name: "iCloudFeature"), + .target(name: "DropboxFeature"), + .target(name: "GoogleDriveFeature"), + .target(name: "DependencyInjection"), + ] + ), + .target( + name: "ContactFeature", + dependencies: [ + .target(name: "Shared"), + .target(name: "InputField"), + .target(name: "ChatFeature"), + .target(name: "Presentation"), + .product(name: "CombineSchedulers", package: "combine-schedulers"), + .product(name: "ScrollViewController", package: "ScrollViewController"), + ] + ), + .testTarget( + name: "ContactFeatureTests", + dependencies: [ + .target(name: "TestHelpers"), + .target(name: "ContactFeature"), + .product(name: "Quick", package: "Quick"), + .product(name: "Nimble", package: "Nimble"), + ] + ), + .target( + name: "ChatFeature", + dependencies: [ + .target(name: "HUD"), + .target(name: "Theme"), + .target(name: "Shared"), + .target(name: "Defaults"), + .target(name: "Keychain"), + .target(name: "Voxophone"), + .target(name: "Integration"), + .target(name: "Permissions"), + .target(name: "Presentation"), + .target(name: "DrawerFeature"), + .target(name: "ChatInputFeature"), + .target(name: "DependencyInjection"), + .product(name: "ChatLayout", package: "ChatLayout"), + .product(name: "DifferenceKit", package: "DifferenceKit"), + .product(name: "ScrollViewController", package: "ScrollViewController"), + ] + ), + .testTarget( + name: "ChatFeatureTests", + dependencies: [ + .target(name: "ChatFeature"), + .target(name: "TestHelpers"), + .product(name: "Quick", package: "Quick"), + .product(name: "Nimble", package: "Nimble"), + ] + ), + .target( + name: "SearchFeature", + dependencies: [ + .target(name: "HUD"), + .target(name: "Shared"), + .target(name: "Countries"), + .target(name: "Integration"), + .target(name: "Presentation"), + .target(name: "ContactFeature"), + .target(name: "DependencyInjection"), + ] + ), + .testTarget( + name: "SearchFeatureTests", + dependencies: [ + .target(name: "TestHelpers"), + .target(name: "SearchFeature"), + .product(name: "Quick", package: "Quick"), + .product(name: "Nimble", package: "Nimble"), + ] + ), + .target( + name: "LaunchFeature", + dependencies: [ + .target(name: "HUD"), + .target(name: "Theme"), + .target(name: "Shared"), + .target(name: "Defaults"), + .target(name: "PushFeature"), + .target(name: "Integration"), + .target(name: "Permissions"), + .target(name: "DropboxFeature"), + .target(name: "VersionChecking"), + .target(name: "DependencyInjection"), + ] + ), + .target( + name: "RequestsFeature", + dependencies: [ + .target(name: "Theme"), + .target(name: "Shared"), + .target(name: "Integration"), + .target(name: "ToastFeature"), + .target(name: "ContactFeature"), + .target(name: "DependencyInjection"), + .product(name: "DifferenceKit", package: "DifferenceKit"), + ] + ), + .testTarget( + name: "RequestsFeatureTests", + dependencies: [ + .target(name: "TestHelpers"), + .target(name: "RequestsFeature"), + .product(name: "Quick", package: "Quick"), + .product(name: "Nimble", package: "Nimble"), + ] + ), + .target( + name: "ProfileFeature", + dependencies: [ + .target(name: "HUD"), + .target(name: "Theme"), + .target(name: "Shared"), + .target(name: "Keychain"), + .target(name: "Defaults"), + .target(name: "Countries"), + .target(name: "InputField"), + .target(name: "MenuFeature"), + .target(name: "Permissions"), + .target(name: "Integration"), + .target(name: "Presentation"), + .target(name: "DrawerFeature"), + .target(name: "DependencyInjection"), + .product(name: "CombineSchedulers", package: "combine-schedulers"), + .product(name: "ScrollViewController", package: "ScrollViewController"), + ] + ), + .testTarget( + name: "ProfileFeatureTests", + dependencies: [ + .target(name: "TestHelpers"), + .target(name: "ProfileFeature"), + .product(name: "Quick", package: "Quick"), + .product(name: "Nimble", package: "Nimble"), + ] + ), + .target( + name: "ChatListFeature", + dependencies: [ + .target(name: "Theme"), + .target(name: "Shared"), + .target(name: "Defaults"), + .target(name: "MenuFeature"), + .target(name: "ChatFeature"), + .target(name: "ProfileFeature"), + .target(name: "SettingsFeature"), + .target(name: "ContactListFeature"), + .target(name: "DependencyInjection"), + .product(name: "DifferenceKit", package: "DifferenceKit"), + ] + ), + .testTarget( + name: "ChatListFeatureTests", + dependencies: [ + .target(name: "TestHelpers"), + .target(name: "ChatListFeature"), + .product(name: "Quick", package: "Quick"), + .product(name: "Nimble", package: "Nimble"), + ] + ), + .target( + name: "OnboardingFeature", + dependencies: [ + .target(name: "HUD"), + .target(name: "Shared"), + .target(name: "Defaults"), + .target(name: "Keychain"), + .target(name: "Countries"), + .target(name: "InputField"), + .target(name: "Permissions"), + .target(name: "PushFeature"), + .target(name: "Integration"), + .target(name: "Presentation"), + .target(name: "DrawerFeature"), + .target(name: "VersionChecking"), + .target(name: "DependencyInjection"), + .product(name: "CombineSchedulers", package: "combine-schedulers"), + .product(name: "ScrollViewController", package: "ScrollViewController"), + ] + ), + .testTarget( + name: "OnboardingFeatureTests", + dependencies: [ + .target(name: "TestHelpers"), + .target(name: "OnboardingFeature"), + .product(name: "Quick", package: "Quick"), + .product(name: "Nimble", package: "Nimble"), + ] + ), + .target( + name: "MenuFeature", + dependencies: [ + .target(name: "Theme"), + .target(name: "Shared"), + .target(name: "Defaults"), + .target(name: "Integration"), + .target(name: "Presentation"), + .target(name: "DependencyInjection"), + ] + ), + .target( + name: "BackupFeature", + dependencies: [ + .target(name: "HUD"), + .target(name: "Shared"), + .target(name: "Models"), + .target(name: "InputField"), + .target(name: "SFTPFeature"), + .target(name: "Presentation"), + .target(name: "iCloudFeature"), + .target(name: "DrawerFeature"), + .target(name: "DropboxFeature"), + .target(name: "GoogleDriveFeature"), + .target(name: "DependencyInjection"), + ] + ), + .target( + name: "ScanFeature", + dependencies: [ + .target(name: "Theme"), + .target(name: "Shared"), + .target(name: "Countries"), + .target(name: "Permissions"), + .target(name: "Integration"), + .target(name: "Presentation"), + .target(name: "ContactFeature"), + .target(name: "DependencyInjection"), + .product(name: "SnapKit", package: "SnapKit"), + ] + ), + .testTarget( + name: "ScanFeatureTests", + dependencies: [ + .target(name: "ScanFeature"), + .target(name: "TestHelpers"), + .product(name: "Quick", package: "Quick"), + .product(name: "Nimble", package: "Nimble"), + ] + ), + .target( + name: "ContactListFeature", + dependencies: [ + .target(name: "Theme"), + .target(name: "Shared"), + .target(name: "Integration"), + .target(name: "Presentation"), + .target(name: "ContactFeature"), + .target(name: "DependencyInjection"), + .product(name: "DifferenceKit", package: "DifferenceKit"), + ] + ), + .testTarget( + name: "ContactListFeatureTests", + dependencies: [ + .target(name: "TestHelpers"), + .target(name: "ContactListFeature"), + .product(name: "Quick", package: "Quick"), + .product(name: "Nimble", package: "Nimble"), + ] + ), + .target( + name: "SettingsFeature", + dependencies: [ + .target(name: "HUD"), + .target(name: "Theme"), + .target(name: "Shared"), + .target(name: "Defaults"), + .target(name: "Keychain"), + .target(name: "InputField"), + .target(name: "PushFeature"), + .target(name: "Permissions"), + .target(name: "MenuFeature"), + .target(name: "Integration"), + .target(name: "Presentation"), + .target(name: "DrawerFeature"), + .target(name: "DependencyInjection"), + .product(name: "CombineSchedulers", package: "combine-schedulers"), + .product(name: "ScrollViewController", package: "ScrollViewController"), + ] + ), + .testTarget( + name: "SettingsFeatureTests", + dependencies: [ + .target(name: "TestHelpers"), + .target(name: "SettingsFeature"), + .product(name: "Quick", package: "Quick"), + .product(name: "Nimble", package: "Nimble"), + ] + ), + .target( + name: "CollectionView", + dependencies: [ + .product(name: "ChatLayout", package: "ChatLayout"), + .product(name: "XCTestDynamicOverlay", package: "xctest-dynamic-overlay"), + ] + ), + .testTarget( + name: "CollectionViewTests", + dependencies: [ + .target(name: "CollectionView"), + .product(name: "CustomDump", package: "swift-custom-dump"), + ] + ), ] )