Files
MagnumOpus/Packages/MagnumOpusCore/Package.swift
Felix Förtsch a4f0761f25 add v0.4 models, schema, query extensions for GTD tasks, labels, deferrals
New model types: TaskStatus, TaskSummary, LabelInfo, ItemSummary.
GRDB records: TaskRecord, LabelRecord, ItemLabelRecord, DeferralRecord.
Database migrations v3_task, v3_label, v3_deferral with indexes.
MailStore query extensions for labels, item-labels, deferrals, task cache.
TaskStore module wrapping MailStore. Tests for all v3 tables and records.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-14 10:31:00 +01:00

75 lines
2.1 KiB
Swift

// swift-tools-version: 6.0
import PackageDescription
let package = Package(
name: "MagnumOpusCore",
// macOS 15+ / iOS 18+ required for Swift 6 strict concurrency + latest SwiftUI APIs
platforms: [
.macOS(.v15),
.iOS(.v18),
],
products: [
.library(name: "Models", targets: ["Models"]),
.library(name: "MailStore", targets: ["MailStore"]),
.library(name: "TaskStore", targets: ["TaskStore"]),
.library(name: "IMAPClient", targets: ["IMAPClient"]),
.library(name: "SMTPClient", targets: ["SMTPClient"]),
.library(name: "SyncEngine", targets: ["SyncEngine"]),
],
dependencies: [
.package(url: "https://github.com/apple/swift-nio.git", from: "2.65.0"),
.package(url: "https://github.com/apple/swift-nio-imap.git", from: "0.1.0"),
.package(url: "https://github.com/apple/swift-nio-ssl.git", from: "2.27.0"),
.package(url: "https://github.com/groue/GRDB.swift.git", from: "7.0.0"),
],
targets: [
.target(name: "Models"),
.target(
name: "MailStore",
dependencies: [
"Models",
.product(name: "GRDB", package: "GRDB.swift"),
]
),
.target(
name: "IMAPClient",
dependencies: [
"Models",
.product(name: "NIOIMAP", package: "swift-nio-imap"),
.product(name: "NIOSSL", package: "swift-nio-ssl"),
]
),
.target(
name: "SMTPClient",
dependencies: [
"Models",
.product(name: "NIO", package: "swift-nio"),
.product(name: "NIOSSL", package: "swift-nio-ssl"),
]
),
.target(
name: "TaskStore",
dependencies: [
"Models",
"MailStore",
.product(name: "GRDB", package: "GRDB.swift"),
]
),
.target(
name: "SyncEngine",
dependencies: ["Models", "IMAPClient", "SMTPClient", "MailStore", "TaskStore"]
),
.testTarget(name: "ModelsTests", dependencies: ["Models"]),
.testTarget(name: "MailStoreTests", dependencies: ["MailStore"]),
.testTarget(
name: "IMAPClientTests",
dependencies: [
"IMAPClient",
]
),
.testTarget(name: "SMTPClientTests", dependencies: ["SMTPClient", "Models"]),
.testTarget(name: "TaskStoreTests", dependencies: ["TaskStore", "MailStore"]),
.testTarget(name: "SyncEngineTests", dependencies: ["SyncEngine", "IMAPClient", "MailStore"]),
]
)