PackageTrack
Sign in Get early access

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 2026
2019 2020 2021 2022 2023 2024 2025 2026
Release Pre-release

Releases

latest 60 of 84
  1. 3.3.14 26 Feb 2026
    Release notes
    • TreeReferenceMap:

      • Replaced _purged field type from DualLazyWeakMap to Map<K, _PurgedValue<V>>.
      • Updated purged entries handling to store (value, time) records instead of MapEntry<DateTime, V>.
      • Improved purged entries timeout checking and scheduling with delayed future.
    • LazyWeakReference:

      • Added strongIfWeak({bool keepWeakRef = true}) method to promote a weak reference to strong if possible.
    • weak_map.dart:

      • Modified _Entry equality to support comparison with raw keys using identity.
      • Updated _EntryKey equality to use identity comparison and consistent hash code checks.
      • Changed _EntryLazyRef and _EntryLazyRefValue to use strongIfWeak() for key and value retrieval.
      • Made _keyLazyRefManager and _valueLazyRefManager non-nullable in LazyWeakKeyMap and DualLazyWeakMap.
      • Simplified _createEntry methods in LazyWeakKeyMap and DualLazyWeakMap to always create lazy weak entries with non-null managers.
      • Improved docs for WeakKeyMap, DualWeakMap.
        • Added doc to LazyWeakKeyMap, DualLazyWeakMap
    Open source →
    Release notes
    • TreeReferenceMap:

      • Replaced _purged field type from DualLazyWeakMap to Map<K, _PurgedValue<V>>.
      • Updated purged entries handling to store (value, time) records instead of MapEntry<DateTime, V>.
      • Improved purged entries timeout checking and scheduling with delayed future.
    • LazyWeakReference:

      • Added strongIfWeak({bool keepWeakRef = true}) method to promote a weak reference to strong if possible.
    • weak_map.dart:

      • Modified _Entry equality to support comparison with raw keys using identity.
      • Updated _EntryKey equality to use identity comparison and consistent hash code checks.
      • Changed _EntryLazyRef and _EntryLazyRefValue to use strongIfWeak() for key and value retrieval.
      • Made _keyLazyRefManager and _valueLazyRefManager non-nullable in LazyWeakKeyMap and DualLazyWeakMap.
      • Simplified _createEntry methods in LazyWeakKeyMap and DualLazyWeakMap to always create lazy weak entries with non-null managers.
      • Improved docs for WeakKeyMap, DualWeakMap.
        • Added doc to LazyWeakKeyMap, DualLazyWeakMap
    Open source →
    Release notes

    v3.3.14 Latest

    Latest

    Compare

    Choose a tag to compare

    Open source →
  2. 3.3.13 25 Feb 2026
    Release notes
    • TreeReferenceMap:

      • Replaced _purged field type from DualWeakMap to DualLazyWeakMap.
      • Use global LazyWeakReferenceManagerByType to create DualLazyWeakMap instances for purged entries.
    • ExpandoWithFinalizer:

      • Refactored to extend generic WithFinalizer base class.
      • Introduced strongly typed FinalizerValueWrapper abstraction and concrete implementations:
        • SimpleFinalizerWrapper, SimpleFinalizerWrapperDebug
        • ExpandoValueWrapper, ExpandoValueWrapperDebug
      • Added AttachOnlyFinalizer class for write-only finalizer usage.
      • Added debug mode to retain weak references to keys for inspection.
      • Improved finalizer attach/detach logic and wrapper management.
    • lazy_weak_reference.dart:

      • Added GenericReference interface for strong/weak reference abstraction.
      • Added LazyWeakReferenceManagerByType singleton managing per-type LazyWeakReferenceManager instances.
      • Added toString and compareTo improvements to LazyWeakReference.
      • Added LazyWeakReferenceManagerByType class for centralized management.
      • Added toString override to LazyWeakReferenceManager.
    • weak_map.dart:

      • Refactored internal entry classes to support lazy weak references:
        • Added _EntryLazyRef, _EntryLazyRef1, _EntryLazyRef2, _EntryLazyRefValue.
      • WeakKeyMap: include _autoPurge in isAutoPurgeRequired and centralize auto-purge check.
      • Added LazyWeakKeyMap subclass using lazy weak references for keys.
      • Added DualLazyWeakMap subclass using lazy weak references for keys and values.
      • Added factory constructors WeakKeyMap.configured and DualWeakMap.configured to create lazy weak reference variants.
      • Added removeWhereKey extension method on Map and WeakKeyMap.
      • Updated purge logic to use removeWhereKey.
      • Updated DualWeakMap to optionally use lazy weak references for keys and values.
    • resource.dart:

      • Changed ResourceContentCache to use private _onLoadEventStream instead of public onLoad field.
      • Updated ResourceContent to lazily initialize _onLoadEventStream and use it internally.
      • Changed event notification to use _onLoadEventStream?.add instead of onLoad.add.
    Open source →
    Release notes
    • TreeReferenceMap:

      • Replaced _purged field type from DualWeakMap to DualLazyWeakMap.
      • Use global LazyWeakReferenceManagerByType to create DualLazyWeakMap instances for purged entries.
    • ExpandoWithFinalizer:

      • Refactored to extend generic WithFinalizer base class.
      • Introduced strongly typed FinalizerValueWrapper abstraction and concrete implementations:
        • SimpleFinalizerWrapper, SimpleFinalizerWrapperDebug
        • ExpandoValueWrapper, ExpandoValueWrapperDebug
      • Added AttachOnlyFinalizer class for write-only finalizer usage.
      • Added debug mode to retain weak references to keys for inspection.
      • Improved finalizer attach/detach logic and wrapper management.
    • lazy_weak_reference.dart:

      • Added GenericReference interface for strong/weak reference abstraction.
      • Added LazyWeakReferenceManagerByType singleton managing per-type LazyWeakReferenceManager instances.
      • Added toString and compareTo improvements to LazyWeakReference.
      • Added LazyWeakReferenceManagerByType class for centralized management.
      • Added toString override to LazyWeakReferenceManager.
    • weak_map.dart:

      • Refactored internal entry classes to support lazy weak references:
        • Added _EntryLazyRef, _EntryLazyRef1, _EntryLazyRef2, _EntryLazyRefValue.
      • WeakKeyMap: include _autoPurge in isAutoPurgeRequired and centralize auto-purge check.
      • Added LazyWeakKeyMap subclass using lazy weak references for keys.
      • Added DualLazyWeakMap subclass using lazy weak references for keys and values.
      • Added factory constructors WeakKeyMap.configured and DualWeakMap.configured to create lazy weak reference variants.
      • Added removeWhereKey extension method on Map and WeakKeyMap.
      • Updated purge logic to use removeWhereKey.
      • Updated DualWeakMap to optionally use lazy weak references for keys and values.
    • resource.dart:

      • Changed ResourceContentCache to use private _onLoadEventStream instead of public onLoad field.
      • Updated ResourceContent to lazily initialize _onLoadEventStream and use it internally.
      • Changed event notification to use _onLoadEventStream?.add instead of onLoad.add.
    Open source →
    Release notes

    v3.3.13

    Compare

    Choose a tag to compare

    Open source →
  3. 3.3.12 21 Feb 2026
    Release notes
    • LazyWeakReference:

      • Added intrusive doubly-linked list fields _prev and _next for internal queue management.
      • Simplified target and targetIfStrong getters using null-coalescing.
    • LazyWeakReferenceManager:

      • Replaced SplayTreeSet with an intrusive doubly-linked aging queue (_head, _tail) for strong references.
      • Added _pushBack and _remove methods for O(1) insertion and removal in the aging queue.
      • Updated _handleNewStrongRef and _handleAccessStrongRef to use the intrusive queue.
      • Updated _handleNewWeakRef and _handleDisposedRef to remove references from the queue using _remove.
      • Refactored _weakenStrongRefs to 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.

    Performance Improvements

    • Replaced the internal SplayTreeSet used 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 SplayTreeSet implementation
      • ~35% faster than Queue
      • Lower GC pressure and allocation overhead
      • Constant-time weaken cycles with stable latency under high churn
    Open source →
    Release notes
    • LazyWeakReference:

      • Added intrusive doubly-linked list fields _prev and _next for internal queue management.
      • Simplified target and targetIfStrong getters using null-coalescing.
    • LazyWeakReferenceManager:

      • Replaced SplayTreeSet with an intrusive doubly-linked aging queue (_head, _tail) for strong references.
      • Added _pushBack and _remove methods for O(1) insertion and removal in the aging queue.
      • Updated _handleNewStrongRef and _handleAccessStrongRef to use the intrusive queue.
      • Updated _handleNewWeakRef and _handleDisposedRef to remove references from the queue using _remove.
      • Refactored _weakenStrongRefs to 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.

    Performance Improvements

    • Replaced the internal SplayTreeSet used 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 SplayTreeSet implementation
      • ~35% faster than Queue
      • Lower GC pressure and allocation overhead
      • Constant-time weaken cycles with stable latency under high churn
    Open source →
    Release notes

    v3.3.12

    Compare

    Choose a tag to compare

    Open source →
  4. 3.3.11 21 Feb 2026
    Release notes
    • GitHub Actions workflow (.github/workflows/dart.yml):

      • Updated actions/checkout from v2 to v6.
      • Split test jobs into separate test_vm and test_chrome jobs for VM and Chrome platforms respectively.
      • Updated codecov/codecov-action from v1 to v5.
      • Added dart pub publish --dry-run step to the main build job.
    • LazyWeakReference:

      • Implemented Comparable<LazyWeakReference> with a strict total order based on _unixTimeMs and unique id.
      • Added id field as a unique sequence identifier assigned by the manager.
      • Exposed unixTimeMs getter.
      • Removed direct _unixTimeMs updates from strong() method; now managed by LazyWeakReferenceManager.
      • Updated constructors to accept id and defer _unixTimeMs assignment to manager.
    • LazyWeakReferenceManager:

      • Added _refIdCount to assign unique ids to references.
      • Changed internal strong reference queue from Queue to SplayTreeSet ordered by LazyWeakReference.compareTo.
      • Updated _handleNewStrongRef and _handleAccessStrongRef to update _unixTimeMs and maintain ordering in _strongRefs.
      • Updated _handleNewWeakRef and _handleDisposedRef to remove references from _strongRefs.
      • Updated _weakenStrongRefs to process references from _strongRefs in order, removing the oldest eligible references first.
      • Improved scheduling logic to debounce weakening with precise timing based on reference age.
    Open source →
    Release notes
    • GitHub Actions workflow (.github/workflows/dart.yml):

      • Updated actions/checkout from v2 to v6.
      • Split test jobs into separate test_vm and test_chrome jobs for VM and Chrome platforms respectively.
      • Updated codecov/codecov-action from v1 to v5.
      • Added dart pub publish --dry-run step to the main build job.
    • LazyWeakReference:

      • Implemented Comparable<LazyWeakReference> with a strict total order based on _unixTimeMs and unique id.
      • Added id field as a unique sequence identifier assigned by the manager.
      • Exposed unixTimeMs getter.
      • Removed direct _unixTimeMs updates from strong() method; now managed by LazyWeakReferenceManager.
      • Updated constructors to accept id and defer _unixTimeMs assignment to manager.
    • LazyWeakReferenceManager:

      • Added _refIdCount to assign unique ids to references.
      • Changed internal strong reference queue from Queue to SplayTreeSet ordered by LazyWeakReference.compareTo.
      • Updated _handleNewStrongRef and _handleAccessStrongRef to update _unixTimeMs and maintain ordering in _strongRefs.
      • Updated _handleNewWeakRef and _handleDisposedRef to remove references from _strongRefs.
      • Updated _weakenStrongRefs to process references from _strongRefs in order, removing the oldest eligible references first.
      • Improved scheduling logic to debounce weakening with precise timing based on reference age.
    Open source →
    Release notes

    v3.3.11

    Compare

    Choose a tag to compare

    Open source →
  5. 3.3.10 21 Feb 2026
    Release notes
    • Added LazyWeakReference<T>:

      • Holds a reference that starts strong and automatically degrades to weak after a delay.
      • Provides target, targetIfStrong, isStrong, isWeak, isAlive, isLost, isDisposed properties.
      • Supports promotion to strong via strong() and weakening via weak().
      • 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() and weak() factory methods to create managed references.
    • Updated lib/swiss_knife.dart:

      • Exported src/lazy_weak_reference.dart.
    Open source →
    Release notes
    • Added LazyWeakReference<T>:

      • Holds a reference that starts strong and automatically degrades to weak after a delay.
      • Provides target, targetIfStrong, isStrong, isWeak, isAlive, isLost, isDisposed properties.
      • Supports promotion to strong via strong() and weakening via weak().
      • 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() and weak() factory methods to create managed references.
    • Updated lib/swiss_knife.dart:

      • Exported src/lazy_weak_reference.dart.
    Open source →
    Release notes

    v3.3.10

    Compare

    Choose a tag to compare

    Open source →
  6. 3.3.9 20 Feb 2026
    Release notes
    • TreeReferenceMap:
      • Rollback: avoid WeakReference issues with WASM on Android/Chrome:
        • Replaced internal _map from WeakKeyMap<K, V> to standard Map<K, V>.
        • Updated all _map method calls from containsKeyNoPurge to standard containsKey.
        • Adjusted put, get, addAll, containsKey, and containsValue methods to work with the new _map type.
        • Removed usage of weak key map features and related purging logic tied to it.
    Open source →
    Release notes
    • TreeReferenceMap:
      • Rollback: avoid WeakReference issues with WASM on Android/Chrome:
        • Replaced internal _map from WeakKeyMap<K, V> to standard Map<K, V>.
        • Updated all _map method calls from containsKeyNoPurge to standard containsKey.
        • Adjusted put, get, addAll, containsKey, and containsValue methods to work with the new _map type.
        • Removed usage of weak key map features and related purging logic tied to it.
    Open source →
    Release notes

    v3.3.9

    Compare

    Choose a tag to compare

    Open source →
  7. 3.3.8 20 Feb 2026
    Release notes
    • Added new DualMap<K, V> class in lib/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, entries provide iterable views.
    • Updated lib/swiss_knife.dart:

      • Exported new src/dual_map.dart.
    Open source →
    Release notes
    • Added new DualMap<K, V> class in lib/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, entries provide iterable views.
    • Updated lib/swiss_knife.dart:

      • Exported new src/dual_map.dart.
    Open source →
    Release notes

    v3.3.8

    Compare

    Choose a tag to compare

    Open source →
  8. 3.3.7 20 Feb 2026
    Release notes
    • WeakKeyMap:
      • putValueIfAbsent: updated to call _onPutEntry and increment _unpurgedCount when a new entry is inserted.
    Open source →
    Release notes
    • WeakKeyMap:
      • putValueIfAbsent: updated to call _onPutEntry and increment _unpurgedCount when a new entry is inserted.
    Open source →
    Release notes

    v3.3.7

    Compare

    Choose a tag to compare

    Open source →
  9. 3.3.6 20 Feb 2026
    Release notes
    • TreeReferenceMap:

      • getParentKey: fixed handling of purged entries by using _map.containsKeyNoPurge and nullable _purged.
      • containsKey: changed to use _map.containsKeyNoPurge to avoid purging during lookup.
    • New ExpandoWithFinalizer.

    • WeakKeyMap and DualWeakMap:

      • Added containsKeyNoPurge and containsValueNoPurge methods to check presence without purging collected entries.
      • Added getNoPurge method to get value without purging.
      • Added putValueIfAbsent method to insert a value only if absent.
      • Improved equality and hashCode implementations in _EntryKey for consistent behavior.
      • Updated containsValue in DualWeakMap to properly check presence with purging logic.
    • swiss_knife.dart:

      • Exported ExpandoWithFinalizer from the public API.
    Open source →
    Release notes
    • TreeReferenceMap:

      • getParentKey: fixed handling of purged entries by using _map.containsKeyNoPurge and nullable _purged.
      • containsKey: changed to use _map.containsKeyNoPurge to avoid purging during lookup.
    • New ExpandoWithFinalizer.

    • WeakKeyMap and DualWeakMap:

      • Added containsKeyNoPurge and containsValueNoPurge methods to check presence without purging collected entries.
      • Added getNoPurge method to get value without purging.
      • Added putValueIfAbsent method to insert a value only if absent.
      • Improved equality and hashCode implementations in _EntryKey for consistent behavior.
      • Updated containsValue in DualWeakMap to properly check presence with purging logic.
    • swiss_knife.dart:

      • Exported ExpandoWithFinalizer from the public API.
    Open source →
    Release notes

    v3.3.6

    Compare

    Choose a tag to compare

    Open source →
  10. 3.3.5 11 Feb 2026
    Release notes
    • EventStream:

      • Changed _controller field to nullable _controllerObj and lazily initialized it.
      • Changed _stream field to nullable _streamObj and lazily initialized it as a broadcast stream.
      • Updated add and addError methods to check isUsed (based on _streamObj presence) before adding events.
      • Updated close, isClosed, and isPaused to handle nullable _controllerObj.
      • Added isUsed getter to indicate if the stream has been used (initialized).
    • 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_validator version from ^5.0.3 to ^5.0.4.
    Open source →
    Release notes
    • EventStream:

      • Changed _controller field to nullable _controllerObj and lazily initialized it.
      • Changed _stream field to nullable _streamObj and lazily initialized it as a broadcast stream.
      • Updated add and addError methods to check isUsed (based on _streamObj presence) before adding events.
      • Updated close, isClosed, and isPaused to handle nullable _controllerObj.
      • Added isUsed getter to indicate if the stream has been used (initialized).
    • 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_validator version from ^5.0.3 to ^5.0.4.
    Open source →
    Release notes

    v3.3.5

    Compare

    Choose a tag to compare

    Open source →
  11. 3.3.4 07 Feb 2026
    Release notes
    • Added WeakKeyMap and DualWeakMap classes in weak_map.dart:

      • Implemented weakly-referenced keys map with auto-purge support.
      • Added dual weak map with weakly-referenced keys and values.
      • Added SwappedDualWeakMap view for key-value swapped access.
      • Improved internal entry handling with _EntryRef classes.
      • Added iterable and iterator implementations for weak maps.
    • Updated TreeReferenceMap in collections.dart:

      • Replaced internal map with WeakKeyMap for weak key references.
      • Added autoPurgeThreshold field and logic to control auto-purge frequency.
      • Added onPurgedEntries callback 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 keysReversed getter returning reversed keys list.
      • Improved cache expiration and purged entries revalidation logic.
    • Updated EventStream in events.dart:

      • Changed _listenSignatures from non-nullable to nullable Set.
      • Added null checks and lazy initialization for _listenSignatures.
      • Improved singleton subscription management to handle null safely.
    • Updated swiss_knife.dart:

      • Exported new weak_map.dart.
    • Updated pubspec.yaml:

      • Bumped test dependency to ^1.29.0.
      • Bumped dependency_validator to ^5.0.3.
    Open source →
  12. 3.3.3 22 Jul 2025
    Release notes
    • TreeReferenceMap:
      • getSubValues: added parameter traverseSubValues.
    Open source →
  13. 3.3.2 22 Jul 2025
    Release notes
    • TreeReferenceMap:
      • Optimize getSubValuesImpl and _walkTreeImpl to avoid self-recursion and use a stack-based algorithm.
    Open source →
  14. 3.3.1 13 Jul 2025
    Release notes
    • MimeType:

      • Fix parsing for XML: change result from text/xml to application/xml (oficial).
    • test: ^1.26.2

    • dependency_validator: ^5.0.2

    • collection: ^1.19.1

    • coverage: ^1.15.0

    Open source →
  15. 3.3.0 24 Feb 2025
    Release notes
    • 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

    Open source →
  16. 3.2.3 21 Dec 2024
    Release notes
    • 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

    Open source →
  17. 3.2.2 14 Sep 2024
    Release notes
    • MimeType:
    • Added isYAML, isFont, isPDF, isDart, isOctetStream,
    • Added isZip, isGZip, isBZip2, isXZ, isCompressed.
    • Added isTar, isTarGZip, isTarBZip2, isTarXZ, isTarCompressed.
    Open source →
  18. 3.2.1 09 Aug 2024
    Release notes
    • MimeType:

      • Added applicationOctetStream and bytes.
    • test: ^1.25.8

    • coverage: ^1.9.0

    Open source →
  19. 3.2.0 15 Feb 2024
    Release notes
    • 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

    Open source →
  20. 3.1.6 30 Dec 2023
    Release notes
    • MimeType: fix charset for text/html type.

    • sdk: '>=2.18.0 <4.0.0'

    • intl: ^0.18.1

    • resource_portable: ^3.1.0

    Open source →
  21. 3.1.5 11 Apr 2023
    Release notes
    • MimeType:
      • parse: optimize and update recognized types.
      • byExtension: add more extensions.
    • Added getCharsetEncoding.
    Open source →
  22. 3.1.4 31 Mar 2023
    Release notes
    • EventStream:
      • listen: new parameter overwriteSingletonSubscription.
      • cancelSingletonSubscription: now ensures that the previous subscription is removed from internal handler.
    • coverage: ^1.6.3
    Open source →
  23. 3.1.3 21 Dec 2022
    Release notes
    • Code adjustments for lints: ^2.0.1.
    • intl: ^0.18.0
    • resource_portable: ^3.0.1
    • lints: ^2.0.1
    • test: ^1.22.1
    Open source →
  24. 3.1.2 15 Nov 2022
    Release notes
    • DataURLBase64:
      • Added constructor DataURLBase64.from.
      • Improved Null Safety code.
    • Fix typo.
    • test: ^1.17.12
    • dependency_validator: ^3.2.2
    • collection: ^1.17.0
    • coverage: ^1.6.1
    Open source →
  25. 3.1.1 26 Apr 2022
    Release notes
    • parseBool:
    • Improve possible valid values.
    Open source →
  26. 3.1.0 26 Apr 2022
    Release notes
    • 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
    Open source →
  27. 3.0.8 08 Jul 2021
    Release notes
    • Fixed ResourceContent load with errors.
    • Test coverage.
    • Added FOSSA Status.
    Open source →
  28. 3.0.7 28 May 2021
    Release notes
    • Added Math.clamp.
    • Fixed formatDecimal for scientific notation.
    Open source →
  29. 3.0.6 22 Mar 2021
    Release notes
    • Added UniqueCaller and parseIntList.
    • Null safety migration adjustments.
    Open source →
  30. 3.0.5 11 Mar 2021
    Release notes
    • Null safety migration adjustments.
    Open source →
  31. 3.0.4 10 Mar 2021
    Release notes
    • collections: improve Null Safety usage.
    Open source →
  32. 3.0.3 10 Mar 2021
    Release notes
    • Null safety migration adjustments.
    Open source →
  33. 3.0.2 10 Mar 2021
    Release notes
    • Null safety migration adjustments.
    Open source →
  34. 3.0.1 08 Mar 2021
    Release notes
    • Null safety migration adjustments.
    Open source →
  35. 3.0.0 07 Mar 2021
    Release notes
    • 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
    Open source →
  36. 2.5.26 04 Mar 2021
    Release notes
    • Optimize: parseInt, parseDouble and parseNum.
    • Fix: listNotMatchesAll and listMatchesAny when leading with lists with null elements.
    • Dart 2.12.0+ compliant: dartfmt and dartanalyzer.
    Open source →
  37. 2.5.25 28 Jan 2021
    Release notes
    • TreeReferenceMap: ensure that root is not null.
    • EventStream: Added listenOneShot.
    Open source →
  38. 2.5.24 19 Jan 2021
    Release notes
    • TreeReferenceMap:
      • fix getParentKey.
    Open source →
  39. 2.5.23 18 Jan 2021
    Release notes
    • Added TreeReferenceMap: an alternative to Weak References (nonexistent in Dart).
    Open source →
  40. 2.5.22 17 Jan 2021
    Release notes
    • MimeType.byExtension: Added parameter defaultAsApplication.
    Open source →
  41. 2.5.21 17 Jan 2021
    Release notes
    • MimeType: Added htmlTag and isAudio.
    • Added unquoteString.
    Open source →
  42. 2.5.20 07 Jan 2021
    Release notes
    • Added ObjectCache.
    • Added Dimension.
    • Added ContextualResource and ContextualResourceResolver:
      • Resolves a resource based into a context, like screen dimension.
    • Added: parseFromInlineProperties and dateFormat_YYYY_MM.
    • EventStream:
      • Added eventValidator.
    • Math:
      • minMax, maxInList and minInList: added optional comparator parameter.
    Open source →
  43. 2.5.19 09 Dec 2020
    Release notes
    • MimeType: Added isCharsetUTF16, isText, isXML, isXHTML, isFormURLEncoded, isStringType.
    • dateFormat_YY*: added optional parameter delimiter.
    • InteractionCompleter: Added field triggerDelayLimit.
    • Math:
      • Added collection methods: subtract, multiply and divide.
    Open source →
  44. 2.5.18 23 Nov 2020
    Release notes
    • Improve API Documentation.
    Open source →
  45. 2.5.17 23 Nov 2020
    Release notes
    • Added resolveURL, similar to resolveUri.
    • Added replaceStringMarks.
    • buildStringPattern using replaceStringMarks and now returns empty string for null parameters.
    • Added EventStreamDelegator, to point to instances of EventStream not instantiated yet.
    • Added ListenerWrapper, to handle StreamSubscription related to a listener and useful to create one shot listeners.
    Open source →
  46. 2.5.16 25 Oct 2020
    Release notes
    • New AsyncValue: to handle values that comes from Future.
    • Added isEncodedJSON, isEncodedJSONList and isEncodedJSONMap: to check if a String is an encoded JSON.
    • ADded isDigit, isAlphaNumeric, isDigitString, isAlphaNumericString.
    • Added listMatchesAny, isListValuesIdentical, listContainsAll, ensureNotEmptyString, deepCatchesValues.
    • MimeType.fileExtension: support for svg, xhtml, mpeg, mp3, ico.
    • Changed method signature: getUriRootURL, getUriBaseHostAndPort, resolveUri.
    Open source →
  47. 2.5.15 08 Oct 2020
    Release notes
    • Added: isEmptyString, isNotEmptyString, isListEntriesAllOfType.
    • Added deepCopyMap.
    • deepCopy: added parameter copier.
    • NNField: Added resolver.
    • MimeType: added SVG support.
    • InteractionCompleter:
      • interact: Added parameters interactionParameters and ignoreConsecutiveEqualsParameters.
      • Added dispose.
    • encodeJSON: Added parameter toEncodable.
    • Added: toEncodableJSON.
    • parseInt, parseDouble and parseNum now returns default value (def) in case of parsing error.
    • isDouble now can parse .00 pattern.
    • Fix: dataSizeFormat.
    Open source →
  48. 2.5.14 18 Sep 2020
    Release notes
    • MimeType: Added new types.
    • Added constructor MimeType.byExtension.
    • MimeType: Fixed parsing of gif.
    • EventStream: Added cancelAllSingletonSubscriptions, cancelSingletonSubscription, getSingletonSubscription.
    • Added listenStreamWithInteractionCompleter.
    • pedantic: ^1.9.2
    Open source →
  49. 2.5.13 04 Sep 2020
    Release notes
    • removeUriQueryString: avoid blank fragment in the URL.
    Open source →
  50. 2.5.12 03 Sep 2020
    Release notes
    • Added isPositiveNumber, isNegativeNumber.
    • Added MimeType.APPLICATION_ZIP.
    • Added maxInIterable, minInIterable.
    • Added deepReplaceValues, deepReplaceListValues, deepReplaceMapValues.
    • Added parseComparable, removeEmptyEntries, sortMapEntries, sortMapEntriesByValue, sortMapEntriesByKey.
    Open source →
  51. 2.5.11 17 Aug 2020
    Release notes
    • Added NNField.
    • Added clipNumber.
    • parseBool: if value is a num: true = v > 0
    • More tests.
    Open source →
  52. 2.5.10 16 Aug 2020
    Release notes
    • Fix typo.
    Open source →
  53. 2.5.9 16 Aug 2020
    Release notes
    • MimeType: Added charset.
    • Added: parseJSON, isBlankString, isBlankStringInRange, isEqualsSet, isEqualsIterable.
    • Added: asTreeOfKeyString, parseMapEntry, groupIterableBy, sumIterable, averageIterable.
    • Added: parseJSON, encodeJSON.
    • Removed splitRegExp. split now accepts Pattern (String and RegExp).
    • Optimized isBlankCodeUnit.
    Open source →
  54. 2.5.8 02 Aug 2020
    Release notes
    • Added string helpers: isBlankChar, isBlankCodeUnit, hasBlankChar, hasBlankCharInRange.
    • IO: catFile, catFileBytes, saveFile, saveFileBytes.
    • InteractionCompleter: cancel
    • `MimeType``: equals and hashcode.
    • Added: isEqualsList, isEqualsMap.
    Open source →
  55. 2.5.7 18 Jul 2020
    Release notes
    • Added: isInUnixEpochRange
    • New event handler: InteractionCompleter.
    Open source →
  56. 2.5.6 17 Jul 2020
    Release notes
    • dartfmt
    • test_coverage: ^0.4.2
    Open source →
  57. 2.5.5 13 Jul 2020
    Release notes
    • Change isEmptyValue to is isEmptyObject.
    • Added isNotEmptyObject.
    Open source →
  58. 2.5.4 11 Jul 2020
    Release notes
    • Fix MimeType.parse when parameter mimeType is empty and defaultMimeType is null.
    • Fix DataURLBase64.asDataURLString
    • dartfmt.
    Open source →
  59. 2.5.3 12 Jun 2020
    Release notes
    • fix buildStringPattern() extraParameters issue.
    Open source →
  60. 2.5.2 03 Jun 2020
    Release notes
    • Math.mean() returns 0 on empty lists.
    • dartfmt.
    • Add badges to README.md
    Open source →

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive