Extracts duplicated platform integration code from ChronoMind + LysnrAI into a single Swift Package. Eliminates ~1,100+ lines of copied code per product app. Components: - BLPlatformConfig — product-specific configuration (productId, baseURL, bundleId) - BLPlatformClient — generic HTTP client with auth injection, x-request-id, timeout - BLKeychain — Keychain CRUD for secure token storage - BLTelemetryClient — telemetry queue + batch flush (matches @bytelyst/telemetry-client) - BLAuthClient — full auth operations (matches @bytelyst/auth-client) - BLFeatureFlagClient — feature flag polling from platform-service /flags/poll - BLSyncEngine — generic offline-first sync with delta pull + batch push Platforms: iOS 17+, watchOS 10+, macOS 14+
32 lines
801 B
Swift
32 lines
801 B
Swift
// swift-tools-version: 5.9
|
|
// ByteLystPlatformSDK — Shared Swift platform client for all ByteLyst iOS/watchOS/macOS apps.
|
|
// Lives in learning_ai_common_plat so every product app references ONE source of truth.
|
|
|
|
import PackageDescription
|
|
|
|
let package = Package(
|
|
name: "ByteLystPlatformSDK",
|
|
platforms: [
|
|
.iOS(.v17),
|
|
.watchOS(.v10),
|
|
.macOS(.v14),
|
|
],
|
|
products: [
|
|
.library(
|
|
name: "ByteLystPlatformSDK",
|
|
targets: ["ByteLystPlatformSDK"]
|
|
),
|
|
],
|
|
targets: [
|
|
.target(
|
|
name: "ByteLystPlatformSDK",
|
|
path: "Sources"
|
|
),
|
|
.testTarget(
|
|
name: "ByteLystPlatformSDKTests",
|
|
dependencies: ["ByteLystPlatformSDK"],
|
|
path: "Tests"
|
|
),
|
|
]
|
|
)
|