Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
58 KiB
@atproto/api
0.13.27
Patch Changes
0.13.26
Patch Changes
- Updated dependencies [
72eba67af
,72eba67af
]:- @atproto/common-web@0.3.2
- @atproto/lexicon@0.4.5
- @atproto/xrpc@0.6.6
0.13.25
Patch Changes
- #3271
53621f8e1
Thanks @foysalit! - Allow setting policy names with takedown actions and when querying events
0.13.24
Patch Changes
- #3294
d90d999de
Thanks @foysalit! - Limit tags filter to 25 max and remove 25 char limit for tag item
0.13.23
Patch Changes
-
#3251
6d308b857
Thanks @foysalit! - Allow createSession to request takendown account scope -
#3280
9ea2cce9a
Thanks @foysalit! - Apply ozone queue splitting at the database query level
0.13.22
Patch Changes
- #3270
f22383cee
Thanks @estrattonbailey! - Add support for label def aliases, deprecation notices. This provides support for the deprecatedgore
label until a full cleanup effort can be completed.
0.13.21
Patch Changes
0.13.20
Patch Changes
-
#3222
207728d2b
Thanks @gaearon! - Add optional reasons param to listNotifications -
Updated dependencies [
9fd65ba0f
]:- @atproto/lexicon@0.4.4
- @atproto/xrpc@0.6.5
0.13.19
Patch Changes
- #3171
ed2236220
Thanks @foysalit! - Allow moderators to optionally acknowledge all open subjects of an account when acknowledging account level reports
0.13.18
Patch Changes
0.13.17
Patch Changes
-
#2978
a4b528e5f
Thanks @rafaelbsky! - Add searchStarterPacks and searchStarterPacksSkeleton -
#3056
2e7aa211d
Thanks @rafaelbsky! - Add com.atproto.temp.addReservedHandle lexicon
0.13.16
Patch Changes
-
#2988
48d08a469
Thanks @foysalit! - Make durationInHours optional for mute reporter event -
#2911
bac9be2d3
Thanks @matthieusieben! - Export the generated lexiconsschemas
definitions -
#2953
561431fe4
Thanks @rafaelbsky! - Add convoView.opened to lexicon definition -
Updated dependencies [
bac9be2d3
,bac9be2d3
]:- @atproto/syntax@0.3.1
- @atproto/lexicon@0.4.3
- @atproto/xrpc@0.6.4
0.13.15
Patch Changes
-
#2661
d6f33b474
Thanks @foysalit! - Add mod events and status filter for account and record hosting status -
#2957
b6eeb81c6
Thanks @gaearon! - Detect facets in parallel -
#2917
839202a3d
Thanks @matthieusieben! - Allow instantiating an API Agent with a string or URL -
#2933
e680d55ca
Thanks @mozzius! - Fix handling of invalid facets in RichText -
#2905
c4b5e5395
Thanks @foysalit! - Add user specific and instance-wide settings api for ozone
0.13.14
Patch Changes
-
#2918
209238769
Thanks @devinivy! - add app.bsky.unspecced.getConfig endpoint -
#2931
73f40e63a
Thanks @dholms! - Add threatSignatures to ozone repo views
0.13.13
Patch Changes
- #2914
19e36afb2
Thanks @foysalit! - Add collections and subjectType filters to ozone's queryEvents and queryStatuses endpoints
0.13.12
Patch Changes
- #2636
22d039a22
Thanks @foysalit! - Sets api to manage lists of strings on ozone, mostly aimed for automod configuration
0.13.11
Patch Changes
- #2857
a0531ce42
Thanks @estrattonbailey! - Adds support for muting words within link cards attached toRecordWithMedia
embeds.
0.13.10
Patch Changes
0.13.9
Patch Changes
0.13.8
Patch Changes
-
#2771
2676206e4
Thanks @mozzius! - Add pinned posts to profile record and getAuthorFeed -
Updated dependencies [
a07b21151
,a07b21151
,a07b21151
,eb20ff64a
,87a1f2426
]:- @atproto/xrpc@0.6.3
- @atproto/common-web@0.3.1
- @atproto/lexicon@0.4.2
0.13.7
Patch Changes
-
#2807
e6bd5aecc
Thanks @foysalit! - Introduce a acknowledgeAccountSubjects flag on takedown event to ack all subjects from the author that need review -
#2810
33aa0c722
Thanks @estrattonbailey! - Add NUX API -
Updated dependencies [
98711a147
]:- @atproto/xrpc@0.6.2
0.13.6
Patch Changes
0.13.5
Patch Changes
0.13.4
Patch Changes
-
#2714
d9ffa3c46
Thanks @matthieusieben! - Drop use ofAtpBaseClient
class -
#2714
d9ffa3c46
Thanks @matthieusieben! - Expose theCredentialSession
class that can be used to instantiate bothAgent
andXrpcClient
, while internally managing credential based (username/password) sessions. -
bbca17bc5
Thanks @matthieusieben! - Deprecate Agent.accountDid in favor of Agent.assertDid -
#2737
a8e1f9000
Thanks @estrattonbailey! - Addthreadgate: ThreadgateView
to response fromgetPostThread
-
#2714
d9ffa3c46
Thanks @matthieusieben! -Agent
is no longer an abstract class. Instead it can be instantiated using object implementing a newSessionManager
interface. If your project extendsAgent
and overrides the constructor or any method implementations, consider that you may want to call them fromsuper
. -
Updated dependencies [
d9ffa3c46
,d9ffa3c46
,d9ffa3c46
]:- @atproto/xrpc@0.6.1
0.13.3
Patch Changes
0.13.2
Patch Changes
-
#2658
2a0c088cc
Thanks @haileyok! - Addsapp.bsky.feed.getQuotes
lexicon and handlers -
#2675
aba664fbd
Thanks @estrattonbailey! - Addspostgate
records to power quote gating and detached quote posts, plushiddenReplies
to thethreadgate
record.
0.13.1
Patch Changes
- #2708
22af354a5
Thanks @devinivy! - Export AtpAgentOptions type to better support extending AtpAgent.
0.13.0
Minor Changes
-
#2483
b934b396b
Thanks @matthieusieben!Motivation
The motivation for these changes is the need to make the
@atproto/api
package compatible with OAuth session management. We don't have OAuth client support "launched" and documented quite yet, so you can keep using the current app password authentication system. When we do "launch" OAuth support and begin encouraging its usage in the near future (see the OAuth Roadmap), these changes will make it easier to migrate.In addition, the redesigned session management system fixes a bug that could cause the session data to become invalid when Agent clones are created (e.g. using
agent.withProxy()
).New Features
We've restructured the
XrpcClient
HTTP fetch handler to be specified during the instantiation of the XRPC client, through the constructor, instead of using a default implementation (which was statically defined).With this refactor, the XRPC client is now more modular and reusable. Session management, retries, cryptographic signing, and other request-specific logic can be implemented in the fetch handler itself rather than by the calling code.
A new abstract class named
Agent
, has been added to@atproto/api
. This class will be the base class for all Bluesky agents classes in the@atproto
ecosystem. It is meant to be extended by implementations that provide session management and fetch handling.As you adapt your code to these changes, make sure to use the
Agent
type wherever you expect to receive an agent, and use theAtpAgent
type (class) only to instantiate your client. The reason for this is to be forward compatible with the OAuth agent implementation that will also extendAgent
, and notAtpAgent
.import { Agent, AtpAgent } from "@atproto/api"; async function setupAgent( service: string, username: string, password: string, ): Promise<Agent> { const agent = new AtpAgent({ service, persistSession: (evt, session) => { // handle session update }, }); await agent.login(username, password); return agent; }
import { Agent } from "@atproto/api"; async function doStuffWithAgent(agent: Agent, arg: string) { return agent.resolveHandle(arg); }
import { Agent, AtpAgent } from "@atproto/api"; class MyClass { agent: Agent; constructor() { this.agent = new AtpAgent(); } }
Breaking changes
Most of the changes introduced in this version are backward-compatible. However, there are a couple of breaking changes you should be aware of:
- Customizing
fetch
: The ability to customize thefetch: FetchHandler
property of@atproto/xrpc
'sClient
and@atproto/api
'sAtpAgent
classes has been removed. Previously, thefetch
property could be set to a function that would be used as the fetch handler for that instance, and was initialized to a default fetch handler. That property is still accessible in a read-only fashion through thefetchHandler
property and can only be set during the instance creation. Attempting to set/get thefetch
property will now result in an error. - The
fetch()
method, as well as WhatWG compliantRequest
andHeaders
constructors, must be globally available in your environment. Use a polyfill if necessary. - The
AtpBaseClient
has been removed. TheAtpServiceClient
has been renamedAtpBaseClient
. Any code using either of these classes will need to be updated. - Instead of wrapping an
XrpcClient
in itsxrpc
property, theAtpBaseClient
(formerlyAtpServiceClient
) class - created throughlex-cli
- now extends theXrpcClient
class. This means that a client instance now passes theinstanceof XrpcClient
check. Thexrpc
property now returns the instance itself and has been deprecated. setSessionPersistHandler
is no longer available on theAtpAgent
orBskyAgent
classes. The session handler can only be set though thepersistSession
options of theAtpAgent
constructor.- The new class hierarchy is as follows:
BskyAgent
extendsAtpAgent
: but add no functionality (hence its deprecation).AtpAgent
extendsAgent
: adds password based session management.Agent
extendsAtpBaseClient
: this abstract class that adds syntactic sugar methodsapp.bsky
lexicons. It also adds abstract session management methods and adds atproto specific utilities (labelers
&proxy
headers, cloning capability)AtpBaseClient
extendsXrpcClient
: automatically code that adds fully typed lexicon defined namespaces (instance.app.bsky.feed.getPosts()
) to theXrpcClient
.XrpcClient
is the base class.
Non-breaking changes
- The
com.*
andapp.*
namespaces have been made directly available to everyAgent
instances.
Deprecations
- The default export of the
@atproto/xrpc
package has been deprecated. Use named exports instead. - The
Client
andServiceClient
classes are now deprecated. They are replaced by a singleXrpcClient
class. - The default export of the
@atproto/api
package has been deprecated. Use named exports instead. - The
BskyAgent
has been deprecated. Use theAtpAgent
class instead. - The
xrpc
property of theAtpClient
instances has been deprecated. The instance itself should be used as the XRPC client. - The
api
property of theAtpAgent
andBskyAgent
instances has been deprecated. Use the instance itself instead.
Migration
The
@atproto/api
packageIf you were relying on the
AtpBaseClient
solely to perform validation, use this:Before After import { AtpBaseClient, ComAtprotoSyncSubscribeRepos } from "@atproto/api"; const baseClient = new AtpBaseClient(); baseClient.xrpc.lex.assertValidXrpcMessage("io.example.doStuff", { // ... });
import { lexicons } from "@atproto/api"; lexicons.assertValidXrpcMessage("io.example.doStuff", { // ... });
If you are extending the
BskyAgent
to perform customsession
manipulation, define your ownAgent
subclass instead:Before After import { BskyAgent } from "@atproto/api"; class MyAgent extends BskyAgent { private accessToken?: string; async createOrRefreshSession(identifier: string, password: string) { // custom logic here this.accessToken = "my-access-jwt"; } async doStuff() { return this.call("io.example.doStuff", { headers: { Authorization: this.accessToken && `Bearer ${this.accessToken}`, }, }); } }
import { Agent } from "@atproto/api"; class MyAgent extends Agent { private accessToken?: string; public did?: string; constructor(private readonly service: string | URL) { super({ service, headers: { Authorization: () => this.accessToken ? `Bearer ${this.accessToken}` : null, }, }); } clone(): MyAgent { const agent = new MyAgent(this.service); agent.accessToken = this.accessToken; agent.did = this.did; return this.copyInto(agent); } async createOrRefreshSession(identifier: string, password: string) { // custom logic here this.did = "did:example:123"; this.accessToken = "my-access-jwt"; } }
If you are monkey patching the
xrpc
service client to perform client-side rate limiting, you can now do this in theFetchHandler
function:Before After import { BskyAgent } from "@atproto/api"; import { RateLimitThreshold } from "rate-limit-threshold"; const agent = new BskyAgent(); const limiter = new RateLimitThreshold(3000, 300_000); const origCall = agent.api.xrpc.call; agent.api.xrpc.call = async function (...args) { await limiter.wait(); return origCall.call(this, ...args); };
import { AtpAgent } from "@atproto/api"; import { RateLimitThreshold } from "rate-limit-threshold"; class LimitedAtpAgent extends AtpAgent { constructor(options: AtpAgentOptions) { const fetch: typeof globalThis.fetch = options.fetch ?? globalThis.fetch; const limiter = new RateLimitThreshold(3000, 300_000); super({ ...options, fetch: async (...args) => { await limiter.wait(); return fetch(...args); }, }); } }
If you configure a static
fetch
handler on theBskyAgent
class - for example to modify the headers of every request - you can now do this by providing your ownfetch
function:Before After import { BskyAgent, defaultFetchHandler } from "@atproto/api"; BskyAgent.configure({ fetch: async (httpUri, httpMethod, httpHeaders, httpReqBody) => { const ua = httpHeaders["User-Agent"]; httpHeaders["User-Agent"] = ua ? `${ua} ${userAgent}` : userAgent; return defaultFetchHandler(httpUri, httpMethod, httpHeaders, httpReqBody); }, });
import { AtpAgent } from "@atproto/api"; class MyAtpAgent extends AtpAgent { constructor(options: AtpAgentOptions) { const fetch = options.fetch ?? globalThis.fetch; super({ ...options, fetch: async (url, init) => { const headers = new Headers(init.headers); const ua = headersList.get("User-Agent"); headersList.set("User-Agent", ua ? `${ua} ${userAgent}` : userAgent); return fetch(url, { ...init, headers }); }, }); } }
The
@atproto/xrpc
packageThe
Client
andServiceClient
classes are now deprecated. If you need a lexicon based client, you should update the code to use theXrpcClient
class instead.The deprecated
ServiceClient
class now extends the newXrpcClient
class. Because of this, thefetch
FetchHandler
can no longer be configured on theClient
instances (including the default export of the package). If you are not relying on thefetch
FetchHandler
, the new changes should have no impact on your code. Beware that the deprecated classes will eventually be removed in a future version.Since its use has completely changed, the
FetchHandler
type has also completely changed. The newFetchHandler
type is now a function that receives aurl
pathname and aRequestInit
object and returns aPromise<Response>
. This function is responsible for making the actual request to the server.export type FetchHandler = ( this: void, /** * The URL (pathname + query parameters) to make the request to, without the * origin. The origin (protocol, hostname, and port) must be added by this * {@link FetchHandler}, typically based on authentication or other factors. */ url: string, init: RequestInit, ) => Promise<Response>;
A noticeable change that has been introduced is that the
uri
field of theServiceClient
class has not been ported to the newXrpcClient
class. It is now the responsibility of theFetchHandler
to determine the full URL to make the request to. The same goes for theheaders
, which should now be set through theFetchHandler
function.If you do rely on the legacy
Client.fetch
property to perform custom logic upon request, you will need to migrate your code to use the newXrpcClient
class. TheXrpcClient
class has a similar API to the oldServiceClient
class, but with a few differences:-
The
Client
+ServiceClient
duality was removed in favor of a singleXrpcClient
class. This means that:- There no longer exists a centralized lexicon registry. If you need a global
lexicon registry, you can maintain one yourself using a
new Lexicons
(from@atproto/lexicon
). - The
FetchHandler
is no longer a statically defined property of theClient
class. Instead, it is passed as an argument to theXrpcClient
constructor.
- There no longer exists a centralized lexicon registry. If you need a global
lexicon registry, you can maintain one yourself using a
-
The
XrpcClient
constructor now requires aFetchHandler
function as the first argument, and an optionalLexicon
instance as the second argument. -
The
setHeader
andunsetHeader
methods were not ported to the newXrpcClient
class. If you need to set or unset headers, you should do so in theFetchHandler
function provided in the constructor arg.
Before After import client, { defaultFetchHandler } from "@atproto/xrpc"; client.fetch = function ( httpUri: string, httpMethod: string, httpHeaders: Headers, httpReqBody: unknown, ) { // Custom logic here return defaultFetchHandler(httpUri, httpMethod, httpHeaders, httpReqBody); }; client.addLexicon({ lexicon: 1, id: "io.example.doStuff", defs: {}, }); const instance = client.service("http://my-service.com"); instance.setHeader("my-header", "my-value"); await instance.call("io.example.doStuff");
import { XrpcClient } from "@atproto/xrpc"; const instance = new XrpcClient( async (url, init) => { const headers = new Headers(init.headers); headers.set("my-header", "my-value"); // Custom logic here const fullUrl = new URL(url, "http://my-service.com"); return fetch(fullUrl, { ...init, headers }); }, [ { lexicon: 1, id: "io.example.doStuff", defs: {}, }, ], ); await instance.call("io.example.doStuff");
If your fetch handler does not require any "custom logic", and all you need is an
XrpcClient
that makes its HTTP requests towards a static service URL, the previous example can be simplified to:import { XrpcClient } from "@atproto/xrpc"; const instance = new XrpcClient("http://my-service.com", [ { lexicon: 1, id: "io.example.doStuff", defs: {}, }, ]);
If you need to add static headers to all requests, you can instead instantiate the
XrpcClient
as follows:import { XrpcClient } from "@atproto/xrpc"; const instance = new XrpcClient( { service: "http://my-service.com", headers: { "my-header": "my-value", }, }, [ { lexicon: 1, id: "io.example.doStuff", defs: {}, }, ], );
If you need the headers or service url to be dynamic, you can define them using functions:
import { XrpcClient } from "@atproto/xrpc"; const instance = new XrpcClient( { service: () => "http://my-service.com", headers: { "my-header": () => "my-value", "my-ignored-header": () => null, // ignored }, }, [ { lexicon: 1, id: "io.example.doStuff", defs: {}, }, ], );
- Customizing
-
#2483
b934b396b
Thanks @matthieusieben! - Add the ability to usefetch()
compatibleBodyInit
body when making XRPC calls.
Patch Changes
- Updated dependencies [
b934b396b
,2bdf75d7a
,b934b396b
,b934b396b
]:- @atproto/lexicon@0.4.1
- @atproto/xrpc@0.6.0
0.12.29
Patch Changes
0.12.28
Patch Changes
- #2676
951a3df15
Thanks @estrattonbailey! - Removeapp.bsky.feed.detach
record, to be replaced byapp.bsky.feed.postgate
record in a future release.
0.12.27
Patch Changes
- #2664
ff803fd2b
Thanks @estrattonbailey! - Addsapp.bsky.feed.detach
record lexicons.
0.12.26
Patch Changes
- #2276
77c5306d2
Thanks @estrattonbailey! - Updates muted words lexicons to include new attributesid
,actorTarget
, andexpiresAt
. Adds and updates methods in API SDK for better management of muted words.
0.12.25
Patch Changes
-
#2570
12dcdb668
Thanks @sugyan! - FixhasMutedWord
for facets with multiple features -
#2648
76c91f832
Thanks @dholms! - Support for priority notifications
0.12.24
Patch Changes
-
#2613
ed5810179
Thanks @haileyok! - Support for starter packs in record embed views. -
#2554
0529bec99
Thanks @sugyan! - Add missinggetPreferences
union return types
0.12.23
Patch Changes
- #2492
bc861a2c2
Thanks @pfrazee! - Added bsky app state preference and improved protections against race conditions in preferences sdk
0.12.22
Patch Changes
0.12.21
Patch Changes
0.12.20
Patch Changes
0.12.19
Patch Changes
0.12.18
Patch Changes
- #2557
58abcbd8b
Thanks @estrattonbailey! - Adds "social proof":knowFollowers
toViewerState
forProfileViewDetailed
views andapp.bsky.graph.getKnownFollowers
method for listing known followers of a given user.
0.12.17
Patch Changes
- #2426
2b21b5be2
Thanks @foysalit! - Add com.atproto.admin.searchAccounts lexicon to allow searching for accounts using email address
0.12.16
Patch Changes
- #2539
9495af23b
Thanks @dholms! - Allow updating deactivation state through admin.updateSubjectStatus
0.12.15
Patch Changes
- #2531
255d5ea1f
Thanks @dholms! - Account deactivation. Current hosting status returned on session routes.
0.12.14
Patch Changes
0.12.13
Patch Changes
0.12.12
Patch Changes
- #2442
1f560f021
Thanks @foysalit! - Add com.atproto.label.queryLabels endpoint on appview and allow viewing external labels through ozone
0.12.11
Patch Changes
0.12.10
Patch Changes
0.12.9
Patch Changes
- #2467
f83b4c8ca
Thanks @haileyok! - Modify label-handling on user's own content to still apply blurring
0.12.8
Patch Changes
0.12.7
Patch Changes
- #2390
58551bbe0
Thanks @foysalit! - Allow muting reports from accounts via#modEventMuteReporter
event
0.12.6
Patch Changes
- #2427
b9b7c5821
Thanks @estrattonbailey! - Introduces V2 of saved feeds preferences. V2 and v1 prefs are incompatible. v1 methods and preference objects are retained for backwards compatability, but are considered deprecated. Developers should immediately migrate to v2 interfaces.
0.12.5
Patch Changes
0.12.4
Patch Changes
0.12.3
Patch Changes
-
#2383
0edef0ec0
Thanks @dholms! - Added feed generator interaction lexicons -
#2409
c6d758b8b
Thanks @devinivy! - Support for upcoming post search params
0.12.2
Patch Changes
- #2344
abc6f82da
Thanks @estrattonbailey! - Support muting words that contain apostrophes and other punctuation
0.12.1
Patch Changes
- #2342
eb7668c07
Thanks @estrattonbailey! - Adds theassociated
property toprofile
andprofile-basic
views, bringing them in line withprofile-detailed
views.
0.12.0
Minor Changes
- #2169
f689bd51a
Thanks @matthieusieben! - Build system rework, stop bundling dependencies.
Patch Changes
-
#2338
36f2e966c
Thanks @pfrazee! - Fix: correctly detected blocked quote-posts when moderating posts -
Updated dependencies [
f689bd51a
]:- @atproto/common-web@0.3.0
- @atproto/lexicon@0.4.0
- @atproto/syntax@0.3.0
- @atproto/xrpc@0.5.0
0.11.2
Patch Changes
- #2328
7dd9941b7
Thanks @estrattonbailey! - Remove unecessary escapes from regex, which was causing a minification error when bundled in React Native.
0.11.1
Patch Changes
- #2312
219480764
Thanks @pfrazee! - Fixed an issue that would cause agent clones to drop the PDS URI config.
0.11.0
Minor Changes
- #2302
4eaadc0ac
Thanks @dholms! - - Breaking changes- Redesigned the
moderate*
APIs which now output aModerationUI
object. agent.getPreferences()
output objectBskyPreferences
has been modified.- Moved Ozone routes from
com.atproto.admin
totools.ozone
namespace. - Additions
- Added support for labeler configuration in
Agent.configure()
andagent.configureLabelerHeader()
. - Added
agent.addLabeler()
andagent.removeLabeler()
preference methods. - Muted words and hidden posts are now handled in the
moderate*
APIs. - Added
agent.getLabelers()
andagent.getLabelDefinitions()
. - Added
agent.configureProxyHeader()
andwithProxy()
methods to support remote service proxying behaviors.
- Added support for labeler configuration in
- Redesigned the
Patch Changes
- Updated dependencies [
4eaadc0ac
]:- @atproto/common-web@0.2.4
- @atproto/lexicon@0.3.3
- @atproto/syntax@0.2.1
- @atproto/xrpc@0.4.3
0.10.5
Patch Changes
- #2279
192223f12
Thanks @gaearon! - Change Following feed prefs to only show replies from people you follow by default
0.10.4
Patch Changes
-
#2260
6ec885992
Thanks @estrattonbailey! - Export regex from rich text detection -
#2260
6ec885992
Thanks @estrattonbailey! - Disallow rare unicode whitespace characters from tags -
#2260
6ec885992
Thanks @estrattonbailey! - Allow tags to lead with numbers
0.10.3
Patch Changes
-
#2247
2a0ceb818
Thanks @estrattonbailey! - Fix double sanitization bug when editing muted words. -
#2247
2a0ceb818
Thanks @estrattonbailey! - More sanitization of muted words, including newlines and leading/trailing whitespace -
#2247
2a0ceb818
Thanks @estrattonbailey! - AddsanitizeMutedWordValue
util -
#2247
2a0ceb818
Thanks @estrattonbailey! - Handle hash emoji in mute words
0.10.2
Patch Changes
-
#2245
61b3d2525
Thanks @mary-ext! - Prevent hashtag emoji from being parsed as a tag -
#2218
43531905c
Thanks @estrattonbailey! - Fix mute word upsert logic by ensuring we're comparing sanitized word values -
#2245
61b3d2525
Thanks @mary-ext! - Properly calculate length of tag -
Updated dependencies [
0c815b964
]:- @atproto/syntax@0.2.0
- @atproto/lexicon@0.3.2
- @atproto/xrpc@0.4.2
0.10.1
Patch Changes
- #2215
514aab92d
Thanks @estrattonbailey! - Add missinggetPreferences
union return types
0.10.0
Minor Changes
Patch Changes
- #2195
b60719480
Thanks @estrattonbailey! - Add muted words/tags and hidden posts prefs and methods"
0.9.8
Patch Changes
- #2192
f79cc6339
Thanks @foysalit! - Tag event on moderation subjects and allow filtering events and subjects by tags
0.9.7
Patch Changes
0.9.6
Patch Changes
- #2124
e4ec7af03
Thanks @foysalit! - Allow filtering for comment, label, report type and date range on queryModerationEvents endpoint.
0.9.5
Patch Changes
0.9.4
Patch Changes
- #2086
4171c04a
Thanks @estrattonbailey! - AddsetInterestsPref
method to BskyAgent, andinterests
prop togetPreferences
response.
0.9.3
Patch Changes
- #2081
5368245a
Thanks @estrattonbailey! - Add unspecced route for new onboardingapp.bsky.unspecced.getTaggedSuggestions
0.9.2
Patch Changes
0.9.1
Patch Changes
0.9.0
Minor Changes
Patch Changes
-
#2056
e43396af
Thanks @dholms! - Added phone verification methods/schemas to agent. -
#1988
51fcba7a
Thanks @bnewbold! - remove deprecated app.bsky.unspecced.getPopular endpoint
0.8.0
Minor Changes
- #2010
14067733
Thanks @estrattonbailey! - ImproveresumeSession
event emission. It will no longer double emit when some requests fail, and thecreate-failed
event has been replaced byexpired
where appropriate, and with a new eventnetwork-error
where appropriate or an unknown error occurs.
0.7.4
Patch Changes
0.7.3
Patch Changes
0.7.2
Patch Changes
- #1776
ffe39aae
Thanks @estrattonbailey! - Addposts_and_author_threads
filter togetAuthorFeed
0.7.1
Patch Changes
- #1944
60deea17
Thanks @estrattonbailey! - Strip trailing colon from URLs in rich-text facet detection.
0.7.0
Minor Changes
0.6.24
Patch Changes
-
#1912
378fc613
Thanks @devinivy! - Contains breaking lexicon changes: removing legacy com.atproto admin endpoints, making uri field required on app.bsky list views. -
Updated dependencies [
3c0ef382
]:- @atproto/syntax@0.1.5
- @atproto/lexicon@0.3.1
- @atproto/xrpc@0.4.1
0.6.23
Patch Changes
0.6.22
Patch Changes
-
#1788
84e2d4d2
Thanks @bnewbold! - update license to "MIT or Apache2" -
Updated dependencies [
ce49743d
,84e2d4d2
]:- @atproto/lexicon@0.3.0
- @atproto/xrpc@0.4.0
- @atproto/common-web@0.2.3
- @atproto/syntax@0.1.4
0.6.21
Patch Changes
-
#1779
9c98a5ba
Thanks @pfrazee! - modlist helpers added to bsky-agent, add blockingByList to viewer state lexicon -
35d108ce
Thanks @devinivy! - Allow pds to serve did doc with credentials, API client to respect PDS listed in the did doc. -
Updated dependencies [
35d108ce
]:- @atproto/common-web@0.2.2
- @atproto/lexicon@0.2.3
- @atproto/syntax@0.1.3
- @atproto/xrpc@0.3.3
0.6.20
Patch Changes
-
#1568
41ee177f
Thanks @dholms! - Added email verification and update flows -
Updated dependencies [
41ee177f
]:- @atproto/common-web@0.2.1
- @atproto/lexicon@0.2.2
- @atproto/syntax@0.1.2
- @atproto/xrpc@0.3.2
0.6.19
Patch Changes
- #1674
35b616cd
Thanks @estrattonbailey! - Strip leading#
from from detected tag facets
0.6.18
Patch Changes
- #1651
2ce8a11b
Thanks @estrattonbailey! - Adds support for hashtags in theRichText.detectFacets
method.
0.6.17
Patch Changes
- #1637
d96f7d9b
Thanks @estrattonbailey! - Introduce general support for tags on posts
0.6.16
Patch Changes
0.6.15
Patch Changes
0.6.14
Patch Changes
- Updated dependencies [
b1dc3555
]:- @atproto/syntax@0.1.1
- @atproto/lexicon@0.2.1
- @atproto/xrpc@0.3.1
0.6.13
Patch Changes
- #1553
3877210e
Thanks @estrattonbailey! - Adds a new methodapp.bsky.graph.getSuggestedFollowsByActor
. This method returns suggested follows for a given actor based on their likes and follows.