Major release addressing the findings from a full code audit. Includes breaking API changes (see Migration).
Highlights
- Reliable cancellation —
OPClient.cancelFetch()now aborts the in-flight network request and decoding (Task-based withwithTaskCancellationHandler). - No more silent data loss —
OPDecodingOperationexposes per-element decode failures viaelementErrorsinstead of only printing them. - Antimeridian fix in
OPBoundingBoxlongitude normalization. - HTTPS endpoints for the French and Swiss servers; corrected the Taiwan endpoint path.
- Test suite added — 29 tests covering client, decoding, bounding box, query builder, polygon checker, and enums.
Demo app
- Throwing query builder (no more
try!), fixed dictionary mutation during iteration, broke a map retain cycle, added the location usage description, removed debug prints. - Deployment target lowered 18.4 → 17.0, duplicate SPM dependency removed, unused secondary
Package.swiftremoved.
Docs
- Fixed broken README screenshot links and the example-project path.
⚠️ Migration (breaking changes)
- Removed unused public
OPRequestErrorcases:nilData,decodingFailed,queryCancelled,queryChanged. If you switched over these, update your error handling. Cancellation now surfaces asOPRequestError.operationCancelled. .frenchand.swissendpoints now usehttps://.
Full Changelog: 1.0.0...2.0.0