at main 271 lines 8.6 kB view raw
1{ 2 "lexicon": 1, 3 "id": "sh.weaver.actor.defs", 4 "defs": { 5 "profileView": { 6 "type": "object", 7 "required": ["did", "handle"], 8 "properties": { 9 "did": { "type": "string", "format": "did" }, 10 "handle": { "type": "string", "format": "handle" }, 11 "displayName": { 12 "type": "string", 13 "maxGraphemes": 64, 14 "maxLength": 640 15 }, 16 "description": { 17 "type": "string", 18 "maxGraphemes": 1024, 19 "maxLength": 10240 20 }, 21 "avatar": { "type": "string", "format": "uri" }, 22 "banner": { "type": "string", "format": "uri" }, 23 "location": { 24 "type": "string", 25 "description": "Free-form location text.", 26 "maxGraphemes": 40, 27 "maxLength": 400 28 }, 29 "links": { 30 "type": "array", 31 "minLength": 0, 32 "maxLength": 5, 33 "items": { 34 "type": "string", 35 "description": "Any URI, intended for social profiles or websites, can be used to link DIDs/AT-URIs too.", 36 "format": "uri" 37 } 38 }, 39 "indexedAt": { "type": "string", "format": "datetime" }, 40 "createdAt": { "type": "string", "format": "datetime" }, 41 "pinned": { 42 "description": "Notebooks or other records pinned for display.", 43 "type": "ref", 44 "ref": "#pinnedList" 45 }, 46 "bluesky": { 47 "type": "boolean", 48 "description": "Include link to this account on Bluesky." 49 }, 50 "tangled": { 51 "type": "boolean", 52 "description": "Include link to this account on Tangled." 53 }, 54 "streamplace": { 55 "type": "boolean", 56 "description": "Include link to this account on stream.place." 57 }, 58 "labels": { 59 "type": "array", 60 "items": { "type": "ref", "ref": "com.atproto.label.defs#label" } 61 }, 62 "pronouns": { 63 "type": "ref", 64 "description": "Pronouns to use in user-generated content.", 65 "ref": "#pronounsList" 66 }, 67 "subscriberCount": { 68 "type": "integer" 69 }, 70 "subscribedCount": { 71 "type": "integer" 72 } 73 } 74 }, 75 "profileViewBasic": { 76 "type": "object", 77 "required": ["did", "handle"], 78 "properties": { 79 "did": { "type": "string", "format": "did" }, 80 "handle": { "type": "string", "format": "handle" }, 81 "displayName": { 82 "type": "string", 83 "maxGraphemes": 64, 84 "maxLength": 640 85 }, 86 "avatar": { "type": "string", "format": "uri" }, 87 "indexedAt": { "type": "string", "format": "datetime" }, 88 "createdAt": { "type": "string", "format": "datetime" }, 89 "labels": { 90 "type": "array", 91 "items": { "type": "ref", "ref": "com.atproto.label.defs#label" } 92 }, 93 "pronouns": { 94 "type": "ref", 95 "description": "Pronouns to use in user-generated content.", 96 "ref": "#pronounsList" 97 } 98 } 99 }, 100 "subscribedNotebook": { 101 "type": "object", 102 "description": "A notebook the viewer subscribes to without a global follow.", 103 "required": ["uri"], 104 "properties": { 105 "uri": { "type": "string", "format": "at-uri" }, 106 "title": { "type": "string" }, 107 "path": { "type": "string" } 108 } 109 }, 110 "viewerState": { 111 "type": "object", 112 "description": "Viewer's relationship state with an actor (detailed version).", 113 "properties": { 114 "following": { "type": "string", "format": "at-uri" }, 115 "followedBy": { "type": "string", "format": "at-uri" }, 116 "followRequested": { "type": "string", "format": "at-uri" }, 117 "followRequestedBy": { "type": "string", "format": "at-uri" }, 118 "subscribedNotebooks": { 119 "type": "array", 120 "items": { "type": "ref", "ref": "#subscribedNotebook" } 121 }, 122 "muted": { "type": "string", "format": "at-uri" }, 123 "blocked": { "type": "string", "format": "at-uri" }, 124 "blockedBy": { "type": "boolean" } 125 } 126 }, 127 "viewerStateBasic": { 128 "type": "object", 129 "description": "Viewer's relationship state with an actor (basic version).", 130 "properties": { 131 "following": { "type": "string", "format": "at-uri" }, 132 "followedBy": { "type": "string", "format": "at-uri" }, 133 "followRequested": { "type": "string", "format": "at-uri" }, 134 "followRequestedBy": { "type": "string", "format": "at-uri" }, 135 "subscribedNotebookCount": { "type": "integer" }, 136 "muted": { "type": "string", "format": "at-uri" }, 137 "blocked": { "type": "string", "format": "at-uri" }, 138 "blockedBy": { "type": "boolean" } 139 } 140 }, 141 "profileDataView": { 142 "type": "object", 143 "required": ["inner"], 144 "properties": { 145 "inner": { 146 "type": "union", 147 "refs": ["#profileView", "app.bsky.actor.defs#profileViewDetailed", "#tangledProfileView"] 148 }, 149 "viewer": { "type": "ref", "ref": "#viewerState" }, 150 "notebookCount": { "type": "integer" }, 151 "entryCount": { "type": "integer" }, 152 "collaborationCount": { "type": "integer" }, 153 "followerCount": { "type": "integer" }, 154 "followingCount": { "type": "integer" } 155 } 156 }, 157 "profileDataViewBasic": { 158 "type": "object", 159 "required": ["inner"], 160 "properties": { 161 "inner": { 162 "type": "union", 163 "refs": ["#profileViewBasic", "app.bsky.actor.defs#profileViewBasic", "#tangledProfileView"] 164 }, 165 "viewer": { "type": "ref", "ref": "#viewerStateBasic" }, 166 "followerCount": { "type": "integer" }, 167 "followingCount": { "type": "integer" } 168 } 169 }, 170 "author": { 171 "type": "object", 172 "description": "A single author in a Weaver notebook.", 173 "required": ["did"], 174 "properties": { 175 "did": { "type": "string", "format": "did" }, 176 "signature": { 177 "type": "bytes", 178 "description": "signed bytes of the corresponding notebook record in the author's repo" 179 } 180 } 181 }, 182 "pronounsList": { 183 "type": "array", 184 "items": { 185 "type": "string", 186 "maxLength": 500, 187 "maxGraphemes": 50, 188 "knownValues": [ 189 "she/her", 190 "he/him", 191 "they/them", 192 "it/its", 193 "she/they", 194 "he/they", 195 "they/he", 196 "they/she", 197 "any/all" 198 ] 199 }, 200 "maxLength": 5 201 }, 202 "pinnedList": { 203 "type": "array", 204 "items": { 205 "type": "ref", 206 "ref": "com.atproto.repo.strongRef" 207 } 208 }, 209 "tangledProfileView": { 210 "type": "object", 211 "required": ["bluesky", "did", "handle"], 212 "properties": { 213 "did": { "type": "string", "format": "did" }, 214 "handle": { "type": "string", "format": "handle" }, 215 "description": { 216 "type": "string", 217 "description": "Free-form profile description text.", 218 "maxGraphemes": 256, 219 "maxLength": 2560 220 }, 221 "links": { 222 "type": "array", 223 "minLength": 0, 224 "maxLength": 5, 225 "items": { 226 "type": "string", 227 "description": "Any URI, intended for social profiles or websites, can be used to link DIDs/AT-URIs too.", 228 "format": "uri" 229 } 230 }, 231 "stats": { 232 "type": "array", 233 "minLength": 0, 234 "maxLength": 2, 235 "items": { 236 "type": "string", 237 "description": "Vanity stats.", 238 "enum": [ 239 "merged-pull-request-count", 240 "closed-pull-request-count", 241 "open-pull-request-count", 242 "open-issue-count", 243 "closed-issue-count", 244 "repository-count" 245 ] 246 } 247 }, 248 "bluesky": { 249 "type": "boolean", 250 "description": "Include link to this account on Bluesky." 251 }, 252 "location": { 253 "type": "string", 254 "description": "Free-form location text.", 255 "maxGraphemes": 40, 256 "maxLength": 400 257 }, 258 "pinnedRepositories": { 259 "type": "array", 260 "description": "Any ATURI, it is up to appviews to validate these fields.", 261 "minLength": 0, 262 "maxLength": 6, 263 "items": { 264 "type": "string", 265 "format": "at-uri" 266 } 267 } 268 } 269 } 270 } 271}