swiss_knife
Dart Useful Tools - collections, math, date, uri, json, events, resources, regexp, etc...
3.3.14
3.7K downloads/mo
#4309 most downloaded on pub.dev
gmpassos/swiss_knife
What this package is like to depend on
Last release 5 months ago
26 Feb 2026
Release timing varies
gaps range from 8 days to 9 months
Nearly every release is documented
notes for 84 of 84 stable releases
Nothing withdrawn
no release was ever pulled
8 years old
84 releases · first in 2018
11 releases in the last 12 months
see the full history below
Release timeline
84 releases · Sep 2018 to Feb 2026Releases
latest 60 of 84-
3.3.1426 Feb 2026Release notes
Open source →-
TreeReferenceMap:- Replaced
_purgedfield type fromDualLazyWeakMaptoMap<K, _PurgedValue<V>>. - Updated purged entries handling to store
(value, time)records instead ofMapEntry<DateTime, V>. - Improved purged entries timeout checking and scheduling with delayed future.
- Replaced
-
LazyWeakReference:- Added
strongIfWeak({bool keepWeakRef = true})method to promote a weak reference to strong if possible.
- Added
-
weak_map.dart:- Modified
_Entryequality to support comparison with raw keys using identity. - Updated
_EntryKeyequality to use identity comparison and consistent hash code checks. - Changed
_EntryLazyRefand_EntryLazyRefValueto usestrongIfWeak()for key and value retrieval. - Made
_keyLazyRefManagerand_valueLazyRefManagernon-nullable inLazyWeakKeyMapandDualLazyWeakMap. - Simplified
_createEntrymethods inLazyWeakKeyMapandDualLazyWeakMapto always create lazy weak entries with non-null managers. - Improved docs for
WeakKeyMap,DualWeakMap.- Added doc to
LazyWeakKeyMap,DualLazyWeakMap
- Added doc to
- Modified
Release notes
Open source →-
TreeReferenceMap:- Replaced
_purgedfield type fromDualLazyWeakMaptoMap<K, _PurgedValue<V>>. - Updated purged entries handling to store
(value, time)records instead ofMapEntry<DateTime, V>. - Improved purged entries timeout checking and scheduling with delayed future.
- Replaced
-
LazyWeakReference:- Added
strongIfWeak({bool keepWeakRef = true})method to promote a weak reference to strong if possible.
- Added
-
weak_map.dart:- Modified
_Entryequality to support comparison with raw keys using identity. - Updated
_EntryKeyequality to use identity comparison and consistent hash code checks. - Changed
_EntryLazyRefand_EntryLazyRefValueto usestrongIfWeak()for key and value retrieval. - Made
_keyLazyRefManagerand_valueLazyRefManagernon-nullable inLazyWeakKeyMapandDualLazyWeakMap. - Simplified
_createEntrymethods inLazyWeakKeyMapandDualLazyWeakMapto always create lazy weak entries with non-null managers. - Improved docs for
WeakKeyMap,DualWeakMap.- Added doc to
LazyWeakKeyMap,DualLazyWeakMap
- Added doc to
- Modified
-
-
3.3.1325 Feb 2026Release notes
Open source →-
TreeReferenceMap:- Replaced
_purgedfield type fromDualWeakMaptoDualLazyWeakMap. - Use global
LazyWeakReferenceManagerByTypeto createDualLazyWeakMapinstances for purged entries.
- Replaced
-
ExpandoWithFinalizer:- Refactored to extend generic
WithFinalizerbase class. - Introduced strongly typed
FinalizerValueWrapperabstraction and concrete implementations:SimpleFinalizerWrapper,SimpleFinalizerWrapperDebugExpandoValueWrapper,ExpandoValueWrapperDebug
- Added
AttachOnlyFinalizerclass for write-only finalizer usage. - Added
debugmode to retain weak references to keys for inspection. - Improved finalizer attach/detach logic and wrapper management.
- Refactored to extend generic
-
lazy_weak_reference.dart:- Added
GenericReferenceinterface for strong/weak reference abstraction. - Added
LazyWeakReferenceManagerByTypesingleton managing per-typeLazyWeakReferenceManagerinstances. - Added
toStringandcompareToimprovements toLazyWeakReference. - Added
LazyWeakReferenceManagerByTypeclass for centralized management. - Added
toStringoverride toLazyWeakReferenceManager.
- Added
-
weak_map.dart:- Refactored internal entry classes to support lazy weak references:
- Added
_EntryLazyRef,_EntryLazyRef1,_EntryLazyRef2,_EntryLazyRefValue.
- Added
WeakKeyMap: include _autoPurge in isAutoPurgeRequired and centralize auto-purge check.- Added
LazyWeakKeyMapsubclass using lazy weak references for keys. - Added
DualLazyWeakMapsubclass using lazy weak references for keys and values. - Added factory constructors
WeakKeyMap.configuredandDualWeakMap.configuredto create lazy weak reference variants. - Added
removeWhereKeyextension method onMapandWeakKeyMap. - Updated purge logic to use
removeWhereKey. - Updated
DualWeakMapto optionally use lazy weak references for keys and values.
- Refactored internal entry classes to support lazy weak references:
-
resource.dart:- Changed
ResourceContentCacheto use private_onLoadEventStreaminstead of publiconLoadfield. - Updated
ResourceContentto lazily initialize_onLoadEventStreamand use it internally. - Changed event notification to use
_onLoadEventStream?.addinstead ofonLoad.add.
- Changed
Release notes
Open source →-
TreeReferenceMap:- Replaced
_purgedfield type fromDualWeakMaptoDualLazyWeakMap. - Use global
LazyWeakReferenceManagerByTypeto createDualLazyWeakMapinstances for purged entries.
- Replaced
-
ExpandoWithFinalizer:- Refactored to extend generic
WithFinalizerbase class. - Introduced strongly typed
FinalizerValueWrapperabstraction and concrete implementations:SimpleFinalizerWrapper,SimpleFinalizerWrapperDebugExpandoValueWrapper,ExpandoValueWrapperDebug
- Added
AttachOnlyFinalizerclass for write-only finalizer usage. - Added
debugmode to retain weak references to keys for inspection. - Improved finalizer attach/detach logic and wrapper management.
- Refactored to extend generic
-
lazy_weak_reference.dart:- Added
GenericReferenceinterface for strong/weak reference abstraction. - Added
LazyWeakReferenceManagerByTypesingleton managing per-typeLazyWeakReferenceManagerinstances. - Added
toStringandcompareToimprovements toLazyWeakReference. - Added
LazyWeakReferenceManagerByTypeclass for centralized management. - Added
toStringoverride toLazyWeakReferenceManager.
- Added
-
weak_map.dart:- Refactored internal entry classes to support lazy weak references:
- Added
_EntryLazyRef,_EntryLazyRef1,_EntryLazyRef2,_EntryLazyRefValue.
- Added
WeakKeyMap: include _autoPurge in isAutoPurgeRequired and centralize auto-purge check.- Added
LazyWeakKeyMapsubclass using lazy weak references for keys. - Added
DualLazyWeakMapsubclass using lazy weak references for keys and values. - Added factory constructors
WeakKeyMap.configuredandDualWeakMap.configuredto create lazy weak reference variants. - Added
removeWhereKeyextension method onMapandWeakKeyMap. - Updated purge logic to use
removeWhereKey. - Updated
DualWeakMapto optionally use lazy weak references for keys and values.
- Refactored internal entry classes to support lazy weak references:
-
resource.dart:- Changed
ResourceContentCacheto use private_onLoadEventStreaminstead of publiconLoadfield. - Updated
ResourceContentto lazily initialize_onLoadEventStreamand use it internally. - Changed event notification to use
_onLoadEventStream?.addinstead ofonLoad.add.
- Changed
-
-
3.3.1221 Feb 2026Release notes
Open source →-
LazyWeakReference:- Added intrusive doubly-linked list fields
_prevand_nextfor internal queue management. - Simplified
targetandtargetIfStronggetters using null-coalescing.
- Added intrusive doubly-linked list fields
-
LazyWeakReferenceManager:- Replaced
SplayTreeSetwith an intrusive doubly-linked aging queue (_head,_tail) for strong references. - Added
_pushBackand_removemethods for O(1) insertion and removal in the aging queue. - Updated
_handleNewStrongRefand_handleAccessStrongRefto use the intrusive queue. - Updated
_handleNewWeakRefand_handleDisposedRefto remove references from the queue using_remove. - Refactored
_weakenStrongRefsto process references from the queue head and schedule next weakening based on precise delay. - Improved queue management to avoid allocations and maintain ordering by last strong access time.
- Replaced
Performance Improvements
- Replaced the internal
SplayTreeSetused for aging strong references with an intrusive doubly-linked aging queue. - Benchmark (300k operations, steady set ≈20k items):
Structure Avg Time Intrusive aging queue ~22 ms Queue ~35 ms WeakRef queue ~60 ms SplayTreeSet (previous) ~205 ms -
Impact:
- ~9× faster than the previous
SplayTreeSetimplementation - ~35% faster than
Queue - Lower GC pressure and allocation overhead
- Constant-time weaken cycles with stable latency under high churn
- ~9× faster than the previous
Release notes
Open source →-
LazyWeakReference:- Added intrusive doubly-linked list fields
_prevand_nextfor internal queue management. - Simplified
targetandtargetIfStronggetters using null-coalescing.
- Added intrusive doubly-linked list fields
-
LazyWeakReferenceManager:- Replaced
SplayTreeSetwith an intrusive doubly-linked aging queue (_head,_tail) for strong references. - Added
_pushBackand_removemethods for O(1) insertion and removal in the aging queue. - Updated
_handleNewStrongRefand_handleAccessStrongRefto use the intrusive queue. - Updated
_handleNewWeakRefand_handleDisposedRefto remove references from the queue using_remove. - Refactored
_weakenStrongRefsto process references from the queue head and schedule next weakening based on precise delay. - Improved queue management to avoid allocations and maintain ordering by last strong access time.
- Replaced
Performance Improvements
- Replaced the internal
SplayTreeSetused for aging strong references with an intrusive doubly-linked aging queue. - Benchmark (300k operations, steady set ≈20k items):
Structure Avg Time Intrusive aging queue ~22 ms Queue ~35 ms WeakRef queue ~60 ms SplayTreeSet (previous) ~205 ms -
Impact:
- ~9× faster than the previous
SplayTreeSetimplementation - ~35% faster than
Queue - Lower GC pressure and allocation overhead
- Constant-time weaken cycles with stable latency under high churn
- ~9× faster than the previous
-
-
3.3.1121 Feb 2026Release notes
Open source →-
GitHub Actions workflow (
.github/workflows/dart.yml):- Updated
actions/checkoutfrom v2 to v6. - Split test jobs into separate
test_vmandtest_chromejobs for VM and Chrome platforms respectively. - Updated
codecov/codecov-actionfrom v1 to v5. - Added
dart pub publish --dry-runstep to the main build job.
- Updated
-
LazyWeakReference:- Implemented
Comparable<LazyWeakReference>with a strict total order based on_unixTimeMsand uniqueid. - Added
idfield as a unique sequence identifier assigned by the manager. - Exposed
unixTimeMsgetter. - Removed direct
_unixTimeMsupdates fromstrong()method; now managed byLazyWeakReferenceManager. - Updated constructors to accept
idand defer_unixTimeMsassignment to manager.
- Implemented
-
LazyWeakReferenceManager:- Added
_refIdCountto assign uniqueids to references. - Changed internal strong reference queue from
QueuetoSplayTreeSetordered byLazyWeakReference.compareTo. - Updated
_handleNewStrongRefand_handleAccessStrongRefto update_unixTimeMsand maintain ordering in_strongRefs. - Updated
_handleNewWeakRefand_handleDisposedRefto remove references from_strongRefs. - Updated
_weakenStrongRefsto process references from_strongRefsin order, removing the oldest eligible references first. - Improved scheduling logic to debounce weakening with precise timing based on reference age.
- Added
Release notes
Open source →-
GitHub Actions workflow (
.github/workflows/dart.yml):- Updated
actions/checkoutfrom v2 to v6. - Split test jobs into separate
test_vmandtest_chromejobs for VM and Chrome platforms respectively. - Updated
codecov/codecov-actionfrom v1 to v5. - Added
dart pub publish --dry-runstep to the main build job.
- Updated
-
LazyWeakReference:- Implemented
Comparable<LazyWeakReference>with a strict total order based on_unixTimeMsand uniqueid. - Added
idfield as a unique sequence identifier assigned by the manager. - Exposed
unixTimeMsgetter. - Removed direct
_unixTimeMsupdates fromstrong()method; now managed byLazyWeakReferenceManager. - Updated constructors to accept
idand defer_unixTimeMsassignment to manager.
- Implemented
-
LazyWeakReferenceManager:- Added
_refIdCountto assign uniqueids to references. - Changed internal strong reference queue from
QueuetoSplayTreeSetordered byLazyWeakReference.compareTo. - Updated
_handleNewStrongRefand_handleAccessStrongRefto update_unixTimeMsand maintain ordering in_strongRefs. - Updated
_handleNewWeakRefand_handleDisposedRefto remove references from_strongRefs. - Updated
_weakenStrongRefsto process references from_strongRefsin order, removing the oldest eligible references first. - Improved scheduling logic to debounce weakening with precise timing based on reference age.
- Added
-
-
3.3.1021 Feb 2026Release notes
Open source →-
Added
LazyWeakReference<T>:- Holds a reference that starts strong and automatically degrades to weak after a delay.
- Provides
target,targetIfStrong,isStrong,isWeak,isAlive,isLost,isDisposedproperties. - Supports promotion to strong via
strong()and weakening viaweak(). - Manages lifecycle with a
LazyWeakReferenceManager. - Implements disposal and elapsed time tracking.
-
Added
LazyWeakReferenceManager<T>:- Controls automatic weakening of strong references after a configurable delay.
- Supports batching with configurable batch size and interval to avoid blocking.
- Manages queues of strong references and schedules weakening tasks.
- Provides
strong()andweak()factory methods to create managed references.
-
Updated
lib/swiss_knife.dart:- Exported
src/lazy_weak_reference.dart.
- Exported
Release notes
Open source →-
Added
LazyWeakReference<T>:- Holds a reference that starts strong and automatically degrades to weak after a delay.
- Provides
target,targetIfStrong,isStrong,isWeak,isAlive,isLost,isDisposedproperties. - Supports promotion to strong via
strong()and weakening viaweak(). - Manages lifecycle with a
LazyWeakReferenceManager. - Implements disposal and elapsed time tracking.
-
Added
LazyWeakReferenceManager<T>:- Controls automatic weakening of strong references after a configurable delay.
- Supports batching with configurable batch size and interval to avoid blocking.
- Manages queues of strong references and schedules weakening tasks.
- Provides
strong()andweak()factory methods to create managed references.
-
Updated
lib/swiss_knife.dart:- Exported
src/lazy_weak_reference.dart.
- Exported
-
-
3.3.920 Feb 2026Release notes
Open source →TreeReferenceMap:- Rollback: avoid
WeakReferenceissues with WASM on Android/Chrome:- Replaced internal
_mapfromWeakKeyMap<K, V>to standardMap<K, V>. - Updated all
_mapmethod calls fromcontainsKeyNoPurgeto standardcontainsKey. - Adjusted
put,get,addAll,containsKey, andcontainsValuemethods to work with the new_maptype. - Removed usage of weak key map features and related purging logic tied to it.
- Replaced internal
- Rollback: avoid
Release notes
Open source →TreeReferenceMap:- Rollback: avoid
WeakReferenceissues with WASM on Android/Chrome:- Replaced internal
_mapfromWeakKeyMap<K, V>to standardMap<K, V>. - Updated all
_mapmethod calls fromcontainsKeyNoPurgeto standardcontainsKey. - Adjusted
put,get,addAll,containsKey, andcontainsValuemethods to work with the new_maptype. - Removed usage of weak key map features and related purging logic tied to it.
- Replaced internal
- Rollback: avoid
-
3.3.820 Feb 2026Release notes
Open source →-
Added new
DualMap<K, V>class inlib/src/dual_map.dart:- Bidirectional map maintaining two internal maps for O(1) lookup in both directions.
- Supports insertion, removal, clear, and lookup by key or value.
- Implements
MapBase<K, V>interface. - Methods:
put(K key, V value): associates value with key, replacing existing mappings.get(Object? key): returns value for key.getKeyFromValue(V value): returns key for value.putIfAbsent(K key, V Function() ifAbsent): inserts if key absent.putValueIfAbsent(K key, V value): inserts value if key absent, returns bool.remove(Object? key): removes key and reverse mapping.clear(): clears all mappings.
- Properties:
keys,values,entriesprovide iterable views.
-
Updated
lib/swiss_knife.dart:- Exported new
src/dual_map.dart.
- Exported new
Release notes
Open source →-
Added new
DualMap<K, V>class inlib/src/dual_map.dart:- Bidirectional map maintaining two internal maps for O(1) lookup in both directions.
- Supports insertion, removal, clear, and lookup by key or value.
- Implements
MapBase<K, V>interface. - Methods:
put(K key, V value): associates value with key, replacing existing mappings.get(Object? key): returns value for key.getKeyFromValue(V value): returns key for value.putIfAbsent(K key, V Function() ifAbsent): inserts if key absent.putValueIfAbsent(K key, V value): inserts value if key absent, returns bool.remove(Object? key): removes key and reverse mapping.clear(): clears all mappings.
- Properties:
keys,values,entriesprovide iterable views.
-
Updated
lib/swiss_knife.dart:- Exported new
src/dual_map.dart.
- Exported new
-
-
3.3.720 Feb 2026Release notes
Open source →WeakKeyMap:putValueIfAbsent: updated to call_onPutEntryand increment_unpurgedCountwhen a new entry is inserted.
Release notes
Open source →WeakKeyMap:putValueIfAbsent: updated to call_onPutEntryand increment_unpurgedCountwhen a new entry is inserted.
-
3.3.620 Feb 2026Release notes
Open source →-
TreeReferenceMap:getParentKey: fixed handling of purged entries by using_map.containsKeyNoPurgeand nullable_purged.containsKey: changed to use_map.containsKeyNoPurgeto avoid purging during lookup.
-
New
ExpandoWithFinalizer. -
WeakKeyMapandDualWeakMap:- Added
containsKeyNoPurgeandcontainsValueNoPurgemethods to check presence without purging collected entries. - Added
getNoPurgemethod to get value without purging. - Added
putValueIfAbsentmethod to insert a value only if absent. - Improved equality and hashCode implementations in
_EntryKeyfor consistent behavior. - Updated
containsValueinDualWeakMapto properly check presence with purging logic.
- Added
-
swiss_knife.dart:- Exported
ExpandoWithFinalizerfrom the public API.
- Exported
Release notes
Open source →-
TreeReferenceMap:getParentKey: fixed handling of purged entries by using_map.containsKeyNoPurgeand nullable_purged.containsKey: changed to use_map.containsKeyNoPurgeto avoid purging during lookup.
-
New
ExpandoWithFinalizer. -
WeakKeyMapandDualWeakMap:- Added
containsKeyNoPurgeandcontainsValueNoPurgemethods to check presence without purging collected entries. - Added
getNoPurgemethod to get value without purging. - Added
putValueIfAbsentmethod to insert a value only if absent. - Improved equality and hashCode implementations in
_EntryKeyfor consistent behavior. - Updated
containsValueinDualWeakMapto properly check presence with purging logic.
- Added
-
swiss_knife.dart:- Exported
ExpandoWithFinalizerfrom the public API.
- Exported
-
-
3.3.511 Feb 2026Release notes
Open source →-
EventStream:- Changed
_controllerfield to nullable_controllerObjand lazily initialized it. - Changed
_streamfield to nullable_streamObjand lazily initialized it as a broadcast stream. - Updated
addandaddErrormethods to checkisUsed(based on_streamObjpresence) before adding events. - Updated
close,isClosed, andisPausedto handle nullable_controllerObj. - Added
isUsedgetter to indicate if the stream has been used (initialized).
- Changed
-
New
FlatHashMap:- Flat, index-based hash map with contiguous storage, free-list reuse, and
adaptive unsigned chain pointers for reduced memory and improved cache locality.
- Flat, index-based hash map with contiguous storage, free-list reuse, and
-
pubspec.yaml:- Updated
dependency_validatorversion from^5.0.3to^5.0.4.
- Updated
Release notes
Open source →-
EventStream:- Changed
_controllerfield to nullable_controllerObjand lazily initialized it. - Changed
_streamfield to nullable_streamObjand lazily initialized it as a broadcast stream. - Updated
addandaddErrormethods to checkisUsed(based on_streamObjpresence) before adding events. - Updated
close,isClosed, andisPausedto handle nullable_controllerObj. - Added
isUsedgetter to indicate if the stream has been used (initialized).
- Changed
-
New
FlatHashMap:- Flat, index-based hash map with contiguous storage, free-list reuse, and adaptive unsigned chain pointers for reduced memory and improved cache locality.
-
pubspec.yaml:- Updated
dependency_validatorversion from^5.0.3to^5.0.4.
- Updated
-
-
3.3.407 Feb 2026Release notes
Open source →-
Added
WeakKeyMapandDualWeakMapclasses inweak_map.dart:- Implemented weakly-referenced keys map with auto-purge support.
- Added dual weak map with weakly-referenced keys and values.
- Added
SwappedDualWeakMapview for key-value swapped access. - Improved internal entry handling with
_EntryRefclasses. - Added iterable and iterator implementations for weak maps.
-
Updated
TreeReferenceMapincollections.dart:- Replaced internal map with
WeakKeyMapfor weak key references. - Added
autoPurgeThresholdfield and logic to control auto-purge frequency. - Added
onPurgedEntriescallback for purged entries notification. - Changed purged entries storage to use
DualWeakMap. - Improved purge logic to batch purged entries and notify via callback.
- Optimized auto-purge to trigger only after threshold of unpurged operations.
- Added
keysReversedgetter returning reversed keys list. - Improved cache expiration and purged entries revalidation logic.
- Replaced internal map with
-
Updated
EventStreaminevents.dart:- Changed
_listenSignaturesfrom non-nullable to nullableSet. - Added null checks and lazy initialization for
_listenSignatures. - Improved singleton subscription management to handle null safely.
- Changed
-
Updated
swiss_knife.dart:- Exported new
weak_map.dart.
- Exported new
-
Updated
pubspec.yaml:- Bumped
testdependency to ^1.29.0. - Bumped
dependency_validatorto ^5.0.3.
- Bumped
-
-
3.3.322 Jul 2025 -
3.3.222 Jul 2025Release notes
Open source →TreeReferenceMap:- Optimize
getSubValuesImpland_walkTreeImplto avoid self-recursion and use a stack-based algorithm.
- Optimize
-
3.3.113 Jul 2025Release notes
Open source →-
MimeType:- Fix parsing for
XML: change result fromtext/xmltoapplication/xml(oficial).
- Fix parsing for
-
test: ^1.26.2
-
dependency_validator: ^5.0.2
-
collection: ^1.19.1
-
coverage: ^1.15.0
-
-
3.3.024 Feb 2025Release notes
Open source →-
sdk: '>=3.6.0 <4.0.0'
-
intl: ^0.20.2
-
resource_portable: ^3.1.2
-
lints: ^5.1.1
-
test: ^1.25.15
-
collection: ^1.19.0
-
-
3.2.321 Dec 2024Release notes
Open source →-
Optimize
toFlatListOfStrings. -
Added
trimListOfStrings. -
sdk: '>=3.4.0 <4.0.0'
-
lints: ^4.0.0
-
test: ^1.25.14
-
dependency_validator: ^4.1.2
-
coverage: ^1.11.1
-
-
3.2.214 Sep 2024Release notes
Open source →MimeType:- Added
isYAML,isFont,isPDF,isDart,isOctetStream, - Added
isZip,isGZip,isBZip2,isXZ,isCompressed. - Added
isTar,isTarGZip,isTarBZip2,isTarXZ,isTarCompressed.
-
3.2.109 Aug 2024Release notes
Open source →-
MimeType:- Added
applicationOctetStreamandbytes.
- Added
-
test: ^1.25.8
-
coverage: ^1.9.0
-
-
3.2.015 Feb 2024Release notes
Open source →-
sdk: '>=3.3.0 <4.0.0'
-
intl: ^0.19.0
-
lints: ^3.0.0
-
test: ^1.25.2
-
dependency_validator: ^3.2.3
-
collection: ^1.18.0
-
coverage: ^1.7.2
-
-
3.1.630 Dec 2023Release notes
Open source →-
MimeType: fix charset for
text/htmltype. -
sdk: '>=2.18.0 <4.0.0'
-
intl: ^0.18.1
-
resource_portable: ^3.1.0
-
-
3.1.511 Apr 2023Release notes
Open source →MimeType:parse: optimize and update recognized types.byExtension: add more extensions.
- Added
getCharsetEncoding.
-
3.1.431 Mar 2023Release notes
Open source →EventStream:listen: new parameteroverwriteSingletonSubscription.cancelSingletonSubscription: now ensures that the previous subscription is removed from internal handler.
- coverage: ^1.6.3
-
3.1.321 Dec 2022Release notes
Open source →- Code adjustments for
lints: ^2.0.1. - intl: ^0.18.0
- resource_portable: ^3.0.1
- lints: ^2.0.1
- test: ^1.22.1
- Code adjustments for
-
3.1.215 Nov 2022Release notes
Open source →DataURLBase64:- Added constructor
DataURLBase64.from. - Improved Null Safety code.
- Added constructor
- Fix typo.
- test: ^1.17.12
- dependency_validator: ^3.2.2
- collection: ^1.17.0
- coverage: ^1.6.1
-
3.1.126 Apr 2022 -
3.1.026 Apr 2022Release notes
Open source →- Migrate to
lints:- NOTE: some constants were renamed to lowercase camel case.
- Improved GitHub CI.
- Added browser tests.
- lints: ^1.0.1
- coverage: ^1.0.4
- Migrate to
-
3.0.808 Jul 2021Release notes
Open source →- Fixed
ResourceContentload with errors. - Test coverage.
- Added FOSSA Status.
- Fixed
-
3.0.728 May 2021 -
3.0.622 Mar 2021 -
3.0.511 Mar 2021 -
3.0.410 Mar 2021 -
3.0.310 Mar 2021 -
3.0.210 Mar 2021 -
3.0.108 Mar 2021 -
3.0.007 Mar 2021Release notes
Open source →- Dart 2.12.0:
- Sound null safety compatibility.
- Update CI dart commands.
- sdk: '>=2.12.0 <3.0.0'
- intl: ^0.17.0
- resource_portable: ^3.0.0
- collection: ^1.15.0
- pedantic: ^1.11.0
- test: ^1.16.5
- Dart 2.12.0:
-
2.5.2604 Mar 2021Release notes
Open source →- Optimize:
parseInt,parseDoubleandparseNum. - Fix:
listNotMatchesAllandlistMatchesAnywhen leading with lists withnullelements. - Dart 2.12.0+ compliant:
dartfmtanddartanalyzer.
- Optimize:
-
2.5.2528 Jan 2021Release notes
Open source →TreeReferenceMap: ensure thatrootis not null.EventStream: AddedlistenOneShot.
-
2.5.2419 Jan 2021 -
2.5.2318 Jan 2021Release notes
Open source →- Added
TreeReferenceMap: an alternative to Weak References (nonexistent in Dart).
- Added
-
2.5.2217 Jan 2021 -
2.5.2117 Jan 2021 -
2.5.2007 Jan 2021Release notes
Open source →- Added
ObjectCache. - Added
Dimension. - Added
ContextualResourceandContextualResourceResolver:- Resolves a resource based into a context, like screen dimension.
- Added:
parseFromInlinePropertiesanddateFormat_YYYY_MM. EventStream:- Added
eventValidator.
- Added
Math:minMax,maxInListandminInList: added optionalcomparatorparameter.
- Added
-
2.5.1909 Dec 2020Release notes
Open source →MimeType: AddedisCharsetUTF16,isText,isXML,isXHTML,isFormURLEncoded,isStringType.dateFormat_YY*: added optional parameterdelimiter.InteractionCompleter: Added fieldtriggerDelayLimit.Math:- Added collection methods:
subtract,multiplyanddivide.
- Added collection methods:
-
2.5.1823 Nov 2020 -
2.5.1723 Nov 2020Release notes
Open source →- Added
resolveURL, similar toresolveUri. - Added
replaceStringMarks. buildStringPatternusingreplaceStringMarksand now returns empty string for null parameters.- Added
EventStreamDelegator, to point to instances ofEventStreamnot instantiated yet. - Added
ListenerWrapper, to handleStreamSubscriptionrelated to a listener and useful to create one shot listeners.
- Added
-
2.5.1625 Oct 2020Release notes
Open source →- New
AsyncValue: to handle values that comes fromFuture. - Added
isEncodedJSON,isEncodedJSONListandisEncodedJSONMap: to check if aStringis an encoded JSON. - ADded
isDigit,isAlphaNumeric,isDigitString,isAlphaNumericString. - Added
listMatchesAny,isListValuesIdentical,listContainsAll,ensureNotEmptyString,deepCatchesValues. MimeType.fileExtension: support forsvg,xhtml,mpeg,mp3,ico.- Changed method signature:
getUriRootURL,getUriBaseHostAndPort,resolveUri.
- New
-
2.5.1508 Oct 2020Release notes
Open source →- Added:
isEmptyString,isNotEmptyString,isListEntriesAllOfType. - Added
deepCopyMap. deepCopy: added parametercopier.NNField: Addedresolver.MimeType: added SVG support.InteractionCompleter:interact: Added parametersinteractionParametersandignoreConsecutiveEqualsParameters.- Added
dispose.
encodeJSON: Added parametertoEncodable.- Added:
toEncodableJSON. parseInt,parseDoubleandparseNumnow returns default value (def) in case of parsing error.- isDouble now can parse
.00pattern. - Fix:
dataSizeFormat.
- Added:
-
2.5.1418 Sep 2020Release notes
Open source →MimeType: Added new types.- Added constructor
MimeType.byExtension. MimeType: Fixed parsing ofgif.EventStream: AddedcancelAllSingletonSubscriptions,cancelSingletonSubscription,getSingletonSubscription.- Added
listenStreamWithInteractionCompleter. - pedantic: ^1.9.2
-
2.5.1304 Sep 2020 -
2.5.1203 Sep 2020Release notes
Open source →- Added
isPositiveNumber,isNegativeNumber. - Added
MimeType.APPLICATION_ZIP. - Added
maxInIterable,minInIterable. - Added
deepReplaceValues,deepReplaceListValues,deepReplaceMapValues. - Added
parseComparable,removeEmptyEntries,sortMapEntries,sortMapEntriesByValue,sortMapEntriesByKey.
- Added
-
2.5.1117 Aug 2020Release notes
Open source →- Added
NNField. - Added
clipNumber. parseBool: if value is a num: true = v > 0- More tests.
- Added
-
2.5.1016 Aug 2020 -
2.5.916 Aug 2020Release notes
Open source →MimeType: Addedcharset.- Added:
parseJSON,isBlankString,isBlankStringInRange,isEqualsSet,isEqualsIterable. - Added:
asTreeOfKeyString,parseMapEntry,groupIterableBy,sumIterable,averageIterable. - Added:
parseJSON,encodeJSON. - Removed
splitRegExp.splitnow acceptsPattern(StringandRegExp). - Optimized
isBlankCodeUnit.
-
2.5.802 Aug 2020Release notes
Open source →- Added string helpers:
isBlankChar,isBlankCodeUnit,hasBlankChar,hasBlankCharInRange. - IO:
catFile,catFileBytes,saveFile,saveFileBytes. InteractionCompleter:cancel- `MimeType``: equals and hashcode.
- Added:
isEqualsList,isEqualsMap.
- Added string helpers:
-
2.5.718 Jul 2020 -
2.5.617 Jul 2020 -
2.5.513 Jul 2020 -
2.5.411 Jul 2020Release notes
Open source →- Fix
MimeType.parsewhen parametermimeTypeis empty anddefaultMimeTypeis null. - Fix
DataURLBase64.asDataURLString - dartfmt.
- Fix
-
2.5.312 Jun 2020 -
2.5.203 Jun 2020