| ⇢ | A | TokenConsumedEvent added | |
| ⇢ | A | TokenCreatedEvent added | |
| ⇢ | A | TokenExpiredEvent added | |
| ⇢ | A | TokenNotFoundEvent added | |
| ⇢ | A | TokenRetrievedEvent added | |
| ⇢ | A | TokenTotallyConsumedEvent added | |
| ⇢ | A | TokenUsedEvent added | |
| ⇢ | A | EventDispatcher added | |
| ⇢ | A | ConsumeTokenEvent added | |
| ⇢ | A | CreateTokenEvent added |
| ⇢ | A | TokenNotFoundEvent::__construct() added | |
| ⇢ | A | ConsumeTokenEvent::__construct() added | |
| ⇢ | A | CreateTokenEvent::__construct() added | |
| ⇢ | A | TokenUsedEvent::__construct() added | |
| ⇢ | A | TokenExpiredEvent::__construct() added | |
| ⇢ | A | EventDispatcher::tokenTotallyConsumed() added | |
| ⇢ | A | EventDispatcher::tokenNotFound() added | |
| ⇢ | A | EventDispatcher::tokenExpired() added | |
| ⇢ | A | EventDispatcher::tokenUsed() added | |
| ⇢ | A | EventDispatcher::tokenRetrieved() added | |
| ⋮ | view more | ||
| A | ↘ | B | TokenManager::get() got worse |