// swift-tools-version: 5.10

import PackageDescription

let package = Package(
    name: "suno",
    defaultLocalization: "en",
    platforms: [.iOS("18.0"), .macOS(.v11)],
    products: [
        .library(name: "Adamantium", targets: ["Adamantium"]),
        .library(name: "APIClient", targets: ["APIClient"]),
        .library(name: "AppSessionCountClient", targets: ["AppSessionCountClient"]),
        .library(name: "BackendEnvironmentClient", targets: ["BackendEnvironmentClient"]),
        .library(name: "ATTClient", targets: ["ATTClient"]),
        .library(name: "AVPlayerClient", targets: ["AVPlayerClient"]),
        .library(name: "AudioRecorderClient", targets: ["AudioRecorderClient"]),
        .library(name: "BlendedCreateClient", targets: ["BlendedCreateClient"]),
        .library(name: "BrazeClient", targets: ["BrazeClient"]),
        .library(name: "FeatureBanner", targets: ["FeatureBanner"]),
        .library(name: "FeatureBrandedAlert", targets: ["FeatureBrandedAlert"]),
        .library(name: "CameraClient", targets: ["CameraClient"]),
        .library(name: "ClerkClient", targets: ["ClerkClient"]),
        .library(name: "ClipDataClient", targets: ["ClipDataClient"]),
        .library(name: "ClipLineageClient", targets: ["ClipLineageClient"]),
        .library(name: "ClipPollingClient", targets: ["ClipPollingClient"]),
        .library(name: "ComponentLibrary", targets: ["ComponentLibrary"]),
        .library(name: "ContactsClient", targets: ["ContactsClient"]),
        .library(name: "DebugFeatureClient", targets: ["DebugFeatureClient"]),
        .library(name: "DebugMenu", targets: ["DebugMenu"]),
        .library(name: "FeatureApp", targets: ["FeatureApp"]),
        .library(name: "FeatureCaptions", targets: ["FeatureCaptions"]),
        .library(name: "FeatureCatalog", targets: ["FeatureCatalog"]),
        .library(name: "FeatureClipDetail", targets: ["FeatureClipDetail"]),
        .library(name: "FeatureClipList", targets: ["FeatureClipList"]),
        .library(name: "FeatureCreateClip", targets: ["FeatureCreateClip"]),
        .library(name: "FeatureHooksFeed", targets: ["FeatureHooksFeed"]),
        .library(name: "FeatureHooksCamera", targets: ["FeatureHooksCamera"]),
        .library(name: "FeatureHooksCreate", targets: ["FeatureHooksCreate"]),
        .library(name: "FeatureHookDownload", targets: ["FeatureHookDownload"]),
        .library(name: "HooksPlayerClient", targets: ["HooksPlayerClient"]),
        .library(name: "FeatureHooksSongPicker", targets: ["FeatureHooksSongPicker"]),
        .library(name: "FeatureHooksPost", targets: ["FeatureHooksPost"]),
        .library(name: "FeatureHookSnippetSelection", targets: ["FeatureHookSnippetSelection"]),
        .library(name: "FeatureHooksGrid", targets: ["FeatureHooksGrid"]),
        .library(name: "FeatureMyHooks", targets: ["FeatureMyHooks"]),
        .library(name: "FeatureHooksModels", targets: ["FeatureHooksModels"]),
        .library(name: "FeatureHooksMoreMenu", targets: ["FeatureHooksMoreMenu"]),
        .library(name: "HookActionsClient", targets: ["HookActionsClient"]),
        .library(name: "SongActionsClient", targets: ["SongActionsClient"]),
        .library(name: "FeatureMadlibsOnboarding", targets: ["FeatureMadlibsOnboarding"]),
        .library(name: "FeatureMadlibsOnboardingModels", targets: ["FeatureMadlibsOnboardingModels"]),
        .library(name: "FeatureManagePlaylist", targets: ["FeatureManagePlaylist"]),
        .library(name: "FeatureManageClip", targets: ["FeatureManageClip"]),
        .library(name: "FeatureInAppNotifications", targets: ["FeatureInAppNotifications"]),
        .library(name: "FeatureDiscover", targets: ["FeatureDiscover"]),
        .library(name: "FeatureDiscoverSectionDetail", targets: ["FeatureDiscoverSectionDetail"]),
        .library(name: "FeatureEditClip", targets: ["FeatureEditClip"]),
        .library(name: "FeatureModals", targets: ["FeatureModals"]),
        .library(name: "FeatureOmniPlayer", targets: ["FeatureOmniPlayer"]),
        .library(name: "FeatureOnboardingScreens", targets: ["FeatureOnboardingScreens"]),
        .library(name: "FeatureOnboarding", targets: ["FeatureOnboarding"]),
        .library(name: "OnboardingAnalyticsClient", targets: ["OnboardingAnalyticsClient"]),
        .library(name: "FeatureOnboardingModels", targets: ["FeatureOnboardingModels"]),
        .library(name: "FeaturePaywall", targets: ["FeaturePaywall"]),
        .library(name: "FeaturePhotoPicker", targets: ["FeaturePhotoPicker"]),
        .library(name: "FeaturePlayer", targets: ["FeaturePlayer"]),
        .library(name: "FeatureComments", targets: ["FeatureComments"]),
        .library(name: "FeaturePlaylistDetail", targets: ["FeaturePlaylistDetail"]),
        .library(name: "FeaturePlaylistMoreMenu", targets: ["FeaturePlaylistMoreMenu"]),
        .library(name: "FeaturePlaylistRow", targets: ["FeaturePlaylistRow"]),
        .library(name: "FeatureProfile", targets: ["FeatureProfile"]),
        .library(name: "FeatureRatingTracker", targets: ["FeatureRatingTracker"]),
        .library(name: "FeatureRemix", targets: ["FeatureRemix"]),
        .library(name: "FeatureRoot", targets: ["FeatureRoot"]),
        .library(name: "FeatureSearch", targets: ["FeatureSearch"]),
        .library(name: "FeatureSettingsV2", targets: ["FeatureSettingsV2"]),
        .library(name: "FeatureShare", targets: ["FeatureShare"]),
        .library(name: "FeatureShareSheet", targets: ["FeatureShareSheet"]),
        .library(name: "FeatureShareAssetCreation", targets: ["FeatureShareAssetCreation"]),
        .library(name: "FeatureSocial", targets: ["FeatureSocial"]),
        .library(name: "FeatureToasts", targets: ["FeatureToasts"]),
        .library(name: "FeatureVideoTrimmer", targets: ["FeatureVideoTrimmer"]),
        .library(name: "LyricsClient", targets: ["LyricsClient"]),
        .library(name: "HapticsClient", targets: ["HapticsClient"]),
        .library(name: "HCaptchaClient", targets: ["HCaptchaClient"]),
        .library(name: "InAppNotificationClient", targets: ["InAppNotificationClient"]),
        .library(name: "InstanceIDClient", targets: ["InstanceIDClient"]),
        .library(name: "KeychainClient", targets: ["KeychainClient"]),
        .library(name: "ShareAssetClient", targets: ["ShareAssetClient"]),
        .library(name: "AppStartUpClient", targets: ["AppStartUpClient"]),
        .library(name: "SunoModelClient", targets: ["SunoModelClient"]),
        .library(name: "FirebaseAppDistributionClient", targets: ["FirebaseAppDistributionClient"]),
        .library(name: "FirebaseClient", targets: ["FirebaseClient"]),
        .library(name: "Localization", targets: ["Localization"]),
        .library(name: "OmniPlayerClient", targets: ["OmniPlayerClient"]),
        .library(name: "PaywallClient", targets: ["PaywallClient"]),
        .library(name: "PhotoLibraryClient", targets: ["PhotoLibraryClient"]),
        .library(name: "PlayerClient", targets: ["PlayerClient"]), // to be deprecated after extend migration
        .library(name: "PlayerUtilities", targets: ["PlayerUtilities"]),
        .library(name: "RemoteNotificationsClient", targets: ["RemoteNotificationsClient"]),
        .library(name: "UserConfigClient", targets: ["UserConfigClient"]),
        .library(name: "UserEventBusClient", targets: ["UserEventBusClient"]),
        .library(name: "UserNotificationsClient", targets: ["UserNotificationsClient"]),
        .library(name: "UserDefaultsClient", targets: ["UserDefaultsClient"]),
        .library(name: "Utilities", targets: ["Utilities"]),
        .library(name: "AttributionAndDeeplinkingClient", targets: ["AttributionAndDeeplinkingClient"]),
        .library(name: "UserSessionTransitionClient", targets: ["UserSessionTransitionClient"]),
        .library(name: "SnippetPlayerClient", targets: ["SnippetPlayerClient"]),
        .library(name: "TabBarUtilities", targets: ["TabBarUtilities"]),
    ],
    dependencies: [
        .package(url: "https://github.com/pointfreeco/swift-composable-architecture", exact: "1.22.3"),
        .package(url: "https://github.com/pointfreeco/swift-navigation", exact: "2.4.2"),
        .package(url: "https://github.com/pointfreeco/swift-snapshot-testing", exact: "1.18.6"),
        .package(url: "https://github.com/pointfreeco/swift-dependencies", exact: "1.9.3"),
        .package(url: "https://github.com/pointfreeco/swift-macro-testing", from: "0.2.0"),
        .package(url: "https://github.com/pointfreeco/swift-concurrency-extras", exact: "1.3.1"),
        .package(url: "https://github.com/pointfreeco/swift-perception", exact: "1.6.0"),
        .package(url: "https://github.com/pointfreeco/xctest-dynamic-overlay", exact: "1.6.1"),
        .package(url: "https://github.com/pointfreeco/swift-sharing", exact: "2.7.4"),
        .package(url: "https://github.com/pointfreeco/swift-identified-collections", exact: "1.1.1"),
        .package(url: "https://github.com/apple/swift-openapi-generator", exact: "1.10.2"),
        .package(url: "https://github.com/apple/swift-openapi-runtime", exact: "1.8.2"),
        .package(url: "https://github.com/apple/swift-openapi-urlsession", exact: "1.1.0"),
        .package(url: "https://github.com/apple/swift-http-types", exact: "1.4.0"),
        .package(url: "https://github.com/apple/swift-collections", exact: "1.2.1"),
        .package(url: "https://github.com/clerk/clerk-ios", exact: "0.67.0"),
        .package(url: "https://github.com/firebase/firebase-ios-sdk", exact: "12.3.0"),
        .package(url: "https://github.com/googleads/google-ads-on-device-conversion-ios-sdk", exact: "3.0.0"),
        .package(url: "https://github.com/lorenzofiamingo/swiftui-cached-async-image", exact: "2.1.1"),
        .package(url: "https://github.com/RevenueCat/purchases-ios-spm.git", exact: "5.35.0"),
        .package(url: "https://github.com/marmelroy/PhoneNumberKit", exact: "4.1.4"),
        .package(url: "https://github.com/segmentio/analytics-swift", exact: "1.8.0"),
        .package(url: "https://github.com/statsig-io/ios-sdk", exact: "1.53.11"),
        .package(url: "https://github.com/tiktok/tiktok-opensdk-ios", exact: "2.5.0"),
        .package(url: "https://github.com/hCaptcha/HCaptcha-ios-sdk", exact: "2.9.5"),
        .package(url: "https://github.com/apple/swift-async-algorithms", exact: "1.0.4"),
        .package(url: "https://github.com/braze-inc/braze-swift-sdk", exact: "11.9.0"),
        .package(url: "https://github.com/kean/Get", exact: "2.2.1"),
        .package(url: "https://github.com/shakebugs/shake-ios", exact: "17.2.0"),
        .package(url: "https://github.com/suno-ai/RealFlags", revision: "8540ace"), // revision because it's a fork
        .package(url: "https://github.com/FLEXTool/FLEX.git", revision: "2bfba67"), // revision since we need a fix from 2024 (last release 2022)
        .package(url: "https://github.com/kean/Nuke", exact: "12.8.0"),
        .package(url: "https://github.com/apple/swift-algorithms", exact: "1.2.1"),
        .package(url: "https://github.com/singular-labs/Singular-iOS-SDK", exact: "12.8.1"),
        .package(url: "https://github.com/aheze/Popovers", exact: "1.3.2"),
        .package(url: "https://github.com/auth0/SimpleKeychain", exact: "1.3.0"),
        .package(url: "https://github.com/tevelee/SwiftUI-Flow.git", exact: "3.1.1"),
        .package(url: "https://github.com/siteline/swiftui-introspect", exact: "26.0.0"),
        .package(url: "https://github.com/joogps/Glur", exact: "1.1.0"),

        // Suno
        .package(path: "openapi/Generated"),
        .package(path: "openapi/GeneratedManually"),
    ],
    targets: [
        .target(
            name: "Adamantium",
            dependencies: [],
            resources: [
                .copy("Metal_Library/"),
                .copy("Metal_DebugLibrary/"),
            ]
        ),
        .target(
            name: "AdamantiumClient",
            dependencies: [
                "Adamantium",

                .product(name: "ComposableArchitecture", package: "swift-composable-architecture"),
            ]
        ),
        .target(
            name: "AnalyticsClient",
            dependencies: [
                "APIClient",
                "BackendEnvironmentClient",
                "DebugFeatureClient",
                "DebugUtilities",
                "InstanceIDClient",
                "Utilities",
                "BrazeClient",

                .product(name: "ComposableArchitecture", package: "swift-composable-architecture"),
                .product(name: "Segment", package: "analytics-swift"),
                .product(name: "FirebaseAnalytics", package: "firebase-ios-sdk"),
            ]
        ),
        .target(
            name: "APIClient",
            dependencies: [
                "BackendEnvironmentClient",
                "ClerkClient",
                "Errors",
                "Localization",
                "SunoModelClient",
                "RageshakeClient",
                "StatsigClient", // For now while we gate a hotfix

                "Utilities",

                .product(name: "GenAPI", package: "Generated"),
                .product(name: "Get", package: "Get"),
                .product(name: "OpenAPIRuntime", package: "swift-openapi-runtime"),
                .product(name: "OpenAPIURLSession", package: "swift-openapi-urlsession"),
                .product(name: "ComposableArchitecture", package: "swift-composable-architecture"),
                .product(name: "Dependencies", package: "swift-dependencies"),
                .product(name: "HTTPTypes", package: "swift-http-types"),
                .product(name: "IdentifiedCollections", package: "swift-identified-collections"),
            ],
            plugins: [
                .plugin(name: "OpenAPIGenerator", package: "swift-openapi-generator"),
            ]
        ),
        .testTarget(
            name: "APIClientTests",
            dependencies: [
                "APIClient",
            ]
        ),
        .testTarget(
            name: "BackendEnvironmentClientTests",
            dependencies: [
                "BackendEnvironmentClient",
            ]
        ),
        .target(
            name: "AppSessionCountClient",
            dependencies: [
                "Utilities",

                .product(name: "Dependencies", package: "swift-dependencies"),
                .product(name: "DependenciesMacros", package: "swift-dependencies"),
                .product(name: "Sharing", package: "swift-sharing"),
            ]
        ),
        .target(
            name: "BackendEnvironmentClient",
            dependencies: [
                "Utilities",

                .product(name: "ComposableArchitecture", package: "swift-composable-architecture"),
            ]
        ),
        .testTarget(
            name: "AppSessionCountClientTests",
            dependencies: [
                "AppSessionCountClient",

                .product(name: "Dependencies", package: "swift-dependencies"),
            ]
        ),
        .target(
            name: "AttributionAndDeeplinkingClient",
            dependencies: [
                "Utilities",
                "APIClient",
                "BackendEnvironmentClient",
                "AnalyticsClient",
                "DeeplinkIntents",
                "InstanceIDClient",

                .product(name: "ComposableArchitecture", package: "swift-composable-architecture"),
                .product(name: "Singular", package: "Singular-iOS-SDK"),
            ]
        ),
        .target(
            name: "ATTClient",
            dependencies: [
                "APIClient",

                .product(name: "ComposableArchitecture", package: "swift-composable-architecture"),
            ]
        ),
        .target(
            name: "AudioRecorderClient",
            dependencies: [
                .product(name: "ComposableArchitecture", package: "swift-composable-architecture"),
            ]
        ),
        .target(
            name: "BlendedCreateClient",
            dependencies: [
                "APIClient",
                "HCaptchaClient",
                "StatsigClient",

                "Localization",
                "SunoModelClient",
                "Utilities",

                .product(name: "ComposableArchitecture", package: "swift-composable-architecture"),
            ]
        ),
        .target(
            name: "BrazeClient",
            dependencies: [
                "BackendEnvironmentClient",
                "InstanceIDClient",
                "StatsigClient",

                .product(name: "ComposableArchitecture", package: "swift-composable-architecture"),
                .product(name: "BrazeKit", package: "braze-swift-sdk"),
                .product(name: "BrazeNotificationService", package: "braze-swift-sdk"),
            ]
        ),
        .target(
            name: "CameraClient",
            dependencies: [
                .product(name: "Dependencies", package: "swift-dependencies"),
            ]
        ),
        .target(
            name: "ClerkClient",
            dependencies: [
                "BackendEnvironmentClient",
                "Utilities",
                "UserDefaultsClient",
                "Localization",
                "StatsigClient",

                .product(name: "Clerk", package: "clerk-ios"),
                .product(name: "PhoneNumberKit", package: "PhoneNumberKit"),
                .product(name: "ComposableArchitecture", package: "swift-composable-architecture"),
            ]
        ),
        .target(
            name: "ClipDataClient",
            dependencies: [
                "APIClient",

                .product(name: "ComposableArchitecture", package: "swift-composable-architecture"),
            ]
        ),
        .target(
            name: "ClipLineageClient",
            dependencies: [
                "APIClient",
                "Utilities",

                .product(name: "ComposableArchitecture", package: "swift-composable-architecture"),
            ]
        ),
        .target(
            name: "ClipPollingClient",
            dependencies: [
                "APIClient",
                "EventBusClient",

                .product(name: "ComposableArchitecture", package: "swift-composable-architecture"),
            ]
        ),
        .target(
            name: "CommentsClient",
            dependencies: [
                "APIClient",

                "Localization",
                "Utilities",

                .product(name: "AsyncAlgorithms", package: "swift-async-algorithms"),
                .product(name: "ComposableArchitecture", package: "swift-composable-architecture"),
            ]
        ),
        .target(
            name: "ComponentLibrary",
            dependencies: [
                "PhotoLibraryClient",
                "Localization",
                "Utilities",
                "SunoModelClient",
                "APIClient",
                "Adamantium",
                "HapticsClient",
                "StatsigClient",
                "EventBusClient",
                "DeeplinkIntents",
                "InAppNotificationClient",
                "BackendEnvironmentClient",
                "SnippetPlayerClient",
                .product(name: "CachedAsyncImage", package: "swiftui-cached-async-image"),
                .product(name: "PhoneNumberKit", package: "PhoneNumberKit"),
                .product(name: "NukeUI", package: "Nuke"),
                .product(name: "Popovers", package: "Popovers"),
                .product(name: "ComposableArchitecture", package: "swift-composable-architecture"),
                .product(name: "Nuke", package: "Nuke"),
                .product(name: "Sharing", package: "swift-sharing"),
                .product(name: "SwiftUIIntrospect", package: "swiftui-introspect"),
            ],
            resources: [
                .process("Resources"),
                .process("Assets/FigmaMCPIcons.xcassets"),
            ]
        ),
        .target(
            name: "ContactsClient",
            dependencies: [
                .product(name: "ComposableArchitecture", package: "swift-composable-architecture"),
                .product(name: "PhoneNumberKit", package: "PhoneNumberKit"),
            ]
        ),
        .target(
            name: "DebugUtilities",
            dependencies: [
                .product(name: "Segment", package: "analytics-swift"),
            ]
        ),
        .target(
            name: "DebugFeatureClient",
            dependencies: [
                "BackendEnvironmentClient",
                "DebugUtilities",
                "DebugMenu",
                "RageshakeClient",

                .product(name: "ComposableArchitecture", package: "swift-composable-architecture"),
            ]
        ),
        .target(
            name: "DebugMenu",
            dependencies: [
                "BackendEnvironmentClient",
                "DebugUtilities",
                "ComponentLibrary",
                "StatsigClient",
                "Utilities",
                "FeatureOnboardingScreens",
                "RageshakeClient",
                "AppSessionCountClient",

                "APIClient",
                "ClerkClient",
                "FeatureOnboardingModels",

                .product(name: "ComposableArchitecture", package: "swift-composable-architecture"),
                .product(name: "Segment", package: "analytics-swift"),
                .product(name: "FLEX", package: "FLEX"),
            ]
        ),
        .target(
            name: "Errors",
            dependencies: [
            ]
        ),
        .target(
            name: "DeeplinkIntents",
            dependencies: [
                "BackendEnvironmentClient",
                "StatsigClient",
                "Utilities",
            ]
        ),
        .testTarget(
            name: "DeeplinkIntentsTests",
            dependencies: [
                "DeeplinkIntents",
            ]
        ),
        .target(
            name: "EventBusClient",
            dependencies: [
                "APIClient",

                "StatsigClient",
                "Utilities",
                "DeeplinkIntents",

                .product(name: "AsyncAlgorithms", package: "swift-async-algorithms"),
                .product(name: "ComposableArchitecture", package: "swift-composable-architecture"),
            ]
        ),
        .target(
            name: "FeatureAnnouncements",
            dependencies: [
                "ComponentLibrary",
                "Localization",

                .product(name: "ComposableArchitecture", package: "swift-composable-architecture"),
            ],
            resources: [
                .process("Resources"),
            ]
        ),
        .target(
            name: "FeatureApp",
            dependencies: [
                "AdamantiumClient",
                "AnalyticsClient",
                "APIClient",
                "AppSessionCountClient",
                "ClerkClient",
                "ComponentLibrary",
                "DebugFeatureClient",
                "DeeplinkIntents",
                "FeatureBanner",
                "FeatureOnboarding",
                "FeatureRoot",
                "FirebaseAppDistributionClient",
                "FirebaseClient",
                "Localization",
                "PaywallClient",
                "RemoteNotificationsClient",
                "UserNotificationsClient",
                "Utilities",
                "SunoModelClient",
                "BrazeClient",
                "AttributionAndDeeplinkingClient",
                "UserEventBusClient",
                "ATTClient",
                "ShareAssetClient",
                "UserSessionTransitionClient",
                "AppStartUpClient",
                "TabBarUtilities",
                "InAppNotificationClient",
                "StatsigClient",
                "FeatureOnboardingModels",
                "InstanceIDClient",

                .product(name: "ComposableArchitecture", package: "swift-composable-architecture"),
                .product(name: "FirebaseCore", package: "firebase-ios-sdk"),
            ]
        ),
        .target(
            name: "FeatureBrandedAlert",
            dependencies: [
                "AnalyticsClient",
                "ComponentLibrary",
                "Errors",
                "Localization",
                "SunoModelClient",
                "StatsigClient",
                "Utilities",
                "Adamantium",

                .product(name: "ComposableArchitecture", package: "swift-composable-architecture"),
            ]
        ),
        .target(
            name: "FeatureCatalog",
            dependencies: [
                "APIClient",
                "ComponentLibrary",
                "Utilities",
                "FeaturePlaylistDetail",
                "StatsigClient",
                "Localization",
                "FeatureClipList",
                "NavigationRouterClient",
                "FeatureHooksModels",
                "FeatureHooksPost",

                "EventBusClient",
                "FeatureBrandedAlert",
                "FeatureToasts",
                "FeatureManagePlaylist",

                .product(name: "ComposableArchitecture", package: "swift-composable-architecture"),
            ]
        ),
        .target(
            name: "FeatureCaptions",
            dependencies: [
                "APIClient",
                "ComponentLibrary",
                "Errors",
                "FeatureBrandedAlert",
                "Utilities",
                "Localization",

                .product(name: "ComposableArchitecture", package: "swift-composable-architecture"),
            ]
        ),
        .target(
            name: "FeatureClipDetail",
            dependencies: [
                "AdamantiumClient",
                "APIClient",
                "ComponentLibrary",
                "LyricsClient",
                "Utilities",
                "PlayerClient",
                "FeaturePlaylistRow",
                "FeatureManagePlaylist",
                "FeatureManageClip",
                "ClipDataClient",
                "FeatureShare",
                "FeatureShareSheet",
                "AnalyticsClient",
                "FeatureRatingTracker",
                "Localization",
                "FeaturePhotoPicker",
                "StatsigClient",
                "SunoModelClient",
                "EventBusClient",
                "SongActionsClient",
                "CommentsClient",
                "FeatureCaptions",
                "FeatureBrandedAlert",
                "FeatureEditSongArt",
                "FeatureToasts",
                "ClipLineageClient",
                "NavigationRouterClient",
                "FeatureHooksModels",
                "HookActionsClient",
                "OmniPlayerClient",

                .product(name: "ComposableArchitecture", package: "swift-composable-architecture"),
                .product(name: "Algorithms", package: "swift-algorithms"),
            ]
        ),
        .target(
            name: "FeatureSocial",
            dependencies: [
                "ContactsClient",
                "Utilities",
                "APIClient",
                "ComponentLibrary",
                "Localization",
                "ClerkClient",
                "AnalyticsClient",
                "FeatureShare",
                "NavigationRouterClient",
                "FeatureClipList",

                "StatsigClient",

                .product(name: "ComposableArchitecture", package: "swift-composable-architecture"),
                .product(name: "PhoneNumberKit", package: "PhoneNumberKit"),
                .product(name: "Clerk", package: "clerk-ios"),
            ]
        ),
        .target(
            name: "FeatureCreateClip",
            dependencies: [
                "APIClient",
                "ComponentLibrary",
                "Utilities",
                "FeatureBrandedAlert",
                "AudioRecorderClient",
                "FeatureToasts",
                "UserDefaultsClient",
                "Localization",
                "FeaturePaywall",
                "CameraClient",
                "FeatureVideoTrimmer",
                "AnalyticsClient",
                "FeatureClipList",
                "ClipDataClient",
                "SunoModelClient",
                "HCaptchaClient",
                "EventBusClient",
                "BlendedCreateClient",
                "Adamantium",
                "FeatureAnnouncements",

                "PlayerClient",
                "StatsigClient",
                "AdamantiumClient",
                "BackendEnvironmentClient",

                .product(name: "ComposableArchitecture", package: "swift-composable-architecture"),
                .product(name: "OpenAPIRuntime", package: "swift-openapi-runtime"),
                .product(name: "Popovers", package: "Popovers"),
            ],
            resources: [
                .process("OrpheusChat/Resources/Artwork.xcassets"),
                .process("OrpheusChat/Resources/Shaders")
            ]
        ),
        .target(
            name: "FeatureHooksFeed",
            dependencies: [
                "FeatureHooksCreate",
                "APIClient",
                "FeatureClipDetail",
                "Utilities",
                "Localization",
                "FeatureHooksMoreMenu",
                "FeatureShareSheet",
                "NavigationRouterClient",
                "HooksPlayerClient",
                "FeatureOmniPlayer",
                "OmniPlayerClient",
                "FeatureComments",
                "FeatureCaptions",
                "FeatureProfile",
                "EventBusClient",
                "FeatureHooksModels",
                "FeatureToasts",

                "ComponentLibrary",
                "FeatureHooksPost",
                "CommentsClient",
                "PlayerUtilities",
                "LyricsClient",
                "SongActionsClient",
                "HookActionsClient",
                "StatsigClient",
                "AnalyticsClient",
                "DeeplinkIntents",
                .product(name: "ComposableArchitecture", package: "swift-composable-architecture"),
            ]
        ),
        .target(
            name: "FeatureHooksCreate",
            dependencies: [
                "APIClient",
                "Utilities",
                "Localization",
                "FeatureHooksSongPicker",
                "FeatureHooksCamera",
                "FeatureHooksPost",
                "FeatureToasts",
                "AnalyticsClient",
                "SnippetPlayerClient",
                "NavigationRouterClient",

                "FeatureVideoTrimmer",

                .product(name: "ComposableArchitecture", package: "swift-composable-architecture"),
            ]
        ),
        .target(
            name: "FeatureHookDownload",
            dependencies: [
                "APIClient",
                "ComponentLibrary",
                "ShareAssetClient",
                "Utilities",

                .product(name: "ComposableArchitecture", package: "swift-composable-architecture"),
            ]
        ),
        .target(
            name: "HooksPlayerClient",
            dependencies: [
                "APIClient",
                "AnalyticsClient",
                "Utilities",
                "Localization",
                "EventBusClient",
                "TabBarUtilities",
                "ComponentLibrary",
                "FeatureHooksModels",
                "FeatureToasts",

                .product(name: "ComposableArchitecture", package: "swift-composable-architecture"),
            ]
        ),
        .target(
            name: "FeatureHooksCamera",
            dependencies: [
                "APIClient",
                "ComponentLibrary",
                "Utilities",
                "Localization",
                "LyricsClient",
                "FeatureToasts",
                "FeatureHooksPost",
                "FeatureVideoTrimmer",
                "FeatureHookSnippetSelection",

                "FeatureHooksModels",
                "HooksPlayerClient",
                "SnippetPlayerClient",
                "StatsigClient",
                "Waveform",

                .product(name: "ComposableArchitecture", package: "swift-composable-architecture"),
            ]
        ),
        .target(
            name: "FeatureHooksSongPicker",
            dependencies: [
                "APIClient",
                "ComponentLibrary",
                "Utilities",
                "Localization",
                "FeatureToasts",
                "SnippetPlayerClient",
                "HooksPlayerClient",
                "FeatureHookSnippetSelection",
                "NavigationRouterClient",

                "EventBusClient",

                .product(name: "ComposableArchitecture", package: "swift-composable-architecture"),
            ]
        ),
        .target(
            name: "FeatureHooksPost",
            dependencies: [
                "APIClient",
                "ComponentLibrary",
                "Utilities",
                "Localization",
                "FeatureBrandedAlert",
                "SnippetPlayerClient",

                "EventBusClient",
                "FeatureToasts",

                .product(name: "ComposableArchitecture", package: "swift-composable-architecture"),
            ]
        ),
        .target(
            name: "FeatureHookSnippetSelection",
            dependencies: [
                "APIClient",
                "Utilities",
                "Localization",
                "SnippetPlayerClient",
                "ComponentLibrary",

                .product(name: "ComposableArchitecture", package: "swift-composable-architecture"),
            ]
        ),
        .target(
            name: "FeatureHooksGrid",
            dependencies: [
                "APIClient",
                "ComponentLibrary",
                "FeatureHooksCreate",
                "FeatureHooksMoreMenu",
                "Utilities",
                "Localization",
                "FeatureToasts",
                "NavigationRouterClient",

                "FeatureHooksModels",
                "EventBusClient",
                "TabBarUtilities",
                "AnalyticsClient",
                "HookActionsClient",

                .product(name: "ComposableArchitecture", package: "swift-composable-architecture"),
                .product(name: "Dependencies", package: "swift-dependencies"),
            ]
        ),
        .target(
            name: "FeatureMyHooks",
            dependencies: [
                "APIClient",
                "ComponentLibrary",
                "FeatureHooksGrid",
                "Utilities",
                "Localization",
                "FeatureHooksModels",

                "EventBusClient",
                "FeatureHooksPost",

                .product(name: "ComposableArchitecture", package: "swift-composable-architecture"),
            ]
        ),
        .target(
            name: "FeatureHooksModels",
            dependencies: [
                "APIClient",
                "Utilities",

                .product(name: "Sharing", package: "swift-sharing"),
            ]
        ),
        .target(
            name: "FeatureHooksMoreMenu",
            dependencies: [
                "APIClient",
                "ComponentLibrary",
                "Utilities",
                "Localization",
                "FeatureToasts",
                "EventBusClient",
                "FeatureHookDownload",
                "HookActionsClient",
                "NavigationRouterClient",
                "FeatureClipDetail",

                "SongActionsClient",
                "TabBarUtilities",
                "StatsigClient",
                "AnalyticsClient",

                .product(name: "ComposableArchitecture", package: "swift-composable-architecture"),
            ]
        ),
        .target(
            name: "SongActionsClient",
            dependencies: [
                "APIClient",
                "EventBusClient",
                "FeatureToasts",
                "Localization",
                "Utilities",
                "NavigationRouterClient",

                .product(name: "ComposableArchitecture", package: "swift-composable-architecture"),
            ]
        ),
        .target(
            name: "HookActionsClient",
            dependencies: [
                "APIClient",
                "EventBusClient",
                "FeatureToasts",
                "Localization",
                "HooksPlayerClient",

                "Utilities",

                .product(name: "ComposableArchitecture", package: "swift-composable-architecture"),
            ]
        ),
        .target(
            name: "FeatureMadlibsOnboarding",
            dependencies: [
                "APIClient",
                "ComponentLibrary",
                "FeatureMadlibsOnboardingModels",
                "FeatureOnboardingModels",
                "FeatureOnboardingScreens",
                "Localization",
                "UserConfigClient",
                "UserNotificationsClient",
                "Utilities",
                "OnboardingAnalyticsClient",

                .product(name: "ComposableArchitecture", package: "swift-composable-architecture"),
                .product(name: "Flow", package: "SwiftUI-Flow"),
                .product(name: "SwiftNavigation", package: "swift-navigation"),
            ]
        ),
        .target(
            name: "FeatureMadlibsOnboardingModels",
            dependencies: [
                "AnalyticsClient",
            ]
        ),
        .target(
            name: "FeatureManagePlaylist",
            dependencies: [
                "APIClient",
                "ComponentLibrary",
                "Utilities",
                "Localization",

                .product(name: "ComposableArchitecture", package: "swift-composable-architecture"),
            ]
        ),
        .target(
            name: "FeatureManageClip",
            dependencies: [
                "Utilities",
                "APIClient",
                "ComponentLibrary",
                "Localization",
                "AnalyticsClient",
                "EventBusClient",
                "FeatureBrandedAlert",
                "Errors",
                "StatsigClient",
                "FeatureEditSongArt",
                "FeatureToasts",
                "CommentsClient",
                "OmniPlayerClient",
                "SongActionsClient",

                .product(name: "GenAPI", package: "Generated"),
                .product(name: "ComposableArchitecture", package: "swift-composable-architecture"),
            ]
        ),
        .target(
            name: "FeatureDiscover",
            dependencies: [
                "APIClient",
                "ComponentLibrary",
                "Utilities",
                "FeatureDiscoverSectionDetail",
                "FeatureShare",
                "FeatureClipList",
                "FeaturePlaylistDetail",
                "Localization",
                "StatsigClient",
                "FeatureRemix",
                "FeatureSocial",
                "ContactsClient",
                "AnalyticsClient",
                "RequestState",
                "FeatureProfile",
                "NavigationRouterClient",
                "EventBusClient",
                "UserConfigClient",

                "DeeplinkIntents",
                "Errors",
                "SunoModelClient",
                "FeatureToasts",
                "FeatureManagePlaylist",
                "FeaturePlaylistRow",
                "FeatureRatingTracker",
                "Adamantium",

                .product(name: "ComposableArchitecture", package: "swift-composable-architecture"),
            ]
        ),
        .target(
            name: "FeatureDiscoverSectionDetail",
            dependencies: [
                "APIClient",
                "ComponentLibrary",
                "Utilities",
                "FeatureClipList",
                "Localization",
                "EventBusClient",
                "FeatureToasts",
                "StatsigClient",
                "NavigationRouterClient",

                .product(name: "ComposableArchitecture", package: "swift-composable-architecture"),
                .product(name: "IdentifiedCollections", package: "swift-identified-collections"),
            ]
        ),
        .target(
            name: "FeatureEditClip",
            dependencies: [
                "ComponentLibrary",
                "Utilities",
                "APIClient",
                "Localization",
                "SunoModelClient",
                "FeatureToasts",
                "FeaturePaywall",
                "StatsigClient",
                "PlayerClient",
                "FeatureClipDetail",
                "HCaptchaClient",
                "FeatureBanner",
                "EventBusClient",
                "FeatureBrandedAlert",
                "FeatureCreateClip",
                "FeatureAnnouncements",
                "SnippetPlayerClient",

                "AnalyticsClient",

                .product(name: "ComposableArchitecture", package: "swift-composable-architecture"),
                .product(name: "OpenAPIRuntime", package: "swift-openapi-runtime"),
            ]
        ),
        .target(
            name: "FeatureModals",
            dependencies: [
                "ComponentLibrary",
                "Utilities",
                "APIClient",
                "Localization",
                "EventBusClient",

                "AnalyticsClient",

                .product(name: "ComposableArchitecture", package: "swift-composable-architecture"),
                .product(name: "OpenAPIRuntime", package: "swift-openapi-runtime"),
            ]
        ),
        .target(
            name: "FeatureEditSongArt",
            dependencies: [
                "APIClient",
                "ComponentLibrary",
                "Utilities",
                "PlayerClient",
                "AnalyticsClient",
                "Localization",
                "FeatureVideoTrimmer",
                "OmniPlayerClient",
                "Errors",

                "EventBusClient",
                "CameraClient",
                "FeatureToasts",
                "PhotoLibraryClient",
                "StatsigClient",

                .product(name: "ComposableArchitecture", package: "swift-composable-architecture"),
            ]
        ),
        .target(
            name: "FeatureOnboardingScreens",
            dependencies: [
                "ComponentLibrary",
                "Localization",
                "APIClient",
                "FeatureOnboardingModels",

                .product(name: "ComposableArchitecture", package: "swift-composable-architecture"),
            ]
        ),
        .target(
            name: "FeatureOnboarding",
            dependencies: [
                "APIClient",
                "BackendEnvironmentClient",
                "ClerkClient",
                "Utilities",
                "ComponentLibrary",
                "AnalyticsClient",
                "StatsigClient",
                "Localization",
                "FeatureSocial",
                "FeatureOnboardingScreens",
                "UserNotificationsClient",
                "Adamantium",
                "FeatureMadlibsOnboarding",
                "InstanceIDClient",

                "FeatureOnboardingModels",
                "OnboardingAnalyticsClient",
                "AttributionAndDeeplinkingClient",
                "ContactsClient",
                "DeeplinkIntents",
                "AppSessionCountClient",

                .product(name: "ComposableArchitecture", package: "swift-composable-architecture"),
                .product(name: "Sharing", package: "swift-sharing"),
            ]
        ),
        .target(
            name: "OnboardingAnalyticsClient",
            dependencies: [
                "AnalyticsClient",
                "AttributionAndDeeplinkingClient",
                "FeatureOnboardingModels",
                "FeatureMadlibsOnboardingModels",
                "StatsigClient",

                .product(name: "Dependencies", package: "swift-dependencies"),
            ]
        ),
        .target(
            name: "FeatureOnboardingModels",
            dependencies: [
                "APIClient",
                "ComponentLibrary",
                "Localization",

                .product(name: "ComposableArchitecture", package: "swift-composable-architecture"),
            ]
        ),
        .target(
            name: "FeatureRemix",
            dependencies: [
                "APIClient",
                "ComponentLibrary",
                "FeatureClipList",
                "FeatureToasts",
                "Localization",
                "UserConfigClient",
                "Utilities",

                .product(name: "ComposableArchitecture", package: "swift-composable-architecture"),
            ]
        ),
        .target(
            name: "FeatureRoot",
            dependencies: [
                "FeatureCreateClip",
                "FeaturePlayer",
                "FeatureProfile",
                "ComponentLibrary",
                "DeeplinkIntents",
                "Utilities",
                "APIClient",
                "FeatureBrandedAlert",
                "FeatureCatalog",
                "FeatureDiscover",
                "FeatureSearch",
                "PlayerClient",
                "FeatureToasts",
                "FeatureBanner",
                "AnalyticsClient",
                "FeatureRatingTracker",
                "Localization",
                "FeatureClipDetail",
                "StatsigClient",
                "UserDefaultsClient",
                "FeatureSocial",
                "FeatureClipList",
                "NavigationRouterClient",
                "FeatureSettingsV2",
                "FeatureTopUp",
                "FeaturePaywall",
                "FeatureModals",
                "FeatureDiscoverSectionDetail",
                "EventBusClient",
                "FeatureEditClip",
                "InAppNotificationClient",
                "BlendedCreateClient",
                "ShareAssetClient",
                "FeatureRemix",
                "FeatureOmniPlayer",
                "FeatureHooksCreate",
                "FeatureHookDownload",
                "OmniPlayerClient",
                "FeatureHooksFeed",
                "FeatureHooksGrid",
                "FeatureMyHooks",
                "HooksPlayerClient",
                "TabBarUtilities",
                "ClipPollingClient",
                "SnippetPlayerClient",

                "SunoModelClient",
                "FeaturePlaylistDetail",
                "FeatureAnnouncements",
                "FeatureHooksMoreMenu",
                "FeatureShareSheet",
                "HookActionsClient",
                "SongActionsClient",

                .product(name: "ComposableArchitecture", package: "swift-composable-architecture"),
                .product(name: "NukeUI", package: "Nuke"),
            ]
        ),
        .target(
            name: "TabBarUtilities",
            dependencies: [
                "StatsigClient",
            ]
        ),
        .target(
            name: "FeaturePaywall",
            dependencies: [
                "APIClient",
                "BackendEnvironmentClient",
                "ComponentLibrary",
                "Utilities",
                "PaywallClient",
                "FeatureTopUp",
                "Localization",
                "StatsigClient",
                "NavigationRouterClient",
                "EventBusClient",
                "SunoModelClient",
                "FeatureBrandedAlert",
                "Adamantium",

                "FeatureToasts",
                "AnalyticsClient",

                .product(name: "ComposableArchitecture", package: "swift-composable-architecture"),
                .product(name: "OrderedCollections", package: "swift-collections"),
            ]
        ),
        .target(
            name: "FeaturePhotoPicker",
            dependencies: [
                "CameraClient",
                "PhotoLibraryClient",
                "ComponentLibrary",
                "Utilities",
                "Localization",

                .product(name: "ComposableArchitecture", package: "swift-composable-architecture"),
                .product(name: "Dependencies", package: "swift-dependencies"),
            ]
        ),
        .target(
            name: "FeatureComments",
            dependencies: [
                "APIClient",
                "Utilities",
                "ComponentLibrary",
                "AnalyticsClient",
                "Localization",
                "StatsigClient",
                "CommentsClient",
                "FeatureToasts",
                "FeatureBrandedAlert",
                "FeatureCaptions",
                "OmniPlayerClient",
                "PlayerClient",

                .product(name: "ComposableArchitecture", package: "swift-composable-architecture"),
            ]
        ),
        .target(
            name: "FeatureInAppNotifications",
            dependencies: [
                "APIClient",
                "Utilities",
                "ComponentLibrary",
                "Localization",
                "InAppNotificationClient",
                "StatsigClient",

                .product(name: "ComposableArchitecture", package: "swift-composable-architecture"),
            ]
        ),
        .target(
            name: "FeaturePlayer",
            dependencies: [
                "APIClient",
                "Utilities",
                "ComponentLibrary",
                "LyricsClient",
                "ClipLineageClient",
                "CommentsClient",
                "FeatureClipDetail",
                "FeatureCaptions",
                "PlayerClient",
                "FeatureShare",
                "FeatureShareSheet",
                "AnalyticsClient",
                "Localization",
                "StatsigClient",
                "FeatureToasts",
                "SunoModelClient",
                "HCaptchaClient",
                "EventBusClient",
                "FeatureComments",
                "NavigationRouterClient",

                "Adamantium",

                .product(name: "ComposableArchitecture", package: "swift-composable-architecture"),
                .product(name: "OpenAPIRuntime", package: "swift-openapi-runtime"),
            ]
        ),
        .target(
            name: "FeaturePlaylistDetail",
            dependencies: [
                "APIClient",
                "Utilities",
                "ComponentLibrary",
                "FeatureClipList",
                "FeatureToasts",
                "FeaturePlaylistMoreMenu",
                "FeaturePlayer",
                "NavigationRouterClient",
                "EventBusClient",

                "Localization",
                "FeatureManagePlaylist",
                "FeatureShare",
                "StatsigClient",
                "AnalyticsClient",

                .product(name: "ComposableArchitecture", package: "swift-composable-architecture"),
                .product(name: "Glur", package: "glur"),
            ]
        ),
        .target(
            name: "FeaturePlaylistMoreMenu",
            dependencies: [
                "APIClient",
                "ComponentLibrary",
                "Localization",

                .product(name: "ComposableArchitecture", package: "swift-composable-architecture"),
            ]
        ),
        .target(
            name: "FeatureProfile",
            dependencies: [
                "APIClient",
                "ComponentLibrary",
                "UserNotificationsClient",
                "Utilities",
                "FeatureToasts",
                "FeaturePlayer",
                "FeatureClipList",
                "FeatureShare",
                "Localization",
                "FeatureSocial",
                "ContactsClient",
                "FeaturePlaylistDetail",
                "PlayerClient",
                "FeatureSettingsV2",
                "NavigationRouterClient",
                "InAppNotificationClient",
                "FeatureInAppNotifications",
                "EventBusClient",
                "FeatureHooksModels",

                "StatsigClient",
                "Adamantium",
                "FeatureHooksGrid",
                "FeatureHooksMoreMenu",
                "AnalyticsClient",

                .product(name: "ComposableArchitecture", package: "swift-composable-architecture"),
                .product(name: "OrderedCollections", package: "swift-collections"),
            ]
        ),
        .target(
            name: "FeaturePlaylistRow",
            dependencies: [
                "APIClient",
                "Utilities",
                "ComponentLibrary",

                "Localization",
                "StatsigClient",

                .product(name: "ComposableArchitecture", package: "swift-composable-architecture"),
            ]
        ),
        .target(
            name: "LyricsClient",
            dependencies: [
                "APIClient",
                "Utilities",
                "Waveform",
                "ComponentLibrary",
                "StatsigClient",
                "Localization",

                .product(name: "ComposableArchitecture", package: "swift-composable-architecture"),
                .product(name: "AsyncAlgorithms", package: "swift-async-algorithms"),
            ]
        ),
        .target(
            name: "RageshakeClient",
            dependencies: [
                "BackendEnvironmentClient",
                "Utilities",

                .product(name: "Shake", package: "shake-ios"),
                .product(name: "ComposableArchitecture", package: "swift-composable-architecture"),
            ]
        ),
        .target(
            name: "FeatureClipList",
            dependencies: [
                "APIClient",
                "Utilities",
                "ComponentLibrary",
                "FeatureClipDetail",
                "Localization",
                "NavigationRouterClient",
                "EventBusClient",

                "AnalyticsClient",
                "ClipPollingClient",
                "FeatureToasts",
                "StatsigClient",
                "SunoModelClient",
                "CommentsClient",

                .product(name: "ComposableArchitecture", package: "swift-composable-architecture"),
            ]
        ),
        .target(
            name: "FeatureSearch",
            dependencies: [
                "APIClient",
                "ComponentLibrary",
                "Utilities",
                "FeatureClipList",
                "FeaturePlayer",
                "FeatureProfile",
                "FeaturePlaylistDetail",
                "Localization",
                "NavigationRouterClient",

                "FeatureToasts",
                "StatsigClient",

                .product(name: "ComposableArchitecture", package: "swift-composable-architecture"),
            ]
        ),
        .target(
            name: "FeatureSettingsV2",
            dependencies: [
                "APIClient",
                "BackendEnvironmentClient",
                "ClerkClient",
                "ComponentLibrary",
                "Utilities",
                "FeaturePhotoPicker",
                "FeaturePaywall",
                "AnalyticsClient",
                "Localization",
                "FeatureSocial",
                "StatsigClient",
                "FeatureBrandedAlert",
                "NavigationRouterClient",
                "EventBusClient",
                "UserEventBusClient",

                "FeatureToasts",
                "UserDefaultsClient",
                "SunoModelClient",

                .product(name: "ComposableArchitecture", package: "swift-composable-architecture"),
            ]
        ),
        .target(
            name: "FeatureShare",
            dependencies: [
                "Adamantium",
                "AdamantiumClient",
                "ComponentLibrary",
                "APIClient",
                "BackendEnvironmentClient",
                "AnalyticsClient",
                "DeeplinkIntents",
                "FeatureRatingTracker",
                "Localization",
                "FeatureToasts",
                "Utilities",

                "StatsigClient",

                .product(name: "TikTokOpenShareSDK", package: "tiktok-opensdk-ios"),
                .product(name: "ComposableArchitecture", package: "swift-composable-architecture"),
            ]
        ),
        .target(
            name: "FeatureShareAssetCreation",
            dependencies: [
                "APIClient",
                "ComponentLibrary",
                "Localization",
                "RequestState",
                "ShareAssetClient",
                "StatsigClient",
                "Utilities",
                "Waveform",
                "LyricsClient",
                "PlayerClient",
                "FeatureToasts",
                "OmniPlayerClient",

                "Errors",
                "Adamantium",

                .product(name: "ComposableArchitecture", package: "swift-composable-architecture"),
            ]
        ),
        .target(
            name: "FeatureShareSheet",
            dependencies: [
                "APIClient",
                "ComponentLibrary",
                "Errors",
                "FeatureHookDownload",
                "ShareAssetClient",
                "FeatureShareAssetCreation",
                "FeatureToasts",
                "Localization",
                "RequestState",
                "Utilities",
                "Waveform",
                "LyricsClient",
                "AnalyticsClient",

                .product(name: "ComposableArchitecture", package: "swift-composable-architecture"),
                .product(name: "Dependencies", package: "swift-dependencies"),
                .product(name: "Sharing", package: "swift-sharing"),
            ]
        ),
        .target(
            name: "FeatureToasts",
            dependencies: [
                "ComponentLibrary",
                "Localization",
                "Utilities",

                .product(name: "ComposableArchitecture", package: "swift-composable-architecture"),
                .product(name: "AsyncAlgorithms", package: "swift-async-algorithms"),
            ]
        ),
        .target(
            name: "FeatureTopUp",
            dependencies: [
                "ComponentLibrary",
                "Utilities",
                "PaywallClient",
                "FeatureToasts",
                "APIClient",

                "Localization",

                .product(name: "ComposableArchitecture", package: "swift-composable-architecture"),
            ]
        ),
        .target(
            name: "FeatureBanner",
            dependencies: [
                "Adamantium",
                "ComponentLibrary",
                "ShareAssetClient",
                "APIClient",
                "StatsigClient",

                .product(name: "ComposableArchitecture", package: "swift-composable-architecture"),
            ]
        ),
        .target(
            name: "FeatureRatingTracker",
            dependencies: [
                "ComponentLibrary",
                "Utilities",
                "Localization",
                "AnalyticsClient",

                .product(name: "ComposableArchitecture", package: "swift-composable-architecture"),
            ]
        ),
        .target(
            name: "FeatureVideoTrimmer",
            dependencies: [
                "ComponentLibrary",
                "Localization",
                "AnalyticsClient",

                "Utilities",
                "FeatureHooksModels",

                .product(name: "ComposableArchitecture", package: "swift-composable-architecture"),
            ]
        ),
        .target(
            name: "FirebaseClient",
            dependencies: [
                "InstanceIDClient",
                "Utilities",

                .product(name: "ComposableArchitecture", package: "swift-composable-architecture"),
                .product(name: "FirebaseCore", package: "firebase-ios-sdk"),
                .product(name: "FirebaseAnalytics", package: "firebase-ios-sdk"),
                .product(name: "FirebaseCrashlytics", package: "firebase-ios-sdk"),
                .product(name: "FirebasePerformance", package: "firebase-ios-sdk"),
            ]
        ),
        .target(
            name: "FirebaseAppDistributionClient",
            dependencies: [
                "Utilities",

                .product(name: "ComposableArchitecture", package: "swift-composable-architecture"),
                .product(name: "FirebaseAppDistribution-Beta", package: "firebase-ios-sdk"),
            ]
        ),
        .target(
            name: "HapticsClient",
            dependencies: [
                "StatsigClient",
                "Utilities",

                .product(name: "ComposableArchitecture", package: "swift-composable-architecture"),
                .product(name: "Sharing", package: "swift-sharing"),
            ]
        ),
        .target(
            name: "HCaptchaClient",
            dependencies: [
                "BackendEnvironmentClient",
                "Utilities",

                .product(name: "HCaptcha", package: "HCaptcha-ios-sdk"),
                .product(name: "ComposableArchitecture", package: "swift-composable-architecture"),
            ]
        ),
        .target(
            name: "Localization",
            dependencies: [],
            exclude: [
                "SwiftGen",
            ],
            resources: [
                .process("Resources"),
            ]
        ),
        .target(
            name: "NavigationRouterClient",
            dependencies: [
                "APIClient",
                "StatsigClient",
                "ComponentLibrary",
                "FeatureHooksModels",

                "Utilities",

                .product(name: "ComposableArchitecture", package: "swift-composable-architecture"),
                .product(name: "AsyncAlgorithms", package: "swift-async-algorithms"),
            ]
        ),
        .target(
            name: "InAppNotificationClient",
            dependencies: [
                "APIClient",
                "Utilities",
                "StatsigClient",
                "Localization",

                .product(name: "ComposableArchitecture", package: "swift-composable-architecture"),
                .product(name: "OrderedCollections", package: "swift-collections"),
            ]
        ),
        .target(
            name: "InstanceIDClient",
            dependencies: [
                "KeychainClient",
                "Utilities",

                .product(name: "Dependencies", package: "swift-dependencies"),
            ]
        ),
        .target(
            name: "KeychainClient",
            dependencies: [
                .product(name: "SimpleKeychain", package: "SimpleKeychain"),
                .product(name: "Dependencies", package: "swift-dependencies"),
            ]
        ),
        .target(
            name: "PaywallClient",
            dependencies: [
                "Utilities",
                "APIClient",
                "BackendEnvironmentClient",
                "InstanceIDClient",

                .product(name: "ComposableArchitecture", package: "swift-composable-architecture"),
                .product(name: "RevenueCat", package: "purchases-ios-spm"),
            ]
        ),
        .target(
            name: "PhotoLibraryClient",
            dependencies: [
                .product(name: "Dependencies", package: "swift-dependencies"),
            ]
        ),
        .target(
            name: "PlayerClient",
            dependencies: [
                .product(name: "ComposableArchitecture", package: "swift-composable-architecture"),
            ]
        ),
        .target(
            name: "RemoteNotificationsClient",
            dependencies: [
                .product(name: "Dependencies", package: "swift-dependencies"),
            ]
        ),
        .target(
            name: "RequestState",
            dependencies: [
                "Errors",
            ]
        ),
        .target(
            name: "ShareAssetClient",
            dependencies: [
                "APIClient",
                "BackendEnvironmentClient",
                "Utilities",
                "AnalyticsClient",

                "Localization",
                "ComponentLibrary",
                "StatsigClient",

                .product(name: "ComposableArchitecture", package: "swift-composable-architecture"),
                .product(name: "AsyncAlgorithms", package: "swift-async-algorithms"),
                .product(name: "TikTokOpenShareSDK", package: "tiktok-opensdk-ios"),
            ]
        ),
        .target(
            name: "AppStartUpClient",
            dependencies: [
                "AdamantiumClient",
                "AttributionAndDeeplinkingClient",
                "BrazeClient",
                "ClerkClient",
                "DebugFeatureClient",
                "FirebaseClient",
                "PaywallClient",
                "ShareAssetClient",
                "StatsigClient",

                .product(name: "Dependencies", package: "swift-dependencies"),
                .product(name: "ConcurrencyExtras", package: "swift-concurrency-extras"),
            ]
        ),
        .target(
            name: "StatsigClient",
            dependencies: [
                "BackendEnvironmentClient",
                "InstanceIDClient",
                "Utilities",

                .product(name: "ComposableArchitecture", package: "swift-composable-architecture"),
                .product(name: "Statsig", package: "ios-sdk"),
                .product(name: "RealFlags", package: "RealFlags"),
            ]
        ),
        .target(
            name: "UserNotificationsClient",
            dependencies: [
                "Utilities",

                .product(name: "ComposableArchitecture", package: "swift-composable-architecture"),
                .product(name: "Dependencies", package: "swift-dependencies"),
                .product(name: "XCTestDynamicOverlay", package: "xctest-dynamic-overlay"),
            ]
        ),
        .target(
            name: "UserDefaultsClient",
            dependencies: [
                .product(name: "Dependencies", package: "swift-dependencies"),
                .product(name: "DependenciesMacros", package: "swift-dependencies"),
            ]
        ),
        .target(
            name: "SunoModelClient",
            dependencies: [
                "UserDefaultsClient",
                "Utilities",
                "StatsigClient",

                .product(name: "ComposableArchitecture", package: "swift-composable-architecture"),
                .product(name: "GenAPI", package: "Generated"),
            ]
        ),
        .target(
            name: "UserConfigClient",
            dependencies: [
                "APIClient",
                "Errors",
                "RequestState",
                "Utilities",

                .product(name: "Dependencies", package: "swift-dependencies"),
                .product(name: "Sharing", package: "swift-sharing"),
            ]
        ),
        .target(
            name: "UserEventBusClient",
            dependencies: [
                .product(name: "ComposableArchitecture", package: "swift-composable-architecture"),
            ]
        ),
        .target(
            name: "Utilities",
            dependencies: [
                .product(name: "ComposableArchitecture", package: "swift-composable-architecture"),
                .product(name: "AsyncAlgorithms", package: "swift-async-algorithms"),
                .product(name: "Nuke", package: "Nuke"),
                .product(name: "Collections", package: "swift-collections"),
                .product(name: "Dependencies", package: "swift-dependencies"),
                .product(name: "ConcurrencyExtras", package: "swift-concurrency-extras"),
                .product(name: "Perception", package: "swift-perception"),
                .product(name: "NukeUI", package: "Nuke"),
            ]
        ),
        .target(
            name: "UserSessionTransitionClient",
            dependencies: [
                "AnalyticsClient",
                "APIClient",
                "AppSessionCountClient",
                "AttributionAndDeeplinkingClient",
                "BrazeClient",
                "DebugFeatureClient",
                "FirebaseClient",
                "InAppNotificationClient",
                "PaywallClient",
                "StatsigClient",
                "SunoModelClient",
                "Utilities",

                "ClerkClient",

                .product(name: "ComposableArchitecture", package: "swift-composable-architecture"),
            ]
        ),
        .target(
            name: "Waveform",
            dependencies: [
                .product(name: "Collections", package: "swift-collections"),
            ]
        ),
        .target(
            name: "FeatureOmniPlayer",
            dependencies: [
                "APIClient",
                "Utilities",
                "ComponentLibrary",
                "CommentsClient",
                "FeatureClipDetail",
                "FeatureCaptions",
                "FeatureShare",
                "FeatureShareSheet",
                "AnalyticsClient",
                "Localization",
                "StatsigClient",
                "FeatureToasts",
                "EventBusClient",
                "FeatureComments",
                "NavigationRouterClient",
                "OmniPlayerClient",

                "PlayerClient",
                "LyricsClient",
                "PlayerUtilities",
                "Adamantium",

                .product(name: "ComposableArchitecture", package: "swift-composable-architecture"),
                .product(name: "Algorithms", package: "swift-algorithms"),
                .product(name: "OpenAPIRuntime", package: "swift-openapi-runtime"),
            ]
        ),
        .target(
            name: "OmniPlayerClient",
            dependencies: [
                "APIClient",
                "ComponentLibrary",
                "EventBusClient",
                "MusicPlayerClient",
                "PlayerUtilities", // for PlayerEngine
                "Utilities", // for RemoteImagePrefetcher
                "LyricsClient",
                "AnalyticsClient",
                "BlendedCreateClient",
                "Localization",
                "ClipPollingClient",
                "StatsigClient",

                .product(name: "ComposableArchitecture", package: "swift-composable-architecture"),
                .product(name: "AsyncAlgorithms", package: "swift-async-algorithms"),
                .product(name: "OpenAPIRuntime", package: "swift-openapi-runtime"),
            ]
        ),
        // Generic wrapper over any client that can play music on Suno.
        // The underlying client can use AVPlayer, AudioKit, etc. as long
        // as it conforms to the PlayerEngine protocol, found in PlayerUtilities.
        // Currently, we only use AVPlayer via AVPlayerClient.
        .target(
            name: "MusicPlayerClient",
            dependencies: [
                "AVPlayerClient",
                "PlayerUtilities",

                .product(name: "ComposableArchitecture", package: "swift-composable-architecture"),
            ]
        ),
        .target(
            name: "AVPlayerClient",
            dependencies: [
                "Utilities",
                "PlayerUtilities",

                .product(name: "ComposableArchitecture", package: "swift-composable-architecture"),
            ]
        ),
        .target(
            name: "PlayerUtilities",
            dependencies: [
                // !!---- DO NOT ADD ANY DEPENDENCIES TO THIS MODULE ----!!
            ]
        ),
        .target(
            name: "SnippetPlayerClient",
            dependencies: [
                "PlayerUtilities",
                "MusicPlayerClient",
                "FeatureHooksModels",
                "BlendedCreateClient",
                "EventBusClient",
                "Utilities",
                "Localization",
                "APIClient",

                .product(name: "ComposableArchitecture", package: "swift-composable-architecture"),
                .product(name: "AsyncAlgorithms", package: "swift-async-algorithms"),
                .product(name: "OpenAPIRuntime", package: "swift-openapi-runtime"),
            ]
        ),
        // Tests
        .testTarget(
            name: "ComponentLibraryTests",
            dependencies: [
            ],
            exclude: [
                "Foundations/__Snapshots__",
                "Components/__Snapshots__",
            ]
        ),
        .testTarget(
            name: "ErrorTests",
            dependencies: [
                "Errors",
            ]
        ),
        .testTarget(
            name: "FeatureAppTests",
            dependencies: [
                "FeatureApp",
                "AnalyticsClient",
                "APIClient",
                "AppSessionCountClient",
                "Utilities",
                "BrazeClient",
                "ClerkClient",
                "FeatureOnboarding",
                "FeatureRoot",
                "Localization",
                "PaywallClient",
                "RageshakeClient",
                "UserNotificationsClient",
                "UserSessionTransitionClient",

                .product(name: "ComposableArchitecture", package: "swift-composable-architecture"),
            ]
        ),
        .testTarget(
            name: "HapticsClientTests",
            dependencies: [
                "ComponentLibrary",
                "HapticsClient",
                "Utilities",

                .product(name: "ComposableArchitecture", package: "swift-composable-architecture"),
                .product(name: "Sharing", package: "swift-sharing"),
            ]
        ),
        .testTarget(
            name: "InstanceIDClientTests",
            dependencies: [
                "InstanceIDClient",
                "KeychainClient",

                .product(name: "Dependencies", package: "swift-dependencies"),
            ]
        ),
        .testTarget(
            name: "AppStartUpClientTests",
            dependencies: [
                "AppStartUpClient",
                "FirebaseClient",

                .product(name: "ConcurrencyExtras", package: "swift-concurrency-extras"),
            ]
        ),
        .testTarget(
            name: "UserSessionTransitionClientTests",
            dependencies: [
                "UserSessionTransitionClient",
                "APIClient",
                "SunoModelClient",
                "AnalyticsClient",
                "AttributionAndDeeplinkingClient",
                "BrazeClient",
                "FirebaseClient",
                "InAppNotificationClient",
                "PaywallClient",
                "RageshakeClient",
                "StatsigClient",
                "AppSessionCountClient",
                "ClerkClient",
                "DebugFeatureClient",

                .product(name: "ComposableArchitecture", package: "swift-composable-architecture"),
                .product(name: "Dependencies", package: "swift-dependencies"),
            ]
        ),
        .testTarget(
            name: "StatsigClientTests",
            dependencies: [
                "StatsigClient",
                "FeatureInAppNotifications",
            ]
        ),
        .testTarget(
            name: "FeatureHookDownloadTests",
            dependencies: [
                "FeatureHookDownload",
                "APIClient",
                .product(name: "GenAPI", package: "Generated"),
                .product(name: "ComposableArchitecture", package: "swift-composable-architecture"),
                .product(name: "Dependencies", package: "swift-dependencies"),
            ]
        ),
    ]
)
