token_keeper 1.0.0
token_keeper: ^1.0.0 copied to clipboard
Auth tokens, handled. Pure-Dart token manager with single-flight refresh, proactive expiry handling, Result-based APIs, event stream and a Dio interceptor for drop-in 401 retry.
Changelog #
All notable changes to this package will be documented in this file. The format follows Keep a Changelog and this project adheres to Semantic Versioning.
1.0.0 — 2026-05-02 #
Added #
Tokenmodel with JSON, equality, expiry helpers, andcopyWith.Result<T>/Success<T>/Failure<T>sealed types withFailureTypeenum (unauthorized,network,unknown).TokenStorageinterface plusInMemoryTokenStorageimplementation.TokenKeepercore with:- single-flight refresh (one in-flight refresh per keeper, even under 50+ concurrent calls),
- proactive refresh via
proactiveWindow, withValidTokenwith bounded one-shot retry onunauthorized,getValidToken,forceRefresh,setTokens,clear,peek,- lifecycle event stream (
TokenRefreshedEvent,TokenClearedEvent,RefreshFailedEvent).
TokenKeeperInterceptorfor Dio with attach + 401-refresh-and-retry.RefreshRetryPolicywith built-in exponential backoff factory.- Pluggable
TokenKeeperLoggerandClock/FixedClockfor tests. - 37 unit tests covering single-flight, proactive refresh, retry policy, events, interceptor 401 handling, and edge cases.