turbo_serializable 0.3.0
turbo_serializable: ^0.3.0 copied to clipboard
A serialization abstraction for the turbo ecosystem with multi-format support (JSON, YAML, Markdown, XML).
Changelog #
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
0.3.0 - 2026-01-31 #
Added #
- Simplified abstract base classes:
TSerializableandTSerializableId - Builder-based serialization pattern with optional format builders (
yamlBuilder,markdownBuilder,xmlBuilder) TMdFactorymarkdown factory with section-based builder pattern and typedefs (TMdSectionsBuilder,TMdSectionBuilder,TMdBodyBuilder,TMdHeaderBuilder)TXmlFactoryXML factory with element-based builder pattern and typedefs (TXmlRootBuilder,TXmlElementsBuilder,TXmlElementBuilder)TYamlFactoryYAML factory with entry-based builder pattern and typedefs (TYamlEntriesBuilder,TYamlEntryBuilder)- Comprehensive Dart documentation for all classes and methods
- Example project demonstrating simplified API usage
Changed #
- BREAKING: Renamed all classes to t-prefix convention (
TurboSerializable→TSerializable,TurboWriteable→TWriteable) - BREAKING: Removed
TurboSerializableConfig- serialization methods are now implemented directly via overrides - BREAKING: Removed all format converter functions (
jsonToYaml,yamlToJson, etc.) - BREAKING: Removed all parsers and generators (layout-aware parsing, format conversion utilities)
- BREAKING: Removed metadata support (
metaDataparameter,HasToJsoninterface) - BREAKING: Removed
isLocalDefaultparameter from ID-based classes - BREAKING: Removed case transformation utilities and
CaseStyleenum - BREAKING: Removed layout preservation features and related models
TSerializable.toMarkdown()now usesTMdFactoryinstead of a simple builder function- Simplified API to focus on core serialization abstraction
- Updated example project to demonstrate new simplified API
Removed #
- All format converter functions (12 conversion functions)
- All parsers (
json_parser,yaml_parser,markdown_parser,xml_parser) - All generators (
json_generator,yaml_generator,markdown_generator,xml_generator) - Configuration classes (
TurboSerializableConfig,TurboConstants) - Metadata models (
KeyMetadata,LayoutAwareParseResult, format-specific metadata) - Utility classes (
CaseConverter,HasToJsoninterface) - Enums (
CaseStyle,SerializationFormat) - Comprehensive test suite and integration tests
Fixed #
- Unresolvable dartdoc references in
TSerializableandTSerializableId dart formatissues in factory and typedef files- Export directive ordering in barrel file
Technical Details #
- Package now provides minimal abstraction layer for serialization
- Focus on core functionality:
toJson(),validate(), and optional format builders - Reduced complexity from multi-format conversion system to simple serialization base classes
- Maintains compatibility with
turbo_responsefor validation - All serialization format support is now optional and implemented via builder functions or factory classes
0.2.0 - 2026-01-12 #
Added #
- Layout-aware parsers for YAML, Markdown, XML, and JSON with metadata extraction
- Layout generators for YAML and Markdown that preserve original formatting
LayoutAwareParseResultmodel for returning both data and key-level metadataKeyMetadatamodel for storing per-key layout information- Format-specific metadata models:
YamlMeta,MarkdownMeta,XmlMeta,JsonMeta preserveLayoutparameter to all format conversion functions for round-trip fidelity- Support for YAML anchors, aliases, comments, and scalar styles preservation
- Support for XML attributes, CDATA, namespaces, and comments preservation
- Support for Markdown header levels, list styles, and formatting preservation
Changed #
- Format converter functions now properly extract and pass
keyMetafromLayoutAwareParseResult - Conversion functions pass
preserveLayoutthrough to output generators instead of forcingfalse - Improved documentation for
preserveLayoutparameter behavior
Technical Details #
- Layout parsers extract metadata during parsing without modifying data structure
- Layout generators use metadata to reconstruct original formatting
- Enables byte-for-byte round-trip fidelity when converting between formats
- Backward compatible:
preserveLayoutdefaults tofalsefor parsing,truefor generation
0.1.2 - 2026-01-11 #
Added #
TurboSerializableConfigclass for configuring serialization callbacks- Export of
TurboSerializableConfigfrom main library for easier imports - Case converter utility (
convertCase) for flexible string casing transformations - Case style support for serialization in
TurboSerializablewithCaseStyleenum TurboConstantsclass for centralized constant management- Enhanced
markdownToYamlfunction withmetaData,includeNulls, andprettyPrintparameters - Enhanced serialization methods with
includeNullsandprettyPrintoptions - Comprehensive architectural documentation and specifications
- Expanded testing guidelines and documentation structure
Changed #
- Refactored
TurboSerializableto useTurboSerializableConfigfor serialization method configuration - Standardized callback names in
TurboSerializableConfig:toJsonCallback→toJsontoYamlString→toYamltoMarkdownString→toMarkdown
- Primary format is now automatically determined from provided callbacks (priority: json > yaml > markdown > xml)
- Updated
toXmlmethod to includeincludeMetaDataparameter - Renamed
mapToXmltojsonToXmlfor consistency in XML conversion
Fixed #
- Function naming consistency in XML converter (
mapToXml→jsonToXml)
Technical Details #
- Introduced
HasToJsoninterface for metadata types that can be serialized to JSON - Removed deprecated
toJsonImplmethods in favor of callback-based implementations - Enhanced documentation to guide users on the new configuration setup
- Ensured backward compatibility with existing serialization methods where applicable
0.1.1 - 2026-01-11 #
Changed #
- Rewrote README with Library/Package format: badges, features list, API reference tables, focused examples
- Reduced README from 329 to 90 lines (73% reduction)
0.1.0 - 2026-01-11 #
Added #
- Standalone format converter functions:
jsonToYaml,jsonToMarkdown,jsonToXml,yamlToJson,yamlToMarkdown,yamlToXml,markdownToJson,markdownToYaml,markdownToXml,xmlToJson,xmlToYaml,xmlToMarkdown jsonToXmlandxmlToMapfunctions for direct JSON/XML conversion- Markdown-to-JSON parsing with YAML frontmatter support
- JSON-to-Markdown conversion with header-based format (keys become
##,###,####,**bold**at level 5+) - Title Case conversion for markdown headers
- PascalCase option for XML element names
- Metadata support for all format conversions
- Comprehensive integration test suite with 284 tests
- Edge case sample files covering: deep nesting, unicode/emoji, empty collections, YAML anchors/aliases, XML declarations, and format-specific features
Changed #
- Removed deprecated
from*instance methods (use standalone converter functions instead)
Fixed #
- XML converter uses
XmlText.valueinstead of deprecatedXmlData.text
0.0.1 - 2026-01-11 #
Added #
- Initial release
TurboSerializable<M>abstract class with optional serialization methods and typed metadata supportTurboSerializableId<T, M>with typed identifier and metadata support- Optional
metaDatafield for frontmatter and auxiliary data - Supported formats: JSON, YAML, Markdown, XML