Skip to content

Releases: MasterJ93/ATProtoKit

v0.21.3

26 Dec 09:42
Compare
Choose a tag to compare

Version 0.21.3 includes the following changes:

  • Updated getSession to check if the output matches the UserSession object.
    • If it’s not a match, then the method will create a new UserSession object.
  • Fixed an issue where refreshSession may not have been able to create a new UserSession object in a certain scenario.
  • Fixed an issue where ATRecordTypeRegistry crashes while the main ATProtoKit class is initializing.
    • This is a temporary fix until a better solution can be found.
  • Fixed some decoding issues.
  • Fixed an issue where Bluesky records may be added during configuration.
    • This should not be happening unless the developer is explicitly and directly invoking the main ATProtoKit class (and does not explicitly disable it).

Once again, thank you for your support. Please give feedback, bug reports, and contributions if you have time. You can also speak to me on Bluesky (@cjrriley.com) for any questions.

v0.21.2

22 Dec 03:46
Compare
Choose a tag to compare

Version 0.21.2 includes the following changes:

  • Tweaked getSession and refreshSession in ATProtocolConfiguration . Now you can pass an access token or refresh token directly as an argument.
    • Furthermore, you can pass a UserSession object into ATProtocolConfiguration.session if you wish to do so.
    • This is a temporary solution until a better way to handle sessions is made without disrupting the code base of developers already using this project.
  • Fixed how ratelimit-reset is handled. (Thanks, @mfreiwald!)
  • Fixed an issue where getAuthorFeed doesn’t properly handle the value of the postFilter argument.
  • Updated references to remove CentOS 7, since Swift no longer supports this Linux distro.

Once again, thank you for your support. Please give feedback, bug reports, and contributions if you have time. You can also speak to me on Bluesky (@cjrriley.com) for any questions.

v0.21.1

11 Dec 04:20
Compare
Choose a tag to compare

Version 0.21.1 includes the following changes:

  • Tweaked getSession and refreshSession in ATProtocolConfiguration . Now you can pass an access token or refresh token directly as an argument.
    • Furthermore, you can pass a UserSession object into ATProtocolConfiguration.session if you wish to do so.
    • This is a temporary solution until a better way to handle sessions is made without disrupting the code base of developers already using this project.

Once again, thank you for your support. Please give feedback, bug reports, and contributions if you have time. You can also speak to me on Bluesky (@cjrriley.com) for any questions.

v0.21.0

07 Dec 22:09
Compare
Choose a tag to compare

Version 0.21.0 includes the following changes:

  • Changed the way handing sessions work.
    • The now old method only inserted the UserSession object to the ATProtoKit class. This created issues with respect to how the session will be updated. This also made the SessionProtocol protocol useless, since developers that want to make their own session configuration will have a more difficult time doing so. This change will solve these issues.
      • This is a breaking change, so you’ll need to migrate your code to reflect on this. However, this is easy to do:
        • authenticate() no longer has a return statement, so there’s no need to have a variable attached to it.
        • The ATProtoKit class will replace the session argument that asks for a UserSession object with a ProtocolConfiguration object.
        • Everything else should work from there.
  • You can now create and delete repost records with ATProtoBluesky. (Thanks, @andylin2004!)
  • Progress for support for custom user agents. (Thanks, @airowe!)
    • Not everything has been hooked up yet, but for now, a user agent has been added to clients. In a future update, you will be able to add your own custom user agents.
  • Moved all session-related lexicon methods to the main ATProtoKit class.
    • ATProtocolConfiguration now accesses those methods via proxy methods.
  • Added a Special Thanks section in CONTRIBUTIONS.
  • Added Package@6.0.0.swift
    • This is a configuration file for the compiler. We want to have a separate file just for compilers that are on the Swift 6.0 toolchain or higher so we can make sure the build runs successfully on each supported version.
  • Progress towards renaming variables in accordance with the Swift API Design Guidelines.
  • Fixed an issue where getSession has a decoding error.

Once again, thank you for your support. Please give feedback, bug reports, and contributions if you have time. You can also speak to me on Bluesky (@cjrriley.com) for any questions.

v0.20.3

02 Dec 02:10
Compare
Choose a tag to compare

Version 0.20.3 includes the following changes:

  • Re-organized the DocC a bit more.
  • Moved ImageQuery to ATProtoTools.
  • Fixed an issue where the headers weren’t decoding correctly.
    • According to the AT Protocol specification, you should be using the “Retry-After” header when error 429 is made. However, the actual header name is "ratelimit-reset”.
  • Fixed an issue where getSession returns SessionResponse instead of UserSession.

