NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
pub.dev
Provides a variety of helpful utilities and extensions for Flutter and Dart.
Last release 16 days ago
22 Sep 2026
Release timing varies
gaps range from 8 days to 9 months
Nearly every release is documented
notes for 31 of 32 stable releases
Nothing withdrawn
no release was ever pulled
2 years old
32 releases · first in 2024
One column per month.
Added Map extensions mirroring the List extensions:
Map extensions mirroring the List extensions:
isNotNullOrEmpty / isNotEmptyOrNull and
isNullOrEmpty / isEmptyOrNullunique to remove entries with duplicate values, optionally keyed by an
identifier and applied in placeequals for order-independent map equality (same length, every key present
with an equal value)List and Map extensions that forward to the
nullable-receiver extensions. A non-null receiver resolves the nullability
getters and equals directly, with no null-handling code required.Added extension methods for recursive JSON-safe serialization and deserialization of nested maps/lists:
toJsonValue() / fromJsonValue()toJsonMap() / fromJsonMap()toJsonList() / fromJsonList()Added the isExpired and expiresSoon getters to JWT tokens.
isExpired and expiresSoon getters to JWT tokens.Example:
String token = "your.jwt.token";
bool isExpired = token.isExpired;
bool expiresSoon = token.expiresSoon;
Updated dependencies to the latest versions
Added a FixedSizeList.filled constructor
FixedSizeList.filled constructorUpdated FixedSizeList to act more like a proper List
FixedSizeList to act more like a proper List[FIX] Ensure that FixedSizeList takes any type of object.
FixedSizeList takes any type of object.Added the isLeapYear extension to the DateTime and int objects.
isLeapYear extension to the DateTime and int objects.FixedSizeList class. See the README and examples for details.Added a List equality extension, equals.
List equality extension, equals.List extension unique that may have caused null-safety issues.[BREAKING] JWT-related extensions have been reworked.
Old:
String token = "your.jwt.token";
DateTime? expiry = token.jwtExpiryTime();
String? userId = token.jwtUserId();
String? email = token.jwtEmail();
New:
String token = "your.jwt.token";
DateTime? expiry = token.jwt.expiryTime;
String? userId = token.jwt.userId;
String? email = token.jwt.email;
// Added:
JwtPayload? token.jwt;
String? givenName = token.jwt.givenName;
String? familyName = token.jwt.familyName;
Additionally, the exceptions thrown when parsing an invalid JWT have been updated.
String email = "invalid".jwtEmail() // Previously threw Exception("invalid token")
String email = "invalid".jwt.email // Now throws InvalidTokenException()
String email = "".jwtEmail() // Previously threw Exception("invalid payload")
String email = "".jwt.email // Now throws InvalidPayloadException()
Added isEmptyOrNull and isNotEmptyOrNull extensions for List and String objects. These extensions are identical to isNullOrEmpty and isNotNullOrEmpty,
isEmptyOrNull and isNotEmptyOrNull extensions for List and String objects. These extensions are identical to isNullOrEmpty and isNotNullOrEmpty, respectively.DateTime extension that caused incorrect results when comparing dates using isToday.Added the isNullOrEmpty and isNotNullOrEmpty extensions for List objects.
isNullOrEmpty and isNotNullOrEmpty extensions for List objects.Ticker extension that prevented intervals shorter than 1 second from being used.Added a non-breaking space character to CommonString as CommonString.nbsp
CommonString as CommonString.nbspAdded the printValue() extension. The printValue() extension can be used to print a value to the console before returning that same value.
Added the printValue() extension.
The printValue() extension can be used to print a value to the console
before returning that same value.
Example:
// Print the `textTheme` object to the console before returning it
Text(
'Hello, world',
style: Theme.of(context).textTheme.printValue().headlineMedium,
),
Null Strings being manipulated should return null instead of an empty String
Strings being manipulated should return null instead of an empty StringMade String manipulation utilities available for nullable objects
String manipulation utilities available for nullable objectsAdjusted capitalize extension to convert remaining letters to lowercase
capitalize extension to convert remaining letters to lowercaseAdded additional String manipulation utilities, including:
String manipulation utilities, including:
capitalizeWords: Capitalizes the first letter of each word in the string.spacePascalCase: Adds spaces between words in a PascalCase string.Added additional documentation and examples for new extension.
Added the unique extension for List objects.
unique extension for List objects.Removes Color extension due to an incompatibility with Flutter. Sorry, @rania-run!
Color extension due to an incompatibility with Flutter. Sorry, @rania-run!Ensure new Color extensions are exported from the package.
Color extensions are exported from the package.Added Color extension for luminance. Thanks, @rania-run!
Color extension for luminance. Thanks, @rania-run!splitByLength extension on String[BREAKING] Removed Unfocuser widget to ensure pure Dart compatibility.
Unfocuser widget to ensure pure Dart compatibility.To continue using Unfocuser, add unfocuser: ^1.0.0 to your pubspec.yaml.
Added yesterday and tomorrow extensions to DateTime
yesterday and tomorrow extensions to DateTimeNothing published for this version
Updated linting rules to use arcane_analysis
- Updated documentation
- Added an example project
Added bulletPoint to CommonString
Added Unfocuser widget and JSON converters
- Initial release
Your coding agent can read these notes before it upgrades. Set up the MCP server →