Skip to content

Releases: shahmal1yev/blueskysdk

v1.4.1-beta1

11 Nov 23:44
6aa4a86
Compare
Choose a tag to compare
v1.4.1-beta1 Pre-release
Pre-release

What's Changed

Full Changelog: v1.4.0-beta1...v1.4.1-beta1

v1.4.0-beta1

09 Nov 00:15
b29a667
Compare
Choose a tag to compare
v1.4.0-beta1 Pre-release
Pre-release

✨ Summary

This beta release includes the implementation of several new lexicons and features. While all features are complete, the package is in beta testing phase.

🔄 Changes

  • Implementation of GetFollowers, GetProfiles, CreateRecord lexicons
  • Added Blob Data Model and CIDV1 implementation
  • Added MultiFormat support (MultiHash, MultiCodec, MultiBase)
  • Post creation via PostBuilder API

⚠️ Beta Status Notice

  • Package features are complete but still in testing phase
  • API interfaces may receive minor updates
  • Full test coverage pending
  • Documentation updates in progress

What's Changed

  • [BSS-46] GetFollowers, GetProfiles, CreateRecord and PostBuilder API by @shahmal1yev in #12

Full Changelog: v1.3.0-alpha1...v1.4.0-beta1

v1.3.0-alpha1

18 Sep 15:08
Compare
Choose a tag to compare
v1.3.0-alpha1 Pre-release
Pre-release

🚀 v1.3.0-alpha1 - Client & Request Mechanism Enhancements and more 🎉

This release introduces two significant upgrades to improve flexibility and scalability in interacting with the BlueSky API.

1. New Request Mechanism (#9):

  • 🎯 A revamped request mechanism that streamlines the construction of API requests. This introduces better request validation and resource mapping, ensuring compliance with BlueSky API standards.
  • 🛠️ Enhanced request builders, providing structured and fluent ways to customize API calls (e.g., adding headers, query parameters, etc.).

2. New Client Mechanism (#10):

  • 🔗 A redesigned client mechanism that simplifies how API endpoints are accessed. The client now dynamically constructs paths based on method calls, removing the need for proxy classes while improving developer experience through method chaining.
  • ⚙️ Incorporates the Smith trait to dynamically forge requests, further abstracting the API interaction flow.

These updates together provide a cleaner and more flexible foundation for expanding SDK features and managing API complexity.

What's Changed

Full Changelog: v0.3.0-alpha1...v1.3.0-alpha1

v0.3.0-alpha1

08 Sep 00:25
6a3427f
Compare
Choose a tag to compare
v0.3.0-alpha1 Pre-release
Pre-release
  • Dependencies updated

    "require": {
        "ext-json": "*",
        "ext-curl": "*",
        "ext-fileinfo": "*",
        "php": ">=7.4",
        "nesbot/carbon": "2.x",
        "shahmal1yev/gcollection": "^1.0"
    },
    "require-dev": {
        "phpunit/phpunit": "9.6.20",
        "fakerphp/faker": "^1.23",
        "phpstan/phpstan": "^1.12"
    }
  • Source support for responses is being added and is not yet completed. This means that responses will no longer be simple objects but custom objects with flexible usage.

  • On the BlueskyClient:

    • setStrategy
    • getRequest
    • execute

    methods have been deprecated.

    • Instead of setStrategy, the authenticate method will be used directly.

    • Instead of using getRequest, if any request manipulation is needed, it will be done directly via the RequestContract object.

      For example:

      $client = new BlueskyClient(new CreateRecord);
      $client->getRequest()->setRecord(...);

      will be replaced by:

      $request = (new CreateRecord)->setRecord(...);
      $client = new BlueskyClient($request);
    • Instead of the execute method, the send method will be used. By using this method, custom-defined objects as responses for RequestContract objects that have ResourceSupport can be obtained. Even though this method works seamlessly with RequestContract objects that do not have this support, it will return a plain stdClass in such cases.

      Example usage

      $client = new BlueskyClient(new GetProfile());
      
      $client->authenticate([
          'identifier' => 'user@example.com',
          'password' => 'password'
      ]);
      
      /** @var GetProfileResource $user */
      $user = $client->send();
      
      /** @var Carbon\Carbon $created */
      $created = $user->createdAt();
      
      /** @var LabelsAsset<LabelAsset> $labels */
      $labels = $user->labels();
      
      /** @var FollowersAsset $knownFollowers */
      $knownFollowers = $user->viewer()
                          ->knownFollowers()
                          ->followers();
      
      foreach($knownFollowers as $follower) {
          /** @var FollowerAsset $follower */
          
          $name = $follower->displayName();
          $createdAt = $follower->createdAt()->format(DATE_ATOM);
          
          echo "$name's account created at $createdAt";
      }
  • Testing framework migrated from Pest to PHPUnit.

What's Changed

  • Merge dev to main for first release by @shahmal1yev in #1
  • Refactor BlueskyClient: Deprecations and Method Naming Improvements by @shahmal1yev in #4
  • Migrate from Pest to PHPUnit for Unit Testing by @shahmal1yev in #3
  • Resources, deprecations, new unit and feature tests by @shahmal1yev in #5

Full Changelog: https://github.com/shahmal1yev/blueskysdk/commits/v0.3.0-alpha1