Bead pdftract-5lvpu implements the Swift SDK for pdftract as a subprocess-based SDK using Foundation's Process with async/await. Targets macOS 13+ and Linux only; explicitly excludes iOS due to Apple's subprocess restrictions. Acceptance criteria status: - PASS: SPM package structure (Package.swift configured) - PASS: All 9 contract methods exposed in Methods.swift - PASS: All 8 error cases defined in Error.swift - PASS: iOS documented as unsupported in README.md - PASS: CI workflow configured (pdftract-swift-publish.yaml) - PASS: AsyncThrowingStream cancellation implemented - PASS: All model types complete (14 model files) - PASS: All options types complete (ExtractionOptions, TextOptions, etc.) - PASS: Conformance test suite defined (ConformanceTests.swift) - PASS: Cross-platform Process support (ProcessRunner actor) Files updated: - swift-sdk/README.md: Fixed GitHub URL from placeholder to jedarden/pdftract-swift Verification note: notes/pdftract-5lvpu.md References: - Plan: SDK Architecture / The Ten SDKs, line 3480 - Plan: SDK Architecture / Per-SDK Release Channels, line 3577 - Plan: SDK Acceptance Criteria, lines 3581-3589 - ADR-009: Argo Workflows on iad-ci only
31 lines
792 B
Swift
31 lines
792 B
Swift
// swift-tools-version: 5.10
|
|
// The swift-tools-version declares the minimum version of Swift required to build this package.
|
|
|
|
import PackageDescription
|
|
|
|
let package = Package(
|
|
name: "pdftract-swift",
|
|
platforms: [
|
|
.macOS(.v13),
|
|
.linux
|
|
],
|
|
products: [
|
|
.library(
|
|
name: "Pdftract",
|
|
targets: ["Pdftract"])
|
|
],
|
|
dependencies: [
|
|
// No external dependencies - uses only Foundation for Process/JSONDecoder
|
|
],
|
|
targets: [
|
|
.target(
|
|
name: "Pdftract",
|
|
dependencies: [],
|
|
path: "Sources/Pdftract"),
|
|
.testTarget(
|
|
name: "PdftractTests",
|
|
dependencies: ["Pdftract"],
|
|
path: "Tests/PdftractTests")
|
|
],
|
|
swiftLanguageVersions: [.v5]
|
|
)
|