v2.12.0
Adds support for push credential expiry and keep-alive.
updateCredential now takes an optional pushToken and a new resetExpiry flag:
// Rotate the push token (existing behaviour, unchanged)
await authsignal.push.updateCredential(pushToken: token)
// Keep-alive: reset the credential's expiry lease without changing the token
await authsignal.push.updateCredential(resetExpiry: true)
When pushToken is omitted, the server keeps the stored token.
AppCredential now exposes expiresAt (ISO timestamp), so you can check when the credential's lease lapses and re-enroll in time. Expired credentials are rejected by the server and cannot be revived.
The updateCredential response now includes the refreshed expiresAt.