Releases: dropbear-software/punycoder
Releases · dropbear-software/punycoder
v0.3.0
0.3.0
This release is a complete, ground-up rewrite of the package. It provides a fully compliant, strictly validated, and idiomatic Dart implementation of the Punycode standard.
🚨 Breaking Changes
- Separation of IDNA and Raw Punycode: The default
PunycodeCodecno longer attempts to automatically parse and encode/decode full domains or email addresses. It now acts purely on raw strings. - Removed
PunycodeCodec.simple(): Because the default codec now handles raw strings exclusively, the.simple()constructor has been removed. A new globalpunycodeinstance is provided for convenience. - Extracted Domain & Email Handling: Domain and email conversions are now handled by dedicated top-level functions (
domainToAscii,domainToUnicode,emailToAscii, andemailToUnicode). - Strict (but Configurable) IDNA Validation: IDNA processing now strictly enforces formatting rules by default. Inputs with labels exceeding 63 characters, domains exceeding 253 characters, or invalid hyphen placements will actively throw a
FormatException. You can bypass this by passingvalidate: false.
✨ New Features & Improvements
- Full RFC 3492 Compliance: Rigorous implementation of the complete Punycode specification.
- Mixed-Case Support (RFC 3429 Appendix A): Added support for Appendix A mixed-case annotations, properly preserving casing during encoding and decoding.
- Official Errata Fixes: Implemented technical corrections for RFC 3492 Errata IDs 265 and 3026.
- IDNA2003 Separator Support:
domainToAsciinow recognizes and properly splits labels using standard IDNA2003 separators (.,\u3002,\uFF0E,\uFF61). - Platform Parity: Added a comprehensive suite of unit and integration tests to guarantee identical behavior across both Dart VM and Web platforms.
v0.2.2
Full Changelog: v0.2.1...v0.2.2
v0.2.1
What's Changed
- Refactor to strictly use codec pattern from dart:convert by @mark-dropbear in #10
Full Changelog: v0.1.0...v0.2.1
v0.1.0
What's Changed
- Setup environment for Firebase Studio by @mark-dropbear in #2
- Add initial punycode implementation by @mark-dropbear in #4
- Add Punycode test suite by @mark-dropbear in #6
- Add package documentation by @mark-dropbear in #8
New Contributors
- @mark-dropbear made their first contribution in #2
Full Changelog: https://github.com/dropbear-software/punycoder/commits/v0.1.0