cldf 1.2.0
cldf: ^1.2.0 copied to clipboard
A Dart implementation of the Crushlog Data Format (CLDF) for climbing data exchange.
Changelog #
1.2.0 #
Added #
Statsclass to Manifest for export statistics (matching schema and Java implementation)- Includes counts for: climbs, sessions, locations, routes, sectors, tags, media
DateRangeclass for ExportConfig to support date-filtered exportssourcefield to Manifest for tracking the source applicationwebsitefield to Author class (previously Creator)- Comprehensive Platform enum tests with validation
Enhanced #
- CLDFWriter now automatically calculates stats when writing archives if stats are not already provided
- Counts for: climbs, sessions, locations, routes, sectors, tags, media
- Preserves existing stats if already present in the manifest
Changed #
- Renamed
Creatorclass toAuthorto match schema and Java implementation ExportConfignow includesdateRangefield for date-filtered exportsexportConfigfield in Manifest now maps to JSON propertyexportOptionsto match schema
Fixed #
- Platform enum values updated to match schema specification exactly
- Changed from:
desktop,mobile,web,api - Changed to:
iOS,Android,Web,Desktop
- Changed from:
- All references to
Platform.mobileupdated toPlatform.iOSin tests and examples
Breaking Changes #
- Major version bump due to breaking changes in Platform enum and Creator/Author rename
Creatorclass renamed toAuthor- update all referencesPlatform.mobilehas been removed - usePlatform.iOSorPlatform.androidinsteadPlatform.apihas been removed - not part of the schema specification- Author class no longer has
userIdfield (not in schema)
1.1.1 #
1.1.0 #
Added #
- Flexible media model support with new
MediaandFlexibleMediaItemclasses MediaSourceenum extended with:local,cloud,referencevaluesRouteCharacteristicsenum for route protection types (trad/bolted)- New fields in models:
Tag: Added requiredisPredefinedfieldLocation: Addedstarred(bool) andcreatedAt(DateTime?) fieldsSector: AddedisDefault(bool),createdAt(DateTime?), andapproach(String?) fieldsRoute: AddedrouteCharacteristics(RouteCharacteristics?) andgearNotes(String?) fieldsSession: AddedisOngoing(bool) field with default value of false
- Comprehensive test coverage for all model updates
Changed #
MediaItem.idchanged from String to int for consistencyTag.categorychanged from required to optionalLocation.countrychanged from required to optionalProtectionRatingenum updated to match schema values: bombproof, good, adequate, runout, serious, xRockTypeenum updates:- Changed
tufftovolcanicTuff - Added: dolomite, slate, gabbro, andesite, chalk
- Changed
SessionTypeenum added: multiPitch, boardSessionMediaSourceenum maintains backward compatibility with legacy values
Fixed #
- Schema synchronization issues between Dart and Java implementations
- Type consistency across all CLDF components
1.0.0 #
- Initial release
- Full support for CLDF 1.0.0 specification
- Read and write CLDF archives
- JSON serialization/deserialization for all models
- Type-safe Dart models
- Archive creation with automatic checksums