view release on metacpan or search on metacpan
lib/At/Protocol/DID.pm view on Meta::CPAN
=head2 C<ensureValidDid( ... )>
ensureValidDid( 'did:plc:z72i7hdynmk6r22z27h6tvur' );
Validates a DID. Throws errors on failure and returns a true value on success.
=head2 C<ensureValidDidRegex( ... )>
ensureValidDidRegex( 'did:method::nope' );
Validates a DID with cursory regex provided by the AT protocol designers. Throws errors on failure and returns a true
value on success.
=head1 See Also
L<https://atproto.com/specs/did>
=head1 LICENSE
Copyright (C) Sanko Robinson.
lib/At/Protocol/Handle.pm view on Meta::CPAN
=head2 C<ensureValidHandle( ... )>
ensureValidHandle( 'org.cpan.sanko' );
Validates an id. Throws errors on failure and returns a true value on success.
=head2 C<ensureValidHandleRegex( ... )>
ensureValidHandleRegex( 'org.cpan.sanko' );
Validates an id with cursory regex provided by the AT protocol designers. Throws errors on failure and returns a true
value on success.
=head2 C<normalizeHandle( ... )>
my $handle = ensureValidHandleRegex( 'org.cpan.SANKO' );
Normalizes a handle according to spec. ...honestly, it just makes sure it's lowercase.
=head2 C<normalizeAndEnsureValidHandle( ... )>
lib/At/Protocol/NSID.pm view on Meta::CPAN
=head2 C<ensureValidNsid( ... )>
ensureValidNsid( '.com.example.wrong' );
Validates an NSID. Throws errors on failure and returns a true value on success.
=head2 C<ensureValidNsidRegex( ... )>
ensureValidNsidRegex( 'com.example.right' );
Validates an NSID with cursory regex provided by the AT protocol designers. Throws errors on failure and returns a true
value on success.
=head1 See Also
L<https://atproto.com/specs/nsid>
=head1 LICENSE
Copyright (C) Sanko Robinson.
lib/At/Protocol/URI.pm view on Meta::CPAN
=head2 C<ensureValidAtUri( ... )>
ensureValidAtUri( 'at://did:plc:asdf123' );
Validates an AT URI. Throws errors on failure and returns a true value on success.
=head2 C<ensureValidAtUriRegex( ... )>
ensureValidAtUriRegex( 'a://did:plc:asdf123' ); # fatal
Validates an AT URI with cursory regex provided by the AT protocol designers. Throws errors on failure and returns a
true value on success.
=head1 See Also
L<https://atproto.com/specs/at-uri-scheme>
=head1 LICENSE
Copyright (C) Sanko Robinson.
share/lexicons/app/bsky/actor/getSuggestions.json view on Meta::CPAN
"description": "Get a list of suggested actors. Expected use is discovery of accounts to follow during new account onboarding.",
"parameters": {
"type": "params",
"properties": {
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 100,
"default": 50
},
"cursor": { "type": "string" }
}
},
"output": {
"encoding": "application/json",
"schema": {
"type": "object",
"required": ["actors"],
"properties": {
"cursor": { "type": "string" },
"actors": {
"type": "array",
"items": {
"type": "ref",
"ref": "app.bsky.actor.defs#profileView"
}
}
}
}
}
share/lexicons/app/bsky/actor/searchActors.json view on Meta::CPAN
"q": {
"type": "string",
"description": "Search query string. Syntax, phrase, boolean, and faceting is unspecified, but Lucene query syntax is recommended."
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 100,
"default": 25
},
"cursor": { "type": "string" }
}
},
"output": {
"encoding": "application/json",
"schema": {
"type": "object",
"required": ["actors"],
"properties": {
"cursor": { "type": "string" },
"actors": {
"type": "array",
"items": {
"type": "ref",
"ref": "app.bsky.actor.defs#profileView"
}
}
}
}
}
share/lexicons/app/bsky/feed/getActorFeeds.json view on Meta::CPAN
"type": "params",
"required": ["actor"],
"properties": {
"actor": { "type": "string", "format": "at-identifier" },
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 100,
"default": 50
},
"cursor": { "type": "string" }
}
},
"output": {
"encoding": "application/json",
"schema": {
"type": "object",
"required": ["feeds"],
"properties": {
"cursor": { "type": "string" },
"feeds": {
"type": "array",
"items": {
"type": "ref",
"ref": "app.bsky.feed.defs#generatorView"
}
}
}
}
}
share/lexicons/app/bsky/feed/getActorLikes.json view on Meta::CPAN
"type": "params",
"required": ["actor"],
"properties": {
"actor": { "type": "string", "format": "at-identifier" },
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 100,
"default": 50
},
"cursor": { "type": "string" }
}
},
"output": {
"encoding": "application/json",
"schema": {
"type": "object",
"required": ["feed"],
"properties": {
"cursor": { "type": "string" },
"feed": {
"type": "array",
"items": {
"type": "ref",
"ref": "app.bsky.feed.defs#feedViewPost"
}
}
}
}
},
share/lexicons/app/bsky/feed/getAuthorFeed.json view on Meta::CPAN
"type": "params",
"required": ["actor"],
"properties": {
"actor": { "type": "string", "format": "at-identifier" },
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 100,
"default": 50
},
"cursor": { "type": "string" },
"filter": {
"type": "string",
"description": "Combinations of post/repost types to include in response.",
"knownValues": [
"posts_with_replies",
"posts_no_replies",
"posts_with_media",
"posts_and_author_threads"
],
"default": "posts_with_replies"
share/lexicons/app/bsky/feed/getAuthorFeed.json view on Meta::CPAN
"default": false
}
}
},
"output": {
"encoding": "application/json",
"schema": {
"type": "object",
"required": ["feed"],
"properties": {
"cursor": { "type": "string" },
"feed": {
"type": "array",
"items": {
"type": "ref",
"ref": "app.bsky.feed.defs#feedViewPost"
}
}
}
}
},
share/lexicons/app/bsky/feed/getFeed.json view on Meta::CPAN
"type": "params",
"required": ["feed"],
"properties": {
"feed": { "type": "string", "format": "at-uri" },
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 100,
"default": 50
},
"cursor": { "type": "string" }
}
},
"output": {
"encoding": "application/json",
"schema": {
"type": "object",
"required": ["feed"],
"properties": {
"cursor": { "type": "string" },
"feed": {
"type": "array",
"items": {
"type": "ref",
"ref": "app.bsky.feed.defs#feedViewPost"
}
}
}
}
},
share/lexicons/app/bsky/feed/getFeedSkeleton.json view on Meta::CPAN
"type": "string",
"format": "at-uri",
"description": "Reference to feed generator record describing the specific feed being requested."
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 100,
"default": 50
},
"cursor": { "type": "string" }
}
},
"output": {
"encoding": "application/json",
"schema": {
"type": "object",
"required": ["feed"],
"properties": {
"cursor": { "type": "string" },
"feed": {
"type": "array",
"items": {
"type": "ref",
"ref": "app.bsky.feed.defs#skeletonFeedPost"
}
}
}
}
},
share/lexicons/app/bsky/feed/getLikes.json view on Meta::CPAN
"type": "string",
"format": "cid",
"description": "CID of the subject record (aka, specific version of record), to filter likes."
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 100,
"default": 50
},
"cursor": { "type": "string" }
}
},
"output": {
"encoding": "application/json",
"schema": {
"type": "object",
"required": ["uri", "likes"],
"properties": {
"uri": { "type": "string", "format": "at-uri" },
"cid": { "type": "string", "format": "cid" },
"cursor": { "type": "string" },
"likes": {
"type": "array",
"items": { "type": "ref", "ref": "#like" }
}
}
}
}
},
"like": {
"type": "object",
share/lexicons/app/bsky/feed/getListFeed.json view on Meta::CPAN
"type": "string",
"format": "at-uri",
"description": "Reference (AT-URI) to the list record."
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 100,
"default": 50
},
"cursor": { "type": "string" }
}
},
"output": {
"encoding": "application/json",
"schema": {
"type": "object",
"required": ["feed"],
"properties": {
"cursor": { "type": "string" },
"feed": {
"type": "array",
"items": {
"type": "ref",
"ref": "app.bsky.feed.defs#feedViewPost"
}
}
}
}
},
share/lexicons/app/bsky/feed/getQuotes.json view on Meta::CPAN
"type": "string",
"format": "cid",
"description": "If supplied, filters to quotes of specific version (by CID) of the post record."
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 100,
"default": 50
},
"cursor": { "type": "string" }
}
},
"output": {
"encoding": "application/json",
"schema": {
"type": "object",
"required": ["uri", "posts"],
"properties": {
"uri": { "type": "string", "format": "at-uri" },
"cid": { "type": "string", "format": "cid" },
"cursor": { "type": "string" },
"posts": {
"type": "array",
"items": {
"type": "ref",
"ref": "app.bsky.feed.defs#postView"
}
}
}
}
}
share/lexicons/app/bsky/feed/getRepostedBy.json view on Meta::CPAN
"type": "string",
"format": "cid",
"description": "If supplied, filters to reposts of specific version (by CID) of the post record."
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 100,
"default": 50
},
"cursor": { "type": "string" }
}
},
"output": {
"encoding": "application/json",
"schema": {
"type": "object",
"required": ["uri", "repostedBy"],
"properties": {
"uri": { "type": "string", "format": "at-uri" },
"cid": { "type": "string", "format": "cid" },
"cursor": { "type": "string" },
"repostedBy": {
"type": "array",
"items": {
"type": "ref",
"ref": "app.bsky.actor.defs#profileView"
}
}
}
}
}
share/lexicons/app/bsky/feed/getSuggestedFeeds.json view on Meta::CPAN
"description": "Get a list of suggested feeds (feed generators) for the requesting account.",
"parameters": {
"type": "params",
"properties": {
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 100,
"default": 50
},
"cursor": { "type": "string" }
}
},
"output": {
"encoding": "application/json",
"schema": {
"type": "object",
"required": ["feeds"],
"properties": {
"cursor": { "type": "string" },
"feeds": {
"type": "array",
"items": {
"type": "ref",
"ref": "app.bsky.feed.defs#generatorView"
}
}
}
}
}
share/lexicons/app/bsky/feed/getTimeline.json view on Meta::CPAN
"algorithm": {
"type": "string",
"description": "Variant 'algorithm' for timeline. Implementation-specific. NOTE: most feed flexibility has been moved to feed generator mechanism."
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 100,
"default": 50
},
"cursor": { "type": "string" }
}
},
"output": {
"encoding": "application/json",
"schema": {
"type": "object",
"required": ["feed"],
"properties": {
"cursor": { "type": "string" },
"feed": {
"type": "array",
"items": {
"type": "ref",
"ref": "app.bsky.feed.defs#feedViewPost"
}
}
}
}
}
share/lexicons/app/bsky/feed/searchPosts.json view on Meta::CPAN
"maxGraphemes": 64
},
"description": "Filter to posts with the given tag (hashtag), based on rich-text facet or tag field. Do not include the hash (#) prefix. Multiple tags can be specified, with 'AND' matching."
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 100,
"default": 25
},
"cursor": {
"type": "string",
"description": "Optional pagination mechanism; may not necessarily allow scrolling through entire result set."
}
}
},
"output": {
"encoding": "application/json",
"schema": {
"type": "object",
"required": ["posts"],
"properties": {
"cursor": { "type": "string" },
"hitsTotal": {
"type": "integer",
"description": "Count of search hits. Optional, may be rounded/truncated, and may not be possible to paginate through all hits."
},
"posts": {
"type": "array",
"items": {
"type": "ref",
"ref": "app.bsky.feed.defs#postView"
}
share/lexicons/app/bsky/graph/getActorStarterPacks.json view on Meta::CPAN
"type": "params",
"required": ["actor"],
"properties": {
"actor": { "type": "string", "format": "at-identifier" },
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 100,
"default": 50
},
"cursor": { "type": "string" }
}
},
"output": {
"encoding": "application/json",
"schema": {
"type": "object",
"required": ["starterPacks"],
"properties": {
"cursor": { "type": "string" },
"starterPacks": {
"type": "array",
"items": {
"type": "ref",
"ref": "app.bsky.graph.defs#starterPackViewBasic"
}
}
}
}
}
share/lexicons/app/bsky/graph/getBlocks.json view on Meta::CPAN
"description": "Enumerates which accounts the requesting account is currently blocking. Requires auth.",
"parameters": {
"type": "params",
"properties": {
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 100,
"default": 50
},
"cursor": { "type": "string" }
}
},
"output": {
"encoding": "application/json",
"schema": {
"type": "object",
"required": ["blocks"],
"properties": {
"cursor": { "type": "string" },
"blocks": {
"type": "array",
"items": {
"type": "ref",
"ref": "app.bsky.actor.defs#profileView"
}
}
}
}
}
share/lexicons/app/bsky/graph/getFollowers.json view on Meta::CPAN
"type": "params",
"required": ["actor"],
"properties": {
"actor": { "type": "string", "format": "at-identifier" },
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 100,
"default": 50
},
"cursor": { "type": "string" }
}
},
"output": {
"encoding": "application/json",
"schema": {
"type": "object",
"required": ["subject", "followers"],
"properties": {
"subject": {
"type": "ref",
"ref": "app.bsky.actor.defs#profileView"
},
"cursor": { "type": "string" },
"followers": {
"type": "array",
"items": {
"type": "ref",
"ref": "app.bsky.actor.defs#profileView"
}
}
}
}
}
share/lexicons/app/bsky/graph/getFollows.json view on Meta::CPAN
"type": "params",
"required": ["actor"],
"properties": {
"actor": { "type": "string", "format": "at-identifier" },
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 100,
"default": 50
},
"cursor": { "type": "string" }
}
},
"output": {
"encoding": "application/json",
"schema": {
"type": "object",
"required": ["subject", "follows"],
"properties": {
"subject": {
"type": "ref",
"ref": "app.bsky.actor.defs#profileView"
},
"cursor": { "type": "string" },
"follows": {
"type": "array",
"items": {
"type": "ref",
"ref": "app.bsky.actor.defs#profileView"
}
}
}
}
}
share/lexicons/app/bsky/graph/getKnownFollowers.json view on Meta::CPAN
"type": "params",
"required": ["actor"],
"properties": {
"actor": { "type": "string", "format": "at-identifier" },
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 100,
"default": 50
},
"cursor": { "type": "string" }
}
},
"output": {
"encoding": "application/json",
"schema": {
"type": "object",
"required": ["subject", "followers"],
"properties": {
"subject": {
"type": "ref",
"ref": "app.bsky.actor.defs#profileView"
},
"cursor": { "type": "string" },
"followers": {
"type": "array",
"items": {
"type": "ref",
"ref": "app.bsky.actor.defs#profileView"
}
}
}
}
}
share/lexicons/app/bsky/graph/getList.json view on Meta::CPAN
"type": "string",
"format": "at-uri",
"description": "Reference (AT-URI) of the list record to hydrate."
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 100,
"default": 50
},
"cursor": { "type": "string" }
}
},
"output": {
"encoding": "application/json",
"schema": {
"type": "object",
"required": ["list", "items"],
"properties": {
"cursor": { "type": "string" },
"list": { "type": "ref", "ref": "app.bsky.graph.defs#listView" },
"items": {
"type": "array",
"items": {
"type": "ref",
"ref": "app.bsky.graph.defs#listItemView"
}
}
}
}
share/lexicons/app/bsky/graph/getListBlocks.json view on Meta::CPAN
"description": "Get mod lists that the requesting account (actor) is blocking. Requires auth.",
"parameters": {
"type": "params",
"properties": {
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 100,
"default": 50
},
"cursor": { "type": "string" }
}
},
"output": {
"encoding": "application/json",
"schema": {
"type": "object",
"required": ["lists"],
"properties": {
"cursor": { "type": "string" },
"lists": {
"type": "array",
"items": { "type": "ref", "ref": "app.bsky.graph.defs#listView" }
}
}
}
}
}
}
}
share/lexicons/app/bsky/graph/getListMutes.json view on Meta::CPAN
"description": "Enumerates mod lists that the requesting account (actor) currently has muted. Requires auth.",
"parameters": {
"type": "params",
"properties": {
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 100,
"default": 50
},
"cursor": { "type": "string" }
}
},
"output": {
"encoding": "application/json",
"schema": {
"type": "object",
"required": ["lists"],
"properties": {
"cursor": { "type": "string" },
"lists": {
"type": "array",
"items": { "type": "ref", "ref": "app.bsky.graph.defs#listView" }
}
}
}
}
}
}
}
share/lexicons/app/bsky/graph/getLists.json view on Meta::CPAN
"type": "string",
"format": "at-identifier",
"description": "The account (actor) to enumerate lists from."
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 100,
"default": 50
},
"cursor": { "type": "string" }
}
},
"output": {
"encoding": "application/json",
"schema": {
"type": "object",
"required": ["lists"],
"properties": {
"cursor": { "type": "string" },
"lists": {
"type": "array",
"items": { "type": "ref", "ref": "app.bsky.graph.defs#listView" }
}
}
}
}
}
}
}
share/lexicons/app/bsky/graph/getMutes.json view on Meta::CPAN
"description": "Enumerates accounts that the requesting account (actor) currently has muted. Requires auth.",
"parameters": {
"type": "params",
"properties": {
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 100,
"default": 50
},
"cursor": { "type": "string" }
}
},
"output": {
"encoding": "application/json",
"schema": {
"type": "object",
"required": ["mutes"],
"properties": {
"cursor": { "type": "string" },
"mutes": {
"type": "array",
"items": {
"type": "ref",
"ref": "app.bsky.actor.defs#profileView"
}
}
}
}
}
share/lexicons/app/bsky/graph/searchStarterPacks.json view on Meta::CPAN
"q": {
"type": "string",
"description": "Search query string. Syntax, phrase, boolean, and faceting is unspecified, but Lucene query syntax is recommended."
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 100,
"default": 25
},
"cursor": {
"type": "string"
}
}
},
"output": {
"encoding": "application/json",
"schema": {
"type": "object",
"required": ["starterPacks"],
"properties": {
"cursor": {
"type": "string"
},
"starterPacks": {
"type": "array",
"items": {
"type": "ref",
"ref": "app.bsky.graph.defs#starterPackViewBasic"
}
}
}
share/lexicons/app/bsky/notification/listNotifications.json view on Meta::CPAN
"parameters": {
"type": "params",
"properties": {
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 100,
"default": 50
},
"priority": { "type": "boolean" },
"cursor": { "type": "string" },
"seenAt": { "type": "string", "format": "datetime" }
}
},
"output": {
"encoding": "application/json",
"schema": {
"type": "object",
"required": ["notifications"],
"properties": {
"cursor": { "type": "string" },
"notifications": {
"type": "array",
"items": { "type": "ref", "ref": "#notification" }
},
"priority": { "type": "boolean" },
"seenAt": { "type": "string", "format": "datetime" }
}
}
}
},