Releases: shahmal1yev/blueskysdk
v1.4.1-beta1
What's Changed
- Announce the release to community by @shahmal1yev in #15
- Resolve the issue that external does not serialize by atproto/bsky specs (#18) by @shahmal1yev in #19
Full Changelog: v1.4.0-beta1...v1.4.1-beta1
v1.4.0-beta1
✨ 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 andCIDV1
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
🚀 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
- [BSS-31] New Request Mechanism by @shahmal1yev in #9
- [BSS-14] New Client Mechanism by @shahmal1yev in #10
Full Changelog: v0.3.0-alpha1...v1.3.0-alpha1
v0.3.0-alpha1
-
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
, theauthenticate
method will be used directly. -
Instead of using
getRequest
, if any request manipulation is needed, it will be done directly via theRequestContract
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, thesend
method will be used. By using this method, custom-defined objects as responses forRequestContract
objects that haveResourceSupport
can be obtained. Even though this method works seamlessly withRequestContract
objects that do not have this support, it will return a plainstdClass
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