v0.26.0
Version 0.26.0 includes the following changes:
- Reworked
SessionConfigurationandATProtocolConfiguration.- This change is supposed to handle ease of use with respect to how to handle session management, retrieving and sending tokens, and storing tokens securely.
ATProtocolConfigurationis supposed to be for app passwords and as such, the way things are managed for sessions will only relate to App Password-related authentication.- Included with the rework:
UserSessionRegistryis anactorthat manages multiple instances ofUserSession. This is useful for situations where an app can let the user log into multiple accounts at once.SecureKeychainProtocolis aprotocolused for managing the access token, refresh token, and password. The refresh token and password are stored in the keychain, while the access token is stored in-memory.- An
actornamedAppleSecureKeychainis provided for applications running on all Apple platforms. Linux and Windows developers will need to implement this on their own for now. A future update may includeactors specifically for Linux and Windows.
- An
- All required and optionally authenticated methods will check to see if the token has expired (and will auto-refresh the token if it is).
- Added support for the following in
ATProtoBluesky:- Adding, editing, and deleting Profile records.
- Adding, editing, and deleting List records.
- Adding and deleting ListItem records.
- Adding and deleting ListBlock records.
- Also made improvements to determine whether a block record can be created (for example, if the DID of the user account doesn’t exist).
- Made sure the last remaining lexicon methods no longer uses
Result<Success, Failure> as itsreturn` type. - Custom
URLSessionConfigurationobjects can now be used, whether onSessionConfigurationprotocol, or the mainATProtoKitclass.- Please note: the
URLSessionConfigurationobject inATProtoKitwill override theURLSessionConfigurationobject inSessionConfiguration.
- Please note: the
- Removed the
shouldAuthenticateargument fromgetSearchActors().- According to Bluesky’s new documentation, this method can only be used with authentication.
- Improved on the truncation of links in Bluesky posts. (Thanks, @aaronvegh!)
- Please note: the lexicons models and methods have not been updated since the beginning of April. They will be updated overtime.
Once again, thank you for your support. Please give feedback, bug reports, and contributions if you have time. Consider starring this project if you find it helpful, and feel free to donate an amount that reflects the value it has brought to you. Your support helps ensure the continued development and improvement of this project. You can also speak to me on Bluesky (@cjrriley.com) for any questions.