packages feed

bluesky-tools 0.6.0.2 → 0.6.0.4

raw patch · 3 files changed

+12/−7 lines, 3 filesdep +bytestringPVP ok

version bump matches the API change (PVP)

Dependencies added: bytestring

API changes (from Hackage documentation)

Files

CHANGELOG.md view
@@ -1,5 +1,9 @@ # Revision history for bluesky-tools +## 0.6.0.4 -- 2025-08-02++* Fix HTTPS resolution to use the correct URL.+ ## 0.6.0.2 -- 2025-05-26  * Dependency version updates
bluesky-tools.cabal view
@@ -1,7 +1,7 @@ cabal-version:      3.4  name:               bluesky-tools-version:            0.6.0.2+version:            0.6.0.4 synopsis:           Tools for interacting with Bluesky / AT Protocol description:   bluesky-tools provides tools that I've found useful while trying to integrate@@ -46,6 +46,7 @@     aeson >=2.1 && < 2.3,     async ^>=2.2,     base >=4.18 && < 4.22,+    bytestring >= 0.10 && < 0.13,     containers >=0.6 && < 0.9,     dns ^>=4.2,     http-api-data >= 0.5 && < 0.7,
src/Bluesky/Handle.hs view
@@ -9,9 +9,8 @@ import Control.Monad.Trans.Class (lift) import Control.Monad.Trans.Maybe import qualified Data.Aeson as Aeson-import Data.Aeson ((.:))-import qualified Data.Aeson.Types as Aeson import qualified Data.Bifunctor as Bifunctor+import qualified Data.ByteString.Lazy as BSL import Data.Char import qualified Data.Text as Text import qualified Data.Text.Encoding as Text@@ -129,13 +128,14 @@           -- (It still might be better to construct the URL in some structured way           -- that insists the handle can only go in the hostname portion. But this           -- will do.)-          ("https://" <> rawHandleString <> "/xrpc/com.atproto.identity.resolveHandle?handle=" <> rawHandleString)+          ("https://" <> rawHandleString <> "/.well-known/atproto-did")       resp <- HTTP.httpLbs req httpManager       case HTTP.statusCode (HTTP.responseStatus resp) of         404 -> pure Nothing-        200 -> case Aeson.decode (HTTP.responseBody resp) of-          Nothing -> fail "JSON parsing failed"-          Just o -> either fail (pure . Just) $ Aeson.parseEither (.: "did") o+        200 ->+          either (fail . show) (pure . Just) . makeDid+          . Text.decodeASCII . BSL.toStrict+          $ HTTP.responseBody resp         other -> fail $ "Unexpected HTTP status " <> show other  -- | Raised by 'resolveViaBoth' when both methods raise exceptions.