// swift-tools-version:6.0 import PackageDescription let package = Package( name: "swift-hvac-toolbox", platforms: [ .macOS(.v14) ], products: [ .executable(name: "App", targets: ["App"]), .library(name: "ApiController", targets: ["ApiController"]), .library(name: "ApiControllerLive", targets: ["ApiControllerLive"]), .library(name: "Routes", targets: ["Routes"]), .library(name: "ViewController", targets: ["ViewController"]), .library(name: "ViewControllerLive", targets: ["ViewControllerLive"]) ], dependencies: [ // 💧 A server-side Swift web framework. .package(url: "https://github.com/vapor/vapor.git", from: "4.110.1"), // 🔵 Non-blocking, event-driven networking for Swift. Used for custom executors .package(url: "https://github.com/apple/swift-nio.git", from: "2.65.0"), .package(url: "https://github.com/pointfreeco/swift-dependencies.git", from: "1.6.3"), .package(url: "https://github.com/sliemeobn/elementary.git", from: "0.3.2"), .package(url: "https://github.com/sliemeobn/elementary-htmx.git", from: "0.4.0"), .package(url: "https://github.com/vapor-community/vapor-elementary.git", from: "0.1.0"), .package(url: "https://github.com/pointfreeco/swift-url-routing.git", from: "0.6.2"), .package(url: "https://github.com/pointfreeco/vapor-routing.git", from: "0.1.3"), .package(url: "https://github.com/pointfreeco/swift-snapshot-testing.git", from: "1.17.7"), .package(url: "https://github.com/pointfreeco/swift-case-paths.git", from: "1.6.0"), .package(url: "https://github.com/swift-psychrometrics/swift-psychrometrics.git", from: "0.2.4") ], targets: [ .executableTarget( name: "App", dependencies: [ "ViewControllerLive", "ApiControllerLive", .product(name: "Vapor", package: "vapor"), .product(name: "NIOCore", package: "swift-nio"), .product(name: "NIOPosix", package: "swift-nio"), .product(name: "VaporRouting", package: "vapor-routing"), .product(name: "VaporElementary", package: "vapor-elementary"), .product(name: "PsychrometricClientLive", package: "swift-psychrometrics") ], swiftSettings: swiftSettings ), .testTarget( name: "AppTests", dependencies: [ .target(name: "App"), .product(name: "VaporTesting", package: "vapor") ], swiftSettings: swiftSettings ), .target( name: "ApiController", dependencies: [ "Routes", .product(name: "DependenciesMacros", package: "swift-dependencies") ], swiftSettings: swiftSettings ), .target( name: "ApiControllerLive", dependencies: [ "ApiController" ], swiftSettings: swiftSettings ), .target( name: "Routes", dependencies: [ .product(name: "CasePaths", package: "swift-case-paths"), .product(name: "Dependencies", package: "swift-dependencies"), .product(name: "PsychrometricClient", package: "swift-psychrometrics"), .product(name: "URLRouting", package: "swift-url-routing") ], swiftSettings: swiftSettings ), .target( name: "ViewController", dependencies: [ "Routes", .product(name: "DependenciesMacros", package: "swift-dependencies"), .product(name: "Elementary", package: "elementary") ], swiftSettings: swiftSettings ), .target( name: "ViewControllerLive", dependencies: [ "ViewController" ], swiftSettings: swiftSettings ) ], swiftLanguageModes: [.v5] ) var swiftSettings: [SwiftSetting] { [ .enableUpcomingFeature("DisableOutwardActorInference"), .enableExperimentalFeature("StrictConcurrency=complete"), .enableUpcomingFeature("ExistentialAny"), .enableUpcomingFeature("ConciseMagicFile"), .enableUpcomingFeature("ForwardTrailingClosures") ] }