Once again, thank you for your support. Please give feedback, bug reports, and contributions if you have time. You can also speak to me on Bluesky (@cjrriley.com) for any questions.

v0.20.2

01 Dec 02:40
Compare
Choose a tag to compare

Version 0.20.2 includes the following changes:

  • Fixed last remaining data race issue.
    • As a result, StrictConcurrency has been re-enabled.

Once again, thank you for your support. Please give feedback, bug reports, and contributions if you have time. You can also speak to me on Bluesky (@cjrriley.com) for any questions.

v0.20.1

27 Nov 22:46
Compare
Choose a tag to compare

Version 0.20.1 includes the following changes:

  • Disabled StrictConcurrency temporarily.
    • This will be commented out until all data race issues have been resolved.
  • Fixed an issue where listing notifications would give a decoding error. (Thanks, @Dimillian!)
  • Fixed an issue where two-factor authentication may not work if you passed the token.

Once again, thank you for your support. Please give feedback, bug reports, and contributions if you have time. You can also speak to me on Bluesky (@cjrriley.com) for any questions.

v0.20.0

26 Nov 01:24
Compare
Choose a tag to compare

Version 0.20.0 includes the following changes:

  • ATProtoBluesky now includes proper implementation for link embeds.
    • You can use your own implementation on how you grab the URL, title, description, and thumbnail image for the link. You can also use the built-in ATLinkBuilder for your client to grab the links for you.

      Note: If a custom ATLinkBuilder is not included, then link previews will not work automatically. Please see the DocC for more details.

  • ATProtoKit now has now has StrictConcurrency enabled.
    • This is to check for more data race errors. Once it goes down to 0 and there’s a more established structure, Swift 6 language mode will be turned on.
  • Replaced the use of @DateFormatting and @DateFormattingOptional with encodeDate, encodeDateIfPresent, decodeDate, and decodeDateIfPresent.
    • This is due to the constant issues with respect to decoding Date and Date? properties. With these new functions the issues that have been present should no longer exist.
    • ATLexiconModel will be updated to reflect this change.
    • The affected article will be archived and will be removed at a later date.
    • @DateFormatting and @DateFormattingOptional will be deprecated.
    • As a side note: truncateEncode and truncateEncodeIfPresent will now be publicly available for developers to use.
  • Fixed additional data race errors.
    • Logging-related code has been separated from ATProtocolConfiguration and into a separate actor.
  • Fixed a crash related to ATRecordTypeRegistry.
  • Made sure swift-syntax works across Swift 5.10 and 6.0. (Thanks @rhysm94!)
  • Tweaked getPopularFeedGenerators to use authentication. (Thanks, @Dimillian!)
  • Fixed an issue where getPreferences() would fail to decode the output.
    • This is because app.bsky.actor.defs#preferences is an array in the lexicon and not an object. This was an oversight. AppBskyLexicon.Actor.PreferencesDefinition has now been converted from a struct to a typealias.
      • Thank you @Dimillian for fixing the bug! While their PR wasn’t merged, it did point to the right direction.
  • Fixed an issue where the JSON object related to starter packs may incorrectly be decoded as a labeller.
  • Made sure getPopularFeedGenerators() uses authentication. (Thanks @Dimillian!)
  • Fixed issue where embed records were not decoding correctly. (Thanks @andylin2004!)
    • This format will be a new change for all records and record views in order to ensure that things are decoding and encoding correctly.
  • Made some minor fixes to documentation and names.
    • Documentation to most of ATLexiconModel’s methods have been added.

Once again, thank you for your support. Please give feedback, bug reports, and contributions if you have time. You can also speak to me on Bluesky (@cjrriley.com) for any questions.

v0.19.2

05 Nov 04:02
76da9f3
Compare
Choose a tag to compare

Version 0.19.2 includes the following changes:

  • Fixed an issue where handles would not resolve properly if the post’s text is in a facet. (Thanks @aaronvegh!)

Once again, thank you for your support. Please give feedback, bug reports, and contributions if you have time. You can also speak to me on Bluesky (@cjrriley.com) for any questions.

v0.19.1

28 Oct 07:35
Compare
Choose a tag to compare

Version 0.19.1 includes the following changes:

  • Fixed some errors related to data race errors.
    • More objects have been marked as Sendable.
  • Fixed an issue where creating hashtag facets will result in having double hashtag symbols (##[hashtag]] when searching for posts under the hashtag. (Thanks @aaronvegh!)
  • Fixed the DocC with respect to the error structs and CodableValue.

Once again, thank you for your support. Please give feedback, bug reports, and contributions if you have time. You can also speak to me on Bluesky (@cjrriley.com) for any questions.