ManaCore + ManaTokens als Swift-Package für alle nativen mana-e.V.-Apps. Phase α aus mana/docs/MANA_SWIFT.md durch. ManaCore: - AuthClient gegen mana-auth (Login, Refresh, Status-Maschine) - AuthenticatedTransport (URLSession + 401-Retry) - ManaAppConfig-Protocol für App-injizierbare Konfig - KeychainStore mit optionaler Shared-Access-Group - JWT-Parser für lokale Expiry-Prüfung - AuthError, CoreLog (interne OSLog-Logger) ManaTokens: - 12 Vereins-Tokens als dynamic Light/Dark Colors - 5 Brand-Literale (mana-yellow, spectrum-orange, ...) - Spacing, Radius, Typography aus mana/docs/THEMING.md Tests: 12 Unit-Tests grün via swift test. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
41 lines
1.1 KiB
Swift
41 lines
1.1 KiB
Swift
// swift-tools-version: 6.0
|
|
import PackageDescription
|
|
|
|
let package = Package(
|
|
name: "mana-swift-core",
|
|
defaultLocalization: "de",
|
|
platforms: [
|
|
.iOS(.v18),
|
|
.macOS(.v15),
|
|
],
|
|
products: [
|
|
.library(name: "ManaCore", targets: ["ManaCore"]),
|
|
.library(name: "ManaTokens", targets: ["ManaTokens"]),
|
|
],
|
|
targets: [
|
|
.target(
|
|
name: "ManaCore",
|
|
path: "Sources/ManaCore",
|
|
swiftSettings: [
|
|
.enableExperimentalFeature("StrictConcurrency"),
|
|
]
|
|
),
|
|
.target(
|
|
name: "ManaTokens",
|
|
path: "Sources/ManaTokens",
|
|
swiftSettings: [
|
|
.enableExperimentalFeature("StrictConcurrency"),
|
|
]
|
|
),
|
|
.testTarget(
|
|
name: "ManaCoreTests",
|
|
dependencies: ["ManaCore"],
|
|
path: "Tests/ManaCoreTests"
|
|
),
|
|
.testTarget(
|
|
name: "ManaTokensTests",
|
|
dependencies: ["ManaTokens"],
|
|
path: "Tests/ManaTokensTests"
|
|
),
|
|
]
|
|
)
|