// swift-tools-version: 6.3 // The swift-tools-version declares the minimum version of Swift required to build this package. import PackageDescription let package = Package( name: "RWPureSwift", platforms: [.iOS(.v26), .macCatalyst(.v26), .macOS(.v26)], products: [ .library(name: "AppModel", targets: ["AppModel"]), .library(name: "AppNavigation", targets: ["AppNavigation"]), .library(name: "AppTypes", targets: ["AppTypes"]), .library(name: "CalendarAsync", targets: ["CalendarAsync"]), .library(name: "Dashboard", targets: ["Dashboard"]), .library(name: "Dao", targets: ["Dao"]), .library(name: "EditSettingsNew_BusSettings", targets: ["EditSettingsNew_BusSettings"]), .library(name: "EditSettingsNew_Reminders", targets: ["EditSettingsNew_Reminders"]), .library(name: "EditSettingsNew_TopLevel", targets: ["EditSettingsNew_TopLevel"]), .library(name: "EditSettingsNew_Trackees", targets: ["EditSettingsNew_Trackees"]), .library(name: "HomeKitAsync", targets: ["HomeKitAsync"]), .library(name: "PhotoKitAsync", targets: ["PhotoKitAsync"]), .library(name: "ScreenControl", targets: ["ScreenControl"]), .library(name: "ScreenOffMonitor", targets: ["ScreenOffMonitor"]), .library(name: "Slideshow", targets: ["Slideshow"]), .library(name: "TagScanLoader", targets: ["TagScanLoader"]), .library(name: "TagScanner", targets: ["TagScanner"]), .library(name: "TrafficAPI", targets: ["TrafficAPI"]), .library(name: "TransitAPI", targets: ["TransitAPI"]), .library(name: "Utility", targets: ["Utility"]), ], dependencies: [ .package(url: "https://github.com/pointfreeco/sqlite-data", from: "1.6.1", traits: ["SQLiteDataTagged"]), .package(url: "https://github.com/pointfreeco/swift-structured-queries", from: "0.31.1", traits: ["StructuredQueriesTagged"]), .package( url: "https://github.com/pointfreeco/swift-composable-architecture", from: "1.25.5", traits: [ "ComposableArchitecture2Deprecations", "ComposableArchitecture2DeprecationOverloads" ] ), .package(url: "https://github.com/ph1ps/swift-concurrency-deadline.git", from: "1.0.0"), .package(url: "https://github.com/pointfreeco/swift-dependencies", from: "1.12.0"), .package(url: "https://github.com/pointfreeco/swift-tagged", from: "0.10.0") ], targets: [ .target(name: "AppModel"), .target(name: "AppNavigation", dependencies: [ .product(name: "ComposableArchitecture", package: "swift-composable-architecture"), .target(name: "Dashboard"), .target(name: "EditSettingsNew_TopLevel"), .target(name: "ScreenOffMonitor"), ]), .testTarget(name: "AppNavigationTests", dependencies: [ "AppNavigation", .product(name: "DependenciesTestSupport", package: "swift-dependencies"), ]), .target(name: "AppTypes", dependencies: [ .product(name: "SQLiteData", package: "sqlite-data"), .product(name:"Tagged", package: "swift-tagged"), ]), .testTarget(name: "AppTypesTests", dependencies: [ .target(name: "AppTypes"), ]), .target(name: "CalendarAsync", dependencies: [ .product( name: "Dependencies", package: "swift-dependencies" ), .product(name: "DependenciesMacros", package: "swift-dependencies"), .target(name: "AppTypes"), ]), .target(name: "Dashboard", dependencies: [ .product(name: "ComposableArchitecture", package: "swift-composable-architecture"), .product(name: "DependenciesMacros", package: "swift-dependencies"), .target(name: "AppTypes"), .target(name: "CalendarAsync"), .target(name: "Dao"), .target(name: "HomeKitAsync"), .target(name: "Slideshow"), .target(name: "TagScanLoader"), .target(name: "TrafficAPI"), .target(name: "TransitAPI"), .target(name: "Utility"), ]), .testTarget(name: "DashboardTests", dependencies: [ "Dashboard", .product(name: "DependenciesTestSupport", package: "swift-dependencies"), ]), .target(name: "Dao", dependencies: [ .product( name: "Dependencies", package: "swift-dependencies" ), .product(name: "SQLiteData", package: "sqlite-data"), .target(name: "AppTypes"), ]), .testTarget(name: "DaoTests", dependencies: ["Dao", .product(name: "DependenciesTestSupport", package: "swift-dependencies")]), .target(name: "EditSettingsNew_BusSettings", dependencies: [ .product(name: "ComposableArchitecture", package: "swift-composable-architecture"), .product(name: "Dependencies", package: "swift-dependencies"), .target(name: "AppTypes"), .target(name: "Dao"), .target(name: "TrafficAPI"), .target(name: "TransitAPI"), ], path: "Sources/EditSettingsNew/BusSettings"), .testTarget(name: "EditSettingsNew_BusSettingsTests", dependencies: [ "EditSettingsNew_BusSettings", .product(name: "DependenciesTestSupport", package: "swift-dependencies") ], path: "Tests/EditSettingsNewTests/BusSettings"), .target(name: "EditSettingsNew_Reminders",dependencies: [ .product(name: "ComposableArchitecture", package: "swift-composable-architecture"), .product( name: "Dependencies", package: "swift-dependencies" ), .target(name: "Dao"), .target(name: "TagScanner") ], path: "Sources/EditSettingsNew/Reminders"), .testTarget(name: "EditSettingsNew_RemindersTests", dependencies: [ "EditSettingsNew_Reminders", .product(name: "DependenciesTestSupport", package: "swift-dependencies") ], path: "Tests/EditSettingsNewTests/Reminders"), .target(name: "EditSettingsNew_TopLevel",dependencies: [ .product(name: "ComposableArchitecture", package: "swift-composable-architecture"), .product( name: "Dependencies", package: "swift-dependencies" ), .target(name: "CalendarAsync"), .target(name: "Dao"), .target(name: "EditSettingsNew_BusSettings"), .target(name: "EditSettingsNew_Trackees"), .target(name: "HomeKitAsync"), .target(name: "PhotoKitAsync"), .target(name: "ScreenControl"), ], path: "Sources/EditSettingsNew/TopLevel"), .testTarget(name: "EditSettingsNew_TopLevelTests", dependencies: [ "EditSettingsNew_TopLevel", .product(name: "DependenciesTestSupport", package: "swift-dependencies") ], path: "Tests/EditSettingsNewTests/TopLevel"), .target(name: "EditSettingsNew_Trackees",dependencies: [ .product(name: "ComposableArchitecture", package: "swift-composable-architecture"), .product( name: "Dependencies", package: "swift-dependencies" ), .target(name: "Dao"), .target(name: "EditSettingsNew_Reminders") ], path: "Sources/EditSettingsNew/Trackees"), .testTarget(name: "EditSettingsNew_TrackeesTests", dependencies: [ "EditSettingsNew_Trackees", .product(name: "DependenciesTestSupport", package: "swift-dependencies") ], path: "Tests/EditSettingsNewTests/Trackees"), .target(name: "HomeKitAsync", dependencies: [ .product( name: "Dependencies", package: "swift-dependencies" ), .product(name: "DependenciesMacros", package: "swift-dependencies"), ]), .testTarget(name: "HomeKitAsyncTests", dependencies: [ "HomeKitAsync", .product(name: "DependenciesTestSupport", package: "swift-dependencies"), ]), .target(name: "PhotoKitAsync", dependencies: [ .product( name: "Dependencies", package: "swift-dependencies" ), .product(name: "DependenciesMacros", package: "swift-dependencies"), .product(name:"Tagged", package: "swift-tagged"), .target(name: "AppTypes"), .target(name: "Dao"), ]), .testTarget(name: "PhotoKitAsyncTests", dependencies: ["PhotoKitAsync", .product(name: "DependenciesTestSupport", package: "swift-dependencies")]), .target(name: "ScreenControl", dependencies: [ .product(name: "Dependencies", package: "swift-dependencies"), .product(name: "DependenciesMacros", package: "swift-dependencies"), ]), .testTarget(name: "ScreenControlTests", dependencies: [ "ScreenControl", .product(name: "DependenciesTestSupport", package: "swift-dependencies"), ]), .target(name: "ScreenOffMonitor", dependencies: [ .product(name: "ComposableArchitecture", package: "swift-composable-architecture"), .product(name: "Dependencies", package: "swift-dependencies"), .target(name: "AppTypes"), .target(name: "Dao"), .target(name: "ScreenControl"), ]), .testTarget(name: "ScreenOffMonitorTests", dependencies: [ "ScreenOffMonitor", .product(name: "DependenciesTestSupport", package: "swift-dependencies"), ]), .target(name: "Slideshow", dependencies: [ .product(name: "ComposableArchitecture", package: "swift-composable-architecture"), .target(name: "AppTypes"), .target(name: "PhotoKitAsync"), ], resources: [.process("Widget/Resources/PreviewAssets.xcassets")]), .testTarget(name: "SlideshowTests", dependencies: [ "Slideshow", .product(name: "DependenciesTestSupport", package: "swift-dependencies"), ]), .target(name: "TagScanLoader", dependencies: [ .product(name: "ComposableArchitecture", package: "swift-composable-architecture"), .product(name: "StructuredQueries", package: "swift-structured-queries"), .target(name: "AppTypes"), .target(name: "Dao"), .target(name: "TagScanner"), ], resources: [.process("Resources")]), .testTarget(name: "TagScanLoaderTests", dependencies: [ "TagScanLoader", .product(name: "DependenciesTestSupport", package: "swift-dependencies"), ]), .target(name: "TagScanner", dependencies: [ .target(name: "AppTypes"), .product(name: "ComposableArchitecture", package: "swift-composable-architecture"), .product(name: "Deadline", package: "swift-concurrency-deadline"), .product( name: "Dependencies", package: "swift-dependencies" ), .product(name: "DependenciesMacros", package: "swift-dependencies"), ]), .testTarget(name: "TagScannerTests", dependencies: [ "TagScanner", .product(name: "DependenciesTestSupport", package: "swift-dependencies"), ]), .target(name: "TrafficAPI", dependencies: [ .product(name: "Dependencies", package: "swift-dependencies"), .product(name: "DependenciesMacros", package: "swift-dependencies"), ]), .testTarget(name: "TrafficAPITests", dependencies: [ "TrafficAPI", .product(name: "DependenciesTestSupport", package: "swift-dependencies"), ]), .target(name: "TransitAPI", dependencies: [ .product(name: "Dependencies", package: "swift-dependencies"), .product(name: "DependenciesMacros", package: "swift-dependencies"), .target(name: "AppTypes"), ]), .testTarget(name: "TransitAPITests", dependencies: [ "TransitAPI", .product(name: "DependenciesTestSupport", package: "swift-dependencies"), ], resources: [.process("Fixtures")]), .target(name: "Utility"), ] )