At Protocol Lexicons
At Protocol uses Lexicons to describe objects and operations
This site contains all at protocol lexicons defined in the following repositories
- https://github.com/bluesky-social/atproto/
- https://github.com/lexicon-community/lexicon
- https://github.com/FujoWebDev/lexicon-guestbook/
- com.atproto.admin.defs
- com.atproto.admin.deleteAccount
- com.atproto.admin.disableAccountInvites
- com.atproto.admin.disableInviteCodes
- com.atproto.admin.enableAccountInvites
- com.atproto.admin.getAccountInfo
- com.atproto.admin.getAccountInfos
- com.atproto.admin.getInviteCodes
- com.atproto.admin.getSubjectStatus
- com.atproto.admin.searchAccounts
- com.atproto.admin.sendEmail
- com.atproto.admin.updateAccountEmail
- com.atproto.admin.updateAccountHandle
- com.atproto.admin.updateAccountPassword
- com.atproto.admin.updateAccountSigningKey
- com.atproto.admin.updateSubjectStatus
- com.atproto.temp.addReservedHandle
- com.atproto.temp.checkHandleAvailability
- com.atproto.temp.checkSignupQueue
- com.atproto.temp.dereferenceScope
- com.atproto.temp.fetchLabels
- com.atproto.temp.requestPhoneVerification
- com.atproto.temp.revokeAccountCredentials
- com.atproto.server.activateAccount
- com.atproto.server.checkAccountStatus
- com.atproto.server.confirmEmail
- com.atproto.server.createAccount
- com.atproto.server.createAppPassword
- com.atproto.server.createInviteCode
- com.atproto.server.createInviteCodes
- com.atproto.server.createSession
- com.atproto.server.deactivateAccount
- com.atproto.server.defs
- com.atproto.server.deleteAccount
- com.atproto.server.deleteSession
- com.atproto.server.describeServer
- com.atproto.server.getAccountInviteCodes
- com.atproto.server.getServiceAuth
- com.atproto.server.getSession
- com.atproto.server.listAppPasswords
- com.atproto.server.refreshSession
- com.atproto.server.requestAccountDelete
- com.atproto.server.requestEmailConfirmation
- com.atproto.server.requestEmailUpdate
- com.atproto.server.requestPasswordReset
- com.atproto.server.reserveSigningKey
- com.atproto.server.resetPassword
- com.atproto.server.revokeAppPassword
- com.atproto.server.updateEmail
- com.atproto.moderation.createReport
- com.atproto.moderation.defs
- com.atproto.identity.defs
- com.atproto.identity.getRecommendedDidCredentials
- com.atproto.identity.refreshIdentity
- com.atproto.identity.requestPlcOperationSignature
- com.atproto.identity.resolveDid
- com.atproto.identity.resolveHandle
- com.atproto.identity.resolveIdentity
- com.atproto.identity.signPlcOperation
- com.atproto.identity.submitPlcOperation
- com.atproto.identity.updateHandle
- com.atproto.repo.applyWrites
- com.atproto.repo.createRecord
- com.atproto.repo.defs
- com.atproto.repo.deleteRecord
- com.atproto.repo.describeRepo
- com.atproto.repo.getRecord
- com.atproto.repo.importRepo
- com.atproto.repo.listMissingBlobs
- com.atproto.repo.listRecords
- com.atproto.repo.putRecord
- com.atproto.repo.strongRef
- com.atproto.repo.uploadBlob
- com.atproto.lexicon.resolveLexicon
- com.atproto.lexicon.schema
- com.atproto.sync.defs
- com.atproto.sync.getBlob
- com.atproto.sync.getBlocks
- com.atproto.sync.getCheckout
- com.atproto.sync.getHead
- com.atproto.sync.getHostStatus
- com.atproto.sync.getLatestCommit
- com.atproto.sync.getRecord
- com.atproto.sync.getRepo
- com.atproto.sync.getRepoStatus
- com.atproto.sync.listBlobs
- com.atproto.sync.listHosts
- com.atproto.sync.listRepos
- com.atproto.sync.listReposByCollection
- com.atproto.sync.notifyOfUpdate
- com.atproto.sync.requestCrawl
- com.atproto.sync.subscribeRepos
- com.atproto.label.defs
- com.atproto.label.queryLabels
- com.atproto.label.subscribeLabels
- tools.ozone.team.addMember
- tools.ozone.team.defs
- tools.ozone.team.deleteMember
- tools.ozone.team.listMembers
- tools.ozone.team.updateMember
- tools.ozone.verification.defs
- tools.ozone.verification.grantVerifications
- tools.ozone.verification.listVerifications
- tools.ozone.verification.revokeVerifications
- tools.ozone.server.getConfig
- tools.ozone.moderation.cancelScheduledActions
- tools.ozone.moderation.defs
- tools.ozone.moderation.emitEvent
- tools.ozone.moderation.getAccountTimeline
- tools.ozone.moderation.getEvent
- tools.ozone.moderation.getRecord
- tools.ozone.moderation.getRecords
- tools.ozone.moderation.getRepo
- tools.ozone.moderation.getReporterStats
- tools.ozone.moderation.getRepos
- tools.ozone.moderation.getSubjects
- tools.ozone.moderation.listScheduledActions
- tools.ozone.moderation.queryEvents
- tools.ozone.moderation.queryStatuses
- tools.ozone.moderation.scheduleAction
- tools.ozone.moderation.searchRepos
- tools.ozone.hosting.getAccountHistory
- tools.ozone.communication.createTemplate
- tools.ozone.communication.defs
- tools.ozone.communication.deleteTemplate
- tools.ozone.communication.listTemplates
- tools.ozone.communication.updateTemplate
- tools.ozone.report.defs
- tools.ozone.signature.defs
- tools.ozone.signature.findCorrelation
- tools.ozone.signature.findRelatedAccounts
- tools.ozone.signature.searchAccounts
- tools.ozone.set.addValues
- tools.ozone.set.defs
- tools.ozone.set.deleteSet
- tools.ozone.set.deleteValues
- tools.ozone.set.getValues
- tools.ozone.set.querySets
- tools.ozone.set.upsertSet
- tools.ozone.safelink.addRule
- tools.ozone.safelink.defs
- tools.ozone.safelink.queryEvents
- tools.ozone.safelink.queryRules
- tools.ozone.safelink.removeRule
- tools.ozone.safelink.updateRule
- tools.ozone.setting.defs
- tools.ozone.setting.listOptions
- tools.ozone.setting.removeOptions
- tools.ozone.setting.upsertOption
- app.bsky.authCreatePosts
- app.bsky.authFullApp
- app.bsky.authManageFeedDeclarations
- app.bsky.authManageLabelerService
- app.bsky.authManageModeration
- app.bsky.authManageNotifications
- app.bsky.authManageProfile
- app.bsky.authViewAll
- app.bsky.bookmark.createBookmark
- app.bsky.bookmark.defs
- app.bsky.bookmark.deleteBookmark
- app.bsky.bookmark.getBookmarks
- app.bsky.feed.defs
- app.bsky.feed.describeFeedGenerator
- app.bsky.feed.generator
- app.bsky.feed.getActorFeeds
- app.bsky.feed.getActorLikes
- app.bsky.feed.getAuthorFeed
- app.bsky.feed.getFeed
- app.bsky.feed.getFeedGenerator
- app.bsky.feed.getFeedGenerators
- app.bsky.feed.getFeedSkeleton
- app.bsky.feed.getLikes
- app.bsky.feed.getListFeed
- app.bsky.feed.getPosts
- app.bsky.feed.getPostThread
- app.bsky.feed.getQuotes
- app.bsky.feed.getRepostedBy
- app.bsky.feed.getSuggestedFeeds
- app.bsky.feed.getTimeline
- app.bsky.feed.like
- app.bsky.feed.post
- app.bsky.feed.postgate
- app.bsky.feed.repost
- app.bsky.feed.searchPosts
- app.bsky.feed.sendInteractions
- app.bsky.feed.threadgate
- app.bsky.richtext.facet
- app.bsky.actor.defs
- app.bsky.actor.getPreferences
- app.bsky.actor.getProfile
- app.bsky.actor.getProfiles
- app.bsky.actor.getSuggestions
- app.bsky.actor.profile
- app.bsky.actor.putPreferences
- app.bsky.actor.searchActors
- app.bsky.actor.searchActorsTypeahead
- app.bsky.actor.status
- app.bsky.graph.block
- app.bsky.graph.defs
- app.bsky.graph.follow
- app.bsky.graph.getActorStarterPacks
- app.bsky.graph.getBlocks
- app.bsky.graph.getFollowers
- app.bsky.graph.getFollows
- app.bsky.graph.getKnownFollowers
- app.bsky.graph.getList
- app.bsky.graph.getListBlocks
- app.bsky.graph.getListMutes
- app.bsky.graph.getLists
- app.bsky.graph.getListsWithMembership
- app.bsky.graph.getMutes
- app.bsky.graph.getRelationships
- app.bsky.graph.getStarterPack
- app.bsky.graph.getStarterPacks
- app.bsky.graph.getStarterPacksWithMembership
- app.bsky.graph.getSuggestedFollowsByActor
- app.bsky.graph.list
- app.bsky.graph.listblock
- app.bsky.graph.listitem
- app.bsky.graph.muteActor
- app.bsky.graph.muteActorList
- app.bsky.graph.muteThread
- app.bsky.graph.searchStarterPacks
- app.bsky.graph.starterpack
- app.bsky.graph.unmuteActor
- app.bsky.graph.unmuteActorList
- app.bsky.graph.unmuteThread
- app.bsky.graph.verification
- app.bsky.embed.defs
- app.bsky.embed.external
- app.bsky.embed.images
- app.bsky.embed.record
- app.bsky.embed.recordWithMedia
- app.bsky.embed.video
- app.bsky.unspecced.defs
- app.bsky.unspecced.getAgeAssuranceState
- app.bsky.unspecced.getConfig
- app.bsky.unspecced.getOnboardingSuggestedStarterPacks
- app.bsky.unspecced.getOnboardingSuggestedStarterPacksSkeleton
- app.bsky.unspecced.getPopularFeedGenerators
- app.bsky.unspecced.getPostThreadOtherV2
- app.bsky.unspecced.getPostThreadV2
- app.bsky.unspecced.getSuggestedFeeds
- app.bsky.unspecced.getSuggestedFeedsSkeleton
- app.bsky.unspecced.getSuggestedStarterPacks
- app.bsky.unspecced.getSuggestedStarterPacksSkeleton
- app.bsky.unspecced.getSuggestedUsers
- app.bsky.unspecced.getSuggestedUsersSkeleton
- app.bsky.unspecced.getSuggestionsSkeleton
- app.bsky.unspecced.getTaggedSuggestions
- app.bsky.unspecced.getTrendingTopics
- app.bsky.unspecced.getTrends
- app.bsky.unspecced.getTrendsSkeleton
- app.bsky.unspecced.initAgeAssurance
- app.bsky.unspecced.searchActorsSkeleton
- app.bsky.unspecced.searchPostsSkeleton
- app.bsky.unspecced.searchStarterPacksSkeleton
- app.bsky.labeler.defs
- app.bsky.labeler.getServices
- app.bsky.labeler.service
- app.bsky.ageassurance.begin
- app.bsky.ageassurance.defs
- app.bsky.ageassurance.getConfig
- app.bsky.ageassurance.getState
- app.bsky.video.defs
- app.bsky.video.getJobStatus
- app.bsky.video.getUploadLimits
- app.bsky.video.uploadVideo
- app.bsky.contact.defs
- app.bsky.contact.dismissMatch
- app.bsky.contact.getMatches
- app.bsky.contact.getSyncStatus
- app.bsky.contact.importContacts
- app.bsky.contact.removeData
- app.bsky.contact.sendNotification
- app.bsky.contact.startPhoneVerification
- app.bsky.contact.verifyPhone
- app.bsky.notification.declaration
- app.bsky.notification.defs
- app.bsky.notification.getPreferences
- app.bsky.notification.getUnreadCount
- app.bsky.notification.listActivitySubscriptions
- app.bsky.notification.listNotifications
- app.bsky.notification.putActivitySubscription
- app.bsky.notification.putPreferences
- app.bsky.notification.putPreferencesV2
- app.bsky.notification.registerPush
- app.bsky.notification.unregisterPush
- app.bsky.notification.updateSeen
- chat.bsky.authFullChatClient
- chat.bsky.moderation.getActorMetadata
- chat.bsky.moderation.getMessageContext
- chat.bsky.moderation.updateActorAccess
- chat.bsky.actor.declaration
- chat.bsky.actor.defs
- chat.bsky.actor.deleteAccount
- chat.bsky.actor.exportAccountData
- chat.bsky.convo.acceptConvo
- chat.bsky.convo.addReaction
- chat.bsky.convo.defs
- chat.bsky.convo.deleteMessageForSelf
- chat.bsky.convo.getConvo
- chat.bsky.convo.getConvoAvailability
- chat.bsky.convo.getConvoForMembers
- chat.bsky.convo.getLog
- chat.bsky.convo.getMessages
- chat.bsky.convo.leaveConvo
- chat.bsky.convo.listConvos
- chat.bsky.convo.muteConvo
- chat.bsky.convo.removeReaction
- chat.bsky.convo.sendMessage
- chat.bsky.convo.sendMessageBatch
- chat.bsky.convo.unmuteConvo
- chat.bsky.convo.updateAllRead
- chat.bsky.convo.updateRead
- community.lexicon.calendar.event
- community.lexicon.calendar.rsvp
- community.lexicon.payments.webMonetization
- community.lexicon.location.address
- community.lexicon.location.fsq
- community.lexicon.location.geo
- community.lexicon.location.hthree
- community.lexicon.bookmarks.bookmark
- community.lexicon.bookmarks.getActorBookmarks
- community.lexicon.interaction.like
- com.fujocoded.guestbook.book
- com.fujocoded.guestbook.defs
- com.fujocoded.guestbook.gate
- com.fujocoded.guestbook.getGuestbook
- com.fujocoded.guestbook.getGuestbooks
- com.fujocoded.guestbook.submission
View Source
param(
[Collections.IDictionary]
$LexiconRepository = [Ordered]@{
'At Protocol' = 'https://github.com/bluesky-social/atproto/'
'Community Lexicons' = 'https://github.com/lexicon-community/lexicon'
'FujoWebDev.LexiconGuestbook' = 'https://github.com/FujoWebDev/lexicon-guestbook/'
},
[Collections.IDictionary]
$LexiconPatterns = [Ordered]@{
'At Protocol' = '/lexicons/**/**.json'
'Community Lexicons' = '/community/lexicon/**/**.json'
'FujoWebDev.LexiconGuestbook' = '/lexicons/com/fujocoded/'
},
[Collections.IDictionary]
$LexiconPath
)
# We'll be populating a subdirectory with a sparse checkout of a repository.
if (-not $psScriptRoot) { return }
Push-Location $PSScriptRoot
$greatGreatGrandParent = $PSScriptRoot | Split-Path | Split-Path | Split-Path
if (-not $lexiconPath) {
$lexiconPath = [Ordered]@{}
}
foreach ($key in $LexiconRepository.Keys) {
if (-not $lexiconPath[$key]) {
$lexiconPath[$key] = Join-Path $greatGreatGrandParent ($key -replace '[\s\p{P}]+', '.')
}
}
$title = 'At Protocol Lexicons'
$Description = 'List of all At Protocol Lexicons defined in the lexicon-community and atproto repositories.'
$lexiconFiles = @(
# Sparse clone each lexicon
foreach ($key in $LexiconRepository.Keys) {
git.sparse -Repository $LexiconRepository[$key] -Path $lexiconPath[$key] -Pattern $LexiconPatterns[$key] |
Add-Member NoteProperty -Name 'Repository' -Value $LexiconRepository[$key] -Force -PassThru |
Add-Member NoteProperty -Name 'Pattern' -Value $LexiconPatterns[$key] -Force -PassThru
}
)
$AllLexicons = @()
$lexiconsById = [Ordered]@{}
$lexiconFiles |
ForEach-Object {
$json = Get-Content -Path $_.FullName -Raw
$jsonObject = ConvertFrom-Json -InputObject $json
if (-not $jsonObject.id) { return }
$json > "$($jsonObject.id).json"
$AllLexicons += $jsonObject
$lexiconsById[$jsonObject.id] = $jsonObject
}
"<h1>At Protocol Lexicons</h1>"
"<h2>At Protocol uses Lexicons to describe objects and operations</h2>"
"<p>This site contains all at protocol lexicons defined in the following repositories</p>"
"<ul>"
$(
foreach ($value in $LexiconRepository.Values) {
"<li><a href='$value'>$value</a></li>"
}
)
"</ul>"
"<hr/>"
#region Build Lexicon Hierarchy
$treeDepth = 0
$currentTreeBranch = ''
$lexiconHierarchy = [Ordered]@{}
foreach ($lexicon in $AllLexicons) {
$currentLexicon = $lexiconHierarchy
foreach ($nameSegment in $lexicon.id.Split('.')) {
if (-not $currentLexicon[$nameSegment]) {
$currentLexicon[$nameSegment] = [Ordered]@{}
}
$lexiconParent = $currentLexicon
$currentLexicon = $currentLexicon[$nameSegment]
}
$lastNameSegment = $nameSegment
$lexiconParent[$lastNameSegment] = $lexicon.defs
}
#endregion Build Lexicon Hierarchy
$AllLexicons |
ForEach-Object -Begin {
"<ul class='atLexicons'>"
} -Process {
"<li>"
"<a href='$($_.id).json'>$($_.id)</a>"
"</li>"
} -End {
"</ul>"
}
"<hr/>"
"<details>"
"<summary>View Source</summary>"
"<pre><code class='language-PowerShell'>$([Web.HttpUtility]::HtmlEncode($MyInvocation.MyCommand.ScriptBlock))</code></pre>"
"</details>"
ConvertTo-Json -Depth 10 $AllLexicons > .\All.json
ConvertTo-Json -Depth 10 $lexiconHierarchy > .\Hierarchy.json
($lexiconsById | ConvertTo-Json -Depth 10) > .\ById.json
Pop-Location